Location: PHPKode > scripts > Genghis > genghis-2.3.4/genghis.php
<?php

/**
 * Genghis v2.3.4
 *
 * The single-file MongoDB admin app
 *
 * http://genghisapp.com
 *
 * @author Justin Hileman <hide@address.com>
 */
define('GENGHIS_VERSION', "2.3.4");

class Genghis_Api extends Genghis_App { const ROUTE_PATTERN = '~^/?servers(?:/(?P<server>[^/]+)(?P<databases>/databases(?:/(?P<db>[^/]+)(?P<collections>/collections(?:/(?P<coll>[^/]+)(?P<documents>/documents(?:/(?P<id>[^/]+))?)?)?)?)?)?)?/?$~'; const GRIDFS_ROUTE = '~^/?servers/(?P<server>[^/]+)/databases/(?P<db>[^/]+)/collections/(?P<coll>[^/]+)/files(?:/(?P<id>[^/]+))?/?$~'; const CHECK_STATUS_ROUTE = '~/?check-status/?$~'; const PAGE_LIMIT = 50; protected $servers; public function __construct() { $this->servers = new Genghis_ServerCollection; } public function route($method, $path) { try { try { return $this->doRoute($method, $path); } catch (Genghis_HttpException $e) { return $this->errorResponse($e->getMessage(), $e->getStatus()); } } catch (Exception $e) { return $this->errorResponse($e->getMessage()); } } public function doRoute($method, $path) { if (preg_match(self::CHECK_STATUS_ROUTE, $path)) { return new Genghis_JsonResponse($this->checkStatusAction()); } $p = array(); if (preg_match(self::ROUTE_PATTERN, $path, $p)) { $p = array_map('urldecode', array_filter($p)); if (isset($p['id'])) { return new Genghis_JsonResponse($this->documentAction($method, $p['server'], $p['db'], $p['coll'], $p['id'])); } if (isset($p['documents'])) { return new Genghis_JsonResponse($this->documentsAction($method, $p['server'], $p['db'], $p['coll'])); } if (isset($p['coll'])) { return new Genghis_JsonResponse($this->collectionAction($method, $p['server'], $p['db'], $p['coll'])); } if (isset($p['collections'])) { return new Genghis_JsonResponse($this->collectionsAction($method, $p['server'], $p['db'])); } if (isset($p['db'])) { return new Genghis_JsonResponse($this->databaseAction($method, $p['server'], $p['db'])); } if (isset($p['databases'])) { return new Genghis_JsonResponse($this->databasesAction($method, $p['server'])); } if (isset($p['server'])) { return new Genghis_JsonResponse($this->serverAction($method, $p['server'])); } return new Genghis_JsonResponse($this->serversAction($method)); } $p = array(); if (preg_match(self::GRIDFS_ROUTE, $path, $p)) { $p = array_map('urldecode', array_filter($p)); if (isset($p['id'])) { $file = $this->fileAction($method, $p['server'], $p['db'], $p['coll'], $p['id']); return ($method === 'GET') ? new Genghis_GridFsResponse($file) : new Genghis_JsonResponse($file); } else { return new Genghis_JsonResponse($this->filesAction($method, $p['server'], $p['db'], $p['coll'])); } } throw new Genghis_HttpException(404); } protected function checkStatusAction() { $alerts = array(); if (!class_exists('Mongo', false)) { $alerts[] = array( 'level' => 'error', 'msg' => '<h4>Mongo PHP class not found.</h4> ' . 'Have you installed and enabled the <strong>PECL Mongo drivers</strong>?', ); } if (!$this->skipUpdateCheck()) { try { $latest = @file_get_contents('https://raw.github.com/bobthecow/genghis/master/VERSION'); if ($latest && version_compare($latest, GENGHIS_VERSION, '>')) { $alerts[] = array( 'level' => 'warning', 'msg' => '<h4>A Genghis update is available</h4> ' . 'You are running Genghis version <tt>' . GENGHIS_VERSION . '</tt>. ' . 'The current version is <tt>' . $latest . '</tt>. ' . 'Visit <a href="http://genghisapp.com">genghisapp.com</a> for more information.' ); } } catch (Exception $e) { } } try { $d = new DateTime; } catch (Exception $e) { $msg = $e->getMessage(); if (strpos($msg, 'date.timezone') === false) { throw $e; } $alerts[] = array( 'level' => 'warning', 'msg' => preg_replace('/^(?:(?:DateTime::__construct\(\))?: )?([^\.]+\.)/', '<h4>\1</h4> ', $msg), ); } if (get_magic_quotes_gpc()) { $alerts[] = array( 'level' => 'error', 'msg' => '<h4>Looks like you\'re rockin\' it retro style</h4>' . 'You are running PHP with <tt>magic_quotes_gpc</tt> enabled. Not only is this ' . '<a href="http://us1.php.net/manual/en/security.magicquotes.php">dangerous and ' . 'deprecated</a>, but it will keep Genghis from properly querying and saving documents. ' . 'Please <a href="http://us1.php.net/manual/en/security.magicquotes.disabling.php">disable ' . '<tt>magic_quotes_gpc</tt></a>.', ); } if (get_magic_quotes_runtime()) { $alerts[] = array( 'level' => 'error', 'msg' => '<h4>Looks like you\'re rockin\' it retro style</h4>' . 'You are running PHP with <tt>magic_quotes_runtime</tt> enabled. Not only is this ' . '<a href="http://us1.php.net/manual/en/security.magicquotes.php">dangerous and ' . 'deprecated</a>, but it will keep Genghis from properly querying and saving documents. ' . 'Please <a href="http://us1.php.net/manual/en/info.configuration.php#ini.magic-quotes-runtime">disable ' . '<tt>magic_quotes_runtime</tt></a>.', ); } return compact('alerts'); } public function documentAction($method, $server, $db, $coll, $id) { switch ($method) { case 'GET': return $this->servers[$server][$db][$coll][$id]; case 'PUT': $this->servers[$server][$db][$coll][$id] = $this->getRequestData(); return $this->servers[$server][$db][$coll][$id]; case 'DELETE': unset($this->servers[$server][$db][$coll][$id]); return array('success' => true); default: throw new Genghis_HttpException(405); } } public function documentsAction($method, $server, $db, $coll) { switch ($method) { case 'GET': $query = (string) $this->getQueryParam('q', ''); $page = (int) $this->getQueryParam('page', 1); return $this->servers[$server][$db][$coll]->findDocuments($query, $page); case 'POST': return $this->servers[$server][$db][$coll]->insert($this->getRequestData()); default: throw new Genghis_HttpException(405); } } public function collectionAction($method, $server, $db, $coll) { switch ($method) { case 'GET': return $this->servers[$server][$db][$coll]; case 'DELETE': unset($this->servers[$server][$db][$coll]); return array('success' => true); default: throw new Genghis_HttpException(405); } } public function collectionsAction($method, $server, $db) { switch ($method) { case 'GET': return $this->servers[$server][$db]->listCollections(); case 'POST': return $this->servers[$server][$db]->createCollection($this->getRequestParam('name')); default: throw new Genghis_HttpException(405); } } public function databaseAction($method, $server, $db) { switch ($method) { case 'GET': return $this->servers[$server][$db]; case 'DELETE': unset($this->servers[$server][$db]); return array('success' => true); default: throw new Genghis_HttpException(405); } } public function databasesAction($method, $server) { switch ($method) { case 'GET': return $this->servers[$server]->listDatabases(); case 'POST': return $this->servers[$server]->createDatabase($this->getRequestParam('name')); default: throw new Genghis_HttpException(405); } } public function serverAction($method, $server) { switch ($method) { case 'GET': return $this->servers[$server]; case 'DELETE': unset($this->servers[$server]); return array('success' => true); default: throw new Genghis_HttpException(405); } } public function serversAction($method) { switch ($method) { case 'GET': return $this->servers; case 'POST': $server = new Genghis_Models_Server($this->getRequestParam('name')); $this->servers[] = $server; return $server; default: throw new Genghis_HttpException(405); } } public function fileAction($method, $server, $db, $coll, $id) { switch ($method) { case 'GET': return $this->servers[$server][$db][$coll]->getFile($id); case 'DELETE': $this->servers[$server][$db][$coll]->deleteFile($id); return array('success' => true); default: throw new Genghis_HttpException(405); } } public function filesAction($method, $server, $db, $coll) { switch ($method) { case 'POST': return $this->servers[$server][$db][$coll]->putFile($this->getRequestData()); default: throw new Genghis_HttpException(405); } } protected function skipUpdateCheck() { return (isset($_ENV['GENGHIS_NO_UPDATE_CHECK']) && $_ENV['GENGHIS_NO_UPDATE_CHECK']) || (isset($_SERVER['GENGHIS_NO_UPDATE_CHECK']) && $_SERVER['GENGHIS_NO_UPDATE_CHECK']); } protected function getRequestData($gfj = true) { $data = file_get_contents('php://input'); if ($gfj) { try { $json = Genghis_Json::decode($data); } catch (Genghis_JsonException $e) { throw new Genghis_HttpException(400, 'Malformed document'); } } else { $json = json_decode($data, true); } if (empty($json)) { throw new Genghis_HttpException(400, 'Malformed document'); } return $json; } protected function getRequestParam($name) { $data = $this->getRequestData(false); if (!isset($data[$name])) { throw new HttpException(400, sprintf("'%s' must be specified", $name)); } return $data[$name]; } protected function errorResponse($msg, $status = 500) { if (empty($msg)) { $msg = Genghis_Response::getStatusText($status); } return new Genghis_JsonResponse(array('error' => $msg, 'status' => $status), $status); } }
class Genghis_App { protected $loader; protected $baseUrl; public function __construct(Genghis_AssetLoader $loader) { $this->loader = $loader; } public function run() { set_error_handler(array('Genghis_ErrorException', 'throwException')); try { $response = $this->route($this->getRequestMethod(), $this->getRequestPath()); if ($response instanceof Genghis_Response) { $response->render(); } else { throw new Genghis_HttpException(500); } } catch (Genghis_HttpException $e) { $this->errorResponse($e->getMessage(), $e->getStatus())->render(); } catch (Exception $e) { $this->errorResponse($e->getMessage())->render(); } } public function route($method, $path) { if ($this->isJsonRequest() || $this->isGridFsRequest()) { return $this->getApi()->route($method, $path); } elseif ($this->isAssetRequest($path)) { return $this->getAsset(substr($path, 8)); } else { return $this->renderTemplate('index.html.mustache'); } } protected function isJsonRequest() { if (in_array($this->getRequestMethod(), array('POST', 'PUT'))) { if (array_key_exists('HTTP_CONTENT_TYPE', $_SERVER)) { $type = $_SERVER['HTTP_CONTENT_TYPE']; } elseif (array_key_exists('CONTENT_TYPE', $_SERVER)) { $type = $_SERVER['CONTENT_TYPE']; } else { $type = 'x-www-form-urlencoded'; } } else { $type = isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : 'text/html'; } return strpos($type, 'application/json') !== false || strpos($type, 'application/javascript') !== false; } protected function isGridFsRequest() { return $this->getRequestMethod() == 'GET' && preg_match(Genghis_Api::GRIDFS_ROUTE, $this->getRequestPath()); } protected function isAssetRequest($path) { return (strpos($path, '/assets/') === 0); } protected function getBaseUrl() { if (!isset($this->baseUrl)) { $this->baseUrl = $this->prepareBaseUrl(); } return $this->baseUrl; } protected function prepareBaseUrl() { $filename = basename($_SERVER['SCRIPT_FILENAME']); foreach (array('SCRIPT_NAME', 'PHP_SELF', 'ORIG_SCRIPT_NAME') as $key) { if (isset($_SERVER[$key]) && basename($_SERVER[$key]) == $filename) { $baseUrl = $_SERVER[$key]; break; } } if (!isset($baseUrl)) { $path = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : ''; $file = isset($_SERVER['SCRIPT_FILENAME']) ? $_SERVER['SCRIPT_FILENAME'] : ''; $chunks = array_reverse(explode('/', trim($file, '/'))); $index = 0; $last = count($chunks); $baseUrl = ''; do { $seg = $chunks[$index]; $baseUrl = '/'.$seg.$baseUrl; ++$index; } while (($last > $index) && (false !== ($pos = strpos($path, $baseUrl))) && (0 != $pos)); } $requestUri = $_SERVER['REQUEST_URI']; if ($baseUrl && 0 === strpos($requestUri, $baseUrl)) { return $baseUrl; } if ($baseUrl && 0 === strpos($requestUri, dirname($baseUrl))) { return rtrim(dirname($baseUrl), '/'); } $truncatedRequestUri = $requestUri; if (($pos = strpos($requestUri, '?')) !== false) { $truncatedRequestUri = substr($requestUri, 0, $pos); } $basename = basename($baseUrl); if (empty($basename) || !strpos($truncatedRequestUri, $basename)) { return ''; } if ((strlen($requestUri) >= strlen($baseUrl)) && ((false !== ($pos = strpos($requestUri, $baseUrl))) && ($pos !== 0))) { $baseUrl = substr($requestUri, 0, $pos + strlen($baseUrl)); } return rtrim($baseUrl, '/'); } protected function getRequestMethod() { return $_SERVER['REQUEST_METHOD']; } protected function getRequestPath() { if (isset($_SERVER['PATH_INFO'])) { return $_SERVER['PATH_INFO']; } elseif (isset($_SERVER['REQUEST_URI'])) { return parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); } else { return '/'; } } protected function getQueryParams() { global $_GET; return $_GET; } protected function getQueryParam($name, $default = null) { $params = $this->getQueryParams(); if (isset($params[$name])) { return $params[$name]; } else { return $default; } } protected function renderTemplate($name, $status = 200, array $vars = array()) { $tpl = $this->loader->loadRaw($name); $defaults = array( 'base_url' => $this->getBaseUrl(), 'genghis_version' => GENGHIS_VERSION, ); return new Genghis_Response(strtr($tpl, $this->prepareVars(array_merge($defaults, $vars))), $status); } protected function prepareVars($vars) { $ret = array(); foreach ($vars as $name => $var) { $ret['{{ '.$name.' }}'] = $var; } return $ret; } protected function getAsset($name) { try { return $this->loader->load($name); } catch (InvalidArgumentException $e) { throw new Genghis_HttpException(404); } } protected function getApi() { return new Genghis_Api; } protected function errorResponse($message, $status = 500) { return $this->renderTemplate('error.html.mustache', $status, compact('message', 'status')); } }
interface Genghis_AssetLoader { public function load($name); public function loadRaw($name); }
class Genghis_AssetLoader_Inline implements Genghis_AssetLoader { private $file; private $offset; private $assets = array(); private $assetEtags = array(); public function __construct($file, $offset) { $this->file = $file; $this->offset = $offset; } public function load($name) { $data = $this->loadRaw($name); return new Genghis_AssetResponse($name, $data, array( 'Last-Modified' => gmdate('D, d M Y H:i:s', filemtime($this->file)) . ' GMT', 'Etag' => sprintf('"%s"', $this->assetEtags[$name]), )); } public function loadRaw($name) { $this->initAssets(); if (!isset($this->assets[$name])) { throw new InvalidArgumentException(sprintf("Unknown asset: '%s'", $name)); } return $this->assets[$name]; } private function initAssets() { if (empty($this->assets)) { $data = file_get_contents($this->file, false, null, $this->offset); foreach (preg_split("/^@@(?=[\w\d\.]+( [\w\d\.]+)?$)/m", $data, -1) as $asset) { if (trim($asset)) { list($line, $content) = explode("\n", $asset, 2); list($name, $etag) = explode(' ', $line, 2); $this->assets[$name] = trim($content); $this->assetEtags[$name] = $etag; } } } } }
class Genghis_AssetResponse extends Genghis_Response { protected $headers; private static $extMap = array( 'js' => 'application/x-javascript', 'json' => 'application/json', 'css' => 'text/css', 'html' => 'text/html', 'htm' => 'text/html', 'php' => 'text/html', 'txt' => 'text/plain', ); public function __construct($name, $content, $headers = array()) { parent::__construct($content); $this->name = $name; $this->headers = array_merge(array('Content-type' => $this->getContentType()), $headers); } protected function getContentType() { $parts = explode('.', $this->name); $ext = end($parts); if (isset(self::$extMap[$ext])) { return self::$extMap[$ext]; } else { return 'unknown/' . trim($ext); } } }
class Genghis_ErrorException extends ErrorException { public function __construct($message = "", $code = 0, $severity = 1, $filename = null, $lineno = null, $previous = null) { switch ($severity) { case E_WARNING: case E_CORE_WARNING: case E_COMPILE_WARNING: case E_USER_WARNING: $type = 'warning'; break; case E_STRICT: $type = 'Strict error'; break; default: $type = 'error'; break; } $message = sprintf('PHP %s:  %s', $type, $message); parent::__construct($message, $code, $severity, $filename, $lineno, $previous); } public static function throwException($errno, $errstr, $errfile, $errline) { throw new self($errstr, 0, $errno, $errfile, $errline); } }
class Genghis_GridFsResponse extends Genghis_Response { public function renderHeaders() { $this->headers['Content-type'] = 'application/octet-stream'; $this->headers['Content-Disposition'] = 'attachment'; if ($filename = $this->data->getFilename()) { $this->headers['Content-Disposition'] .= sprintf('; filename="%s"', $filename); } parent::renderHeaders(); } public function renderContent() { if (version_compare(Mongo::VERSION, '1.3.0', '>=')) { $stream = $this->data->getResource(); while (!feof($stream)) { echo fread($stream, 8192); } } else { echo $this->data->getBytes(); } } }
class Genghis_HttpException extends Exception { protected $status; public function __construct($status = 500, $msg = '') { $this->status = $status; parent::__construct(empty($msg) ? Genghis_Response::getStatusText($status) : $msg); } public function getStatus() { return $this->status; } }
class Genghis_Json { public static function encode($object) { return json_encode(self::doEncode($object)); } private static function doEncode($object) { if (is_object($object) && $object instanceof Genghis_JsonEncodable) { $object = $object->asJson(); } if (is_object($object)) { switch (get_class($object)) { case 'MongoId': return array( '$genghisType' => 'ObjectId', '$value' => (string) $object ); case 'MongoDate': return array( '$genghisType' => 'ISODate', '$value' => date(DATE_W3C, $object->sec) ); case 'MongoRegex': return array( '$genghisType' => 'RegExp', '$value' => array( '$pattern' => $object->regex, '$flags' => $object->flags ? $object->flags : null ) ); case 'MongoBinData': return array( '$genghisType' => 'BinData', '$value' => array( '$subtype' => $object->type, '$binary' => base64_encode($object->bin), ) ); } foreach ($object as $prop => $value) { $object->$prop = self::doEncode($value); } } elseif (is_array($object)) { foreach ($object as $key => $value) { $object[$key] = self::doEncode($value); } } return $object; } public static function decode($object) { if (is_string($object)) { $object = json_decode($object); if ($object === false) { throw new Genghis_JsonException; } } return self::doDecode($object); } private static function doDecode($object) { if (is_object($object)) { if ($type = self::getProp($object, 'genghisType')) { $value = self::getProp($object, 'value'); switch ($type) { case 'ObjectId': return new MongoId($value); case 'ISODate': return ($value === null) ? new MongoDate : new MongoDate(strtotime($value)); case 'RegExp': $pattern = self::getProp($value, 'pattern'); $flags = self::getProp($value, 'flags'); return new MongoRegex(sprintf('/%s/%s', $pattern, $flags)); case 'BinData': $data = base64_decode(self::getProp($value, 'binary')); $type = self::getProp($value, 'subtype'); return new MongoBinData($data, $type); } } else { foreach ($object as $prop => $value) { $object->$prop = self::doDecode($value); } } } elseif (is_array($object)) { foreach ($object as $key => $value) { $object[$key] = self::doDecode($value); } } return $object; } private static function getProp($object, $name) { $name = sprintf('$%s', $name); return isset($object->$name) ? $object->$name : null; } }
interface Genghis_JsonEncodable { public function asJson(); }
class Genghis_JsonException extends Exception { }
class Genghis_JsonRegex { public $pattern; public function __construct($pattern) { $this->pattern = $pattern; } public function __toString() { return $this->getPattern(); } }
class Genghis_JsonResponse extends Genghis_Response { public function renderHeaders() { $this->headers['Content-type'] = 'application/json'; $this->headers['Cache-Control'] = 'no-cache, must-revalidate'; $this->headers['Expires'] = 'Wed, 04 Aug 1982 00:00:00 GMT'; parent::renderHeaders(); } public function renderContent() { print(Genghis_Json::encode($this->data)); } }
class Genghis_Models_Collection implements ArrayAccess, Genghis_JsonEncodable { public $database; public $collection; public function __construct(Genghis_Models_Database $database, MongoCollection $collection) { $this->database = $database; $this->collection = $collection; } public function offsetExists($id) { try { $this->findDocument($id); } catch (Genghis_HttpException $e) { if ($e->getStatus() == 404) { return false; } else { throw $e; } } return true; } public function offsetGet($id) { return $this->findDocument($id); } public function offsetSet($id, $doc) { $this->findDocument($id); $query = array('_id' => $this->thunkMongoId($id)); try { $result = $this->collection->update($query, $doc, array('safe' => true)); } catch (MongoCursorException $e) { throw new Genghis_HttpException(400, ucfirst($e->doc['err'])); } if (!(isset($result['ok']) && $result['ok'])) { throw new Genghis_HttpException; } } public function offsetUnset($id) { $this->findDocument($id); $query = array('_id' => $this->thunkMongoId($id)); $result = $this->collection->remove($query, array('safe' => true)); if (!(isset($result['ok']) && $result['ok'])) { throw new Genghis_HttpException; } } public function getFile($id) { $mongoId = $this->thunkMongoId($id); if (!$mongoId instanceof MongoId) { throw new Genghis_HttpException(404, sprintf("GridFS file '%s' not found", $id)); } $file = $this->getGrid()->get($mongoId); if (!$file) { throw new Genghis_HttpException(404, sprintf("GridFS file '%s' not found", $id)); } return $file; } public function putFile($doc) { $grid = $this->getGrid(); if (!property_exists($doc, 'file')) { throw new Genghis_HttpException(400, 'Missing file'); } $file = $doc->file; unset($doc->file); $extra = array(); foreach ($doc as $key => $val) { if (!in_array($key, array('_id', 'filename', 'contentType', 'metadata'))) { throw new Genghis_HttpException(400, sprintf("Unexpected property: '%s'", $key)); } if ($key === 'metadata') { $encoded = json_encode($val); if ($encoded == '{}' || $encoded == '[]') { continue; } } $extra[$key] = $val; } $id = $grid->storeBytes($this->decodeFile($file), $extra); return $this->findDocument($id); } public function deleteFile($id) { $mongoId = $this->thunkMongoId($id); if (!$mongoId instanceof MongoId) { throw new Genghis_HttpException(404, sprintf("GridFS file '%s' not found", $id)); } $grid = $this->getGrid(); $file = $grid->get($mongoId); if (!$file) { throw new Genghis_HttpException(404, sprintf("GridFS file '%s' not found", $id)); } $result = $grid->delete($mongoId); if (!$result) { throw new Genghis_HttpException; } } public function findDocuments($query = null, $page = 1) { try { $query = Genghis_Json::decode($query); } catch (Genghis_JsonException $e) { throw new Genghis_HttpException(400, 'Malformed document'); } $offset = Genghis_Api::PAGE_LIMIT * ($page - 1); $cursor = $this->collection ->find($query ? $query : array()) ->limit(Genghis_Api::PAGE_LIMIT) ->skip($offset); $count = $cursor->count(); if (is_array($count) && isset($count['errmsg'])) { throw new Genghis_HttpException(400, $count['errmsg']); } return array( 'count' => $count, 'page' => $page, 'pages' => max(1, ceil($count / Genghis_Api::PAGE_LIMIT)), 'per_page' => Genghis_Api::PAGE_LIMIT, 'offset' => $offset, 'documents' => iterator_to_array($cursor, false), ); } public function insert($data) { try { $result = $this->collection->insert($data, array('safe' => true)); } catch (MongoCursorException $e) { throw new Genghis_HttpException(400, ucfirst($e->doc['err'])); } if (!(isset($result['ok']) && $result['ok'])) { throw new Genghis_HttpException; } return $data; } public function drop() { $this->collection->drop(); } public function asJson() { $name = $this->collection->getName(); $colls = $this->database->database->listCollections(); foreach ($colls as $coll) { if ($coll->getName() == $name) { return array( 'id' => $coll->getName(), 'name' => $coll->getName(), 'count' => $coll->count(), 'indexes' => $coll->getIndexInfo(), 'stats' => $this->stats(), ); } } throw new Genghis_HttpException(404, sprintf("Collection '%s' not found in '%s'", $name, $this->database->name)); } private function thunkMongoId($id) { if ($id instanceof MongoId) { return $id; } if ($id[0] == '~') { return Genghis_Json::decode(base64_decode(substr($id, 1))); } return preg_match('/^[a-f0-9]{24}$/i', $id) ? new MongoId($id) : $id; } private function findDocument($id) { $doc = $this->collection->findOne(array('_id' => $this->thunkMongoId($id))); if (!$doc) { throw new Genghis_HttpException(404, sprintf("Document '%s' not found in '%s'", $id, $this->collection->getName())); } return $doc; } private function isGridCollection() { return preg_match('/\.files$/', $this->collection->getName()); } private function getGrid() { if (!($this->isGridCollection())) { $msg = sprintf("GridFS collection '%s' not found in '%s'", $this->collection->getName(), $this->database->name); throw new Genghis_HttpException(404, $msg); } if (!isset($this->grid)) { $prefix = preg_replace('/\.files$/', '', $this->collection->getName()); $this->grid = $this->database->database->getGridFS($prefix); } return $this->grid; } private function decodeFile($data) { $count = 0; $data = preg_replace('/^data:[^;]+;base64,/', '', $data, 1, $count); if ($count !== 1) { throw new Genghis_HttpException(400, 'File must be a base64 encoded data: URI'); } return base64_decode(str_replace(' ', '+', $data)); } private function stats() { return $this->database->database->command(array('collStats' => $this->collection->getName())); } }
class Genghis_Models_Database implements ArrayAccess, Genghis_JsonEncodable { public $name; public $server; public $database; public $error; private $collections = array(); private $mongoCollections; public function __construct(Genghis_Models_Server $server, $name) { $this->server = $server; $this->name = $name; } public function drop() { $this->getDatabase()->drop(); } public function offsetExists($name) { return ($this->getMongoCollection($name) !== null); } public function offsetGet($name) { if (!isset($this->collections[$name])) { $coll = $this->getMongoCollection($name); if ($coll === null) { throw new Genghis_HttpException(404, sprintf("Collection '%s' not found in '%s'", $name, $this->name)); } $this->collections[$name] = new Genghis_Models_Collection($this, $coll); } return $this->collections[$name]; } public function offsetSet($name, $value) { throw new Exception; } public function offsetUnset($name) { $this[$name]->drop(); } public function getCollectionNames() { $colls = array(); foreach ($this->getMongoCollections() as $coll) { $colls[] = $coll->getName(); } return $colls; } public function listCollections() { return array_map(array($this, 'offsetGet'), $this->getCollectionNames()); } public function createCollection($name) { if (isset($this[$name])) { throw new Genghis_HttpException(400, sprintf("Collection '%s' already exists in '%s'", $name, $this->name)); } try { $this->getDatabase()->createCollection($name); } catch (Exception $e) { if (strpos($e->getMessage(), 'invalid name') !== false) { throw new Genghis_HttpException(400, 'Invalid collection name'); } throw $e; } unset($this->mongoCollections); return $this[$name]; } public function asJson() { try { $db = $this->getDatabase(); } catch (Exception $e) { return array( 'id' => $this->name, 'name' => $this->name, 'error' => $this->cleanError($e->getMessage()), ); } $colls = $this->getCollectionNames(); return array( 'id' => $this->name, 'name' => $this->name, 'count' => count($colls), 'collections' => $colls, 'stats' => $this->stats(), ); } private function getDatabase() { if (!isset($this->database)) { $this->database = $this->server->getConnection()->selectDB($this->name); } return $this->database; } private function getMongoCollection($name) { foreach ($this->getMongoCollections() as $coll) { if ($coll->getName() === $name) { return $coll; } } } private function getMongoCollections() { if (!isset($this->mongoCollections)) { $this->mongoCollections = $this->getDatabase()->listCollections(); } return $this->mongoCollections; } private function stats() { return $this->getDatabase()->command(array('dbStats' => 1)); } private function cleanError($msg) { return ucfirst(preg_replace('/^MongoDB::__construct\(\): /', '', $msg)); } }
class Genghis_Models_Server implements ArrayAccess, Genghis_JsonEncodable { public $dsn; public $name; public $options; public $default; public $db; private $connection; private $databases = array(); public function __construct($dsn, $default = false) { $this->default = $default; try { $config = self::parseDsn($dsn); $this->name = $config['name']; $this->dsn = $config['dsn']; $this->options = $config['options']; if (isset($config['db'])) { $this->db = $config['db']; } } catch (Genghis_HttpException $e) { $this->name = $dsn; $this->dsn = $dsn; $this->error = $e->getMessage(); } } public function offsetExists($name) { $list = $this->listDBs(); foreach ($list['databases'] as $db) { if ($db['name'] === $name) { return true; } } return false; } public function offsetGet($name) { if (!isset($this[$name])) { throw new Genghis_HttpException(404, sprintf("Database '%s' not found on '%s'", $name, $this->name)); } if (!isset($this->databases[$name])) { $this->databases[$name] = new Genghis_Models_Database($this, $name); } return $this->databases[$name]; } public function getConnection() { if (!isset($this->connection)) { $this->connection = new Mongo($this->dsn, array_merge(array('connectTimeoutMS' => 1000), $this->options)); } return $this->connection; } public function createDatabase($name) { if (isset($this[$name])) { throw new Genghis_HttpException(400, sprintf("Database '%s' already exists on '%s'", $name, $this->name)); } try { $db = $this->connection->selectDB($name); } catch (Exception $e) { if (strpos($e->getMessage(), 'invalid name') !== false) { throw new Genghis_HttpException(400, 'Invalid database name'); } throw $e; } $db->selectCollection('__genghis_tmp_collection__')->drop(); return $this[$name]; } public function listDatabases() { $dbs = array(); $list = $this->listDBs(); foreach ($list['databases'] as $db) { $dbs[] = $this[$db['name']]; } return $dbs; } public function getDatabaseNames() { $names = array(); $list = $this->listDBs(); foreach ($list['databases'] as $db) { $names[] = $db['name']; } return $names; } public function offsetSet($name, $value) { throw new Exception; } public function offsetUnset($name) { $this[$name]->drop(); } public function asJson() { $server = array( 'id' => $this->name, 'name' => $this->name, 'editable' => !$this->default, ); if (isset($this->error)) { $server['error'] = $this->error; return $server; } try { $res = $this->listDBs(); if (isset($res['errmsg'])) { $server['error'] = sprintf("Unable to connect to Mongo server at '%s': %s", $this->name, $res['errmsg']); return $server; } $dbs = $this->getDatabaseNames(); return array_merge($server, array( 'size' => $res['totalSize'], 'count' => count($dbs), 'databases' => $dbs, )); } catch (Exception $e) { $server['error'] = sprintf("Unable to connect to Mongo server at '%s'", $this->name); return $server; } } const DSN_PATTERN = "~^(?:mongodb://)?(?:(?P<username>[^:@]+):(?P<password>[^@]+)@)?(?P<host>[^,/@:]+)(?::(?P<port>\d+))?(?:/(?P<database>[^\?]+)?(?:\?(?P<options>.*))?)?$~"; public static function parseDsn($dsn) { $chunks = array(); if (!preg_match(self::DSN_PATTERN, $dsn, $chunks)) { throw new Genghis_HttpException(400, 'Malformed server DSN'); } if (strpos($dsn, 'mongodb://') !== 0) { $dsn = 'mongodb://'.$dsn; } $dsnOpts = array(); $options = array(); if (isset($chunks['options'])) { parse_str(str_replace(';', '&', $chunks['options']), $dsnOpts); foreach ($dsnOpts as $name => $value) { switch ($name) { case 'replicaSet': $options[$name] = (string) $value; break; case 'connectTimeoutMS': case 'socketTimeoutMS': $options[$name] = intval($value); break; case 'slaveOk': case 'safe': case 'w': case 'wtimeoutMS': case 'fsync': case 'journal': throw new Genghis_HttpException(400, 'Unsupported connection option - ' . $name); default: throw new Genghis_HttpException(400, 'Malformed server DSN: Unknown connection option - ' . $name); } } } $name = $chunks['host']; if (isset($chunks['username']) && !empty($chunks['username'])) { $name = $chunks['username'].'@'.$name; } if (isset($chunks['port']) && !empty($chunks['port'])) { $port = intval($chunks['port']); if ($port !== 27017) { $name .= ':'.$port; } } if (isset($chunks['database']) && !empty($chunks['database']) && $chunks['database'] != 'admin') { $db = $chunks['database']; $name .= '/'.$db; } $ret = compact('name', 'dsn', 'options'); if (isset($db)) { $ret['db'] = $db; } return $ret; } private function listDBs() { if (isset($this->db)) { $stats = $this->getConnection() ->selectDB($this->db) ->command(array('dbStats' => true)); return array( 'totalSize' => $stats['fileSize'], 'databases' => array(array('name' => $this->db)), ); } return $this->getConnection()->listDBs(); } }
class Genghis_RedirectResponse extends Genghis_Response { public function __construct($url, $status = 301) { parent::__construct($url, $status); } public function render() { header(sprintf('Location: %s', $this->data), $this->status); } }
class Genghis_Response { protected static $statusCodes = array( 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 204 => 'No Content', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 400 => 'Bad Request', 401 => 'Unauthorized', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 412 => 'Precondition Failed', 415 => 'Unsupported Media Type', 417 => 'Expectation Failed', 500 => 'Internal Server Error', 501 => 'Not Implemented', ); protected $data = ''; protected $status = 200; protected $headers = array(); public function __construct($data, $status = 200, $headers = array()) { $this->data = $data; $this->status = $status; $this->headers = $headers; } public function render() { $this->renderHeaders(); $this->renderContent(); } public static function getStatusText($status) { if (isset(self::$statusCodes[$status])) { return self::$statusCodes[$status]; } } protected function renderHeaders() { header(sprintf('HTTP/1.0 %s %s', $this->status, self::$statusCodes[$this->status])); foreach ($this->headers as $name => $val) { header(sprintf('%s: %s', $name, $val)); } } protected function renderContent() { print((string) $this->data); } }
class Genghis_ServerCollection implements ArrayAccess, Genghis_JsonEncodable { private $serverDsns; private $servers; private $defaultServerDsns; private $defaultServers; public function __construct(array $servers = null, array $defaultServers = null) { $this->serverDsns = $servers; $this->defaultServerDsns = $defaultServers; } public function offsetExists($name) { $this->initDsns(); return isset($this->serverDsns[$name]) || isset($this->defaultServerDsns[$name]); } public function offsetGet($name) { $this->initServers(); if (!isset($this[$name])) { throw new Genghis_HttpException(404, sprintf("Server '%s' not found", $name)); } if (!isset($this->servers[$name])) { if (isset($this->serverDsns[$name])) { $this->servers[$name] = new Genghis_Models_Server($this->serverDsns[$name]); } elseif (isset($this->defaultServerDsns[$name])) { $this->servers[$name] = new Genghis_Models_Server($this->defaultServerDsns[$name], true); } } return $this->servers[$name]; } public function offsetSet($name, $server) { $this->initServers(); if (!$server instanceof Genghis_Models_Server) { throw new Exception('Invalid Server instance'); } if (isset($this->serverDsns[$server->name])) { throw new Genghis_HttpException(400, sprintf("Server '%s' already exists", $server->name)); } $this->serverDsns[$server->name] = $server->dsn; $this->servers[$server->name] = $server; $this->saveServers(); } public function offsetUnset($name) { $this->initServers(); if (!isset($this->servers[$name])) { throw new Genghis_HttpException(404, sprintf("Server '%s' not found", $name)); } unset($this->servers[$name]); $this->saveServers(); } public function asJson() { $this->initServers(); return array_values($this->servers); } private function initDsns() { if (!isset($this->serverDsns)) { $this->serverDsns = array(); if (isset($_COOKIE['genghis_servers']) && $localDsns = $this->decodeJson($_COOKIE['genghis_servers'])) { foreach ($localDsns as $dsn) { try { $info = Genghis_Models_Server::parseDsn($dsn); $this->serverDsns[$info['name']] = $info['dsn']; } catch (Genghis_HttpException $e) { $this->serverDsns[$dsn] = $dsn; } } } } if (!isset($this->defaultServerDsns)) { $this->defaultServerDsns = array(); $defaultDsns = array_merge( isset($_ENV['GENGHIS_SERVERS']) ? explode(';', $_ENV['GENGHIS_SERVERS']) : array(), isset($_SERVER['GENGHIS_SERVERS']) ? explode(';', $_SERVER['GENGHIS_SERVERS']) : array() ); foreach ($defaultDsns as $dsn) { try { $info = Genghis_Models_Server::parseDsn($dsn); $this->defaultServerDsns[$info['name']] = $info['dsn']; } catch (Genghis_HttpException $e) { $this->defaultServerDsns[$dsn] = $dsn; } } } if (empty($this->serverDsns) && empty($this->defaultServerDsns)) { $this[] = new Genghis_Models_Server('localhost:27017'); } } private function initServers() { if (!isset($this->servers)) { $this->servers = array(); $this->initDsns(); foreach (array_merge(array_keys($this->serverDsns), array_keys($this->defaultServerDsns)) as $name) { $this[$name]; } } } private function decodeJson($data) { $json = json_decode($data, true); if ($json === false && trim($data) != '') { throw new Genghis_HttpException(400, 'Malformed document'); } return $json; } private function saveServers() { $servers = array(); foreach ($this->servers as $server) { if (!$server->default) { $servers[] = $server->dsn; } } setcookie('genghis_servers', json_encode($servers), time()+60*60*24*365, '/'); } }


$app = new Genghis_App(new Genghis_AssetLoader_Inline(__FILE__, __COMPILER_HALT_OFFSET__));
$app->run();

__halt_compiler();

@@index.html.mustache 73de28ffe6fa3e7e3fe06de0c884ee1a
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Genghis</title> <link rel="shortcut icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAME2lDQ1BJQ0MgUHJvZmlsZQAASA2tV2dYU8kanlNSCAktEAEpoTdRepVeAyhIFWyEJCShhBAIKvayqMBaUBHBiq6K2NYCyFoQK8oi2PsGEQVlXSzYULlzKOrevfvvnueZOe95553v++abOfPMAKDSypVKM1A1ADIlubLoEH/25MQkNuUBoAJtQAcWgMHl5Uj9oqIiwL8+724BhGi8bkvY+lfZ/25Q5wtyeAAgUbA5hZ/Dy4T4KABYHU8qywWARNgznZkrJfBqiDVlMECIdxJYOITrCJwyhJsHNbHRAVCjAIBK53JlQgAYPZBn5/GE0I4KHWI7CV8sgXg8xN48EZcP8VyIx2RmZhF4D8SWKT/YEf6AudyUbza5XOE3PDQW2BM6DhTnSDO4swc//p9VZoYc5mvwMYA1PSc9Jhy+WTBvs3jcoBiItSFeKRJwIob5XdJc/+hh/oQ4lxMLsSbU3BDJQ+OGcZc8Pc4PYj3If07PCif0ME+otiRlYiTEGhCb8nICYO4JX6hLvig2YVgTwRcEBkEMVxE6WZYVPaIX5eTFjPD5+aKAiSP6NG4YMd8qUF/IlUE0GA9aJsgIIfwaQ36fNDeKiJPw1SLJmDg8FvRJqiyY0BD8J0HO4HiJ2ES5othQyMOYMbVcWSyhgWPE9FLFwRyIYWyYnUgWOsL7SjMG1zTsi8XK5NFEHkwhThVI4ogcEnwhnxtI5BbmBNsEggEXyIAApAAJ6AZsEAECQOBwzYa8BHI8kAUyYJGxVUdaSE9JbaTHpJskBenuCAd7DuuAGPAhHrL1Q3/Ix4B88Ce0KgA5I95wXdwb98QjYO0LiwPuhruPtLX01PaM4OFYhbCv7bBt/+Ho86DFLyO6GeLFshE83CflW49/xhQMnsAMCEcUdtV23XafR/p/HzE5iBxIDiUHk62w5dgR7CJ2BmvCTmC1gI2dxuqwZuwkgYfjGvHChQyRFSLDOSAcZlEA5INfkhF/f8uS/Jti2IKKtYoziIa9JCAdtom/eYgfjFr8DytyqEiBHtOgNvzbfAzHhZvD7Drj/rgXzDPMMc7CdYEt7gQz7of7wDlwhuz3Wfz7aGxB6mC28wbHkg6ewnFk5gpm5cK1BAKypLNlYqEol+0Hd0vBGDZHwhs7hu1gZ+8AiL2X0ADwhjW4pyKsy9+57AYA3Avh/0lse2xCBQDXBIDjTwFgvvvOmbyGvwHcK0+28uSyvCEdTrxIgAZU4V+hAwyACbCEGXEALsAT+IIgEAYiQSxIBNPhGhaBTBjxTDAXLAIFoAisButBOdgKdoA9YD84DGrBCXAGXABXQCu4Ce4DBegEL0AveAf6EQShIAyEiegghogZYoM4IG6INxKERCDRSCKSjAgRCSJH5iJLkCKkBClHtiNVyK/IceQM0oS0IXeRdqQbeY18QjGUjmqi+qg5Og51Q/3QcDQWnYYK0Ww0H12KrkTL0Ep0H1qDnkGvoDdRBfoC7cMApoyxMCPMFnPDArBILAlLxWTYfKwQK8UqsQNYPVyL1zEF1oN9xMk4E2fjtnAmQ/E4nIdn4/PxYrwc34PX4Ofw63g73ot/JTFIeiQbkgeJQ5pMEpJmkgpIpaRdpGOk8/B/7iS9I5PJLLIF2RWu9kRyGnkOuZi8mXyQ3EBuI3eQ+ygUig7FhuJFiaRwKbmUAspGyj7Kaco1SiflA1WZakh1oAZTk6gS6mJqKXUv9RT1GvUZtV9JTclMyUMpUomvNFtpldJOpXqlq0qdSv00dZoFzYsWS0ujLaKV0Q7QztMe0N4oKysbK7srT1IWKy9ULlM+pHxJuV35I12Dbk0PoE+ly+kr6bvpDfS79DcMBsOc4ctIYuQyVjKqGGcZjxgfVJgqY1U4KnyVBSoVKjUq11Reqiqpmqn6qU5XzVctVT2ielW1R01JzVwtQI2rNl+tQu242m21PnWmur16pHqmerH6XvUm9S4Nioa5RpAGX2Opxg6NsxodTIxpwgxg8phLmDuZ55mdmmRNC02OZppmkeZ+zRbNXi0NLSeteK1ZWhVaJ7UULIxlzuKwMlirWIdZt1ifRumP8hslGLVi1IFR10a91x6t7ast0C7UPqh9U/uTDlsnSCddZ41Orc5DXVzXWneS7kzdLbrndXtGa472HM0bXTj68Oh7eqietV603hy9HXrNen36Bvoh+lL9jfpn9XsMWAa+BmkG6wxOGXQbMg29DcWG6wxPGz5na7H92BnsMvY5dq+RnlGokdxou1GLUb+xhXGc8WLjg8YPTWgmbiapJutMGk16TQ1NJ5jONa02vWemZOZmJjLbYHbR7L25hXmC+TLzWvMuC20LjkW+RbXFA0uGpY9ltmWl5Q0rspWbVbrVZqtWa9Ta2VpkXWF91Qa1cbER22y2aRtDGuM+RjKmcsxtW7qtn22ebbVt+1jW2Iixi8fWjn05znRc0rg14y6O+2rnbJdht9Puvr2GfZj9Yvt6+9cO1g48hwqHG44Mx2DHBY51jq+cbJwETluc7jgznSc4L3NudP7i4uoiczng0u1q6prsusn1tpumW5Rbsdsld5K7v/sC9xPuHz1cPHI9Dnv85Wnrme6517NrvMV4wfid4zu8jL24Xtu9FN5s72Tvbd4KHyMfrk+lz2NfE1++7y7fZ35Wfml++/xe+tv5y/yP+b8P8AiYF9AQiAWGBBYGtgRpBMUFlQc9CjYOFgZXB/eGOIfMCWkIJYWGh64Jvc3R5/A4VZzeMNeweWHnwunhMeHl4Y8jrCNkEfUT0AlhE9ZOeDDRbKJkYm0kiOREro18GGURlR312yTypKhJFZOeRttHz42+GMOMmRGzN+ZdrH/sqtj7cZZx8rjGeNX4qfFV8e8TAhNKEhSTx02eN/lKom6iOLEuiZIUn7QrqW9K0JT1UzqnOk8tmHprmsW0WdOaputOz5h+cobqDO6MI8mk5ITkvcmfuZHcSm5fCidlU0ovL4C3gfeC78tfx+8WeAlKBM9SvVJLUruEXsK1wm6Rj6hU1CMOEJeLX6WFpm1Ne58emb47fSAjIeNgJjUzOfO4REOSLjmXZZA1K6tNaiMtkCqyPbLXZ/fKwmW7cpCcaTl1uZrwkNsst5T/JG/P886ryPswM37mkVnqsySzmmdbz14x+1l+cP4vc/A5vDmNc43mLprbPs9v3vb5yPyU+Y0LTBYsXdC5MGThnkW0RemLfl9st7hk8dslCUvql+ovXbi046eQn6oLVApkBbeXeS7buhxfLl7essJxxcYVXwv5hZeL7IpKiz4X84ov/2z/c9nPAytTV7asclm1ZTV5tWT1rTU+a/aUqJfkl3SsnbC2Zh17XeG6t+tnrG8qdSrduoG2Qb5BURZRVrfRdOPqjZ/LReU3K/wrDm7S27Ri0/vN/M3XtvhuObBVf2vR1k/bxNvubA/ZXlNpXlm6g7wjb8fTnfE7L/7i9kvVLt1dRbu+7JbsVuyJ3nOuyrWqaq/e3lXVaLW8unvf1H2t+wP31x2wPbD9IOtg0SFwSH7o+a/Jv946HH648YjbkQNHzY5uOsY8VliD1Myu6a0V1SrqEuvajocdb6z3rD/229jfdp8wOlFxUuvkqlO0U0tPDZzOP93XIG3oOSM809E4o/H+2clnb5ybdK7lfPj5SxeCL5y96Hfx9CWvSyeaPJqOX3a7XHvF5UpNs3Pzsd+dfz/W4tJSc9X1al2re2t92/i2U9d8rp25Hnj9wg3OjSs3J95suxV3687tqbcVd/h3uu5m3H11L+9e//2FD0gPCh+qPSx9pPeo8g+rPw4qXBQn2wPbmx/HPL7fwet48STnyefOpU8ZT0ufGT6r6nLoOtEd3N36fMrzzhfSF/09BX+q/7nppeXLo3/5/tXcO7m385Xs1cDr4jc6b3a/dXrb2BfV9+hd5rv+94UfdD7s+ej28eKnhE/P+md+pnwu+2L1pf5r+NcHA5kDA1KujDt4FsBgjaamAvB6N7wXJcKzQysANJWhu9GgAhm6z0GMDBeC/i88dH8iGuAZAuz2BSBuIQARDQBsgcUMYjp8E8f8WF+AOjp+K5AhnpxUR4dBgNBl8GjyYWDgjT4AlHoAvsgGBvo3Dwx82QnP3XcBaMgeupMRajI8x29TJVBTS/FC4v3j8x/Ro2BmUK5IGQAAAAlwSFlzAAALEwAACxMBAJqcGAAABNxpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuMS4yIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4xPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpDb21wcmVzc2lvbj41PC90aWZmOkNvbXByZXNzaW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTItMDktMDdUMDk6MDk6NjQ8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPlBpeGVsbWF0b3IgMi4xPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpmozCoAAAJTElEQVRoBdVZCVBU5x1/b+9lF1hOJUAgRSHE2IAoSTXj0cRONCl2bMd4TBvbXNXYTqedZpppo+1kOqbT6RGTtMEMGRNHK1q1rTY2YLB1uEQX5BJWLnGXYzn2eHu+fVe/Zdnl7b7v7X5LxYY3O/B9//P3++73PVy7NQ+L8nBRdPdLhUdLJMMwcf0XAT0AD2CIY5SIsvuCoA/gEwcDIwCsxR1ECS+0QgSSgICI3ULDQ4oPwxZOAGaBFPq+GQGE4SBlXHB+4EARLN83PPNLFMIM3Gd7wI9+8TwAbQiwn0CosngozCGVLF70AeThk3iO2OIoAQ5gJ16Yh+MwdnbBwMHaIFmo9eHeEQCIvTTrojgPzfpYgD7ykUlwlQzXyCUaOS7lKRmGsVGhOo5xnFohTeBbhJSQwr0gQNKsxcM4GX745ZmlqQ8kp8y0u91ht/a39dIs5/SBH6DGqeTSNNUsSq+PtZB8XzZJer8I0AxrdjJu/xpMLtnw+vZtm9etLn7ooSUpWpmgZWivc3JkqKu96bNTle/dHGRHKEapkGYneIpeu/TrjZo5Bgqi4/jOi/+cE0Qt4dqt+VENRJW4w+sb9wL1hl2HD35n++MFmQLMor6+yYHa6j9988hHYHKUvlHX9N3Hwkx7jyf+5GCYRLwytxOL28A0Ew7KzpAb32j51Q/WZKlhFtFkioyCZw/8zr37lcp9G/ZPeyJMvRjL32sjtBFV9FbjOY4TtIPd99bl3+4om5f/bChJatG+U/1bJiLnKy5X8ZLFKMYPwOwA6N+pNrxakhkjNooa1+YvEdrFcbABBOJYoXGn2+PIPXrh6vcKE4Vp+RKWIswe64TXbqN9GCbVKJMz1elLE5IUfKPZMo1BtiNUVHH0AM4xzJjvvXOfR0VPDU+1X53qGSL98zvywaUP6ko2LV2Zp5DzVHFg4HnNFuNxtng2Haz//opUYZSAhCRunRxuMM5sYZzHaZuw2Sw2pwMwkal0yclZ6akZiXet+o+t+rTksh15qzJQW1ksoV+OSgA0v1P1WuWeR8SCmSdqK8fuYBg11dHRWn/95ohVaMlh6kfWbSx/EgTRv99p2l1cUcjvCaEDgkSGeJrDHeQv396XIxLRbL5UOW5ijD01x/7WPTN2RMJ6DA2XwC+n/Jktz5Wc7Pn05ZVbs2H9IOIOSY9oyRHKfS+uhS87NHEDoCdaa//wwSx6SJ5wkanlX0cOnR91mqoGu8NOIOFmKDUkAjhNv3hgD7z5OaLG2Ea0fHr07A2UfCEbNWeoOnxxyt5wwe4KCQMFiQZ1YAN7JAIEtfqFpwoi0gSqbuvNG0OtR//eDtVGF2q4rnfP3NIbmycj7Ji5w2mERliVIW0DKypKtLChynnazK36v9QgBREmx7DErn809uXL2WE5Lzw5WI8eEKUHuCdKy+D7lvtOQ2frFSKOjVPIou5kk51jKHbuhzFga0N9kEbbtrJcaDzCZWr7vBGqQhcmeq9X/qIrSTnXBU7Sje4em4BDUvZkng4acdLcph+d2begamShBPM4w15pkD0RNzI1dLvhXF2G9vE4cgFTjiNZ1AEnkUj4M0MkUewewDC12JBkRowiYeFinKGpYRciAU4ily/TxJyjKARE11pyzAxHKiL1SIr37lidPjfaRexmxBKb4Y9DbdEsZnRIBMSGOetDbM1ZGFTB7nfe2ov6/ubrGvlWxdlYGWJ2EciNS+FtRrG2OM8BbiqO9cVLo6zPKAQwBfRaCtc9WloUs4vDDHQJSPkCPjIVdPMMCwiOEhyOR/+puL7bLnjD5RauZrgY7vzgGCNVRuSPUpXJ1XhseEgtMuqNPG8F8qYXP84QcY0iSmxBExKhHcZ6cNsX64k9iWXYRI1p9IcPZEBC5ZYfTqLfxETmiNBh8vJv2r0RncBZqOfX7n84QophDnIa5XICqQfudvfCNyw8Y+cru+g4pjIt7K/x/pQcAXrAfdqsNwibQCCJ3QPApbOv+ZZz+1ItZEPOeuall3527CNNohRh19Tam99/s5mPQUKSxLqP/8wXBcoc0dM/IBQLJUg9gHcPXJgUCaco+vnbe9khB0PFHq8R6XGMpU3uqp3lEXJ/lTT9p2cIIheIkAhouO7+3oZWcMEDe7K+fqh6s5IdImiPcIDAHGZk4C2PGbK7nz8BvaQxTuj7bltEnXkKJALA/mJTz0VjN8+RV8S12450Vm1WckaCGvOysVjgHItNOX2DDrf0ha7Xt/ACBYvseN2d9hso2xjiKyUInHDzyu3Rhs+cIr2Ap+w5Yqh9uQJzeJgBK2V0MXYfSwU/0YCPiuAMSrOY28eOOXx9dspCkesPddX/fgVsoRkZa2671kYE6UT/L1UUpUS3CGhxzKsn0gqy8eWZy5OgJwtckbf2G/ufLpX06BtN0xz4VGMjWYuXnfaCvwwoWEmWoDgfSy55turdE+f3b81UwAJRQ8cH6y59cmUCBRY452grvoRm6bda/+qPywpW/bToK/A3zGAg92hvS/PVy1caGts6GqeGC9Pz0pJTE7OWr1q1/mtPbSgvyhZf+6hrhmPVtec+rL0dDBbjf3wEXPiKAwefy0gq/dGyNdE5xEgrou67+9fq0fZTh08OixgIxahDKOCpwCbrB+TlX5a1WB2FafnwsSRMgiTxXh88c94+bfik6po9jhU5PgIAiYK4U29Slj+q6pzs9slzCtQJSPCiGrHk3fOGc41en7nm9OlOyKVqFG+pqsj/KTGun9wyVNdFryzJsbh66yzTOmValhK2mkRJG1Ixts6RuqPGtgmWHDh74vR1U1xI/MZJ8UziUF5QYDDdpl071hT7b9s5ma40deVjutwctSbygxHfJ1j2gc8fDlOHxaB3TflldlPjhyea0Bb+YIzZ//MnEAhApJd8e9sTy0L3LrhUp0zPVadlKnVamUIpk5KkRyrXyjAfSXnslHXSYxnzTFmCL6m4zz787/oz9Z0RsNCr/yuBQCZPUu5X161Z9nB2ekrsewTgwoDPH0bTYGvX1Vv96FihlnhiBfzWFmodU8hhquz8vAeXZqRkpKq1CtAFlN0t0YAeoHwut8tmsZonxgcGhud7jSUEcI8JCBMstAT1MLfQOOYdH+16fd7hF9oRB5duYC1dpM8M8pkhtHg5zL0PLDoOQcCLcxIH0YOxzzuZB6RxHAT/H1OHBz2Q/r/iZq+07nQhoQAAAABJRU5ErkJggg=="> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link type="text/css" rel="stylesheet" href="//fonts.googleapis.com/css?family=Rokkitt:400,700|Source+Code+Pro"> <link type="text/css" rel="stylesheet" href="{{ base_url }}/assets/style.css?v={{ genghis_version }}"> <script type="text/javascript" src="{{ base_url }}/assets/script.js?v={{ genghis_version }}"></script> <script type="text/javascript">jQuery(function() { Genghis.boot('{{ base_url }}'); });</script> </head> <body> <header class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container fixed"> <a class="magic brand" href="{{ base_url }}/">Genghis</a> <nav></nav> </div> </div> </header> <noscript><h1>You won&#146;t get far in life without JavaScript&hellip;</h1></noscript> <section id="genghis" class="container fluid"> <aside id="alerts"></aside> <section id="servers" class="app-section"></section> <section id="databases" class="app-section"></section> <section id="collections" class="app-section"></section> <section id="documents" class="app-section"></section> <section id="document" class="app-section"><header></header></section> <section id="error" class="app-section"></section> </section> <footer id="footer" class="container"> <p><a href="http://genghisapp.com">Genghis</a>, by <a href="http://justinhileman.info">Justin Hileman</a>.</p> <p><a class="keyboard-shortcuts" href="#">Keyboard shortcuts available <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAALCAYAAACd1bY6AAAEJGlDQ1BJQ0MgUHJvZmlsZQAAOBGFVd9v21QUPolvUqQWPyBYR4eKxa9VU1u5GxqtxgZJk6XtShal6dgqJOQ6N4mpGwfb6baqT3uBNwb8AUDZAw9IPCENBmJ72fbAtElThyqqSUh76MQPISbtBVXhu3ZiJ1PEXPX6yznfOec7517bRD1fabWaGVWIlquunc8klZOnFpSeTYrSs9RLA9Sr6U4tkcvNEi7BFffO6+EdigjL7ZHu/k72I796i9zRiSJPwG4VHX0Z+AxRzNRrtksUvwf7+Gm3BtzzHPDTNgQCqwKXfZwSeNHHJz1OIT8JjtAq6xWtCLwGPLzYZi+3YV8DGMiT4VVuG7oiZpGzrZJhcs/hL49xtzH/Dy6bdfTsXYNY+5yluWO4D4neK/ZUvok/17X0HPBLsF+vuUlhfwX4j/rSfAJ4H1H0qZJ9dN7nR19frRTeBt4Fe9FwpwtN+2p1MXscGLHR9SXrmMgjONd1ZxKzpBeA71b4tNhj6JGoyFNp4GHgwUp9qplfmnFW5oTdy7NamcwCI49kv6fN5IAHgD+0rbyoBc3SOjczohbyS1drbq6pQdqumllRC/0ymTtej8gpbbuVwpQfyw66dqEZyxZKxtHpJn+tZnpnEdrYBbueF9qQn93S7HQGGHnYP7w6L+YGHNtd1FJitqPAR+hERCNOFi1i1alKO6RQnjKUxL1GNjwlMsiEhcPLYTEiT9ISbN15OY/jx4SMshe9LaJRpTvHr3C/ybFYP1PZAfwfYrPsMBtnE6SwN9ib7AhLwTrBDgUKcm06FSrTfSj187xPdVQWOk5Q8vxAfSiIUc7Z7xr6zY/+hpqwSyv0I0/QMTRb7RMgBxNodTfSPqdraz/sDjzKBrv4zu2+a2t0/HHzjd2Lbcc2sG7GtsL42K+xLfxtUgI7YHqKlqHK8HbCCXgjHT1cAdMlDetv4FnQ2lLasaOl6vmB0CMmwT/IPszSueHQqv6i/qluqF+oF9TfO2qEGTumJH0qfSv9KH0nfS/9TIp0Wboi/SRdlb6RLgU5u++9nyXYe69fYRPdil1o1WufNSdTTsp75BfllPy8/LI8G7AUuV8ek6fkvfDsCfbNDP0dvRh0CrNqTbV7LfEEGDQPJQadBtfGVMWEq3QWWdufk6ZSNsjG2PQjp3ZcnOWWing6noonSInvi0/Ex+IzAreevPhe+CawpgP1/pMTMDo64G0sTCXIM+KdOnFWRfQKdJvQzV1+Bt8OokmrdtY2yhVX2a+qrykJfMq4Ml3VR4cVzTQVz+UoNne4vcKLoyS+gyKO6EHe+75Fdt0Mbe5bRIf/wjvrVmhbqBN97RD1vxrahvBOfOYzoosH9bq94uejSOQGkVM6sN/7HelL4t10t9F4gPdVzydEOx83Gv+uNxo7XyL/FtFl8z9ZAHF4bBsrEwAAAHlJREFUKBW1kQEOgCAIRaXD1M30TBwtLmOQ4YiNLbPY9E/2+WxPyDnvKaWVDyHiVkp5/V6uIJYzcEoljCSBa1qh1tqiPrjBMNO4UXZ9zjLTpnyG1FNtbvZbZtocZdfnfmPmWenGSL2fLDPPKArRvvffmHlWOhSp99MBQtJULQeOLUgAAAAASUVORK5CYII="></a></p> </footer> </body> </html>

@@error.html.mustache 1a1cee9ea37368bf1001c4eb5f99b273
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Genghis &mdash; {{ status }}: {{ message }}</title> <link rel="shortcut icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAME2lDQ1BJQ0MgUHJvZmlsZQAASA2tV2dYU8kanlNSCAktEAEpoTdRepVeAyhIFWyEJCShhBAIKvayqMBaUBHBiq6K2NYCyFoQK8oi2PsGEQVlXSzYULlzKOrevfvvnueZOe95553v++abOfPMAKDSypVKM1A1ADIlubLoEH/25MQkNuUBoAJtQAcWgMHl5Uj9oqIiwL8+724BhGi8bkvY+lfZ/25Q5wtyeAAgUbA5hZ/Dy4T4KABYHU8qywWARNgznZkrJfBqiDVlMECIdxJYOITrCJwyhJsHNbHRAVCjAIBK53JlQgAYPZBn5/GE0I4KHWI7CV8sgXg8xN48EZcP8VyIx2RmZhF4D8SWKT/YEf6AudyUbza5XOE3PDQW2BM6DhTnSDO4swc//p9VZoYc5mvwMYA1PSc9Jhy+WTBvs3jcoBiItSFeKRJwIob5XdJc/+hh/oQ4lxMLsSbU3BDJQ+OGcZc8Pc4PYj3If07PCif0ME+otiRlYiTEGhCb8nICYO4JX6hLvig2YVgTwRcEBkEMVxE6WZYVPaIX5eTFjPD5+aKAiSP6NG4YMd8qUF/IlUE0GA9aJsgIIfwaQ36fNDeKiJPw1SLJmDg8FvRJqiyY0BD8J0HO4HiJ2ES5othQyMOYMbVcWSyhgWPE9FLFwRyIYWyYnUgWOsL7SjMG1zTsi8XK5NFEHkwhThVI4ogcEnwhnxtI5BbmBNsEggEXyIAApAAJ6AZsEAECQOBwzYa8BHI8kAUyYJGxVUdaSE9JbaTHpJskBenuCAd7DuuAGPAhHrL1Q3/Ix4B88Ce0KgA5I95wXdwb98QjYO0LiwPuhruPtLX01PaM4OFYhbCv7bBt/+Ho86DFLyO6GeLFshE83CflW49/xhQMnsAMCEcUdtV23XafR/p/HzE5iBxIDiUHk62w5dgR7CJ2BmvCTmC1gI2dxuqwZuwkgYfjGvHChQyRFSLDOSAcZlEA5INfkhF/f8uS/Jti2IKKtYoziIa9JCAdtom/eYgfjFr8DytyqEiBHtOgNvzbfAzHhZvD7Drj/rgXzDPMMc7CdYEt7gQz7of7wDlwhuz3Wfz7aGxB6mC28wbHkg6ewnFk5gpm5cK1BAKypLNlYqEol+0Hd0vBGDZHwhs7hu1gZ+8AiL2X0ADwhjW4pyKsy9+57AYA3Avh/0lse2xCBQDXBIDjTwFgvvvOmbyGvwHcK0+28uSyvCEdTrxIgAZU4V+hAwyACbCEGXEALsAT+IIgEAYiQSxIBNPhGhaBTBjxTDAXLAIFoAisButBOdgKdoA9YD84DGrBCXAGXABXQCu4Ce4DBegEL0AveAf6EQShIAyEiegghogZYoM4IG6INxKERCDRSCKSjAgRCSJH5iJLkCKkBClHtiNVyK/IceQM0oS0IXeRdqQbeY18QjGUjmqi+qg5Og51Q/3QcDQWnYYK0Ww0H12KrkTL0Ep0H1qDnkGvoDdRBfoC7cMApoyxMCPMFnPDArBILAlLxWTYfKwQK8UqsQNYPVyL1zEF1oN9xMk4E2fjtnAmQ/E4nIdn4/PxYrwc34PX4Ofw63g73ot/JTFIeiQbkgeJQ5pMEpJmkgpIpaRdpGOk8/B/7iS9I5PJLLIF2RWu9kRyGnkOuZi8mXyQ3EBuI3eQ+ygUig7FhuJFiaRwKbmUAspGyj7Kaco1SiflA1WZakh1oAZTk6gS6mJqKXUv9RT1GvUZtV9JTclMyUMpUomvNFtpldJOpXqlq0qdSv00dZoFzYsWS0ujLaKV0Q7QztMe0N4oKysbK7srT1IWKy9ULlM+pHxJuV35I12Dbk0PoE+ly+kr6bvpDfS79DcMBsOc4ctIYuQyVjKqGGcZjxgfVJgqY1U4KnyVBSoVKjUq11Reqiqpmqn6qU5XzVctVT2ielW1R01JzVwtQI2rNl+tQu242m21PnWmur16pHqmerH6XvUm9S4Nioa5RpAGX2Opxg6NsxodTIxpwgxg8phLmDuZ55mdmmRNC02OZppmkeZ+zRbNXi0NLSeteK1ZWhVaJ7UULIxlzuKwMlirWIdZt1ifRumP8hslGLVi1IFR10a91x6t7ast0C7UPqh9U/uTDlsnSCddZ41Orc5DXVzXWneS7kzdLbrndXtGa472HM0bXTj68Oh7eqietV603hy9HXrNen36Bvoh+lL9jfpn9XsMWAa+BmkG6wxOGXQbMg29DcWG6wxPGz5na7H92BnsMvY5dq+RnlGokdxou1GLUb+xhXGc8WLjg8YPTWgmbiapJutMGk16TQ1NJ5jONa02vWemZOZmJjLbYHbR7L25hXmC+TLzWvMuC20LjkW+RbXFA0uGpY9ltmWl5Q0rspWbVbrVZqtWa9Ta2VpkXWF91Qa1cbER22y2aRtDGuM+RjKmcsxtW7qtn22ebbVt+1jW2Iixi8fWjn05znRc0rg14y6O+2rnbJdht9Puvr2GfZj9Yvt6+9cO1g48hwqHG44Mx2DHBY51jq+cbJwETluc7jgznSc4L3NudP7i4uoiczng0u1q6prsusn1tpumW5Rbsdsld5K7v/sC9xPuHz1cPHI9Dnv85Wnrme6517NrvMV4wfid4zu8jL24Xtu9FN5s72Tvbd4KHyMfrk+lz2NfE1++7y7fZ35Wfml++/xe+tv5y/yP+b8P8AiYF9AQiAWGBBYGtgRpBMUFlQc9CjYOFgZXB/eGOIfMCWkIJYWGh64Jvc3R5/A4VZzeMNeweWHnwunhMeHl4Y8jrCNkEfUT0AlhE9ZOeDDRbKJkYm0kiOREro18GGURlR312yTypKhJFZOeRttHz42+GMOMmRGzN+ZdrH/sqtj7cZZx8rjGeNX4qfFV8e8TAhNKEhSTx02eN/lKom6iOLEuiZIUn7QrqW9K0JT1UzqnOk8tmHprmsW0WdOaputOz5h+cobqDO6MI8mk5ITkvcmfuZHcSm5fCidlU0ovL4C3gfeC78tfx+8WeAlKBM9SvVJLUruEXsK1wm6Rj6hU1CMOEJeLX6WFpm1Ne58emb47fSAjIeNgJjUzOfO4REOSLjmXZZA1K6tNaiMtkCqyPbLXZ/fKwmW7cpCcaTl1uZrwkNsst5T/JG/P886ryPswM37mkVnqsySzmmdbz14x+1l+cP4vc/A5vDmNc43mLprbPs9v3vb5yPyU+Y0LTBYsXdC5MGThnkW0RemLfl9st7hk8dslCUvql+ovXbi046eQn6oLVApkBbeXeS7buhxfLl7essJxxcYVXwv5hZeL7IpKiz4X84ov/2z/c9nPAytTV7asclm1ZTV5tWT1rTU+a/aUqJfkl3SsnbC2Zh17XeG6t+tnrG8qdSrduoG2Qb5BURZRVrfRdOPqjZ/LReU3K/wrDm7S27Ri0/vN/M3XtvhuObBVf2vR1k/bxNvubA/ZXlNpXlm6g7wjb8fTnfE7L/7i9kvVLt1dRbu+7JbsVuyJ3nOuyrWqaq/e3lXVaLW8unvf1H2t+wP31x2wPbD9IOtg0SFwSH7o+a/Jv946HH648YjbkQNHzY5uOsY8VliD1Myu6a0V1SrqEuvajocdb6z3rD/229jfdp8wOlFxUuvkqlO0U0tPDZzOP93XIG3oOSM809E4o/H+2clnb5ybdK7lfPj5SxeCL5y96Hfx9CWvSyeaPJqOX3a7XHvF5UpNs3Pzsd+dfz/W4tJSc9X1al2re2t92/i2U9d8rp25Hnj9wg3OjSs3J95suxV3687tqbcVd/h3uu5m3H11L+9e//2FD0gPCh+qPSx9pPeo8g+rPw4qXBQn2wPbmx/HPL7fwet48STnyefOpU8ZT0ufGT6r6nLoOtEd3N36fMrzzhfSF/09BX+q/7nppeXLo3/5/tXcO7m385Xs1cDr4jc6b3a/dXrb2BfV9+hd5rv+94UfdD7s+ej28eKnhE/P+md+pnwu+2L1pf5r+NcHA5kDA1KujDt4FsBgjaamAvB6N7wXJcKzQysANJWhu9GgAhm6z0GMDBeC/i88dH8iGuAZAuz2BSBuIQARDQBsgcUMYjp8E8f8WF+AOjp+K5AhnpxUR4dBgNBl8GjyYWDgjT4AlHoAvsgGBvo3Dwx82QnP3XcBaMgeupMRajI8x29TJVBTS/FC4v3j8x/Ro2BmUK5IGQAAAAlwSFlzAAALEwAACxMBAJqcGAAABNxpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuMS4yIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4xPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpDb21wcmVzc2lvbj41PC90aWZmOkNvbXByZXNzaW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NjQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTItMDktMDdUMDk6MDk6NjQ8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPlBpeGVsbWF0b3IgMi4xPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpmozCoAAAJTElEQVRoBdVZCVBU5x1/b+9lF1hOJUAgRSHE2IAoSTXj0cRONCl2bMd4TBvbXNXYTqedZpppo+1kOqbT6RGTtMEMGRNHK1q1rTY2YLB1uEQX5BJWLnGXYzn2eHu+fVe/Zdnl7b7v7X5LxYY3O/B9//P3++73PVy7NQ+L8nBRdPdLhUdLJMMwcf0XAT0AD2CIY5SIsvuCoA/gEwcDIwCsxR1ECS+0QgSSgICI3ULDQ4oPwxZOAGaBFPq+GQGE4SBlXHB+4EARLN83PPNLFMIM3Gd7wI9+8TwAbQiwn0CosngozCGVLF70AeThk3iO2OIoAQ5gJ16Yh+MwdnbBwMHaIFmo9eHeEQCIvTTrojgPzfpYgD7ykUlwlQzXyCUaOS7lKRmGsVGhOo5xnFohTeBbhJSQwr0gQNKsxcM4GX745ZmlqQ8kp8y0u91ht/a39dIs5/SBH6DGqeTSNNUsSq+PtZB8XzZJer8I0AxrdjJu/xpMLtnw+vZtm9etLn7ooSUpWpmgZWivc3JkqKu96bNTle/dHGRHKEapkGYneIpeu/TrjZo5Bgqi4/jOi/+cE0Qt4dqt+VENRJW4w+sb9wL1hl2HD35n++MFmQLMor6+yYHa6j9988hHYHKUvlHX9N3Hwkx7jyf+5GCYRLwytxOL28A0Ew7KzpAb32j51Q/WZKlhFtFkioyCZw/8zr37lcp9G/ZPeyJMvRjL32sjtBFV9FbjOY4TtIPd99bl3+4om5f/bChJatG+U/1bJiLnKy5X8ZLFKMYPwOwA6N+pNrxakhkjNooa1+YvEdrFcbABBOJYoXGn2+PIPXrh6vcKE4Vp+RKWIswe64TXbqN9GCbVKJMz1elLE5IUfKPZMo1BtiNUVHH0AM4xzJjvvXOfR0VPDU+1X53qGSL98zvywaUP6ko2LV2Zp5DzVHFg4HnNFuNxtng2Haz//opUYZSAhCRunRxuMM5sYZzHaZuw2Sw2pwMwkal0yclZ6akZiXet+o+t+rTksh15qzJQW1ksoV+OSgA0v1P1WuWeR8SCmSdqK8fuYBg11dHRWn/95ohVaMlh6kfWbSx/EgTRv99p2l1cUcjvCaEDgkSGeJrDHeQv396XIxLRbL5UOW5ijD01x/7WPTN2RMJ6DA2XwC+n/Jktz5Wc7Pn05ZVbs2H9IOIOSY9oyRHKfS+uhS87NHEDoCdaa//wwSx6SJ5wkanlX0cOnR91mqoGu8NOIOFmKDUkAjhNv3hgD7z5OaLG2Ea0fHr07A2UfCEbNWeoOnxxyt5wwe4KCQMFiQZ1YAN7JAIEtfqFpwoi0gSqbuvNG0OtR//eDtVGF2q4rnfP3NIbmycj7Ji5w2mERliVIW0DKypKtLChynnazK36v9QgBREmx7DErn809uXL2WE5Lzw5WI8eEKUHuCdKy+D7lvtOQ2frFSKOjVPIou5kk51jKHbuhzFga0N9kEbbtrJcaDzCZWr7vBGqQhcmeq9X/qIrSTnXBU7Sje4em4BDUvZkng4acdLcph+d2begamShBPM4w15pkD0RNzI1dLvhXF2G9vE4cgFTjiNZ1AEnkUj4M0MkUewewDC12JBkRowiYeFinKGpYRciAU4ily/TxJyjKARE11pyzAxHKiL1SIr37lidPjfaRexmxBKb4Y9DbdEsZnRIBMSGOetDbM1ZGFTB7nfe2ov6/ubrGvlWxdlYGWJ2EciNS+FtRrG2OM8BbiqO9cVLo6zPKAQwBfRaCtc9WloUs4vDDHQJSPkCPjIVdPMMCwiOEhyOR/+puL7bLnjD5RauZrgY7vzgGCNVRuSPUpXJ1XhseEgtMuqNPG8F8qYXP84QcY0iSmxBExKhHcZ6cNsX64k9iWXYRI1p9IcPZEBC5ZYfTqLfxETmiNBh8vJv2r0RncBZqOfX7n84QophDnIa5XICqQfudvfCNyw8Y+cru+g4pjIt7K/x/pQcAXrAfdqsNwibQCCJ3QPApbOv+ZZz+1ItZEPOeuall3527CNNohRh19Tam99/s5mPQUKSxLqP/8wXBcoc0dM/IBQLJUg9gHcPXJgUCaco+vnbe9khB0PFHq8R6XGMpU3uqp3lEXJ/lTT9p2cIIheIkAhouO7+3oZWcMEDe7K+fqh6s5IdImiPcIDAHGZk4C2PGbK7nz8BvaQxTuj7bltEnXkKJALA/mJTz0VjN8+RV8S12450Vm1WckaCGvOysVjgHItNOX2DDrf0ha7Xt/ACBYvseN2d9hso2xjiKyUInHDzyu3Rhs+cIr2Ap+w5Yqh9uQJzeJgBK2V0MXYfSwU/0YCPiuAMSrOY28eOOXx9dspCkesPddX/fgVsoRkZa2671kYE6UT/L1UUpUS3CGhxzKsn0gqy8eWZy5OgJwtckbf2G/ufLpX06BtN0xz4VGMjWYuXnfaCvwwoWEmWoDgfSy55turdE+f3b81UwAJRQ8cH6y59cmUCBRY452grvoRm6bda/+qPywpW/bToK/A3zGAg92hvS/PVy1caGts6GqeGC9Pz0pJTE7OWr1q1/mtPbSgvyhZf+6hrhmPVtec+rL0dDBbjf3wEXPiKAwefy0gq/dGyNdE5xEgrou67+9fq0fZTh08OixgIxahDKOCpwCbrB+TlX5a1WB2FafnwsSRMgiTxXh88c94+bfik6po9jhU5PgIAiYK4U29Slj+q6pzs9slzCtQJSPCiGrHk3fOGc41en7nm9OlOyKVqFG+pqsj/KTGun9wyVNdFryzJsbh66yzTOmValhK2mkRJG1Ixts6RuqPGtgmWHDh74vR1U1xI/MZJ8UziUF5QYDDdpl071hT7b9s5ma40deVjutwctSbygxHfJ1j2gc8fDlOHxaB3TflldlPjhyea0Bb+YIzZ//MnEAhApJd8e9sTy0L3LrhUp0zPVadlKnVamUIpk5KkRyrXyjAfSXnslHXSYxnzTFmCL6m4zz787/oz9Z0RsNCr/yuBQCZPUu5X161Z9nB2ekrsewTgwoDPH0bTYGvX1Vv96FihlnhiBfzWFmodU8hhquz8vAeXZqRkpKq1CtAFlN0t0YAeoHwut8tmsZonxgcGhud7jSUEcI8JCBMstAT1MLfQOOYdH+16fd7hF9oRB5duYC1dpM8M8pkhtHg5zL0PLDoOQcCLcxIH0YOxzzuZB6RxHAT/H1OHBz2Q/r/iZq+07nQhoQAAAABJRU5ErkJggg=="> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link type="text/css" rel="stylesheet" href="//fonts.googleapis.com/css?family=Rokkitt:400,700|Source+Code+Pro"> <link type="text/css" rel="stylesheet" href="{{ base_url }}/assets/style.css?v={{ genghis_version }}"> </head> <body> <header class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container fixed"> <a class="magic brand" href="{{ base_url }}/">Genghis</a> <nav></nav> </div> </div> </header> <header class="masthead epic error"> <div class="container"> <h1>{{ status }}: {{ message }}</h1> <p> If you think you've reached this message in error, please press <strong>0</strong> to speak with an operator. Otherwise, hang up and try again. </p> </div> </header> <section id="genghis" class="container fluid"></section> <footer id="footer" class="container"> <p><a href="http://genghisapp.com">Genghis</a>, by <a href="http://justinhileman.info">Justin Hileman</a>.</p> </footer> </body> </html>

@@style.css 571d6c6ce7fe81686d9bc8c50bcfc73a
/**
 * Genghis v2.3.4
 *
 * The single-file MongoDB admin app
 *
 * http://genghisapp.com
 *
 * @author Justin Hileman <hide@address.com>
 */
.CodeMirror{font-family:monospace;height:300px}.CodeMirror-scroll{overflow:auto}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7}.CodeMirror-linenumbers{}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999}.CodeMirror div.CodeMirror-cursor{border-left:1px solid black;z-index:3}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor{width:auto;border:0;background:#7e7;z-index:1}.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite{}.cm-tab{display:inline-block}.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{color:#000}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-property{color:#000}.cm-s-default .cm-operator{color:#000}.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-error{color:red}.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:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-invalidchar{color:red}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror{line-height:1;position:relative;overflow:hidden;background:#fff;color:#000}.CodeMirror-scroll{margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;padding-right:30px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-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;z-index:6}.CodeMirror-gutters{position:absolute;left:0;top:0;height:100%;padding-bottom:30px;z-index:3}.CodeMirror-gutter{height:100%;padding-bottom:30px;margin-bottom:-32px;display:inline-block;*zoom:1;*display:inline}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text}.CodeMirror pre{-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}.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{display:inline-block}.CodeMirror-wrap .CodeMirror-scroll{overflow-x:hidden}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-measure pre{position:static}.CodeMirror div.CodeMirror-cursor{position:absolute;visibility:hidden;border-right:none;width:0}.CodeMirror-focused div.CodeMirror-cursor{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}.CodeMirror span{*vertical-align:text-bottom}@media print{.CodeMirror div.CodeMirror-cursor{visibility:hidden}}kbd,.key{display:inline;display:inline-block;min-width:1em;padding:.2em .3em;font:400 .85em/1 "Lucida Grande",Lucida,Arial,sans-serif;text-align:center;text-decoration:none;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em;border:none;cursor:default;-moz-user-select:none;-webkit-user-select:none;user-select:none}kbd[title],.key[title]{cursor:help}kbd,kbd.dark,.dark-keys kbd,.key,.key.dark,.dark-keys .key{background:#505050;background:-moz-linear-gradient(top,#3c3c3c,#505050);background:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#505050));color:#fafafa;text-shadow:-1px -1px 0 #464646;-moz-box-shadow:inset 0 0 1px #969696,inset 0 -.05em .4em #505050,0 .1em 0 #1e1e1e,0 .1em .1em rgba(0,0,0,.3);-webkit-box-shadow:inset 0 0 1px #969696,inset 0 -.05em .4em #505050,0 .1em 0 #1e1e1e,0 .1em .1em rgba(0,0,0,.3);box-shadow:inset 0 0 1px #969696,inset 0 -.05em .4em #505050,0 .1em 0 #1e1e1e,0 .1em .1em rgba(0,0,0,.3)}kbd.light,.light-keys kbd,.key.light,.light-keys .key{background:#fafafa;background:-moz-linear-gradient(top,#d2d2d2,#fff);background:-webkit-gradient(linear,left top,left bottom,from(#d2d2d2),to(#fff));color:#323232;text-shadow:0 0 2px#fff;-moz-box-shadow:inset 0 0 1px#fff,inset 0 0 .4em #c8c8c8,0 .1em 0 #828282,0 .11em 0 rgba(0,0,0,.4),0 .1em .11em rgba(0,0,0,.9);-webkit-box-shadow:inset 0 0 1px#fff,inset 0 0 .4em #c8c8c8,0 .1em 0 #828282,0 .11em 0 rgba(0,0,0,.4),0 .1em .11em rgba(0,0,0,.9);box-shadow:inset 0 0 1px#fff,inset 0 0 .4em #c8c8c8,0 .1em 0 #828282,0 .11em 0 rgba(0,0,0,.4),0 .1em .11em rgba(0,0,0,.9)}html,body{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPwAAADmBAMAAAADyPWpAAAAHlBMVEUAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAzn7ZSAAAACnRSTlMEAgEFAAMGBwgJHK6+iAAAAjVJREFUeF7t3TFvEzEYh3EnUQJjoaRzCGS/ChW6UsF+pc0eCSkwVqrUwhcAPjZT38fDKzmKuBvQ858qy/bP9mT57LTcvIu8iHxZP2VVIl8Prrmj0TpyHW1OIf9zXl5eXl5eXl5+uX1Kv41gzuC7rHASnS4bzdOBlk+Rj/AMr2tMFP4lPb2OwhOg24CuWJIheXl5eXl5eXl5ef5cpbtKxoR0ktUs1JyzfYV/xTwLSUdaSfDMfsOSoC9YsgsaMbu3wX8eh5eXl5eXl5eXl+9pn/IU7pD2kfswP1B4l/U5ZfRAR53pXj5GKgl+ly3JOcevLMmQvLy8vLy8vLy8fN/YQNL+d5g/4X+F+Q3+Lv/+HmGe1Ub7LO0U/gEpW5L31JykEx2bl5eXl5eXl5eXr25w7iPsKn/AVxL8njQ+oJNZIdPspBYTqVXzonF9AGg1Di8vLy8vLy8vL89h43wdKUd8VS/byDV8Bj17jBQyZ/gMZNO4KpoUNtfpchxeXl5eXl5eXl5+S7K94pL2VLjJvsqfUpjuP9lqPv8TKckF0vSpU3v7nPGz7KLrm31kQF5eXl5eXl5eXj5/rdMdcVa5OHiruaj4/AIpVQc4/a1qDsnLy8vLy8vLy8t3UNkBZj/Ap/ZFSQPP7vuKwn92+rsEGoOXl5eXl5eXl5fPfywp/133CXzVP3z6fr5rvEo6qx/AR7JO1/D9EYtX6GhIXl5eXl5eXl5eHvM7fPUAvvEviOBn1Jwz5orPav4FxfqDRAI+1ZEAAAAASUVORK5CYII=')}.navbar-search .grippie{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAICAYAAAA4GpVBAAAAFklEQVQIHWPYvXv3f4b/QAAiGBhwcQEh7xt/uRvGTgAAAABJRU5ErkJggg==')}.nav .dropdown,.navbar-search{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAiCAQAAADMxIBtAAABMklEQVQoz2P4z8jA9J+JARUABdj+s2EIerI3cKEJ/2e8zyHE918AXS2njNBFsf+sqIKsfUJJUv9F0Qz4KMSh+EkNzQ3/+Vzktqv/F0IVZNsm46bzXwPdMgkB/Tdm/znQDEjT6DP7r4QqyHJZWdvmvy3Q0yjCUnoW513/i6EK8jcY1bj9N0Uz4KGWktenAHTLZDwctgShOew//2yLqNAfXiiW/eefahUf9t8dVaWcq/Pu4P/KKGF1VVvH+6c/ShD+Fyo06XL7r4emWdb2scd/PmQh9nVqjtb/zVHVCTlqbzD/L4ES9t+kuYx+maOE/X/OcrlC7f8KaJrllB5o/mdHSQ7XheUVURwN0hwotkgOxTFAQR4G8f9SaGlpM1eUILo6NnHuG7zoCYEFmBQ50GMcS6IFAAXadPqU82J+AAAAAElFTkSuQmCC')}section#servers tr.spinning td:first-child{background-image:url('data:image/gif;base64,R0lGODlhEAALAPQAAP///zMzM+Hh4dnZ2e7u7jc3NzMzM1dXV5qamn9/f8fHx05OTm5ubqGhoYKCgsrKylFRUTY2NnFxcerq6t/f3/b29l9fX+Li4vT09MTExLKystTU1PHx8QAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA')}body > section section.spinning > header h2{background-image:url('data:image/gif;base64,R0lGODlhEAALAPQAAN7e3oiIiNHR0c3NzdbW1omJiYiIiJeXl7Ozs6enp8bGxpKSkqCgoLa2tqmpqcjIyJSUlIiIiKKiotXV1dDQ0Nra2pqamtLS0tnZ2cXFxb29vcvLy9jY2AAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA')}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}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-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]: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}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#1d8835;text-decoration:none}a:hover,a:focus{color:#10491c;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"] + [class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;content:"";line-height:0}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:700}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:700;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid#eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline > li,ol.inline > li{display:inline-block;*display:inline;*zoom:1;padding-left:5px;padding-right:5px}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:700}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid#eee;border-bottom:1px solid#fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted#999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid#eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid#eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:400;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}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"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle}input,textarea,.uneditable-input{width:206px}textarea{height:auto}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"],.uneditable-input{background-color:#fff;border:1px solid#ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;border:1px solid#ccc;background-color:#fff}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);cursor:not-allowed}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls > .radio:first-child,.controls > .checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline + .radio.inline,.checkbox.inline + .checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"] + [class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;vertical-align:middle;font-size:0;white-space:nowrap}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:400;line-height:20px;text-align:center;text-shadow:0 1px 0#fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group > .dropdown-toggle,.input-prepend .btn-group > .dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input + .btn-group .btn:last-child,.input-append select + .btn-group .btn:last-child,.input-append .uneditable-input + .btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child > .dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input + .btn-group .btn,.input-prepend.input-append select + .btn-group .btn,.input-prepend.input-append .uneditable-input + .btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend + .control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input + .help-block,.form-horizontal select + .help-block,.form-horizontal textarea + .help-block,.form-horizontal .uneditable-input + .help-block,.form-horizontal .input-prepend + .help-block,.form-horizontal .input-append + .help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid#ddd}.table th{font-weight:700}.table thead th{vertical-align:bottom}.table caption + thead tr:first-child th,.table caption + thead tr:first-child td,.table colgroup + thead tr:first-child th,.table colgroup + thead tr:first-child td,.table thead:first-child tr:first-child th,.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 th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid#ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid#ddd}.table-bordered caption + thead tr:first-child th,.table-bordered caption + tbody tr:first-child th,.table-bordered caption + tbody tr:first-child td,.table-bordered colgroup + thead tr:first-child th,.table-bordered colgroup + tbody tr:first-child th,.table-bordered colgroup + tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child > th:first-child,.table-bordered tbody:first-child tr:first-child > td:first-child,.table-bordered tbody:first-child tr:first-child > th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.table-bordered thead:first-child tr:first-child > th:last-child,.table-bordered tbody:first-child tr:first-child > td:last-child,.table-bordered tbody:first-child tr:first-child > th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}.table-bordered thead:last-child tr:last-child > th:first-child,.table-bordered tbody:last-child tr:last-child > td:first-child,.table-bordered tbody:last-child tr:last-child > th:first-child,.table-bordered tfoot:last-child tr:last-child > td:first-child,.table-bordered tfoot:last-child tr:last-child > th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.table-bordered thead:last-child tr:last-child > th:last-child,.table-bordered tbody:last-child tr:last-child > td:last-child,.table-bordered tbody:last-child tr:last-child > th:last-child,.table-bordered tfoot:last-child tr:last-child > td:last-child,.table-bordered tfoot:last-child tr:last-child > th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.table-bordered tfoot + tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}.table-bordered tfoot + tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}.table-bordered caption + thead tr:first-child th:first-child,.table-bordered caption + tbody tr:first-child td:first-child,.table-bordered colgroup + thead tr:first-child th:first-child,.table-bordered colgroup + tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.table-bordered caption + thead tr:first-child th:last-child,.table-bordered caption + tbody tr:first-child td:last-child,.table-bordered colgroup + thead tr:first-child th:last-child,.table-bordered colgroup + tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}.table-striped tbody > tr:nth-child(odd) > td,.table-striped tbody > tr:nth-child(odd) > th{background-color:#f9f9f9}.table-hover tbody tr:hover > td,.table-hover tbody tr:hover > th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success > td{background-color:#dff0d8}.table tbody tr.error > td{background-color:#f2dede}.table tbody tr.warning > td{background-color:#fcf8e3}.table tbody tr.info > td{background-color:#d9edf7}.table-hover tbody tr.success:hover > td{background-color:#d0e9c6}.table-hover tbody tr.error:hover > td{background-color:#ebcccc}.table-hover tbody tr.warning:hover > td{background-color:#faf2cc}.table-hover tbody tr.info:hover > td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../../vendor/bootstrap/less/../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;margin-top:1px}.icon-white,.nav-pills > .active > a > [class^="icon-"],.nav-pills > .active > a > [class*=" icon-"],.nav-list > .active > a > [class^="icon-"],.nav-list > .active > a > [class*=" icon-"],.navbar-inverse .nav > .active > a > [class^="icon-"],.navbar-inverse .nav > .active > a > [class*=" icon-"],.dropdown-menu > li > a:hover > [class^="icon-"],.dropdown-menu > li > a:focus > [class^="icon-"],.dropdown-menu > li > a:hover > [class*=" icon-"],.dropdown-menu > li > a:focus > [class*=" icon-"],.dropdown-menu > .active > a > [class^="icon-"],.dropdown-menu > .active > a > [class*=" icon-"],.dropdown-submenu:hover > a > [class^="icon-"],.dropdown-submenu:focus > a > [class^="icon-"],.dropdown-submenu:hover > a > [class*=" icon-"],.dropdown-submenu:focus > a > [class*=" icon-"]{background-image:url("../../vendor/bootstrap/less/../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{background-position:-216px -120px;width:16px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px;width:16px}.icon-folder-open{background-position:-408px -120px;width:16px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid#000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.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;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-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}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid#fff}.dropdown-menu > li > a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu > li > a:hover,.dropdown-menu > li > a:focus,.dropdown-submenu:hover > a,.dropdown-submenu:focus > a{text-decoration:none;color:#fff;background-color:#1b8032;background-image:-moz-linear-gradient(top,#1d8835,#19732d);background-image:-webkit-gradient(linear,0 0,0 100%,from(#1d8835),to(#19732d));background-image:-webkit-linear-gradient(top,#1d8835,#19732d);background-image:-o-linear-gradient(top,#1d8835,#19732d);background-image:linear-gradient(to bottom,#1d8835,#19732d);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1d8835',endColorstr='#ff19732d',GradientType=0)}.dropdown-menu > .active > a,.dropdown-menu > .active > a:hover,.dropdown-menu > .active > a:focus{color:#fff;text-decoration:none;outline:0;background-color:#1b8032;background-image:-moz-linear-gradient(top,#1d8835,#19732d);background-image:-webkit-gradient(linear,0 0,0 100%,from(#1d8835),to(#19732d));background-image:-webkit-linear-gradient(top,#1d8835,#19732d);background-image:-o-linear-gradient(top,#1d8835,#19732d);background-image:linear-gradient(to bottom,#1d8835,#19732d);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1d8835',endColorstr='#ff19732d',GradientType=0)}.dropdown-menu > .disabled > a,.dropdown-menu > .disabled > a:hover,.dropdown-menu > .disabled > a:focus{color:#999}.dropdown-menu > .disabled > a:hover,.dropdown-menu > .disabled > a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:default}.open{*z-index:1000}.open > .dropdown-menu{display:block}.pull-right > .dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid#000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu > .dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover > .dropdown-menu{display:block}.dropup .dropdown-submenu > .dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu > a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#ccc;margin-top:5px;margin-right:-10px}.dropdown-submenu:hover > a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left > .dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:700;line-height:20px;color:#000;text-shadow:0 1px 0#fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:14px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid#ccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block + .btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#1d8843;background-image:-moz-linear-gradient(top,#1d8835,#1d8859);background-image:-webkit-gradient(linear,0 0,0 100%,from(#1d8835),to(#1d8859));background-image:-webkit-linear-gradient(top,#1d8835,#1d8859);background-image:-o-linear-gradient(top,#1d8835,#1d8859);background-image:linear-gradient(to bottom,#1d8835,#1d8859);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1d8835',endColorstr='#ff1d8859',GradientType=0);border-color:#1d8859 #1d8859 #104930;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#1d8859;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#1d8859;*background-color:#19734b}.btn-primary:active,.btn-primary.active{background-color:#145e3d \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);border-color:#222 #222222#000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{border-color:transparent;cursor:pointer;color:#1d8835;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#10491c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*zoom:1;font-size:0;vertical-align:middle;white-space:nowrap;*margin-left:.3em}.btn-group:first-child{*margin-left:0}.btn-group + .btn-group{margin-left:5px}.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px}.btn-toolbar > .btn + .btn,.btn-toolbar > .btn-group + .btn,.btn-toolbar > .btn + .btn-group{margin-left:5px}.btn-group > .btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group > .btn + .btn{margin-left:-1px}.btn-group > .btn,.btn-group > .dropdown-menu,.btn-group > .popover{font-size:14px}.btn-group > .btn-mini{font-size:10.5px}.btn-group > .btn-small{font-size:11.9px}.btn-group > .btn-large{font-size:17.5px}.btn-group > .btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.btn-group > .btn:last-child,.btn-group > .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.btn-group > .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.btn-group > .btn.large:last-child,.btn-group > .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px}.btn-group > .btn:hover,.btn-group > .btn:focus,.btn-group > .btn:active,.btn-group > .btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group > .btn + .dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px}.btn-group > .btn-mini + .dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px}.btn-group > .btn-small + .dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group > .btn-large + .dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#1d8859}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical > .btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical > .btn + .btn{margin-left:0;margin-top:-1px}.btn-group-vertical > .btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical > .btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical > .btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical > .btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success h4{color:#468847}.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block > p,.alert-block > ul{margin-bottom:0}.alert-block p + p{margin-top:5px}.nav{margin-left:0;margin-bottom:20px;list-style:none}.nav > li > a{display:block}.nav > li > a:hover,.nav > li > a:focus{text-decoration:none;background-color:#eee}.nav > li > a > img{max-width:none}.nav > .pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:700;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li + .nav-header{margin-top:9px}.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0}.nav-list > li > a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list > li > a{padding:3px 15px}.nav-list > .active > a,.nav-list > .active > a:hover,.nav-list > .active > a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#1d8835}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid#fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs > li,.nav-pills > li{float:left}.nav-tabs > li > a,.nav-pills > li > a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs > li{margin-bottom:-1px}.nav-tabs > li > a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs > li > a:hover,.nav-tabs > li > a:focus{border-color:#eee #eeeeee#ddd}.nav-tabs > .active > a,.nav-tabs > .active > a:hover,.nav-tabs > .active > a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills > li > a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills > .active > a,.nav-pills > .active > a:hover,.nav-pills > .active > a:focus{color:#fff;background-color:#1d8835}.nav-stacked > li{float:none}.nav-stacked > li > a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked > li > a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked > li:first-child > a{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.nav-tabs.nav-stacked > li:last-child > a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.nav-tabs.nav-stacked > li > a:hover,.nav-tabs.nav-stacked > li > a:focus{border-color:#ddd;z-index:2}.nav-pills.nav-stacked > li > a{margin-bottom:3px}.nav-pills.nav-stacked > li:last-child > a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{border-top-color:#1d8835;border-bottom-color:#1d8835;margin-top:6px}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#10491c;border-bottom-color:#10491c}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav > .dropdown.active > a:hover,.nav > .dropdown.active > a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav > li.dropdown.open.active > a:hover,.nav > li.dropdown.open.active > a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open > a:hover,.tabs-stacked .open > a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;content:"";line-height:0}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below > .nav-tabs,.tabs-right > .nav-tabs,.tabs-left > .nav-tabs{border-bottom:0}.tab-content > .tab-pane,.pill-content > .pill-pane{display:none}.tab-content > .active,.pill-content > .active{display:block}.tabs-below > .nav-tabs{border-top:1px solid #ddd}.tabs-below > .nav-tabs > li{margin-top:-1px;margin-bottom:0}.tabs-below > .nav-tabs > li > a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below > .nav-tabs > li > a:hover,.tabs-below > .nav-tabs > li > a:focus{border-bottom-color:transparent;border-top-color:#ddd}.tabs-below > .nav-tabs > .active > a,.tabs-below > .nav-tabs > .active > a:hover,.tabs-below > .nav-tabs > .active > a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left > .nav-tabs > li,.tabs-right > .nav-tabs > li{float:none}.tabs-left > .nav-tabs > li > a,.tabs-right > .nav-tabs > li > a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left > .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left > .nav-tabs > li > a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left > .nav-tabs > li > a:hover,.tabs-left > .nav-tabs > li > a:focus{border-color:#eee #dddddd#eee #eeeeee}.tabs-left > .nav-tabs .active > a,.tabs-left > .nav-tabs .active > a:hover,.tabs-left > .nav-tabs .active > a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right > .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right > .nav-tabs > li > a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right > .nav-tabs > li > a:hover,.tabs-right > .nav-tabs > li > a:focus{border-color:#eee #eeeeee#eee #dddddd}.tabs-right > .nav-tabs .active > a,.tabs-right > .nav-tabs .active > a:hover,.tabs-right > .nav-tabs .active > a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav > .disabled > a{color:#999}.nav > .disabled > a:hover,.nav > .disabled > a:focus{text-decoration:none;background-color:transparent;cursor:default}.navbar{overflow:visible;margin-bottom:20px;*position:relative;*z-index:2}.navbar-inner{min-height:60px;padding-left:20px;padding-right:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);*zoom:1}.navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{float:left;display:block;padding:20px 20px 20px;margin-left:-20px;font-size:20px;font-weight:200;color:#fff;text-shadow:0 1px 0#fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:60px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:60px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid#fff}.navbar .btn,.navbar .btn-group{margin-top:15px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:15px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:15px;margin-bottom:0}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:400;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1010;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav > li{float:left}.navbar .nav > li > a{float:none;padding:20px 15px 20px;color:#777;text-decoration:none;text-shadow:0 1px 0#fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav > li > a:focus,.navbar .nav > li > a:hover{background-color:transparent;color:#333;text-decoration:none}.navbar .nav > .active > a,.navbar .nav > .active > a:hover,.navbar .nav > .active > a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e5e5e5;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar + .icon-bar{margin-top:3px}.navbar .nav > li > .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);position:absolute;top:-7px;left:9px}.navbar .nav > li > .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid#fff;position:absolute;top:-6px;left:10px}.navbar-fixed-bottom .nav > li > .dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0,0,0,0.2);border-bottom:0;bottom:-7px;top:auto}.navbar-fixed-bottom .nav > li > .dropdown-menu:after{border-top:6px solid#fff;border-bottom:0;bottom:-6px;top:auto}.navbar .nav li.dropdown > a:hover .caret,.navbar .nav li.dropdown > a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open > .dropdown-toggle,.navbar .nav li.dropdown.active > .dropdown-toggle,.navbar .nav li.dropdown.open.active > .dropdown-toggle{background-color:#e5e5e5;color:#555}.navbar .nav li.dropdown > .dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open > .dropdown-toggle .caret,.navbar .nav li.dropdown.active > .dropdown-toggle .caret,.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right > li > .dropdown-menu,.navbar .nav > li > .dropdown-menu.pull-right{left:auto;right:0}.navbar .pull-right > li > .dropdown-menu:before,.navbar .nav > li > .dropdown-menu.pull-right:before{left:auto;right:12px}.navbar .pull-right > li > .dropdown-menu:after,.navbar .nav > li > .dropdown-menu.pull-right:after{left:auto;right:13px}.navbar .pull-right > li > .dropdown-menu .dropdown-menu,.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0);border-color:#252525}.navbar-inverse .brand,.navbar-inverse .nav > li > a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav > li > a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav > li > a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav > li > a:focus,.navbar-inverse .nav > li > a:hover{background-color:transparent;color:#fff}.navbar-inverse .nav .active > a,.navbar-inverse .nav .active > a:hover,.navbar-inverse .nav .active > a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-left-color:#111;border-right-color:#222}.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle{background-color:#111;color:#fff}.navbar-inverse .nav li.dropdown > a:hover .caret,.navbar-inverse .nav li.dropdown > a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0#fff;background-color:#fff;border:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15);outline:0}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);border-color:#040404 #040404#000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#040404;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb > li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0#fff}.breadcrumb > li > .divider{padding:0 5px;color:#ccc}.breadcrumb > .active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul > li{display:inline}.pagination ul > li > a,.pagination ul > li > span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid#ddd;border-left-width:0}.pagination ul > li > a:hover,.pagination ul > li > a:focus,.pagination ul > .active > a,.pagination ul > .active > span{background-color:#f5f5f5}.pagination ul > .active > a,.pagination ul > .active > span{color:#999;cursor:default}.pagination ul > .disabled > span,.pagination ul > .disabled > a,.pagination ul > .disabled > a:hover,.pagination ul > .disabled > a:focus{color:#999;background-color:transparent;cursor:default}.pagination ul > li:first-child > a,.pagination ul > li:first-child > span{border-left-width:1px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.pagination ul > li:last-child > a,.pagination ul > li:last-child > span{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul > li > a,.pagination-large ul > li > span{padding:11px 19px;font-size:17.5px}.pagination-large ul > li:first-child > a,.pagination-large ul > li:first-child > span{-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.pagination-large ul > li:last-child > a,.pagination-large ul > li:last-child > span{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px}.pagination-mini ul > li:first-child > a,.pagination-small ul > li:first-child > a,.pagination-mini ul > li:first-child > span,.pagination-small ul > li:first-child > span{-webkit-border-top-left-radius:3px;-moz-border-radius-topleft:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-bottomleft:3px;border-bottom-left-radius:3px}.pagination-mini ul > li:last-child > a,.pagination-small ul > li:last-child > a,.pagination-mini ul > li:last-child > span,.pagination-small ul > li:last-child > span{-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px}.pagination-small ul > li > a,.pagination-small ul > li > span{padding:2px 10px;font-size:11.9px}.pagination-mini ul > li > a,.pagination-mini ul > li > span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;list-style:none;text-align:center;*zoom:1}.pager:before,.pager:after{display:table;content:"";line-height:0}.pager:after{clear:both}.pager li{display:inline}.pager li > a,.pager li > span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li > a:hover,.pager li > a:focus{text-decoration:none;background-color:#f5f5f5}.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:#999;background-color:#fff;cursor:default}.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,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:none}.modal.fade{-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out;top:-25%}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;overflow-y:auto;max-height:400px;padding:15px}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0#fff;-moz-box-shadow:inset 0 1px 0#fff;box-shadow:inset 0 1px 0#fff;*zoom:1}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0}.modal-footer:after{clear:both}.modal-footer .btn + .btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn + .btn{margin-left:-1px}.modal-footer .btn-block + .btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;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.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}.popover{position:absolute;top:0;left:0;z-index:1030;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-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);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.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{border-width:10px;content:""}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right .arrow:after{left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom .arrow:after{top:1px;margin-left:-10px;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,0.25)}.popover.left .arrow:after{right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails > li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#1d8835;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail > img{display:block;max-width:100%;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#555}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:700;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-left:9px;padding-right:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.progress .bar{width:0;height:100%;color:#fff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar + .bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{overflow:hidden;width:100%;position:relative}.carousel-inner > .item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-moz-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{display:block;line-height:1}.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:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid#fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{left:auto;right:15px}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{color:#fff;line-height:20px}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}.container,.navbar .container{padding-left:20px;padding-right:20px;width:auto;min-width:320px;max-width:1400px}.navbar .brand{font-size:32px;line-height:32px;padding:16px 20px 12px;font-weight:700;color:#ddd;text-shadow:0 -1px 0 rgba(0,0,0,0.25),0 1px 0#fff,0 0 30px rgba(0,0,0,0.125);-webkit-transition:color .1s linear;-moz-transition:color .1s linear;-o-transition:color .1s linear;transition:color .1s linear}.navbar .brand:hover{color:#1d8835}.navbar .nav > li > a{min-height:18px}.navbar .nav li.dropdown .dropdown-toggle{padding:20px 10px 21px 20px;white-space:nowrap}.navbar .nav li.dropdown > .dropdown-toggle,.navbar .nav li.dropdown.open > .dropdown-toggle,.navbar .nav li.dropdown.active > .dropdown-toggle{background-color:transparent}.navbar .nav .dropdown-menu li a{padding-right:4em;position:relative}.navbar .nav .dropdown-menu li a span{padding:0 6px;display:inline-block;position:absolute;top:50%;right:10px;margin-top:-8px;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;line-height:16px;color:#666;background-color:rgba(0,0,0,0.1);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.2),0 1px 0 rgba(255,255,255,0.2);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.2),0 1px 0 rgba(255,255,255,0.2);box-shadow:inset 0 1px 0 rgba(0,0,0,0.2),0 1px 0 rgba(255,255,255,0.2)}.navbar .nav .dropdown-menu li a:hover span{color:#DDD}.navbar .nav .dropdown-menu li.active a span{color:#CCC;background-color:rgba(0,0,0,0.2)}.navbar form{padding-left:20px;margin:15px 0 0 -10px}.navbar .control-group{margin-bottom:0}code,pre{font-family:'Source Code Pro',monospace}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(29,136,53,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6)}.nav .dropdown,.navbar-search{background-color:transparent;background-position:center left;background-repeat:no-repeat}.navbar-search{background-position:left -1px}.popover-title{font-size:18px}.confirm-modal{width:420px;margin-left:-210px}.confirm-modal .confirm-input{width:97%}html,body{color:#111;background-color:#D3D3D3}h1,h2,h3,a.brand,#footer p{font-family:"Rokkitt",serif;font-weight:700}noscript h1{font-size:2.2em;text-align:center;margin:80px 40px}::-moz-selection{background:#b4d6bc;text-shadow:none}::-webkit-selection{background:#b4d6bc;text-shadow:none}::selection{background:#b4d6bc;text-shadow:none}html,body{margin:0;padding:0}body{padding-top:60px}#alerts{margin-top:20px}#footer{font-weight:400;text-align:center}#footer a.keyboard-shortcuts:link,#footer a.keyboard-shortcuts:visited{color:#888}#footer a.keyboard-shortcuts:link img,#footer a.keyboard-shortcuts:visited img{opacity:.5;filter:alpha(opacity=50)}#footer a.keyboard-shortcuts:hover,#footer a.keyboard-shortcuts:active{color:#666}#footer a.keyboard-shortcuts:hover img,#footer a.keyboard-shortcuts:active img{opacity:1;filter:alpha(opacity=100)}#footer a.keyboard-shortcuts img{line-height:1px;vertical-align:text-top;height:11px;width:19px}.navbar .servers{display:none}.navbar .nav-section{display:none}body.section-databases .navbar .nav-section.server,body.section-collections .navbar .nav-section.server,body.section-collections .navbar .nav-section.database,body.section-documents .navbar .nav-section.server,body.section-documents .navbar .nav-section.database,body.section-documents .navbar .nav-section.collection,body.section-document .navbar .nav-section.server,body.section-document .navbar .nav-section.database,body.section-document .navbar .nav-section.collection{display:block}.navbar form{display:none}body.section-documents .navbar form,body.section-document .navbar form{display:block}html.textoverflow .navbar .nav-section > a{max-width:8em;overflow:hidden;text-overflow:ellipsis}.navbar-search{padding-bottom:16px}.navbar-search .grippie{position:absolute;bottom:2px;left:50%;margin-left:-5px;clear:both;display:block;height:12px;width:30px;background-color:transparent;background-position:center center;background-repeat:repeat-x;border:none;opacity:.5;filter:alpha(opacity=50)}.navbar-search .grippie:hover{opacity:1;filter:alpha(opacity=100)}.navbar-search .search-advanced{display:none;position:absolute;top:0;left:0;right:0;bottom:10px}.navbar-search .search-advanced .well{position:absolute;top:0;left:0;right:0;bottom:30px;padding:0;overflow:hidden}.navbar-search .search-advanced.focused .well{border-color:rgba(29,136,53,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6)}.navbar-search .search-advanced .form-actions{position:absolute;left:0;right:0;bottom:0;padding:0;margin:-20px 0 5px;border-top:none;background:transparent}.navbar-search .search-advanced .form-actions .btn{float:right;margin-left:5px}.navbar-search.expanded{position:relative;clear:both;float:none;margin:0 20px;padding:0;background-image:none;min-height:120px}.navbar-search.expanded .grippie{margin-left:-15px}.navbar-search.expanded input.search-query{display:none}.navbar-search.expanded .search-advanced{display:block}.masthead{position:relative;padding:40px 0;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,0.4),0 0 30px rgba(0,0,0,0.1);background:-webkit-radial-gradient(#115120 25%,transparent 26%) 0 0,-webkit-radial-gradient(#115120 25%,transparent 26%) 16px 16px,-webkit-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-webkit-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-webkit-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-webkit-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-moz-radial-gradient(#115120 25%,transparent 26%) 0 0,-moz-radial-gradient(#115120 25%,transparent 26%) 16px 16px,-moz-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-moz-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-moz-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-moz-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-ms-radial-gradient(#115120 25%,transparent 26%) 0 0,-ms-radial-gradient(#115120 25%,transparent 26%) 16px 16px,-ms-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-ms-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-ms-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-ms-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-o-radial-gradient(#115120 25%,transparent 26%) 0 0,-o-radial-gradient(#115120 25%,transparent 26%) 16px 16px,-o-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-o-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-o-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-o-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:radial-gradient(#115120 25%,transparent 26%) 0 0,radial-gradient(#115120 25%,transparent 26%) 16px 16px,radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;-webkit-background-size:32px 30px;-moz-background-size:32px 30px;-ms-background-size:32px 30px;-o-background-size:32px 30px;background-size:32px 30px;background-color:#145e25;-webkit-box-shadow:inset 0 3px 7px rgba(0,0,0,.2),inset 0 -3px 7px rgba(0,0,0,.2);-moz-box-shadow:inset 0 3px 7px rgba(0,0,0,.2),inset 0 -3px 7px rgba(0,0,0,.2);box-shadow:inset 0 3px 7px rgba(0,0,0,.2),inset 0 -3px 7px rgba(0,0,0,.2)}.masthead .container{position:relative;z-index:2}.masthead:after{content:'';display:block;position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(255,255,255,0.01);background-image:-moz-linear-gradient(left,rgba(0,0,0,0.5),rgba(255,255,255,0.01));background-image:-webkit-gradient(linear,0 0,100% 0,from(rgba(0,0,0,0.5)),to(rgba(255,255,255,0.01)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,0.5),rgba(255,255,255,0.01));background-image:-o-linear-gradient(left,rgba(0,0,0,0.5),rgba(255,255,255,0.01));background-image:linear-gradient(to right,rgba(0,0,0,0.5),rgba(255,255,255,0.01));background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#03ffffff',GradientType=1)}.masthead h1{font-size:60px;font-weight:700;letter-spacing:-1px;line-height:1}.masthead p{font-size:24px;line-height:1.25;margin-bottom:20px;font-weight:300}.masthead.epic{text-align:center;padding:70px 80px}.masthead.epic h1{font-size:120px}.masthead.epic h2{font-size:80px}.masthead.epic p{font-size:40px;font-weight:200;margin-bottom:30px}.masthead.error{background:-webkit-radial-gradient(#8a3635 25%,transparent 26%) 0 0,-webkit-radial-gradient(#8a3635 25%,transparent 26%) 16px 16px,-webkit-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-webkit-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-webkit-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-webkit-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-moz-radial-gradient(#8a3635 25%,transparent 26%) 0 0,-moz-radial-gradient(#8a3635 25%,transparent 26%) 16px 16px,-moz-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-moz-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-moz-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-moz-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-ms-radial-gradient(#8a3635 25%,transparent 26%) 0 0,-ms-radial-gradient(#8a3635 25%,transparent 26%) 16px 16px,-ms-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-ms-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-ms-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-ms-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-o-radial-gradient(#8a3635 25%,transparent 26%) 0 0,-o-radial-gradient(#8a3635 25%,transparent 26%) 16px 16px,-o-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-o-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-o-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-o-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:radial-gradient(#8a3635 25%,transparent 26%) 0 0,radial-gradient(#8a3635 25%,transparent 26%) 16px 16px,radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;-webkit-background-size:32px 30px;-moz-background-size:32px 30px;-ms-background-size:32px 30px;-o-background-size:32px 30px;background-size:32px 30px;background-color:#953b39}.masthead.muted{background:-webkit-radial-gradient(#2b2b2b 25%,transparent 26%) 0 0,-webkit-radial-gradient(#2b2b2b 25%,transparent 26%) 16px 16px,-webkit-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-webkit-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-webkit-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-webkit-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-moz-radial-gradient(#2b2b2b 25%,transparent 26%) 0 0,-moz-radial-gradient(#2b2b2b 25%,transparent 26%) 16px 16px,-moz-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-moz-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-moz-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-moz-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-ms-radial-gradient(#2b2b2b 25%,transparent 26%) 0 0,-ms-radial-gradient(#2b2b2b 25%,transparent 26%) 16px 16px,-ms-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-ms-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-ms-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-ms-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-o-radial-gradient(#2b2b2b 25%,transparent 26%) 0 0,-o-radial-gradient(#2b2b2b 25%,transparent 26%) 16px 16px,-o-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-o-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-o-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-o-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:radial-gradient(#2b2b2b 25%,transparent 26%) 0 0,radial-gradient(#2b2b2b 25%,transparent 26%) 16px 16px,radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;-webkit-background-size:32px 30px;-moz-background-size:32px 30px;-ms-background-size:32px 30px;-o-background-size:32px 30px;background-size:32px 30px;background-color:#333}#genghis{min-height:150px}.app-section{display:none;background-color:#fff;margin:20px 0;padding:20px;border:1px solid #AAA;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 5px rgba(0,0,0,0.1),inset 0 1px 0 white;-moz-box-shadow:0 1px 5px rgba(0,0,0,0.1),inset 0 1px 0 white;box-shadow:0 1px 5px rgba(0,0,0,0.1),inset 0 1px 0 white}.app-section > header{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;margin:-20px -20px 20px;padding:9px 20px;background-color:#f5f5f5;border-bottom:1px solid #ddd;-webkit-box-shadow:inset 0 1px 0#fff;-moz-box-shadow:inset 0 1px 0#fff;box-shadow:inset 0 1px 0#fff}.app-section > header h2{font-size:24px;margin:0;line-height:30px}.app-section > .content{min-height:100px;-webkit-transition:.1s linear all;-moz-transition:.1s linear all;-o-transition:.1s linear all;transition:.1s linear all}.app-section > p:first-child{margin-top:0}.app-section > p:last-child{margin-bottom:0}.app-section.spinning{height:180px}.app-section.spinning header h2{background-color:transparent;background-position:left center;background-repeat:no-repeat;text-indent:-10000em}.app-section.spinning .controls,.app-section.spinning .add-form,.app-section.spinning .content{display:none}.app-section .details{display:none}.app-section .has-details{border-bottom:1px dotted#998;cursor:default}.add-form button.show,.add-form button.dropdown-toggle{display:none}.add-form.inactive button,.add-form.inactive input,.add-form.inactive .input-append{display:none}.add-form.inactive button.show,.add-form.inactive button.dropdown-toggle{display:inherit}.add-form.inactive .help{display:none}.add-form span.input-append .add-on{margin-right:4px}.add-form .help{cursor:default}table{width:100%;margin-bottom:20px;border:1px solid#ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}table th,table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid#ddd}table th{font-weight:700}table thead th{vertical-align:bottom}table caption + thead tr:first-child th,table caption + thead tr:first-child td,table colgroup + thead tr:first-child th,table colgroup + thead tr:first-child td,table thead:first-child tr:first-child th,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 th,table td{border-left:1px solid#ddd}table caption + thead tr:first-child th,table caption + tbody tr:first-child th,table caption + tbody tr:first-child td,table colgroup + thead tr:first-child th,table colgroup + tbody tr:first-child th,table colgroup + tbody tr:first-child td,table thead:first-child tr:first-child th,table tbody:first-child tr:first-child th,table tbody:first-child tr:first-child td{border-top:0}table thead:first-child tr:first-child > th:first-child,table tbody:first-child tr:first-child > td:first-child,table tbody:first-child tr:first-child > th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}table thead:first-child tr:first-child > th:last-child,table tbody:first-child tr:first-child > td:last-child,table tbody:first-child tr:first-child > th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}table thead:last-child tr:last-child > th:first-child,table tbody:last-child tr:last-child > td:first-child,table tbody:last-child tr:last-child > th:first-child,table tfoot:last-child tr:last-child > td:first-child,table tfoot:last-child tr:last-child > th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}table thead:last-child tr:last-child > th:last-child,table tbody:last-child tr:last-child > td:last-child,table tbody:last-child tr:last-child > th:last-child,table tfoot:last-child tr:last-child > td:last-child,table tfoot:last-child tr:last-child > th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}table tfoot + tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}table tfoot + tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}table caption + thead tr:first-child th:first-child,table caption + tbody tr:first-child td:first-child,table colgroup + thead tr:first-child th:first-child,table colgroup + tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}table caption + thead tr:first-child th:last-child,table caption + tbody tr:first-child td:last-child,table colgroup + thead tr:first-child th:last-child,table colgroup + tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}table tbody tr:hover > td,table tbody tr:hover > th{background-color:#f5f5f5}table .tablesorter-header-inner{float:left}table .tablesorter-header{cursor:pointer}table .tablesorter-header:after{content:"";float:right;margin-top:7px;border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:hidden}table .tablesorter-header.sorter-false{cursor:default}table .tablesorter-header.sorter-false:after{display:none}table .tablesorter-header.tablesorter-headerAsc,table .tablesorter-header.tablesorter-headerDesc{background-color:rgba(29,136,53,0.050000000000000044);text-shadow:0 1px 1px rgba(255,255,255,0.75)}table .tablesorter-header:hover:after{visibility:visible}table .tablesorter-header.tablesorter-headerDesc:after,table .tablesorter-header.tablesorter-headerDesc:hover:after{visibility:visible;opacity:.6;filter:alpha(opacity=60)}table .tablesorter-header.tablesorter-headerAsc:after{border-bottom:none;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;visibility:visible;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.6;filter:alpha(opacity=60)}tr td.action-column{padding:7px 10px 0;text-align:right}tr td.action-column button{visibility:hidden;-webkit-transition-property:color,background,box-shadow;-moz-transition-property:color,background,box-shadow;-o-transition-property:color,background,box-shadow;transition-property:color,background,box-shadow}tr:hover td.action-column button{visibility:inherit}#servers .alert-error{padding:3px 10px;font-weight:700}#servers tr.spinning td:first-child{padding-left:35px;background-color:transparent;background-position:10px center;background-repeat:no-repeat}#servers tr input{display:none}#servers tr.editing span.name{display:none}#servers tr.editing input{display:inherit}html.no-filereader #documents .file-upload{display:none}.index-details{color:#111;list-style:none;margin:0}.index-details li{display:block;margin-bottom:5px}.stats-details,.stats-details dt,.stats-details dd{margin:0;padding:0}.stats-details dt{float:left;width:10em}.stats-details dd{margin-left:10em;text-align:right}#documents .controls{*zoom:1;margin-bottom:20px}#documents .controls:before,#documents .controls:after{display:table;content:"";line-height:0}#documents .controls:after{clear:both}#documents .add-document{float:left}#documents .pagination{margin:0}#documents .pagination li.prev a:after{content:' Previous'}#documents .pagination li.next a:before{content:'Next '}#document h2 small{font-size:12px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding-left:10px}#document article h3{display:none}.document{font-family:'Source Code Pro',monospace;line-height:1.4em}.document-wrapper div.well{overflow-x:auto}.document-wrapper div.well h3{margin-top:0}.document-wrapper div.well h3 a{color:#333}.document-wrapper div.well h3 a:hover,.document-wrapper div.well h3 a:active{color:#1d8835}.document-wrapper div.well h3 small{font-size:12px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding-left:10px}.document-wrapper article{position:relative}.document-wrapper article .document-actions{position:absolute;right:20px;z-index:10}.document-wrapper article .document-actions button.save,.document-wrapper article .document-actions button.cancel{display:none}.document-wrapper article .document-actions button.edit,.document-wrapper article .document-actions button.destroy,.document-wrapper article .document-actions a.grid-download,.document-wrapper article .document-actions a.grid-file{visibility:hidden}.document-wrapper article:hover .document-actions button.edit,.document-wrapper article:hover .document-actions button.destroy,.document-wrapper article:hover .document-actions a.grid-download,.document-wrapper article:hover .document-actions a.grid-file{visibility:inherit}.document-wrapper article div.well{-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.document-wrapper article.edit .document-actions{margin-top:20px}.document-wrapper article.edit .document-actions button.edit,.document-wrapper article.edit .document-actions button.destroy,.document-wrapper article.edit .document-actions a.grid-download,.document-wrapper article.edit .document-actions a.grid-file{display:none}.document-wrapper article.edit .document-actions button.save,.document-wrapper article.edit .document-actions button.cancel{display:inline-block}.document-wrapper article.edit div.well{padding:0;background-color:#fff;*zoom:1}.document-wrapper article.edit div.well h3{display:none}.document-wrapper article.edit div.well:before,.document-wrapper article.edit div.well:after{display:table;content:"";line-height:0}.document-wrapper article.edit div.well:after{clear:both}.document-wrapper article.edit.focused div.well{border-color:rgba(29,136,53,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6)}.modal-editor{width:820px;margin-left:-410px}.modal-editor .wrapper,.modal-file-upload .wrapper{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:1px solid#ccc}.modal-editor .wrapper.focused,.modal-file-upload .wrapper.focused{border:1px solid rgba(29,136,53,0.8);-webkit-box-shadow:0 0 8px rgba(29,136,53,0.6);-moz-box-shadow:0 0 8px rgba(29,136,53,0.6);box-shadow:0 0 8px rgba(29,136,53,0.6)}.modal-editor .CodeMirror-scroll,.modal-file-upload .CodeMirror-scroll{height:250px}#keyboard-shortcuts ul{*zoom:1;list-style:none;margin:0;padding:0}#keyboard-shortcuts ul:before,#keyboard-shortcuts ul:after{display:table;content:"";line-height:0}#keyboard-shortcuts ul:after{clear:both}#keyboard-shortcuts li{width:50%;float:left;list-style:none;margin:0;padding:0}#keyboard-shortcuts h4{font-size:1em;line-height:2;padding-left:2em}#keyboard-shortcuts dt,#keyboard-shortcuts dd{line-height:1.5}#keyboard-shortcuts dt{float:left;text-align:right;width:6em;margin:0 0 0 -2em;padding:0}#keyboard-shortcuts dd{margin:0 0 0 5em}.document-wrapper article h3{line-height:1;margin-bottom:10px}.document-wrapper .document{color:#111;position:relative;white-space:pre}.document-wrapper .document .null,.document-wrapper .document .bool,.document-wrapper .document .z,.document-wrapper .document .b{color:#0086b3}.document-wrapper .document .num,.document-wrapper .document .n{color:#40A070}.document-wrapper .document .quoted,.document-wrapper .document .q{color:#D20}.document-wrapper .document .quoted .string,.document-wrapper .document .q .string,.document-wrapper .document .quoted .s,.document-wrapper .document .q .s{color:#D14}.document-wrapper .document .quoted .string a:link,.document-wrapper .document .q .string a:link,.document-wrapper .document .quoted .s a:link,.document-wrapper .document .q .s a:link,.document-wrapper .document .quoted .string a:visited,.document-wrapper .document .q .string a:visited,.document-wrapper .document .quoted .s a:visited,.document-wrapper .document .q .s a:visited{color:#D14;text-decoration:underline}.document-wrapper .document .quoted .string a:hover,.document-wrapper .document .q .string a:hover,.document-wrapper .document .quoted .s a:hover,.document-wrapper .document .q .s a:hover,.document-wrapper .document .quoted .string a:active,.document-wrapper .document .q .string a:active,.document-wrapper .document .quoted .s a:active,.document-wrapper .document .q .s a:active{color:#0058E1}.document-wrapper .document .re{color:#009926}.document-wrapper .document .ref .ref-ref .v .s,.document-wrapper .document .ref .ref-db .v .s,.document-wrapper .document .ref .ref-id .v .s{cursor:pointer;border-bottom:1px dotted #D14}.document-wrapper .document .ref .ref-ref .v .s:hover,.document-wrapper .document .ref .ref-db .v .s:hover,.document-wrapper .document .ref .ref-id .v .s:hover{color:#1d8835;border-bottom:1px solid #1d8835}.document-wrapper .document .ref .ref-id .v.n{cursor:pointer;border-bottom:1px dotted #D14;border-bottom-color:#40A070}.document-wrapper .document .ref .ref-id .v.n:hover{color:#1d8835;border-bottom:1px solid #1d8835}.document-wrapper .document var{font-style:normal}.document-wrapper .document .p{position:relative}.document-wrapper .document .p .ellipsis,.document-wrapper .document .p .e{display:none;cursor:pointer}.document-wrapper .document .p .ellipsis .summary,.document-wrapper .document .p .e .summary,.document-wrapper .document .p .ellipsis q,.document-wrapper .document .p .e q{color:#998;font-style:italic}.document-wrapper .document .p .collapser,.document-wrapper .document .p .c,.document-wrapper .document .p button{display:block;cursor:pointer;position:absolute;height:16px;width:16px;left:-16px;top:0;padding:0;font-size:0;line-height:0;color:transparent;overflow:hidden}.document-wrapper .document .p .collapser:after,.document-wrapper .document .p .c:after,.document-wrapper .document .p button:after{display:block;position:absolute;left:4px;top:6px;height:0;width:0;content:' ';border:4px solid transparent;border-top-color:#c8c8bf}.document-wrapper .document .p .collapser:hover:after,.document-wrapper .document .p .c:hover:after,.document-wrapper .document .p button:hover:after,.document-wrapper .document .p .collapser:active:after,.document-wrapper .document .p .c:active:after,.document-wrapper .document .p button:active:after{border-top-color:#998}.document-wrapper .document .p button{border:none;background-color:transparent}.document-wrapper .document .p.collapsed button:after{left:6px;top:4px;border-top-color:transparent;border-left-color:#c8c8bf}.document-wrapper .document .p.collapsed button:hover:after,.document-wrapper .document .p.collapsed button:active:after{border-top-color:transparent;border-left-color:#998}.document-wrapper .document .p.collapsed .ellipsis,.document-wrapper .document .p.collapsed .e{display:inline}.document-wrapper .document .p.collapsed .collapser:after,.document-wrapper .document .p.collapsed .c:after{top:4px;border-top-color:transparent;border-left-color:#c8c8bf}.document-wrapper .document .p.collapsed .collapser:hover:after,.document-wrapper .document .p.collapsed .c:hover:after,.document-wrapper .document .p.collapsed .collapser:active:after,.document-wrapper .document .p.collapsed .c:active:after{border-top-color:transparent;border-left-color:#998}.document-wrapper .document .p.collapsed > .v{height:0;width:0;overflow:hidden;display:inline-block;visibility:hidden}.index-details li{color:#111;position:relative;white-space:pre;white-space:normal}.index-details li .null,.index-details li .bool,.index-details li .z,.index-details li .b{color:#0086b3}.index-details li .num,.index-details li .n{color:#40A070}.index-details li .quoted,.index-details li .q{color:#D20}.index-details li .quoted .string,.index-details li .q .string,.index-details li .quoted .s,.index-details li .q .s{color:#D14}.index-details li .quoted .string a:link,.index-details li .q .string a:link,.index-details li .quoted .s a:link,.index-details li .q .s a:link,.index-details li .quoted .string a:visited,.index-details li .q .string a:visited,.index-details li .quoted .s a:visited,.index-details li .q .s a:visited{color:#D14;text-decoration:underline}.index-details li .quoted .string a:hover,.index-details li .q .string a:hover,.index-details li .quoted .s a:hover,.index-details li .q .s a:hover,.index-details li .quoted .string a:active,.index-details li .q .string a:active,.index-details li .quoted .s a:active,.index-details li .q .s a:active{color:#0058E1}.index-details li .re{color:#009926}.index-details li .ref .ref-ref .v .s,.index-details li .ref .ref-db .v .s,.index-details li .ref .ref-id .v .s{cursor:pointer;border-bottom:1px dotted #D14}.index-details li .ref .ref-ref .v .s:hover,.index-details li .ref .ref-db .v .s:hover,.index-details li .ref .ref-id .v .s:hover{color:#1d8835;border-bottom:1px solid #1d8835}.index-details li .ref .ref-id .v.n{cursor:pointer;border-bottom:1px dotted #D14;border-bottom-color:#40A070}.index-details li .ref .ref-id .v.n:hover{color:#1d8835;border-bottom:1px solid #1d8835}.index-details li var{font-style:normal}.index-details li .p{position:relative}.index-details li .p .ellipsis,.index-details li .p .e{display:none;cursor:pointer}.index-details li .p .ellipsis .summary,.index-details li .p .e .summary,.index-details li .p .ellipsis q,.index-details li .p .e q{color:#998;font-style:italic}.index-details li .p .collapser,.index-details li .p .c,.index-details li .p button{display:block;cursor:pointer;position:absolute;height:16px;width:16px;left:-16px;top:0;padding:0;font-size:0;line-height:0;color:transparent;overflow:hidden}.index-details li .p .collapser:after,.index-details li .p .c:after,.index-details li .p button:after{display:block;position:absolute;left:4px;top:6px;height:0;width:0;content:' ';border:4px solid transparent;border-top-color:#c8c8bf}.index-details li .p .collapser:hover:after,.index-details li .p .c:hover:after,.index-details li .p button:hover:after,.index-details li .p .collapser:active:after,.index-details li .p .c:active:after,.index-details li .p button:active:after{border-top-color:#998}.index-details li .p button{border:none;background-color:transparent}.index-details li .p.collapsed button:after{left:6px;top:4px;border-top-color:transparent;border-left-color:#c8c8bf}.index-details li .p.collapsed button:hover:after,.index-details li .p.collapsed button:active:after{border-top-color:transparent;border-left-color:#998}.index-details li .p.collapsed .ellipsis,.index-details li .p.collapsed .e{display:inline}.index-details li .p.collapsed .collapser:after,.index-details li .p.collapsed .c:after{top:4px;border-top-color:transparent;border-left-color:#c8c8bf}.index-details li .p.collapsed .collapser:hover:after,.index-details li .p.collapsed .c:hover:after,.index-details li .p.collapsed .collapser:active:after,.index-details li .p.collapsed .c:active:after{border-top-color:transparent;border-left-color:#998}.index-details li .p.collapsed > .v{height:0;width:0;overflow:hidden;display:inline-block;visibility:hidden}.cm-s-default span.cm-keyword{color:#111}.cm-s-default span.cm-atom{color:#0086b3}.cm-s-default span.cm-number{color:#40A070}.cm-s-default span.cm-def{color:#111}.cm-s-default span.cm-variable{color:#111}.cm-s-default span.cm-variable-2{color:#111}.cm-s-default span.cm-variable-3{color:#111}.cm-s-default span.cm-property{color:#111}.cm-s-default span.cm-operator{color:#111}.cm-s-default span.cm-comment{color:#111}.cm-s-default span.cm-string{color:#D14}.cm-s-default span.cm-string-2{color:#009926}.cm-s-default span.cm-meta{color:#111}.cm-s-default span.cm-error{color:red}.cm-s-default span.cm-qualifier{color:#111}.cm-s-default span.cm-builtin{color:#111}.cm-s-default span.cm-bracket{color:#111}.cm-s-default span.cm-tag{color:#111}.cm-s-default span.cm-attribute{color:#111}.cm-s-default span.cm-header{color:#111}.cm-s-default span.cm-quote{color:#111}.cm-s-default span.cm-hr{color:#111}.cm-s-default span.cm-link{color:#1d8835}.CodeMirror-focused div.CodeMirror-selected{background:#b4d6bc}.CodeMirror{font-family:'Source Code Pro',monospace;line-height:1.4em;background-color:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.CodeMirror .error-line{background-color:#f2dede}.CodeMirror-gutters{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.welcome-links{margin:0;padding:0;list-style:none}.welcome-links li{display:inline;padding:0 10px;color:#729e7c}.welcome-links a:link,.welcome-links a:visited{color:#b9cfbd;-webkit-transition:color .2s ease-in-out;-moz-transition:color .2s ease-in-out;-o-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.welcome-links a:hover,.welcome-links a:active{color:#fff}@media screen and (max-width:1200px){#documents .pagination li.next a:before{content:'Next '}#documents .pagination li.prev a:after{content:' Prev'}}@media screen and (max-width:860px),screen and (max-height:860px){.masthead.epic.welcome{padding:40px 20px}.masthead.epic.welcome h1{font-size:90px}.masthead.epic.welcome h2{font-size:60px}.masthead.epic.welcome p{font-size:24px}}@media screen and (max-width:860px){.masthead{padding:40px 20px;margin-right:-20px;margin-left:-20px}.masthead.epic{padding:40px 20px}.masthead.epic h1{font-size:90px}.masthead.epic h2{font-size:60px}.masthead.epic p{font-size:24px}.modal-editor{left:20px;right:20px;width:auto;margin-left:0}table th,table td{padding:4px 5px}table td.action-column{padding-top:2px}#documents .pagination li.prev a:after,#documents .pagination li.next a:before{content:''}#keyboard-shortcuts{width:440px;margin-left:-220px}}@media only screen and (max-width:480px),only screen and (max-height:680px){.masthead.epic.welcome h1{font-size:60px}.masthead.epic.welcome h2{font-size:40px}.masthead.epic.welcome p{font-size:20px}}@media only screen and (max-width:480px){.container{padding:0}.navbar .nav{float:none}.navbar .btn.search{display:inline-block;z-index:10}body.section-documents .navbar form,body.section-document .navbar form{display:none;height:0;overflow:hidden}.navbar .brand{display:none}body.section-servers .navbar .brand,body:not(.has-section) .navbar .brand{display:block;text-align:center;float:none}.navbar .nav-section{position:absolute;background:none}.navbar .nav-section .dropdown-menu{display:none}body.section-servers .navbar .nav-section.servers,body.section-servers .navbar .nav-section.server,body.section-servers .navbar .nav-section.database,body.section-servers .navbar .nav-section.collection,body.section-databases .navbar .nav-section.database,body.section-databases .navbar .nav-section.collection,body.section-collections .navbar .nav-section.servers,body.section-collections .navbar .nav-section.collection,body.section-documents .navbar .nav-section.servers,body.section-documents .navbar .nav-section.server,body.section-document .navbar .nav-section.servers,body.section-document .navbar .nav-section.server{display:none}body.section-databases .navbar .nav-section.servers,body.section-collections .navbar .nav-section.server,body.section-documents .navbar .nav-section.database,body.section-document .navbar .nav-section.database{display:inline-block;float:left;padding:16px 0 0 2px;z-index:1012}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle,body.section-collections .navbar .nav-section.server > a.dropdown-toggle,body.section-documents .navbar .nav-section.database > a.dropdown-toggle,body.section-document .navbar .nav-section.database > a.dropdown-toggle,body.section-databases .navbar .nav-section.servers > a,body.section-collections .navbar .nav-section.server > a,body.section-documents .navbar .nav-section.database > a,body.section-document .navbar .nav-section.database > a{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:14px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid#ccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none;z-index:10;overflow:visible}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:hover,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:hover,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:hover,body.section-document .navbar .nav-section.database > a.dropdown-toggle:hover,body.section-databases .navbar .nav-section.servers > a:hover,body.section-collections .navbar .nav-section.server > a:hover,body.section-documents .navbar .nav-section.database > a:hover,body.section-document .navbar .nav-section.database > a:hover,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:focus,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:focus,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:focus,body.section-document .navbar .nav-section.database > a.dropdown-toggle:focus,body.section-databases .navbar .nav-section.servers > a:focus,body.section-collections .navbar .nav-section.server > a:focus,body.section-documents .navbar .nav-section.database > a:focus,body.section-document .navbar .nav-section.database > a:focus,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:active,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:active,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:active,body.section-document .navbar .nav-section.database > a.dropdown-toggle:active,body.section-databases .navbar .nav-section.servers > a:active,body.section-collections .navbar .nav-section.server > a:active,body.section-documents .navbar .nav-section.database > a:active,body.section-document .navbar .nav-section.database > a:active,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle.active,body.section-collections .navbar .nav-section.server > a.dropdown-toggle.active,body.section-documents .navbar .nav-section.database > a.dropdown-toggle.active,body.section-document .navbar .nav-section.database > a.dropdown-toggle.active,body.section-databases .navbar .nav-section.servers > a.active,body.section-collections .navbar .nav-section.server > a.active,body.section-documents .navbar .nav-section.database > a.active,body.section-document .navbar .nav-section.database > a.active,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle.disabled,body.section-collections .navbar .nav-section.server > a.dropdown-toggle.disabled,body.section-documents .navbar .nav-section.database > a.dropdown-toggle.disabled,body.section-document .navbar .nav-section.database > a.dropdown-toggle.disabled,body.section-databases .navbar .nav-section.servers > a.disabled,body.section-collections .navbar .nav-section.server > a.disabled,body.section-documents .navbar .nav-section.database > a.disabled,body.section-document .navbar .nav-section.database > a.disabled,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle[disabled],body.section-collections .navbar .nav-section.server > a.dropdown-toggle[disabled],body.section-documents .navbar .nav-section.database > a.dropdown-toggle[disabled],body.section-document .navbar .nav-section.database > a.dropdown-toggle[disabled],body.section-databases .navbar .nav-section.servers > a[disabled],body.section-collections .navbar .nav-section.server > a[disabled],body.section-documents .navbar .nav-section.database > a[disabled],body.section-document .navbar .nav-section.database > a[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:active,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:active,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:active,body.section-document .navbar .nav-section.database > a.dropdown-toggle:active,body.section-databases .navbar .nav-section.servers > a:active,body.section-collections .navbar .nav-section.server > a:active,body.section-documents .navbar .nav-section.database > a:active,body.section-document .navbar .nav-section.database > a:active,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle.active,body.section-collections .navbar .nav-section.server > a.dropdown-toggle.active,body.section-documents .navbar .nav-section.database > a.dropdown-toggle.active,body.section-document .navbar .nav-section.database > a.dropdown-toggle.active,body.section-databases .navbar .nav-section.servers > a.active,body.section-collections .navbar .nav-section.server > a.active,body.section-documents .navbar .nav-section.database > a.active,body.section-document .navbar .nav-section.database > a.active{background-color:#ccc \9}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:first-child,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:first-child,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:first-child,body.section-document .navbar .nav-section.database > a.dropdown-toggle:first-child,body.section-databases .navbar .nav-section.servers > a:first-child,body.section-collections .navbar .nav-section.server > a:first-child,body.section-documents .navbar .nav-section.database > a:first-child,body.section-document .navbar .nav-section.database > a:first-child{*margin-left:0}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:hover,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:hover,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:hover,body.section-document .navbar .nav-section.database > a.dropdown-toggle:hover,body.section-databases .navbar .nav-section.servers > a:hover,body.section-collections .navbar .nav-section.server > a:hover,body.section-documents .navbar .nav-section.database > a:hover,body.section-document .navbar .nav-section.database > a:hover,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:focus,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:focus,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:focus,body.section-document .navbar .nav-section.database > a.dropdown-toggle:focus,body.section-databases .navbar .nav-section.servers > a:focus,body.section-collections .navbar .nav-section.server > a:focus,body.section-documents .navbar .nav-section.database > a:focus,body.section-document .navbar .nav-section.database > a:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:focus,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:focus,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:focus,body.section-document .navbar .nav-section.database > a.dropdown-toggle:focus,body.section-databases .navbar .nav-section.servers > a:focus,body.section-collections .navbar .nav-section.server > a:focus,body.section-documents .navbar .nav-section.database > a:focus,body.section-document .navbar .nav-section.database > a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle.active,body.section-collections .navbar .nav-section.server > a.dropdown-toggle.active,body.section-documents .navbar .nav-section.database > a.dropdown-toggle.active,body.section-document .navbar .nav-section.database > a.dropdown-toggle.active,body.section-databases .navbar .nav-section.servers > a.active,body.section-collections .navbar .nav-section.server > a.active,body.section-documents .navbar .nav-section.database > a.active,body.section-document .navbar .nav-section.database > a.active,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:active,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:active,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:active,body.section-document .navbar .nav-section.database > a.dropdown-toggle:active,body.section-databases .navbar .nav-section.servers > a:active,body.section-collections .navbar .nav-section.server > a:active,body.section-documents .navbar .nav-section.database > a:active,body.section-document .navbar .nav-section.database > a:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle.disabled,body.section-collections .navbar .nav-section.server > a.dropdown-toggle.disabled,body.section-documents .navbar .nav-section.database > a.dropdown-toggle.disabled,body.section-document .navbar .nav-section.database > a.dropdown-toggle.disabled,body.section-databases .navbar .nav-section.servers > a.disabled,body.section-collections .navbar .nav-section.server > a.disabled,body.section-documents .navbar .nav-section.database > a.disabled,body.section-document .navbar .nav-section.database > a.disabled,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle[disabled],body.section-collections .navbar .nav-section.server > a.dropdown-toggle[disabled],body.section-documents .navbar .nav-section.database > a.dropdown-toggle[disabled],body.section-document .navbar .nav-section.database > a.dropdown-toggle[disabled],body.section-databases .navbar .nav-section.servers > a[disabled],body.section-collections .navbar .nav-section.server > a[disabled],body.section-documents .navbar .nav-section.database > a[disabled],body.section-document .navbar .nav-section.database > a[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle .label,body.section-collections .navbar .nav-section.server > a.dropdown-toggle .label,body.section-documents .navbar .nav-section.database > a.dropdown-toggle .label,body.section-document .navbar .nav-section.database > a.dropdown-toggle .label,body.section-databases .navbar .nav-section.servers > a .label,body.section-collections .navbar .nav-section.server > a .label,body.section-documents .navbar .nav-section.database > a .label,body.section-document .navbar .nav-section.database > a .label,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle .badge,body.section-collections .navbar .nav-section.server > a.dropdown-toggle .badge,body.section-documents .navbar .nav-section.database > a.dropdown-toggle .badge,body.section-document .navbar .nav-section.database > a.dropdown-toggle .badge,body.section-databases .navbar .nav-section.servers > a .badge,body.section-collections .navbar .nav-section.server > a .badge,body.section-documents .navbar .nav-section.database > a .badge,body.section-document .navbar .nav-section.database > a .badge{position:relative;top:-1px}html.cssmask body.section-databases .navbar .nav-section.servers > a.dropdown-toggle,html.cssmask body.section-collections .navbar .nav-section.server > a.dropdown-toggle,html.cssmask body.section-documents .navbar .nav-section.database > a.dropdown-toggle,html.cssmask body.section-document .navbar .nav-section.database > a.dropdown-toggle,html.cssmask body.section-databases .navbar .nav-section.servers > a,html.cssmask body.section-collections .navbar .nav-section.server > a,html.cssmask body.section-documents .navbar .nav-section.database > a,html.cssmask body.section-document .navbar .nav-section.database > a{display:inline-block;position:relative;padding-left:8px;-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}html.cssmask body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:before,html.cssmask body.section-collections .navbar .nav-section.server > a.dropdown-toggle:before,html.cssmask body.section-documents .navbar .nav-section.database > a.dropdown-toggle:before,html.cssmask body.section-document .navbar .nav-section.database > a.dropdown-toggle:before,html.cssmask body.section-databases .navbar .nav-section.servers > a:before,html.cssmask body.section-collections .navbar .nav-section.server > a:before,html.cssmask body.section-documents .navbar .nav-section.database > a:before,html.cssmask body.section-document .navbar .nav-section.database > a:before{position:absolute;left:-9px;top:2px;height:23px;width:23px;content:" ";background-color:#fff;background-image:-webkit-gradient(linear,top left,bottom right,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(-45deg,#fff,#e6e6e6);background-image:-moz-linear-gradient(-45deg,#fff,#e6e6e6);background-image:-o-linear-gradient(-45deg,#fff,#e6e6e6);background-image:linear-gradient(-45deg,#fff,#e6e6e6);background-repeat:repeat-x;border-left:1px solid #d9d9d9;border-bottom:1px solid #bfbfbf;-webkit-border-radius:7px 0 7px 0;-moz-border-radius:7px 0 7px 0;border-radius:7px 0 7px 0;display:inline-block;-webkit-transform:rotate(45deg) skew(3deg,3deg);-moz-transform:rotate(45deg) skew(3deg,3deg);-ms-transform:rotate(45deg) skewX(3deg) skewY(3deg);-o-transform:rotate(45deg) skew(3deg,3deg);transform:rotate(45deg) skew(3deg,3deg);-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.2);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.2);box-shadow:inset 1px 0 0 rgba(255,255,255,0.2);-webkit-mask-image:-webkit-gradient(linear,left bottom,right top,from(#000),color-stop(0.5,#000),color-stop(0.5,transparent),to(transparent));-webkit-mask-image:-webkit-linear-gradient(45deg,#000,#000 25%,#000 50%,transparent 50%,transparent);-moz-mask-image:-moz-linear-gradient(45deg,#000,#000 25%,#000 50%,transparent 50%,transparent);-o-mask-image:-o-linear-gradient(45deg,#000,#000 25%,#000 50%,transparent 50%,transparent);mask-image:linear-gradient(45deg,#000,#000 25%,#000 50%,transparent 50%,transparent);-webkit-background-clip:content;-moz-background-clip:content;background-clip:content}html.cssmask body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:hover:before,html.cssmask body.section-collections .navbar .nav-section.server > a.dropdown-toggle:hover:before,html.cssmask body.section-documents .navbar .nav-section.database > a.dropdown-toggle:hover:before,html.cssmask body.section-document .navbar .nav-section.database > a.dropdown-toggle:hover:before,html.cssmask body.section-databases .navbar .nav-section.servers > a:hover:before,html.cssmask body.section-collections .navbar .nav-section.server > a:hover:before,html.cssmask body.section-documents .navbar .nav-section.database > a:hover:before,html.cssmask body.section-document .navbar .nav-section.database > a:hover:before{background-color:#e8e8e8;background-position:-10px -10px}html.cssmask body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:active:before,html.cssmask body.section-collections .navbar .nav-section.server > a.dropdown-toggle:active:before,html.cssmask body.section-documents .navbar .nav-section.database > a.dropdown-toggle:active:before,html.cssmask body.section-document .navbar .nav-section.database > a.dropdown-toggle:active:before,html.cssmask body.section-databases .navbar .nav-section.servers > a:active:before,html.cssmask body.section-collections .navbar .nav-section.server > a:active:before,html.cssmask body.section-documents .navbar .nav-section.database > a:active:before,html.cssmask body.section-document .navbar .nav-section.database > a:active:before{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;-webkit-box-shadow:inset 0 3px 4px rgba(0,0,0,0.15);-moz-box-shadow:inset 0 3px 4px rgba(0,0,0,0.15);box-shadow:inset 0 3px 4px rgba(0,0,0,0.15)}body.section-databases .navbar .nav-section.servers.dropdown .dropdown-toggle,body.section-collections .navbar .nav-section.server.dropdown .dropdown-toggle,body.section-documents .navbar .nav-section.database.dropdown .dropdown-toggle,body.section-document .navbar .nav-section.database.dropdown .dropdown-toggle{padding:4px 14px}body.section-databases .navbar .nav-section.server,body.section-collections .navbar .nav-section.database,body.section-documents .navbar .nav-section.collection,body.section-document .navbar .nav-section.collection{width:12em;left:50%;margin-left:-6em;padding-top:20px;display:inline-block;float:none;text-align:center;z-index:1011}body.section-databases .navbar .nav-section.server > a,body.section-collections .navbar .nav-section.database > a,body.section-documents .navbar .nav-section.collection > a,body.section-document .navbar .nav-section.collection > a{font-family:"Rokkitt",serif;font-size:24px;line-height:24px}body.section-databases .navbar .nav-section.server .dropdown-toggle,body.section-collections .navbar .nav-section.database .dropdown-toggle,body.section-documents .navbar .nav-section.collection .dropdown-toggle,body.section-document .navbar .nav-section.collection .dropdown-toggle{padding:0}.masthead{text-align:center}.masthead .container{padding:0 20px}.masthead.epic h1{font-size:60px}.masthead.epic h2{font-size:40px}.masthead.epic p{font-size:20px}.app-section{border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}table,thead,tbody,th,td,tr{display:block}table{border:none}table thead tr{position:absolute;top:-9999px;left:-9999px}table tr{border:1px solid #DDD;border-bottom:none}table tr:last-child{border-bottom:1px solid #DDD}table tr:first-child,table tr:first-child > td:first-child{-webkit-border-top-left-radius:5px;-moz-border-radius-topleft:5px;border-top-left-radius:5px;-webkit-border-top-right-radius:5px;-moz-border-radius-topright:5px;border-top-right-radius:5px}table tr:last-child,table tr:last-child > td:last-child{-webkit-border-bottom-left-radius:5px;-moz-border-radius-bottomleft:5px;border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;-moz-border-radius-bottomright:5px;border-bottom-right-radius:5px}table td{border:none;position:relative;padding-left:35%}table td:before{position:absolute;top:6px;left:6px;width:30%;padding-right:10px;white-space:nowrap;font-weight:700}#keyboard-shortcuts{width:360px;margin-left:-180px}#servers table td:nth-of-type(1):before{content:"name"}#servers table td:nth-of-type(2):before{content:"databases"}#servers table td:nth-of-type(3):before{content:"size"}#servers table td:nth-of-type(4),#servers table td.action-column{display:none}#databases table td:nth-of-type(1):before{content:"name"}#databases table td:nth-of-type(2):before{content:"collections"}#databases table td:nth-of-type(3):before{content:"size"}#databases table td:nth-of-type(4),#databases table td.action-column{display:none}#collections table td:nth-of-type(1):before{content:"name"}#collections table td:nth-of-type(2):before{content:"documents"}#collections table td:nth-of-type(3):before{content:"indexes"}#collections table td:nth-of-type(4),#collections table td.action-column{display:none}}

@@script.js c37b9e44a96fb139f93bcfadf674a926
/**
 * Genghis v2.3.4
 *
 * The single-file MongoDB admin app
 *
 * http://genghisapp.com
 *
 * @author Justin Hileman <hide@address.com>
 */
window.Modernizr=function(e,t,n){function r(e){b.cssText=e}function i(e,t){return typeof e===t}function o(e,t){return!!~(""+e).indexOf(t)}function s(e,t){for(var r in e){var i=e[r];if(!o(i,"-")&&b[i]!==n)return"pfx"==t?i:!0}return!1}function a(e,t,r){for(var o in e){var s=t[e[o]];if(s!==n)return r===!1?e[o]:i(s,"function")?s.bind(r||t):s}return!1}function l(e,t,n){var r=e.charAt(0).toUpperCase()+e.slice(1),o=(e+" "+w.join(r+" ")+r).split(" ");return i(t,"string")||i(t,"undefined")?s(o,t):(o=(e+" "+x.join(r+" ")+r).split(" "),a(o,t,n))}var c,u,d,f="2.6.2",h={},p=!0,m=t.documentElement,g="modernizr",v=t.createElement(g),b=v.style,y=({}.toString,"Webkit Moz O ms"),w=y.split(" "),x=y.toLowerCase().split(" "),C={},S=[],k=S.slice,T={}.hasOwnProperty;d=i(T,"undefined")||i(T.call,"undefined")?function(e,t){return t in e&&i(e.constructor.prototype[t],"undefined")}:function(e,t){return T.call(e,t)},Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError;var n=k.call(arguments,1),r=function(){if(this instanceof r){var i=function(){};i.prototype=t.prototype;var o=new i,s=t.apply(o,n.concat(k.call(arguments)));return Object(s)===s?s:o}return t.apply(e,n.concat(k.call(arguments)))};return r});for(var E in C)d(C,E)&&(u=E.toLowerCase(),h[u]=C[E](),S.push((h[u]?"":"no-")+u));return h.addTest=function(e,t){if("object"==typeof e)for(var r in e)d(e,r)&&h.addTest(r,e[r]);else{if(e=e.toLowerCase(),h[e]!==n)return h;t="function"==typeof t?t():t,"undefined"!=typeof p&&p&&(m.className+=" "+(t?"":"no-")+e),h[e]=t}return h},r(""),v=c=null,h._version=f,h._domPrefixes=x,h._cssomPrefixes=w,h.testProp=function(e){return s([e])},h.testAllProps=l,m.className=m.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(p?" js "+S.join(" "):""),h}(this,this.document),Modernizr.addTest("cssmask",Modernizr.testAllProps("maskRepeat")),Modernizr.addTest("textoverflow",Modernizr.testAllProps("textOverflow")),Modernizr.addTest("filereader",!!(window.File&&window.FileList&&window.FileReader)),Modernizr.addTest("fileinput",function(){if(navigator.userAgent.match(/(Android (1.0|1.1|1.5|1.6|2.0|2.1))|(Windows Phone (OS 7|8.0)|(XBLWP)|(ZuneWP)|(w(eb)?OSBrowser)|(webOS)|Pre\/1.2|Kindle\/(1.0|2.0|2.5|3.0))/))return!1;var e=document.createElement("input");return e.type="file",!e.disabled}),function(e,t){function n(e){var t=e.length,n=lt.type(e);return lt.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e){var t=St[e]={};return lt.each(e.match(ut)||[],function(e,n){t[n]=!0}),t}function i(e,n,r,i){if(lt.acceptData(e)){var o,s,a=lt.expando,l="string"==typeof n,c=e.nodeType,u=c?lt.cache:e,d=c?e[a]:e[a]&&a;if(d&&u[d]&&(i||u[d].data)||!l||r!==t)return d||(c?e[a]=d=Z.pop()||lt.guid++:d=a),u[d]||(u[d]={},c||(u[d].toJSON=lt.noop)),("object"==typeof n||"function"==typeof n)&&(i?u[d]=lt.extend(u[d],n):u[d].data=lt.extend(u[d].data,n)),o=u[d],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[lt.camelCase(n)]=r),l?(s=o[n],null==s&&(s=o[lt.camelCase(n)])):s=o,s}}function o(e,t,n){if(lt.acceptData(e)){var r,i,o,s=e.nodeType,l=s?lt.cache:e,c=s?e[lt.expando]:lt.expando;if(l[c]){if(t&&(o=n?l[c]:l[c].data)){lt.isArray(t)?t=t.concat(lt.map(t,lt.camelCase)):t in o?t=[t]:(t=lt.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?a:lt.isEmptyObject)(o))return}(n||(delete l[c].data,a(l[c])))&&(s?lt.cleanData([e],!0):lt.support.deleteExpando||l!=l.window?delete l[c]:l[c]=null)}}}function s(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(Tt,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:kt.test(r)?lt.parseJSON(r):r}catch(o){}lt.data(e,n,r)}else r=t}return r}function a(e){var t;for(t in e)if(("data"!==t||!lt.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function l(){return!0}function c(){return!1}function u(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function d(e,t,n){if(t=t||0,lt.isFunction(t))return lt.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return lt.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=lt.grep(e,function(e){return 1===e.nodeType});if(zt.test(t))return lt.filter(t,r,!n);t=lt.filter(t,r)}return lt.grep(e,function(e){return lt.inArray(e,t)>=0===n})}function f(e){var t=Ut.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function p(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function m(e){var t=on.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)lt._data(n,"globalEval",!t||lt._data(t[r],"globalEval"))}function v(e,t){if(1===t.nodeType&&lt.hasData(e)){var n,r,i,o=lt._data(e),s=lt._data(t,o),a=o.events;if(a){delete s.handle,s.events={};for(n in a)for(r=0,i=a[n].length;i>r;r++)lt.event.add(t,n,a[n][r])}s.data&&(s.data=lt.extend({},s.data))}}function b(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!lt.support.noCloneEvent&&t[lt.expando]){i=lt._data(t);for(r in i.events)lt.removeEvent(t,r,i.handle);t.removeAttribute(lt.expando)}"script"===n&&t.text!==e.text?(p(t).text=e.text,m(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),lt.support.html5Clone&&e.innerHTML&&!lt.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&tn.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function y(e,n){var r,i,o=0,s=typeof e.getElementsByTagName!==q?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==q?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(i=r[o]);o++)!n||lt.nodeName(i,n)?s.push(i):lt.merge(s,y(i,n));return n===t||n&&lt.nodeName(e,n)?lt.merge([e],s):s}function w(e){tn.test(e.type)&&(e.defaultChecked=e.checked)}function x(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Tn.length;i--;)if(t=Tn[i]+n,t in e)return t;return r}function C(e,t){return e=t||e,"none"===lt.css(e,"display")||!lt.contains(e.ownerDocument,e)}function S(e,t){for(var n,r,i,o=[],s=0,a=e.length;a>s;s++)r=e[s],r.style&&(o[s]=lt._data(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&C(r)&&(o[s]=lt._data(r,"olddisplay",L(r.nodeName)))):o[s]||(i=C(r),(n&&"none"!==n||!i)&&lt._data(r,"olddisplay",i?n:lt.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}function k(e,t,n){var r=bn.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function T(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;4>o;o+=2)"margin"===n&&(s+=lt.css(e,n+kn[o],!0,i)),r?("content"===n&&(s-=lt.css(e,"padding"+kn[o],!0,i)),"margin"!==n&&(s-=lt.css(e,"border"+kn[o]+"Width",!0,i))):(s+=lt.css(e,"padding"+kn[o],!0,i),"padding"!==n&&(s+=lt.css(e,"border"+kn[o]+"Width",!0,i)));return s}function E(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=dn(e),s=lt.support.boxSizing&&"border-box"===lt.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=fn(e,t,o),(0>i||null==i)&&(i=e.style[t]),yn.test(i))return i;r=s&&(lt.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+T(e,t,n||(s?"border":"content"),r,o)+"px"}function L(e){var t=K,n=xn[e];return n||(n=N(e,t),"none"!==n&&n||(un=(un||lt("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(un[0].contentWindow||un[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=N(e,t),un.detach()),xn[e]=n),n}function N(e,t){var n=lt(t.createElement(e)).appendTo(t.body),r=lt.css(n[0],"display");return n.remove(),r}function A(e,t,n,r){var i;if(lt.isArray(t))lt.each(t,function(t,i){n||Ln.test(e)?r(e,i):A(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==lt.type(t))r(e,t);else for(i in t)A(e+"["+i+"]",t[i],n,r)}function D(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(ut)||[];if(lt.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function M(e,t,n,r){function i(a){var l;return o[a]=!0,lt.each(e[a]||[],function(e,a){var c=a(t,n,r);return"string"!=typeof c||s||o[c]?s?!(l=c):void 0:(t.dataTypes.unshift(c),i(c),!1)}),l}var o={},s=e===Wn;return i(t.dataTypes[0])||!o["*"]&&i("*")}function I(e,n){var r,i,o=lt.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&lt.extend(!0,e,r),e}function $(e,n,r){var i,o,s,a,l=e.contents,c=e.dataTypes,u=e.responseFields;for(a in u)a in r&&(n[u[a]]=r[a]);for(;"*"===c[0];)c.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(a in l)if(l[a]&&l[a].test(o)){c.unshift(a);break}if(c[0]in r)s=c[0];else{for(a in r){if(!c[0]||e.converters[a+" "+c[0]]){s=a;break}i||(i=a)}s=s||i}return s?(s!==c[0]&&c.unshift(s),r[s]):void 0}function O(e,t){var n,r,i,o,s={},a=0,l=e.dataTypes.slice(),c=l[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l[1])for(i in e.converters)s[i.toLowerCase()]=e.converters[i];for(;r=l[++a];)if("*"!==r){if("*"!==c&&c!==r){if(i=s[c+" "+r]||s["* "+r],!i)for(n in s)if(o=n.split(" "),o[1]===r&&(i=s[c+" "+o[0]]||s["* "+o[0]])){i===!0?i=s[n]:s[n]!==!0&&(r=o[0],l.splice(a--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(u){return{state:"parsererror",error:i?u:"No conversion from "+c+" to "+r}}}c=r}return{state:"success",data:t}}function P(){try{return new e.XMLHttpRequest}catch(t){}}function _(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function F(){return setTimeout(function(){Zn=t}),Zn=lt.now()}function H(e,t){lt.each(t,function(t,n){for(var r=(or[t]||[]).concat(or["*"]),i=0,o=r.length;o>i;i++)if(r[i].call(e,t,n))return})}function G(e,t,n){var r,i,o=0,s=ir.length,a=lt.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;for(var t=Zn||F(),n=Math.max(0,c.startTime+c.duration-t),r=n/c.duration||0,o=1-r,s=0,l=c.tweens.length;l>s;s++)c.tweens[s].run(o);return a.notifyWith(e,[c,o,n]),1>o&&l?n:(a.resolveWith(e,[c]),!1)},c=a.promise({elem:e,props:lt.extend({},t),opts:lt.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Zn||F(),duration:n.duration,tweens:[],createTween:function(t,n){var r=lt.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(r),r},stop:function(t){var n=0,r=t?c.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)c.tweens[n].run(1);return t?a.resolveWith(e,[c,t]):a.rejectWith(e,[c,t]),this}}),u=c.props;for(j(u,c.opts.specialEasing);s>o;o++)if(r=ir[o].call(c,e,u,c.opts))return r;return H(c,u),lt.isFunction(c.opts.start)&&c.opts.start.call(e,c),lt.fx.timer(lt.extend(l,{elem:e,anim:c,queue:c.opts.queue})),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always)}function j(e,t){var n,r,i,o,s;for(i in e)if(r=lt.camelCase(i),o=t[r],n=e[i],lt.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),s=lt.cssHooks[r],s&&"expand"in s){n=s.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}function B(e,t,n){var r,i,o,s,a,l,c,u,d,f=this,h=e.style,p={},m=[],g=e.nodeType&&C(e);n.queue||(u=lt._queueHooks(e,"fx"),null==u.unqueued&&(u.unqueued=0,d=u.empty.fire,u.empty.fire=function(){u.unqueued||d()}),u.unqueued++,f.always(function(){f.always(function(){u.unqueued--,lt.queue(e,"fx").length||u.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],"inline"===lt.css(e,"display")&&"none"===lt.css(e,"float")&&(lt.support.inlineBlockNeedsLayout&&"inline"!==L(e.nodeName)?h.zoom=1:h.display="inline-block")),n.overflow&&(h.overflow="hidden",lt.support.shrinkWrapBlocks||f.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]}));for(i in t)if(s=t[i],tr.exec(s)){if(delete t[i],l=l||"toggle"===s,s===(g?"hide":"show"))continue;m.push(i)}if(o=m.length){a=lt._data(e,"fxshow")||lt._data(e,"fxshow",{}),"hidden"in a&&(g=a.hidden),l&&(a.hidden=!g),g?lt(e).show():f.done(function(){lt(e).hide()}),f.done(function(){var t;lt._removeData(e,"fxshow");for(t in p)lt.style(e,t,p[t])});for(i=0;o>i;i++)r=m[i],c=f.createTween(r,g?a[r]:0),p[r]=a[r]||lt.style(e,r),r in a||(a[r]=c.start,g&&(c.end=c.start,c.start="width"===r||"height"===r?1:0))}}function R(e,t,n,r,i){return new R.prototype.init(e,t,n,r,i)}function z(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=kn[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function W(e){return lt.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var V,U,q=typeof t,K=e.document,X=e.location,J=e.jQuery,Q=e.$,Y={},Z=[],et="1.9.1",tt=Z.concat,nt=Z.push,rt=Z.slice,it=Z.indexOf,ot=Y.toString,st=Y.hasOwnProperty,at=et.trim,lt=function(e,t){return new lt.fn.init(e,t,U)},ct=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ut=/\S+/g,dt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ft=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,ht=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,pt=/^[\],:{}\s]*$/,mt=/(?:^|:|,)(?:\s*\[)+/g,gt=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,vt=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,bt=/^-ms-/,yt=/-([\da-z])/gi,wt=function(e,t){return t.toUpperCase()},xt=function(e){(K.addEventListener||"load"===e.type||"complete"===K.readyState)&&(Ct(),lt.ready())},Ct=function(){K.addEventListener?(K.removeEventListener("DOMContentLoaded",xt,!1),e.removeEventListener("load",xt,!1)):(K.detachEvent("onreadystatechange",xt),e.detachEvent("onload",xt))};lt.fn=lt.prototype={jquery:et,constructor:lt,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:ft.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof lt?n[0]:n,lt.merge(this,lt.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:K,!0)),ht.test(i[1])&&lt.isPlainObject(n))for(i in n)lt.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=K.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=K,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):lt.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),lt.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return rt.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=lt.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return lt.each(this,e,t)},ready:function(e){return lt.ready.promise().done(e),this},slice:function(){return this.pushStack(rt.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(lt.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:nt,sort:[].sort,splice:[].splice},lt.fn.init.prototype=lt.fn,lt.extend=lt.fn.extend=function(){var e,n,r,i,o,s,a=arguments[0]||{},l=1,c=arguments.length,u=!1;for("boolean"==typeof a&&(u=a,a=arguments[1]||{},l=2),"object"==typeof a||lt.isFunction(a)||(a={}),c===l&&(a=this,--l);c>l;l++)if(null!=(o=arguments[l]))for(i in o)e=a[i],r=o[i],a!==r&&(u&&r&&(lt.isPlainObject(r)||(n=lt.isArray(r)))?(n?(n=!1,s=e&&lt.isArray(e)?e:[]):s=e&&lt.isPlainObject(e)?e:{},a[i]=lt.extend(u,s,r)):r!==t&&(a[i]=r));return a},lt.extend({noConflict:function(t){return e.$===lt&&(e.$=Q),t&&e.jQuery===lt&&(e.jQuery=J),lt},isReady:!1,readyWait:1,holdReady:function(e){e?lt.readyWait++:lt.ready(!0)},ready:function(e){if(e===!0?!--lt.readyWait:!lt.isReady){if(!K.body)return setTimeout(lt.ready);lt.isReady=!0,e!==!0&&--lt.readyWait>0||(V.resolveWith(K,[lt]),lt.fn.trigger&&lt(K).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===lt.type(e)},isArray:Array.isArray||function(e){return"array"===lt.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?String(e):"object"==typeof e||"function"==typeof e?Y[ot.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==lt.type(e)||e.nodeType||lt.isWindow(e))return!1;try{if(e.constructor&&!st.call(e,"constructor")&&!st.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||st.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||K;var r=ht.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=lt.buildFragment([e],t,i),i&&lt(i).remove(),lt.merge([],r.childNodes))},parseJSON:function(t){return e.JSON&&e.JSON.parse?e.JSON.parse(t):null===t?t:"string"==typeof t&&(t=lt.trim(t),t&&pt.test(t.replace(gt,"@").replace(vt,"]").replace(mt,"")))?new Function("return "+t)():(lt.error("Invalid JSON: "+t),void 0)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||lt.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&lt.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(bt,"ms-").replace(yt,wt)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,r){var i,o=0,s=e.length,a=n(e);if(r){if(a)for(;s>o&&(i=t.apply(e[o],r),i!==!1);o++);else for(o in e)if(i=t.apply(e[o],r),i===!1)break}else if(a)for(;s>o&&(i=t.call(e[o],o,e[o]),i!==!1);o++);else for(o in e)if(i=t.call(e[o],o,e[o]),i===!1)break;return e},trim:at&&!at.call("\ufeff\u00a0")?function(e){return null==e?"":at.call(e)}:function(e){return null==e?"":(e+"").replace(dt,"")},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?lt.merge(r,"string"==typeof e?[e]:e):nt.call(r,e)),r},inArray:function(e,t,n){var r;if(t){if(it)return it.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else for(;n[o]!==t;)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,r){var i,o=0,s=e.length,a=n(e),l=[];if(a)for(;s>o;o++)i=t(e[o],o,r),null!=i&&(l[l.length]=i);else for(o in e)i=t(e[o],o,r),null!=i&&(l[l.length]=i);return tt.apply([],l)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),lt.isFunction(e)?(r=rt.call(arguments,2),i=function(){return e.apply(n||this,r.concat(rt.call(arguments)))},i.guid=e.guid=e.guid||lt.guid++,i):t},access:function(e,n,r,i,o,s,a){var l=0,c=e.length,u=null==r;if("object"===lt.type(r)){o=!0;for(l in r)lt.access(e,n,l,r[l],!0,s,a)}else if(i!==t&&(o=!0,lt.isFunction(i)||(a=!0),u&&(a?(n.call(e,i),n=null):(u=n,n=function(e,t,n){return u.call(lt(e),n)})),n))for(;c>l;l++)n(e[l],r,a?i:i.call(e[l],l,n(e[l],r)));return o?e:u?n.call(e):c?n(e[0],r):s},now:function(){return(new Date).getTime()}}),lt.ready.promise=function(t){if(!V)if(V=lt.Deferred(),"complete"===K.readyState)setTimeout(lt.ready);else if(K.addEventListener)K.addEventListener("DOMContentLoaded",xt,!1),e.addEventListener("load",xt,!1);else{K.attachEvent("onreadystatechange",xt),e.attachEvent("onload",xt);var n=!1;try{n=null==e.frameElement&&K.documentElement}catch(r){}n&&n.doScroll&&function i(){if(!lt.isReady){try{n.doScroll("left")}catch(e){return setTimeout(i,50)}Ct(),lt.ready()}}()}return V.promise(t)},lt.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){Y["[object "+t+"]"]=t.toLowerCase()}),U=lt(K);var St={};lt.Callbacks=function(e){e="string"==typeof e?St[e]||r(e):lt.extend({},e);var n,i,o,s,a,l,c=[],u=!e.once&&[],d=function(t){for(i=e.memory&&t,o=!0,a=l||0,l=0,s=c.length,n=!0;c&&s>a;a++)if(c[a].apply(t[0],t[1])===!1&&e.stopOnFalse){i=!1;break}n=!1,c&&(u?u.length&&d(u.shift()):i?c=[]:f.disable())},f={add:function(){if(c){var t=c.length;(function r(t){lt.each(t,function(t,n){var i=lt.type(n);"function"===i?e.unique&&f.has(n)||c.push(n):n&&n.length&&"string"!==i&&r(n)})})(arguments),n?s=c.length:i&&(l=t,d(i))}return this},remove:function(){return c&&lt.each(arguments,function(e,t){for(var r;(r=lt.inArray(t,c,r))>-1;)c.splice(r,1),n&&(s>=r&&s--,a>=r&&a--)}),this},has:function(e){return e?lt.inArray(e,c)>-1:!(!c||!c.length)},empty:function(){return c=[],this},disable:function(){return c=u=i=t,this},disabled:function(){return!c},lock:function(){return u=t,i||f.disable(),this},locked:function(){return!u},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!c||o&&!u||(n?u.push(t):d(t)),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},lt.extend({Deferred:function(e){var t=[["resolve","done",lt.Callbacks("once memory"),"resolved"],["reject","fail",lt.Callbacks("once memory"),"rejected"],["notify","progress",lt.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return lt.Deferred(function(n){lt.each(t,function(t,o){var s=o[0],a=lt.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&lt.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?lt.extend(e,r):r}},i={};return r.pipe=r.then,lt.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=rt.call(arguments),s=o.length,a=1!==s||e&&lt.isFunction(e.promise)?s:0,l=1===a?e:lt.Deferred(),c=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?rt.call(arguments):i,r===t?l.notifyWith(n,r):--a||l.resolveWith(n,r)}};if(s>1)for(t=new Array(s),n=new Array(s),r=new Array(s);s>i;i++)o[i]&&lt.isFunction(o[i].promise)?o[i].promise().done(c(i,r,o)).fail(l.reject).progress(c(i,n,t)):--a;return a||l.resolveWith(r,o),l.promise()}}),lt.support=function(){var t,n,r,i,o,s,a,l,c,u,d=K.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};o=K.createElement("select"),a=o.appendChild(K.createElement("option")),i=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!i.value,optSelected:a.selected,enctype:!!K.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==K.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===K.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},i.checked=!0,t.noCloneChecked=i.cloneNode(!0).checked,o.disabled=!0,t.optDisabled=!a.disabled;try{delete d.test}catch(f){t.deleteExpando=!1}i=K.createElement("input"),i.setAttribute("value",""),t.input=""===i.getAttribute("value"),i.value="t",i.setAttribute("type","radio"),t.radioValue="t"===i.value,i.setAttribute("checked","t"),i.setAttribute("name","t"),s=K.createDocumentFragment(),s.appendChild(i),t.appendChecked=i.checked,t.checkClone=s.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(u in{submit:!0,change:!0,focusin:!0})d.setAttribute(l="on"+u,"t"),t[u+"Bubbles"]=l in e||d.attributes[l].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,lt(function(){var n,r,i,o="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",s=K.getElementsByTagName("body")[0];s&&(n=K.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",s.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=d.getElementsByTagName("td"),i[0].style.cssText="padding:0;margin:0;border:0;display:none",c=0===i[0].offsetHeight,i[0].style.display="",i[1].style.display="none",t.reliableHiddenOffsets=c&&0===i[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==s.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(K.createElement("div")),r.style.cssText=d.style.cssText=o,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==q&&(d.innerHTML="",d.style.cssText=o+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(s.style.zoom=1)),s.removeChild(n),n=d=i=r=null)}),n=o=s=a=r=i=null,t}();var kt=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,Tt=/([A-Z])/g;lt.extend({cache:{},expando:"jQuery"+(et+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?lt.cache[e[lt.expando]]:e[lt.expando],!!e&&!a(e)},data:function(e,t,n){return i(e,t,n)},removeData:function(e,t){return o(e,t)},_data:function(e,t,n){return i(e,t,n,!0)},_removeData:function(e,t){return o(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&lt.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),lt.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,l=null;if(e===t){if(this.length&&(l=lt.data(o),1===o.nodeType&&!lt._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=lt.camelCase(i.slice(5)),s(o,i,l[i]));lt._data(o,"parsedAttrs",!0)}return l}return"object"==typeof e?this.each(function(){lt.data(this,e)}):lt.access(this,function(n){return n===t?o?s(o,e,lt.data(o,e)):null:(this.each(function(){lt.data(this,e,n)}),void 0)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){lt.removeData(this,e)})}}),lt.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=lt._data(e,t),n&&(!r||lt.isArray(n)?r=lt._data(e,t,lt.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=lt.queue(e,t),r=n.length,i=n.shift(),o=lt._queueHooks(e,t),s=function(){lt.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return lt._data(e,n)||lt._data(e,n,{empty:lt.Callbacks("once memory").add(function(){lt._removeData(e,t+"queue"),lt._removeData(e,n)})})}}),lt.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?lt.queue(this[0],e):n===t?this:this.each(function(){var t=lt.queue(this,e,n);lt._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&lt.dequeue(this,e)})},dequeue:function(e){return this.each(function(){lt.dequeue(this,e)})},delay:function(e,t){return e=lt.fx?lt.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=lt.Deferred(),s=this,a=this.length,l=function(){--i||o.resolveWith(s,[s])};for("string"!=typeof e&&(n=e,e=t),e=e||"fx";a--;)r=lt._data(s[a],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var Et,Lt,Nt=/[\t\r\n]/g,At=/\r/g,Dt=/^(?:input|select|textarea|button|object)$/i,Mt=/^(?:a|area)$/i,It=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,$t=/^(?:checked|selected)$/i,Ot=lt.support.getSetAttribute,Pt=lt.support.input;lt.fn.extend({attr:function(e,t){return lt.access(this,lt.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){lt.removeAttr(this,e)})},prop:function(e,t){return lt.access(this,lt.prop,e,t,arguments.length>1)},removeProp:function(e){return e=lt.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,l="string"==typeof e&&e;if(lt.isFunction(e))return this.each(function(t){lt(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(ut)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(Nt," "):" ")){for(o=0;i=t[o++];)0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=lt.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,l=0===arguments.length||"string"==typeof e&&e;if(lt.isFunction(e))return this.each(function(t){lt(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(ut)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(Nt," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");n.className=e?lt.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return lt.isFunction(e)?this.each(function(n){lt(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n)for(var i,o=0,s=lt(this),a=t,l=e.match(ut)||[];i=l[o++];)a=r?a:!s.hasClass(i),s[a?"addClass":"removeClass"](i);else(n===q||"boolean"===n)&&(this.className&&lt._data(this,"__className__",this.className),this.className=this.className||e===!1?"":lt._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(Nt," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=lt.isFunction(e),this.each(function(n){var o,s=lt(this);1===this.nodeType&&(o=i?e.call(this,n,s.val()):e,null==o?o="":"number"==typeof o?o+="":lt.isArray(o)&&(o=lt.map(o,function(e){return null==e?"":e+""})),r=lt.valHooks[this.type]||lt.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=lt.valHooks[o.type]||lt.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(At,""):null==n?"":n)}}}),lt.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,l=0>i?a:o?i:0;a>l;l++)if(n=r[l],!(!n.selected&&l!==i||(lt.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&lt.nodeName(n.parentNode,"optgroup"))){if(t=lt(n).val(),o)return t;s.push(t)}return s},set:function(e,t){var n=lt.makeArray(t);return lt(e).find("option").each(function(){this.selected=lt.inArray(lt(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var i,o,s,a=e.nodeType;if(e&&3!==a&&8!==a&&2!==a)return typeof e.getAttribute===q?lt.prop(e,n,r):(o=1!==a||!lt.isXMLDoc(e),o&&(n=n.toLowerCase(),i=lt.attrHooks[n]||(It.test(n)?Lt:Et)),r===t?i&&o&&"get"in i&&null!==(s=i.get(e,n))?s:(typeof e.getAttribute!==q&&(s=e.getAttribute(n)),null==s?t:s):null!==r?i&&o&&"set"in i&&(s=i.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(lt.removeAttr(e,n),void 0))
},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(ut);if(o&&1===e.nodeType)for(;n=o[i++];)r=lt.propFix[n]||n,It.test(n)?!Ot&&$t.test(n)?e[lt.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:lt.attr(e,n,""),e.removeAttribute(Ot?n:r)},attrHooks:{type:{set:function(e,t){if(!lt.support.radioValue&&"radio"===t&&lt.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},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(e,n,r){var i,o,s,a=e.nodeType;if(e&&3!==a&&8!==a&&2!==a)return s=1!==a||!lt.isXMLDoc(e),s&&(n=lt.propFix[n]||n,o=lt.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):Dt.test(e.nodeName)||Mt.test(e.nodeName)&&e.href?0:t}}}}),Lt={get:function(e,n){var r=lt.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?Pt&&Ot?null!=i:$t.test(n)?e[lt.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?lt.removeAttr(e,n):Pt&&Ot||!$t.test(n)?e.setAttribute(!Ot&&lt.propFix[n]||n,n):e[lt.camelCase("default-"+n)]=e[n]=!0,n}},Pt&&Ot||(lt.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return lt.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,t,n){return lt.nodeName(e,"input")?(e.defaultValue=t,void 0):Et&&Et.set(e,t,n)}}),Ot||(Et=lt.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},lt.attrHooks.contenteditable={get:Et.get,set:function(e,t,n){Et.set(e,""===t?!1:t,n)}},lt.each(["width","height"],function(e,t){lt.attrHooks[t]=lt.extend(lt.attrHooks[t],{set:function(e,n){return""===n?(e.setAttribute(t,"auto"),n):void 0}})})),lt.support.hrefNormalized||(lt.each(["href","src","width","height"],function(e,n){lt.attrHooks[n]=lt.extend(lt.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),lt.each(["href","src"],function(e,t){lt.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),lt.support.style||(lt.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),lt.support.optSelected||(lt.propHooks.selected=lt.extend(lt.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),lt.support.enctype||(lt.propFix.enctype="encoding"),lt.support.checkOn||lt.each(["radio","checkbox"],function(){lt.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),lt.each(["radio","checkbox"],function(){lt.valHooks[this]=lt.extend(lt.valHooks[this],{set:function(e,t){return lt.isArray(t)?e.checked=lt.inArray(lt(e).val(),t)>=0:void 0}})});var _t=/^(?:input|select|textarea)$/i,Ft=/^key/,Ht=/^(?:mouse|contextmenu)|click/,Gt=/^(?:focusinfocus|focusoutblur)$/,jt=/^([^.]*)(?:\.(.+)|)$/;lt.event={global:{},add:function(e,n,r,i,o){var s,a,l,c,u,d,f,h,p,m,g,v=lt._data(e);if(v){for(r.handler&&(c=r,r=c.handler,o=c.selector),r.guid||(r.guid=lt.guid++),(a=v.events)||(a=v.events={}),(d=v.handle)||(d=v.handle=function(e){return typeof lt===q||e&&lt.event.triggered===e.type?t:lt.event.dispatch.apply(d.elem,arguments)},d.elem=e),n=(n||"").match(ut)||[""],l=n.length;l--;)s=jt.exec(n[l])||[],p=g=s[1],m=(s[2]||"").split(".").sort(),u=lt.event.special[p]||{},p=(o?u.delegateType:u.bindType)||p,u=lt.event.special[p]||{},f=lt.extend({type:p,origType:g,data:i,handler:r,guid:r.guid,selector:o,needsContext:o&&lt.expr.match.needsContext.test(o),namespace:m.join(".")},c),(h=a[p])||(h=a[p]=[],h.delegateCount=0,u.setup&&u.setup.call(e,i,m,d)!==!1||(e.addEventListener?e.addEventListener(p,d,!1):e.attachEvent&&e.attachEvent("on"+p,d))),u.add&&(u.add.call(e,f),f.handler.guid||(f.handler.guid=r.guid)),o?h.splice(h.delegateCount++,0,f):h.push(f),lt.event.global[p]=!0;e=null}},remove:function(e,t,n,r,i){var o,s,a,l,c,u,d,f,h,p,m,g=lt.hasData(e)&&lt._data(e);if(g&&(u=g.events)){for(t=(t||"").match(ut)||[""],c=t.length;c--;)if(a=jt.exec(t[c])||[],h=m=a[1],p=(a[2]||"").split(".").sort(),h){for(d=lt.event.special[h]||{},h=(r?d.delegateType:d.bindType)||h,f=u[h]||[],a=a[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;o--;)s=f[o],!i&&m!==s.origType||n&&n.guid!==s.guid||a&&!a.test(s.namespace)||r&&r!==s.selector&&("**"!==r||!s.selector)||(f.splice(o,1),s.selector&&f.delegateCount--,d.remove&&d.remove.call(e,s));l&&!f.length&&(d.teardown&&d.teardown.call(e,p,g.handle)!==!1||lt.removeEvent(e,h,g.handle),delete u[h])}else for(h in u)lt.event.remove(e,h+t[c],n,r,!0);lt.isEmptyObject(u)&&(delete g.handle,lt._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,a,l,c,u,d,f,h=[i||K],p=st.call(n,"type")?n.type:n,m=st.call(n,"namespace")?n.namespace.split("."):[];if(l=d=i=i||K,3!==i.nodeType&&8!==i.nodeType&&!Gt.test(p+lt.event.triggered)&&(p.indexOf(".")>=0&&(m=p.split("."),p=m.shift(),m.sort()),a=0>p.indexOf(":")&&"on"+p,n=n[lt.expando]?n:new lt.Event(p,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:lt.makeArray(r,[n]),u=lt.event.special[p]||{},o||!u.trigger||u.trigger.apply(i,r)!==!1)){if(!o&&!u.noBubble&&!lt.isWindow(i)){for(c=u.delegateType||p,Gt.test(c+p)||(l=l.parentNode);l;l=l.parentNode)h.push(l),d=l;d===(i.ownerDocument||K)&&h.push(d.defaultView||d.parentWindow||e)}for(f=0;(l=h[f++])&&!n.isPropagationStopped();)n.type=f>1?c:u.bindType||p,s=(lt._data(l,"events")||{})[n.type]&&lt._data(l,"handle"),s&&s.apply(l,r),s=a&&l[a],s&&lt.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=p,!(o||n.isDefaultPrevented()||u._default&&u._default.apply(i.ownerDocument,r)!==!1||"click"===p&&lt.nodeName(i,"a")||!lt.acceptData(i)||!a||!i[p]||lt.isWindow(i))){d=i[a],d&&(i[a]=null),lt.event.triggered=p;try{i[p]()}catch(g){}lt.event.triggered=t,d&&(i[a]=d)}return n.result}},dispatch:function(e){e=lt.event.fix(e);var n,r,i,o,s,a=[],l=rt.call(arguments),c=(lt._data(this,"events")||{})[e.type]||[],u=lt.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!u.preDispatch||u.preDispatch.call(this,e)!==!1){for(a=lt.event.handlers.call(this,e,c),n=0;(o=a[n++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,s=0;(i=o.handlers[s++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((lt.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,s,a=[],l=n.delegateCount,c=e.target;if(l&&c.nodeType&&(!e.button||"click"!==e.type))for(;c!=this;c=c.parentNode||this)if(1===c.nodeType&&(c.disabled!==!0||"click"!==e.type)){for(o=[],s=0;l>s;s++)i=n[s],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?lt(r,this).index(c)>=0:lt.find(r,this,null,[c]).length),o[r]&&o.push(i);o.length&&a.push({elem:c,handlers:o})}return n.length>l&&a.push({elem:this,handlers:n.slice(l)}),a},fix:function(e){if(e[lt.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];for(s||(this.fixHooks[i]=s=Ht.test(i)?this.mouseHooks:Ft.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new lt.Event(o),t=r.length;t--;)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||K),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},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(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,a=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||K,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return lt.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0}},focus:{trigger:function(){if(this!==K.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===K.activeElement&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=lt.extend(new lt.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?lt.event.trigger(i,null,t):lt.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},lt.removeEvent=K.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===q&&(e[r]=null),e.detachEvent(r,n))},lt.Event=function(e,t){return this instanceof lt.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?l:c):this.type=e,t&&lt.extend(this,t),this.timeStamp=e&&e.timeStamp||lt.now(),this[lt.expando]=!0,void 0):new lt.Event(e,t)},lt.Event.prototype={isDefaultPrevented:c,isPropagationStopped:c,isImmediatePropagationStopped:c,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=l,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=l,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=l,this.stopPropagation()}},lt.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){lt.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!lt.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),lt.support.submitBubbles||(lt.event.special.submit={setup:function(){return lt.nodeName(this,"form")?!1:(lt.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=lt.nodeName(n,"input")||lt.nodeName(n,"button")?n.form:t;r&&!lt._data(r,"submitBubbles")&&(lt.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),lt._data(r,"submitBubbles",!0))}),void 0)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&lt.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return lt.nodeName(this,"form")?!1:(lt.event.remove(this,"._submit"),void 0)}}),lt.support.changeBubbles||(lt.event.special.change={setup:function(){return _t.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(lt.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),lt.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),lt.event.simulate("change",this,e,!0)})),!1):(lt.event.add(this,"beforeactivate._change",function(e){var t=e.target;_t.test(t.nodeName)&&!lt._data(t,"changeBubbles")&&(lt.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||lt.event.simulate("change",this.parentNode,e,!0)}),lt._data(t,"changeBubbles",!0))}),void 0)},handle:function(e){var t=e.target;return this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type?e.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return lt.event.remove(this,"._change"),!_t.test(this.nodeName)}}),lt.support.focusinBubbles||lt.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){lt.event.simulate(t,e.target,lt.event.fix(e),!0)};lt.event.special[t]={setup:function(){0===n++&&K.addEventListener(e,r,!0)},teardown:function(){0===--n&&K.removeEventListener(e,r,!0)}}}),lt.fn.extend({on:function(e,n,r,i,o){var s,a;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(s in e)this.on(s,n,r,e[s],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=c;else if(!i)return this;return 1===o&&(a=i,i=function(e){return lt().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=lt.guid++)),this.each(function(){lt.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,lt(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=c),this.each(function(){lt.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){lt.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?lt.event.trigger(e,t,n,!0):void 0}}),function(e,t){function n(e){return pt.test(e+"")}function r(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>k.cacheLength&&delete e[t.shift()],e[n]=r}}function i(e){return e[G]=!0,e}function o(e){var t=M.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function s(e,t,n,r){var i,o,s,a,l,c,u,h,p,m;if((t?t.ownerDocument||t:j)!==M&&D(t),t=t||M,n=n||[],!e||"string"!=typeof e)return n;if(1!==(a=t.nodeType)&&9!==a)return[];if(!$&&!r){if(i=mt.exec(e))if(s=i[1]){if(9===a){if(o=t.getElementById(s),!o||!o.parentNode)return n;if(o.id===s)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(s))&&F(t,o)&&o.id===s)return n.push(o),n}else{if(i[2])return Q.apply(n,Y.call(t.getElementsByTagName(e),0)),n;if((s=i[3])&&B.getByClassName&&t.getElementsByClassName)return Q.apply(n,Y.call(t.getElementsByClassName(s),0)),n}if(B.qsa&&!O.test(e)){if(u=!0,h=G,p=t,m=9===a&&e,1===a&&"object"!==t.nodeName.toLowerCase()){for(c=d(e),(u=t.getAttribute("id"))?h=u.replace(bt,"\\$&"):t.setAttribute("id",h),h="[id='"+h+"'] ",l=c.length;l--;)c[l]=h+f(c[l]);p=ht.test(e)&&t.parentNode||t,m=c.join(",")}if(m)try{return Q.apply(n,Y.call(p.querySelectorAll(m),0)),n}catch(g){}finally{u||t.removeAttribute("id")}}}return w(e.replace(st,"$1"),t,n,r)}function a(e,t){var n=t&&e,r=n&&(~t.sourceIndex||K)-(~e.sourceIndex||K);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function l(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function c(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function u(e){return i(function(t){return t=+t,i(function(n,r){for(var i,o=e([],n.length,t),s=o.length;s--;)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}function d(e,t){var n,r,i,o,a,l,c,u=V[e+" "];if(u)return t?0:u.slice(0);for(a=e,l=[],c=k.preFilter;a;){(!n||(r=at.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),l.push(i=[])),n=!1,(r=ct.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(st," ")}),a=a.slice(n.length));for(o in k.filter)!(r=ft[o].exec(a))||c[o]&&!(r=c[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?s.error(e):V(e,l).slice(0)}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function h(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=z++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,s){var a,l,c,u=R+" "+o;if(s){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,s))return!0}else for(;t=t[r];)if(1===t.nodeType||i)if(c=t[G]||(t[G]={}),(l=c[r])&&l[0]===u){if((a=l[1])===!0||a===S)return a===!0}else if(l=c[r]=[u],l[1]=e(t,n,s)||S,l[1]===!0)return!0}}function p(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,t,n,r,i){for(var o,s=[],a=0,l=e.length,c=null!=t;l>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),c&&t.push(a));return s}function g(e,t,n,r,o,s){return r&&!r[G]&&(r=g(r)),o&&!o[G]&&(o=g(o,s)),i(function(i,s,a,l){var c,u,d,f=[],h=[],p=s.length,g=i||y(t||"*",a.nodeType?[a]:a,[]),v=!e||!i&&t?g:m(g,f,e,a,l),b=n?o||(i?e:p||r)?[]:s:v;if(n&&n(v,b,a,l),r)for(c=m(b,h),r(c,[],a,l),u=c.length;u--;)(d=c[u])&&(b[h[u]]=!(v[h[u]]=d));if(i){if(o||e){if(o){for(c=[],u=b.length;u--;)(d=b[u])&&c.push(v[u]=d);o(null,b=[],c,l)}for(u=b.length;u--;)(d=b[u])&&(c=o?Z.call(i,d):f[u])>-1&&(i[c]=!(s[c]=d))}}else b=m(b===s?b.splice(p,b.length):b),o?o(null,s,b,l):Q.apply(s,b)})}function v(e){for(var t,n,r,i=e.length,o=k.relative[e[0].type],s=o||k.relative[" "],a=o?1:0,l=h(function(e){return e===t},s,!0),c=h(function(e){return Z.call(t,e)>-1},s,!0),u=[function(e,n,r){return!o&&(r||n!==A)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>a;a++)if(n=k.relative[e[a].type])u=[h(p(u),n)];else{if(n=k.filter[e[a].type].apply(null,e[a].matches),n[G]){for(r=++a;i>r&&!k.relative[e[r].type];r++);return g(a>1&&p(u),a>1&&f(e.slice(0,a-1)).replace(st,"$1"),n,r>a&&v(e.slice(a,r)),i>r&&v(e=e.slice(r)),i>r&&f(e))}u.push(n)}return p(u)}function b(e,t){var n=0,r=t.length>0,o=e.length>0,a=function(i,a,l,c,u){var d,f,h,p=[],g=0,v="0",b=i&&[],y=null!=u,w=A,x=i||o&&k.find.TAG("*",u&&a.parentNode||a),C=R+=null==w?1:Math.random()||.1;for(y&&(A=a!==M&&a,S=n);null!=(d=x[v]);v++){if(o&&d){for(f=0;h=e[f++];)if(h(d,a,l)){c.push(d);break}y&&(R=C,S=++n)}r&&((d=!h&&d)&&g--,i&&b.push(d))}if(g+=v,r&&v!==g){for(f=0;h=t[f++];)h(b,p,a,l);if(i){if(g>0)for(;v--;)b[v]||p[v]||(p[v]=J.call(c));p=m(p)}Q.apply(c,p),y&&!i&&p.length>0&&g+t.length>1&&s.uniqueSort(c)}return y&&(R=C,A=w),b};return r?i(a):a}function y(e,t,n){for(var r=0,i=t.length;i>r;r++)s(e,t[r],n);return n}function w(e,t,n,r){var i,o,s,a,l,c=d(e);if(!r&&1===c.length){if(o=c[0]=c[0].slice(0),o.length>2&&"ID"===(s=o[0]).type&&9===t.nodeType&&!$&&k.relative[o[1].type]){if(t=k.find.ID(s.matches[0].replace(wt,xt),t)[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=ft.needsContext.test(e)?0:o.length;i--&&(s=o[i],!k.relative[a=s.type]);)if((l=k.find[a])&&(r=l(s.matches[0].replace(wt,xt),ht.test(o[0].type)&&t.parentNode||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return Q.apply(n,Y.call(r,0)),n;break}}return L(e,c)(r,t,$,n,ht.test(e)),n}function x(){}var C,S,k,T,E,L,N,A,D,M,I,$,O,P,_,F,H,G="sizzle"+-new Date,j=e.document,B={},R=0,z=0,W=r(),V=r(),U=r(),q=typeof t,K=1<<31,X=[],J=X.pop,Q=X.push,Y=X.slice,Z=X.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},et="[\\x20\\t\\r\\n\\f]",tt="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",nt=tt.replace("w","w#"),rt="([*^$|!~]?=)",it="\\["+et+"*("+tt+")"+et+"*(?:"+rt+et+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+nt+")|)|)"+et+"*\\]",ot=":("+tt+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+it.replace(3,8)+")*)|.*)\\)|)",st=new RegExp("^"+et+"+|((?:^|[^\\\\])(?:\\\\.)*)"+et+"+$","g"),at=new RegExp("^"+et+"*,"+et+"*"),ct=new RegExp("^"+et+"*([\\x20\\t\\r\\n\\f>+~])"+et+"*"),ut=new RegExp(ot),dt=new RegExp("^"+nt+"$"),ft={ID:new RegExp("^#("+tt+")"),CLASS:new RegExp("^\\.("+tt+")"),NAME:new RegExp("^\\[name=['\"]?("+tt+")['\"]?\\]"),TAG:new RegExp("^("+tt.replace("w","w*")+")"),ATTR:new RegExp("^"+it),PSEUDO:new RegExp("^"+ot),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+et+"*(even|odd|(([+-]|)(\\d*)n|)"+et+"*(?:([+-]|)"+et+"*(\\d+)|))"+et+"*\\)|)","i"),needsContext:new RegExp("^"+et+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+et+"*((?:-\\d)?\\d*)"+et+"*\\)|)(?=[^-]|$)","i")},ht=/[\x20\t\r\n\f]*[+~]/,pt=/^[^{]+\{\s*\[native code/,mt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,gt=/^(?:input|select|textarea|button)$/i,vt=/^h\d$/i,bt=/'|\\/g,yt=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,wt=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,xt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{Y.call(j.documentElement.childNodes,0)[0].nodeType}catch(Ct){Y=function(e){for(var t,n=[];t=this[e++];)n.push(t);return n}}E=s.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},D=s.setDocument=function(e){var r=e?e.ownerDocument||e:j;return r!==M&&9===r.nodeType&&r.documentElement?(M=r,I=r.documentElement,$=E(r),B.tagNameNoComments=o(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),B.attributes=o(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),B.getByClassName=o(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),B.getByName=o(function(e){e.id=G+0,e.innerHTML="<a name='"+G+"'></a><div name='"+G+"'></div>",I.insertBefore(e,I.firstChild);var t=r.getElementsByName&&r.getElementsByName(G).length===2+r.getElementsByName(G+0).length;return B.getIdNotName=!r.getElementById(G),I.removeChild(e),t}),k.attrHandle=o(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==q&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},B.getIdNotName?(k.find.ID=function(e,t){if(typeof t.getElementById!==q&&!$){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},k.filter.ID=function(e){var t=e.replace(wt,xt);return function(e){return e.getAttribute("id")===t}}):(k.find.ID=function(e,n){if(typeof n.getElementById!==q&&!$){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==q&&r.getAttributeNode("id").value===e?[r]:t:[]}},k.filter.ID=function(e){var t=e.replace(wt,xt);return function(e){var n=typeof e.getAttributeNode!==q&&e.getAttributeNode("id");return n&&n.value===t}}),k.find.TAG=B.tagNameNoComments?function(e,t){return typeof t.getElementsByTagName!==q?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},k.find.NAME=B.getByName&&function(e,t){return typeof t.getElementsByName!==q?t.getElementsByName(name):void 0},k.find.CLASS=B.getByClassName&&function(e,t){return typeof t.getElementsByClassName===q||$?void 0:t.getElementsByClassName(e)},P=[],O=[":focus"],(B.qsa=n(r.querySelectorAll))&&(o(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||O.push("\\["+et+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||O.push(":checked")}),o(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&O.push("[*^$]="+et+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||O.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),O.push(",.*:")})),(B.matchesSelector=n(_=I.matchesSelector||I.mozMatchesSelector||I.webkitMatchesSelector||I.oMatchesSelector||I.msMatchesSelector))&&o(function(e){B.disconnectedMatch=_.call(e,"div"),_.call(e,"[s!='']:x"),P.push("!=",ot)}),O=new RegExp(O.join("|")),P=new RegExp(P.join("|")),F=n(I.contains)||I.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},H=I.compareDocumentPosition?function(e,t){var n;return e===t?(N=!0,0):(n=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&n||e.parentNode&&11===e.parentNode.nodeType?e===r||F(j,e)?-1:t===r||F(j,t)?1:0:4&n?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var n,i=0,o=e.parentNode,s=t.parentNode,l=[e],c=[t];if(e===t)return N=!0,0;if(!o||!s)return e===r?-1:t===r?1:o?-1:s?1:0;if(o===s)return a(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;l[i]===c[i];)i++;return i?a(l[i],c[i]):l[i]===j?-1:c[i]===j?1:0},N=!1,[0,0].sort(H),B.detectDuplicates=N,M):M},s.matches=function(e,t){return s(e,null,null,t)},s.matchesSelector=function(e,t){if((e.ownerDocument||e)!==M&&D(e),t=t.replace(yt,"='$1']"),!(!B.matchesSelector||$||P&&P.test(t)||O.test(t)))try{var n=_.call(e,t);if(n||B.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return s(t,M,null,[e]).length>0},s.contains=function(e,t){return(e.ownerDocument||e)!==M&&D(e),F(e,t)},s.attr=function(e,t){var n;return(e.ownerDocument||e)!==M&&D(e),$||(t=t.toLowerCase()),(n=k.attrHandle[t])?n(e):$||B.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},s.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},s.uniqueSort=function(e){var t,n=[],r=1,i=0;if(N=!B.detectDuplicates,e.sort(H),N){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return e},T=s.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=T(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=T(t);return n},k=s.selectors={cacheLength:50,createPseudo:i,match:ft,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(wt,xt),e[3]=(e[4]||e[5]||"").replace(wt,xt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||s.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&s.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return ft.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&ut.test(n)&&(t=d(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(wt,xt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=W[e+" "];return t||(t=new RegExp("(^|"+et+")"+e+"("+et+"|$)"))&&W(e,function(e){return t.test(e.className||typeof e.getAttribute!==q&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=s.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,h,p,m=o!==s?"nextSibling":"previousSibling",g=t.parentNode,v=a&&t.nodeName.toLowerCase(),b=!l&&!a;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(a?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;p=m="only"===e&&!p&&"nextSibling"}return!0}if(p=[s?g.firstChild:g.lastChild],s&&b){for(u=g[G]||(g[G]={}),c=u[e]||[],h=c[0]===R&&c[1],f=c[0]===R&&c[2],d=h&&g.childNodes[h];d=++h&&d&&d[m]||(f=h=0)||p.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[R,h,f];break}}else if(b&&(c=(t[G]||(t[G]={}))[e])&&c[0]===R)f=c[1];else for(;(d=++h&&d&&d[m]||(f=h=0)||p.pop())&&((a?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(b&&((d[G]||(d[G]={}))[e]=[R,f]),d!==t)););return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=k.pseudos[e]||k.setFilters[e.toLowerCase()]||s.error("unsupported pseudo: "+e);return r[G]?r(t):r.length>1?(n=[e,e,"",t],k.setFilters.hasOwnProperty(e.toLowerCase())?i(function(e,n){for(var i,o=r(e,t),s=o.length;s--;)i=Z.call(e,o[s]),e[i]=!(n[i]=o[s])}):function(e){return r(e,0,n)}):r}},pseudos:{not:i(function(e){var t=[],n=[],r=L(e.replace(st,"$1"));return r[G]?i(function(e,t,n,i){for(var o,s=r(e,null,i,[]),a=e.length;a--;)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:i(function(e){return function(t){return s(e,t).length>0}}),contains:i(function(e){return function(t){return(t.textContent||t.innerText||T(t)).indexOf(e)>-1}}),lang:i(function(e){return dt.test(e||"")||s.error("unsupported lang: "+e),e=e.replace(wt,xt).toLowerCase(),function(t){var n;do if(n=$?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===I},focus:function(e){return e===M.activeElement&&(!M.hasFocus||M.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!k.pseudos.empty(e)},header:function(e){return vt.test(e.nodeName)},input:function(e){return gt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[0>n?n+t:n]}),even:u(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:u(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:u(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:u(function(e,t,n){for(var r=0>n?n+t:n;t>++r;)e.push(r);return e})}};for(C in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})k.pseudos[C]=l(C);for(C in{submit:!0,reset:!0})k.pseudos[C]=c(C);L=s.compile=function(e,t){var n,r=[],i=[],o=U[e+" "];if(!o){for(t||(t=d(e)),n=t.length;n--;)o=v(t[n]),o[G]?r.push(o):i.push(o);o=U(e,b(i,r))}return o},k.pseudos.nth=k.pseudos.eq,k.filters=x.prototype=k.pseudos,k.setFilters=new x,D(),s.attr=lt.attr,lt.find=s,lt.expr=s.selectors,lt.expr[":"]=lt.expr.pseudos,lt.unique=s.uniqueSort,lt.text=s.getText,lt.isXMLDoc=s.isXML,lt.contains=s.contains}(e);var Bt=/Until$/,Rt=/^(?:parents|prev(?:Until|All))/,zt=/^.[^:#\[\.,]*$/,Wt=lt.expr.match.needsContext,Vt={children:!0,contents:!0,next:!0,prev:!0};lt.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(lt(e).filter(function(){for(t=0;i>t;t++)if(lt.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)lt.find(e,this[t],n);return n=this.pushStack(i>1?lt.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=lt(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(lt.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(d(this,e,!1))},filter:function(e){return this.pushStack(d(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?Wt.test(e)?lt(e,this.context).index(this[0])>=0:lt.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){for(var n,r=0,i=this.length,o=[],s=Wt.test(e)||"string"!=typeof e?lt(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n.ownerDocument&&n!==t&&11!==n.nodeType;){if(s?s.index(n)>-1:lt.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}return this.pushStack(o.length>1?lt.unique(o):o)},index:function(e){return e?"string"==typeof e?lt.inArray(this[0],lt(e)):lt.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1
},add:function(e,t){var n="string"==typeof e?lt(e,t):lt.makeArray(e&&e.nodeType?[e]:e),r=lt.merge(this.get(),n);return this.pushStack(lt.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),lt.fn.andSelf=lt.fn.addBack,lt.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return lt.dir(e,"parentNode")},parentsUntil:function(e,t,n){return lt.dir(e,"parentNode",n)},next:function(e){return u(e,"nextSibling")},prev:function(e){return u(e,"previousSibling")},nextAll:function(e){return lt.dir(e,"nextSibling")},prevAll:function(e){return lt.dir(e,"previousSibling")},nextUntil:function(e,t,n){return lt.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return lt.dir(e,"previousSibling",n)},siblings:function(e){return lt.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return lt.sibling(e.firstChild)},contents:function(e){return lt.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:lt.merge([],e.childNodes)}},function(e,t){lt.fn[e]=function(n,r){var i=lt.map(this,t,n);return Bt.test(e)||(r=n),r&&"string"==typeof r&&(i=lt.filter(r,i)),i=this.length>1&&!Vt[e]?lt.unique(i):i,this.length>1&&Rt.test(e)&&(i=i.reverse()),this.pushStack(i)}}),lt.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?lt.find.matchesSelector(t[0],e)?[t[0]]:[]:lt.find.matches(e,t)},dir:function(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!lt(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var Ut="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",qt=/ jQuery\d+="(?:null|\d+)"/g,Kt=new RegExp("<(?:"+Ut+")[\\s/>]","i"),Xt=/^\s+/,Jt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Qt=/<([\w:]+)/,Yt=/<tbody/i,Zt=/<|&#?\w+;/,en=/<(?:script|style|link)/i,tn=/^(?:checkbox|radio)$/i,nn=/checked\s*(?:[^=]|=\s*.checked.)/i,rn=/^$|\/(?:java|ecma)script/i,on=/^true\/(.*)/,sn=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,an={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:lt.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},ln=f(K),cn=ln.appendChild(K.createElement("div"));an.optgroup=an.option,an.tbody=an.tfoot=an.colgroup=an.caption=an.thead,an.th=an.td,lt.fn.extend({text:function(e){return lt.access(this,function(e){return e===t?lt.text(this):this.empty().append((this[0]&&this[0].ownerDocument||K).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(lt.isFunction(e))return this.each(function(t){lt(this).wrapAll(e.call(this,t))});if(this[0]){var t=lt(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return lt.isFunction(e)?this.each(function(t){lt(this).wrapInner(e.call(this,t))}):this.each(function(){var t=lt(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=lt.isFunction(e);return this.each(function(n){lt(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){lt.nodeName(this,"body")||lt(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=0;null!=(n=this[r]);r++)(!e||lt.filter(e,[n]).length>0)&&(t||1!==n.nodeType||lt.cleanData(y(n)),n.parentNode&&(t&&lt.contains(n.ownerDocument,n)&&g(y(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&lt.cleanData(y(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&lt.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return lt.clone(this,e,t)})},html:function(e){return lt.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(qt,""):t;if(!("string"!=typeof e||en.test(e)||!lt.support.htmlSerialize&&Kt.test(e)||!lt.support.leadingWhitespace&&Xt.test(e)||an[(Qt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(Jt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(lt.cleanData(y(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=lt.isFunction(e);return t||"string"==typeof e||(e=lt(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(lt(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=tt.apply([],e);var i,o,s,a,l,c,u=0,d=this.length,f=this,g=d-1,v=e[0],b=lt.isFunction(v);if(b||!(1>=d||"string"!=typeof v||lt.support.checkClone)&&nn.test(v))return this.each(function(i){var o=f.eq(i);b&&(e[0]=v.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(d&&(c=lt.buildFragment(e,this[0].ownerDocument,!1,this),i=c.firstChild,1===c.childNodes.length&&(c=i),i)){for(n=n&&lt.nodeName(i,"tr"),a=lt.map(y(c,"script"),p),s=a.length;d>u;u++)o=c,u!==g&&(o=lt.clone(o,!0,!0),s&&lt.merge(a,y(o,"script"))),r.call(n&&lt.nodeName(this[u],"table")?h(this[u],"tbody"):this[u],o,u);if(s)for(l=a[a.length-1].ownerDocument,lt.map(a,m),u=0;s>u;u++)o=a[u],rn.test(o.type||"")&&!lt._data(o,"globalEval")&&lt.contains(l,o)&&(o.src?lt.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):lt.globalEval((o.text||o.textContent||o.innerHTML||"").replace(sn,"")));c=i=null}return this}}),lt.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){lt.fn[e]=function(e){for(var n,r=0,i=[],o=lt(e),s=o.length-1;s>=r;r++)n=r===s?this:this.clone(!0),lt(o[r])[t](n),nt.apply(i,n.get());return this.pushStack(i)}}),lt.extend({clone:function(e,t,n){var r,i,o,s,a,l=lt.contains(e.ownerDocument,e);if(lt.support.html5Clone||lt.isXMLDoc(e)||!Kt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(cn.innerHTML=e.outerHTML,cn.removeChild(o=cn.firstChild)),!(lt.support.noCloneEvent&&lt.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||lt.isXMLDoc(e)))for(r=y(o),a=y(e),s=0;null!=(i=a[s]);++s)r[s]&&b(i,r[s]);if(t)if(n)for(a=a||y(e),r=r||y(o),s=0;null!=(i=a[s]);s++)v(i,r[s]);else v(e,o);return r=y(o,"script"),r.length>0&&g(r,!l&&y(e,"script")),r=a=i=null,o},buildFragment:function(e,t,n,r){for(var i,o,s,a,l,c,u,d=e.length,h=f(t),p=[],m=0;d>m;m++)if(o=e[m],o||0===o)if("object"===lt.type(o))lt.merge(p,o.nodeType?[o]:o);else if(Zt.test(o)){for(a=a||h.appendChild(t.createElement("div")),l=(Qt.exec(o)||["",""])[1].toLowerCase(),u=an[l]||an._default,a.innerHTML=u[1]+o.replace(Jt,"<$1></$2>")+u[2],i=u[0];i--;)a=a.lastChild;if(!lt.support.leadingWhitespace&&Xt.test(o)&&p.push(t.createTextNode(Xt.exec(o)[0])),!lt.support.tbody)for(o="table"!==l||Yt.test(o)?"<table>"!==u[1]||Yt.test(o)?0:a:a.firstChild,i=o&&o.childNodes.length;i--;)lt.nodeName(c=o.childNodes[i],"tbody")&&!c.childNodes.length&&o.removeChild(c);for(lt.merge(p,a.childNodes),a.textContent="";a.firstChild;)a.removeChild(a.firstChild);a=h.lastChild}else p.push(t.createTextNode(o));for(a&&h.removeChild(a),lt.support.appendChecked||lt.grep(y(p,"input"),w),m=0;o=p[m++];)if((!r||-1===lt.inArray(o,r))&&(s=lt.contains(o.ownerDocument,o),a=y(h.appendChild(o),"script"),s&&g(a),n))for(i=0;o=a[i++];)rn.test(o.type||"")&&n.push(o);return a=null,h},cleanData:function(e,t){for(var n,r,i,o,s=0,a=lt.expando,l=lt.cache,c=lt.support.deleteExpando,u=lt.event.special;null!=(n=e[s]);s++)if((t||lt.acceptData(n))&&(i=n[a],o=i&&l[i])){if(o.events)for(r in o.events)u[r]?lt.event.remove(n,r):lt.removeEvent(n,r,o.handle);l[i]&&(delete l[i],c?delete n[a]:typeof n.removeAttribute!==q?n.removeAttribute(a):n[a]=null,Z.push(i))}}});var un,dn,fn,hn=/alpha\([^)]*\)/i,pn=/opacity\s*=\s*([^)]*)/,mn=/^(top|right|bottom|left)$/,gn=/^(none|table(?!-c[ea]).+)/,vn=/^margin/,bn=new RegExp("^("+ct+")(.*)$","i"),yn=new RegExp("^("+ct+")(?!px)[a-z%]+$","i"),wn=new RegExp("^([+-])=("+ct+")","i"),xn={BODY:"block"},Cn={position:"absolute",visibility:"hidden",display:"block"},Sn={letterSpacing:0,fontWeight:400},kn=["Top","Right","Bottom","Left"],Tn=["Webkit","O","Moz","ms"];lt.fn.extend({css:function(e,n){return lt.access(this,function(e,n,r){var i,o,s={},a=0;if(lt.isArray(n)){for(o=dn(e),i=n.length;i>a;a++)s[n[a]]=lt.css(e,n[a],!1,o);return s}return r!==t?lt.style(e,n,r):lt.css(e,n)},e,n,arguments.length>1)},show:function(){return S(this,!0)},hide:function(){return S(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:C(this))?lt(this).show():lt(this).hide()})}}),lt.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=fn(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":lt.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,s,a,l=lt.camelCase(n),c=e.style;if(n=lt.cssProps[l]||(lt.cssProps[l]=x(c,l)),a=lt.cssHooks[n]||lt.cssHooks[l],r===t)return a&&"get"in a&&(o=a.get(e,!1,i))!==t?o:c[n];if(s=typeof r,"string"===s&&(o=wn.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(lt.css(e,n)),s="number"),!(null==r||"number"===s&&isNaN(r)||("number"!==s||lt.cssNumber[l]||(r+="px"),lt.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(c[n]="inherit"),a&&"set"in a&&(r=a.set(e,r,i))===t)))try{c[n]=r}catch(u){}}},css:function(e,n,r,i){var o,s,a,l=lt.camelCase(n);return n=lt.cssProps[l]||(lt.cssProps[l]=x(e.style,l)),a=lt.cssHooks[n]||lt.cssHooks[l],a&&"get"in a&&(s=a.get(e,!0,r)),s===t&&(s=fn(e,n,i)),"normal"===s&&n in Sn&&(s=Sn[n]),""===r||r?(o=parseFloat(s),r===!0||lt.isNumeric(o)?o||0:s):s},swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),e.getComputedStyle?(dn=function(t){return e.getComputedStyle(t,null)},fn=function(e,n,r){var i,o,s,a=r||dn(e),l=a?a.getPropertyValue(n)||a[n]:t,c=e.style;return a&&(""!==l||lt.contains(e.ownerDocument,e)||(l=lt.style(e,n)),yn.test(l)&&vn.test(n)&&(i=c.width,o=c.minWidth,s=c.maxWidth,c.minWidth=c.maxWidth=c.width=l,l=a.width,c.width=i,c.minWidth=o,c.maxWidth=s)),l}):K.documentElement.currentStyle&&(dn=function(e){return e.currentStyle},fn=function(e,n,r){var i,o,s,a=r||dn(e),l=a?a[n]:t,c=e.style;return null==l&&c&&c[n]&&(l=c[n]),yn.test(l)&&!mn.test(n)&&(i=c.left,o=e.runtimeStyle,s=o&&o.left,s&&(o.left=e.currentStyle.left),c.left="fontSize"===n?"1em":l,l=c.pixelLeft+"px",c.left=i,s&&(o.left=s)),""===l?"auto":l}),lt.each(["height","width"],function(e,t){lt.cssHooks[t]={get:function(e,n,r){return n?0===e.offsetWidth&&gn.test(lt.css(e,"display"))?lt.swap(e,Cn,function(){return E(e,t,r)}):E(e,t,r):void 0},set:function(e,n,r){var i=r&&dn(e);return k(e,n,r?T(e,t,r,lt.support.boxSizing&&"border-box"===lt.css(e,"boxSizing",!1,i),i):0)}}}),lt.support.opacity||(lt.cssHooks.opacity={get:function(e,t){return pn.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=lt.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===lt.trim(o.replace(hn,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=hn.test(o)?o.replace(hn,i):o+" "+i)}}),lt(function(){lt.support.reliableMarginRight||(lt.cssHooks.marginRight={get:function(e,t){return t?lt.swap(e,{display:"inline-block"},fn,[e,"marginRight"]):void 0}}),!lt.support.pixelPosition&&lt.fn.position&&lt.each(["top","left"],function(e,t){lt.cssHooks[t]={get:function(e,n){return n?(n=fn(e,t),yn.test(n)?lt(e).position()[t]+"px":n):void 0}}})}),lt.expr&&lt.expr.filters&&(lt.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!lt.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||lt.css(e,"display"))},lt.expr.filters.visible=function(e){return!lt.expr.filters.hidden(e)}),lt.each({margin:"",padding:"",border:"Width"},function(e,t){lt.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+kn[r]+t]=o[r]||o[r-2]||o[0];return i}},vn.test(e)||(lt.cssHooks[e+t].set=k)});var En=/%20/g,Ln=/\[\]$/,Nn=/\r?\n/g,An=/^(?:submit|button|image|reset|file)$/i,Dn=/^(?:input|select|textarea|keygen)/i;lt.fn.extend({serialize:function(){return lt.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=lt.prop(this,"elements");return e?lt.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!lt(this).is(":disabled")&&Dn.test(this.nodeName)&&!An.test(e)&&(this.checked||!tn.test(e))}).map(function(e,t){var n=lt(this).val();return null==n?null:lt.isArray(n)?lt.map(n,function(e){return{name:t.name,value:e.replace(Nn,"\r\n")}}):{name:t.name,value:n.replace(Nn,"\r\n")}}).get()}}),lt.param=function(e,n){var r,i=[],o=function(e,t){t=lt.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=lt.ajaxSettings&&lt.ajaxSettings.traditional),lt.isArray(e)||e.jquery&&!lt.isPlainObject(e))lt.each(e,function(){o(this.name,this.value)});else for(r in e)A(r,e[r],n,o);return i.join("&").replace(En,"+")},lt.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(e,t){lt.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),lt.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var Mn,In,$n=lt.now(),On=/\?/,Pn=/#.*$/,_n=/([?&])_=[^&]*/,Fn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Hn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gn=/^(?:GET|HEAD)$/,jn=/^\/\//,Bn=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Rn=lt.fn.load,zn={},Wn={},Vn="*/".concat("*");try{In=X.href}catch(Un){In=K.createElement("a"),In.href="",In=In.href}Mn=Bn.exec(In.toLowerCase())||[],lt.fn.load=function(e,n,r){if("string"!=typeof e&&Rn)return Rn.apply(this,arguments);var i,o,s,a=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),lt.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(s="POST"),a.length>0&&lt.ajax({url:e,type:s,dataType:"html",data:n}).done(function(e){o=arguments,a.html(i?lt("<div>").append(lt.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){a.each(r,o||[e.responseText,t,e])}),this},lt.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){lt.fn[t]=function(e){return this.on(t,e)}}),lt.each(["get","post"],function(e,n){lt[n]=function(e,r,i,o){return lt.isFunction(r)&&(o=o||i,i=r,r=t),lt.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),lt.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:In,type:"GET",isLocal:Hn.test(Mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Vn,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"},converters:{"* text":e.String,"text html":!0,"text json":lt.parseJSON,"text xml":lt.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?I(I(e,lt.ajaxSettings),t):I(lt.ajaxSettings,e)},ajaxPrefilter:D(zn),ajaxTransport:D(Wn),ajax:function(e,n){function r(e,n,r,i){var o,d,b,y,x,S=n;2!==w&&(w=2,l&&clearTimeout(l),u=t,a=i||"",C.readyState=e>0?4:0,r&&(y=$(f,C,r)),e>=200&&300>e||304===e?(f.ifModified&&(x=C.getResponseHeader("Last-Modified"),x&&(lt.lastModified[s]=x),x=C.getResponseHeader("etag"),x&&(lt.etag[s]=x)),204===e?(o=!0,S="nocontent"):304===e?(o=!0,S="notmodified"):(o=O(f,y),S=o.state,d=o.data,b=o.error,o=!b)):(b=S,(e||!S)&&(S="error",0>e&&(e=0))),C.status=e,C.statusText=(n||S)+"",o?m.resolveWith(h,[d,S,C]):m.rejectWith(h,[C,S,b]),C.statusCode(v),v=t,c&&p.trigger(o?"ajaxSuccess":"ajaxError",[C,f,o?d:b]),g.fireWith(h,[C,S]),c&&(p.trigger("ajaxComplete",[C,f]),--lt.active||lt.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var i,o,s,a,l,c,u,d,f=lt.ajaxSetup({},n),h=f.context||f,p=f.context&&(h.nodeType||h.jquery)?lt(h):lt.event,m=lt.Deferred(),g=lt.Callbacks("once memory"),v=f.statusCode||{},b={},y={},w=0,x="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===w){if(!d)for(d={};t=Fn.exec(a);)d[t[1].toLowerCase()]=t[2];t=d[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===w?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return w||(e=y[n]=y[n]||e,b[e]=t),this},overrideMimeType:function(e){return w||(f.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>w)for(t in e)v[t]=[v[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||x;return u&&u.abort(t),r(0,t),this}};if(m.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,f.url=((e||f.url||In)+"").replace(Pn,"").replace(jn,Mn[1]+"//"),f.type=n.method||n.type||f.method||f.type,f.dataTypes=lt.trim(f.dataType||"*").toLowerCase().match(ut)||[""],null==f.crossDomain&&(i=Bn.exec(f.url.toLowerCase()),f.crossDomain=!(!i||i[1]===Mn[1]&&i[2]===Mn[2]&&(i[3]||("http:"===i[1]?80:443))==(Mn[3]||("http:"===Mn[1]?80:443)))),f.data&&f.processData&&"string"!=typeof f.data&&(f.data=lt.param(f.data,f.traditional)),M(zn,f,n,C),2===w)return C;c=f.global,c&&0===lt.active++&&lt.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!Gn.test(f.type),s=f.url,f.hasContent||(f.data&&(s=f.url+=(On.test(s)?"&":"?")+f.data,delete f.data),f.cache===!1&&(f.url=_n.test(s)?s.replace(_n,"$1_="+$n++):s+(On.test(s)?"&":"?")+"_="+$n++)),f.ifModified&&(lt.lastModified[s]&&C.setRequestHeader("If-Modified-Since",lt.lastModified[s]),lt.etag[s]&&C.setRequestHeader("If-None-Match",lt.etag[s])),(f.data&&f.hasContent&&f.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",f.contentType),C.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+Vn+"; q=0.01":""):f.accepts["*"]);for(o in f.headers)C.setRequestHeader(o,f.headers[o]);if(f.beforeSend&&(f.beforeSend.call(h,C,f)===!1||2===w))return C.abort();x="abort";for(o in{success:1,error:1,complete:1})C[o](f[o]);if(u=M(Wn,f,n,C)){C.readyState=1,c&&p.trigger("ajaxSend",[C,f]),f.async&&f.timeout>0&&(l=setTimeout(function(){C.abort("timeout")},f.timeout));try{w=1,u.send(b,r)}catch(S){if(!(2>w))throw S;r(-1,S)}}else r(-1,"No Transport");return C},getScript:function(e,n){return lt.get(e,t,n,"script")},getJSON:function(e,t,n){return lt.get(e,t,n,"json")}}),lt.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return lt.globalEval(e),e}}}),lt.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),lt.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=K.head||lt("head")[0]||K.documentElement;return{send:function(t,i){n=K.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var qn=[],Kn=/(=)\?(?=&|$)|\?\?/;lt.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=qn.pop()||lt.expando+"_"+$n++;return this[e]=!0,e}}),lt.ajaxPrefilter("json jsonp",function(n,r,i){var o,s,a,l=n.jsonp!==!1&&(Kn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Kn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=lt.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Kn,"$1"+o):n.jsonp!==!1&&(n.url+=(On.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return a||lt.error(o+" was not called"),a[0]},n.dataTypes[0]="json",s=e[o],e[o]=function(){a=arguments},i.always(function(){e[o]=s,n[o]&&(n.jsonpCallback=r.jsonpCallback,qn.push(o)),a&&lt.isFunction(s)&&s(a[0]),a=s=t}),"script"):void 0});var Xn,Jn,Qn=0,Yn=e.ActiveXObject&&function(){var e;for(e in Xn)Xn[e](t,!0)};lt.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&P()||_()}:P,Jn=lt.ajaxSettings.xhr(),lt.support.cors=!!Jn&&"withCredentials"in Jn,Jn=lt.support.ajax=!!Jn,Jn&&lt.ajaxTransport(function(n){if(!n.crossDomain||lt.support.cors){var r;return{send:function(i,o){var s,a,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(a in n.xhrFields)l[a]=n.xhrFields[a];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(a in i)l.setRequestHeader(a,i[a])}catch(c){}l.send(n.hasContent&&n.data||null),r=function(e,i){var a,c,u,d;try{if(r&&(i||4===l.readyState))if(r=t,s&&(l.onreadystatechange=lt.noop,Yn&&delete Xn[s]),i)4!==l.readyState&&l.abort();else{d={},a=l.status,c=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(d.text=l.responseText);try{u=l.statusText}catch(f){u=""}a||!n.isLocal||n.crossDomain?1223===a&&(a=204):a=d.text?200:404}}catch(h){i||o(-1,h)}d&&o(a,u,d,c)},n.async?4===l.readyState?setTimeout(r):(s=++Qn,Yn&&(Xn||(Xn={},lt(e).unload(Yn)),Xn[s]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Zn,er,tr=/^(?:toggle|show|hide)$/,nr=new RegExp("^(?:([+-])=|)("+ct+")([a-z%]*)$","i"),rr=/queueHooks$/,ir=[B],or={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=nr.exec(t),s=i.cur(),a=+s||0,l=1,c=20;if(o){if(n=+o[2],r=o[3]||(lt.cssNumber[e]?"":"px"),"px"!==r&&a){a=lt.css(i.elem,e,!0)||n||1;do l=l||".5",a/=l,lt.style(i.elem,e,a+r);while(l!==(l=i.cur()/s)&&1!==l&&--c)}i.unit=r,i.start=a,i.end=o[1]?a+(o[1]+1)*n:n}return i}]};lt.Animation=lt.extend(G,{tweener:function(e,t){lt.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],or[n]=or[n]||[],or[n].unshift(t)},prefilter:function(e,t){t?ir.unshift(e):ir.push(e)}}),lt.Tween=R,R.prototype={constructor:R,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(lt.cssNumber[n]?"":"px")},cur:function(){var e=R.propHooks[this.prop];return e&&e.get?e.get(this):R.propHooks._default.get(this)},run:function(e){var t,n=R.propHooks[this.prop];return this.pos=t=this.options.duration?lt.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):R.propHooks._default.set(this),this}},R.prototype.init.prototype=R.prototype,R.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=lt.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){lt.fx.step[e.prop]?lt.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[lt.cssProps[e.prop]]||lt.cssHooks[e.prop])?lt.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},R.propHooks.scrollTop=R.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},lt.each(["toggle","show","hide"],function(e,t){var n=lt.fn[t];lt.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(z(t,!0),e,r,i)}}),lt.fn.extend({fadeTo:function(e,t,n,r){return this.filter(C).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=lt.isEmptyObject(e),o=lt.speed(t,n,r),s=function(){var t=G(this,lt.extend({},e),o);s.finish=function(){t.stop(!0)},(i||lt._data(this,"finish"))&&t.stop(!0)};return s.finish=s,i||o.queue===!1?this.each(s):this.queue(o.queue,s)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=lt.timers,s=lt._data(this);if(n)s[n]&&s[n].stop&&i(s[n]);else for(n in s)s[n]&&s[n].stop&&rr.test(n)&&i(s[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&lt.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=lt._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=lt.timers,s=r?r.length:0;for(n.finish=!0,lt.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;s>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),lt.each({slideDown:z("show"),slideUp:z("hide"),slideToggle:z("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){lt.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),lt.speed=function(e,t,n){var r=e&&"object"==typeof e?lt.extend({},e):{complete:n||!n&&t||lt.isFunction(e)&&e,duration:e,easing:n&&t||t&&!lt.isFunction(t)&&t};return r.duration=lt.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in lt.fx.speeds?lt.fx.speeds[r.duration]:lt.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){lt.isFunction(r.old)&&r.old.call(this),r.queue&&lt.dequeue(this,r.queue)},r},lt.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},lt.timers=[],lt.fx=R.prototype.init,lt.fx.tick=function(){var e,n=lt.timers,r=0;for(Zn=lt.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||lt.fx.stop(),Zn=t},lt.fx.timer=function(e){e()&&lt.timers.push(e)&&lt.fx.start()},lt.fx.interval=13,lt.fx.start=function(){er||(er=setInterval(lt.fx.tick,lt.fx.interval))},lt.fx.stop=function(){clearInterval(er),er=null},lt.fx.speeds={slow:600,fast:200,_default:400},lt.fx.step={},lt.expr&&lt.expr.filters&&(lt.expr.filters.animated=function(e){return lt.grep(lt.timers,function(t){return e===t.elem}).length}),lt.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){lt.offset.setOffset(this,e,t)});var n,r,i={top:0,left:0},o=this[0],s=o&&o.ownerDocument;if(s)return n=s.documentElement,lt.contains(n,o)?(typeof o.getBoundingClientRect!==q&&(i=o.getBoundingClientRect()),r=W(s),{top:i.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:i.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):i},lt.offset={setOffset:function(e,t,n){var r=lt.css(e,"position");"static"===r&&(e.style.position="relative");var i,o,s=lt(e),a=s.offset(),l=lt.css(e,"top"),c=lt.css(e,"left"),u=("absolute"===r||"fixed"===r)&&lt.inArray("auto",[l,c])>-1,d={},f={};u?(f=s.position(),i=f.top,o=f.left):(i=parseFloat(l)||0,o=parseFloat(c)||0),lt.isFunction(t)&&(t=t.call(e,n,a)),null!=t.top&&(d.top=t.top-a.top+i),null!=t.left&&(d.left=t.left-a.left+o),"using"in t?t.using.call(e,d):s.css(d)}},lt.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===lt.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),lt.nodeName(e[0],"html")||(n=e.offset()),n.top+=lt.css(e[0],"borderTopWidth",!0),n.left+=lt.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-lt.css(r,"marginTop",!0),left:t.left-n.left-lt.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||K.documentElement;e&&!lt.nodeName(e,"html")&&"static"===lt.css(e,"position");)e=e.offsetParent;return e||K.documentElement})}}),lt.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);lt.fn[e]=function(i){return lt.access(this,function(e,i,o){var s=W(e);return o===t?s?n in s?s[n]:s.document.documentElement[i]:e[i]:(s?s.scrollTo(r?lt(s).scrollLeft():o,r?o:lt(s).scrollTop()):e[i]=o,void 0)},e,i,arguments.length,null)}}),lt.each({Height:"height",Width:"width"},function(e,n){lt.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){lt.fn[i]=function(i,o){var s=arguments.length&&(r||"boolean"!=typeof i),a=r||(i===!0||o===!0?"margin":"border");return lt.access(this,function(n,r,i){var o;return lt.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?lt.css(n,r,a):lt.style(n,r,i,a)},n,s?i:t,s,null)}})}),e.jQuery=e.$=lt,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return lt})}(window),function(e){e.fn.hoverIntent=function(t,n,r){var i={interval:100,sensitivity:7,timeout:0};i="object"==typeof t?e.extend(i,t):e.isFunction(n)?e.extend(i,{over:t,out:n,selector:r}):e.extend(i,{over:t,out:t,selector:n});var o,s,a,l,c=function(e){o=e.pageX,s=e.pageY},u=function(t,n){return n.hoverIntent_t=clearTimeout(n.hoverIntent_t),Math.abs(a-o)+Math.abs(l-s)<i.sensitivity?(e(n).off("mousemove.hoverIntent",c),n.hoverIntent_s=1,i.over.apply(n,[t])):(a=o,l=s,n.hoverIntent_t=setTimeout(function(){u(t,n)},i.interval),void 0)},d=function(e,t){return t.hoverIntent_t=clearTimeout(t.hoverIntent_t),t.hoverIntent_s=0,i.out.apply(t,[e])},f=function(t){var n=jQuery.extend({},t),r=this;r.hoverIntent_t&&(r.hoverIntent_t=clearTimeout(r.hoverIntent_t)),"mouseenter"==t.type?(a=n.pageX,l=n.pageY,e(r).on("mousemove.hoverIntent",c),1!=r.hoverIntent_s&&(r.hoverIntent_t=setTimeout(function(){u(n,r)},i.interval))):(e(r).off("mousemove.hoverIntent",c),1==r.hoverIntent_s&&(r.hoverIntent_t=setTimeout(function(){d(n,r)},i.timeout)))};return this.on({"mouseenter.hoverIntent":f,"mouseleave.hoverIntent":f},i.selector)}}(jQuery),!function(e){"use strict";e.extend({tablesorter:new function(){function t(e){"undefined"!=typeof console&&"undefined"!=typeof console.log?console.log(e):alert(e)}function n(e,n){t(e+" ("+((new Date).getTime()-n.getTime())+"ms)")}function r(t,n,r){if(!n)return"";var i=t.config,o=i.textExtraction,s="";return s="simple"===o?i.supportsTextContent?n.textContent:e(n).text():"function"==typeof o?o(n,t,r):"object"==typeof o&&o.hasOwnProperty(r)?o[r](n,t,r):i.supportsTextContent?n.textContent:e(n).text(),e.trim(s)}function i(e,n,i,o){for(var s,a=C.parsers.length,l=!1,c="",u=!0;""===c&&u;)i++,n[i]?(l=n[i].cells[o],c=r(e,l,o),e.config.debug&&t("Checking if value was empty on row "+i+", column: "+o+': "'+c+'"')):u=!1;for(;--a>=0;)if(s=C.parsers[a],s&&"text"!==s.id&&s.is&&s.is(c,e,l))return s;return C.getParserById("text")}function o(e){var n,r,o,s,a,l,c,u=e.config,d=u.$tbodies=u.$table.children("tbody:not(."+u.cssInfoBlock+")"),f="";if(0===d.length)return u.debug?t("*Empty table!* Not building a parser cache"):"";if(n=d[0].rows,n[0])for(r=[],o=n[0].cells.length,s=0;o>s;s++)a=u.$headers.filter(":not([colspan])"),a=a.add(u.$headers.filter('[colspan="1"]')).filter('[data-column="'+s+'"]:last'),l=u.headers[s],c=C.getParserById(C.getData(a,l,"sorter")),u.empties[s]=C.getData(a,l,"empty")||u.emptyTo||(u.emptyToBottom?"bottom":"top"),u.strings[s]=C.getData(a,l,"string")||u.stringTo||"max",c||(c=i(e,n,-1,s)),u.debug&&(f+="column:"+s+"; parser:"+c.id+"; string:"+u.strings[s]+"; empty: "+u.empties[s]+"\n"),r.push(c);u.debug&&t(f),u.parsers=r}function s(i){var o,s,a,l,c,u,d,f,h,p,m=i.tBodies,g=i.config,v=g.parsers,b=[];if(g.cache={},!v)return g.debug?t("*Empty table!* Not building a cache"):"";for(g.debug&&(p=new Date),g.showProcessing&&C.isProcessing(i,!0),d=0;m.length>d;d++)if(g.cache[d]={row:[],normalized:[]},!e(m[d]).hasClass(g.cssInfoBlock)){for(o=m[d]&&m[d].rows.length||0,s=m[d].rows[0]&&m[d].rows[0].cells.length||0,c=0;o>c;++c)if(f=e(m[d].rows[c]),h=[],f.hasClass(g.cssChildRow))g.cache[d].row[g.cache[d].row.length-1]=g.cache[d].row[g.cache[d].row.length-1].add(f);
else{for(g.cache[d].row.push(f),u=0;s>u;++u)a=r(i,f[0].cells[u],u),l=v[u].format(a,i,f[0].cells[u],u),h.push(l),"numeric"===(v[u].type||"").toLowerCase()&&(b[u]=Math.max(Math.abs(l),b[u]||0));h.push(g.cache[d].normalized.length),g.cache[d].normalized.push(h)}g.cache[d].colMax=b}g.showProcessing&&C.isProcessing(i),g.debug&&n("Building cache for "+o+" rows",p)}function a(t,r){var i,o,s,a,l,c,u,d,f,h,p,m,g=t.config,v=t.tBodies,b=[],y=g.cache;if(y[0]){for(g.debug&&(m=new Date),f=0;v.length>f;f++)if(l=e(v[f]),l.length&&!l.hasClass(g.cssInfoBlock)){for(c=C.processTbody(t,l,!0),i=y[f].row,o=y[f].normalized,s=o.length,a=s?o[0].length-1:0,u=0;s>u;u++)if(p=o[u][a],b.push(i[p]),!g.appender||!g.removeRows)for(h=i[p].length,d=0;h>d;d++)c.append(i[p][d]);C.processTbody(t,c,!1)}g.appender&&g.appender(t,b),g.debug&&n("Rebuilt table",m),r||C.applyWidget(t),e(t).trigger("sortEnd",t)}}function l(t){var n,r,i,o,s,a,l,c,u,d,f,h,p=[],m={},g=0,v=e(t).find("thead:eq(0), tfoot").children("tr");for(n=0;v.length>n;n++)for(a=v[n].cells,r=0;a.length>r;r++){for(s=a[r],l=s.parentNode.rowIndex,c=l+"-"+s.cellIndex,u=s.rowSpan||1,d=s.colSpan||1,"undefined"==typeof p[l]&&(p[l]=[]),i=0;p[l].length+1>i;i++)if("undefined"==typeof p[l][i]){f=i;break}for(m[c]=f,g=Math.max(f,g),e(s).attr({"data-column":f}),i=l;l+u>i;i++)for("undefined"==typeof p[i]&&(p[i]=[]),h=p[i],o=f;f+d>o;o++)h[o]="x"}return t.config.columns=g,m}function c(e){return/^d/i.test(e)||1===e}function u(r){var i,o,s,a,u,d,h,p=l(r),m=r.config;m.headerList=[],m.headerContent=[],m.debug&&(h=new Date),a=m.cssIcon?'<i class="'+m.cssIcon+'"></i>':"",m.$headers=e(r).find(m.selectorHeaders).each(function(t){o=e(this),i=m.headers[t],m.headerContent[t]=this.innerHTML,u=m.headerTemplate.replace(/\{content\}/g,this.innerHTML).replace(/\{icon\}/g,a),m.onRenderTemplate&&(s=m.onRenderTemplate.apply(o,[t,u]),s&&"string"==typeof s&&(u=s)),this.innerHTML='<div class="tablesorter-header-inner">'+u+"</div>",m.onRenderHeader&&m.onRenderHeader.apply(o,[t]),this.column=p[this.parentNode.rowIndex+"-"+this.cellIndex],this.order=c(C.getData(o,i,"sortInitialOrder")||m.sortInitialOrder)?[1,0,2]:[0,1,2],this.count=-1,this.lockedOrder=!1,d=C.getData(o,i,"lockedOrder")||!1,"undefined"!=typeof d&&d!==!1&&(this.order=this.lockedOrder=c(d)?[1,1,1]:[0,0,0]),o.addClass(m.cssHeader),m.headerList[t]=this,o.parent().addClass(m.cssHeaderRow)}),f(r),m.debug&&(n("Built headers:",h),t(m.$headers))}function d(t,n,r){var i=e(t),a=t.config;i.find(a.selectorRemove).remove(),o(t),s(t),w(i,n,r)}function f(t){var n,r=t.config;r.$headers.each(function(t,i){n="false"===C.getData(i,r.headers[t],"sorter"),i.sortDisabled=n,e(i)[n?"addClass":"removeClass"]("sorter-false")})}function h(t){var n,r,i,o,s=t.config,a=s.sortList,l=[s.cssAsc,s.cssDesc],c=e(t).find("tfoot tr").children().removeClass(l.join(" "));for(s.$headers.removeClass(l.join(" ")),o=a.length,r=0;o>r;r++)if(2!==a[r][1]&&(n=s.$headers.not(".sorter-false").filter('[data-column="'+a[r][0]+'"]'+(1===o?":last":"")),n.length))for(i=0;n.length>i;i++)n[i].sortDisabled||(n.eq(i).addClass(l[a[r][1]]),c.length&&c.filter('[data-column="'+a[r][0]+'"]').eq(i).addClass(l[a[r][1]]))}function p(t){if(t.config.widthFixed&&0===e(t).find("colgroup").length){var n=e("<colgroup>"),r=e(t).width();e(t.tBodies[0]).find("tr:first").children("td").each(function(){n.append(e("<col>").css("width",parseInt(1e3*(e(this).width()/r),10)/10+"%"))}),e(t).prepend(n)}}function m(t,n){var r,i,o,s=t.config,a=n||s.sortList;s.sortList=[],e.each(a,function(t,n){r=[parseInt(n[0],10),parseInt(n[1],10)],o=s.headerList[r[0]],o&&(s.sortList.push(r),i=e.inArray(r[1],o.order),o.count=i>=0?i:r[1]%(s.sortReset?3:2))})}function g(e,t){return e&&e[t]?e[t].type||"":""}function v(t,n,r){var i,o,s,l,c,u=t.config,d=!r[u.sortMultiSortKey],f=e(t);if(f.trigger("sortStart",t),n.count=r[u.sortResetKey]?2:(n.count+1)%(u.sortReset?3:2),u.sortRestart&&(o=n,u.$headers.each(function(){this===o||!d&&e(this).is("."+u.cssDesc+",."+u.cssAsc)||(this.count=-1)})),o=n.column,d){if(u.sortList=[],null!==u.sortForce)for(i=u.sortForce,s=0;i.length>s;s++)i[s][0]!==o&&u.sortList.push(i[s]);if(l=n.order[n.count],2>l&&(u.sortList.push([o,l]),n.colSpan>1))for(s=1;n.colSpan>s;s++)u.sortList.push([o+s,l])}else if(u.sortAppend&&u.sortList.length>1&&C.isValueInArray(u.sortAppend[0][0],u.sortList)&&u.sortList.pop(),C.isValueInArray(o,u.sortList))for(s=0;u.sortList.length>s;s++)c=u.sortList[s],l=u.headerList[c[0]],c[0]===o&&(c[1]=l.order[l.count],2===c[1]&&(u.sortList.splice(s,1),l.count=-1));else if(l=n.order[n.count],2>l&&(u.sortList.push([o,l]),n.colSpan>1))for(s=1;n.colSpan>s;s++)u.sortList.push([o+s,l]);if(null!==u.sortAppend)for(i=u.sortAppend,s=0;i.length>s;s++)i[s][0]!==o&&u.sortList.push(i[s]);f.trigger("sortBegin",t),setTimeout(function(){h(t),b(t),a(t)},1)}function b(t){var r,i,o,s,a,l,c,u,d,f,h=0,p=t.config,m=p.sortList,v=m.length,b=t.tBodies.length;if(!p.serverSideSorting&&p.cache[0]){for(p.debug&&(r=new Date),o=0;b>o;o++)a=p.cache[o].colMax,l=p.cache[o].normalized,c=l.length,f=l&&l[0]?l[0].length-1:0,l.sort(function(n,r){for(i=0;v>i;i++){s=m[i][0],d=m[i][1],u=/n/i.test(g(p.parsers,s))?"Numeric":"Text",u+=0===d?"":"Desc",/Numeric/.test(u)&&p.strings[s]&&(h="boolean"==typeof p.string[p.strings[s]]?(0===d?1:-1)*(p.string[p.strings[s]]?-1:1):p.strings[s]?p.string[p.strings[s]]||0:0);var o=e.tablesorter["sort"+u](t,n[s],r[s],s,a[s],h);if(o)return o}return n[f]-r[f]});p.debug&&n("Sorting on "+m.toString()+" and dir "+d+" time",r)}}function y(e,t){e.trigger("updateComplete"),"function"==typeof t&&t(e[0])}function w(e,t,n){t===!1||e[0].isProcessing?y(e,n):e.trigger("sorton",[e[0].config.sortList,function(){y(e,n)}])}function x(t){var n,i,l=t.config,c=e(t);l.$headers.find(l.selectorSort).add(l.$headers.filter(l.selectorSort)).unbind("mousedown.tablesorter mouseup.tablesorter sort.tablesorter").bind("mousedown.tablesorter mouseup.tablesorter sort.tablesorter",function(n,r){var o=this.tagName.match("TH|TD")?e(this):e(this).parents("th, td").filter(":last"),a=o[0];return 1!==(n.which||n.button)&&"sort"!==n.type?!1:"mousedown"===n.type?(i=(new Date).getTime(),"INPUT"===n.target.tagName?"":!l.cancelSelection):r!==!0&&(new Date).getTime()-i>250?!1:(l.delayInit&&!l.cache&&s(t),a.sortDisabled||v(t,a,n),void 0)}),l.cancelSelection&&l.$headers.each(function(){this.onselectstart=function(){return!1}}),c.unbind("sortReset update updateRows updateCell updateAll addRows sorton appendCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave ".split(" ").join(".tablesorter ")).bind("sortReset.tablesorter",function(e){e.stopPropagation(),l.sortList=[],h(t),b(t),a(t)}).bind("updateAll.tablesorter",function(e,n,r){e.stopPropagation(),C.restoreHeaders(t),u(t),x(t),d(t,n,r)}).bind("update.tablesorter updateRows.tablesorter",function(e,n,r){e.stopPropagation(),f(t),d(t,n,r)}).bind("updateCell.tablesorter",function(n,i,o,s){n.stopPropagation(),c.find(l.selectorRemove).remove();var a,u,d,f=c.find("tbody"),h=f.index(e(i).parents("tbody").filter(":last")),p=e(i).parents("tr").filter(":last");i=e(i)[0],f.length&&h>=0&&(u=f.eq(h).find("tr").index(p),d=i.cellIndex,a=l.cache[h].normalized[u].length-1,l.cache[h].row[t.config.cache[h].normalized[u][a]]=p,l.cache[h].normalized[u][d]=l.parsers[d].format(r(t,i,d),t,i,d),w(c,o,s))}).bind("addRows.tablesorter",function(e,i,s,a){e.stopPropagation();var u,d=i.filter("tr").length,f=[],h=i[0].cells.length,p=c.find("tbody").index(i.closest("tbody"));for(l.parsers||o(t),u=0;d>u;u++){for(n=0;h>n;n++)f[n]=l.parsers[n].format(r(t,i[u].cells[n],n),t,i[u].cells[n],n);f.push(l.cache[p].row.length),l.cache[p].row.push([i[u]]),l.cache[p].normalized.push(f),f=[]}w(c,s,a)}).bind("sorton.tablesorter",function(e,n,r,i){e.stopPropagation(),c.trigger("sortStart",this),m(t,n),h(t),b(t),a(t,i),"function"==typeof r&&r(t)}).bind("appendCache.tablesorter",function(e,n,r){e.stopPropagation(),a(t,r),"function"==typeof n&&n(t)}).bind("applyWidgetId.tablesorter",function(e,n){e.stopPropagation(),C.getWidgetById(n).format(t,l,l.widgetOptions)}).bind("applyWidgets.tablesorter",function(e,n){e.stopPropagation(),C.applyWidget(t,n)}).bind("refreshWidgets.tablesorter",function(e,n,r){e.stopPropagation(),C.refreshWidgets(t,n,r)}).bind("destroy.tablesorter",function(e,n,r){e.stopPropagation(),C.destroy(t,n,r)})}var C=this;C.version="2.9.0",C.parsers=[],C.widgets=[],C.defaults={theme:"default",widthFixed:!1,showProcessing:!1,headerTemplate:"{content}",onRenderTemplate:null,onRenderHeader:null,cancelSelection:!0,dateFormat:"mmddyyyy",sortMultiSortKey:"shiftKey",sortResetKey:"ctrlKey",usNumberFormat:!0,delayInit:!1,serverSideSorting:!1,headers:{},ignoreCase:!0,sortForce:null,sortList:[],sortAppend:null,sortInitialOrder:"asc",sortLocaleCompare:!1,sortReset:!1,sortRestart:!1,emptyTo:"bottom",stringTo:"max",textExtraction:"simple",textSorter:null,widgets:[],widgetOptions:{zebra:["even","odd"]},initWidgets:!0,initialized:null,tableClass:"tablesorter",cssAsc:"tablesorter-headerAsc",cssChildRow:"tablesorter-childRow",cssDesc:"tablesorter-headerDesc",cssHeader:"tablesorter-header",cssHeaderRow:"tablesorter-headerRow",cssIcon:"tablesorter-icon",cssInfoBlock:"tablesorter-infoOnly",cssProcessing:"tablesorter-processing",selectorHeaders:"> thead th, > thead td",selectorSort:"th, td",selectorRemove:".remove-me",debug:!1,headerList:[],empties:{},strings:{},parsers:[]},C.benchmark=n,C.construct=function(n){return this.each(function(){if(!this.tHead||0===this.tBodies.length||this.hasInitialized===!0)return this.config&&this.config.debug?t("stopping initialization! No thead, tbody or tablesorter has already been initialized"):"";var r,i=e(this),a=this,l="",c=e.metadata;a.hasInitialized=!1,a.isProcessing=!0,a.config={},r=e.extend(!0,a.config,C.defaults,n),e.data(a,"tablesorter",r),r.debug&&e.data(a,"startoveralltimer",new Date),r.supportsTextContent="x"===e("<span>x</span>")[0].textContent,r.supportsDataObject=parseFloat(e.fn.jquery)>=1.4,r.string={max:1,min:-1,"max+":1,"max-":-1,zero:0,none:0,"null":0,top:!0,bottom:!1},/tablesorter\-/.test(i.attr("class"))||(l=""!==r.theme?" tablesorter-"+r.theme:""),r.$table=i.addClass(r.tableClass+l),r.$tbodies=i.children("tbody:not(."+r.cssInfoBlock+")"),u(a),p(a),o(a),r.delayInit||s(a),x(a),r.supportsDataObject&&"undefined"!=typeof i.data().sortlist?r.sortList=i.data().sortlist:c&&i.metadata()&&i.metadata().sortlist&&(r.sortList=i.metadata().sortlist),C.applyWidget(a,!0),r.sortList.length>0?i.trigger("sorton",[r.sortList,{},!r.initWidgets]):r.initWidgets&&C.applyWidget(a),r.showProcessing&&i.unbind("sortBegin.tablesorter sortEnd.tablesorter").bind("sortBegin.tablesorter sortEnd.tablesorter",function(e){C.isProcessing(a,"sortBegin"===e.type)}),a.hasInitialized=!0,a.isProcessing=!1,r.debug&&C.benchmark("Overall initialization time",e.data(a,"startoveralltimer")),i.trigger("tablesorter-initialized",a),"function"==typeof r.initialized&&r.initialized(a)})},C.isProcessing=function(t,n,r){t=e(t);var i=t[0].config,o=r||t.find("."+i.cssHeader);n?(i.sortList.length>0&&(o=o.filter(function(){return this.sortDisabled?!1:C.isValueInArray(parseFloat(e(this).attr("data-column")),i.sortList)})),o.addClass(i.cssProcessing)):o.removeClass(i.cssProcessing)},C.processTbody=function(t,n,r){var i;return r?(t.isProcessing=!0,n.before('<span class="tablesorter-savemyplace"/>'),i=e.fn.detach?n.detach():n.remove()):(i=e(t).find("span.tablesorter-savemyplace"),n.insertAfter(i),i.remove(),t.isProcessing=!1,void 0)},C.clearTableBody=function(t){e(t)[0].config.$tbodies.empty()},C.restoreHeaders=function(t){var n=t.config;n.$headers.each(function(t){e(this).find(".tablesorter-header-inner").length&&e(this).html(n.headerContent[t])})},C.destroy=function(t,n,r){if(t=e(t)[0],t.hasInitialized){C.refreshWidgets(t,!0,!0);var i=e(t),o=t.config,s=i.find("thead:first"),a=s.find("tr."+o.cssHeaderRow).removeClass(o.cssHeaderRow),l=i.find("tfoot:first > tr").children("th, td");s.find("tr").not(a).remove(),i.removeData("tablesorter").unbind("sortReset update updateAll updateRows updateCell addRows sorton appendCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave sortBegin sortEnd ".split(" ").join(".tablesorter ")),o.$headers.add(l).removeClass(o.cssHeader+" "+o.cssAsc+" "+o.cssDesc).removeAttr("data-column"),a.find(o.selectorSort).unbind("mousedown.tablesorter mouseup.tablesorter"),C.restoreHeaders(t),n!==!1&&i.removeClass(o.tableClass+" tablesorter-"+o.theme),t.hasInitialized=!1,"function"==typeof r&&r(t)}},C.regex=[/(^([+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi,/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,/^0x[0-9a-f]+$/i],C.sortText=function(e,t,n,r){if(t===n)return 0;var i,o,s,a,l,c,u,d,f=e.config,h=f.string[f.empties[r]||f.emptyTo],p=C.regex;if(""===t&&0!==h)return"boolean"==typeof h?h?-1:1:-h||-1;if(""===n&&0!==h)return"boolean"==typeof h?h?1:-1:h||1;if("function"==typeof f.textSorter)return f.textSorter(t,n,e,r);if(i=t.replace(p[0],"\\0$1\\0").replace(/\\0$/,"").replace(/^\\0/,"").split("\\0"),s=n.replace(p[0],"\\0$1\\0").replace(/\\0$/,"").replace(/^\\0/,"").split("\\0"),o=parseInt(t.match(p[2]),16)||1!==i.length&&t.match(p[1])&&Date.parse(t),a=parseInt(n.match(p[2]),16)||o&&n.match(p[1])&&Date.parse(n)||null){if(a>o)return-1;if(o>a)return 1}for(d=Math.max(i.length,s.length),u=0;d>u;u++){if(l=isNaN(i[u])?i[u]||0:parseFloat(i[u])||0,c=isNaN(s[u])?s[u]||0:parseFloat(s[u])||0,isNaN(l)!==isNaN(c))return isNaN(l)?1:-1;if(typeof l!=typeof c&&(l+="",c+=""),c>l)return-1;if(l>c)return 1}return 0},C.sortTextDesc=function(e,t,n,r){if(t===n)return 0;var i=e.config,o=i.string[i.empties[r]||i.emptyTo];return""===t&&0!==o?"boolean"==typeof o?o?-1:1:o||1:""===n&&0!==o?"boolean"==typeof o?o?1:-1:-o||-1:"function"==typeof i.textSorter?i.textSorter(n,t,e,r):C.sortText(e,n,t)},C.getTextValue=function(e,t,n){if(t){var r,i=e?e.length:0,o=t+n;for(r=0;i>r;r++)o+=e.charCodeAt(r);return n*o}return 0},C.sortNumeric=function(e,t,n,r,i,o){if(t===n)return 0;var s=e.config,a=s.string[s.empties[r]||s.emptyTo];return""===t&&0!==a?"boolean"==typeof a?a?-1:1:-a||-1:""===n&&0!==a?"boolean"==typeof a?a?1:-1:a||1:(isNaN(t)&&(t=C.getTextValue(t,i,o)),isNaN(n)&&(n=C.getTextValue(n,i,o)),t-n)},C.sortNumericDesc=function(e,t,n,r,i,o){if(t===n)return 0;var s=e.config,a=s.string[s.empties[r]||s.emptyTo];return""===t&&0!==a?"boolean"==typeof a?a?-1:1:a||1:""===n&&0!==a?"boolean"==typeof a?a?1:-1:-a||-1:(isNaN(t)&&(t=C.getTextValue(t,i,o)),isNaN(n)&&(n=C.getTextValue(n,i,o)),n-t)},C.characterEquivalents={a:"\u00e1\u00e0\u00e2\u00e3\u00e4\u0105\u00e5",A:"\u00c1\u00c0\u00c2\u00c3\u00c4\u0104\u00c5",c:"\u00e7\u0107\u010d",C:"\u00c7\u0106\u010c",e:"\u00e9\u00e8\u00ea\u00eb\u011b\u0119",E:"\u00c9\u00c8\u00ca\u00cb\u011a\u0118",i:"\u00ed\u00ec\u0130\u00ee\u00ef\u0131",I:"\u00cd\u00cc\u0130\u00ce\u00cf",o:"\u00f3\u00f2\u00f4\u00f5\u00f6",O:"\u00d3\u00d2\u00d4\u00d5\u00d6",ss:"\u00df",SS:"\u1e9e",u:"\u00fa\u00f9\u00fb\u00fc\u016f",U:"\u00da\u00d9\u00db\u00dc\u016e"},C.replaceAccents=function(e){var t,n="[",r=C.characterEquivalents;if(!C.characterRegex){C.characterRegexArray={};for(t in r)"string"==typeof t&&(n+=r[t],C.characterRegexArray[t]=new RegExp("["+r[t]+"]","g"));C.characterRegex=new RegExp(n+"]")}if(C.characterRegex.test(e))for(t in r)"string"==typeof t&&(e=e.replace(C.characterRegexArray[t],t));return e},C.isValueInArray=function(e,t){var n,r=t.length;for(n=0;r>n;n++)if(t[n][0]===e)return!0;return!1},C.addParser=function(e){var t,n=C.parsers.length,r=!0;for(t=0;n>t;t++)C.parsers[t].id.toLowerCase()===e.id.toLowerCase()&&(r=!1);r&&C.parsers.push(e)},C.getParserById=function(e){var t,n=C.parsers.length;for(t=0;n>t;t++)if(C.parsers[t].id.toLowerCase()===e.toString().toLowerCase())return C.parsers[t];return!1},C.addWidget=function(e){C.widgets.push(e)},C.getWidgetById=function(e){var t,n,r=C.widgets.length;for(t=0;r>t;t++)if(n=C.widgets[t],n&&n.hasOwnProperty("id")&&n.id.toLowerCase()===e.toLowerCase())return n},C.applyWidget=function(t,r){t=e(t)[0];var i,o,s,a=t.config,l=a.widgetOptions,c=[];a.debug&&(i=new Date),a.widgets.length&&(a.widgets=e.grep(a.widgets,function(t,n){return e.inArray(t,a.widgets)===n}),e.each(a.widgets||[],function(e,t){s=C.getWidgetById(t),s&&s.id&&(s.priority||(s.priority=10),c[e]=s)}),c.sort(function(e,t){return e.priority<t.priority?-1:e.priority===t.priority?0:1}),e.each(c,function(n,i){i&&(r?(i.hasOwnProperty("options")&&(l=t.config.widgetOptions=e.extend(!0,{},i.options,l)),i.hasOwnProperty("init")&&i.init(t,i,a,l)):!r&&i.hasOwnProperty("format")&&i.format(t,a,l,!1))})),a.debug&&(o=a.widgets.length,n("Completed "+(r===!0?"initializing ":"applying ")+o+" widget"+(1!==o?"s":""),i))},C.refreshWidgets=function(n,r,i){n=e(n)[0];var o,s=n.config,a=s.widgets,l=C.widgets,c=l.length;for(o=0;c>o;o++)l[o]&&l[o].id&&(r||0>e.inArray(l[o].id,a))&&(s.debug&&t("Refeshing widgets: Removing "+l[o].id),l[o].hasOwnProperty("remove")&&l[o].remove(n,s,s.widgetOptions));i!==!0&&C.applyWidget(n,r)},C.getData=function(t,n,r){var i,o,s="",a=e(t);return a.length?(i=e.metadata?a.metadata():!1,o=" "+(a.attr("class")||""),"undefined"!=typeof a.data(r)||"undefined"!=typeof a.data(r.toLowerCase())?s+=a.data(r)||a.data(r.toLowerCase()):i&&"undefined"!=typeof i[r]?s+=i[r]:n&&"undefined"!=typeof n[r]?s+=n[r]:" "!==o&&o.match(" "+r+"-")&&(s=o.match(new RegExp("\\s"+r+"-([\\w-]+)"))[1]||""),e.trim(s)):""},C.formatFloat=function(t,n){if("string"!=typeof t||""===t)return t;var r,i=n&&n.config?n.config.usNumberFormat!==!1:"undefined"!=typeof n?n:!0;return t=i?t.replace(/,/g,""):t.replace(/[\s|\.]/g,"").replace(/,/g,"."),/^\s*\([.\d]+\)/.test(t)&&(t=t.replace(/^\s*\(/,"-").replace(/\)/,"")),r=parseFloat(t),isNaN(r)?e.trim(t):r},C.isDigit=function(e){return isNaN(e)?/^[\-+(]?\d+[)]?$/.test(e.toString().replace(/[,.'"\s]/g,"")):!0}}});var t=e.tablesorter;e.fn.extend({tablesorter:t.construct}),t.addParser({id:"text",is:function(){return!0},format:function(n,r){var i=r.config;return n&&(n=e.trim(i.ignoreCase?n.toLocaleLowerCase():n),n=i.sortLocaleCompare?t.replaceAccents(n):n),n},type:"text"}),t.addParser({id:"digit",is:function(e){return t.isDigit(e)},format:function(e,n){return e?t.formatFloat(e.replace(/[^\w,. \-()]/g,""),n):e},type:"numeric"}),t.addParser({id:"currency",is:function(e){return/^\(?\d+[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]|[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]\d+\)?$/.test((e||"").replace(/[,. ]/g,""))},format:function(e,n){return e?t.formatFloat(e.replace(/[^\w,. \-()]/g,""),n):e},type:"numeric"}),t.addParser({id:"ipAddress",is:function(e){return/^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$/.test(e)},format:function(e,n){var r,i=e?e.split("."):"",o="",s=i.length;for(r=0;s>r;r++)o+=("00"+i[r]).slice(-3);return e?t.formatFloat(o,n):e},type:"numeric"}),t.addParser({id:"url",is:function(e){return/^(https?|ftp|file):\/\//.test(e)},format:function(t){return t?e.trim(t.replace(/(https?|ftp|file):\/\//,"")):t},type:"text"}),t.addParser({id:"isoDate",is:function(e){return/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}/.test(e)},format:function(e,n){return e?t.formatFloat(""!==e?new Date(e.replace(/-/g,"/")).getTime()||"":"",n):e},type:"numeric"}),t.addParser({id:"percent",is:function(e){return/(\d\s?%|%\s?\d)/.test(e)},format:function(e,n){return e?t.formatFloat(e.replace(/%/g,""),n):e},type:"numeric"}),t.addParser({id:"usLongDate",is:function(e){return/^[A-Z]{3,10}\.?\s+\d{1,2},?\s+(\d{4})(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?$/i.test(e)||/^\d{1,2}\s+[A-Z]{3,10}\s+\d{4}/i.test(e)},format:function(e,n){return e?t.formatFloat(new Date(e.replace(/(\S)([AP]M)$/i,"$1 $2")).getTime()||"",n):e},type:"numeric"}),t.addParser({id:"shortDate",is:function(e){return/(^\d{1,2}[\/\s]\d{1,2}[\/\s]\d{4})|(^\d{4}[\/\s]\d{1,2}[\/\s]\d{1,2})/.test((e||"").replace(/\s+/g," ").replace(/[\-.,]/g,"/"))},format:function(e,n,r,i){if(e){var o=n.config,s=o.headerList[i],a=s.shortDateFormat;"undefined"==typeof a&&(a=s.shortDateFormat=t.getData(s,o.headers[i],"dateFormat")||o.dateFormat),e=e.replace(/\s+/g," ").replace(/[\-.,]/g,"/"),"mmddyyyy"===a?e=e.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,"$3/$1/$2"):"ddmmyyyy"===a?e=e.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,"$3/$2/$1"):"yyyymmdd"===a&&(e=e.replace(/(\d{4})[\/\s](\d{1,2})[\/\s](\d{1,2})/,"$1/$2/$3"))}return e?t.formatFloat(new Date(e).getTime()||"",n):e},type:"numeric"}),t.addParser({id:"time",is:function(e){return/^(([0-2]?\d:[0-5]\d)|([0-1]?\d:[0-5]\d\s?([AP]M)))$/i.test(e)},format:function(e,n){return e?t.formatFloat(new Date("2000/01/01 "+e.replace(/(\S)([AP]M)$/i,"$1 $2")).getTime()||"",n):e},type:"numeric"}),t.addParser({id:"metadata",is:function(){return!1},format:function(t,n,r){var i=n.config,o=i.parserMetadataName?i.parserMetadataName:"sortValue";return e(r).metadata()[o]},type:"numeric"}),t.addWidget({id:"zebra",priority:90,format:function(n,r,i){var o,s,a,l,c,u,d,f,h=new RegExp(r.cssChildRow,"i"),p=r.$tbodies;for(r.debug&&(u=new Date),d=0;p.length>d;d++)o=p.eq(d),f=o.children("tr").length,f>1&&(l=0,s=o.children("tr:visible"),s.each(function(){a=e(this),h.test(this.className)||l++,c=0===l%2,a.removeClass(i.zebra[c?1:0]).addClass(i.zebra[c?0:1])}));r.debug&&t.benchmark("Applying Zebra widget",u)},remove:function(t,n,r){var i,o,s=n.$tbodies,a=(r.zebra||["even","odd"]).join(" ");for(i=0;s.length>i;i++)o=e.tablesorter.processTbody(t,s.eq(i),!0),o.children().removeClass(a),e.tablesorter.processTbody(t,o,!1)}})}(jQuery),function(){var e=this,t=e._,n={},r=Array.prototype,i=Object.prototype,o=Function.prototype,s=r.push,a=r.slice,l=r.concat,c=i.toString,u=i.hasOwnProperty,d=r.forEach,f=r.map,h=r.reduce,p=r.reduceRight,m=r.filter,g=r.every,v=r.some,b=r.indexOf,y=r.lastIndexOf,w=Array.isArray,x=Object.keys,C=o.bind,S=function(e){return e instanceof S?e:this instanceof S?(this._wrapped=e,void 0):new S(e)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=S),exports._=S):e._=S,S.VERSION="1.4.4";var k=S.each=S.forEach=function(e,t,r){if(null!=e)if(d&&e.forEach===d)e.forEach(t,r);else if(e.length===+e.length){for(var i=0,o=e.length;o>i;i++)if(t.call(r,e[i],i,e)===n)return}else for(var s in e)if(S.has(e,s)&&t.call(r,e[s],s,e)===n)return};S.map=S.collect=function(e,t,n){var r=[];return null==e?r:f&&e.map===f?e.map(t,n):(k(e,function(e,i,o){r[r.length]=t.call(n,e,i,o)}),r)};var T="Reduce of empty array with no initial value";S.reduce=S.foldl=S.inject=function(e,t,n,r){var i=arguments.length>2;if(null==e&&(e=[]),h&&e.reduce===h)return r&&(t=S.bind(t,r)),i?e.reduce(t,n):e.reduce(t);if(k(e,function(e,o,s){i?n=t.call(r,n,e,o,s):(n=e,i=!0)}),!i)throw new TypeError(T);return n},S.reduceRight=S.foldr=function(e,t,n,r){var i=arguments.length>2;if(null==e&&(e=[]),p&&e.reduceRight===p)return r&&(t=S.bind(t,r)),i?e.reduceRight(t,n):e.reduceRight(t);var o=e.length;if(o!==+o){var s=S.keys(e);o=s.length}if(k(e,function(a,l,c){l=s?s[--o]:--o,i?n=t.call(r,n,e[l],l,c):(n=e[l],i=!0)}),!i)throw new TypeError(T);return n},S.find=S.detect=function(e,t,n){var r;return E(e,function(e,i,o){return t.call(n,e,i,o)?(r=e,!0):void 0}),r},S.filter=S.select=function(e,t,n){var r=[];return null==e?r:m&&e.filter===m?e.filter(t,n):(k(e,function(e,i,o){t.call(n,e,i,o)&&(r[r.length]=e)}),r)},S.reject=function(e,t,n){return S.filter(e,function(e,r,i){return!t.call(n,e,r,i)},n)},S.every=S.all=function(e,t,r){t||(t=S.identity);var i=!0;return null==e?i:g&&e.every===g?e.every(t,r):(k(e,function(e,o,s){return(i=i&&t.call(r,e,o,s))?void 0:n}),!!i)};var E=S.some=S.any=function(e,t,r){t||(t=S.identity);var i=!1;return null==e?i:v&&e.some===v?e.some(t,r):(k(e,function(e,o,s){return i||(i=t.call(r,e,o,s))?n:void 0}),!!i)};S.contains=S.include=function(e,t){return null==e?!1:b&&e.indexOf===b?-1!=e.indexOf(t):E(e,function(e){return e===t})},S.invoke=function(e,t){var n=a.call(arguments,2),r=S.isFunction(t);return S.map(e,function(e){return(r?t:e[t]).apply(e,n)})},S.pluck=function(e,t){return S.map(e,function(e){return e[t]})},S.where=function(e,t,n){return S.isEmpty(t)?n?null:[]:S[n?"find":"filter"](e,function(e){for(var n in t)if(t[n]!==e[n])return!1;return!0})},S.findWhere=function(e,t){return S.where(e,t,!0)},S.max=function(e,t,n){if(!t&&S.isArray(e)&&e[0]===+e[0]&&65535>e.length)return Math.max.apply(Math,e);if(!t&&S.isEmpty(e))return-1/0;var r={computed:-1/0,value:-1/0};return k(e,function(e,i,o){var s=t?t.call(n,e,i,o):e;s>=r.computed&&(r={value:e,computed:s})}),r.value},S.min=function(e,t,n){if(!t&&S.isArray(e)&&e[0]===+e[0]&&65535>e.length)return Math.min.apply(Math,e);if(!t&&S.isEmpty(e))return 1/0;var r={computed:1/0,value:1/0};return k(e,function(e,i,o){var s=t?t.call(n,e,i,o):e;r.computed>s&&(r={value:e,computed:s})}),r.value},S.shuffle=function(e){var t,n=0,r=[];return k(e,function(e){t=S.random(n++),r[n-1]=r[t],r[t]=e}),r};var L=function(e){return S.isFunction(e)?e:function(t){return t[e]}};S.sortBy=function(e,t,n){var r=L(t);return S.pluck(S.map(e,function(e,t,i){return{value:e,index:t,criteria:r.call(n,e,t,i)}}).sort(function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(r>n||void 0===r)return-1}return e.index<t.index?-1:1}),"value")};var N=function(e,t,n,r){var i={},o=L(t||S.identity);return k(e,function(t,s){var a=o.call(n,t,s,e);r(i,a,t)}),i};S.groupBy=function(e,t,n){return N(e,t,n,function(e,t,n){(S.has(e,t)?e[t]:e[t]=[]).push(n)})},S.countBy=function(e,t,n){return N(e,t,n,function(e,t){S.has(e,t)||(e[t]=0),e[t]++})},S.sortedIndex=function(e,t,n,r){n=null==n?S.identity:L(n);for(var i=n.call(r,t),o=0,s=e.length;s>o;){var a=o+s>>>1;i>n.call(r,e[a])?o=a+1:s=a}return o},S.toArray=function(e){return e?S.isArray(e)?a.call(e):e.length===+e.length?S.map(e,S.identity):S.values(e):[]},S.size=function(e){return null==e?0:e.length===+e.length?e.length:S.keys(e).length},S.first=S.head=S.take=function(e,t,n){return null==e?void 0:null==t||n?e[0]:a.call(e,0,t)},S.initial=function(e,t,n){return a.call(e,0,e.length-(null==t||n?1:t))},S.last=function(e,t,n){return null==e?void 0:null==t||n?e[e.length-1]:a.call(e,Math.max(e.length-t,0))},S.rest=S.tail=S.drop=function(e,t,n){return a.call(e,null==t||n?1:t)},S.compact=function(e){return S.filter(e,S.identity)};var A=function(e,t,n){return k(e,function(e){S.isArray(e)?t?s.apply(n,e):A(e,t,n):n.push(e)}),n};S.flatten=function(e,t){return A(e,t,[])},S.without=function(e){return S.difference(e,a.call(arguments,1))},S.uniq=S.unique=function(e,t,n,r){S.isFunction(t)&&(r=n,n=t,t=!1);var i=n?S.map(e,n,r):e,o=[],s=[];return k(i,function(n,r){(t?r&&s[s.length-1]===n:S.contains(s,n))||(s.push(n),o.push(e[r]))}),o},S.union=function(){return S.uniq(l.apply(r,arguments))},S.intersection=function(e){var t=a.call(arguments,1);return S.filter(S.uniq(e),function(e){return S.every(t,function(t){return S.indexOf(t,e)>=0})})},S.difference=function(e){var t=l.apply(r,a.call(arguments,1));return S.filter(e,function(e){return!S.contains(t,e)})},S.zip=function(){for(var e=a.call(arguments),t=S.max(S.pluck(e,"length")),n=new Array(t),r=0;t>r;r++)n[r]=S.pluck(e,""+r);return n},S.object=function(e,t){if(null==e)return{};for(var n={},r=0,i=e.length;i>r;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n},S.indexOf=function(e,t,n){if(null==e)return-1;var r=0,i=e.length;if(n){if("number"!=typeof n)return r=S.sortedIndex(e,t),e[r]===t?r:-1;r=0>n?Math.max(0,i+n):n}if(b&&e.indexOf===b)return e.indexOf(t,n);for(;i>r;r++)if(e[r]===t)return r;return-1},S.lastIndexOf=function(e,t,n){if(null==e)return-1;var r=null!=n;if(y&&e.lastIndexOf===y)return r?e.lastIndexOf(t,n):e.lastIndexOf(t);for(var i=r?n:e.length;i--;)if(e[i]===t)return i;return-1},S.range=function(e,t,n){1>=arguments.length&&(t=e||0,e=0),n=arguments[2]||1;for(var r=Math.max(Math.ceil((t-e)/n),0),i=0,o=new Array(r);r>i;)o[i++]=e,e+=n;return o},S.bind=function(e,t){if(e.bind===C&&C)return C.apply(e,a.call(arguments,1));var n=a.call(arguments,2);return function(){return e.apply(t,n.concat(a.call(arguments)))}},S.partial=function(e){var t=a.call(arguments,1);return function(){return e.apply(this,t.concat(a.call(arguments)))}},S.bindAll=function(e){var t=a.call(arguments,1);return 0===t.length&&(t=S.functions(e)),k(t,function(t){e[t]=S.bind(e[t],e)}),e},S.memoize=function(e,t){var n={};return t||(t=S.identity),function(){var r=t.apply(this,arguments);return S.has(n,r)?n[r]:n[r]=e.apply(this,arguments)}},S.delay=function(e,t){var n=a.call(arguments,2);return setTimeout(function(){return e.apply(null,n)},t)},S.defer=function(e){return S.delay.apply(S,[e,1].concat(a.call(arguments,1)))},S.throttle=function(e,t){var n,r,i,o,s=0,a=function(){s=new Date,i=null,o=e.apply(n,r)};return function(){var l=new Date,c=t-(l-s);return n=this,r=arguments,0>=c?(clearTimeout(i),i=null,s=l,o=e.apply(n,r)):i||(i=setTimeout(a,c)),o}},S.debounce=function(e,t,n){var r,i;return function(){var o=this,s=arguments,a=function(){r=null,n||(i=e.apply(o,s))},l=n&&!r;return clearTimeout(r),r=setTimeout(a,t),l&&(i=e.apply(o,s)),i}},S.once=function(e){var t,n=!1;return function(){return n?t:(n=!0,t=e.apply(this,arguments),e=null,t)}},S.wrap=function(e,t){return function(){var n=[e];return s.apply(n,arguments),t.apply(this,n)}},S.compose=function(){var e=arguments;return function(){for(var t=arguments,n=e.length-1;n>=0;n--)t=[e[n].apply(this,t)];return t[0]}},S.after=function(e,t){return 0>=e?t():function(){return 1>--e?t.apply(this,arguments):void 0}},S.keys=x||function(e){if(e!==Object(e))throw new TypeError("Invalid object");var t=[];for(var n in e)S.has(e,n)&&(t[t.length]=n);return t},S.values=function(e){var t=[];for(var n in e)S.has(e,n)&&t.push(e[n]);return t},S.pairs=function(e){var t=[];for(var n in e)S.has(e,n)&&t.push([n,e[n]]);return t},S.invert=function(e){var t={};for(var n in e)S.has(e,n)&&(t[e[n]]=n);return t},S.functions=S.methods=function(e){var t=[];for(var n in e)S.isFunction(e[n])&&t.push(n);return t.sort()},S.extend=function(e){return k(a.call(arguments,1),function(t){if(t)for(var n in t)e[n]=t[n]}),e},S.pick=function(e){var t={},n=l.apply(r,a.call(arguments,1));return k(n,function(n){n in e&&(t[n]=e[n])}),t},S.omit=function(e){var t={},n=l.apply(r,a.call(arguments,1));for(var i in e)S.contains(n,i)||(t[i]=e[i]);return t},S.defaults=function(e){return k(a.call(arguments,1),function(t){if(t)for(var n in t)null==e[n]&&(e[n]=t[n])}),e},S.clone=function(e){return S.isObject(e)?S.isArray(e)?e.slice():S.extend({},e):e},S.tap=function(e,t){return t(e),e};var D=function(e,t,n,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return e===t;e instanceof S&&(e=e._wrapped),t instanceof S&&(t=t._wrapped);var i=c.call(e);if(i!=c.call(t))return!1;switch(i){case"[object String]":return e==String(t);case"[object Number]":return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object RegExp]":return e.source==t.source&&e.global==t.global&&e.multiline==t.multiline&&e.ignoreCase==t.ignoreCase}if("object"!=typeof e||"object"!=typeof t)return!1;for(var o=n.length;o--;)if(n[o]==e)return r[o]==t;n.push(e),r.push(t);var s=0,a=!0;if("[object Array]"==i){if(s=e.length,a=s==t.length)for(;s--&&(a=D(e[s],t[s],n,r)););}else{var l=e.constructor,u=t.constructor;if(l!==u&&!(S.isFunction(l)&&l instanceof l&&S.isFunction(u)&&u instanceof u))return!1;for(var d in e)if(S.has(e,d)&&(s++,!(a=S.has(t,d)&&D(e[d],t[d],n,r))))break;if(a){for(d in t)if(S.has(t,d)&&!s--)break;a=!s}}return n.pop(),r.pop(),a};S.isEqual=function(e,t){return D(e,t,[],[])},S.isEmpty=function(e){if(null==e)return!0;if(S.isArray(e)||S.isString(e))return 0===e.length;for(var t in e)if(S.has(e,t))return!1;return!0},S.isElement=function(e){return!(!e||1!==e.nodeType)},S.isArray=w||function(e){return"[object Array]"==c.call(e)},S.isObject=function(e){return e===Object(e)},k(["Arguments","Function","String","Number","Date","RegExp"],function(e){S["is"+e]=function(t){return c.call(t)=="[object "+e+"]"}}),S.isArguments(arguments)||(S.isArguments=function(e){return!(!e||!S.has(e,"callee"))}),S.isFunction=function(e){return"function"==typeof e},S.isFinite=function(e){return isFinite(e)&&!isNaN(parseFloat(e))},S.isNaN=function(e){return S.isNumber(e)&&e!=+e},S.isBoolean=function(e){return e===!0||e===!1||"[object Boolean]"==c.call(e)},S.isNull=function(e){return null===e},S.isUndefined=function(e){return void 0===e},S.has=function(e,t){return u.call(e,t)},S.noConflict=function(){return e._=t,this},S.identity=function(e){return e},S.times=function(e,t,n){for(var r=Array(e),i=0;e>i;i++)r[i]=t.call(n,i);return r},S.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))};var M={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};M.unescape=S.invert(M.escape);var I={escape:new RegExp("["+S.keys(M.escape).join("")+"]","g"),unescape:new RegExp("("+S.keys(M.unescape).join("|")+")","g")};
S.each(["escape","unescape"],function(e){S[e]=function(t){return null==t?"":(""+t).replace(I[e],function(t){return M[e][t]})}}),S.result=function(e,t){if(null==e)return null;var n=e[t];return S.isFunction(n)?n.call(e):n},S.mixin=function(e){k(S.functions(e),function(t){var n=S[t]=e[t];S.prototype[t]=function(){var e=[this._wrapped];return s.apply(e,arguments),F.call(this,n.apply(S,e))}})};var $=0;S.uniqueId=function(e){var t=++$+"";return e?e+t:t},S.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var O=/(.)^/,P={"'":"'","\\":"\\","\r":"r","\n":"n","	":"t","\u2028":"u2028","\u2029":"u2029"},_=/\\|'|\r|\n|\t|\u2028|\u2029/g;S.template=function(e,t,n){var r;n=S.defaults({},n,S.templateSettings);var i=new RegExp([(n.escape||O).source,(n.interpolate||O).source,(n.evaluate||O).source].join("|")+"|$","g"),o=0,s="__p+='";e.replace(i,function(t,n,r,i,a){return s+=e.slice(o,a).replace(_,function(e){return"\\"+P[e]}),n&&(s+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'"),r&&(s+="'+\n((__t=("+r+"))==null?'':__t)+\n'"),i&&(s+="';\n"+i+"\n__p+='"),o=a+t.length,t}),s+="';\n",n.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{r=new Function(n.variable||"obj","_",s)}catch(a){throw a.source=s,a}if(t)return r(t,S);var l=function(e){return r.call(this,e,S)};return l.source="function("+(n.variable||"obj")+"){\n"+s+"}",l},S.chain=function(e){return S(e).chain()};var F=function(e){return this._chain?S(e).chain():e};S.mixin(S),k(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=r[e];S.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!=e&&"splice"!=e||0!==n.length||delete n[0],F.call(this,n)}}),k(["concat","join","slice"],function(e){var t=r[e];S.prototype[e]=function(){return F.call(this,t.apply(this._wrapped,arguments))}}),S.extend(S.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}.call(this),function(){var e,t=this,n=t.Backbone,r=[],i=r.push,o=r.slice,s=r.splice;e="undefined"!=typeof exports?exports:t.Backbone={},e.VERSION="1.0.0";var a=t._;a||"undefined"==typeof require||(a=require("underscore")),e.$=t.jQuery||t.Zepto||t.ender||t.$,e.noConflict=function(){return t.Backbone=n,this},e.emulateHTTP=!1,e.emulateJSON=!1;var l=e.Events={on:function(e,t,n){if(!u(this,"on",e,[t,n])||!t)return this;this._events||(this._events={});var r=this._events[e]||(this._events[e]=[]);return r.push({callback:t,context:n,ctx:n||this}),this},once:function(e,t,n){if(!u(this,"once",e,[t,n])||!t)return this;var r=this,i=a.once(function(){r.off(e,i),t.apply(this,arguments)});return i._callback=t,this.on(e,i,n)},off:function(e,t,n){var r,i,o,s,l,c,d,f;if(!this._events||!u(this,"off",e,[t,n]))return this;if(!e&&!t&&!n)return this._events={},this;for(s=e?[e]:a.keys(this._events),l=0,c=s.length;c>l;l++)if(e=s[l],o=this._events[e]){if(this._events[e]=r=[],t||n)for(d=0,f=o.length;f>d;d++)i=o[d],(t&&t!==i.callback&&t!==i.callback._callback||n&&n!==i.context)&&r.push(i);r.length||delete this._events[e]}return this},trigger:function(e){if(!this._events)return this;var t=o.call(arguments,1);if(!u(this,"trigger",e,t))return this;var n=this._events[e],r=this._events.all;return n&&d(n,t),r&&d(r,arguments),this},stopListening:function(e,t,n){var r=this._listeners;if(!r)return this;var i=!t&&!n;"object"==typeof t&&(n=this),e&&((r={})[e._listenerId]=e);for(var o in r)r[o].off(t,n,this),i&&delete this._listeners[o];return this}},c=/\s+/,u=function(e,t,n,r){if(!n)return!0;if("object"==typeof n){for(var i in n)e[t].apply(e,[i,n[i]].concat(r));return!1}if(c.test(n)){for(var o=n.split(c),s=0,a=o.length;a>s;s++)e[t].apply(e,[o[s]].concat(r));return!1}return!0},d=function(e,t){var n,r=-1,i=e.length,o=t[0],s=t[1],a=t[2];switch(t.length){case 0:for(;i>++r;)(n=e[r]).callback.call(n.ctx);return;case 1:for(;i>++r;)(n=e[r]).callback.call(n.ctx,o);return;case 2:for(;i>++r;)(n=e[r]).callback.call(n.ctx,o,s);return;case 3:for(;i>++r;)(n=e[r]).callback.call(n.ctx,o,s,a);return;default:for(;i>++r;)(n=e[r]).callback.apply(n.ctx,t)}},f={listenTo:"on",listenToOnce:"once"};a.each(f,function(e,t){l[t]=function(t,n,r){var i=this._listeners||(this._listeners={}),o=t._listenerId||(t._listenerId=a.uniqueId("l"));return i[o]=t,"object"==typeof n&&(r=this),t[e](n,r,this),this}}),l.bind=l.on,l.unbind=l.off,a.extend(e,l);var h=e.Model=function(e,t){var n,r=e||{};t||(t={}),this.cid=a.uniqueId("c"),this.attributes={},a.extend(this,a.pick(t,p)),t.parse&&(r=this.parse(r,t)||{}),(n=a.result(this,"defaults"))&&(r=a.defaults({},r,n)),this.set(r,t),this.changed={},this.initialize.apply(this,arguments)},p=["url","urlRoot","collection"];a.extend(h.prototype,l,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(){return a.clone(this.attributes)},sync:function(){return e.sync.apply(this,arguments)},get:function(e){return this.attributes[e]},escape:function(e){return a.escape(this.get(e))},has:function(e){return null!=this.get(e)},set:function(e,t,n){var r,i,o,s,l,c,u,d;if(null==e)return this;if("object"==typeof e?(i=e,n=t):(i={})[e]=t,n||(n={}),!this._validate(i,n))return!1;o=n.unset,l=n.silent,s=[],c=this._changing,this._changing=!0,c||(this._previousAttributes=a.clone(this.attributes),this.changed={}),d=this.attributes,u=this._previousAttributes,this.idAttribute in i&&(this.id=i[this.idAttribute]);for(r in i)t=i[r],a.isEqual(d[r],t)||s.push(r),a.isEqual(u[r],t)?delete this.changed[r]:this.changed[r]=t,o?delete d[r]:d[r]=t;if(!l){s.length&&(this._pending=!0);for(var f=0,h=s.length;h>f;f++)this.trigger("change:"+s[f],this,d[s[f]],n)}if(c)return this;if(!l)for(;this._pending;)this._pending=!1,this.trigger("change",this,n);return this._pending=!1,this._changing=!1,this},unset:function(e,t){return this.set(e,void 0,a.extend({},t,{unset:!0}))},clear:function(e){var t={};for(var n in this.attributes)t[n]=void 0;return this.set(t,a.extend({},e,{unset:!0}))},hasChanged:function(e){return null==e?!a.isEmpty(this.changed):a.has(this.changed,e)},changedAttributes:function(e){if(!e)return this.hasChanged()?a.clone(this.changed):!1;var t,n=!1,r=this._changing?this._previousAttributes:this.attributes;for(var i in e)a.isEqual(r[i],t=e[i])||((n||(n={}))[i]=t);return n},previous:function(e){return null!=e&&this._previousAttributes?this._previousAttributes[e]:null},previousAttributes:function(){return a.clone(this._previousAttributes)},fetch:function(e){e=e?a.clone(e):{},void 0===e.parse&&(e.parse=!0);var t=this,n=e.success;return e.success=function(r){return t.set(t.parse(r,e),e)?(n&&n(t,r,e),t.trigger("sync",t,r,e),void 0):!1},F(this,e),this.sync("read",this,e)},save:function(e,t,n){var r,i,o,s=this.attributes;if(null==e||"object"==typeof e?(r=e,n=t):(r={})[e]=t,!(!r||n&&n.wait||this.set(r,n)))return!1;if(n=a.extend({validate:!0},n),!this._validate(r,n))return!1;r&&n.wait&&(this.attributes=a.extend({},s,r)),void 0===n.parse&&(n.parse=!0);var l=this,c=n.success;return n.success=function(e){l.attributes=s;var t=l.parse(e,n);return n.wait&&(t=a.extend(r||{},t)),a.isObject(t)&&!l.set(t,n)?!1:(c&&c(l,e,n),l.trigger("sync",l,e,n),void 0)},F(this,n),i=this.isNew()?"create":n.patch?"patch":"update","patch"===i&&(n.attrs=r),o=this.sync(i,this,n),r&&n.wait&&(this.attributes=s),o},destroy:function(e){e=e?a.clone(e):{};var t=this,n=e.success,r=function(){t.trigger("destroy",t,t.collection,e)};if(e.success=function(i){(e.wait||t.isNew())&&r(),n&&n(t,i,e),t.isNew()||t.trigger("sync",t,i,e)},this.isNew())return e.success(),!1;F(this,e);var i=this.sync("delete",this,e);return e.wait||r(),i},url:function(){var e=a.result(this,"urlRoot")||a.result(this.collection,"url")||_();return this.isNew()?e:e+("/"===e.charAt(e.length-1)?"":"/")+encodeURIComponent(this.id)},parse:function(e){return e},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return null==this.id},isValid:function(e){return this._validate({},a.extend(e||{},{validate:!0}))},_validate:function(e,t){if(!t.validate||!this.validate)return!0;e=a.extend({},this.attributes,e);var n=this.validationError=this.validate(e,t)||null;return n?(this.trigger("invalid",this,n,a.extend(t||{},{validationError:n})),!1):!0}});var m=["keys","values","pairs","invert","pick","omit"];a.each(m,function(e){h.prototype[e]=function(){var t=o.call(arguments);return t.unshift(this.attributes),a[e].apply(a,t)}});var g=e.Collection=function(e,t){t||(t={}),t.url&&(this.url=t.url),t.model&&(this.model=t.model),void 0!==t.comparator&&(this.comparator=t.comparator),this._reset(),this.initialize.apply(this,arguments),e&&this.reset(e,a.extend({silent:!0},t))},v={add:!0,remove:!0,merge:!0},b={add:!0,merge:!1,remove:!1};a.extend(g.prototype,l,{model:h,initialize:function(){},toJSON:function(e){return this.map(function(t){return t.toJSON(e)})},sync:function(){return e.sync.apply(this,arguments)},add:function(e,t){return this.set(e,a.defaults(t||{},b))},remove:function(e,t){e=a.isArray(e)?e.slice():[e],t||(t={});var n,r,i,o;for(n=0,r=e.length;r>n;n++)o=this.get(e[n]),o&&(delete this._byId[o.id],delete this._byId[o.cid],i=this.indexOf(o),this.models.splice(i,1),this.length--,t.silent||(t.index=i,o.trigger("remove",o,this,t)),this._removeReference(o));return this},set:function(e,t){t=a.defaults(t||{},v),t.parse&&(e=this.parse(e,t)),a.isArray(e)||(e=e?[e]:[]);var n,r,o,l,c,u=t.at,d=this.comparator&&null==u&&t.sort!==!1,f=a.isString(this.comparator)?this.comparator:null,h=[],p=[],m={};for(n=0,r=e.length;r>n;n++)(o=this._prepareModel(e[n],t))&&((l=this.get(o))?(t.remove&&(m[l.cid]=!0),t.merge&&(l.set(o.attributes,t),d&&!c&&l.hasChanged(f)&&(c=!0))):t.add&&(h.push(o),o.on("all",this._onModelEvent,this),this._byId[o.cid]=o,null!=o.id&&(this._byId[o.id]=o)));if(t.remove){for(n=0,r=this.length;r>n;++n)m[(o=this.models[n]).cid]||p.push(o);p.length&&this.remove(p,t)}if(h.length&&(d&&(c=!0),this.length+=h.length,null!=u?s.apply(this.models,[u,0].concat(h)):i.apply(this.models,h)),c&&this.sort({silent:!0}),t.silent)return this;for(n=0,r=h.length;r>n;n++)(o=h[n]).trigger("add",o,this,t);return c&&this.trigger("sort",this,t),this},reset:function(e,t){t||(t={});for(var n=0,r=this.models.length;r>n;n++)this._removeReference(this.models[n]);return t.previousModels=this.models,this._reset(),this.add(e,a.extend({silent:!0},t)),t.silent||this.trigger("reset",this,t),this},push:function(e,t){return e=this._prepareModel(e,t),this.add(e,a.extend({at:this.length},t)),e},pop:function(e){var t=this.at(this.length-1);return this.remove(t,e),t},unshift:function(e,t){return e=this._prepareModel(e,t),this.add(e,a.extend({at:0},t)),e},shift:function(e){var t=this.at(0);return this.remove(t,e),t},slice:function(e,t){return this.models.slice(e,t)},get:function(e){return null==e?void 0:this._byId[null!=e.id?e.id:e.cid||e]},at:function(e){return this.models[e]},where:function(e,t){return a.isEmpty(e)?t?void 0:[]:this[t?"find":"filter"](function(t){for(var n in e)if(e[n]!==t.get(n))return!1;return!0})},findWhere:function(e){return this.where(e,!0)},sort:function(e){if(!this.comparator)throw new Error("Cannot sort a set without a comparator");return e||(e={}),a.isString(this.comparator)||1===this.comparator.length?this.models=this.sortBy(this.comparator,this):this.models.sort(a.bind(this.comparator,this)),e.silent||this.trigger("sort",this,e),this},sortedIndex:function(e,t,n){t||(t=this.comparator);var r=a.isFunction(t)?t:function(e){return e.get(t)};return a.sortedIndex(this.models,e,r,n)},pluck:function(e){return a.invoke(this.models,"get",e)},fetch:function(e){e=e?a.clone(e):{},void 0===e.parse&&(e.parse=!0);var t=e.success,n=this;return e.success=function(r){var i=e.reset?"reset":"set";n[i](r,e),t&&t(n,r,e),n.trigger("sync",n,r,e)},F(this,e),this.sync("read",this,e)},create:function(e,t){if(t=t?a.clone(t):{},!(e=this._prepareModel(e,t)))return!1;t.wait||this.add(e,t);var n=this,r=t.success;return t.success=function(i){t.wait&&n.add(e,t),r&&r(e,i,t)},e.save(null,t),e},parse:function(e){return e},clone:function(){return new this.constructor(this.models)},_reset:function(){this.length=0,this.models=[],this._byId={}},_prepareModel:function(e,t){if(e instanceof h)return e.collection||(e.collection=this),e;t||(t={}),t.collection=this;var n=new this.model(e,t);return n._validate(e,t)?n:(this.trigger("invalid",this,e,t),!1)},_removeReference:function(e){this===e.collection&&delete e.collection,e.off("all",this._onModelEvent,this)},_onModelEvent:function(e,t,n,r){("add"!==e&&"remove"!==e||n===this)&&("destroy"===e&&this.remove(t,r),t&&e==="change:"+t.idAttribute&&(delete this._byId[t.previous(t.idAttribute)],null!=t.id&&(this._byId[t.id]=t)),this.trigger.apply(this,arguments))}});var y=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","indexOf","shuffle","lastIndexOf","isEmpty","chain"];a.each(y,function(e){g.prototype[e]=function(){var t=o.call(arguments);return t.unshift(this.models),a[e].apply(a,t)}});var w=["groupBy","countBy","sortBy"];a.each(w,function(e){g.prototype[e]=function(t,n){var r=a.isFunction(t)?t:function(e){return e.get(t)};return a[e](this.models,r,n)}});var x=e.View=function(e){this.cid=a.uniqueId("view"),this._configure(e||{}),this._ensureElement(),this.initialize.apply(this,arguments),this.delegateEvents()},C=/^(\S+)\s*(.*)$/,S=["model","collection","el","id","attributes","className","tagName","events"];a.extend(x.prototype,l,{tagName:"div",$:function(e){return this.$el.find(e)},initialize:function(){},render:function(){return this},remove:function(){return this.$el.remove(),this.stopListening(),this},setElement:function(t,n){return this.$el&&this.undelegateEvents(),this.$el=t instanceof e.$?t:e.$(t),this.el=this.$el[0],n!==!1&&this.delegateEvents(),this},delegateEvents:function(e){if(!e&&!(e=a.result(this,"events")))return this;this.undelegateEvents();for(var t in e){var n=e[t];if(a.isFunction(n)||(n=this[e[t]]),n){var r=t.match(C),i=r[1],o=r[2];n=a.bind(n,this),i+=".delegateEvents"+this.cid,""===o?this.$el.on(i,n):this.$el.on(i,o,n)}}return this},undelegateEvents:function(){return this.$el.off(".delegateEvents"+this.cid),this},_configure:function(e){this.options&&(e=a.extend({},a.result(this,"options"),e)),a.extend(this,a.pick(e,S)),this.options=e},_ensureElement:function(){if(this.el)this.setElement(a.result(this,"el"),!1);else{var t=a.extend({},a.result(this,"attributes"));this.id&&(t.id=a.result(this,"id")),this.className&&(t["class"]=a.result(this,"className"));var n=e.$("<"+a.result(this,"tagName")+">").attr(t);this.setElement(n,!1)}}}),e.sync=function(t,n,r){var i=k[t];a.defaults(r||(r={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var o={type:i,dataType:"json"};if(r.url||(o.url=a.result(n,"url")||_()),null!=r.data||!n||"create"!==t&&"update"!==t&&"patch"!==t||(o.contentType="application/json",o.data=JSON.stringify(r.attrs||n.toJSON(r))),r.emulateJSON&&(o.contentType="application/x-www-form-urlencoded",o.data=o.data?{model:o.data}:{}),r.emulateHTTP&&("PUT"===i||"DELETE"===i||"PATCH"===i)){o.type="POST",r.emulateJSON&&(o.data._method=i);var s=r.beforeSend;r.beforeSend=function(e){return e.setRequestHeader("X-HTTP-Method-Override",i),s?s.apply(this,arguments):void 0}}"GET"===o.type||r.emulateJSON||(o.processData=!1),"PATCH"!==o.type||!window.ActiveXObject||window.external&&window.external.msActiveXFilteringEnabled||(o.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")});var l=r.xhr=e.ajax(a.extend(o,r));return n.trigger("request",n,l,r),l};var k={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var T=e.Router=function(e){e||(e={}),e.routes&&(this.routes=e.routes),this._bindRoutes(),this.initialize.apply(this,arguments)},E=/\((.*?)\)/g,L=/(\(\?)?:\w+/g,N=/\*\w+/g,A=/[\-{}\[\]+?.,\\\^$|#\s]/g;a.extend(T.prototype,l,{initialize:function(){},route:function(t,n,r){a.isRegExp(t)||(t=this._routeToRegExp(t)),a.isFunction(n)&&(r=n,n=""),r||(r=this[n]);var i=this;return e.history.route(t,function(o){var s=i._extractParameters(t,o);r&&r.apply(i,s),i.trigger.apply(i,["route:"+n].concat(s)),i.trigger("route",n,s),e.history.trigger("route",i,n,s)}),this},navigate:function(t,n){return e.history.navigate(t,n),this},_bindRoutes:function(){if(this.routes){this.routes=a.result(this,"routes");for(var e,t=a.keys(this.routes);null!=(e=t.pop());)this.route(e,this.routes[e])}},_routeToRegExp:function(e){return e=e.replace(A,"\\$&").replace(E,"(?:$1)?").replace(L,function(e,t){return t?e:"([^/]+)"}).replace(N,"(.*?)"),new RegExp("^"+e+"$")},_extractParameters:function(e,t){var n=e.exec(t).slice(1);return a.map(n,function(e){return e?decodeURIComponent(e):null})}});var D=e.History=function(){this.handlers=[],a.bindAll(this,"checkUrl"),"undefined"!=typeof window&&(this.location=window.location,this.history=window.history)},M=/^[#\/]|\s+$/g,I=/^\/+|\/+$/g,$=/msie [\w.]+/,O=/\/$/;D.started=!1,a.extend(D.prototype,l,{interval:50,getHash:function(e){var t=(e||this).location.href.match(/#(.*)$/);return t?t[1]:""},getFragment:function(e,t){if(null==e)if(this._hasPushState||!this._wantsHashChange||t){e=this.location.pathname;var n=this.root.replace(O,"");e.indexOf(n)||(e=e.substr(n.length))}else e=this.getHash();return e.replace(M,"")},start:function(t){if(D.started)throw new Error("Backbone.history has already been started");D.started=!0,this.options=a.extend({},{root:"/"},this.options,t),this.root=this.options.root,this._wantsHashChange=this.options.hashChange!==!1,this._wantsPushState=!!this.options.pushState,this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var n=this.getFragment(),r=document.documentMode,i=$.exec(navigator.userAgent.toLowerCase())&&(!r||7>=r);this.root=("/"+this.root+"/").replace(I,"/"),i&&this._wantsHashChange&&(this.iframe=e.$('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow,this.navigate(n)),this._hasPushState?e.$(window).on("popstate",this.checkUrl):this._wantsHashChange&&"onhashchange"in window&&!i?e.$(window).on("hashchange",this.checkUrl):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),this.fragment=n;var o=this.location,s=o.pathname.replace(/[^\/]$/,"$&/")===this.root;return this._wantsHashChange&&this._wantsPushState&&!this._hasPushState&&!s?(this.fragment=this.getFragment(null,!0),this.location.replace(this.root+this.location.search+"#"+this.fragment),!0):(this._wantsPushState&&this._hasPushState&&s&&o.hash&&(this.fragment=this.getHash().replace(M,""),this.history.replaceState({},document.title,this.root+this.fragment+o.search)),this.options.silent?void 0:this.loadUrl())},stop:function(){e.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl),clearInterval(this._checkUrlInterval),D.started=!1},route:function(e,t){this.handlers.unshift({route:e,callback:t})},checkUrl:function(){var e=this.getFragment();return e===this.fragment&&this.iframe&&(e=this.getFragment(this.getHash(this.iframe))),e===this.fragment?!1:(this.iframe&&this.navigate(e),this.loadUrl()||this.loadUrl(this.getHash()),void 0)},loadUrl:function(e){var t=this.fragment=this.getFragment(e),n=a.any(this.handlers,function(e){return e.route.test(t)?(e.callback(t),!0):void 0});return n},navigate:function(e,t){if(!D.started)return!1;if(t&&t!==!0||(t={trigger:t}),e=this.getFragment(e||""),this.fragment!==e){this.fragment=e;var n=this.root+e;if(this._hasPushState)this.history[t.replace?"replaceState":"pushState"]({},document.title,n);else{if(!this._wantsHashChange)return this.location.assign(n);this._updateHash(this.location,e,t.replace),this.iframe&&e!==this.getFragment(this.getHash(this.iframe))&&(t.replace||this.iframe.document.open().close(),this._updateHash(this.iframe.location,e,t.replace))}t.trigger&&this.loadUrl(e)}},_updateHash:function(e,t,n){if(n){var r=e.href.replace(/(javascript:|#).*$/,"");e.replace(r+"#"+t)}else e.hash="#"+t}}),e.history=new D;var P=function(e,t){var n,r=this;n=e&&a.has(e,"constructor")?e.constructor:function(){return r.apply(this,arguments)},a.extend(n,r,t);var i=function(){this.constructor=n};return i.prototype=r.prototype,n.prototype=new i,e&&a.extend(n.prototype,e),n.__super__=r.prototype,n};h.extend=g.extend=T.extend=x.extend=D.extend=P;var _=function(){throw new Error('A "url" property or function must be specified')},F=function(e,t){var n=t.error;t.error=function(r){n&&n(e,r,t),e.trigger("error",e,r,t)}}}.call(this),window.CodeMirror=function(){"use strict";function e(n,r){if(!(this instanceof e))return new e(n,r);this.options=r=r||{};for(var i in Ui)!r.hasOwnProperty(i)&&Ui.hasOwnProperty(i)&&(r[i]=Ui[i]);f(r);var o="string"==typeof r.value?0:r.value.first,s=this.display=t(n,o);s.wrapper.CodeMirror=this,c(this),r.autofocus&&!Ni&&ct(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,draggingText:!1,highlight:new jr},a(this),r.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap");var l=r.value;"string"==typeof l&&(l=new io(r.value,r.mode)),tt(this,lr)(this,l),mi&&setTimeout(Xr(lt,this,!0),20),dt(this);var u;try{u=document.activeElement==s.input}catch(d){}u||r.autofocus&&!Ni?setTimeout(Xr(Lt,this),20):Nt(this),tt(this,function(){for(var e in Vi)Vi.propertyIsEnumerable(e)&&Vi[e](this,r[e],qi);for(var t=0;Qi.length>t;++t)Qi[t](this)})()}function t(e,t){var n={},r=n.input=Yr("textarea",null,null,"position: absolute; padding: 0; width: 1px; height: 1em; outline: none;");bi?r.style.width="1000px":r.setAttribute("wrap","off"),Li&&(r.style.border="1px solid black"),r.setAttribute("autocorrect","off"),r.setAttribute("autocapitalize","off"),n.inputDiv=Yr("div",[r],null,"overflow: hidden; position: relative; width: 3px; height: 0px;"),n.scrollbarH=Yr("div",[Yr("div",null,null,"height: 1px")],"CodeMirror-hscrollbar"),n.scrollbarV=Yr("div",[Yr("div",null,null,"width: 1px")],"CodeMirror-vscrollbar"),n.scrollbarFiller=Yr("div",null,"CodeMirror-scrollbar-filler"),n.lineDiv=Yr("div"),n.selectionDiv=Yr("div",null,null,"position: relative; z-index: 1"),n.cursor=Yr("div","\u00a0","CodeMirror-cursor"),n.otherCursor=Yr("div","\u00a0","CodeMirror-cursor CodeMirror-secondarycursor"),n.measure=Yr("div",null,"CodeMirror-measure"),n.lineSpace=Yr("div",[n.measure,n.selectionDiv,n.lineDiv,n.cursor,n.otherCursor],null,"position: relative; outline: none"),n.mover=Yr("div",[Yr("div",[n.lineSpace],"CodeMirror-lines")],null,"position: relative"),n.sizer=Yr("div",[n.mover],"CodeMirror-sizer"),n.heightForcer=Yr("div",null,null,"position: absolute; height: "+co+"px; width: 1px;"),n.gutters=Yr("div",null,"CodeMirror-gutters"),n.lineGutter=null;var i=Yr("div",[n.sizer,n.heightForcer,n.gutters],null,"position: relative; min-height: 100%");return n.scroller=Yr("div",[i],"CodeMirror-scroll"),n.scroller.setAttribute("tabIndex","-1"),n.wrapper=Yr("div",[n.inputDiv,n.scrollbarH,n.scrollbarV,n.scrollbarFiller,n.scroller],"CodeMirror"),gi&&(n.gutters.style.zIndex=-1,n.scroller.style.paddingRight=0),e.appendChild?e.appendChild(n.wrapper):e(n.wrapper),Li&&(r.style.width="0px"),bi||(n.scroller.draggable=!0),Si?(n.inputDiv.style.height="1px",n.inputDiv.style.position="absolute"):gi&&(n.scrollbarH.style.minWidth=n.scrollbarV.style.minWidth="18px"),n.viewOffset=n.lastSizeC=0,n.showingFrom=n.showingTo=t,n.lineNumWidth=n.lineNumInnerWidth=n.lineNumChars=null,n.prevInput="",n.alignWidgets=!1,n.pollingFast=!1,n.poll=new jr,n.draggingText=!1,n.cachedCharWidth=n.cachedTextHeight=null,n.measureLineCache=[],n.measureLineCachePos=0,n.inaccurateSelection=!1,n.maxLine=null,n.maxLineLength=0,n.maxLineChanged=!1,n.wheelDX=n.wheelDY=n.wheelStartX=n.wheelStartY=null,n}function n(t){t.doc.mode=e.getMode(t.options,t.doc.modeOption),t.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),t.doc.frontier=t.doc.first,M(t,100),t.state.modeGen++,t.curOp&&it(t)}function r(e){e.options.lineWrapping?(e.display.wrapper.className+=" CodeMirror-wrap",e.display.sizer.style.minWidth=""):(e.display.wrapper.className=e.display.wrapper.className.replace(" CodeMirror-wrap",""),d(e)),o(e),it(e),z(e),setTimeout(function(){h(e.display,e.doc.height)},100)}function i(e){var t=Q(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/Y(e.display)-3);return function(i){return Fn(e.doc,i)?0:n?(Math.ceil(i.text.length/r)||1)*t:t}}function o(e){var t=e.doc,n=i(e);t.iter(function(e){var t=n(e);t!=e.height&&fr(e,t)})}function s(e){var t=Zi[e.options.keyMap].style;e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-keymap-\S+/g,"")+(t?" cm-keymap-"+t:"")}function a(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),z(e)}function l(e){c(e),it(e)}function c(e){var t=e.display.gutters,n=e.options.gutters;Zr(t);for(var r=0;n.length>r;++r){var i=n[r],o=t.appendChild(Yr("div",null,"CodeMirror-gutter "+i));"CodeMirror-linenumbers"==i&&(e.display.lineGutter=o,o.style.width=(e.display.lineNumWidth||1)+"px")}t.style.display=r?"":"none"}function u(e,t){if(0==t.height)return 0;for(var n,r=t.text.length,i=t;n=On(i);){var o=n.find();i=cr(e,o.from.line),r+=o.from.ch-o.to.ch}for(i=t;n=Pn(i);){var o=n.find();r-=i.text.length-o.from.ch,i=cr(e,o.to.line),r+=i.text.length-o.to.ch}return r}function d(e){var t=e.display,n=e.doc;t.maxLine=cr(n,n.first),t.maxLineLength=u(n,t.maxLine),t.maxLineChanged=!0,n.iter(function(e){var r=u(n,e);r>t.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)})}function f(e){for(var t=!1,n=0;e.gutters.length>n;++n)"CodeMirror-linenumbers"==e.gutters[n]&&(e.lineNumbers?t=!0:e.gutters.splice(n--,1));!t&&e.lineNumbers&&e.gutters.push("CodeMirror-linenumbers")}function h(e,t){var n=t+_(e);e.sizer.style.minHeight=e.heightForcer.style.top=n+"px";var r=Math.max(n,e.scroller.scrollHeight),i=e.scroller.scrollWidth>e.scroller.clientWidth,o=r>e.scroller.clientHeight;o?(e.scrollbarV.style.display="block",e.scrollbarV.style.bottom=i?ri(e.measure)+"px":"0",e.scrollbarV.firstChild.style.height=r-e.scroller.clientHeight+e.scrollbarV.clientHeight+"px"):e.scrollbarV.style.display="",i?(e.scrollbarH.style.display="block",e.scrollbarH.style.right=o?ri(e.measure)+"px":"0",e.scrollbarH.firstChild.style.width=e.scroller.scrollWidth-e.scroller.clientWidth+e.scrollbarH.clientWidth+"px"):e.scrollbarH.style.display="",i&&o?(e.scrollbarFiller.style.display="block",e.scrollbarFiller.style.height=e.scrollbarFiller.style.width=ri(e.measure)+"px"):e.scrollbarFiller.style.display="",ki&&0===ri(e.measure)&&(e.scrollbarV.style.minWidth=e.scrollbarH.style.minHeight=Ti?"18px":"12px")}function p(e,t,n){var r=e.scroller.scrollTop,i=e.wrapper.clientHeight;"number"==typeof n?r=n:n&&(r=n.top,i=n.bottom-n.top),r=Math.floor(r-P(e));var o=Math.ceil(r+i);return{from:pr(t,r),to:pr(t,o)}}function m(e){var t=e.display;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=b(t)-t.scroller.scrollLeft+e.doc.scrollLeft,r=t.gutters.offsetWidth,i=n+"px",o=t.lineDiv.firstChild;o;o=o.nextSibling)if(o.alignable)for(var s=0,a=o.alignable;a.length>s;++s)a[s].style.left=i;e.options.fixedGutter&&(t.gutters.style.left=n+r+"px")}}function g(e){if(!e.options.lineNumbers)return!1;var t=e.doc,n=v(e.options,t.first+t.size-1),r=e.display;if(n.length!=r.lineNumChars){var i=r.measure.appendChild(Yr("div",[Yr("div",n)],"CodeMirror-linenumber CodeMirror-gutter-elt")),o=i.firstChild.offsetWidth,s=i.offsetWidth-o;return r.lineGutter.style.width="",r.lineNumInnerWidth=Math.max(o,r.lineGutter.offsetWidth-s),r.lineNumWidth=r.lineNumInnerWidth+s,r.lineNumChars=r.lineNumInnerWidth?n.length:-1,r.lineGutter.style.width=r.lineNumWidth+"px",!0}return!1}function v(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function b(e){return ni(e.scroller).left-ni(e.sizer).left}function y(e,t,n){var r=e.display.showingFrom,i=e.display.showingTo,o=w(e,t,n);return o&&(Fr(e,"update",e),(e.display.showingFrom!=r||e.display.showingTo!=i)&&Fr(e,"viewportChange",e,e.display.showingFrom,e.display.showingTo)),L(e),h(e.display,e.doc.height),o}function w(e,t,n){var r=e.display,i=e.doc;if(!r.wrapper.clientWidth)return r.showingFrom=r.showingTo=i.first,r.viewOffset=0,void 0;var o=p(r,i,n);if(!(0==t.length&&o.from>r.showingFrom&&o.to<r.showingTo)){g(e)&&(t=[{from:i.first,to:i.first+i.size}]);var s=r.sizer.style.marginLeft=r.gutters.offsetWidth+"px";r.scrollbarH.style.left=e.options.fixedGutter?s:"0";var a=1/0;if(e.options.lineNumbers)for(var l=0;t.length>l;++l)if(t[l].diff){a=t[l].from;break}var c=i.first+i.size,u=Math.max(o.from-e.options.viewportMargin,i.first),d=Math.min(c,o.to+e.options.viewportMargin);if(u>r.showingFrom&&20>u-r.showingFrom&&(u=Math.max(i.first,r.showingFrom)),r.showingTo>d&&20>r.showingTo-d&&(d=Math.min(c,r.showingTo)),Hi)for(u=hr(_n(i,cr(i,u)));c>d&&Fn(i,cr(i,d));)++d;var f=[{from:Math.max(r.showingFrom,i.first),to:Math.min(r.showingTo,c)}];if(f=f[0].from>=f[0].to?[]:C(f,t),Hi)for(var l=0;f.length>l;++l)for(var h,m=f[l];h=Pn(cr(i,m.to-1));){var v=h.find().from.line;if(!(v>m.from)){f.splice(l--,1);break}m.to=v}for(var b=0,l=0;f.length>l;++l){var m=f[l];u>m.from&&(m.from=u),m.to>d&&(m.to=d),m.from>=m.to?f.splice(l--,1):b+=m.to-m.from}if(b==d-u&&u==r.showingFrom&&d==r.showingTo)return x(e),void 0;f.sort(function(e,t){return e.from-t.from});var y=document.activeElement;.7*(d-u)>b&&(r.lineDiv.style.display="none"),k(e,u,d,f,a),r.lineDiv.style.display="",document.activeElement!=y&&y.offsetHeight&&y.focus();var S=u!=r.showingFrom||d!=r.showingTo||r.lastSizeC!=r.wrapper.clientHeight;S&&(r.lastSizeC=r.wrapper.clientHeight),r.showingFrom=u,r.showingTo=d,M(e,100);for(var T,E=r.lineDiv.offsetTop,L=r.lineDiv.firstChild;L;L=L.nextSibling)if(L.lineObj){if(gi){var N=L.offsetTop+L.offsetHeight;T=N-E,E=N}else{var A=ni(L);T=A.bottom-A.top}var D=L.lineObj.height-T;if(2>T&&(T=Q(r)),D>.001||-.001>D){fr(L.lineObj,T);var I=L.lineObj.widgets;if(I)for(var l=0;I.length>l;++l)I[l].height=I[l].node.offsetHeight}}return x(e),p(r,i,n).to>d&&w(e,[],n),!0}}function x(e){var t=e.display.viewOffset=mr(e,cr(e.doc,e.display.showingFrom));e.display.mover.style.top=t+"px"}function C(e,t){for(var n=0,r=t.length||0;r>n;++n){for(var i=t[n],o=[],s=i.diff||0,a=0,l=e.length;l>a;++a){var c=e[a];i.to<=c.from&&i.diff?o.push({from:c.from+s,to:c.to+s}):i.to<=c.from||i.from>=c.to?o.push(c):(i.from>c.from&&o.push({from:c.from,to:i.from}),i.to<c.to&&o.push({from:i.to+s,to:c.to+s}))}e=o}return e}function S(e){for(var t=e.display,n={},r={},i=t.gutters.firstChild,o=0;i;i=i.nextSibling,++o)n[e.options.gutters[o]]=i.offsetLeft,r[e.options.gutters[o]]=i.offsetWidth;return{fixedPos:b(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function k(e,t,n,r,i){function o(t){var n=t.nextSibling;return bi&&Ai&&e.display.currentWheelTarget==t?(t.style.display="none",t.lineObj=null):t.parentNode.removeChild(t),n}var s=S(e),a=e.display,l=e.options.lineNumbers;r.length||bi&&e.display.currentWheelTarget||Zr(a.lineDiv);var c=a.lineDiv,u=c.firstChild,d=r.shift(),f=t;for(e.doc.iter(t,n,function(t){if(d&&d.to==f&&(d=r.shift()),Fn(e.doc,t)){if(0!=t.height&&fr(t,0),t.widgets&&u.previousSibling)for(var n=0;t.widgets.length>n;++n)if(t.widgets[n].showIfHidden){var a=u.previousSibling;if(/pre/i.test(a.nodeName)){var h=Yr("div",null,null,"position: relative");a.parentNode.replaceChild(h,a),h.appendChild(a),a=h}var p=a.appendChild(Yr("div",[t.widgets[n].node],"CodeMirror-linewidget"));E(t.widgets[n],p,a,s)}}else if(d&&f>=d.from&&d.to>f){for(;u.lineObj!=t;)u=o(u);l&&f>=i&&u.lineNumber&&ti(u.lineNumber,v(e.options,f)),u=u.nextSibling}else{if(t.widgets)for(var m,g=0,b=u;b&&20>g;++g,b=b.nextSibling)if(b.lineObj==t&&/div/i.test(b.nodeName)){m=b;break}var y=T(e,t,f,s,m);if(y!=m)c.insertBefore(y,u);else{for(;u!=m;)u=o(u);u=u.nextSibling}y.lineObj=t}++f});u;)u=o(u)}function T(e,t,n,r,i){var o,s=Yn(e,t),a=t.gutterMarkers,l=e.display;if(!(e.options.lineNumbers||a||t.bgClass||t.wrapClass||t.widgets))return s;if(i){i.alignable=null;for(var c,u=!0,d=0,f=i.firstChild;f;f=c)if(c=f.nextSibling,/\bCodeMirror-linewidget\b/.test(f.className)){for(var h=0,p=!0;t.widgets.length>h;++h){var m=t.widgets[h],g=!1;if(m.above||(g=p,p=!1),m.node==f.firstChild){E(m,f,i,r),++d,g&&i.insertBefore(s,f);break}}if(h==t.widgets.length){u=!1;break}}else i.removeChild(f);u&&d==t.widgets.length&&(o=i,i.className=t.wrapClass||"")}if(o||(o=Yr("div",null,t.wrapClass,"position: relative"),o.appendChild(s)),t.bgClass&&o.insertBefore(Yr("div",null,t.bgClass+" CodeMirror-linebackground"),o.firstChild),e.options.lineNumbers||a){var b=o.insertBefore(Yr("div",null,null,"position: absolute; left: "+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+"px"),o.firstChild);
if(e.options.fixedGutter&&(o.alignable||(o.alignable=[])).push(b),!e.options.lineNumbers||a&&a["CodeMirror-linenumbers"]||(o.lineNumber=b.appendChild(Yr("div",v(e.options,n),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+r.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+l.lineNumInnerWidth+"px"))),a)for(var y=0;e.options.gutters.length>y;++y){var w=e.options.gutters[y],x=a.hasOwnProperty(w)&&a[w];x&&b.appendChild(Yr("div",[x],"CodeMirror-gutter-elt","left: "+r.gutterLeft[w]+"px; width: "+r.gutterWidth[w]+"px"))}}if(gi&&(o.style.zIndex=2),t.widgets&&o!=i)for(var h=0,C=t.widgets;C.length>h;++h){var m=C[h],S=Yr("div",[m.node],"CodeMirror-linewidget");E(m,S,o,r),m.above?o.insertBefore(S,e.options.lineNumbers&&0!=t.height?b:s):o.appendChild(S),Fr(m,"redraw")}return o}function E(e,t,n,r){if(e.noHScroll){(n.alignable||(n.alignable=[])).push(t);var i=r.wrapperWidth;t.style.left=r.fixedPos+"px",e.coverGutter||(i-=r.gutterTotalWidth,t.style.paddingLeft=r.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-r.gutterTotalWidth+"px"))}function L(e){var t=e.display,n=Rt(e.doc.sel.from,e.doc.sel.to);n||e.options.showCursorWhenSelecting?N(e):t.cursor.style.display=t.otherCursor.style.display="none",n?t.selectionDiv.style.display="none":A(e);var r=q(e,e.doc.sel.head,"div"),i=ni(t.wrapper),o=ni(t.lineDiv);t.inputDiv.style.top=Math.max(0,Math.min(t.wrapper.clientHeight-10,r.top+o.top-i.top))+"px",t.inputDiv.style.left=Math.max(0,Math.min(t.wrapper.clientWidth-10,r.left+o.left-i.left))+"px"}function N(e){var t=e.display,n=q(e,e.doc.sel.head,"div");t.cursor.style.left=n.left+"px",t.cursor.style.top=n.top+"px",t.cursor.style.height=Math.max(0,n.bottom-n.top)*e.options.cursorHeight+"px",t.cursor.style.display="",n.other?(t.otherCursor.style.display="",t.otherCursor.style.left=n.other.left+"px",t.otherCursor.style.top=n.other.top+"px",t.otherCursor.style.height=.85*(n.other.bottom-n.other.top)+"px"):t.otherCursor.style.display="none"}function A(e){function t(e,t,n,r){0>t&&(t=0),s.appendChild(Yr("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px; top: "+t+"px; width: "+(null==n?a-e:n)+"px; height: "+(r-t)+"px"))}function n(n,r,o,s){function c(t){return U(e,Bt(n,t),"div",u)}var u=cr(i,n),d=u.text.length,f=s?1/0:-1/0;return oi(gr(u),r||0,null==o?d:o,function(e,n,i){var u=c("rtl"==i?n-1:e),h=c("rtl"==i?e:n-1),p=u.left,m=h.right;h.top-u.top>3&&(t(p,u.top,null,u.bottom),p=l,u.bottom<h.top&&t(p,u.bottom,null,h.top)),null==o&&n==d&&(m=a),null==r&&0==e&&(p=l),f=s?Math.min(h.top,f):Math.max(h.bottom,f),l+1>p&&(p=l),t(p,h.top,m-p,h.bottom)}),f}var r=e.display,i=e.doc,o=e.doc.sel,s=document.createDocumentFragment(),a=r.lineSpace.offsetWidth,l=F(e.display);if(o.from.line==o.to.line)n(o.from.line,o.from.ch,o.to.ch);else{for(var c,u,d=cr(i,o.from.line),f=d,h=[o.from.line,o.from.ch];c=Pn(f);){var p=c.find();if(h.push(p.from.ch,p.to.line,p.to.ch),p.to.line==o.to.line){h.push(o.to.ch),u=!0;break}f=cr(i,p.to.line)}if(u)for(var m=0;h.length>m;m+=3)n(h[m],h[m+1],h[m+2]);else{var g,v,b=cr(i,o.to.line);g=o.from.ch?n(o.from.line,o.from.ch,null,!1):mr(e,d)-r.viewOffset,v=o.to.ch?n(o.to.line,On(b)?null:0,o.to.ch,!0):mr(e,b)-r.viewOffset,v>g&&t(l,g,null,v)}}ei(r.selectionDiv,s),r.selectionDiv.style.display=""}function D(e){var t=e.display;clearInterval(t.blinker);var n=!0;t.cursor.style.visibility=t.otherCursor.style.visibility="",t.blinker=setInterval(function(){t.cursor.offsetHeight&&(t.cursor.style.visibility=t.otherCursor.style.visibility=(n=!n)?"":"hidden")},e.options.cursorBlinkRate)}function M(e,t){e.doc.mode.startState&&e.doc.frontier<e.display.showingTo&&e.state.highlight.set(t,Xr(I,e))}function I(e){var t=e.doc;if(t.frontier<t.first&&(t.frontier=t.first),!(t.frontier>=e.display.showingTo)){var n,r=+new Date+e.options.workTime,i=pn(t.mode,O(e,t.frontier)),o=[];t.iter(t.frontier,Math.min(t.first+t.size,e.display.showingTo+500),function(s){if(t.frontier>=e.display.showingFrom){var a=s.styles;s.styles=Kn(e,s,i);for(var l=!a||a.length!=s.styles.length,c=0;!l&&a.length>c;++c)l=a[c]!=s.styles[c];l&&(n&&n.end==t.frontier?n.end++:o.push(n={start:t.frontier,end:t.frontier+1})),s.stateAfter=pn(t.mode,i)}else Jn(e,s,i),s.stateAfter=0==t.frontier%5?pn(t.mode,i):null;return++t.frontier,+new Date>r?(M(e,e.options.workDelay),!0):void 0}),o.length&&tt(e,function(){for(var e=0;o.length>e;++e)it(this,o[e].start,o[e].end)})()}}function $(e,t){for(var n,r,i=e.doc,o=t,s=t-100;o>s;--o){if(i.first>=o)return i.first;var a=cr(i,o-1);if(a.stateAfter)return o;var l=Br(a.text,null,e.options.tabSize);(null==r||n>l)&&(r=o-1,n=l)}return r}function O(e,t){var n=e.doc,r=e.display;if(!n.mode.startState)return!0;var i=$(e,t),o=i>n.first&&cr(n,i-1).stateAfter;return o=o?pn(n.mode,o):mn(n.mode),n.iter(i,t,function(s){Jn(e,s,o);var a=i==t-1||0==i%5||i>=r.showingFrom&&r.showingTo>i;s.stateAfter=a?pn(n.mode,o):null,++i}),o}function P(e){return e.lineSpace.offsetTop}function _(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function F(e){var t=ei(e.measure,Yr("pre",null,null,"text-align: left")).appendChild(Yr("span","x"));return t.offsetLeft}function H(e,t,n,r){var i=-1;r=r||j(e,t);for(var o=n;;o+=i){var s=r[o];if(s)break;0>i&&0==o&&(i=1)}return{left:n>o?s.right:s.left,right:o>n?s.left:s.right,top:s.top,bottom:s.bottom}}function G(e,t){for(var n=e.display.measureLineCache,r=0;n.length>r;++r){var i=n[r];if(i.text==t.text&&i.markedSpans==t.markedSpans&&e.display.scroller.clientWidth==i.width&&i.classes==t.textClass+"|"+t.bgClass+"|"+t.wrapClass)return i.measure}}function j(e,t){var n=G(e,t);if(!n){n=B(e,t);var r=e.display.measureLineCache,i={text:t.text,width:e.display.scroller.clientWidth,markedSpans:t.markedSpans,measure:n,classes:t.textClass+"|"+t.bgClass+"|"+t.wrapClass};16==r.length?r[++e.display.measureLineCachePos%16]=i:r.push(i)}return n}function B(e,t){var n=e.display,r=Kr(t.text.length),i=Yn(e,t,r);if(mi&&!gi&&!e.options.lineWrapping&&i.childNodes.length>100){for(var o=document.createDocumentFragment(),s=10,a=i.childNodes.length,l=0,c=Math.ceil(a/s);c>l;++l){for(var u=Yr("div",null,null,"display: inline-block"),d=0;s>d&&a;++d)u.appendChild(i.firstChild),--a;o.appendChild(u)}i.appendChild(o)}ei(n.measure,i);var f=ni(n.lineDiv),h=[],p=Kr(t.text.length),m=i.offsetHeight;vi&&n.measure.first!=i&&ei(n.measure,i);for(var g,l=0;r.length>l;++l)if(g=r[l]){for(var v=ni(g),b=Math.max(0,v.top-f.top),y=Math.min(v.bottom-f.top,m),d=0;h.length>d;d+=2){var w=h[d],x=h[d+1];if(!(w>y||b>x)&&(b>=w&&x>=y||w>=b&&y>=x||Math.min(y,x)-Math.max(b,w)>=y-b>>1)){h[d]=Math.min(b,w),h[d+1]=Math.max(y,x);break}}d==h.length&&h.push(b,y);var C=v.right;g.measureRight&&(C=ni(g.measureRight).left),p[l]={left:v.left-f.left,right:C-f.left,top:d}}for(var g,l=0;p.length>l;++l)if(g=p[l]){var S=g.top;g.top=h[S],g.bottom=h[S+1]}return p}function R(e,t){var n=!1;if(t.markedSpans)for(var r=0;t.markedSpans>r;++r){var i=t.markedSpans[r];!i.collapsed||null!=i.to&&i.to!=t.text.length||(n=!0)}var o=!n&&G(e,t);if(o)return H(e,t,t.text.length,o).right;var s=Yn(e,t),a=s.appendChild(ii(e.display.measure));return ei(e.display.measure,s),ni(a).right-ni(e.display.lineDiv).left}function z(e){e.display.measureLineCache.length=e.display.measureLineCachePos=0,e.display.cachedCharWidth=e.display.cachedTextHeight=null,e.display.maxLineChanged=!0,e.display.lineNumChars=null}function W(e,t,n,r){if(t.widgets)for(var i=0;t.widgets.length>i;++i)if(t.widgets[i].above){var o=Rn(t.widgets[i]);n.top+=o,n.bottom+=o}if("line"==r)return n;r||(r="local");var s=mr(e,t);if("local"!=r&&(s-=e.display.viewOffset),"page"==r){var a=ni(e.display.lineSpace);s+=a.top+(window.pageYOffset||(document.documentElement||document.body).scrollTop);var l=a.left+(window.pageXOffset||(document.documentElement||document.body).scrollLeft);n.left+=l,n.right+=l}return n.top+=s,n.bottom+=s,n}function V(e,t,n){if("div"==n)return t;var r=t.left,i=t.top;"page"==n&&(r-=window.pageXOffset||(document.documentElement||document.body).scrollLeft,i-=window.pageYOffset||(document.documentElement||document.body).scrollTop);var o=ni(e.display.lineSpace);if(r-=o.left,i-=o.top,"local"==n||!n){var s=ni(e.display.wrapper);r-=s.left,i-=s.top}return{left:r,top:i}}function U(e,t,n,r){return r||(r=cr(e.doc,t.line)),W(e,r,H(e,r,t.ch),n)}function q(e,t,n,r,i){function o(t,o){var s=H(e,r,t,i);return o?s.left=s.right:s.right=s.left,W(e,r,s,n)}r=r||cr(e.doc,t.line),i||(i=j(e,r));var s=gr(r),a=t.ch;if(!s)return o(a);for(var l,c,u=s[0].level,d=0;s.length>d;++d){var f,h,p=s[d],m=p.level%2;if(a>p.from&&p.to>a)return o(a,m);var g=m?p.to:p.from,v=m?p.from:p.to;if(g==a)h=d&&p.level<(f=s[d-1]).level?o(f.level%2?f.from:f.to-1,!0):o(m&&p.from!=p.to?a-1:a),m==u?l=h:c=h;else if(v==a){var f=s.length-1>d&&s[d+1];if(!m&&f&&f.from==f.to)continue;h=f&&p.level<f.level?o(f.level%2?f.to-1:f.from):o(m?a:a-1,!0),m==u?l=h:c=h}}return u&&!a&&(c=o(s[0].to-1)),l?(c&&(l.other=c),l):c}function K(e,t,n){var r=new Bt(e,t);return n&&(r.outside=!0),r}function X(e,t,n){var r=e.doc;if(n+=e.display.viewOffset,0>n)return K(r.first,0,!0);var i=pr(r,n),o=r.first+r.size-1;if(i>o)return K(r.first+r.size-1,cr(r,o).text.length,!0);for(0>t&&(t=0);;){var s=cr(r,i),a=J(e,s,i,t,n),l=Pn(s),c=l&&l.find();if(!(l&&a.ch>=c.from.ch))return a;i=c.to.line}}function J(e,t,n,r,i){function o(r){var i=q(e,Bt(n,r),"line",t,c);return a=!0,s>i.bottom?i.left-l:i.top>s?i.left+l:(a=!1,i.left)}var s=i-mr(e,t),a=!1,l=2*e.display.wrapper.clientWidth,c=j(e,t),u=gr(t),d=t.text.length,f=li(t),h=ci(t),p=o(f),m=a,g=o(h),v=a;if(r>g)return K(n,h,v);for(;;){if(u?h==f||h==fi(t,f,1):1>=h-f){for(var b=g-r>r-p,y=b?f:h;po.test(t.text.charAt(y));)++y;var w=K(n,y,b?m:v);return w.after=b,w}var x=Math.ceil(d/2),C=f+x;if(u){C=f;for(var S=0;x>S;++S)C=fi(t,C,1)}var k=o(C);k>r?(h=C,g=k,(v=a)&&(g+=1e3),d-=x):(f=C,p=k,m=a,d=x)}}function Q(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Ii){Ii=Yr("pre");for(var t=0;49>t;++t)Ii.appendChild(document.createTextNode("x")),Ii.appendChild(Yr("br"));Ii.appendChild(document.createTextNode("x"))}ei(e.measure,Ii);var n=Ii.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),Zr(e.measure),n||1}function Y(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=Yr("span","x"),n=Yr("pre",[t]);ei(e.measure,n);var r=t.offsetWidth;return r>2&&(e.cachedCharWidth=r),r||10}function Z(e){e.curOp={changes:[],updateInput:null,userSelChange:null,textChanged:null,selectionChanged:!1,updateMaxLine:!1,updateScrollPos:!1,id:++Gi},lo++||(ao=[])}function et(e){var t=e.curOp,n=e.doc,r=e.display;if(e.curOp=null,t.updateMaxLine&&d(e),r.maxLineChanged&&!e.options.lineWrapping){var i=R(e,r.maxLine);r.sizer.style.minWidth=Math.max(0,i+3+co)+"px",r.maxLineChanged=!1;var o=Math.max(0,r.sizer.offsetLeft+r.sizer.offsetWidth-r.scroller.clientWidth);n.scrollLeft>o&&!t.updateScrollPos&&yt(e,Math.min(r.scroller.scrollLeft,o),!0)}var s,a;if(t.updateScrollPos)s=t.updateScrollPos;else if(t.selectionChanged&&r.scroller.clientHeight){var l=q(e,n.sel.head);s=rn(e,l.left,l.top,l.left,l.bottom)}(t.changes.length||s&&null!=s.scrollTop)&&(a=y(e,t.changes,s&&s.scrollTop),e.display.scroller.offsetHeight&&(e.doc.scrollTop=e.display.scroller.scrollTop)),!a&&t.selectionChanged&&L(e),t.updateScrollPos?(r.scroller.scrollTop=r.scrollbarV.scrollTop=n.scrollTop=s.scrollTop,r.scroller.scrollLeft=r.scrollbarH.scrollLeft=n.scrollLeft=s.scrollLeft,m(e)):s&&en(e),t.selectionChanged&&D(e),e.state.focused&&t.updateInput&&lt(e,t.userSelChange);var c=t.maybeHiddenMarkers,u=t.maybeUnhiddenMarkers;if(c)for(var f=0;c.length>f;++f)c[f].lines.length||_r(c[f],"hide");if(u)for(var f=0;u.length>f;++f)u[f].lines.length&&_r(u[f],"unhide");var h;if(--lo||(h=ao,ao=null),t.textChanged&&_r(e,"change",e,t.textChanged),t.selectionChanged&&_r(e,"cursorActivity",e),h)for(var f=0;h.length>f;++f)h[f]()}function tt(e,t){return function(){var n=e||this,r=!n.curOp;r&&Z(n);try{var i=t.apply(n,arguments)}finally{r&&et(n)}return i}}function nt(e){return function(){var t,n=this.cm&&!this.cm.curOp;n&&Z(this.cm);try{t=e.apply(this,arguments)}finally{n&&et(this.cm)}return t}}function rt(e,t){var n,r=!e.curOp;r&&Z(e);try{n=t()}finally{r&&et(e)}return n}function it(e,t,n,r){null==t&&(t=e.doc.first),null==n&&(n=e.doc.first+e.doc.size),e.curOp.changes.push({from:t,to:n,diff:r})}function ot(e){e.display.pollingFast||e.display.poll.set(e.options.pollInterval,function(){at(e),e.state.focused&&ot(e)})}function st(e){function t(){var r=at(e);r||n?(e.display.pollingFast=!1,ot(e)):(n=!0,e.display.poll.set(60,t))}var n=!1;e.display.pollingFast=!0,e.display.poll.set(20,t)}function at(e){var t=e.display.input,n=e.display.prevInput,r=e.doc,i=r.sel;if(!e.state.focused||wo(t)||ut(e))return!1;var o=t.value;if(o==n&&Rt(i.from,i.to))return!1;if(mi&&o&&0===t.selectionStart)return lt(e,!0),!1;var s=!e.curOp;s&&Z(e),i.shift=!1;for(var a=0,l=Math.min(n.length,o.length);l>a&&n[a]==o[a];)++a;var c=i.from,u=i.to;n.length>a?c=Bt(c.line,c.ch-(n.length-a)):e.state.overwrite&&Rt(c,u)&&!e.state.pasteIncoming&&(u=Bt(u.line,Math.min(cr(r,u.line).text.length,u.ch+(o.length-a))));var d=e.curOp.updateInput;return Ot(e.doc,{from:c,to:u,text:yo(o.slice(a)),origin:e.state.pasteIncoming?"paste":"+input"},"end"),e.curOp.updateInput=d,o.length>1e3||o.indexOf("\n")>-1?t.value=e.display.prevInput="":e.display.prevInput=o,s&&et(e),e.state.pasteIncoming=!1,!0}function lt(e,t){var n,r,i=e.doc;Rt(i.sel.from,i.sel.to)?t&&(e.display.prevInput=e.display.input.value=""):(e.display.prevInput="",n=xo&&(i.sel.to.line-i.sel.from.line>100||(r=e.getSelection()).length>1e3),e.display.input.value=n?"-":r||e.getSelection(),e.state.focused&&Wr(e.display.input)),e.display.inaccurateSelection=n}function ct(e){"nocursor"==e.options.readOnly||Ni&&document.activeElement==e.display.input||e.display.input.focus()}function ut(e){return e.options.readOnly||e.doc.cantEdit}function dt(e){function t(){e.state.focused&&setTimeout(Xr(ct,e),0)}function n(){s.cachedCharWidth=s.cachedTextHeight=null,z(e),rt(e,Xr(it,e))}function r(){for(var e=s.wrapper.parentNode;e&&e!=document.body;e=e.parentNode);e?setTimeout(r,5e3):Pr(window,"resize",n)}function i(t){e.options.onDragEvent&&e.options.onDragEvent(e,Nr(t))||Mr(t)}function o(){s.inaccurateSelection&&(s.prevInput="",s.inaccurateSelection=!1,s.input.value=e.getSelection(),Wr(s.input))}var s=e.display;Or(s.scroller,"mousedown",tt(e,pt)),Or(s.scroller,"dblclick",tt(e,Ar)),Or(s.lineSpace,"selectstart",function(e){ft(s,e)||Ar(e)}),_i||Or(s.scroller,"contextmenu",function(t){At(e,t)}),Or(s.scroller,"scroll",function(){s.scroller.clientHeight&&(bt(e,s.scroller.scrollTop),yt(e,s.scroller.scrollLeft,!0),_r(e,"scroll",e))}),Or(s.scrollbarV,"scroll",function(){s.scroller.clientHeight&&bt(e,s.scrollbarV.scrollTop)}),Or(s.scrollbarH,"scroll",function(){s.scroller.clientHeight&&yt(e,s.scrollbarH.scrollLeft)}),Or(s.scroller,"mousewheel",function(t){wt(e,t)}),Or(s.scroller,"DOMMouseScroll",function(t){wt(e,t)}),Or(s.scrollbarH,"mousedown",t),Or(s.scrollbarV,"mousedown",t),Or(s.wrapper,"scroll",function(){s.wrapper.scrollTop=s.wrapper.scrollLeft=0}),Or(window,"resize",n),setTimeout(r,5e3),Or(s.input,"keyup",tt(e,function(t){e.options.onKeyEvent&&e.options.onKeyEvent(e,Nr(t))||16==t.keyCode&&(e.doc.sel.shift=!1)})),Or(s.input,"input",Xr(st,e)),Or(s.input,"keydown",tt(e,Tt)),Or(s.input,"keypress",tt(e,Et)),Or(s.input,"focus",Xr(Lt,e)),Or(s.input,"blur",Xr(Nt,e)),e.options.dragDrop&&(Or(s.scroller,"dragstart",function(t){vt(e,t)}),Or(s.scroller,"dragenter",i),Or(s.scroller,"dragover",i),Or(s.scroller,"drop",tt(e,mt))),Or(s.scroller,"paste",function(t){ft(s,t)||(ct(e),st(e))}),Or(s.input,"paste",function(){e.state.pasteIncoming=!0,st(e)}),Or(s.input,"cut",o),Or(s.input,"copy",o),Si&&Or(s.sizer,"mouseup",function(){document.activeElement==s.input&&s.input.blur(),ct(e)})}function ft(e,t){for(var n=Ir(t);n!=e.wrapper;n=n.parentNode){if(!n)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(n.className)||n.parentNode==e.sizer&&n!=e.mover)return!0}}function ht(e,t,n){var r=e.display;if(!n){var i=Ir(t);if(i==r.scrollbarH||i==r.scrollbarH.firstChild||i==r.scrollbarV||i==r.scrollbarV.firstChild||i==r.scrollbarFiller)return null}var o,s,a=ni(r.lineSpace);try{o=t.clientX,s=t.clientY}catch(t){return null}return X(e,o-a.left,s-a.top)}function pt(e){function t(e){if("single"==u)return Xt(i.doc,Ut(s,l),e),void 0;if(m=Ut(s,m),g=Ut(s,g),"double"==u){var t=dn(cr(s,e.line).text,e);zt(e,m)?Xt(i.doc,t.from,g):Xt(i.doc,m,t.to)}else"triple"==u&&(zt(e,m)?Xt(i.doc,g,Ut(s,Bt(e.line,0))):Xt(i.doc,m,Ut(s,Bt(e.line+1,0))))}function n(e){var r=++b,a=ht(i,e,!0);if(a)if(Rt(a,f)){var l=e.clientY<v.top?-20:e.clientY>v.bottom?20:0;l&&setTimeout(tt(i,function(){b==r&&(o.scroller.scrollTop+=l,n(e))}),50)}else{i.state.focused||Lt(i),f=a,t(a);var c=p(o,s);(a.line>=c.to||a.line<c.from)&&setTimeout(tt(i,function(){b==r&&n(e)}),150)}}function r(e){b=1/0;var n=ht(i,e);n&&t(n),Ar(e),ct(i),Pr(document,"mousemove",y),Pr(document,"mouseup",w)}var i=this,o=i.display,s=i.doc,a=s.sel;if(a.shift=e.shiftKey,ft(o,e))return bi||(o.scroller.draggable=!1,setTimeout(function(){o.scroller.draggable=!0},100)),void 0;if(!gt(i,e)){var l=ht(i,e);switch($r(e)){case 3:return _i&&At.call(i,i,e),void 0;case 2:return l&&Xt(i.doc,l),setTimeout(Xr(ct,i),20),Ar(e),void 0}if(!l)return Ir(e)==o.scroller&&Ar(e),void 0;i.state.focused||Lt(i);var c=+new Date,u="single";if(Oi&&Oi.time>c-400&&Rt(Oi.pos,l))u="triple",Ar(e),setTimeout(Xr(ct,i),20),fn(i,l.line);else if($i&&$i.time>c-400&&Rt($i.pos,l)){u="double",Oi={time:c,pos:l},Ar(e);var d=dn(cr(s,l.line).text,l);Xt(i.doc,d.from,d.to)}else $i={time:c,pos:l};var f=l;if(i.options.dragDrop&&mo&&!ut(i)&&!Rt(a.from,a.to)&&!zt(l,a.from)&&!zt(a.to,l)&&"single"==u){var h=tt(i,function(t){bi&&(o.scroller.draggable=!1),i.state.draggingText=!1,Pr(document,"mouseup",h),Pr(o.scroller,"drop",h),10>Math.abs(e.clientX-t.clientX)+Math.abs(e.clientY-t.clientY)&&(Ar(t),Xt(i.doc,l),ct(i))});return bi&&(o.scroller.draggable=!0),i.state.draggingText=h,o.scroller.dragDrop&&o.scroller.dragDrop(),Or(document,"mouseup",h),Or(o.scroller,"drop",h),void 0}Ar(e),"single"==u&&Xt(i.doc,Ut(s,l));var m=a.from,g=a.to,v=ni(o.wrapper),b=0,y=tt(i,function(e){mi||$r(e)?n(e):r(e)}),w=tt(i,r);Or(document,"mousemove",y),Or(document,"mouseup",w)}}function mt(e){var t=this;if(!(ft(t.display,e)||t.options.onDragEvent&&t.options.onDragEvent(t,Nr(e)))){Ar(e);var n=ht(t,e,!0),r=e.dataTransfer.files;if(n&&!ut(t))if(r&&r.length&&window.FileReader&&window.File)for(var i=r.length,o=Array(i),s=0,a=function(e,r){var a=new FileReader;a.onload=function(){o[r]=a.result,++s==i&&(n=Ut(t.doc,n),Ot(t.doc,{from:n,to:n,text:yo(o.join("\n")),origin:"paste"},"around"))},a.readAsText(e)},l=0;i>l;++l)a(r[l],l);else{if(t.state.draggingText&&!zt(n,t.doc.sel.from)&&!zt(t.doc.sel.to,n))return t.state.draggingText(e),setTimeout(Xr(ct,t),20),void 0;try{var o=e.dataTransfer.getData("Text");if(o){var c=t.doc.sel.from,u=t.doc.sel.to;Qt(t.doc,n,n),t.state.draggingText&&jt(t.doc,"",c,u,"paste"),t.replaceSelection(o,null,"paste"),ct(t),Lt(t)}}catch(e){}}}}function gt(e,t){var n=e.display;try{var r=t.clientX,i=t.clientY}catch(t){return!1}if(r>=Math.floor(ni(n.gutters).right))return!1;if(Ar(t),!Gr(e,"gutterClick"))return!0;var o=ni(n.lineDiv);if(i>o.bottom)return!0;i-=o.top-n.viewOffset;for(var s=0;e.options.gutters.length>s;++s){var a=n.gutters.childNodes[s];if(a&&ni(a).right>=r){var l=pr(e.doc,i),c=e.options.gutters[s];Fr(e,"gutterClick",e,l,c,t);break}}return!0}function vt(e,t){if(!ft(e.display,t)){var n=e.getSelection();if(t.dataTransfer.setData("Text",n),t.dataTransfer.setDragImage){var r=Yr("img",null,null,"position: fixed; left: 0; top: 0;");xi&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),Ci&&(e.display.dragImg?r=e.display.dragImg:(e.display.dragImg=r,r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",e.display.wrapper.appendChild(r))),t.dataTransfer.setDragImage(r,0,0),xi&&r.parentNode.removeChild(r)}}}function bt(e,t){2>Math.abs(e.doc.scrollTop-t)||(e.doc.scrollTop=t,pi||y(e,[],t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t),e.display.scrollbarV.scrollTop!=t&&(e.display.scrollbarV.scrollTop=t),pi&&y(e,[]))}function yt(e,t,n){(n?t==e.doc.scrollLeft:2>Math.abs(e.doc.scrollLeft-t))||(t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),e.doc.scrollLeft=t,m(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbarH.scrollLeft!=t&&(e.display.scrollbarH.scrollLeft=t))}function wt(e,t){var n=t.wheelDeltaX,r=t.wheelDeltaY;if(null==n&&t.detail&&t.axis==t.HORIZONTAL_AXIS&&(n=t.detail),null==r&&t.detail&&t.axis==t.VERTICAL_AXIS?r=t.detail:null==r&&(r=t.wheelDelta),r&&Ai&&bi)for(var i=t.target;i!=s;i=i.parentNode)if(i.lineObj){e.display.currentWheelTarget=i;break}var o=e.display,s=o.scroller;if(n&&!pi&&!xi&&null!=Bi)return r&&bt(e,Math.max(0,Math.min(s.scrollTop+r*Bi,s.scrollHeight-s.clientHeight))),yt(e,Math.max(0,Math.min(s.scrollLeft+n*Bi,s.scrollWidth-s.clientWidth))),Ar(t),o.wheelStartX=null,void 0;if(r&&null!=Bi){var a=r*Bi,l=e.doc.scrollTop,c=l+o.wrapper.clientHeight;0>a?l=Math.max(0,l+a-50):c=Math.min(e.doc.height,c+a+50),y(e,[],{top:l,bottom:c})}20>ji&&(null==o.wheelStartX?(o.wheelStartX=s.scrollLeft,o.wheelStartY=s.scrollTop,o.wheelDX=n,o.wheelDY=r,setTimeout(function(){if(null!=o.wheelStartX){var e=s.scrollLeft-o.wheelStartX,t=s.scrollTop-o.wheelStartY,n=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,n&&(Bi=(Bi*ji+n)/(ji+1),++ji)}},200)):(o.wheelDX+=n,o.wheelDY+=r))}function xt(e,t,n){if("string"==typeof t&&(t=Yi[t],!t))return!1;e.display.pollingFast&&at(e)&&(e.display.pollingFast=!1);var r=e.doc,i=r.sel.shift,o=!1;try{ut(e)&&(e.state.suppressEdits=!0),n&&(r.sel.shift=!1),o=t(e)!=uo}finally{r.sel.shift=i,e.state.suppressEdits=!1}return o}function Ct(e){var t=e.state.keyMaps.slice(0);return e.options.extraKeys&&t.push(e.options.extraKeys),t.push(e.options.keyMap),t}function St(e,t){var n=gn(e.options.keyMap),r=n.auto;clearTimeout(Ri),r&&!bn(t)&&(Ri=setTimeout(function(){gn(e.options.keyMap)==n&&(e.options.keyMap=r.call?r.call(null,e):r)},50));var i=yn(t,!0),o=!1;if(!i)return!1;var s=Ct(e);return o=t.shiftKey?vn("Shift-"+i,s,function(t){return xt(e,t,!0)})||vn(i,s,function(t){return"string"==typeof t&&/^go[A-Z]/.test(t)?xt(e,t):void 0}):vn(i,s,function(t){return xt(e,t)}),"stop"==o&&(o=!1),o&&(Ar(t),D(e),vi&&(t.oldKeyCode=t.keyCode,t.keyCode=0)),o}function kt(e,t,n){var r=vn("'"+n+"'",Ct(e),function(t){return xt(e,t,!0)});return r&&(Ar(t),D(e)),r}function Tt(e){var t=this;if(t.state.focused||Lt(t),mi&&27==e.keyCode&&(e.returnValue=!1),!t.options.onKeyEvent||!t.options.onKeyEvent(t,Nr(e))){var n=e.keyCode;t.doc.sel.shift=16==n||e.shiftKey;var r=St(t,e);xi&&(Wi=r?n:null,!r&&88==n&&!xo&&(Ai?e.metaKey:e.ctrlKey)&&t.replaceSelection(""))}}function Et(e){var t=this;if(!t.options.onKeyEvent||!t.options.onKeyEvent(t,Nr(e))){var n=e.keyCode,r=e.charCode;if(xi&&n==Wi)return Wi=null,Ar(e),void 0;if(!(xi&&(!e.which||10>e.which)||Si)||!St(t,e)){var i=String.fromCharCode(null==r?n:r);this.options.electricChars&&this.doc.mode.electricChars&&this.options.smartIndent&&!ut(this)&&this.doc.mode.electricChars.indexOf(i)>-1&&setTimeout(tt(t,function(){an(t,t.doc.sel.to.line,"smart")}),75),kt(t,e,i)||st(t)}}}function Lt(e){"nocursor"!=e.options.readOnly&&(e.state.focused||(_r(e,"focus",e),e.state.focused=!0,-1==e.display.wrapper.className.search(/\bCodeMirror-focused\b/)&&(e.display.wrapper.className+=" CodeMirror-focused"),lt(e,!0)),ot(e),D(e))}function Nt(e){e.state.focused&&(_r(e,"blur",e),e.state.focused=!1,e.display.wrapper.className=e.display.wrapper.className.replace(" CodeMirror-focused","")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.doc.sel.shift=!1)},150)}function At(e,t){function n(){if(r.inputDiv.style.position="relative",r.input.style.cssText=a,vi&&(r.scrollbarV.scrollTop=r.scroller.scrollTop=s),ot(e),null!=r.input.selectionStart&&(!mi||vi)){clearTimeout(zi);var t=r.input.value=" "+(Rt(i.from,i.to)?"":r.input.value),n=0;r.prevInput=" ",r.input.selectionStart=1,r.input.selectionEnd=t.length;var o=function(){" "==r.prevInput&&0==r.input.selectionStart?tt(e,Yi.selectAll)(e):10>n++?zi=setTimeout(o,500):lt(e)};zi=setTimeout(o,200)}}var r=e.display,i=e.doc.sel;if(!ft(r,t)){var o=ht(e,t),s=r.scroller.scrollTop;if(o&&!xi){(Rt(i.from,i.to)||zt(o,i.from)||!zt(o,i.to))&&tt(e,Qt)(e.doc,o,o);var a=r.input.style.cssText;if(r.inputDiv.style.position="absolute",r.input.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(t.clientY-5)+"px; left: "+(t.clientX-5)+"px; z-index: 1000; background: white; outline: none;"+"border-width: 0; outline: none; overflow: hidden; opacity: .05; -ms-opacity: .05; filter: alpha(opacity=5);",ct(e),lt(e,!0),Rt(i.from,i.to)&&(r.input.value=r.prevInput=" "),_i){Mr(t);var l=function(){Pr(window,"mouseup",l),setTimeout(n,20)};Or(window,"mouseup",l)}else setTimeout(n,50)}}}function Dt(e){return Bt(e.from.line+e.text.length-1,zr(e.text).length+(1==e.text.length?e.from.ch:0))}function Mt(e,t,n){if(!zt(t.from,n))return Ut(e,n);var r=t.text.length-1-(t.to.line-t.from.line);if(n.line>t.to.line+r){var i=n.line-r,o=e.first+e.size-1;return i>o?Bt(o,cr(e,o).text.length):qt(n,cr(e,i).text.length)}if(n.line==t.to.line+r)return qt(n,zr(t.text).length+(1==t.text.length?t.from.ch:0)+cr(e,t.to.line).text.length-t.to.ch);var s=n.line-t.from.line;return qt(n,t.text[s].length+(s?0:t.from.ch))}function It(e,t,n){if(n&&"object"==typeof n)return{anchor:Mt(e,t,n.anchor),head:Mt(e,t,n.head)};if("start"==n)return{anchor:t.from,head:t.from};var r=Dt(t);if("around"==n)return{anchor:t.from,head:r};if("end"==n)return{anchor:r,head:r};var i=function(e){if(zt(e,t.from))return e;if(!zt(t.to,e))return r;var n=e.line+t.text.length-(t.to.line-t.from.line)-1,i=e.ch;return e.line==t.to.line&&(i+=r.ch-t.to.ch),Bt(n,i)};return{anchor:i(e.sel.anchor),head:i(e.sel.head)}}function $t(e,t){var n={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,update:function(t,n,r,i){t&&(this.from=Ut(e,t)),n&&(this.to=Ut(e,n)),r&&(this.text=r),void 0!==i&&(this.origin=i)},cancel:function(){this.canceled=!0}};return _r(e,"beforeChange",e,n),e.cm&&_r(e.cm,"beforeChange",e.cm,n),n.canceled?null:{from:n.from,to:n.to,text:n.text,origin:n.origin}}function Ot(e,t,n,r){if(e.cm){if(!e.cm.curOp)return tt(e.cm,Ot)(e,t,n,r);if(e.cm.state.suppressEdits)return}if(!(Gr(e,"beforeChange")||e.cm&&Gr(e.cm,"beforeChange"))||(t=$t(e,t))){var i=Fi&&!r&&In(e,t.from,t.to);if(i){for(var o=i.length-1;o>=1;--o)Pt(e,{from:i[o].from,to:i[o].to,text:[""]});i.length&&Pt(e,{from:i[0].from,to:i[0].to,text:t.text},n)}else Pt(e,t,n)}}function Pt(e,t,n){var r=It(e,t,n);wr(e,t,r,e.cm?e.cm.curOp.id:0/0),Ht(e,t,r,Dn(e,t));var i=[];ar(e,function(e,n){n||-1!=Vr(i,e.history)||(Er(e.history,t),i.push(e.history)),Ht(e,t,null,Dn(e,t))})}function _t(e,t){if(!e.cm||!e.cm.state.suppressEdits){var n=e.history,r=("undo"==t?n.done:n.undone).pop();if(r){n.dirtyCounter+="undo"==t?-1:1;var i={changes:[],anchorBefore:r.anchorAfter,headBefore:r.headAfter,anchorAfter:r.anchorBefore,headAfter:r.headBefore};("undo"==t?n.undone:n.done).push(i);for(var o=r.changes.length-1;o>=0;--o){var s=r.changes[o];s.origin=t,i.changes.push(yr(e,s));var a=o?It(e,s,null):{anchor:r.anchorBefore,head:r.headBefore};Ht(e,s,a,Mn(e,s));var l=[];ar(e,function(e,t){t||-1!=Vr(l,e.history)||(Er(e.history,s),l.push(e.history)),Ht(e,s,null,Mn(e,s))})}}}}function Ft(e,t){function n(e){return Bt(e.line+t,e.ch)}e.first+=t,e.cm&&it(e.cm,e.first,e.first,t),e.sel.head=n(e.sel.head),e.sel.anchor=n(e.sel.anchor),e.sel.from=n(e.sel.from),e.sel.to=n(e.sel.to)}function Ht(e,t,n,r){if(e.cm&&!e.cm.curOp)return tt(e.cm,Ht)(e,t,n,r);if(t.to.line<e.first)return Ft(e,t.text.length-1-(t.to.line-t.from.line)),void 0;if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);Ft(e,i),t={from:Bt(e.first,0),to:Bt(t.to.line+i,t.to.ch),text:[zr(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:Bt(o,cr(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=ur(e,t.from,t.to),n||(n=It(e,t,null)),e.cm?Gt(e.cm,t,r,n):ir(e,t,r,n)}}function Gt(e,t,n,r){var o=e.doc,s=e.display,a=t.from,l=t.to,c=!1,d=a.line;e.options.lineWrapping||(d=hr(_n(o,cr(o,a.line))),o.iter(d,l.line+1,function(e){return e==s.maxLine?(c=!0,!0):void 0})),ir(o,t,n,r,i(e)),e.options.lineWrapping||(o.iter(d,a.line+t.text.length,function(e){var t=u(o,e);t>s.maxLineLength&&(s.maxLine=e,s.maxLineLength=t,s.maxLineChanged=!0,c=!1)}),c&&(e.curOp.updateMaxLine=!0)),o.frontier=Math.min(o.frontier,a.line),M(e,400);var f=t.text.length-(l.line-a.line)-1;if(it(e,a.line,l.line+1,f),Gr(e,"change")){var h={from:a,to:l,text:t.text,removed:t.removed,origin:t.origin};if(e.curOp.textChanged){for(var p=e.curOp.textChanged;p.next;p=p.next);p.next=h}else e.curOp.textChanged=h}}function jt(e,t,n,r,i){if(r||(r=n),zt(r,n)){var o=r;r=n,n=o}"string"==typeof t&&(t=yo(t)),Ot(e,{from:n,to:r,text:t,origin:i},null)}function Bt(e,t){return this instanceof Bt?(this.line=e,this.ch=t,void 0):new Bt(e,t)}function Rt(e,t){return e.line==t.line&&e.ch==t.ch}function zt(e,t){return e.line<t.line||e.line==t.line&&e.ch<t.ch}function Wt(e){return Bt(e.line,e.ch)}function Vt(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function Ut(e,t){if(t.line<e.first)return Bt(e.first,0);var n=e.first+e.size-1;return t.line>n?Bt(n,cr(e,n).text.length):qt(t,cr(e,t.line).text.length)}function qt(e,t){var n=e.ch;return null==n||n>t?Bt(e.line,t):0>n?Bt(e.line,0):e}function Kt(e,t){return t>=e.first&&e.first+e.size>t}function Xt(e,t,n,r){if(e.sel.shift||e.sel.extend){var i=e.sel.anchor;if(n){var o=zt(t,i);o!=zt(n,i)?(i=t,t=n):o!=zt(t,n)&&(t=n)}Qt(e,i,t,r)}else Qt(e,t,n||t,r);e.cm&&(e.cm.curOp.userSelChange=!0)}function Jt(e,t,n){var r={anchor:t,head:n};return _r(e,"beforeSelectionChange",e,r),e.cm&&_r(e.cm,"beforeSelectionChange",e.cm,r),r.anchor=Ut(e,r.anchor),r.head=Ut(e,r.head),r}function Qt(e,t,n,r,i){if(!i&&Gr(e,"beforeSelectionChange")||e.cm&&Gr(e.cm,"beforeSelectionChange")){var o=Jt(e,t,n);n=o.head,t=o.anchor}var s=e.sel;if(s.goalColumn=null,(i||!Rt(t,s.anchor))&&(t=Zt(e,t,r,"push"!=i)),(i||!Rt(n,s.head))&&(n=Zt(e,n,r,"push"!=i)),!Rt(s.anchor,t)||!Rt(s.head,n)){s.anchor=t,s.head=n;var a=zt(n,t);s.from=a?n:t,s.to=a?t:n,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0),Fr(e,"cursorActivity",e)}}function Yt(e){Qt(e.doc,e.doc.sel.from,e.doc.sel.to,null,"push")}function Zt(e,t,n,r){var i=!1,o=t,s=n||1;e.cantEdit=!1;e:for(;;){var a=cr(e,o.line);if(a.markedSpans)for(var l=0;a.markedSpans.length>l;++l){var c=a.markedSpans[l],u=c.marker;if((null==c.from||(u.inclusiveLeft?c.from<=o.ch:c.from<o.ch))&&(null==c.to||(u.inclusiveRight?c.to>=o.ch:c.to>o.ch))){if(r&&(_r(u,"beforeCursorEnter"),u.explicitlyCleared)){if(a.markedSpans){--l;continue}break}if(!u.atomic)continue;var d=u.find()[0>s?"from":"to"];if(Rt(d,o)&&(d.ch+=s,0>d.ch?d=d.line>e.first?Ut(e,Bt(d.line-1)):null:d.ch>a.text.length&&(d=d.line<e.first+e.size-1?Bt(d.line+1,0):null),!d)){if(i)return r?(e.cantEdit=!0,Bt(e.first,0)):Zt(e,t,n,!0);i=!0,d=t,s=-s}o=d;continue e}}return o}}function en(e){var t=tn(e,e.doc.sel.head);if(e.state.focused){var n=e.display,r=ni(n.sizer),i=null,o=P(e.display);if(0>t.top+o+r.top?i=!0:t.bottom+o+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!Ei){var s="none"==n.cursor.style.display;s&&(n.cursor.style.display="",n.cursor.style.left=t.left+"px",n.cursor.style.top=t.top-n.viewOffset+"px"),n.cursor.scrollIntoView(i),s&&(n.cursor.style.display="none")}}}function tn(e,t,n){for(null==n&&(n=0);;){var r=!1,i=q(e,t),o=rn(e,i.left,i.top-n,i.left,i.bottom+n),s=e.doc.scrollTop,a=e.doc.scrollLeft;if(null!=o.scrollTop&&(bt(e,o.scrollTop),Math.abs(e.doc.scrollTop-s)>1&&(r=!0)),null!=o.scrollLeft&&(yt(e,o.scrollLeft),Math.abs(e.doc.scrollLeft-a)>1&&(r=!0)),!r)return i}}function nn(e,t,n,r,i){var o=rn(e,t,n,r,i);null!=o.scrollTop&&bt(e,o.scrollTop),null!=o.scrollLeft&&yt(e,o.scrollLeft)}function rn(e,t,n,r,i){var o=e.display,s=P(o);n+=s,i+=s;var a=o.scroller.clientHeight-co,l=o.scroller.scrollTop,c={},u=e.doc.height+_(o),d=s+10>n,f=i+s>u-10;l>n?c.scrollTop=d?0:Math.max(0,n):i>l+a&&(c.scrollTop=(f?u:i)-a);var h=o.scroller.clientWidth-co,p=o.scroller.scrollLeft;t+=o.gutters.offsetWidth,r+=o.gutters.offsetWidth;var m=o.gutters.offsetWidth,g=m+10>t;return p+m>t||g?(g&&(t=0),c.scrollLeft=Math.max(0,t-10-m)):r>h+p-3&&(c.scrollLeft=r+10-h),c}function on(e,t,n){e.curOp.updateScrollPos={scrollLeft:t,scrollTop:n}}function sn(e,t,n){var r=e.curOp.updateScrollPos||(e.curOp.updateScrollPos={scrollLeft:e.doc.scrollLeft,scrollTop:e.doc.scrollTop}),i=e.display.scroller;
r.scrollTop=Math.max(0,Math.min(i.scrollHeight-i.clientHeight,r.scrollTop+n)),r.scrollLeft=Math.max(0,Math.min(i.scrollWidth-i.clientWidth,r.scrollLeft+t))}function an(e,t,n,r){var i=e.doc;if(n||(n="add"),"smart"==n)if(e.doc.mode.indent)var o=O(e,t);else n="prev";var s,a=e.options.tabSize,l=cr(i,t),c=Br(l.text,null,a),u=l.text.match(/^\s*/)[0];if("smart"==n&&(s=e.doc.mode.indent(o,l.text.slice(u.length),l.text),s==uo)){if(!r)return;n="prev"}"prev"==n?s=t>i.first?Br(cr(i,t-1).text,null,a):0:"add"==n?s=c+e.options.indentUnit:"subtract"==n&&(s=c-e.options.indentUnit),s=Math.max(0,s);var d="",f=0;if(e.options.indentWithTabs)for(var h=Math.floor(s/a);h;--h)f+=a,d+="	";s>f&&(d+=Rr(s-f)),d!=u&&jt(e.doc,d,Bt(t,0),Bt(t,u.length),"+input"),l.stateAfter=null}function ln(e,t,n){var r=t,i=t,o=e.doc;return"number"==typeof t?i=cr(o,Vt(o,t)):r=hr(t),null==r?null:n(i,r)?(it(e,r,r+1),i):null}function cn(e,t,n,r,i){function o(){var t=a+n;return e.first>t||t>=e.first+e.size?u=!1:(a=t,c=cr(e,t))}function s(e){var t=(i?fi:hi)(c,l,n,!0);if(null==t){if(e||!o())return u=!1;l=i?(0>n?ci:li)(c):0>n?c.text.length:0}else l=t;return!0}var a=t.line,l=t.ch,c=cr(e,a),u=!0;if("char"==r)s();else if("column"==r)s(!0);else if("word"==r||"group"==r)for(var d=null,f="group"==r,h=!0;!(0>n)||s(!h);h=!1){var p=c.text.charAt(l)||"\n",m=Jr(p)?"w":f?/\s/.test(p)?null:"p":null;if(d&&d!=m){0>n&&(n=1,s());break}if(m&&(d=m),n>0&&!s(!h))break}var g=Zt(e,Bt(a,l),n,!0);return u||(g.hitSide=!0),g}function un(e,t,n,r){var i,o=e.doc,s=t.left;if("page"==r){var a=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight);i=t.top+n*(a-(0>n?1.5:.5)*Q(e.display))}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(;;){var l=X(e,s,i);if(!l.outside)break;if(0>n?0>=i:i>=o.height){l.hitSide=!0;break}i+=5*n}return l}function dn(e,t){var n=t.ch,r=t.ch;if(e){t.after===!1||r==e.length?--n:++r;for(var i=e.charAt(n),o=Jr(i)?Jr:/\s/.test(i)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!Jr(e)};n>0&&o(e.charAt(n-1));)--n;for(;e.length>r&&o(e.charAt(r));)++r}return{from:Bt(t.line,n),to:Bt(t.line,r)}}function fn(e,t){Xt(e.doc,Bt(t,0),Ut(e.doc,Bt(t+1,0)))}function hn(t,n,r,i){e.defaults[t]=n,r&&(Vi[t]=i?function(e,t,n){n!=qi&&r(e,t,n)}:r)}function pn(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function mn(e,t,n){return e.startState?e.startState(t,n):!0}function gn(e){return"string"==typeof e?Zi[e]:e}function vn(e,t,n){function r(t){t=gn(t);var i=t[e];if(i===!1)return"stop";if(null!=i&&n(i))return!0;if(t.nofallthrough)return"stop";var o=t.fallthrough;if(null==o)return!1;if("[object Array]"!=Object.prototype.toString.call(o))return r(o);for(var s=0,a=o.length;a>s;++s){var l=r(o[s]);if(l)return l}return!1}for(var i=0;t.length>i;++i){var o=r(t[i]);if(o)return o}}function bn(e){var t=Co[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function yn(e,t){var n=Co[e.keyCode];return null==n||e.altGraphKey?!1:(e.altKey&&(n="Alt-"+n),(Pi?e.metaKey:e.ctrlKey)&&(n="Ctrl-"+n),(Pi?e.ctrlKey:e.metaKey)&&(n="Cmd-"+n),!t&&e.shiftKey&&(n="Shift-"+n),n)}function wn(e,t){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0}function xn(e,t){this.lines=[],this.type=t,this.doc=e}function Cn(e,t,n,r,i){if(r&&r.shared)return kn(e,t,n,r,i);if(e.cm&&!e.cm.curOp)return tt(e.cm,Cn)(e,t,n,r,i);var o=new xn(e,i);if("range"==i&&!zt(t,n))return o;r&&qr(r,o),o.replacedWith&&(o.collapsed=!0,o.replacedWith=Yr("span",[o.replacedWith],"CodeMirror-widget")),o.collapsed&&(Hi=!0);var s,a,l,c=t.line,u=0,d=e.cm;if(e.iter(c,n.line+1,function(r){d&&o.collapsed&&!d.options.lineWrapping&&_n(e,r)==d.display.maxLine&&(l=!0);var i={from:null,to:null,marker:o};u+=r.text.length,c==t.line&&(i.from=t.ch,u-=t.ch),c==n.line&&(i.to=n.ch,u-=r.text.length-n.ch),o.collapsed&&(c==n.line&&(a=$n(r,n.ch)),c==t.line?s=$n(r,t.ch):fr(r,0)),Ln(r,i),++c}),o.collapsed&&e.iter(t.line,n.line+1,function(t){Fn(e,t)&&fr(t,0)}),o.clearOnEnter&&Or(o,"beforeCursorEnter",function(){o.clear()}),o.readOnly&&(Fi=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed){if(s!=a)throw new Error("Inserting collapsed marker overlapping an existing one");o.size=u,o.atomic=!0}return d&&(l&&(d.curOp.updateMaxLine=!0),(o.className||o.startStyle||o.endStyle||o.collapsed)&&it(d,t.line,n.line+1),o.atomic&&Yt(d)),o}function Sn(e,t){this.markers=e,this.primary=t;for(var n=0,r=this;e.length>n;++n)e[n].parent=this,Or(e[n],"clear",function(){r.clear()})}function kn(e,t,n,r,i){r=qr(r),r.shared=!1;var o=[Cn(e,t,n,r,i)],s=o[0],a=r.replacedWith;return ar(e,function(e){a&&(r.replacedWith=a.cloneNode(!0)),o.push(Cn(e,Ut(e,t),Ut(e,n),r,i));for(var l=0;e.linked.length>l;++l)if(e.linked[l].isParent)return;s=zr(o)}),new Sn(o,s)}function Tn(e,t){if(e)for(var n=0;e.length>n;++n){var r=e[n];if(r.marker==t)return r}}function En(e,t){for(var n,r=0;e.length>r;++r)e[r]!=t&&(n||(n=[])).push(e[r]);return n}function Ln(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}function Nn(e,t,n){if(e)for(var r,i=0;e.length>i;++i){var o=e[i],s=o.marker,a=null==o.from||(s.inclusiveLeft?t>=o.from:t>o.from);if(a||"bookmark"==s.type&&o.from==t&&(!n||!o.marker.insertLeft)){var l=null==o.to||(s.inclusiveRight?o.to>=t:o.to>t);(r||(r=[])).push({from:o.from,to:l?null:o.to,marker:s})}}return r}function An(e,t,n){if(e)for(var r,i=0;e.length>i;++i){var o=e[i],s=o.marker,a=null==o.to||(s.inclusiveRight?o.to>=t:o.to>t);if(a||"bookmark"==s.type&&o.from==t&&(!n||o.marker.insertLeft)){var l=null==o.from||(s.inclusiveLeft?t>=o.from:t>o.from);(r||(r=[])).push({from:l?null:o.from-t,to:null==o.to?null:o.to-t,marker:s})}}return r}function Dn(e,t){var n=Kt(e,t.from.line)&&cr(e,t.from.line).markedSpans,r=Kt(e,t.to.line)&&cr(e,t.to.line).markedSpans;if(!n&&!r)return null;var i=t.from.ch,o=t.to.ch,s=Rt(t.from,t.to),a=Nn(n,i,s),l=An(r,o,s),c=1==t.text.length,u=zr(t.text).length+(c?i:0);if(a)for(var d=0;a.length>d;++d){var f=a[d];if(null==f.to){var h=Tn(l,f.marker);h?c&&(f.to=null==h.to?null:h.to+u):f.to=i}}if(l)for(var d=0;l.length>d;++d){var f=l[d];if(null!=f.to&&(f.to+=u),null==f.from){var h=Tn(a,f.marker);h||(f.from=u,c&&(a||(a=[])).push(f))}else f.from+=u,c&&(a||(a=[])).push(f)}var p=[a];if(!c){var m,g=t.text.length-2;if(g>0&&a)for(var d=0;a.length>d;++d)null==a[d].to&&(m||(m=[])).push({from:null,to:null,marker:a[d].marker});for(var d=0;g>d;++d)p.push(m);p.push(l)}return p}function Mn(e,t){var n=Cr(e,t),r=Dn(e,t);if(!n)return r;if(!r)return n;for(var i=0;n.length>i;++i){var o=n[i],s=r[i];if(o&&s)e:for(var a=0;s.length>a;++a){for(var l=s[a],c=0;o.length>c;++c)if(o[c].marker==l.marker)continue e;o.push(l)}else s&&(n[i]=s)}return n}function In(e,t,n){var r=null;if(e.iter(t.line,n.line+1,function(e){if(e.markedSpans)for(var t=0;e.markedSpans.length>t;++t){var n=e.markedSpans[t].marker;!n.readOnly||r&&-1!=Vr(r,n)||(r||(r=[])).push(n)}}),!r)return null;for(var i=[{from:t,to:n}],o=0;r.length>o;++o)for(var s=r[o],a=s.find(),l=0;i.length>l;++l){var c=i[l];if(!zt(c.to,a.from)&&!zt(a.to,c.from)){var u=[l,1];(zt(c.from,a.from)||!s.inclusiveLeft&&Rt(c.from,a.from))&&u.push({from:c.from,to:a.from}),(zt(a.to,c.to)||!s.inclusiveRight&&Rt(c.to,a.to))&&u.push({from:a.to,to:c.to}),i.splice.apply(i,u),l+=u.length-1}}return i}function $n(e,t){var n,r=Hi&&e.markedSpans;if(r)for(var i,o=0;r.length>o;++o)i=r[o],i.marker.collapsed&&(null==i.from||t>i.from)&&(null==i.to||i.to>t)&&(!n||n.width<i.marker.width)&&(n=i.marker);return n}function On(e){return $n(e,-1)}function Pn(e){return $n(e,e.text.length+1)}function _n(e,t){for(var n;n=On(t);)t=cr(e,n.find().from.line);return t}function Fn(e,t){var n=Hi&&t.markedSpans;if(n)for(var r,i=0;n.length>i;++i)if(r=n[i],r.marker.collapsed){if(null==r.from)return!0;if(0==r.from&&r.marker.inclusiveLeft&&Hn(e,t,r))return!0}}function Hn(e,t,n){if(null==n.to){var r=n.marker.find().to,i=cr(e,r.line);return Hn(e,i,Tn(i.markedSpans,n.marker))}if(n.marker.inclusiveRight&&n.to==t.text.length)return!0;for(var o,s=0;t.markedSpans.length>s;++s)if(o=t.markedSpans[s],o.marker.collapsed&&o.from==n.to&&(o.marker.inclusiveLeft||n.marker.inclusiveRight)&&Hn(e,t,o))return!0}function Gn(e){var t=e.markedSpans;if(t){for(var n=0;t.length>n;++n)t[n].marker.detachLine(e);e.markedSpans=null}}function jn(e,t){if(t){for(var n=0;t.length>n;++n)t[n].marker.attachLine(e);e.markedSpans=t}}function Bn(e){return function(){var t=!this.cm.curOp;t&&Z(this.cm);try{var n=e.apply(this,arguments)}finally{t&&et(this.cm)}return n}}function Rn(e){return null!=e.height?e.height:(e.node.parentNode&&1==e.node.parentNode.nodeType||ei(e.cm.display.measure,Yr("div",[e.node],null,"position: relative")),e.height=e.node.offsetHeight)}function zn(e,t,n,r){var i=new eo(e,n,r);return i.noHScroll&&(e.display.alignWidgets=!0),ln(e,t,function(t){if((t.widgets||(t.widgets=[])).push(i),i.line=t,!Fn(e.doc,t)||i.showIfHidden){var n=mr(e,t)<e.display.scroller.scrollTop;fr(t,t.height+Rn(i)),n&&sn(e,0,i.height)}return!0}),i}function Wn(e,t,n){var r={text:e};return jn(r,t),r.height=n?n(r):1,r}function Vn(e,t,n,r){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),Gn(e),jn(e,n);var i=r?r(e):1;i!=e.height&&fr(e,i)}function Un(e){e.parent=null,Gn(e)}function qn(e,t,n,r,i){var o=n.flattenSpans;null==o&&(o=e.options.flattenSpans);var s="",a=null,l=new wn(t,e.options.tabSize);for(""==t&&n.blankLine&&n.blankLine(r);!l.eol();){var c=n.token(l,r);l.pos>5e3&&(o=!1,l.pos=Math.min(t.length,l.start+5e4),c=null);var u=l.current();l.start=l.pos,o&&a==c?s+=u:(s&&i(s,a),s=u,a=c)}s&&i(s,a)}function Kn(e,t,n){var r=[e.state.modeGen];qn(e,t.text,e.doc.mode,n,function(e,t){r.push(e,t)});for(var i=0;e.state.overlays.length>i;++i){var o=e.state.overlays[i],s=1;qn(e,t.text,o.mode,!0,function(e,t){for(var n=s,i=e.length;i;){var a=r[s],l=a.length;i>=l?i-=l:(r.splice(s,1,a.slice(0,i),r[s+1],a.slice(i)),i=0),s+=2}if(t)if(o.opaque)r.splice(n,s-n,e,t),s=n+2;else for(;s>n;n+=2){var a=r[n+1];r[n+1]=a?a+" "+t:t}})}return r}function Xn(e,t){return t.styles&&t.styles[0]==e.state.modeGen||(t.styles=Kn(e,t,t.stateAfter=O(e,hr(t)))),t.styles}function Jn(e,t,n){var r=e.doc.mode,i=new wn(t.text,e.options.tabSize);for(""==t.text&&r.blankLine&&r.blankLine(n);!i.eol()&&5e3>=i.pos;)r.token(i,n),i.start=i.pos}function Qn(e){return e?to[e]||(to[e]="cm-"+e.replace(/ +/g," cm-")):null}function Yn(e,t,n){for(var r,i,o,s=t,a=!0;r=On(s);)a=!1,s=cr(e.doc,r.find().from.line),i||(i=s);var l={pre:Yr("pre"),col:0,pos:0,display:!n,measure:null,addedOne:!1,cm:e};s.textClass&&(l.pre.className=s.textClass);do{l.measure=s==t&&n,l.pos=0,l.addToken=l.measure?er:Zn,(mi||bi)&&e.getOption("lineWrapping")&&(l.addToken=tr(l.addToken)),n&&o&&s!=t&&!l.addedOne&&(n[0]=l.pre.appendChild(ii(e.display.measure)),l.addedOne=!0);var c=rr(s,l,Xn(e,s));o=s==i,c&&(s=cr(e.doc,c.to.line),a=!1)}while(c);n&&!l.addedOne&&(n[0]=l.pre.appendChild(a?Yr("span","\u00a0"):ii(e.display.measure))),l.pre.firstChild||Fn(e.doc,t)||l.pre.appendChild(document.createTextNode("\u00a0"));var u;if(n&&mi&&(u=gr(s))){var d=u.length-1;u[d].from==u[d].to&&--d;var f=u[d],h=u[d-1];if(f.from+1==f.to&&h&&f.level<h.level){var p=n[l.pos-1];p&&p.parentNode.insertBefore(p.measureRight=ii(e.display.measure),p.nextSibling)}}return _r(e,"renderLine",e,t,l.pre),l.pre}function Zn(e,t,n,r,i){if(t){if(no.test(t))for(var o=document.createDocumentFragment(),s=0;;){no.lastIndex=s;var a=no.exec(t),l=a?a.index-s:t.length-s;if(l&&(o.appendChild(document.createTextNode(t.slice(s,s+l))),e.col+=l),!a)break;if(s+=l+1,"	"==a[0]){var c=e.cm.options.tabSize,u=c-e.col%c;o.appendChild(Yr("span",Rr(u),"cm-tab")),e.col+=u}else{var d=Yr("span","\u2022","cm-invalidchar");d.title="\\u"+a[0].charCodeAt(0).toString(16),o.appendChild(d),e.col+=1}}else{e.col+=t.length;var o=document.createTextNode(t)}if(n||r||i||e.measure){var f=n||"";return r&&(f+=r),i&&(f+=i),e.pre.appendChild(Yr("span",[o],f))}e.pre.appendChild(o)}}function er(e,t,n,r,i){for(var o=e.cm.options.lineWrapping,s=0;t.length>s;++s){var a=t.charAt(s),l=0==s;a>="\ud800"&&"\udbff">a&&t.length-1>s?(a=t.slice(s,s+2),++s):s&&o&&go.test(t.slice(s-1,s+1))&&e.pre.appendChild(Yr("wbr"));var c=e.measure[e.pos]=Zn(e,a,n,l&&r,s==t.length-1&&i);mi&&o&&" "==a&&s&&!/\s/.test(t.charAt(s-1))&&t.length-1>s&&!/\s/.test(t.charAt(s+1))&&(c.style.whiteSpace="normal"),e.pos+=a.length}t.length&&(e.addedOne=!0)}function tr(e){function t(e){for(var t=" ",n=0;e.length-2>n;++n)t+=n%2?" ":"\u00a0";return t+=" "}return function(n,r,i,o,s){return e(n,r.replace(/ {3,}/,t),i,o,s)}}function nr(e,t,n){n&&(e.display||(n=n.cloneNode(!0)),e.pre.appendChild(n),e.measure&&t&&(e.measure[e.pos]=n,e.addedOne=!0)),e.pos+=t}function rr(e,t,n){var r=e.markedSpans;if(r)for(var i,o,s,a,l,c=e.text,u=c.length,d=0,f=1,h="",p=0;;){if(p==d){o=s=a="",l=null,p=1/0;for(var m=null,g=0;r.length>g;++g){var v=r[g],b=v.marker;d>=v.from&&(null==v.to||v.to>d)?(null!=v.to&&p>v.to&&(p=v.to,s=""),b.className&&(o+=" "+b.className),b.startStyle&&v.from==d&&(a+=" "+b.startStyle),b.endStyle&&v.to==p&&(s+=" "+b.endStyle),b.collapsed&&(!l||l.marker.width<b.width)&&(l=v)):v.from>d&&p>v.from&&(p=v.from),"bookmark"==b.type&&v.from==d&&b.replacedWith&&(m=b.replacedWith)}if(l&&(l.from||0)==d&&(nr(t,(null==l.to?u:l.to)-d,null!=l.from&&l.marker.replacedWith),null==l.to))return l.marker.find();m&&!l&&nr(t,0,m)}if(d>=u)break;for(var y=Math.min(u,p);;){if(h){var w=d+h.length;if(!l){var x=w>y?h.slice(0,y-d):h;t.addToken(t,x,i?i+o:o,a,d+x.length==p?s:"")}if(w>=y){h=h.slice(y-d),d=y;break}d=w,a=""}h=n[f++],i=Qn(n[f++])}}else for(var f=1;n.length>f;f+=2)t.addToken(t,n[f],Qn(n[f+1]))}function ir(e,t,n,r,i){function o(e){return n?n[e]:null}function s(e,n,r){Vn(e,n,r,i),Fr(e,"change",e,t)}var a=t.from,l=t.to,c=t.text,u=cr(e,a.line),d=cr(e,l.line),f=zr(c),h=o(c.length-1),p=l.line-a.line;if(0==a.ch&&0==l.ch&&""==f){for(var m=0,g=c.length-1,v=[];g>m;++m)v.push(Wn(c[m],o(m),i));s(d,d.text,h),p&&e.remove(a.line,p),v.length&&e.insert(a.line,v)}else if(u==d)if(1==c.length)s(u,u.text.slice(0,a.ch)+f+u.text.slice(l.ch),h);else{for(var v=[],m=1,g=c.length-1;g>m;++m)v.push(Wn(c[m],o(m),i));v.push(Wn(f+u.text.slice(l.ch),h,i)),s(u,u.text.slice(0,a.ch)+c[0],o(0)),e.insert(a.line+1,v)}else if(1==c.length)s(u,u.text.slice(0,a.ch)+c[0]+d.text.slice(l.ch),o(0)),e.remove(a.line+1,p);else{s(u,u.text.slice(0,a.ch)+c[0],o(0)),s(d,f+d.text.slice(l.ch),h);for(var m=1,g=c.length-1,v=[];g>m;++m)v.push(Wn(c[m],o(m),i));p>1&&e.remove(a.line+1,p-1),e.insert(a.line+1,v)}Fr(e,"change",e,t),Qt(e,r.anchor,r.head,null,!0)}function or(e){this.lines=e,this.parent=null;for(var t=0,n=e.length,r=0;n>t;++t)e[t].parent=this,r+=e[t].height;this.height=r}function sr(e){this.children=e;for(var t=0,n=0,r=0,i=e.length;i>r;++r){var o=e[r];t+=o.chunkSize(),n+=o.height,o.parent=this}this.size=t,this.height=n,this.parent=null}function ar(e,t,n){function r(e,i,o){if(e.linked)for(var s=0;e.linked.length>s;++s){var a=e.linked[s];if(a.doc!=i){var l=o&&a.sharedHist;(!n||l)&&(t(a.doc,l),r(a.doc,e,l))}}}r(e,null,!0)}function lr(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,o(e),n(e),e.options.lineWrapping||d(e),e.options.mode=t.modeOption,it(e)}function cr(e,t){for(t-=e.first;!e.lines;)for(var n=0;;++n){var r=e.children[n],i=r.chunkSize();if(i>t){e=r;break}t-=i}return e.lines[t]}function ur(e,t,n){var r=[],i=t.line;return e.iter(t.line,n.line+1,function(e){var o=e.text;i==n.line&&(o=o.slice(0,n.ch)),i==t.line&&(o=o.slice(t.ch)),r.push(o),++i}),r}function dr(e,t,n){var r=[];return e.iter(t,n,function(e){r.push(e.text)}),r}function fr(e,t){for(var n=t-e.height,r=e;r;r=r.parent)r.height+=n}function hr(e){if(null==e.parent)return null;for(var t=e.parent,n=Vr(t.lines,e),r=t.parent;r;t=r,r=r.parent)for(var i=0;r.children[i]!=t;++i)n+=r.children[i].chunkSize();return n+t.first}function pr(e,t){var n=e.first;e:do{for(var r=0,i=e.children.length;i>r;++r){var o=e.children[r],s=o.height;if(s>t){e=o;continue e}t-=s,n+=o.chunkSize()}return n}while(!e.lines);for(var r=0,i=e.lines.length;i>r;++r){var a=e.lines[r],l=a.height;if(l>t)break;t-=l}return n+r}function mr(e,t){t=_n(e.doc,t);for(var n=0,r=t.parent,i=0;r.lines.length>i;++i){var o=r.lines[i];if(o==t)break;n+=o.height}for(var s=r.parent;s;r=s,s=r.parent)for(var i=0;s.children.length>i;++i){var a=s.children[i];if(a==r)break;n+=a.height}return n}function gr(e){var t=e.order;return null==t&&(t=e.order=So(e.text)),t}function vr(){return{done:[],undone:[],undoDepth:1/0,lastTime:0,lastOp:null,lastOrigin:null,dirtyCounter:0}}function br(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o})}function yr(e,t){var n={from:t.from,to:Dt(t),text:ur(e,t.from,t.to)};return br(e,n,t.from.line,t.to.line+1),ar(e,function(e){br(e,n,t.from.line,t.to.line+1)},!0),n}function wr(e,t,n,r){var i=e.history;i.undone.length=0;var o=+new Date,s=zr(i.done);if(s&&(i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&i.lastTime>o-600||"*"==t.origin.charAt(0)))){var a=zr(s.changes);Rt(t.from,t.to)&&Rt(t.from,a.to)?a.to=Dt(t):s.changes.push(yr(e,t)),s.anchorAfter=n.anchor,s.headAfter=n.head}else{for(s={changes:[yr(e,t)],anchorBefore:e.sel.anchor,headBefore:e.sel.head,anchorAfter:n.anchor,headAfter:n.head},i.done.push(s);i.done.length>i.undoDepth;)i.done.shift();0>i.dirtyCounter?i.dirtyCounter=0/0:i.dirtyCounter++}i.lastTime=o,i.lastOp=r,i.lastOrigin=t.origin}function xr(e){if(!e)return null;for(var t,n=0;e.length>n;++n)e[n].marker.explicitlyCleared?t||(t=e.slice(0,n)):t&&t.push(e[n]);return t?t.length?t:null:e}function Cr(e,t){var n=t["spans_"+e.id];if(!n)return null;for(var r=0,i=[];t.text.length>r;++r)i.push(xr(n[r]));return i}function Sr(e,t){for(var n=0,r=[];e.length>n;++n){var i=e[n],o=i.changes,s=[];r.push({changes:s,anchorBefore:i.anchorBefore,headBefore:i.headBefore,anchorAfter:i.anchorAfter,headAfter:i.headAfter});for(var a=0;o.length>a;++a){var l,c=o[a];if(s.push({from:c.from,to:c.to,text:c.text}),t)for(var u in c)(l=u.match(/^spans_(\d+)$/))&&Vr(t,Number(l[1]))>-1&&(zr(s)[u]=c[u],delete c[u])}}return r}function kr(e,t,n,r){e.line>n?e.line+=r:e.line>t&&(e.line=t,e.ch=0)}function Tr(e,t,n,r){for(var i=0;e.length>i;++i){for(var o=e[i],s=!0,a=0;o.changes.length>a;++a){var l=o.changes[a];if(o.copied||(l.from=Wt(l.from),l.to=Wt(l.to)),l.from.line>n)l.from.line+=r,l.to.line+=r;else if(l.to.line>=t){s=!1;break}}o.copied||(o.anchorBefore=Wt(o.anchorBefore),o.headBefore=Wt(o.headBefore),o.anchorAfter=Wt(o.anchorAfter),o.readAfter=Wt(o.headAfter),o.copied=!0),s?(kr(o.anchorBefore),kr(o.headBefore),kr(o.anchorAfter),kr(o.headAfter)):(e.splice(0,i+1),i=0)}}function Er(e,t){var n=t.from.line,r=t.to.line,i=t.text.length-(r-n)-1;Tr(e.done,n,r,i),Tr(e.undone,n,r,i)}function Lr(){Mr(this)}function Nr(e){return e.stop||(e.stop=Lr),e}function Ar(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Dr(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Mr(e){Ar(e),Dr(e)}function Ir(e){return e.target||e.srcElement}function $r(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),Ai&&e.ctrlKey&&1==t&&(t=3),t}function Or(e,t,n){if(e.addEventListener)e.addEventListener(t,n,!1);else if(e.attachEvent)e.attachEvent("on"+t,n);else{var r=e._handlers||(e._handlers={}),i=r[t]||(r[t]=[]);i.push(n)}}function Pr(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent("on"+t,n);else{var r=e._handlers&&e._handlers[t];if(!r)return;for(var i=0;r.length>i;++i)if(r[i]==n){r.splice(i,1);break}}}function _r(e,t){var n=e._handlers&&e._handlers[t];if(n)for(var r=Array.prototype.slice.call(arguments,2),i=0;n.length>i;++i)n[i].apply(null,r)}function Fr(e,t){function n(e){return function(){e.apply(null,i)}}var r=e._handlers&&e._handlers[t];if(r){var i=Array.prototype.slice.call(arguments,2);ao||(++lo,ao=[],setTimeout(Hr,0));for(var o=0;r.length>o;++o)ao.push(n(r[o]))}}function Hr(){--lo;var e=ao;ao=null;for(var t=0;e.length>t;++t)e[t]()}function Gr(e,t){var n=e._handlers&&e._handlers[t];return n&&n.length>0}function jr(){this.id=null}function Br(e,t,n,r,i){null==t&&(t=e.search(/[^\s\u00a0]/),-1==t&&(t=e.length));for(var o=r||0,s=i||0;t>o;++o)"	"==e.charAt(o)?s+=n-s%n:++s;return s}function Rr(e){for(;e>=fo.length;)fo.push(zr(fo)+" ");return fo[e]}function zr(e){return e[e.length-1]}function Wr(e){Li?(e.selectionStart=0,e.selectionEnd=e.value.length):e.select()}function Vr(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;r>n;++n)if(e[n]==t)return n;return-1}function Ur(e,t){function n(){}n.prototype=e;var r=new n;return t&&qr(t,r),r}function qr(e,t){t||(t={});for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function Kr(e){for(var t=[],n=0;e>n;++n)t.push(void 0);return t}function Xr(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function Jr(e){return/\w/.test(e)||e>"\u0080"&&(e.toUpperCase()!=e.toLowerCase()||ho.test(e))}function Qr(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function Yr(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)ti(i,t);else if(t)for(var o=0;t.length>o;++o)i.appendChild(t[o]);return i}function Zr(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function ei(e,t){return Zr(e).appendChild(t)}function ti(e,t){vi?(e.innerHTML="",e.appendChild(document.createTextNode(t))):e.textContent=t}function ni(e){return e.getBoundingClientRect()}function ri(e){if(null!=vo)return vo;var t=Yr("div",null,null,"width: 50px; height: 50px; overflow-x: scroll");return ei(e,t),t.offsetWidth&&(vo=t.offsetHeight-t.clientHeight),vo||0}function ii(e){if(null==bo){var t=Yr("span","\u200b");ei(e,Yr("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(bo=1>=t.offsetWidth&&t.offsetHeight>2&&!gi)}return bo?Yr("span","\u200b"):Yr("span","\u00a0",null,"display: inline-block; width: 1px; margin-right: -1px")}function oi(e,t,n,r){if(!e)return r(t,n,"ltr");for(var i=0;e.length>i;++i){var o=e[i];(n>o.from&&o.to>t||t==n&&o.to==t)&&r(Math.max(o.from,t),Math.min(o.to,n),1==o.level?"rtl":"ltr")}}function si(e){return e.level%2?e.to:e.from}function ai(e){return e.level%2?e.from:e.to}function li(e){var t=gr(e);return t?si(t[0]):0}function ci(e){var t=gr(e);return t?ai(zr(t)):e.text.length}function ui(e,t){var n=cr(e.doc,t),r=_n(e.doc,n);r!=n&&(t=hr(r));var i=gr(r),o=i?i[0].level%2?ci(r):li(r):0;return Bt(t,o)}function di(e,t){for(var n,r;n=Pn(r=cr(e.doc,t));)t=n.find().to.line;var i=gr(r),o=i?i[0].level%2?li(r):ci(r):r.text.length;return Bt(t,o)}function fi(e,t,n,r){var i=gr(e);if(!i)return hi(e,t,n,r);for(var o=r?function(t,n){do t+=n;while(t>0&&po.test(e.text.charAt(t)));return t}:function(e,t){return e+t},s=i[0].level,a=0;i.length>a;++a){var l=i[a],c=l.level%2==s;if(t>l.from&&l.to>t||c&&(l.from==t||l.to==t))break}for(var u=o(t,l.level%2?-n:n);null!=u;)if(l.level%2==s){if(!(l.from>u||u>l.to))break;l=i[a+=n],u=l&&(n>0==l.level%2?o(l.to,-1):o(l.from,1))}else if(u==si(l))l=i[--a],u=l&&ai(l);else{if(u!=ai(l))break;l=i[++a],u=l&&si(l)}return 0>u||u>e.text.length?null:u}function hi(e,t,n,r){var i=t+n;if(r)for(;i>0&&po.test(e.text.charAt(i));)i+=n;return 0>i||i>e.text.length?null:i}var pi=/gecko\/\d/i.test(navigator.userAgent),mi=/MSIE \d/.test(navigator.userAgent),gi=mi&&(null==document.documentMode||8>document.documentMode),vi=mi&&(null==document.documentMode||9>document.documentMode),bi=/WebKit\//.test(navigator.userAgent),yi=bi&&/Qt\/\d+\.\d+/.test(navigator.userAgent),wi=/Chrome\//.test(navigator.userAgent),xi=/Opera\//.test(navigator.userAgent),Ci=/Apple Computer/.test(navigator.vendor),Si=/KHTML\//.test(navigator.userAgent),ki=/Mac OS X 1\d\D([7-9]|\d\d)\D/.test(navigator.userAgent),Ti=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent),Ei=/PhantomJS/.test(navigator.userAgent),Li=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent),Ni=Li||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent),Ai=Li||/Mac/.test(navigator.platform),Di=/windows/i.test(navigator.platform),Mi=xi&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);Mi&&(Mi=Number(Mi[1]));var Ii,$i,Oi,Pi=Ai&&(yi||xi&&(null==Mi||12.11>Mi)),_i=pi||mi&&!vi,Fi=!1,Hi=!1,Gi=0,ji=0,Bi=null;mi?Bi=-.53:pi?Bi=15:wi?Bi=-.7:Ci&&(Bi=-1/3);var Ri,zi,Wi=null;e.Pos=Bt,e.prototype={focus:function(){window.focus(),ct(this),Lt(this),st(this)},setOption:function(e,t){var n=this.options,r=n[e];(n[e]!=t||"mode"==e)&&(n[e]=t,Vi.hasOwnProperty(e)&&tt(this,Vi[e])(this,t,r))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](e)},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;t.length>n;++n)if(("string"==typeof e?t[n].name:t[n])==e)return t.splice(n,1),!0},addOverlay:tt(null,function(t,n){var r=t.token?t:e.getMode(this.options,t);if(r.startState)throw new Error("Overlays may not be stateful.");this.state.overlays.push({mode:r,modeSpec:t,opaque:n&&n.opaque}),this.state.modeGen++,it(this)}),removeOverlay:tt(null,function(e){for(var t=this.state.overlays,n=0;t.length>n;++n)if(t[n].modeSpec==e)return t.splice(n,1),this.state.modeGen++,it(this),void 0}),indentLine:tt(null,function(e,t,n){"string"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),Kt(this.doc,e)&&an(this,e,t,n)}),indentSelection:tt(null,function(e){var t=this.doc.sel;if(Rt(t.from,t.to))return an(this,t.from.line,e);for(var n=t.to.line-(t.to.ch?0:1),r=t.from.line;n>=r;++r)an(this,r,e)}),getTokenAt:function(e){var t=this.doc;e=Ut(t,e);for(var n=O(this,e.line),r=this.doc.mode,i=cr(t,e.line),o=new wn(i.text,this.options.tabSize);o.pos<e.ch&&!o.eol();){o.start=o.pos;var s=r.token(o,n)}return{start:o.start,end:o.pos,string:o.current(),className:s||null,type:s||null,state:n}},getStateAfter:function(e){var t=this.doc;return e=Vt(t,null==e?t.first+t.size-1:e),O(this,e+1)},cursorCoords:function(e,t){var n,r=this.doc.sel;return n=null==e?r.head:"object"==typeof e?Ut(this.doc,e):e?r.from:r.to,q(this,n,t||"page")},charCoords:function(e,t){return U(this,Ut(this.doc,e),t||"page")},coordsChar:function(e,t){return e=V(this,e,t||"page"),X(this,e.left,e.top)},defaultTextHeight:function(){return Q(this.display)},defaultCharWidth:function(){return Y(this.display)},setGutterMarker:tt(null,function(e,t,n){return ln(this,e,function(e){var r=e.gutterMarkers||(e.gutterMarkers={});return r[t]=n,!n&&Qr(r)&&(e.gutterMarkers=null),!0})}),clearGutter:tt(null,function(e){var t=this,n=t.doc,r=n.first;n.iter(function(n){n.gutterMarkers&&n.gutterMarkers[e]&&(n.gutterMarkers[e]=null,it(t,r,r+1),Qr(n.gutterMarkers)&&(n.gutterMarkers=null)),++r})}),addLineClass:tt(null,function(e,t,n){return ln(this,e,function(e){var r="text"==t?"textClass":"background"==t?"bgClass":"wrapClass";if(e[r]){if(new RegExp("\\b"+n+"\\b").test(e[r]))return!1;e[r]+=" "+n}else e[r]=n;return!0})}),removeLineClass:tt(null,function(e,t,n){return ln(this,e,function(e){var r="text"==t?"textClass":"background"==t?"bgClass":"wrapClass",i=e[r];if(!i)return!1;if(null==n)e[r]=null;else{var o=i.replace(new RegExp("^"+n+"\\b\\s*|\\s*\\b"+n+"\\b"),"");if(o==i)return!1;e[r]=o||null}return!0})}),addLineWidget:tt(null,function(e,t,n){return zn(this,e,t,n)}),removeLineWidget:function(e){e.clear()},lineInfo:function(e){if("number"==typeof e){if(!Kt(this.doc,e))return null;var t=e;if(e=cr(this.doc,e),!e)return null}else{var t=hr(e);if(null==t)return null}return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},getViewport:function(){return{from:this.display.showingFrom,to:this.display.showingTo}},addWidget:function(e,t,n,r,i){var o=this.display;e=q(this,Ut(this.doc,e));var s=e.bottom,a=e.left;if(t.style.position="absolute",o.sizer.appendChild(t),"over"==r)s=e.top;else if("above"==r||"near"==r){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>l)&&e.top>t.offsetHeight?s=e.top-t.offsetHeight:l>=e.bottom+t.offsetHeight&&(s=e.bottom),a+t.offsetWidth>c&&(a=c-t.offsetWidth)}t.style.top=s+P(o)+"px",t.style.left=t.style.right="","right"==i?(a=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?a=0:"middle"==i&&(a=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=a+"px"),n&&nn(this,a,s,a+t.offsetWidth,s+t.offsetHeight)},triggerOnKeyDown:tt(null,Tt),execCommand:function(e){return Yi[e](this)},findPosH:function(e,t,n,r){var i=1;0>t&&(i=-1,t=-t);for(var o=0,s=Ut(this.doc,e);t>o&&(s=cn(this.doc,s,i,n,r),!s.hitSide);++o);return s},moveH:tt(null,function(e,t){var n,r=this.doc.sel;n=r.shift||r.extend||Rt(r.from,r.to)?cn(this.doc,r.head,e,t,this.options.rtlMoveVisually):0>e?r.from:r.to,Xt(this.doc,n,n,e)}),deleteH:tt(null,function(e,t){var n=this.doc.sel;Rt(n.from,n.to)?jt(this.doc,"",n.from,cn(this.doc,n.head,e,t,!1),"+delete"):jt(this.doc,"",n.from,n.to,"+delete"),this.curOp.userSelChange=!0}),findPosV:function(e,t,n,r){var i=1,o=r;0>t&&(i=-1,t=-t);for(var s=0,a=Ut(this.doc,e);t>s;++s){var l=q(this,a,"div");if(null==o?o=l.left:l.left=o,a=un(this,l,i,n),a.hitSide)break}return a},moveV:tt(null,function(e,t){var n=this.doc.sel,r=q(this,n.head,"div");null!=n.goalColumn&&(r.left=n.goalColumn);var i=un(this,r,e,t);"page"==t&&sn(this,0,U(this,i,"div").top-r.top),Xt(this.doc,i,i,e),n.goalColumn=r.left}),toggleOverwrite:function(){(this.state.overwrite=!this.state.overwrite)?this.display.cursor.className+=" CodeMirror-overwrite":this.display.cursor.className=this.display.cursor.className.replace(" CodeMirror-overwrite","")},hasFocus:function(){return this.state.focused},scrollTo:tt(null,function(e,t){on(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller,t=co;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-t,width:e.scrollWidth-t,clientHeight:e.clientHeight-t,clientWidth:e.clientWidth-t}},scrollIntoView:function(e,t){"number"==typeof e&&(e=Bt(e,0)),e&&null==e.line?nn(this,e.left,e.top-t,e.right,e.bottom+t):(e=e?Ut(this.doc,e):this.doc.sel.head,tn(this,e,t))},setSize:function(e,t){function n(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e}null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.refresh()},on:function(e,t){Or(this,e,t)},off:function(e,t){Pr(this,e,t)},operation:function(e){return rt(this,e)},refresh:tt(null,function(){z(this),on(this,this.doc.scrollLeft,this.doc.scrollTop),it(this)}),swapDoc:tt(null,function(e){var t=this.doc;return t.cm=null,lr(this,e),z(this),on(this,e.scrollLeft,e.scrollTop),t}),getInputField:function(){return this.display.input},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}};var Vi=e.optionHandlers={},Ui=e.defaults={},qi=e.Init={toString:function(){return"CodeMirror.Init"}};hn("value","",function(e,t){e.setValue(t)},!0),hn("mode",null,function(e,t){e.doc.modeOption=t,n(e)},!0),hn("indentUnit",2,n,!0),hn("indentWithTabs",!1),hn("smartIndent",!0),hn("tabSize",4,function(e){n(e),z(e),it(e)},!0),hn("electricChars",!0),hn("rtlMoveVisually",!Di),hn("theme","default",function(e){a(e),l(e)},!0),hn("keyMap","default",s),hn("extraKeys",null),hn("onKeyEvent",null),hn("onDragEvent",null),hn("lineWrapping",!1,r,!0),hn("gutters",[],function(e){f(e.options),l(e)},!0),hn("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?b(e.display)+"px":"0",e.refresh()},!0),hn("lineNumbers",!1,function(e){f(e.options),l(e)},!0),hn("firstLineNumber",1,l,!0),hn("lineNumberFormatter",function(e){return e},l,!0),hn("showCursorWhenSelecting",!1,L,!0),hn("readOnly",!1,function(e,t){"nocursor"==t?(Nt(e),e.display.input.blur()):t||lt(e,!0)}),hn("dragDrop",!0),hn("cursorBlinkRate",530),hn("cursorHeight",1),hn("workTime",100),hn("workDelay",100),hn("flattenSpans",!0),hn("pollInterval",100),hn("undoDepth",40,function(e,t){e.doc.history.undoDepth=t}),hn("viewportMargin",10,function(e){e.refresh()},!0),hn("tabindex",null,function(e,t){e.display.input.tabIndex=t||""}),hn("autofocus",null);var Ki=e.modes={},Xi=e.mimeModes={};e.defineMode=function(t,n){if(e.defaults.mode||"null"==t||(e.defaults.mode=t),arguments.length>2){n.dependencies=[];for(var r=2;arguments.length>r;++r)n.dependencies.push(arguments[r])}Ki[t]=n},e.defineMIME=function(e,t){Xi[e]=t},e.resolveMode=function(t){if("string"==typeof t&&Xi.hasOwnProperty(t))t=Xi[t];
else if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return e.resolveMode("application/xml");return"string"==typeof t?{name:t}:t||{name:"null"}},e.getMode=function(t,n){n=e.resolveMode(n);var r=Ki[n.name];if(!r)return e.getMode(t,"text/plain");var i=r(t,n);if(Ji.hasOwnProperty(n.name)){var o=Ji[n.name];for(var s in o)o.hasOwnProperty(s)&&(i.hasOwnProperty(s)&&(i["_"+s]=i[s]),i[s]=o[s])}return i.name=n.name,i},e.defineMode("null",function(){return{token:function(e){e.skipToEnd()}}}),e.defineMIME("text/plain","null");var Ji=e.modeExtensions={};e.extendMode=function(e,t){var n=Ji.hasOwnProperty(e)?Ji[e]:Ji[e]={};qr(t,n)},e.defineExtension=function(t,n){e.prototype[t]=n},e.defineOption=hn;var Qi=[];e.defineInitHook=function(e){Qi.push(e)},e.copyState=pn,e.startState=mn,e.innerMode=function(e,t){for(;e.innerMode;){var n=e.innerMode(t);t=n.state,e=n.mode}return n||{mode:e,state:t}};var Yi=e.commands={selectAll:function(e){e.setSelection(Bt(e.firstLine(),0),Bt(e.lastLine()))},killLine:function(e){var t=e.getCursor(!0),n=e.getCursor(!1),r=!Rt(t,n);r||e.getLine(t.line).length!=t.ch?e.replaceRange("",t,r?n:Bt(t.line),"+delete"):e.replaceRange("",t,Bt(t.line+1,0),"+delete")},deleteLine:function(e){var t=e.getCursor().line;e.replaceRange("",Bt(t,0),Bt(t),"+delete")},undo:function(e){e.undo()},redo:function(e){e.redo()},goDocStart:function(e){e.extendSelection(Bt(e.firstLine(),0))},goDocEnd:function(e){e.extendSelection(Bt(e.lastLine()))},goLineStart:function(e){e.extendSelection(ui(e,e.getCursor().line))},goLineStartSmart:function(e){var t=e.getCursor(),n=ui(e,t.line),r=e.getLineHandle(n.line),i=gr(r);if(i&&0!=i[0].level)e.extendSelection(n);else{var o=Math.max(0,r.text.search(/\S/)),s=t.line==n.line&&o>=t.ch&&t.ch;e.extendSelection(Bt(n.line,s?0:o))}},goLineEnd:function(e){e.extendSelection(di(e,e.getCursor().line))},goLineRight:function(e){var t=e.charCoords(e.getCursor(),"div").top+5;e.extendSelection(e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:t},"div"))},goLineLeft:function(e){var t=e.charCoords(e.getCursor(),"div").top+5;e.extendSelection(e.coordsChar({left:0,top:t},"div"))},goLineUp:function(e){e.moveV(-1,"line")},goLineDown:function(e){e.moveV(1,"line")},goPageUp:function(e){e.moveV(-1,"page")},goPageDown:function(e){e.moveV(1,"page")},goCharLeft:function(e){e.moveH(-1,"char")},goCharRight:function(e){e.moveH(1,"char")},goColumnLeft:function(e){e.moveH(-1,"column")},goColumnRight:function(e){e.moveH(1,"column")},goWordLeft:function(e){e.moveH(-1,"word")},goGroupRight:function(e){e.moveH(1,"group")},goGroupLeft:function(e){e.moveH(-1,"group")},goWordRight:function(e){e.moveH(1,"word")},delCharBefore:function(e){e.deleteH(-1,"char")},delCharAfter:function(e){e.deleteH(1,"char")},delWordBefore:function(e){e.deleteH(-1,"word")},delWordAfter:function(e){e.deleteH(1,"word")},delGroupBefore:function(e){e.deleteH(-1,"group")},delGroupAfter:function(e){e.deleteH(1,"group")},indentAuto:function(e){e.indentSelection("smart")},indentMore:function(e){e.indentSelection("add")},indentLess:function(e){e.indentSelection("subtract")},insertTab:function(e){e.replaceSelection("	","end","+input")},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.replaceSelection("	","end","+input")},transposeChars:function(e){var t=e.getCursor(),n=e.getLine(t.line);t.ch>0&&t.ch<n.length-1&&e.replaceRange(n.charAt(t.ch)+n.charAt(t.ch-1),Bt(t.line,t.ch-1),Bt(t.line,t.ch+1))},newlineAndIndent:function(e){tt(e,function(){e.replaceSelection("\n","end","+input"),e.indentLine(e.getCursor().line,null,!0)})()},toggleOverwrite:function(e){e.toggleOverwrite()}},Zi=e.keyMap={};Zi.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite"},Zi.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Alt-Up":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Down":"goDocEnd","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",fallthrough:"basic"},Zi.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineStart","Cmd-Right":"goLineEnd","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",fallthrough:["basic","emacsy"]},Zi["default"]=Ai?Zi.macDefault:Zi.pcDefault,Zi.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"},e.lookupKey=vn,e.isModifierKey=bn,e.keyName=yn,e.fromTextArea=function(t,n){function r(){t.value=c.getValue()}if(n||(n={}),n.value=t.value,!n.tabindex&&t.tabindex&&(n.tabindex=t.tabindex),!n.placeholder&&t.placeholder&&(n.placeholder=t.placeholder),null==n.autofocus){var i=document.body;try{i=document.activeElement}catch(o){}n.autofocus=i==t||null!=t.getAttribute("autofocus")&&i==document.body}if(t.form&&(Or(t.form,"submit",r),!n.leaveSubmitMethodAlone)){var s=t.form,a=s.submit;try{var l=s.submit=function(){r(),s.submit=a,s.submit(),s.submit=l}}catch(o){}}t.style.display="none";var c=e(function(e){t.parentNode.insertBefore(e,t.nextSibling)},n);return c.save=r,c.getTextArea=function(){return t},c.toTextArea=function(){r(),t.parentNode.removeChild(c.getWrapperElement()),t.style.display="",t.form&&(Pr(t.form,"submit",r),"function"==typeof t.form.submit&&(t.form.submit=a))},c},wn.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return 0==this.pos},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){return this.pos<this.string.length?this.string.charAt(this.pos++):void 0},eat:function(e){var t=this.string.charAt(this.pos);if("string"==typeof e)var n=t==e;else var n=t&&(e.test?e.test(t):e(t));return n?(++this.pos,t):void 0},eatWhile:function(e){for(var t=this.pos;this.eat(e););return this.pos>t},eatSpace:function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);return t>-1?(this.pos=t,!0):void 0},backUp:function(e){this.pos-=e},column:function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=Br(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue},indentation:function(){return Br(this.string,null,this.tabSize)},match:function(e,t,n){if("string"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&t!==!1&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e},o=this.string.substr(this.pos,e.length);return i(o)==i(e)?(t!==!1&&(this.pos+=e.length),!0):void 0},current:function(){return this.string.slice(this.start,this.pos)}},e.StringStream=wn,e.TextMarker=xn,xn.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;t&&Z(e);for(var n=null,r=null,i=0;this.lines.length>i;++i){var o=this.lines[i],s=Tn(o.markedSpans,this);null!=s.to&&(r=hr(o)),o.markedSpans=En(o.markedSpans,s),null!=s.from?n=hr(o):this.collapsed&&!Fn(this.doc,o)&&e&&fr(o,Q(e.display))}if(e&&this.collapsed&&!e.options.lineWrapping)for(var i=0;this.lines.length>i;++i){var a=_n(e.doc,this.lines[i]),l=u(e.doc,a);l>e.display.maxLineLength&&(e.display.maxLine=a,e.display.maxLineLength=l,e.display.maxLineChanged=!0)}null!=n&&e&&it(e,n,r+1),this.lines.length=0,this.explicitlyCleared=!0,this.collapsed&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&Yt(e)),t&&et(e),Fr(this,"clear")}},xn.prototype.find=function(){for(var e,t,n=0;this.lines.length>n;++n){var r=this.lines[n],i=Tn(r.markedSpans,this);if(null!=i.from||null!=i.to){var o=hr(r);null!=i.from&&(e=Bt(o,i.from)),null!=i.to&&(t=Bt(o,i.to))}}return"bookmark"==this.type?e:e&&{from:e,to:t}},xn.prototype.getOptions=function(e){var t=this.replacedWith;return{className:this.className,inclusiveLeft:this.inclusiveLeft,inclusiveRight:this.inclusiveRight,atomic:this.atomic,collapsed:this.collapsed,replacedWith:e?t&&t.cloneNode(!0):t,readOnly:this.readOnly,startStyle:this.startStyle,endStyle:this.endStyle}},xn.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=Vr(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},xn.prototype.detachLine=function(e){if(this.lines.splice(Vr(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},e.SharedTextMarker=Sn,Sn.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;this.markers.length>e;++e)this.markers[e].clear();Fr(this,"clear")}},Sn.prototype.find=function(){return this.primary.find()},Sn.prototype.getOptions=function(e){var t=this.primary.getOptions(e);return t.shared=!0,t};var eo=e.LineWidget=function(e,t,n){for(var r in n)n.hasOwnProperty(r)&&(this[r]=n[r]);this.cm=e,this.node=t};eo.prototype.clear=Bn(function(){var e=this.line.widgets,t=hr(this.line);if(null!=t&&e){for(var n=0;e.length>n;++n)e[n]==this&&e.splice(n--,1);e.length||(this.line.widgets=null),fr(this.line,Math.max(0,this.line.height-Rn(this))),it(this.cm,t,t+1)}}),eo.prototype.changed=Bn(function(){var e=this.height;this.height=null;var t=Rn(this)-e;if(t){fr(this.line,this.line.height+t);var n=hr(this.line);it(this.cm,n,n+1)}});var to={},no=/[\t\u0000-\u0019\u00ad\u200b\u2028\u2029\uFEFF]/g;or.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=e,r=e+t;r>n;++n){var i=this.lines[n];this.height-=i.height,Un(i),Fr(i,"delete")}this.lines.splice(e,t)},collapse:function(e){e.splice.apply(e,[e.length,0].concat(this.lines))},insertInner:function(e,t,n){this.height+=n,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var r=0,i=t.length;i>r;++r)t[r].parent=this},iterN:function(e,t,n){for(var r=e+t;r>e;++e)if(n(this.lines[e]))return!0}},sr.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var n=0;this.children.length>n;++n){var r=this.children[n],i=r.chunkSize();if(i>e){var o=Math.min(t,i-e),s=r.height;if(r.removeInner(e,o),this.height-=s-r.height,i==o&&(this.children.splice(n--,1),r.parent=null),0==(t-=o))break;e=0}else e-=i}if(25>this.size-t){var a=[];this.collapse(a),this.children=[new or(a)],this.children[0].parent=this}},collapse:function(e){for(var t=0,n=this.children.length;n>t;++t)this.children[t].collapse(e)},insertInner:function(e,t,n){this.size+=t.length,this.height+=n;for(var r=0,i=this.children.length;i>r;++r){var o=this.children[r],s=o.chunkSize();if(s>=e){if(o.insertInner(e,t,n),o.lines&&o.lines.length>50){for(;o.lines.length>50;){var a=o.lines.splice(o.lines.length-25,25),l=new or(a);o.height-=l.height,this.children.splice(r+1,0,l),l.parent=this}this.maybeSpill()}break}e-=s}},maybeSpill:function(){if(!(10>=this.children.length)){var e=this;do{var t=e.children.splice(e.children.length-5,5),n=new sr(t);if(e.parent){e.size-=n.size,e.height-=n.height;var r=Vr(e.parent.children,e);e.parent.children.splice(r+1,0,n)}else{var i=new sr(e.children);i.parent=e,e.children=[i,n],e=i}n.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0,i=this.children.length;i>r;++r){var o=this.children[r],s=o.chunkSize();if(s>e){var a=Math.min(t,s-e);if(o.iterN(e,a,n))return!0;if(0==(t-=a))break;e=0}else e-=s}}};var ro=0,io=e.Doc=function(e,t,n){if(!(this instanceof io))return new io(e,t,n);null==n&&(n=0),sr.call(this,[new or([Wn("",null)])]),this.first=n,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.history=vr(),this.frontier=n;var r=Bt(n,0);this.sel={from:r,to:r,head:r,anchor:r,shift:!1,extend:!1,goalColumn:null},this.id=++ro,this.modeOption=t,"string"==typeof e&&(e=yo(e)),ir(this,{from:r,to:r,text:e},null,{head:r,anchor:r})};io.prototype=Ur(sr.prototype,{iter:function(e,t,n){n?this.iterN(e-this.first,t-e,n):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var n=0,r=0,i=t.length;i>r;++r)n+=t[r].height;this.insertInner(e-this.first,t,n)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=dr(this,this.first,this.first+this.size);return e===!1?t:t.join(e||"\n")},setValue:function(e){var t=Bt(this.first,0),n=this.first+this.size-1;Ot(this,{from:t,to:Bt(n,cr(this,n).text.length),text:yo(e),origin:"setValue"},{head:t,anchor:t},!0)},replaceRange:function(e,t,n,r){t=Ut(this,t),n=n?Ut(this,n):t,jt(this,e,t,n,r)},getRange:function(e,t,n){var r=ur(this,Ut(this,e),Ut(this,t));return n===!1?r:r.join(n||"\n")},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},setLine:function(e,t){Kt(this,e)&&jt(this,t,Bt(e,0),Ut(this,Bt(e)))},removeLine:function(e){Kt(this,e)&&jt(this,"",Bt(e,0),Ut(this,Bt(e+1,0)))},getLineHandle:function(e){return Kt(this,e)?cr(this,e):void 0},getLineNumber:function(e){return hr(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return Ut(this,e)},getCursor:function(e){var t,n=this.sel;return t=null==e||"head"==e?n.head:"anchor"==e?n.anchor:"end"==e||e===!1?n.to:n.from,Wt(t)},somethingSelected:function(){return!Rt(this.sel.head,this.sel.anchor)},setCursor:nt(function(e,t,n){var r=Ut(this,"number"==typeof e?Bt(e,t||0):e);n?Xt(this,r):Qt(this,r,r)}),setSelection:nt(function(e,t){Qt(this,Ut(this,e),Ut(this,t||e))}),extendSelection:nt(function(e,t){Xt(this,Ut(this,e),t&&Ut(this,t))}),getSelection:function(e){return this.getRange(this.sel.from,this.sel.to,e)},replaceSelection:function(e,t,n){Ot(this,{from:this.sel.from,to:this.sel.to,text:yo(e),origin:n},t||"around")},undo:nt(function(){_t(this,"undo")}),redo:nt(function(){_t(this,"redo")}),setExtending:function(e){this.sel.extend=e},historySize:function(){var e=this.history;return{undo:e.done.length,redo:e.undone.length}},clearHistory:function(){this.history=vr()},markClean:function(){this.history.dirtyCounter=0,this.history.lastOp=this.history.lastOrigin=null},isClean:function(){return 0==this.history.dirtyCounter},getHistory:function(){return{done:Sr(this.history.done),undone:Sr(this.history.undone)}},setHistory:function(e){var t=this.history=vr();t.done=e.done.slice(0),t.undone=e.undone.slice(0)},markText:function(e,t,n){return Cn(this,Ut(this,e),Ut(this,t),n,"range")},setBookmark:function(e,t){var n={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft};return e=Ut(this,e),Cn(this,e,e,n,"bookmark")},findMarksAt:function(e){e=Ut(this,e);var t=[],n=cr(this,e.line).markedSpans;if(n)for(var r=0;n.length>r;++r){var i=n[r];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;n.length>r;++r)null!=n[r].from&&e.push(n[r].marker)}),e},posFromIndex:function(e){var t,n=this.first;return this.iter(function(r){var i=r.text.length+1;return i>e?(t=e,!0):(e-=i,++n,void 0)}),Ut(this,Bt(n,t))},indexFromPos:function(e){e=Ut(this,e);var t=e.ch;return e.line<this.first||0>e.ch?0:(this.iter(this.first,e.line,function(e){t+=e.text.length+1}),t)},copy:function(e){var t=new io(dr(this,this.first,this.first+this.size),this.modeOption,this.first);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel={from:this.sel.from,to:this.sel.to,head:this.sel.head,anchor:this.sel.anchor,shift:this.sel.shift,extend:!1,goalColumn:this.sel.goalColumn},e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&n>e.to&&(n=e.to);var r=new io(dr(this,t,n),e.mode||this.modeOption,t);return e.sharedHist&&(r.history=this.history),(this.linked||(this.linked=[])).push({doc:r,sharedHist:e.sharedHist}),r.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],r},unlinkDoc:function(t){if(t instanceof e&&(t=t.doc),this.linked)for(var n=0;this.linked.length>n;++n){var r=this.linked[n];if(r.doc==t){this.linked.splice(n,1),t.unlinkDoc(this);break}}if(t.history==this.history){var i=[t.id];ar(t,function(e){i.push(e.id)},!0),t.history=vr(),t.history.done=Sr(this.history.done,i),t.history.undone=Sr(this.history.undone,i)}},iterLinkedDocs:function(e){ar(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm}}),io.prototype.eachLine=io.prototype.iter;var oo="iter insert remove copy getEditor".split(" ");for(var so in io.prototype)io.prototype.hasOwnProperty(so)&&0>Vr(oo,so)&&(e.prototype[so]=function(e){return function(){return e.apply(this.doc,arguments)}}(io.prototype[so]));e.e_stop=Mr,e.e_preventDefault=Ar,e.e_stopPropagation=Dr;var ao,lo=0;e.on=Or,e.off=Pr,e.signal=_r;var co=30,uo=e.Pass={toString:function(){return"CodeMirror.Pass"}};jr.prototype={set:function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)}},e.countColumn=Br;var fo=[""],ho=/[\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc]/,po=/[\u0300-\u036F\u0483-\u0487\u0488-\u0489\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\uA66F\uA670-\uA672\uA674-\uA67D\uA69F\udc00-\udfff]/;e.replaceGetRect=function(e){ni=e};var mo=function(){if(vi)return!1;var e=Yr("div");return"draggable"in e||"dragDrop"in e}(),go=/^$/;pi?go=/$'/:Ci&&!/Version\/([6-9]|\d\d)\b/.test(navigator.userAgent)?go=/\-[^ \-?]|\?[^ !'\"\),.\-\/:;\?\]\}]/:bi&&(go=/[~!#%&*)=+}\]|\"\.>,:;][({[<]|-[^\-?\.]|\?[\w~`@#$%\^&*(_=+{[|><]/);var vo,bo,yo=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;r>=t;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),s=o.indexOf("\r");-1!=s?(n.push(o.slice(0,s)),t+=s+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)};e.splitLines=yo;var wo=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){try{var t=e.ownerDocument.selection.createRange()}catch(n){}return t&&t.parentElement()==e?0!=t.compareEndPoints("StartToEnd",t):!1},xo=function(){var e=Yr("div");return"oncopy"in e?!0:(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Co={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:";",91:"Mod",92:"Mod",93:"Mod",109:"-",107:"=",127:"Delete",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63276:"PageUp",63277:"PageDown",63275:"End",63273:"Home",63234:"Left",63232:"Up",63235:"Right",63233:"Down",63302:"Insert",63272:"Delete"};e.keyNames=Co,function(){for(var e=0;10>e;e++)Co[e+48]=String(e);for(var e=65;90>=e;e++)Co[e]=String.fromCharCode(e);for(var e=1;12>=e;e++)Co[e+111]=Co[e+63235]="F"+e}();var So=function(){function e(e){return 255>=e?t.charAt(e):e>=1424&&1524>=e?"R":e>=1536&&1791>=e?n.charAt(e-1536):e>=1792&&2220>=e?"r":"L"}var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL",n="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmmrrrrrrrrrrrrrrrrrr",r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,o=/[LRr]/,s=/[Lb1n]/,a=/[1n]/,l="L";return function(t){if(!r.test(t))return!1;for(var n,c=t.length,u=[],d=0;c>d;++d)u.push(n=e(t.charCodeAt(d)));for(var d=0,f=l;c>d;++d){var n=u[d];"m"==n?u[d]=f:f=n}for(var d=0,h=l;c>d;++d){var n=u[d];"1"==n&&"r"==h?u[d]="n":o.test(n)&&(h=n,"r"==n&&(u[d]="R"))}for(var d=1,f=u[0];c-1>d;++d){var n=u[d];"+"==n&&"1"==f&&"1"==u[d+1]?u[d]="1":","!=n||f!=u[d+1]||"1"!=f&&"n"!=f||(u[d]=f),f=n}for(var d=0;c>d;++d){var n=u[d];if(","==n)u[d]="N";else if("%"==n){for(var p=d+1;c>p&&"%"==u[p];++p);for(var m=d&&"!"==u[d-1]||c-1>p&&"1"==u[p]?"1":"N",g=d;p>g;++g)u[g]=m;d=p-1}}for(var d=0,h=l;c>d;++d){var n=u[d];"L"==h&&"1"==n?u[d]="L":o.test(n)&&(h=n)}for(var d=0;c>d;++d)if(i.test(u[d])){for(var p=d+1;c>p&&i.test(u[p]);++p);for(var v="L"==(d?u[d-1]:l),b="L"==(c-1>p?u[p]:l),m=v||b?"L":"R",g=d;p>g;++g)u[g]=m;d=p-1}for(var y,w=[],d=0;c>d;)if(s.test(u[d])){var x=d;for(++d;c>d&&s.test(u[d]);++d);w.push({from:x,to:d,level:0})}else{var C=d,S=w.length;for(++d;c>d&&"L"!=u[d];++d);for(var g=C;d>g;)if(a.test(u[g])){g>C&&w.splice(S,0,{from:C,to:g,level:1});var k=g;for(++g;d>g&&a.test(u[g]);++g);w.splice(S,0,{from:k,to:g,level:2}),C=g}else++g;d>C&&w.splice(S,0,{from:C,to:d,level:1})}return 1==w[0].level&&(y=t.match(/^\s+/))&&(w[0].from=y[0].length,w.unshift({from:0,to:y[0].length,level:0})),1==zr(w).level&&(y=t.match(/\s+$/))&&(zr(w).to-=y[0].length,w.push({from:c-y[0].length,to:c,level:0})),w[0].level!=zr(w).level&&w.push({from:c,to:c,level:w[0].level}),w}}();return e.version="3.11",e}(),function(){function e(e){function t(t,n,r){if(t.text){var o=c?0:t.text.length-1,a=c?t.text.length:-1;for(null!=r&&(o=r+u);o!=a;o+=u){var l=t.text.charAt(o);if(h.test(l)&&e.getTokenAt(i(n,o+1)).type==d){var p=s[l];if(">"==p.charAt(1)==c)f.push(l);else{if(f.pop()!=p.charAt(0))return{pos:o,match:!1};if(!f.length)return{pos:o,match:!0}}}}}}var n=e.getCursor(),r=e.getLineHandle(n.line),o=n.ch-1,a=o>=0&&s[r.text.charAt(o)]||s[r.text.charAt(++o)];if(!a)return null;for(var l,c=">"==a.charAt(1),u=c?1:-1,d=e.getTokenAt(i(n.line,o+1)).type,f=[r.text.charAt(o)],h=/[(){}[\]]/,p=n.line,m=c?Math.min(p+100,e.lineCount()):Math.max(-1,p-100);p!=m&&!(l=p==n.line?t(r,p,o):t(e.getLineHandle(p),p));p+=u);return{from:i(n.line,o),to:l&&i(p,l.pos),match:l&&l.match}}function t(t,n){var s=e(t);if(!(!s||t.getLine(s.from.line).length>o||s.to&&t.getLine(s.to.line).length>o)){var a=s.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket",l=t.markText(s.from,i(s.from.line,s.from.ch+1),{className:a}),c=s.to&&t.markText(s.to,i(s.to.line,s.to.ch+1),{className:a});r&&t.state.focused&&t.display.input.focus();var u=function(){t.operation(function(){l.clear(),c&&c.clear()})};return n?(setTimeout(u,800),void 0):u}}function n(e){e.operation(function(){a&&(a(),a=null),e.somethingSelected()||(a=t(e,!1))})}var r=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||8>document.documentMode),i=CodeMirror.Pos,o=1e3,s={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},a=null;CodeMirror.defineOption("matchBrackets",!1,function(e,t){t?e.on("cursorActivity",n):e.off("cursorActivity",n)}),CodeMirror.defineExtension("matchBrackets",function(){t(this,!0)}),CodeMirror.defineExtension("findMatchingBracket",function(){return e(this)})}(),CodeMirror.defineMode("javascript",function(e,t){function n(e,t,n){return t.tokenize=n,n(e,t)}function r(e,t){for(var n,r=!1;null!=(n=e.next());){if(n==t&&!r)return!1;r=!r&&"\\"==n}return r}function i(e,t,n){return G=e,j=n,t}function o(e,t){var o=e.next();if('"'==o||"'"==o)return n(e,t,s(o));if(/[\[\]{}\(\),;\:\.]/.test(o))return i(o);if("0"==o&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),i("number","number");if(/\d/.test(o)||"-"==o&&e.eat(/\d/))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),i("number","number");if("/"==o)return e.eat("*")?n(e,t,a):e.eat("/")?(e.skipToEnd(),i("comment","comment")):"operator"==t.lastType||"keyword c"==t.lastType||/^[\[{}\(,;:]$/.test(t.lastType)?(r(e,"/"),e.eatWhile(/[gimy]/),i("regexp","string-2")):(e.eatWhile(V),i("operator",null,e.current()));if("#"==o)return e.skipToEnd(),i("error","error");if(V.test(o))return e.eatWhile(V),i("operator",null,e.current());e.eatWhile(/[\w\$_]/);var l=e.current(),c=W.propertyIsEnumerable(l)&&W[l];return c&&"."!=t.lastType?i(c.type,c.style,l):i("variable","variable",l)}function s(e){return function(t,n){return r(t,e)||(n.tokenize=o),i("string","string")}}function a(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=o;break}r="*"==n}return i("comment","comment")}function l(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function c(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0}function u(e,t,n,r,i){var o=e.cc;for(q.state=e,q.stream=i,q.marked=null,q.cc=o,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){var s=o.length?o.pop():R?w:y;if(s(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return q.marked?q.marked:"variable"==n&&c(e,r)?"variable-2":t}}}function d(){for(var e=arguments.length-1;e>=0;e--)q.cc.push(arguments[e])}function f(){return d.apply(null,arguments),!0}function h(e){function t(t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}var n=q.state;if(n.context){if(q.marked="def",t(n.localVars))return;n.localVars={name:e,next:n.localVars}}else{if(t(n.globalVars))return;n.globalVars={name:e,next:n.globalVars}}}function p(){q.state.context={prev:q.state.context,vars:q.state.localVars},q.state.localVars=K}function m(){q.state.localVars=q.state.context.vars,q.state.context=q.state.context.prev}function g(e,t){var n=function(){var n=q.state;n.lexical=new l(n.indented,q.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function v(){var e=q.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function b(e){return function(t){return t==e?f():";"==e?d():f(arguments.callee)}}function y(e){return"var"==e?f(g("vardef"),M,b(";"),v):"keyword a"==e?f(g("form"),w,y,v):"keyword b"==e?f(g("form"),y,v):"{"==e?f(g("}"),N,v):";"==e?f():"function"==e?f(F):"for"==e?f(g("form"),b("("),g(")"),$,b(")"),v,y,v):"variable"==e?f(g("stat"),S):"switch"==e?f(g("form"),w,g("}","switch"),b("{"),N,v,v):"case"==e?f(w,b(":")):"default"==e?f(b(":")):"catch"==e?f(g("form"),p,b("("),H,b(")"),y,v,m):d(g("stat"),w,b(";"),v)}function w(e){return U.hasOwnProperty(e)?f(C):"function"==e?f(F):"keyword c"==e?f(x):"("==e?f(g(")"),x,b(")"),v,C):"operator"==e?f(w):"["==e?f(g("]"),L(w,"]"),v,C):"{"==e?f(g("}"),L(T,"}"),v,C):f()}function x(e){return e.match(/[;\}\)\],]/)?d():d(w)}function C(e,t){if("operator"==e)return/\+\+|--/.test(t)?f(C):"?"==t?f(w,b(":"),w):f(w);if(";"!=e)return"("==e?f(g(")"),L(w,")"),v,C):"."==e?f(k,C):"["==e?f(g("]"),w,b("]"),v,C):void 0}function S(e){return":"==e?f(v,y):d(C,b(";"),v)}function k(e){return"variable"==e?(q.marked="property",f()):void 0}function T(e,t){if("variable"==e){if(q.marked="property","get"==t||"set"==t)return f(E)}else("number"==e||"string"==e)&&(q.marked=e+" property");return U.hasOwnProperty(e)?f(b(":"),w):void 0}function E(e){return":"==e?f(w):"variable"!=e?f(b(":"),w):(q.marked="property",f(F))}function L(e,t){function n(r){return","==r?f(e,n):r==t?f():f(b(t))}return function(r){return r==t?f():d(e,n)}}function N(e){return"}"==e?f():d(y,N)}function A(e){return":"==e?f(D):d()}function D(e){return"variable"==e?(q.marked="variable-3",f()):d()}function M(e,t){return"variable"==e?(h(t),z?f(A,I):f(I)):d()}function I(e,t){return"="==t?f(w,I):","==e?f(M):void 0}function $(e){return"var"==e?f(M,b(";"),P):";"==e?f(P):"variable"==e?f(O):f(P)}function O(e,t){return"in"==t?f(w):f(C,P)}function P(e,t){return";"==e?f(_):"in"==t?f(w):f(w,b(";"),_)}function _(e){")"!=e&&f(w)}function F(e,t){return"variable"==e?(h(t),f(F)):"("==e?f(g(")"),p,L(H,")"),v,y,m):void 0}function H(e,t){return"variable"==e?(h(t),z?f(A):f()):void 0}var G,j,B=e.indentUnit,R=t.json,z=t.typescript,W=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),n=e("keyword b"),r=e("keyword c"),i=e("operator"),o={type:"atom",style:"atom"},s={"if":t,"while":t,"with":t,"else":n,"do":n,"try":n,"finally":n,"return":r,"break":r,"continue":r,"new":r,"delete":r,"throw":r,"var":e("var"),"const":e("var"),let:e("var"),"function":e("function"),"catch":e("catch"),"for":e("for"),"switch":e("switch"),"case":e("case"),"default":e("default"),"in":i,"typeof":i,"instanceof":i,"true":o,"false":o,"null":o,undefined:o,NaN:o,Infinity:o,"this":e("this")};if(z){var a={type:"variable",style:"variable-3"},l={"interface":e("interface"),"class":e("class"),"extends":e("extends"),constructor:e("constructor"),"public":e("public"),"private":e("private"),"protected":e("protected"),"static":e("static"),"super":e("super"),string:a,number:a,bool:a,any:a};for(var c in l)s[c]=l[c]}return s}(),V=/[+\-*&%=<>!?|~^]/,U={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,"this":!0},q={state:null,column:null,marked:null,cc:null},K={name:"this",next:{name:"arguments"}};return v.lex=!0,{startState:function(e){return{tokenize:o,lastType:null,cc:[],lexical:new l((e||0)-B,0,"block",!1),localVars:t.localVars,globalVars:t.globalVars,context:t.localVars&&{vars:t.localVars},indented:0}},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==G?n:(t.lastType=G,u(t,n,G,j,e))},indent:function(e,t){if(e.tokenize==a)return CodeMirror.Pass;if(e.tokenize!=o)return 0;var n=t&&t.charAt(0),r=e.lexical;"stat"==r.type&&"}"==n&&(r=r.prev);var i=r.type,s=n==i;return"vardef"==i?r.indented+("operator"==e.lastType||","==e.lastType?4:0):"form"==i&&"{"==n?r.indented:"form"==i?r.indented+B:"stat"==i?r.indented+("operator"==e.lastType||","==e.lastType?B:0):"switch"!=r.info||s?r.align?r.column+(s?0:1):r.indented+(s?0:B):r.indented+(/^(?:case|default)\b/.test(t)?B:2*B)},electricChars:":{}",jsonMode:R}}),CodeMirror.defineMIME("text/javascript","javascript"),CodeMirror.defineMIME("text/ecmascript","javascript"),CodeMirror.defineMIME("application/javascript","javascript"),CodeMirror.defineMIME("application/ecmascript","javascript"),CodeMirror.defineMIME("application/json",{name:"javascript",json:!0}),CodeMirror.defineMIME("text/typescript",{name:"javascript",typescript:!0}),CodeMirror.defineMIME("application/typescript",{name:"javascript",typescript:!0}),!function(e){"use strict";function t(){e(r).each(function(){n(e(this)).removeClass("open")})}function n(t){var n,r=t.attr("data-target");return r||(r=t.attr("href"),r=r&&/#/.test(r)&&r.replace(/.*(?=#[^\s]*$)/,"")),n=r&&e(r),n&&n.length||(n=t.parent()),n}var r="[data-toggle=dropdown]",i=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};i.prototype={constructor:i,toggle:function(){var r,i,o=e(this);if(!o.is(".disabled, :disabled"))return r=n(o),i=r.hasClass("open"),t(),i||r.toggleClass("open"),o.focus(),!1},keydown:function(t){var i,o,s,a,l;if(/(38|40|27)/.test(t.keyCode)&&(i=e(this),t.preventDefault(),t.stopPropagation(),!i.is(".disabled, :disabled"))){if(s=n(i),a=s.hasClass("open"),!a||a&&27==t.keyCode)return 27==t.which&&s.find(r).focus(),i.click();o=e("[role=menu] li:not(.divider):visible a",s),o.length&&(l=o.index(o.filter(":focus")),38==t.keyCode&&l>0&&l--,40==t.keyCode&&o.length-1>l&&l++,~l||(l=0),o.eq(l).focus())}}};var o=e.fn.dropdown;e.fn.dropdown=function(t){return this.each(function(){var n=e(this),r=n.data("dropdown");r||n.data("dropdown",r=new i(this)),"string"==typeof t&&r[t].call(n)})},e.fn.dropdown.Constructor=i,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=o,this},e(document).on("click.dropdown.data-api",t).on("click.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown-menu",function(e){e.stopPropagation()}).on("click.dropdown.data-api",r,i.prototype.toggle).on("keydown.dropdown.data-api",r+", [role=menu]",i.prototype.keydown)}(window.jQuery),!function(e){"use strict";
var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,o,s,a,l;for(this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,s=this.options.trigger.split(" "),l=s.length;l--;)a=s[l],"click"==a?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):"manual"!=a&&(i="hover"==a?"mouseenter":"focus",o="hover"==a?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(o+"."+this.type,this.options.selector,e.proxy(this.leave,this)));this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,this.$element.data(),t),t.delay&&"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n,r=e.fn[this.type].defaults,i={};return this._options&&e.each(this._options,function(e,t){r[e]!=t&&(i[e]=t)},this),n=e(t.currentTarget)[this.type](i).data(this.type),n.options.delay&&n.options.delay.show?(clearTimeout(this.timeout),n.hoverState="in",this.timeout=setTimeout(function(){"in"==n.hoverState&&n.show()},n.options.delay.show),void 0):n.show()},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);return this.timeout&&clearTimeout(this.timeout),n.options.delay&&n.options.delay.hide?(n.hoverState="out",this.timeout=setTimeout(function(){"out"==n.hoverState&&n.hide()},n.options.delay.hide),void 0):n.hide()},show:function(){var t,n,r,i,o,s,a=e.Event("show");if(this.hasContent()&&this.enabled){if(this.$element.trigger(a),a.isDefaultPrevented())return;switch(t=this.tip(),this.setContent(),this.options.animation&&t.addClass("fade"),o="function"==typeof this.options.placement?this.options.placement.call(this,t[0],this.$element[0]):this.options.placement,t.detach().css({top:0,left:0,display:"block"}),this.options.container?t.appendTo(this.options.container):t.insertAfter(this.$element),n=this.getPosition(),r=t[0].offsetWidth,i=t[0].offsetHeight,o){case"bottom":s={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":s={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":s={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":s={top:n.top+n.height/2-i/2,left:n.left+n.width}}this.applyPlacement(s,o),this.$element.trigger("shown")}},applyPlacement:function(e,t){var n,r,i,o,s=this.tip(),a=s[0].offsetWidth,l=s[0].offsetHeight;s.offset(e).addClass(t).addClass("in"),n=s[0].offsetWidth,r=s[0].offsetHeight,"top"==t&&r!=l&&(e.top=e.top+l-r,o=!0),"bottom"==t||"top"==t?(i=0,0>e.left&&(i=-2*e.left,e.left=0,s.offset(e),n=s[0].offsetWidth,r=s[0].offsetHeight),this.replaceArrow(i-a+n,n,"left")):this.replaceArrow(r-l,r,"top"),o&&s.offset(e)},replaceArrow:function(e,t,n){this.arrow().css(n,e?50*(1-e/t)+"%":"")},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function t(){var t=setTimeout(function(){n.off(e.support.transition.end).detach()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.detach()})}var n=this.tip(),r=e.Event("hide");return this.$element.trigger(r),r.isDefaultPrevented()?void 0:(n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?t():n.detach(),this.$element.trigger("hidden"),this)},fixTitle:function(){var e=this.$element;(e.attr("title")||"string"!=typeof e.attr("data-original-title"))&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var t=this.$element[0];return e.extend({},"function"==typeof t.getBoundingClientRect?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||("function"==typeof n.title?n.title.call(t[0]):n.title)},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=t?e(t.currentTarget)[this.type](this._options).data(this.type):this;n.tip().hasClass("in")?n.hide():n.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var n=e.fn.tooltip;e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),o="object"==typeof n&&n;i||r.data("tooltip",i=new t(this,o)),"string"==typeof n&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.fn.tooltip.noConflict=function(){return e.fn.tooltip=n,this}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=("function"==typeof n.content?n.content.call(t[0]):n.content)||t.attr("data-content")},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var n=e.fn.popover;e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),o="object"==typeof n&&n;i||r.data("popover",i=new t(this,o)),"string"==typeof n&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n),this.isShown||n.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")}))},hide:function(t){t&&t.preventDefault(),t=e.Event("hide"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal())},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]===e.target||t.$element.has(e.target).length||t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){27==t.which&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(){var e=this;this.$element.hide(),this.backdrop(function(){e.removeBackdrop(),e.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var r=e.support.transition&&n;if(this.$backdrop=e('<div class="modal-backdrop '+n+'" />').appendTo(document.body),this.$backdrop.click("static"==this.options.backdrop?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),r&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!t)return;r?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,t):t()):t&&t()}};var n=e.fn.modal;e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),o=e.extend({},e.fn.modal.defaults,r.data(),"object"==typeof n&&n);i||r.data("modal",i=new t(this,o)),"string"==typeof n?i[n]():o.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e.fn.modal.noConflict=function(){return e.fn.modal=n,this},e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),o=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(o).one("hide",function(){n.focus()})})}(window.jQuery),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["exports"],t):"undefined"!=typeof exports?t(exports):t(e.esprima={})}(this,function(e){"use strict";function t(e,t){if(!e)throw new Error("ASSERT: "+t)}function n(e,t){return hn.slice(e,t)}function r(e){return"0123456789".indexOf(e)>=0}function i(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function o(e){return"01234567".indexOf(e)>=0}function s(e){return" "===e||"	"===e||""===e||"\f"===e||"\u00a0"===e||e.charCodeAt(0)>=5760&&"\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\ufeff".indexOf(e)>=0}function a(e){return"\n"===e||"\r"===e||"\u2028"===e||"\u2029"===e}function l(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e.charCodeAt(0)>=128&&fn.NonAsciiIdentifierStart.test(e)}function c(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e>="0"&&"9">=e||e.charCodeAt(0)>=128&&fn.NonAsciiIdentifierPart.test(e)}function u(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0}return!1}function d(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0}return!1}function f(e){return"eval"===e||"arguments"===e}function h(e){var t=!1;switch(e.length){case 2:t="if"===e||"in"===e||"do"===e;break;case 3:t="var"===e||"for"===e||"new"===e||"try"===e;break;case 4:t="this"===e||"else"===e||"case"===e||"void"===e||"with"===e;break;case 5:t="while"===e||"break"===e||"catch"===e||"throw"===e;break;case 6:t="return"===e||"typeof"===e||"delete"===e||"switch"===e;break;case 7:t="default"===e||"finally"===e;break;case 8:t="function"===e||"continue"===e||"debugger"===e;break;case 10:t="instanceof"===e}if(t)return!0;switch(e){case"const":return!0;case"yield":case"let":return!0}return pn&&d(e)?!0:u(e)}function p(){var e,t,n;for(t=!1,n=!1;bn>mn;)if(e=hn[mn],n)e=hn[mn++],a(e)&&(n=!1,"\r"===e&&"\n"===hn[mn]&&++mn,++gn,vn=mn);else if(t)a(e)?("\r"===e&&"\n"===hn[mn+1]&&++mn,++gn,++mn,vn=mn,mn>=bn&&E({},dn.UnexpectedToken,"ILLEGAL")):(e=hn[mn++],mn>=bn&&E({},dn.UnexpectedToken,"ILLEGAL"),"*"===e&&(e=hn[mn],"/"===e&&(++mn,t=!1)));else if("/"===e)if(e=hn[mn+1],"/"===e)mn+=2,n=!0;else{if("*"!==e)break;mn+=2,t=!0,mn>=bn&&E({},dn.UnexpectedToken,"ILLEGAL")}else if(s(e))++mn;else{if(!a(e))break;++mn,"\r"===e&&"\n"===hn[mn]&&++mn,++gn,vn=mn}}function m(e){var t,n,r,o=0;for(n="u"===e?4:2,t=0;n>t;++t){if(!(bn>mn&&i(hn[mn])))return"";r=hn[mn++],o=16*o+"0123456789abcdef".indexOf(r.toLowerCase())}return String.fromCharCode(o)}function g(){var e,t,n,r;if(e=hn[mn],l(e)){if(t=mn,"\\"===e){if(++mn,"u"!==hn[mn])return;if(++mn,r=mn,e=m("u")){if("\\"===e||!l(e))return;n=e}else mn=r,n="u"}else n=hn[mn++];for(;bn>mn&&(e=hn[mn],c(e));)if("\\"===e){if(++mn,"u"!==hn[mn])return;if(++mn,r=mn,e=m("u")){if("\\"===e||!c(e))return;n+=e}else mn=r,n+="u"}else n+=hn[mn++];return 1===n.length?{type:an.Identifier,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}:h(n)?{type:an.Keyword,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}:"null"===n?{type:an.NullLiteral,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}:"true"===n||"false"===n?{type:an.BooleanLiteral,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}:{type:an.Identifier,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}}}function v(){var e,t,n,i=mn,o=hn[mn];return";"===o||"{"===o||"}"===o?(++mn,{type:an.Punctuator,value:o,lineNumber:gn,lineStart:vn,range:[i,mn]}):","===o||"("===o||")"===o?(++mn,{type:an.Punctuator,value:o,lineNumber:gn,lineStart:vn,range:[i,mn]}):(e=hn[mn+1],"."!==o||r(e)?(t=hn[mn+2],n=hn[mn+3],">"===o&&">"===e&&">"===t&&"="===n?(mn+=4,{type:an.Punctuator,value:">>>=",lineNumber:gn,lineStart:vn,range:[i,mn]}):"="===o&&"="===e&&"="===t?(mn+=3,{type:an.Punctuator,value:"===",lineNumber:gn,lineStart:vn,range:[i,mn]}):"!"===o&&"="===e&&"="===t?(mn+=3,{type:an.Punctuator,value:"!==",lineNumber:gn,lineStart:vn,range:[i,mn]}):">"===o&&">"===e&&">"===t?(mn+=3,{type:an.Punctuator,value:">>>",lineNumber:gn,lineStart:vn,range:[i,mn]}):"<"===o&&"<"===e&&"="===t?(mn+=3,{type:an.Punctuator,value:"<<=",lineNumber:gn,lineStart:vn,range:[i,mn]}):">"===o&&">"===e&&"="===t?(mn+=3,{type:an.Punctuator,value:">>=",lineNumber:gn,lineStart:vn,range:[i,mn]}):"="===e&&"<>=!+-*%&|^/".indexOf(o)>=0?(mn+=2,{type:an.Punctuator,value:o+e,lineNumber:gn,lineStart:vn,range:[i,mn]}):o===e&&"+-<>&|".indexOf(o)>=0&&"+-<>&|".indexOf(e)>=0?(mn+=2,{type:an.Punctuator,value:o+e,lineNumber:gn,lineStart:vn,range:[i,mn]}):"[]<>+-*%&|^!~?:=/".indexOf(o)>=0?{type:an.Punctuator,value:hn[mn++],lineNumber:gn,lineStart:vn,range:[i,mn]}:void 0):{type:an.Punctuator,value:hn[mn++],lineNumber:gn,lineStart:vn,range:[i,mn]})}function b(){var e,n,s;if(s=hn[mn],t(r(s)||"."===s,"Numeric literal must start with a decimal digit or a decimal point"),n=mn,e="","."!==s){if(e=hn[mn++],s=hn[mn],"0"===e){if("x"===s||"X"===s){for(e+=hn[mn++];bn>mn&&(s=hn[mn],i(s));)e+=hn[mn++];return 2>=e.length&&E({},dn.UnexpectedToken,"ILLEGAL"),bn>mn&&(s=hn[mn],l(s)&&E({},dn.UnexpectedToken,"ILLEGAL")),{type:an.NumericLiteral,value:parseInt(e,16),lineNumber:gn,lineStart:vn,range:[n,mn]}}if(o(s)){for(e+=hn[mn++];bn>mn&&(s=hn[mn],o(s));)e+=hn[mn++];return bn>mn&&(s=hn[mn],(l(s)||r(s))&&E({},dn.UnexpectedToken,"ILLEGAL")),{type:an.NumericLiteral,value:parseInt(e,8),octal:!0,lineNumber:gn,lineStart:vn,range:[n,mn]}}r(s)&&E({},dn.UnexpectedToken,"ILLEGAL")}for(;bn>mn&&(s=hn[mn],r(s));)e+=hn[mn++]}if("."===s)for(e+=hn[mn++];bn>mn&&(s=hn[mn],r(s));)e+=hn[mn++];if("e"===s||"E"===s)if(e+=hn[mn++],s=hn[mn],("+"===s||"-"===s)&&(e+=hn[mn++]),s=hn[mn],r(s))for(e+=hn[mn++];bn>mn&&(s=hn[mn],r(s));)e+=hn[mn++];else s="character "+s,mn>=bn&&(s="<end>"),E({},dn.UnexpectedToken,"ILLEGAL");return bn>mn&&(s=hn[mn],l(s)&&E({},dn.UnexpectedToken,"ILLEGAL")),{type:an.NumericLiteral,value:parseFloat(e),lineNumber:gn,lineStart:vn,range:[n,mn]}}function y(){var e,n,r,i,s,l,c="",u=!1;for(e=hn[mn],t("'"===e||'"'===e,"String literal must starts with a quote"),n=mn,++mn;bn>mn;){if(r=hn[mn++],r===e){e="";break}if("\\"===r)if(r=hn[mn++],a(r))++gn,"\r"===r&&"\n"===hn[mn]&&++mn;else switch(r){case"n":c+="\n";break;case"r":c+="\r";break;case"t":c+="	";break;case"u":case"x":l=mn,s=m(r),s?c+=s:(mn=l,c+=r);break;case"b":c+="\b";break;case"f":c+="\f";break;case"v":c+="";break;default:o(r)?(i="01234567".indexOf(r),0!==i&&(u=!0),bn>mn&&o(hn[mn])&&(u=!0,i=8*i+"01234567".indexOf(hn[mn++]),"0123".indexOf(r)>=0&&bn>mn&&o(hn[mn])&&(i=8*i+"01234567".indexOf(hn[mn++]))),c+=String.fromCharCode(i)):c+=r}else{if(a(r))break;c+=r}}return""!==e&&E({},dn.UnexpectedToken,"ILLEGAL"),{type:an.StringLiteral,value:c,octal:u,lineNumber:gn,lineStart:vn,range:[n,mn]}}function w(){var e,n,r,i,o,s,l,u=!1,d=!1;for(yn=null,p(),r=mn,n=hn[mn],t("/"===n,"Regular expression literal must start with a slash"),e=hn[mn++];bn>mn;)if(n=hn[mn++],e+=n,u)"]"===n&&(u=!1);else if("\\"===n)n=hn[mn++],a(n)&&E({},dn.UnterminatedRegExp),e+=n;else{if("/"===n){d=!0;break}"["===n?u=!0:a(n)&&E({},dn.UnterminatedRegExp)}for(d||E({},dn.UnterminatedRegExp),i=e.substr(1,e.length-2),o="";bn>mn&&(n=hn[mn],c(n));)if(++mn,"\\"===n&&bn>mn)if(n=hn[mn],"u"===n)if(++mn,l=mn,n=m("u"))for(o+=n,e+="\\u";mn>l;++l)e+=hn[l];else mn=l,o+="u",e+="\\u";else e+="\\";else o+=n,e+=n;try{s=new RegExp(i,o)}catch(f){E({},dn.InvalidRegExp)}return{literal:e,value:s,range:[r,mn]}}function x(e){return e.type===an.Identifier||e.type===an.Keyword||e.type===an.BooleanLiteral||e.type===an.NullLiteral}function C(){var e,t;return p(),mn>=bn?{type:an.EOF,lineNumber:gn,lineStart:vn,range:[mn,mn]}:(t=v(),"undefined"!=typeof t?t:(e=hn[mn],"'"===e||'"'===e?y():"."===e||r(e)?b():(t=g(),"undefined"!=typeof t?t:(E({},dn.UnexpectedToken,"ILLEGAL"),void 0))))}function S(){var e;return yn?(mn=yn.range[1],gn=yn.lineNumber,vn=yn.lineStart,e=yn,yn=null,e):(yn=null,C())}function k(){var e,t,n;return null!==yn?yn:(e=mn,t=gn,n=vn,yn=C(),mn=e,gn=t,vn=n,yn)}function T(){var e,t,n,r;return e=mn,t=gn,n=vn,p(),r=gn!==t,mn=e,gn=t,vn=n,r}function E(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,function(e,t){return r[t]||""});throw"number"==typeof e.lineNumber?(n=new Error("Line "+e.lineNumber+": "+i),n.index=e.range[0],n.lineNumber=e.lineNumber,n.column=e.range[0]-vn+1):(n=new Error("Line "+gn+": "+i),n.index=mn,n.lineNumber=gn,n.column=mn-vn+1),n}function L(){try{E.apply(null,arguments)}catch(e){if(!xn.errors)throw e;xn.errors.push(e)}}function N(e){if(e.type===an.EOF&&E(e,dn.UnexpectedEOS),e.type===an.NumericLiteral&&E(e,dn.UnexpectedNumber),e.type===an.StringLiteral&&E(e,dn.UnexpectedString),e.type===an.Identifier&&E(e,dn.UnexpectedIdentifier),e.type===an.Keyword){if(u(e.value))E(e,dn.UnexpectedReserved);else if(pn&&d(e.value))return L(e,dn.StrictReservedWord),void 0;E(e,dn.UnexpectedToken,e.value)}E(e,dn.UnexpectedToken,e.value)}function A(e){var t=S();(t.type!==an.Punctuator||t.value!==e)&&N(t)}function D(e){var t=S();(t.type!==an.Keyword||t.value!==e)&&N(t)}function M(e){var t=k();return t.type===an.Punctuator&&t.value===e}function I(e){var t=k();return t.type===an.Keyword&&t.value===e}function $(){var e=k(),t=e.value;return e.type!==an.Punctuator?!1:"="===t||"*="===t||"/="===t||"%="===t||"+="===t||"-="===t||"<<="===t||">>="===t||">>>="===t||"&="===t||"^="===t||"|="===t}function O(){var e,t;if(";"===hn[mn])return S(),void 0;if(t=gn,p(),gn===t){if(M(";"))return S(),void 0;e=k(),e.type===an.EOF||M("}")||N(e)}}function P(e){return e.type===cn.Identifier||e.type===cn.MemberExpression}function _(){var e=[];for(A("[");!M("]");)M(",")?(S(),e.push(null)):(e.push(ct()),M("]")||A(","));return A("]"),{type:cn.ArrayExpression,elements:e}}function F(e,t){var n,r;return n=pn,r=_t(),t&&pn&&f(e[0].name)&&L(t,dn.StrictParamName),pn=n,{type:cn.FunctionExpression,id:null,params:e,defaults:[],body:r,rest:null,generator:!1,expression:!1}}function H(){var e=S();return e.type===an.StringLiteral||e.type===an.NumericLiteral?(pn&&e.octal&&L(e,dn.StrictOctalLiteral),Kt(e)):{type:cn.Identifier,name:e.value}}function G(){var e,t,n,r;return e=k(),e.type===an.Identifier?(n=H(),"get"!==e.value||M(":")?"set"!==e.value||M(":")?(A(":"),{type:cn.Property,key:n,value:ct(),kind:"init"}):(t=H(),A("("),e=k(),e.type!==an.Identifier&&N(S()),r=[ht()],A(")"),{type:cn.Property,key:t,value:F(r,e),kind:"set"}):(t=H(),A("("),A(")"),{type:cn.Property,key:t,value:F([]),kind:"get"})):e.type!==an.EOF&&e.type!==an.Punctuator?(t=H(),A(":"),{type:cn.Property,key:t,value:ct(),kind:"init"}):(N(e),void 0)}function j(){var e,t,n,r=[],i={},o=String;for(A("{");!M("}");)e=G(),t=e.key.type===cn.Identifier?e.key.name:o(e.key.value),n="init"===e.kind?un.Data:"get"===e.kind?un.Get:un.Set,Object.prototype.hasOwnProperty.call(i,t)?(i[t]===un.Data?pn&&n===un.Data?L({},dn.StrictDuplicateProperty):n!==un.Data&&L({},dn.AccessorDataProperty):n===un.Data?L({},dn.AccessorDataProperty):i[t]&n&&L({},dn.AccessorGetSet),i[t]|=n):i[t]=n,r.push(e),M("}")||A(",");return A("}"),{type:cn.ObjectExpression,properties:r}}function B(){var e;return A("("),e=ut(),A(")"),e}function R(){var e=k(),t=e.type;if(t===an.Identifier)return{type:cn.Identifier,name:S().value};if(t===an.StringLiteral||t===an.NumericLiteral)return pn&&e.octal&&L(e,dn.StrictOctalLiteral),Kt(S());if(t===an.Keyword){if(I("this"))return S(),{type:cn.ThisExpression};if(I("function"))return Ht()}return t===an.BooleanLiteral?(S(),e.value="true"===e.value,Kt(e)):t===an.NullLiteral?(S(),e.value=null,Kt(e)):M("[")?_():M("{")?j():M("(")?B():M("/")||M("/=")?Kt(w()):N(S())}function z(){var e=[];if(A("("),!M(")"))for(;bn>mn&&(e.push(ct()),!M(")"));)A(",");return A(")"),e}function W(){var e=S();return x(e)||N(e),{type:cn.Identifier,name:e.value}}function V(){return A("."),W()}function U(){var e;return A("["),e=ut(),A("]"),e}function q(){var e;return D("new"),e={type:cn.NewExpression,callee:X(),arguments:[]},M("(")&&(e.arguments=z()),e}function K(){var e;for(e=I("new")?q():R();M(".")||M("[")||M("(");)e=M("(")?{type:cn.CallExpression,callee:e,arguments:z()}:M("[")?{type:cn.MemberExpression,computed:!0,object:e,property:U()}:{type:cn.MemberExpression,computed:!1,object:e,property:V()};return e}function X(){var e;for(e=I("new")?q():R();M(".")||M("[");)e=M("[")?{type:cn.MemberExpression,computed:!0,object:e,property:U()}:{type:cn.MemberExpression,computed:!1,object:e,property:V()};return e}function J(){var e,t=K();return e=k(),e.type!==an.Punctuator?t:(!M("++")&&!M("--")||T()||(pn&&t.type===cn.Identifier&&f(t.name)&&L({},dn.StrictLHSPostfix),P(t)||E({},dn.InvalidLHSInAssignment),t={type:cn.UpdateExpression,operator:S().value,argument:t,prefix:!1}),t)}function Q(){var e,t;return e=k(),e.type!==an.Punctuator&&e.type!==an.Keyword?J():M("++")||M("--")?(e=S(),t=Q(),pn&&t.type===cn.Identifier&&f(t.name)&&L({},dn.StrictLHSPrefix),P(t)||E({},dn.InvalidLHSInAssignment),t={type:cn.UpdateExpression,operator:e.value,argument:t,prefix:!0}):M("+")||M("-")||M("~")||M("!")?t={type:cn.UnaryExpression,operator:S().value,argument:Q()}:I("delete")||I("void")||I("typeof")?(t={type:cn.UnaryExpression,operator:S().value,argument:Q()},pn&&"delete"===t.operator&&t.argument.type===cn.Identifier&&L({},dn.StrictDelete),t):J()}function Y(){for(var e=Q();M("*")||M("/")||M("%");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:Q()};return e}function Z(){for(var e=Y();M("+")||M("-");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:Y()};return e}function et(){for(var e=Z();M("<<")||M(">>")||M(">>>");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:Z()};return e}function tt(){var e,t;for(t=wn.allowIn,wn.allowIn=!0,e=et();M("<")||M(">")||M("<=")||M(">=")||t&&I("in")||I("instanceof");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:et()};return wn.allowIn=t,e}function nt(){for(var e=tt();M("==")||M("!=")||M("===")||M("!==");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:tt()};return e}function rt(){for(var e=nt();M("&");)S(),e={type:cn.BinaryExpression,operator:"&",left:e,right:nt()};return e}function it(){for(var e=rt();M("^");)S(),e={type:cn.BinaryExpression,operator:"^",left:e,right:rt()};return e}function ot(){for(var e=it();M("|");)S(),e={type:cn.BinaryExpression,operator:"|",left:e,right:it()};return e}function st(){for(var e=ot();M("&&");)S(),e={type:cn.LogicalExpression,operator:"&&",left:e,right:ot()};return e}function at(){for(var e=st();M("||");)S(),e={type:cn.LogicalExpression,operator:"||",left:e,right:st()};return e}function lt(){var e,t,n;return e=at(),M("?")&&(S(),t=wn.allowIn,wn.allowIn=!0,n=ct(),wn.allowIn=t,A(":"),e={type:cn.ConditionalExpression,test:e,consequent:n,alternate:ct()}),e}function ct(){var e,t;return e=k(),t=lt(),$()&&(P(t)||E({},dn.InvalidLHSInAssignment),pn&&t.type===cn.Identifier&&f(t.name)&&L(e,dn.StrictLHSAssignment),t={type:cn.AssignmentExpression,operator:S().value,left:t,right:ct()}),t}function ut(){var e=ct();if(M(","))for(e={type:cn.SequenceExpression,expressions:[e]};bn>mn&&M(",");)S(),e.expressions.push(ct());return e}function dt(){for(var e,t=[];bn>mn&&!M("}")&&(e=Gt(),"undefined"!=typeof e);)t.push(e);return t}function ft(){var e;return A("{"),e=dt(),A("}"),{type:cn.BlockStatement,body:e}}function ht(){var e=S();return e.type!==an.Identifier&&N(e),{type:cn.Identifier,name:e.value}}function pt(e){var t=ht(),n=null;return pn&&f(t.name)&&L({},dn.StrictVarName),"const"===e?(A("="),n=ct()):M("=")&&(S(),n=ct()),{type:cn.VariableDeclarator,id:t,init:n}}function mt(e){for(var t=[];bn>mn&&(t.push(pt(e)),M(","));)S();return t}function gt(){var e;return D("var"),e=mt(),O(),{type:cn.VariableDeclaration,declarations:e,kind:"var"}}function vt(e){var t;return D(e),t=mt(e),O(),{type:cn.VariableDeclaration,declarations:t,kind:e}}function bt(){return A(";"),{type:cn.EmptyStatement}}function yt(){var e=ut();return O(),{type:cn.ExpressionStatement,expression:e}}function wt(){var e,t,n;return D("if"),A("("),e=ut(),A(")"),t=Pt(),I("else")?(S(),n=Pt()):n=null,{type:cn.IfStatement,test:e,consequent:t,alternate:n}}function xt(){var e,t,n;return D("do"),n=wn.inIteration,wn.inIteration=!0,e=Pt(),wn.inIteration=n,D("while"),A("("),t=ut(),A(")"),M(";")&&S(),{type:cn.DoWhileStatement,body:e,test:t}}function Ct(){var e,t,n;return D("while"),A("("),e=ut(),A(")"),n=wn.inIteration,wn.inIteration=!0,t=Pt(),wn.inIteration=n,{type:cn.WhileStatement,test:e,body:t}}function St(){var e=S();return{type:cn.VariableDeclaration,declarations:mt(),kind:e.value}}function kt(){var e,t,n,r,i,o,s;return e=t=n=null,D("for"),A("("),M(";")?S():(I("var")||I("let")?(wn.allowIn=!1,e=St(),wn.allowIn=!0,1===e.declarations.length&&I("in")&&(S(),r=e,i=ut(),e=null)):(wn.allowIn=!1,e=ut(),wn.allowIn=!0,I("in")&&(P(e)||E({},dn.InvalidLHSInForIn),S(),r=e,i=ut(),e=null)),"undefined"==typeof r&&A(";")),"undefined"==typeof r&&(M(";")||(t=ut()),A(";"),M(")")||(n=ut())),A(")"),s=wn.inIteration,wn.inIteration=!0,o=Pt(),wn.inIteration=s,"undefined"==typeof r?{type:cn.ForStatement,init:e,test:t,update:n,body:o}:{type:cn.ForInStatement,left:r,right:i,body:o,each:!1}}function Tt(){var e,t=null;return D("continue"),";"===hn[mn]?(S(),wn.inIteration||E({},dn.IllegalContinue),{type:cn.ContinueStatement,label:null}):T()?(wn.inIteration||E({},dn.IllegalContinue),{type:cn.ContinueStatement,label:null}):(e=k(),e.type===an.Identifier&&(t=ht(),Object.prototype.hasOwnProperty.call(wn.labelSet,t.name)||E({},dn.UnknownLabel,t.name)),O(),null!==t||wn.inIteration||E({},dn.IllegalContinue),{type:cn.ContinueStatement,label:t})}function Et(){var e,t=null;return D("break"),";"===hn[mn]?(S(),wn.inIteration||wn.inSwitch||E({},dn.IllegalBreak),{type:cn.BreakStatement,label:null}):T()?(wn.inIteration||wn.inSwitch||E({},dn.IllegalBreak),{type:cn.BreakStatement,label:null}):(e=k(),e.type===an.Identifier&&(t=ht(),Object.prototype.hasOwnProperty.call(wn.labelSet,t.name)||E({},dn.UnknownLabel,t.name)),O(),null!==t||wn.inIteration||wn.inSwitch||E({},dn.IllegalBreak),{type:cn.BreakStatement,label:t})}function Lt(){var e,t=null;return D("return"),wn.inFunctionBody||L({},dn.IllegalReturn)," "===hn[mn]&&l(hn[mn+1])?(t=ut(),O(),{type:cn.ReturnStatement,argument:t}):T()?{type:cn.ReturnStatement,argument:null}:(M(";")||(e=k(),M("}")||e.type===an.EOF||(t=ut())),O(),{type:cn.ReturnStatement,argument:t})}function Nt(){var e,t;return pn&&L({},dn.StrictModeWith),D("with"),A("("),e=ut(),A(")"),t=Pt(),{type:cn.WithStatement,object:e,body:t}}function At(){var e,t,n=[];for(I("default")?(S(),e=null):(D("case"),e=ut()),A(":");bn>mn&&!(M("}")||I("default")||I("case"))&&(t=Pt(),"undefined"!=typeof t);)n.push(t);return{type:cn.SwitchCase,test:e,consequent:n}}function Dt(){var e,t,n,r,i;if(D("switch"),A("("),e=ut(),A(")"),A("{"),M("}"))return S(),{type:cn.SwitchStatement,discriminant:e};for(t=[],r=wn.inSwitch,wn.inSwitch=!0,i=!1;bn>mn&&!M("}");)n=At(),null===n.test&&(i&&E({},dn.MultipleDefaultsInSwitch),i=!0),t.push(n);return wn.inSwitch=r,A("}"),{type:cn.SwitchStatement,discriminant:e,cases:t}}function Mt(){var e;return D("throw"),T()&&E({},dn.NewlineAfterThrow),e=ut(),O(),{type:cn.ThrowStatement,argument:e}}function It(){var e;return D("catch"),A("("),M(")")||(e=ut(),pn&&e.type===cn.Identifier&&f(e.name)&&L({},dn.StrictCatchVariable)),A(")"),{type:cn.CatchClause,param:e,body:ft()}}function $t(){var e,t=[],n=null;return D("try"),e=ft(),I("catch")&&t.push(It()),I("finally")&&(S(),n=ft()),0!==t.length||n||E({},dn.NoCatchOrFinally),{type:cn.TryStatement,block:e,guardedHandlers:[],handlers:t,finalizer:n}}function Ot(){return D("debugger"),O(),{type:cn.DebuggerStatement}}function Pt(){var e,t,n=k();if(n.type===an.EOF&&N(n),n.type===an.Punctuator)switch(n.value){case";":return bt();case"{":return ft();case"(":return yt();default:}if(n.type===an.Keyword)switch(n.value){case"break":return Et();case"continue":return Tt();case"debugger":return Ot();case"do":return xt();case"for":return kt();case"function":return Ft();case"if":return wt();case"return":return Lt();case"switch":return Dt();case"throw":return Mt();case"try":return $t();case"var":return gt();case"while":return Ct();case"with":return Nt();default:}return e=ut(),e.type===cn.Identifier&&M(":")?(S(),Object.prototype.hasOwnProperty.call(wn.labelSet,e.name)&&E({},dn.Redeclaration,"Label",e.name),wn.labelSet[e.name]=!0,t=Pt(),delete wn.labelSet[e.name],{type:cn.LabeledStatement,label:e,body:t}):(O(),{type:cn.ExpressionStatement,expression:e})}function _t(){var e,t,r,i,o,s,a,l,c=[];for(A("{");bn>mn&&(t=k(),t.type===an.StringLiteral)&&(e=Gt(),c.push(e),e.expression.type===cn.Literal);)r=n(t.range[0]+1,t.range[1]-1),"use strict"===r?(pn=!0,i&&L(i,dn.StrictOctalLiteral)):!i&&t.octal&&(i=t);for(o=wn.labelSet,s=wn.inIteration,a=wn.inSwitch,l=wn.inFunctionBody,wn.labelSet={},wn.inIteration=!1,wn.inSwitch=!1,wn.inFunctionBody=!0;bn>mn&&!M("}")&&(e=Gt(),"undefined"!=typeof e);)c.push(e);return A("}"),wn.labelSet=o,wn.inIteration=s,wn.inSwitch=a,wn.inFunctionBody=l,{type:cn.BlockStatement,body:c}}function Ft(){var e,t,n,r,i,o,s,a,l,c=[];if(D("function"),r=k(),e=ht(),pn?f(r.value)&&L(r,dn.StrictFunctionName):f(r.value)?(o=r,s=dn.StrictFunctionName):d(r.value)&&(o=r,s=dn.StrictReservedWord),A("("),!M(")"))for(l={};bn>mn&&(r=k(),t=ht(),pn?(f(r.value)&&(i=r,s=dn.StrictParamName),Object.prototype.hasOwnProperty.call(l,r.value)&&(i=r,s=dn.StrictParamDupe)):o||(f(r.value)?(o=r,s=dn.StrictParamName):d(r.value)?(o=r,s=dn.StrictReservedWord):Object.prototype.hasOwnProperty.call(l,r.value)&&(o=r,s=dn.StrictParamDupe)),c.push(t),l[t.name]=!0,!M(")"));)A(",");return A(")"),a=pn,n=_t(),pn&&o&&E(o,s),pn&&i&&L(i,s),pn=a,{type:cn.FunctionDeclaration,id:e,params:c,defaults:[],body:n,rest:null,generator:!1,expression:!1}}function Ht(){var e,t,n,r,i,o,s,a,l=null,c=[];if(D("function"),M("(")||(e=k(),l=ht(),pn?f(e.value)&&L(e,dn.StrictFunctionName):f(e.value)?(n=e,r=dn.StrictFunctionName):d(e.value)&&(n=e,r=dn.StrictReservedWord)),A("("),!M(")"))for(a={};bn>mn&&(e=k(),i=ht(),pn?(f(e.value)&&(t=e,r=dn.StrictParamName),Object.prototype.hasOwnProperty.call(a,e.value)&&(t=e,r=dn.StrictParamDupe)):n||(f(e.value)?(n=e,r=dn.StrictParamName):d(e.value)?(n=e,r=dn.StrictReservedWord):Object.prototype.hasOwnProperty.call(a,e.value)&&(n=e,r=dn.StrictParamDupe)),c.push(i),a[i.name]=!0,!M(")"));)A(",");return A(")"),s=pn,o=_t(),pn&&n&&E(n,r),pn&&t&&L(t,r),pn=s,{type:cn.FunctionExpression,id:l,params:c,defaults:[],body:o,rest:null,generator:!1,expression:!1}}function Gt(){var e=k();if(e.type===an.Keyword)switch(e.value){case"const":case"let":return vt(e.value);case"function":return Ft();default:return Pt()}return e.type!==an.EOF?Pt():void 0}function jt(){for(var e,t,r,i,o=[];bn>mn&&(t=k(),t.type===an.StringLiteral)&&(e=Gt(),o.push(e),e.expression.type===cn.Literal);)r=n(t.range[0]+1,t.range[1]-1),"use strict"===r?(pn=!0,i&&L(i,dn.StrictOctalLiteral)):!i&&t.octal&&(i=t);for(;bn>mn&&(e=Gt(),"undefined"!=typeof e);)o.push(e);return o}function Bt(){var e;return pn=!1,e={type:cn.Program,body:jt()}}function Rt(e,n,r,i,o){t("number"==typeof r,"Comment must have valid position"),xn.comments.length>0&&xn.comments[xn.comments.length-1].range[1]>r||xn.comments.push({type:e,value:n,range:[r,i],loc:o})
}function zt(){var e,t,n,r,i,o;for(e="",i=!1,o=!1;bn>mn;)if(t=hn[mn],o)t=hn[mn++],a(t)?(n.end={line:gn,column:mn-vn-1},o=!1,Rt("Line",e,r,mn-1,n),"\r"===t&&"\n"===hn[mn]&&++mn,++gn,vn=mn,e=""):mn>=bn?(o=!1,e+=t,n.end={line:gn,column:bn-vn},Rt("Line",e,r,bn,n)):e+=t;else if(i)a(t)?("\r"===t&&"\n"===hn[mn+1]?(++mn,e+="\r\n"):e+=t,++gn,++mn,vn=mn,mn>=bn&&E({},dn.UnexpectedToken,"ILLEGAL")):(t=hn[mn++],mn>=bn&&E({},dn.UnexpectedToken,"ILLEGAL"),e+=t,"*"===t&&(t=hn[mn],"/"===t&&(e=e.substr(0,e.length-1),i=!1,++mn,n.end={line:gn,column:mn-vn},Rt("Block",e,r,mn,n),e="")));else if("/"===t)if(t=hn[mn+1],"/"===t)n={start:{line:gn,column:mn-vn}},r=mn,mn+=2,o=!0,mn>=bn&&(n.end={line:gn,column:mn-vn},o=!1,Rt("Line",e,r,mn,n));else{if("*"!==t)break;r=mn,mn+=2,i=!0,n={start:{line:gn,column:mn-vn-2}},mn>=bn&&E({},dn.UnexpectedToken,"ILLEGAL")}else if(s(t))++mn;else{if(!a(t))break;++mn,"\r"===t&&"\n"===hn[mn]&&++mn,++gn,vn=mn}}function Wt(){var e,t,n,r=[];for(e=0;xn.comments.length>e;++e)t=xn.comments[e],n={type:t.type,value:t.value},xn.range&&(n.range=t.range),xn.loc&&(n.loc=t.loc),r.push(n);xn.comments=r}function Vt(){var e,t,r,i,o;return p(),e=mn,t={start:{line:gn,column:mn-vn}},r=xn.advance(),t.end={line:gn,column:mn-vn},r.type!==an.EOF&&(i=[r.range[0],r.range[1]],o=n(r.range[0],r.range[1]),xn.tokens.push({type:ln[r.type],value:o,range:i,loc:t})),r}function Ut(){var e,t,n,r;return p(),e=mn,t={start:{line:gn,column:mn-vn}},n=xn.scanRegExp(),t.end={line:gn,column:mn-vn},xn.tokens.length>0&&(r=xn.tokens[xn.tokens.length-1],r.range[0]===e&&"Punctuator"===r.type&&("/"===r.value||"/="===r.value)&&xn.tokens.pop()),xn.tokens.push({type:"RegularExpression",value:n.literal,range:[e,mn],loc:t}),n}function qt(){var e,t,n,r=[];for(e=0;xn.tokens.length>e;++e)t=xn.tokens[e],n={type:t.type,value:t.value},xn.range&&(n.range=t.range),xn.loc&&(n.loc=t.loc),r.push(n);xn.tokens=r}function Kt(e){return{type:cn.Literal,value:e.value}}function Xt(e){return{type:cn.Literal,value:e.value,raw:n(e.range[0],e.range[1])}}function Jt(){var e={};return e.range=[mn,mn],e.loc={start:{line:gn,column:mn-vn},end:{line:gn,column:mn-vn}},e.end=function(){this.range[1]=mn,this.loc.end.line=gn,this.loc.end.column=mn-vn},e.applyGroup=function(e){xn.range&&(e.groupRange=[this.range[0],this.range[1]]),xn.loc&&(e.groupLoc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},e.apply=function(e){xn.range&&(e.range=[this.range[0],this.range[1]]),xn.loc&&(e.loc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},e}function Qt(){var e,t;return p(),e=Jt(),A("("),t=ut(),A(")"),e.end(),e.applyGroup(t),t}function Yt(){var e,t;for(p(),e=Jt(),t=I("new")?q():R();M(".")||M("[");)M("[")?(t={type:cn.MemberExpression,computed:!0,object:t,property:U()},e.end(),e.apply(t)):(t={type:cn.MemberExpression,computed:!1,object:t,property:V()},e.end(),e.apply(t));return t}function Zt(){var e,t;for(p(),e=Jt(),t=I("new")?q():R();M(".")||M("[")||M("(");)M("(")?(t={type:cn.CallExpression,callee:t,arguments:z()},e.end(),e.apply(t)):M("[")?(t={type:cn.MemberExpression,computed:!0,object:t,property:U()},e.end(),e.apply(t)):(t={type:cn.MemberExpression,computed:!1,object:t,property:V()},e.end(),e.apply(t));return t}function en(e){var t,n,r;t="[object Array]"===Object.prototype.toString.apply(e)?[]:{};for(n in e)e.hasOwnProperty(n)&&"groupRange"!==n&&"groupLoc"!==n&&(r=e[n],t[n]=null===r||"object"!=typeof r||r instanceof RegExp?r:en(r));return t}function tn(e,t){return function(n){function r(e){return e.type===cn.LogicalExpression||e.type===cn.BinaryExpression}function i(n){var o,s;r(n.left)&&i(n.left),r(n.right)&&i(n.right),e&&(n.left.groupRange||n.right.groupRange?(o=n.left.groupRange?n.left.groupRange[0]:n.left.range[0],s=n.right.groupRange?n.right.groupRange[1]:n.right.range[1],n.range=[o,s]):"undefined"==typeof n.range&&(o=n.left.range[0],s=n.right.range[1],n.range=[o,s])),t&&(n.left.groupLoc||n.right.groupLoc?(o=n.left.groupLoc?n.left.groupLoc.start:n.left.loc.start,s=n.right.groupLoc?n.right.groupLoc.end:n.right.loc.end,n.loc={start:o,end:s}):"undefined"==typeof n.loc&&(n.loc={start:n.left.loc.start,end:n.right.loc.end}))}return function(){var o,s;return p(),o=Jt(),s=n.apply(null,arguments),o.end(),e&&"undefined"==typeof s.range&&o.apply(s),t&&"undefined"==typeof s.loc&&o.apply(s),r(s)&&i(s),s}}}function nn(){var e;xn.comments&&(xn.skipComment=p,p=zt),xn.raw&&(xn.createLiteral=Kt,Kt=Xt),(xn.range||xn.loc)&&(xn.parseGroupExpression=B,xn.parseLeftHandSideExpression=X,xn.parseLeftHandSideExpressionAllowCall=K,B=Qt,X=Yt,K=Zt,e=tn(xn.range,xn.loc),xn.parseAdditiveExpression=Z,xn.parseAssignmentExpression=ct,xn.parseBitwiseANDExpression=rt,xn.parseBitwiseORExpression=ot,xn.parseBitwiseXORExpression=it,xn.parseBlock=ft,xn.parseFunctionSourceElements=_t,xn.parseCatchClause=It,xn.parseComputedMember=U,xn.parseConditionalExpression=lt,xn.parseConstLetDeclaration=vt,xn.parseEqualityExpression=nt,xn.parseExpression=ut,xn.parseForVariableDeclaration=St,xn.parseFunctionDeclaration=Ft,xn.parseFunctionExpression=Ht,xn.parseLogicalANDExpression=st,xn.parseLogicalORExpression=at,xn.parseMultiplicativeExpression=Y,xn.parseNewExpression=q,xn.parseNonComputedProperty=W,xn.parseObjectProperty=G,xn.parseObjectPropertyKey=H,xn.parsePostfixExpression=J,xn.parsePrimaryExpression=R,xn.parseProgram=Bt,xn.parsePropertyFunction=F,xn.parseRelationalExpression=tt,xn.parseStatement=Pt,xn.parseShiftExpression=et,xn.parseSwitchCase=At,xn.parseUnaryExpression=Q,xn.parseVariableDeclaration=pt,xn.parseVariableIdentifier=ht,Z=e(xn.parseAdditiveExpression),ct=e(xn.parseAssignmentExpression),rt=e(xn.parseBitwiseANDExpression),ot=e(xn.parseBitwiseORExpression),it=e(xn.parseBitwiseXORExpression),ft=e(xn.parseBlock),_t=e(xn.parseFunctionSourceElements),It=e(xn.parseCatchClause),U=e(xn.parseComputedMember),lt=e(xn.parseConditionalExpression),vt=e(xn.parseConstLetDeclaration),nt=e(xn.parseEqualityExpression),ut=e(xn.parseExpression),St=e(xn.parseForVariableDeclaration),Ft=e(xn.parseFunctionDeclaration),Ht=e(xn.parseFunctionExpression),X=e(X),st=e(xn.parseLogicalANDExpression),at=e(xn.parseLogicalORExpression),Y=e(xn.parseMultiplicativeExpression),q=e(xn.parseNewExpression),W=e(xn.parseNonComputedProperty),G=e(xn.parseObjectProperty),H=e(xn.parseObjectPropertyKey),J=e(xn.parsePostfixExpression),R=e(xn.parsePrimaryExpression),Bt=e(xn.parseProgram),F=e(xn.parsePropertyFunction),tt=e(xn.parseRelationalExpression),Pt=e(xn.parseStatement),et=e(xn.parseShiftExpression),At=e(xn.parseSwitchCase),Q=e(xn.parseUnaryExpression),pt=e(xn.parseVariableDeclaration),ht=e(xn.parseVariableIdentifier)),"undefined"!=typeof xn.tokens&&(xn.advance=C,xn.scanRegExp=w,C=Vt,w=Ut)}function rn(){"function"==typeof xn.skipComment&&(p=xn.skipComment),xn.raw&&(Kt=xn.createLiteral),(xn.range||xn.loc)&&(Z=xn.parseAdditiveExpression,ct=xn.parseAssignmentExpression,rt=xn.parseBitwiseANDExpression,ot=xn.parseBitwiseORExpression,it=xn.parseBitwiseXORExpression,ft=xn.parseBlock,_t=xn.parseFunctionSourceElements,It=xn.parseCatchClause,U=xn.parseComputedMember,lt=xn.parseConditionalExpression,vt=xn.parseConstLetDeclaration,nt=xn.parseEqualityExpression,ut=xn.parseExpression,St=xn.parseForVariableDeclaration,Ft=xn.parseFunctionDeclaration,Ht=xn.parseFunctionExpression,B=xn.parseGroupExpression,X=xn.parseLeftHandSideExpression,K=xn.parseLeftHandSideExpressionAllowCall,st=xn.parseLogicalANDExpression,at=xn.parseLogicalORExpression,Y=xn.parseMultiplicativeExpression,q=xn.parseNewExpression,W=xn.parseNonComputedProperty,G=xn.parseObjectProperty,H=xn.parseObjectPropertyKey,R=xn.parsePrimaryExpression,J=xn.parsePostfixExpression,Bt=xn.parseProgram,F=xn.parsePropertyFunction,tt=xn.parseRelationalExpression,Pt=xn.parseStatement,et=xn.parseShiftExpression,At=xn.parseSwitchCase,Q=xn.parseUnaryExpression,pt=xn.parseVariableDeclaration,ht=xn.parseVariableIdentifier),"function"==typeof xn.scanRegExp&&(C=xn.advance,w=xn.scanRegExp)}function on(e){var t,n=e.length,r=[];for(t=0;n>t;++t)r[t]=e.charAt(t);return r}function sn(e,t){var n,r;r=String,"string"==typeof e||e instanceof String||(e=r(e)),hn=e,mn=0,gn=hn.length>0?1:0,vn=0,bn=hn.length,yn=null,wn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1},xn={},"undefined"!=typeof t&&(xn.range="boolean"==typeof t.range&&t.range,xn.loc="boolean"==typeof t.loc&&t.loc,xn.raw="boolean"==typeof t.raw&&t.raw,"boolean"==typeof t.tokens&&t.tokens&&(xn.tokens=[]),"boolean"==typeof t.comment&&t.comment&&(xn.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(xn.errors=[])),bn>0&&"undefined"==typeof hn[0]&&(e instanceof String&&(hn=e.valueOf()),"undefined"==typeof hn[0]&&(hn=on(e))),nn();try{n=Bt(),"undefined"!=typeof xn.comments&&(Wt(),n.comments=xn.comments),"undefined"!=typeof xn.tokens&&(qt(),n.tokens=xn.tokens),"undefined"!=typeof xn.errors&&(n.errors=xn.errors),(xn.range||xn.loc)&&(n.body=en(n.body))}catch(i){throw i}finally{rn(),xn={}}return n}var an,ln,cn,un,dn,fn,hn,pn,mn,gn,vn,bn,yn,wn,xn;an={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},ln={},ln[an.BooleanLiteral]="Boolean",ln[an.EOF]="<end>",ln[an.Identifier]="Identifier",ln[an.Keyword]="Keyword",ln[an.NullLiteral]="Null",ln[an.NumericLiteral]="Numeric",ln[an.Punctuator]="Punctuator",ln[an.StringLiteral]="String",cn={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},un={Data:1,Get:2,Set:4},dn={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},fn={NonAsciiIdentifierStart:new RegExp("[\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]"),NonAsciiIdentifierPart:new RegExp("[\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u0800-\u082d\u0840-\u085b\u08a0\u08a2-\u08ac\u08e4-\u08fe\u0900-\u0963\u0966-\u096f\u0971-\u0977\u0979-\u097f\u0981-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7\u09c8\u09cb-\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09e6-\u09f1\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c58\u0c59\u0c60-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1\u0cf2\u0d02\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d57\u0d60-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772\u1773\u1780-\u17d3\u17d7\u17dc\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1877\u1880-\u18aa\u18b0-\u18f5\u1900-\u191c\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19d9\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1cd0-\u1cd2\u1cd4-\u1cf6\u1d00-\u1de6\u1dfc-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200c\u200d\u203f\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099\u309a\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua697\ua69f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua827\ua840-\ua873\ua880-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua900-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a\uaa7b\uaa80-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabea\uabec\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]")},"undefined"==typeof"esprima"[0]&&(n=function(e,t){return hn.slice(e,t).join("")}),e.version="1.0.1",e.parse=sn,e.Syntax=function(){var e,t={};"function"==typeof Object.create&&(t=Object.create(null));for(e in cn)cn.hasOwnProperty(e)&&(t[e]=cn[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()}),function(){function e(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),void 0):(e.attachEvent("on"+t,n),void 0)}function t(e){if("keypress"==e.type){var t=String.fromCharCode(e.which);return e.shiftKey||(t=t.toLowerCase()),t}return b[e.which]?b[e.which]:y[e.which]?y[e.which]:String.fromCharCode(e.which).toLowerCase()}function n(e,t){return e.sort().join(",")===t.sort().join(",")}function r(e,t){e=e||{};var n,r=!1;for(n in k)e[n]&&k[n]>t?r=!0:k[n]=0;r||(E=!1)}function i(e,t,r,i,o){var s,a,l=[],u=r.type;if(!C[e])return[];for("keyup"==u&&c(e)&&(t=[e]),s=0;C[e].length>s;++s)a=C[e][s],a.seq&&k[a.seq]!=a.level||u==a.action&&("keypress"==u&&!r.metaKey&&!r.ctrlKey||n(t,a.modifiers))&&(i&&a.combo==o&&C[e].splice(s,1),l.push(a));return l}function o(e){var t=[];return e.shiftKey&&t.push("shift"),e.altKey&&t.push("alt"),e.ctrlKey&&t.push("ctrl"),e.metaKey&&t.push("meta"),t}function s(e,t,n){N.stopCallback(t,t.target||t.srcElement,n)||e(t,n)===!1&&(t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.returnValue=!1,t.cancelBubble=!0)}function a(e,t){var n,a=i(e,o(t),t),l={},u=0,d=!1;for(n=0;a.length>n;++n)a[n].seq?(d=!0,u=Math.max(u,a[n].level),l[a[n].seq]=1,s(a[n].callback,t,a[n].combo)):d||E||s(a[n].callback,t,a[n].combo);t.type!=E||c(e)||r(l,u)}function l(e){"number"!=typeof e.which&&(e.which=e.keyCode);var n=t(e);if(n)return"keyup"==e.type&&T==n?(T=!1,void 0):(a(n,e),void 0)}function c(e){return"shift"==e||"ctrl"==e||"alt"==e||"meta"==e}function u(){clearTimeout(v),v=setTimeout(r,1e3)}function d(){if(!g){g={};for(var e in b)e>95&&112>e||b.hasOwnProperty(e)&&(g[b[e]]=e)}return g}function f(e,t,n){return n||(n=d()[e]?"keydown":"keypress"),"keypress"==n&&t.length&&(n="keydown"),n}function h(e,n,i,o){k[e]=0,o||(o=f(n[0],[]));var a,l=function(){E=o,++k[e],u()},c=function(n){s(i,n,e),"keyup"!==o&&(T=t(n)),setTimeout(r,10)};for(a=0;n.length>a;++a)p(n[a],n.length-1>a?l:c,o,e,a)}function p(e,t,n,r,o){S[e+":"+n]=t,e=e.replace(/\s+/g," ");var s,a,l,u=e.split(" "),d=[];if(u.length>1)return h(e,u,t,n),void 0;for(l="+"===e?["+"]:e.split("+"),s=0;l.length>s;++s)a=l[s],x[a]&&(a=x[a]),n&&"keypress"!=n&&w[a]&&(a=w[a],d.push("shift")),c(a)&&d.push(a);n=f(a,d,n),C[a]||(C[a]=[]),i(a,d,{type:n},!r,e),C[a][r?"unshift":"push"]({callback:t,modifiers:d,action:n,seq:r,level:o,combo:e})}function m(e,t,n){for(var r=0;e.length>r;++r)p(e[r],t,n)}for(var g,v,b={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"ins",46:"del",91:"meta",93:"meta",224:"meta"},y={106:"*",107:"+",109:"-",110:".",111:"/",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},w={"~":"`","!":"1","@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=",":":";",'"':"'","<":",",">":".","?":"/","|":"\\"},x={option:"alt",command:"meta","return":"enter",escape:"esc"},C={},S={},k={},T=!1,E=!1,L=1;20>L;++L)b[111+L]="f"+L;for(L=0;9>=L;++L)b[L+96]=L;e(document,"keypress",l),e(document,"keydown",l),e(document,"keyup",l);var N={bind:function(e,t,n){return e=e instanceof Array?e:[e],m(e,t,n),this},unbind:function(e,t){return N.bind(e,function(){},t)},trigger:function(e,t){return S[e+":"+t]&&S[e+":"+t]({},e),this},reset:function(){return C={},S={},this},stopCallback:function(e,t){return(" "+t.className+" ").indexOf(" mousetrap ")>-1?!1:"INPUT"==t.tagName||"SELECT"==t.tagName||"TEXTAREA"==t.tagName||t.contentEditable&&"true"==t.contentEditable}};window.Mousetrap=N,"function"==typeof define&&define.amd&&define(N)}();var Hogan={};(function(e,t){function n(e,t,n){var r;return t&&"object"==typeof t&&(null!=t[e]?r=t[e]:n&&t.get&&"function"==typeof t.get&&(r=t.get(e))),r}function r(e,t,n,r){function i(){}function o(){}i.prototype=e,o.prototype=e.subs;var s,a=new i;a.subs=new o,a.subsText={},a.ib();for(s in t)a.subs[s]=t[s],a.subsText[s]=r;for(s in n)a.partials[s]=n[s];return a}function i(e){return String(null===e||void 0===e?"":e)}function o(e){return e=i(e),d.test(e)?e.replace(s,"&amp;").replace(a,"&lt;").replace(l,"&gt;").replace(c,"&#39;").replace(u,"&quot;"):e}e.Template=function(e,t,n,r){e=e||{},this.r=e.code||this.r,this.c=n,this.options=r||{},this.text=t||"",this.partials=e.partials||{},this.subs=e.subs||{},this.ib()},e.Template.prototype={r:function(){return""},v:o,t:i,render:function(e,t,n){return this.ri([e],t||{},n)},ri:function(e,t,n){return this.r(e,t,n)},ep:function(e,t){var n=this.partials[e],i=t[n.name];if(n.instance&&n.base==i)return n.instance;if("string"==typeof i){if(!this.c)throw new Error("No compiler available.");i=this.c.compile(i,this.options)}return i?(this.partials[e].base=i,n.subs&&(void 0===this.activeSub&&(t.stackText=this.text),i=r(i,n.subs,n.partials,t.stackText||this.text)),this.partials[e].instance=i,i):null},rp:function(e,t,n,r){var i=this.ep(e,n);return i?i.ri(t,n,r):""},rs:function(e,t,n){var r=e[e.length-1];if(!f(r))return n(e,t,this),void 0;for(var i=0;r.length>i;i++)e.push(r[i]),n(e,t,this),e.pop()},s:function(e,t,n,r,i,o,s){var a;return f(e)&&0===e.length?!1:("function"==typeof e&&(e=this.ms(e,t,n,r,i,o,s)),a=!!e,!r&&a&&t&&t.push("object"==typeof e?e:t[t.length-1]),a)},d:function(e,t,r,i){var o,s=e.split("."),a=this.f(s[0],t,r,i),l=this.options.modelGet,c=null;if("."===e&&f(t[t.length-2]))a=t[t.length-1];else for(var u=1;s.length>u;u++)o=n(s[u],a,l),null!=o?(c=a,a=o):a="";return i&&!a?!1:(i||"function"!=typeof a||(t.push(c),a=this.mv(a,t,r),t.pop()),a)},f:function(e,t,r,i){for(var o=!1,s=null,a=!1,l=this.options.modelGet,c=t.length-1;c>=0;c--)if(s=t[c],o=n(e,s,l),null!=o){a=!0;break}return a?(i||"function"!=typeof o||(o=this.mv(o,t,r)),o):i?!1:""},ls:function(e,t,n,r,o){var s=this.options.delimiters;return this.options.delimiters=o,this.b(this.ct(i(e.call(t,r)),t,n)),this.options.delimiters=s,!1},ct:function(e,t,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(e,this.options).render(t,n)},b:t?function(e){this.buf.push(e)}:function(e){this.buf+=e},fl:t?function(){var e=this.buf.join("");return this.buf=[],e}:function(){var e=this.buf;return this.buf="",e},ib:function(){this.buf=t?[]:""},ms:function(e,t,n,r,i,o,s){var a,l=t[t.length-1],c=e.call(l);return"function"==typeof c?r?!0:(a=this.activeSub&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,l,n,a.substring(i,o),s)):c},mv:function(e,t,n){var r=t[t.length-1],o=e.call(r);return"function"==typeof o?this.ct(i(o.call(r)),r,n):o},sub:function(e,t,n,r){var i=this.subs[e];i&&(this.activeSub=e,i(t,n,this,r),this.activeSub=!1)}};var s=/&/g,a=/</g,l=/>/g,c=/\'/g,u=/\"/g,d=/[&<>\"\']/,f=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}})("undefined"!=typeof exports?exports:Hogan),jQuery.tablesorter.addParser({id:"size",is:function(e){return e.trim().match(/^\d+(\.\d+)? (Bytes|KB|MB|GB|TB|PB)$/)},format:function(e){var t=["Bytes","KB","MB","GB","TB","PB"],n=e.trim().split(" ");return parseFloat(n.shift())*Math.pow(1024,_.indexOf(t,n.shift()))},type:"numeric"}),window.Genghis={Models:{},Collections:{},Views:{},Templates:{},defaults:{codeMirror:{mode:"application/json",lineNumbers:!0,tabSize:4,indentUnit:4,matchBrackets:!0}},boot:function(e){e+="/"==e.charAt(e.length-1)?"":"/",window.app=new Genghis.Views.App({baseUrl:e}),Backbone.history.start({pushState:!0,root:e})}},Genghis.version="2.3.4",Genghis.Templates.Alert=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="alert'),r.s(r.f("block",e,t,1),e,t,0,29,41,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" alert-block")}),e.pop()),r.b(" alert-"),r.b(r.v(r.f("level",e,t,0))),r.b('">'),r.b("\n"+n),r.b('    <a class="close" href="#">&times;</a>'),r.b("\n"+n),r.s(r.f("block",e,t,1),e,t,0,132,164,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("        <p>"),n.b(n.t(n.f("msg",e,t,0))),n.b("</p>"),n.b("\n")}),e.pop()),r.s(r.f("block",e,t,1),e,t,1,0,0,"")||(r.b("        "),r.b(r.t(r.f("msg",e,t,0))),r.b("\n")),r.b("</div>"),r.fl()}}),Genghis.Templates.CollectionRow=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<td>"),r.b("\n"+n),r.b('    <a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('" class="name value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b("<td>"),r.b("\n"+n),r.b('    <span class="documents value">'),r.b(r.v(r.f("count",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b("<td>"),r.b("\n"+n),r.b('    <span class="indexes has-details value">'),r.b(r.v(r.f("indexCount",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('    <div class="details" title="'),r.b(r.v(r.f("indexCount",e,t,0))),r.b(" Index"),r.s(r.f("indexesIsPlural",e,t,1),e,t,0,282,284,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("es")}),e.pop()),r.b('">'),r.b("\n"+n),r.s(r.f("indexCount",e,t,1),e,t,0,334,501,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b('            <ul class="index-details">'),r.b("\n"+n),r.s(r.f("indexes",e,t,1),e,t,0,404,460,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("                    <li>"),n.b(n.t(n.d(".",e,t,0))),n.b("</li>"),n.b("\n")}),e.pop()),r.b("            </ul>"),r.b("\n")}),e.pop()),r.s(r.f("indexCount",e,t,1),e,t,1,0,0,"")||(r.b("            <em>None.</em>"),r.b("\n")),r.b("    </div>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b("<td>"),r.b("\n"+n),r.b('    <span class="size has-details value">'),r.b(r.v(r.f("humanSize",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('    <div class="details" title="Collection Stats">'),r.b("\n"+n),r.b('        <dl class="stats-details">'),r.b("\n"+n),r.s(r.f("stats",e,t,1),e,t,0,794,881,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b("                <dt>"),r.b(r.v(r.f("name",e,t,0))),r.b("</dt>"),r.b("\n"+n),r.b("                <dd>"),r.b(r.v(r.f("value",e,t,0))),r.b("</dd>"),r.b("\n")}),e.pop()),r.b("        </dl>"),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b('<td class="action-column">'),r.b("\n"+n),r.b('    <button class="btn btn-mini btn-danger destroy">Remove</button>'),r.b("\n"+n),r.b("</td>"),r.b("\n"),r.fl()}}),Genghis.Templates.Collections=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header><h2>"),r.b(r.v(r.f("title",e,t,0))),r.b("</h2></header>"),r.b("\n"+n),r.b('<div class="content">'),r.b("\n"+n),r.b("    <table>"),r.b("\n"+n),r.b("        <thead>"),r.b("\n"+n),r.b("            <tr>"),r.b("\n"+n),r.b("                <th>name</th>"),r.b("\n"+n),r.b("                <th>documents</th>"),r.b("\n"+n),r.b("                <th>indexes</th>"),r.b("\n"+n),r.b("                <th>size</th>"),r.b("\n"+n),r.b('                <th data-sorter="false"></th>'),r.b("\n"+n),r.b("            </tr>"),r.b("\n"+n),r.b("        </thead>"),r.b("\n"+n),r.b("        <tbody>"),r.b("\n"+n),r.b("        </tbody>"),r.b("\n"+n),r.b("    </table>"),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<div class="add-form inactive form-horizontal">'),r.b("\n"+n),r.b('    <input class="name span4" type="text" size="30">'),r.b("\n"+n),r.b('    <div class="btn-group">'),r.b("\n"+n),r.b('        <button class="show btn">Add collection</button>'),r.b("\n"+n),r.b('        <button class="btn dropdown-toggle" data-toggle="dropdown">'),r.b("\n"+n),r.b('            <span class="caret"></span>'),r.b("\n"+n),r.b("        </button>"),r.b("\n"+n),r.b('        <ul class="dropdown-menu">'),r.b("\n"+n),r.b('            <li><a class="show" href="#">Add collection</a></li>'),r.b("\n"+n),r.b('            <li><a class="show show-gridfs" href="#">Add GridFS collection</a></li>'),r.b("\n"+n),r.b("        </ul>"),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b("\n"+n),r.b('    <button class="add btn btn-primary">Add collection</button>'),r.b("\n"+n),r.b('    <button class="cancel btn">Cancel</button>'),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()
}}),Genghis.Templates.Confirm=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.f("header",e,t,1),e,t,0,13,148,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b('  <div class="modal-header">'),r.b("\n"+n),r.b('    <button class="dismiss close" aria-hidden="true">&times;</button>'),r.b("\n"+n),r.b("    <h3>"),r.b(r.v(r.f("header",e,t,0))),r.b("</h3>"),r.b("\n"+n),r.b("  </div>"),r.b("\n")}),e.pop()),r.b("\n"+n),r.b('<div class="modal-body">'),r.b("\n"+n),r.s(r.f("body",e,t,1),e,t,0,201,228,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("    <p>"),n.b(n.t(n.f("body",e,t,0))),n.b("</p>"),n.b("\n")}),e.pop()),r.s(r.f("confirmInput",e,t,1),e,t,0,261,333,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b("    <div>"),r.b("\n"+n),r.b('      <input type="text" class="confirm-input">'),r.b("\n"+n),r.b("    </div>"),r.b("\n")}),e.pop()),r.b("</div>"),r.b("\n"+n),r.b("\n"+n),r.b("\n"+n),r.b('<div class="modal-footer">'),r.b("\n"+n),r.b('  <button class="dismiss btn" aria-hidden="true">'),r.b(r.v(r.f("dismissText",e,t,0))),r.b("</button>"),r.b("\n"+n),r.b('  <button class="confirm btn btn-primary"'),r.s(r.f("confirmInput",e,t,1),e,t,0,525,534,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" disabled")}),e.pop()),r.b(">"),r.b(r.t(r.f("confirmText",e,t,0))),r.b("</button>"),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.DatabaseRow=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.f("error",e,t,1),e,t,0,12,167,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b('    <td colspan="4">'),r.b("\n"+n),r.b('        <span class="value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('        <span class="label label-important" title="'),r.b(r.v(r.f("error",e,t,0))),r.b('">Error</span>'),r.b("\n"+n),r.b("    </td>"),r.b("\n")}),e.pop()),r.s(r.f("error",e,t,1),e,t,1,0,0,"")||(r.b("    <td>"),r.b("\n"+n),r.b('        <a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('" class="name value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b("    </td>"),r.b("\n"+n),r.b("    <td>"),r.b("\n"+n),r.b('        <span class="collections has-details value">'),r.b(r.v(r.f("count",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('        <div class="details" title="'),r.b(r.v(r.f("count",e,t,0))),r.b(" Collection"),r.s(r.f("isPlural",e,t,1),e,t,0,427,428,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("s")}),e.pop()),r.b('">'),r.b("\n"+n),r.s(r.f("count",e,t,1),e,t,0,470,777,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b("                <ul>"),r.b("\n"+n),r.s(r.f("firstChildren",e,t,1),e,t,0,532,594,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("                        <li>"),n.b(n.v(n.d(".",e,t,0))),n.b("</li>"),n.b("\n")}),e.pop()),r.s(r.f("hasMoreChildren",e,t,1),e,t,0,657,720,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("                        <li>&hellip;</li>"),n.b("\n")}),e.pop()),r.b("                </ul>"),r.b("\n")}),e.pop()),r.s(r.f("count",e,t,1),e,t,1,0,0,"")||(r.b("                <em>None.</em>"),r.b("\n")),r.b("        </div>"),r.b("\n"+n),r.b("    </td>"),r.b("\n"+n),r.b("    <td>"),r.b("\n"+n),r.b('        <span class="size has-details value">'),r.b(r.v(r.f("humanSize",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('        <div class="details" title="Database Stats">'),r.b("\n"+n),r.b('            <dl class="stats-details">'),r.b("\n"+n),r.s(r.f("stats",e,t,1),e,t,0,1093,1192,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b("                    <dt>"),r.b(r.v(r.f("name",e,t,0))),r.b("</dt>"),r.b("\n"+n),r.b("                    <dd>"),r.b(r.v(r.f("value",e,t,0))),r.b("</dd>"),r.b("\n")}),e.pop()),r.b("            </dl>"),r.b("\n"+n),r.b("        </div>"),r.b("\n"+n),r.b("    </td>"),r.b("\n"+n),r.b('    <td class="action-column">'),r.b("\n"+n),r.b('        <button class="btn btn-mini btn-danger destroy">Remove</button>'),r.b("\n"+n),r.b("    </td>"),r.b("\n")),r.fl()}}),Genghis.Templates.Databases=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header><h2>"),r.b(r.v(r.f("title",e,t,0))),r.b("</h2></header>"),r.b("\n"+n),r.b('<div class="content">'),r.b("\n"+n),r.b("    <table>"),r.b("\n"+n),r.b("        <thead>"),r.b("\n"+n),r.b("            <tr>"),r.b("\n"+n),r.b("                <th>name</th>"),r.b("\n"+n),r.b("                <th>collections</th>"),r.b("\n"+n),r.b("                <th>size</th>"),r.b("\n"+n),r.b('                <th data-sorter="false"></th>'),r.b("\n"+n),r.b("            </tr>"),r.b("\n"+n),r.b("        </thead>"),r.b("\n"+n),r.b("        <tbody>"),r.b("\n"+n),r.b("        </tbody>"),r.b("\n"+n),r.b("    </table>"),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<div class="add-form inactive form-horizontal">'),r.b("\n"+n),r.b('    <input class="name span4" type="text" size="30">'),r.b("\n"+n),r.b('    <button class="show btn">Add database</button>'),r.b("\n"+n),r.b('    <button class="add btn btn-primary">Add database</button>'),r.b("\n"+n),r.b('    <button class="cancel btn">Cancel</button>'),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.Document=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header>"),r.b("\n"+n),r.b("    <h2>"),r.b("\n"+n),r.b("        "),r.b(r.v(r.d("model.prettyId",e,t,0))),r.b("\n"+n),r.s(r.d("model.prettyTime",e,t,1),e,t,0,78,184,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b('            <small><time datetime="'),n.b(n.v(n.d("model.prettyTime",e,t,0))),n.b('">'),n.b(n.v(n.d("model.prettyTime",e,t,0))),n.b("</time></small>"),n.b("\n")}),e.pop()),r.b("    </h2>"),r.b("\n"+n),r.b("</header>"),r.b("\n"+n),r.b('<div class="content document-wrapper"></div>'),r.fl()}}),Genghis.Templates.DocumentView=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="well">'),r.b("\n"+n),r.b('    <div class="document-actions">'),r.b("\n"+n),r.s(r.f("isGridFile",e,t,1),e,t,0,79,189,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b('            <a class="btn btn-small btn-primary grid-download" href="'),n.b(n.v(n.f("downloadUrl",e,t,0))),n.b('">Download</a>'),n.b("\n")}),e.pop()),r.s(r.f("isGridChunk",e,t,1),e,t,0,233,324,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b('            <a class="btn btn-small grid-file" href="'),n.b(n.v(n.f("fileUrl",e,t,0))),n.b('">Grid File</a>'),n.b("\n")}),e.pop()),r.b('        <button class="btn btn-small btn-primary save">Save</button>'),r.b("\n"+n),r.b('        <button class="btn btn-small cancel">Cancel</button>'),r.b("\n"+n),r.b('        <button class="btn btn-small edit">Edit</button>'),r.b("\n"+n),r.b('        <button class="btn btn-small btn-danger destroy">Delete</button>'),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b("\n"+n),r.b("    <h3>"),r.b("\n"+n),r.b('        <a class="id" href="'),r.b(r.v(r.f("url",e,t,0))),r.b('">'),r.b(r.v(r.f("prettyId",e,t,0))),r.b("</a>"),r.b("\n"+n),r.s(r.f("prettyTime",e,t,1),e,t,0,707,801,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b('            <small><time datetime="'),n.b(n.v(n.f("prettyTime",e,t,0))),n.b('">'),n.b(n.v(n.f("prettyTime",e,t,0))),n.b("</time></small>"),n.b("\n")}),e.pop()),r.b("    </h3>"),r.b("\n"+n),r.b("\n"+n),r.b('    <div class="document"></div>'),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.Documents=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header><h2>Documents</h2></header>"),r.b("\n"+n),r.b('<div class="controls">'),r.b("\n"+n),r.b('    <button class="add-document btn btn-large">Add document</button>'),r.b("\n"+n),r.b('    <div class="pagination-wrapper top"></div>'),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<div class="content document-wrapper"></div>'),r.b("\n"+n),r.b('<div class="controls">'),r.b("\n"+n),r.b('    <button class="add-document btn btn-large">Add document</button>'),r.b("\n"+n),r.b('    <div class="pagination-wrapper top"></div>'),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.KeyboardShortcuts=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div id="keyboard-shortcuts" class="modal">'),r.b("\n"+n),r.b('  <div class="modal-header">'),r.b("\n"+n),r.b('    <a href="#" class="close">&times;</a>'),r.b("\n"+n),r.b("    <h3>Keyboard shortcuts</h3>"),r.b("\n"+n),r.b("  </div>"),r.b("\n"+n),r.b('  <div class="modal-body">'),r.b("\n"+n),r.b("    <ul>"),r.b("\n"+n),r.b("      <li>"),r.b("\n"+n),r.b("        <h4>Global</h4>"),r.b("\n"+n),r.b("        <dl>"),r.b("\n"+n),r.b("          <dt><kbd>?</kbd></dt>"),r.b("\n"+n),r.b("          <dd>This cheat sheet</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>s</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Go to servers</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>u</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Go up one level</dd>"),r.b("\n"+n),r.b("        </dl>"),r.b("\n"+n),r.b("\n"+n),r.b("        <h4>Servers</h4>"),r.b("\n"+n),r.b("        <dl>"),r.b("\n"+n),r.b("          <dt><kbd>c</kbd></dt>"),r.b("\n"+n),r.b("          <dd>New server</dd>"),r.b("\n"+n),r.b("        </dl>"),r.b("\n"+n),r.b("\n"+n),r.b("        <h4>Databases</h4>"),r.b("\n"+n),r.b("        <dl>"),r.b("\n"+n),r.b("          <dt><kbd>c</kbd></dt>"),r.b("\n"+n),r.b("          <dd>New database</dd>"),r.b("\n"+n),r.b("        </dl>"),r.b("\n"+n),r.b("      </li>"),r.b("\n"+n),r.b("      <li>"),r.b("\n"+n),r.b("        <h4>Collections</h4>"),r.b("\n"+n),r.b("        <dl>"),r.b("\n"+n),r.b("          <dt><kbd>c</kbd></dt>"),r.b("\n"+n),r.b("          <dd>New collection</dd>"),r.b("\n"+n),r.b("          <dt><kbd>shift</kbd> + <kbd>c</kbd></dt>"),r.b("\n"+n),r.b("          <dd>New GridFS collection</dd>"),r.b("\n"+n),r.b("        </dl>"),r.b("\n"+n),r.b("\n"+n),r.b("        <h4>Documents</h4>"),r.b("\n"+n),r.b("        <dl>"),r.b("\n"+n),r.b("          <dt><kbd>/</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Search</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>c</kbd></dt>"),r.b("\n"+n),r.b("          <dd>New document</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>n</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Next page</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>p</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Previous page</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("<!--"),r.b("\n"+n),r.b("          <dt><kbd>-</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Collapse all</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>+</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Expand all</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>Alt+1</kbd> &ndash; <kbd>Alt+9</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Expand to depth</dd>"),r.b("\n"+n),r.b("-->"),r.b("\n"+n),r.b("        </dl>"),r.b("\n"+n),r.b("      </li>"),r.b("\n"+n),r.b("    </ul>"),r.b("\n"+n),r.b("  </div>"),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.Masthead=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="container">'),r.b("\n"+n),r.b("    "),r.s(r.f("heading",e,t,1),e,t,0,42,64,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("<h1>"),n.b(n.v(n.f("heading",e,t,0))),n.b("</h1>")}),e.pop()),r.b("\n"+n),r.b("    "),r.b(r.t(r.f("content",e,t,0))),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.Nav=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<ul class="nav">'),r.b("\n"+n),r.b('	<li class="nav-section servers"><a class="btn-servers" href="'),r.b(r.v(r.f("baseUrl",e,t,0))),r.b('">Servers</a></li>'),r.b("\n"+n),r.b('	<li class="nav-section dropdown server"></li>'),r.b("\n"+n),r.b('	<li class="nav-section dropdown database"></li>'),r.b("\n"+n),r.b('	<li class="nav-section dropdown collection"></li>'),r.b("\n"+n),r.b("</ul>"),r.b("\n"),r.fl()}}),Genghis.Templates.NavSection=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<a href="#" class="dropdown-toggle" data-toggle="dropdown">'),r.b(r.v(r.f("id",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b('<ul class="dropdown-menu"></ul>'),r.b("\n"),r.fl()}}),Genghis.Templates.NavSectionMenu=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.d("collection.firstChildren",e,t,1),e,t,0,31,130,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b('    <li><a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('">'),r.b("\n"+n),r.b("        "),r.b(r.v(r.f("id",e,t,0))),r.b("\n"+n),r.b("        <span>"),r.b(r.v(r.f("humanCount",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b("    </a></li>"),r.b("\n")}),e.pop()),r.s(r.d("collection.hasMoreChildren",e,t,1),e,t,0,195,287,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b('    <li class="divider"></li>'),r.b("\n"+n),r.b('    <li><a href="'),r.b(r.v(r.d("collection.url",e,t,0))),r.b('">More &raquo;</a></li>'),r.b("\n")}),e.pop()),r.fl()}}),Genghis.Templates.NewDocument=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div id="new-document" class="modal modal-editor">'),r.b("\n"+n),r.b('    <div class="modal-header">'),r.b("\n"+n),r.b('        <a class="close" data-dismiss="modal">&times;</a>'),r.b("\n"+n),r.b("        <h3>New Document</h3>"),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b('    <div class="modal-body">'),r.b("\n"+n),r.b('        <div class="wrapper">'),r.b("\n"+n),r.b('            <textarea id="editor-new" class="genghis-document-editor"></textarea>'),r.b("\n"+n),r.b("        </div>"),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b('    <div class="modal-footer">'),r.b("\n"+n),r.b('        <button class="btn cancel">Cancel</button>'),r.b("\n"+n),r.b('        <button class="btn btn-primary save">Save</button>'),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.NewGridFile=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div id="new-grid-file" class="modal modal-file-upload">'),r.b("\n"+n),r.b('    <div class="modal-header">'),r.b("\n"+n),r.b('        <a class="close" data-dismiss="modal">&times;</a>'),r.b("\n"+n),r.b("        <h3>Upload File</h3>"),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b('    <div class="modal-body">'),r.b("\n"+n),r.b('        <div class="wrapper">'),r.b("\n"+n),r.b('            <textarea id="editor-upload" class="genghis-document-editor"></textarea>'),r.b("\n"+n),r.b("        </div>"),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b('    <div class="modal-footer">'),r.b("\n"+n),r.b('        <button class="btn cancel">Cancel</button>'),r.b("\n"+n),r.b('        <button class="btn btn-primary save">Upload</button>'),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.Pagination=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="pagination pagination-right">'),r.b("\n"+n),r.b("  <ul>"),r.b("\n"+n),r.b('    <li class="prev'),r.s(r.f("isFirst",e,t,1),e,t,0,82,91,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" disabled")}),e.pop()),r.b('">'),r.b("\n"+n),r.b("        <a"),r.s(r.f("isFirst",e,t,1),e,t,1,0,0,"")||(r.b(' href="'),r.b(r.v(r.f("prevUrl",e,t,0))),r.b('"')),r.b(">&larr;</a>"),r.b("\n"+n),r.b("    </li>"),r.b("\n"+n),r.b("\n"+n),r.s(r.f("isStart",e,t,1),e,t,1,0,0,"")||(r.b('        <li class="first"><a href="'),r.b(r.v(r.f("firstUrl",e,t,0))),r.b('">1</a></li>'),r.b("\n"+n),r.b('        <li class="disabled"><a>&hellip;</a></li>'),r.b("\n")),r.b("\n"+n),r.b("\n"+n),r.s(r.f("pageUrls",e,t,1),e,t,0,361,460,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("        <li"),n.s(n.f("active",e,t,1),e,t,0,386,401,"{{ }}")&&(n.rs(e,t,function(e,t,n){n.b(' class="active"')}),e.pop()),n.b('><a href="'),n.b(n.v(n.f("url",e,t,0))),n.b('">'),n.b(n.v(n.f("index",e,t,0))),n.b("</a></li>"),n.b("\n")}),e.pop()),r.b("\n"+n),r.s(r.f("isEnd",e,t,1),e,t,1,0,0,"")||(r.b('        <li class="disabled"><a>&hellip;</a></li>'),r.b("\n"+n),r.b('        <li class="last"><a href="'),r.b(r.v(r.f("lastUrl",e,t,0))),r.b('">'),r.b(r.v(r.f("last",e,t,0))),r.b("</a></li>"),r.b("\n")),r.b("\n"+n),r.b('    <li class="next'),r.s(r.f("isLast",e,t,1),e,t,0,663,672,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" disabled")}),e.pop()),r.b('">'),r.b("\n"+n),r.b("        <a"),r.s(r.f("isLast",e,t,1),e,t,1,0,0,"")||(r.b(' href="'),r.b(r.v(r.f("nextUrl",e,t,0))),r.b('"')),r.b(">&rarr;</a>"),r.b("\n"+n),r.b("    </li>"),r.b("\n"+n),r.b("  </ul>"),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.Search=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<input id="navbar-query" class="search-query" name="q" type="text" value="'),r.b(r.v(r.f("query",e,t,0))),r.b('" />'),r.b("\n"+n),r.b('<div class="search-advanced">'),r.b("\n"+n),r.b('	<div class="well"></div>'),r.b("\n"+n),r.b('	<div class="form-actions">'),r.b("\n"+n),r.b('		<button class="search btn btn-primary">Search</button>'),r.b("\n"+n),r.b('		<button class="cancel btn">Cancel</button>'),r.b("\n"+n),r.b("	</div>"),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<span class="grippie"></span>'),r.b("\n"),r.fl()}}),Genghis.Templates.ServerRow=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.f("error",e,t,1),e,t,0,12,167,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b('    <td colspan="3">'),r.b("\n"+n),r.b('        <span class="value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('        <span class="label label-important" title="'),r.b(r.v(r.f("error",e,t,0))),r.b('">Error</span>'),r.b("\n"+n),r.b("    </td>"),r.b("\n")}),e.pop()),r.s(r.f("error",e,t,1),e,t,1,0,0,"")||(r.b("    <td>"),r.b("\n"+n),r.b('        <a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('" class="name value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b("    </td>"),r.b("\n"+n),r.b("    <td>"),r.b("\n"+n),r.b('        <span class="databases has-details value">'),r.b(r.v(r.f("count",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('        <div class="details" title="'),r.b(r.v(r.f("count",e,t,0))),r.b(" Database"),r.s(r.f("isPlural",e,t,1),e,t,0,423,424,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("s")}),e.pop()),r.b('">'),r.b("\n"+n),r.s(r.f("count",e,t,1),e,t,0,466,773,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b("                <ul>"),r.b("\n"+n),r.s(r.f("firstChildren",e,t,1),e,t,0,528,590,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("                        <li>"),n.b(n.v(n.d(".",e,t,0))),n.b("</li>"),n.b("\n")}),e.pop()),r.s(r.f("hasMoreChildren",e,t,1),e,t,0,653,716,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("                        <li>&hellip;</li>"),n.b("\n")}),e.pop()),r.b("                </ul>"),r.b("\n")}),e.pop()),r.s(r.f("count",e,t,1),e,t,1,0,0,"")||(r.b("                <em>None.</em>"),r.b("\n")),r.b("        </div>"),r.b("\n"+n),r.b("    </td>"),r.b("\n"+n),r.b("    <td>"),r.b("\n"+n),r.b('        <span class="size value">'),r.b(r.v(r.f("humanSize",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b("    </td>"),r.b("\n")),r.b('<td class="action-column">'),r.b("\n"+n),r.b("    "),r.s(r.f("editable",e,t,1),e,t,0,1026,1089,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b('<button class="btn btn-mini btn-danger destroy">Remove</button>')}),e.pop()),r.b("\n"+n),r.b("</td>"),r.b("\n"),r.fl()}}),Genghis.Templates.Servers=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header><h2>Servers</h2></header>"),r.b("\n"+n),r.b('<div class="content">'),r.b("\n"+n),r.b("    <table>"),r.b("\n"+n),r.b("        <thead>"),r.b("\n"+n),r.b("            <tr>"),r.b("\n"+n),r.b("                <th>name</th>"),r.b("\n"+n),r.b("                <th>databases</th>"),r.b("\n"+n),r.b("                <th>size</th>"),r.b("\n"+n),r.b('                <th data-sorter="false"></th>'),r.b("\n"+n),r.b("            </tr>"),r.b("\n"+n),r.b("        </thead>"),r.b("\n"+n),r.b("        <tbody>"),r.b("\n"+n),r.b("        </tbody>"),r.b("\n"+n),r.b("    </table>"),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<div class="add-form inactive form-horizontal">'),r.b("\n"+n),r.b('    <span class="input-append">'),r.b("\n"+n),r.b('        <input class="name span4" type="text" size="30"><span class="add-on help" title="user:hide@address.com:27017">?</span>'),r.b("\n"+n),r.b("    </span>"),r.b("\n"+n),r.b('    <button class="show btn">Add server</button>'),r.b("\n"+n),r.b('    <button class="add btn btn-primary">Add server</button>'),r.b("\n"+n),r.b('    <button class="cancel btn">Cancel</button>'),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.Welcome=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<h2>Welcome to</h2>"),r.b("\n"+n),r.b("<h1>Genghis</h1>"),r.b("\n"+n),r.b("<p>The single-file MongoDB admin app.</p>"),r.b("\n"+n),r.b('<ul class="welcome-links">'),r.b("\n"+n),r.b('	<li><a href="http://genghisapp.com">Homepage</a></li>'),r.b("\n"+n),r.b('	<li><a href="https://github.com/bobthecow/genghis/issues">Issues</a></li>'),r.b("\n"+n),r.b("	<li>Version "),r.b(r.v(r.f("version",e,t,0))),r.b("</li>"),r.b("\n"+n),r.b("</ul>"),r.fl()}}),Genghis.Util={route:function(e){return e.replace(app.baseUrl,"").replace(/^\//,"")},parseQuery:function(e){var t={};return e.length&&_.each(e.split("&"),function(e){var n=e.split("="),r=n.shift();t[r]=decodeURIComponent(n.join("="))}),t},buildQuery:function(e){return _.map(e,function(e,t){return t+"="+e}).join("&")},humanizeSize:function(e){if(e==-0)return"n/a";var t=["Bytes","KB","MB","GB","TB","PB"],n=parseInt(Math.floor(Math.log(e)/Math.log(1024)),10),r=0===n?e/Math.pow(1024,n):(e/Math.pow(1024,n)).toFixed(1);return r=Genghis.Util.round(r,2).toString().replace(/\.0+/,""),r+" "+t[n]},humanizeCount:function(e){var t="";return e=e||0,e>1e3&&(e=Math.floor(e/1e3),t=" k"),e>1e3&&(e=Math.floor(e/1e3),t=" M"),e>1e3?"...":e+t},round:function(e,t){if("undefined"==typeof t||0===+t)return Math.round(e);e=+e;var n=-1*+t;return isNaN(e)||"number"!=typeof n||0!==n%1?0/0:(e=e.toString().split("e"),e=Math.round(+(e[0]+"e"+(e[1]?+e[1]-n:-n))),e=e.toString().split("e"),+(e[0]+"e"+(e[1]?+e[1]+n:n)))},escape:function(e){return e?String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):void 0},attachCollapsers:function(e){$(".document",e).on("click","button,span.e",function(e){var t,n,r=$(this).parent(),i=r.children(".v"),o=/^\s*(name|title)\s*/i,s=i.hasClass("o"),a="";r.children(".e").length||(s&&(n=$(_.detect(i.find("> span.p > var"),function(e){return o.test($(e).text())})).siblings("span.v"),0===n.length&&(n=$(_.detect(i.find("> span.p > span.v"),function(e){var t=$(e);return t.hasClass("n")||t.hasClass("b")||t.hasClass("q")&&64>t.text().length}))),n&&n.length&&(t=n.siblings("var").text(),a=(t?t+": ":"")+Genghis.Util.escape(n.text()))),r.append('<span class="e">'+(s?"{":"[")+" <q>"+a+" &hellip;</q> "+(s?"}":"]")+"</span>")),r.toggleClass("collapsed"),e.preventDefault()})},base64Encode:function(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n=e.length,r="",i=0;n>i;i+=3){var o=[e.charCodeAt(i),e.charCodeAt(i+1),e.charCodeAt(i+2)],s=[o[0]>>2,(3&o[0])<<4|o[1]>>4,(15&o[1])<<2|o[2]>>6,63&o[2]];isNaN(o[1])&&(s[2]=64),isNaN(o[2])&&(s[3]=64),r+=t[s[0]]+t[s[1]]+t[s[2]]+t[s[3]]}return r},base64Decode:function(e){var t,n,r,i,o,s,a,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c=e.length,u="";e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var d=0;c>d;)i=l.indexOf(e.charAt(d++)),o=l.indexOf(e.charAt(d++)),s=l.indexOf(e.charAt(d++)),a=l.indexOf(e.charAt(d++)),t=i<<2|o>>4,n=(15&o)<<4|s>>2,r=(3&s)<<6|a,u+=String.fromCharCode(t),64!=s&&(u+=String.fromCharCode(n)),64!=a&&(u+=String.fromCharCode(r));return u},base64ToHex:function(e){for(var t=[],n=atob(e.replace(/[=\s]+$/,"")),r=n.length,i=0;r>i;++i){var o=n.charCodeAt(i).toString(16);t.push(1===o.length?"0"+o:o)}return t.join("")},encodeDocumentId:function(e){return _.isObject(e)&&e.hasOwnProperty("$genghisType")&&"ObjectId"==e.$genghisType?e.$value:_.isUndefined(e)?void 0:"~"+this.base64Encode(JSON.stringify(e))},decodeDocumentId:function(e){return _.isString(e)&&"~"===e[0]?this.base64Decode(e.substr(1)):e},download:function(){var e;return function(t){e||(e=$("<iframe>",{id:"genghis-util-download"}).hide().appendTo("body")),e.attr("src",t)}}()},Genghis.JSON={parse:function(src){function addError(e,t){t.error||(error=new Error(e),error.loc=t.loc,error.node=t,t.error=error,errors.push(error))}function throwErrors(e){var t=new Error(""+e.length+" parse error"+(1===e.length?"":"s"));throw t.errors=e,t}function replaceCallExpression(src){function ObjectId(e){return{$genghisType:"ObjectId",$value:e?e.toString():null}}function GenghisDate(e){function t(e){function t(e){return 10>e?"0"+e:e}return e=new Date(e),e.getUTCFullYear()+"-"+t(e.getUTCMonth()+1)+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())+"Z"}return{$genghisType:"ISODate",$value:e?t(e):null}}function ISODate(e){if(!e)return new GenghisDate;var t=/(\d{4})-?(\d{2})-?(\d{2})([T ](\d{2})(:?(\d{2})(:?(\d{2}(\.\d+)?))?)?(Z|([+\-])(\d{2}):?(\d{2})?)?)?/,n=t.exec(e);if(!n)throw"Invalid ISO date";var r=parseInt(n[1],10)||1970,i=(parseInt(n[2],10)||1)-1,o=parseInt(n[3],10)||0,s=parseInt(n[5],10)||0,a=parseInt(n[7],10)||0,l=parseFloat(n[9])||0,c=Math.round(1e3*(l%1));l-=c/1e3;var u=Date.UTC(r,i,o,s,a,l,c);if(n[11]&&"Z"!=n[11]){var d=0;d+=1e3*60*60*(parseInt(n[13],10)||0),d+=1e3*60*(parseInt(n[14],10)||0),"+"==n[12]&&(d*=-1),u+=d}return new GenghisDate(u)}function DBRef(e,t){return{$ref:e,$id:t}}function GenghisRegExp(e,t){return{$genghisType:"RegExp",$value:{$pattern:e?e.toString():null,$flags:t?t.toString():null}}}function BinData(e,t){return{$genghisType:"BinData",$value:{$subtype:e,$binary:t}}}return src=src.replace(/^\s*(new\s+)?(Date|RegExp)(\b)/,"$1Genghis$2$3"),JSON.stringify(eval(src))}function replaceRegExpLiteral(e){var t="";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),replaceCallExpression("GenghisRegExp("+JSON.stringify(e.source)+', "'+t+'")')}function insertHelpers(e){function t(t){chunks[e.range[0]]=t;for(var n=e.range[0]+1;e.range[1]>n;n++)chunks[n]=""}if(e.range)if(e.source=function(){return chunks.slice(e.range[0],e.range[1]).join("")},e.update&&_.isObject(e.update)){var n=e.update;Object.keys(n).forEach(function(e){t[e]=n[e]}),e.update=t}else e.update=t}function assertType(e,t){t.type!==e&&addError("Expecting "+e+" but found "+t.type,t)}"string"!=typeof src&&(src=String(src)),src="var __genghis_json__ = "+src;var opts={loc:!0,raw:!0,tokens:!0,tolerant:!0,range:!0},allowedCalls={ObjectId:!0,Date:!0,ISODate:!0,DBRef:!0,RegExp:!0,BinData:!0},allowedPropertyValues={Literal:!0,ObjectExpression:!0,ArrayExpression:!0,NewExpression:!0,CallExpression:!0,UnaryExpression:!0},errors=[],chunks=src.split(""),ast;try{ast=esprima.parse(src,opts)}catch(e){throwErrors([e])}ast.errors.length&&throwErrors(ast.errors);var node;return node=ast,assertType("Program",node),node=node.body,1!==node.length&&addError("Unexpected statement "+node[1].type,node[1]),node=node[0],assertType("VariableDeclaration",node),node=node.declarations,1!==node.length&&addError("Unexpected variable declarations "+node.length,node[1]),node=node[0],assertType("VariableDeclarator",node),node=node.init,"ObjectExpression"!==node.type&&addError("Expected an object expression, found "+node.type,node),errors.length&&throwErrors(errors),function walk(e){switch(insertHelpers(e),Object.keys(e).forEach(function(t){var n=e[t];Array.isArray(n)?n.forEach(function(e){e&&"string"==typeof e.type&&walk(e)}):n&&"string"==typeof n.type&&(insertHelpers(e),walk(n))}),e.type){case"NewExpression":case"CallExpression":e.callee&&!allowedCalls[e.callee.name]?addError("Bad call, bro: "+e.callee.name,e):e.update(replaceCallExpression(e.source()));break;case"Property":e.value&&!allowedPropertyValues[e.value.type]&&addError("Unexpected value: "+e.value.source(),e.value);break;case"Identifier":case"ArrayExpression":case"ObjectExpression":case"UnaryExpression":break;case"Literal":_.isRegExp(e.value)&&e.update(replaceRegExpLiteral(e.value));break;default:addError("Unexpected "+e.type,e)}}(node),errors.length&&throwErrors(errors),function(node){var __genghis_json__;return eval("__genghis_json__ = "+node.source()),__genghis_json__}(node)},stringify:function(e,t){return jQuery("<div>"+this.prettyPrint(e,t,!1)+"</div>").text()},prettyPrint:function(e,t,n){function r(e){function r(e,t){return i("SPAN",e,t)}function i(e,t,n){var r=document.createElement(e);return t&&(r.className=t),n&&("string"==typeof n&&(n=o(n)),r.appendChild(n)),r}function o(e){return document.createTextNode(e)}function s(e){var t,n=r("v q");return n.appendChild(o('"')),u.lastIndex=0,u.test(e)&&(e=e.replace(u,function(e){var t=y[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})),d.test(e)?(t=i("A","s"),t.href=e):t=r("s"),t.appendChild(o(e)),n.appendChild(t),n.appendChild(o('"')),n}function a(e){return(m.test(e)||!p.test(e))&&(e='"'+e.replace(u,function(e){var t=y[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"'),i("VAR",!1,e)}function l(e,t,n){var i=r("call "+n);return i.appendChild(o(e+"(")),_.each(t,function(e,n){i.appendChild(e),t.length-1>n&&i.appendChild(o(", "))}),i.appendChild(o(")")),i}function c(e,t){var u,d,f,h,p,m,v,y,w=g,x="",C=t[e];switch(_.isObject(C)&&"function"==typeof C.toJSON&&(C=C.toJSON(e)),typeof C){case"string":return s(C);case"number":return r("v n",isFinite(C)?String(C):"null");case"boolean":return r("v b",String(C));case"object":if(_.isNull(C))return r("v z","null");if(Object.hasOwnProperty.call(C,"$genghisType"))switch(C.$genghisType){case"ObjectId":return l("ObjectId",[s(C.$value)],"oid");case"ISODate":return l("ISODate",[s(C.$value)],"date");case"RegExp":var S=C.$value.$pattern,k=C.$value.$flags||"";return r("v re","/"+S+"/"+k);case"BinData":return l("BinData",[r("n",String(C.$value.$subtype)),s(C.$value.$binary)],"bindata")}if(g+=b,_.isArray(C)){if(0===C.length)return g=w,r("v a","[]");for(m=r("v a"),n&&g&&(m.collapsible=!0,C.length>10&&(m.collapsed=!0)),m.appendChild(o(g?"[\n"+g:"[")),x=o(g?",\n"+g:","),h=C.length,u=0;h>u;u+=1)u>0&&m.appendChild(x.cloneNode(!1)),m.appendChild(c(u,C)||r("v z","null"));return m.appendChild(o(g?"\n"+w+"]":"]")),g=w,m}p=[];var T=o(g?": ":":"),E=!(!C.$ref||!C.$id);for(d in C)Object.hasOwnProperty.call(C,d)&&(f=c(d,C),f&&(y="p"+(f.collapsed?" collapsed":""),E&&("$ref"==d||"$id"==d||"$db"==d)&&(y=y+" ref-"+d.substr(1)),v=r(y),E&&"$id"==d&&v.setAttribute("data-document-id",Genghis.Util.encodeDocumentId(C[d])),f.collapsible&&v.appendChild(i("button")),v.appendChild(a(d)),v.appendChild(T.cloneNode(!1)),v.appendChild(f),f.collapsed&&(child=r("e"),child.appendChild(o("[ ")),child.appendChild(i("Q",!1,o(" \u2026"))),child.appendChild(o(" ]")),v.appendChild(child)),p.push(v)));if(y="v o",0===p.length)return g=w,r(y,o("{}"));for(E&&(y+=" ref"),m=r(y),m.collapsible=!!n,m.appendChild(o(g?"{\n"+g:"{")),x=o(g?",\n"+g:","),h=p.length,u=0;p.length>u;u++)u>0&&m.appendChild(x.cloneNode(!0)),m.appendChild(p[u]);return m.appendChild(o(g?"\n"+w+"}":"}")),g=w,m}}var u=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,d=/^https?:\/\/[^\s]+$/,f="$A-Z_a-z\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc",h="0-9\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19b0-\u19c0\u19c8\u19c9\u19d0-\u19d9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f",p=RegExp("^["+f+"]["+f+h+"]*$"),m=/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/,g="",b=t===!1?"":"    ",y={"\b":"\\b","	":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};
return g="",v=c("_",{_:e}).innerHTML}return n=n!==!1,r(e)},normalize:function(e,t){return Genghis.JSON.stringify(Genghis.JSON.parse(e),t)}},Genghis.Collections.BaseCollection=Backbone.Collection.extend({firstChildren:function(){return this.collection.toArray().slice(0,10)},hasMoreChildren:function(){return this.collection.length>10}}),Genghis.Models.BaseModel=Backbone.Model.extend({name:function(){return this.get("name")},count:function(){return this.get("count")},humanCount:function(){return Genghis.Util.humanizeCount(this.get("count")||0)},isPlural:function(){return 1!==this.get("count")},humanSize:function(){var e=this.get("size");return e?Genghis.Util.humanizeSize(e):void 0},hasMoreChildren:function(){return this.get("count")>15}}),Genghis.Views.BaseDocument=Backbone.View.extend({errorLines:[],clearErrors:function(){var e=this.editor;this.getErrorBlock().html(""),_.each(this.errorLines,function(t){e.removeLineClass(t,"background","error-line")}),this.errorLines=[]},getEditorValue:function(){this.clearErrors();var e=this.getErrorBlock(),t=this.editor,n=this.errorLines;try{return Genghis.JSON.parse(t.getValue())}catch(r){_.each(r.errors||[r],function(r){var i=r.message;r.lineNumber&&!/Line \d+/i.test(i)&&(i="Line "+r.lineNumber+": "+r.message);var o=new Genghis.Views.Alert({model:new Genghis.Models.Alert({level:"error",msg:i,block:!0})});e.append(o.render().el),r.lineNumber&&n.push(t.addLineClass(r.lineNumber-1,"background","error-line"))})}return!1}}),Genghis.Views.BaseNewDocument=Genghis.Views.BaseDocument.extend({initialize:function(){_.bindAll(this,"render","getTextArea","show","refreshEditor","closeModal","cancelEdit","saveDocument","showServerError"),this.render()},render:function(){this.$el=$(this.template.render()).hide().appendTo("body"),this.el=this.$el[0],this.modal=this.$el.modal({backdrop:"static",show:!1,keyboard:!1});var e=this.$(".wrapper");return this.editor=CodeMirror.fromTextArea(this.getTextArea(),_.extend({},Genghis.defaults.codeMirror,{extraKeys:{"Ctrl-Enter":this.saveDocument,"Cmd-Enter":this.saveDocument}})),this.editor.on("focus",function(){e.addClass("focused")}),this.editor.on("blur",function(){e.removeClass("focused")}),$(window).resize(_.throttle(this.refreshEditor,100)),this.modal.bind("hide",this.cancelEdit),this.modal.bind("shown",this.refreshEditor),this.modal.find("button.cancel").bind("click",this.closeModal),this.modal.find("button.save").bind("click",this.saveDocument),this},refreshEditor:function(){this.editor.refresh(),this.editor.focus()},closeModal:function(){this.modal.modal("hide")},cancelEdit:function(){this.editor.setValue("")},getErrorBlock:function(){var e=this.$("div.errors");return 0===e.length&&(e=$('<div class="errors"></div>').prependTo(this.$(".modal-body"))),e},showServerError:function(e){var t=new Genghis.Views.Alert({model:new Genghis.Models.Alert({level:"error",msg:e,block:!0})});this.getErrorBlock().append(t.render().el)}}),Genghis.Views.BaseRow=Backbone.View.extend({tagName:"tr",events:{"click a.name":"navigate","click button.destroy":"destroy"},initialize:function(){_.bindAll(this,"render","navigate","remove","destroy"),this.model.bind("change",this.render),this.model.bind("destroy",this.remove)},render:function(){return this.$el.html(this.template.render(this.model)).toggleClass("error",!!this.model.get("error")).find(".label[title]").tooltip({placement:"bottom"}),this.$(".has-details").popover({html:!0,content:function(){return $(this).siblings(".details").html()},title:function(){return $(this).siblings(".details").attr("title")},trigger:"manual"}).hoverIntent(function(){$(this).popover("show")},function(){$(this).popover("hide")}),this},navigate:function(e){e.preventDefault(),app.router.navigate(Genghis.Util.route($(e.target).attr("href")),!0)},remove:function(){this.$el.remove()},isParanoid:!1,destroy:function(){var e=this.model,t=e.has("name")?e.get("name"):"";if(this.isParanoid){if(!t)throw"Unable to confirm destruction without a confirmation string.";new Genghis.Views.Confirm({header:"Deleting is forever.",body:"Type <strong>"+t+"</strong> to continue:",confirmInput:t,confirmText:"Delete "+t+" forever",confirm:function(){e.destroy()}})}else new Genghis.Views.Confirm({confirmText:this.destroyConfirmButton(t),confirm:function(){e.destroy()}})},destroyConfirmButton:function(e){return"<strong>Yes</strong>, delete "+e+" forever"}}),Genghis.Views.BaseSection=Backbone.View.extend({events:{"click .add-form button.show":"showAddForm","click .add-form button.add":"submitAddForm","click .add-form button.cancel":"closeAddForm","keyup .add-form input.name":"updateOnKeyup"},initialize:function(){_.bindAll(this,"render","updateTitle","showAddForm","submitAddForm","closeAddForm","updateOnKeyup","addModel","addModelAndUpdate","addAll"),this.model&&this.model.bind("change",this.updateTitle),this.collection&&(this.collection.bind("reset",this.render),this.collection.bind("add",this.addModelAndUpdate)),this.render()},render:function(){return this.$el.html(this.template.render({title:this.formatTitle(this.model)})),this.addForm=this.$(".add-form"),this.addButton=this.$(".add-form button.add"),this.addInput=this.$(".add-form input"),this.cancelButton=this.$(".add-form button.cancel"),this.addAll(),this.$("table").tablesorter({textExtraction:function(e){return $(".value",e).text()||$(e).text()}}),this.collection.size()&&this.$("table").trigger("sorton",[[[0,0]]]),this},updateTitle:function(){this.$("> header h2").text(this.formatTitle(this.model))},showAddForm:function(e){e&&e.preventDefault()&&e.preventDefault(),this.addForm.removeClass("inactive"),this.addInput.select().focus()},submitAddForm:function(){this.collection.create({name:this.addInput.val()},{wait:!0,success:this.closeAddForm,error:function(e,t){window.app.alerts.handleError(t)}})},closeAddForm:function(){this.addForm.addClass("inactive"),this.addInput.val("")},updateOnKeyup:function(e){13==e.keyCode&&this.submitAddForm(),27==e.keyCode&&this.closeAddForm()},addModel:function(e){var t=new this.rowView({model:e});this.$("table tbody").append(t.render().el)},addModelAndUpdate:function(e){this.addModel(e),this.$("table").trigger("update")},addAll:function(){this.$("table tbody").html(""),this.collection.each(this.addModel),this.$el.removeClass("spinning")},show:function(){Mousetrap.bind("c",this.showAddForm),$("body").addClass("section-"+this.$el.attr("id")),this.$el.addClass("spinning").show(),$(document).scrollTop(0)},hide:function(){Mousetrap.unbind("c"),$("body").removeClass("section-"+this.$el.attr("id")),this.$el.hide()}}),Genghis.Models.Alert=Backbone.Model.extend({defaults:{level:"warning",block:!1},block:function(){return!!this.get("block")},level:function(){return this.get("level")},msg:function(){return this.get("msg")}}),Genghis.Models.Collection=Genghis.Models.BaseModel.extend({indexesIsPlural:function(){return 1!==this.indexCount()},indexCount:function(){return(this.get("indexes")||[]).length},indexes:function(){return _.map(this.get("indexes"),function(e){return Genghis.JSON.prettyPrint(e.key)})},isGridCollection:function(){return/\.files$/.test(this.get("name"))},humanSize:function(){var e=this.get("stats");return e?Genghis.Util.humanizeSize((e.storageSize||0)+(e.totalIndexSize||0)):void 0},stats:function(){var e=Genghis.Util.humanizeSize,t=this.get("stats");return t?[{name:"Avg. object size",value:e(t.avgObjSize||0)},{name:"Padding factor",value:t.paddingFactor||"n/a"},{name:"Data size",value:e(t.size||0)},{name:"Index size",value:e(t.totalIndexSize||0)},{name:"Storage size",value:e(t.storageSize||0)}]:void 0}}),Genghis.Models.Database=Genghis.Models.BaseModel.extend({firstChildren:function(){return _.first(this.get("collections")||[],15)},humanSize:function(){var e=this.get("stats");return e?Genghis.Util.humanizeSize((e.fileSize||0)+(e.indexSize||0)):void 0},stats:function(){var e=Genghis.Util.humanizeSize,t=this.get("stats");return t?[{name:"Avg. object size",value:e(t.avgObjSize||0)},{name:"Data size",value:e(t.dataSize||0)},{name:"Index size",value:e(t.indexSize||0)},{name:"Storage size",value:e(t.fileSize||0)}]:void 0},error:function(){return this.get("error")}}),Genghis.Models.Document=Backbone.Model.extend({idAttribute:null,initialize:function(){_.bindAll(this,"prettyId","prettyTime","prettyPrint","JSONish","isGridFile","isGridChunk","downloadUrl","fileUrl")},parse:function(e){var t=Genghis.Util.encodeDocumentId(e._id);return t&&(this.id=t),e},url:function(){var e=function(e){return e&&e.url?_.isFunction(e.url)?e.url():e.url:null},t=e(this.collection)||this.urlRoot||urlError();return t=t.split("?").shift(),this.isNew()?t:t+("/"==t.charAt(t.length-1)?"":"/")+encodeURIComponent(this.id)},prettyId:function(){var e=this.get("_id");if(_.isObject(e)&&e.hasOwnProperty("$genghisType"))switch(e.$genghisType){case"ObjectId":return e.$value;case"BinData":if(3==e.$value.$subtype){var t=/^([0-9a-f]{8})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{12})$/i,n=Genghis.Util.base64ToHex(e.$value.$binary);if(t.test(n))return n.replace(t,"$1-$2-$3-$4-$5")}return e.$value.$binary.replace(/\=+$/,"")}return Genghis.JSON.stringify(e,!1)},prettyTime:function(){if(!this.collection||this.collection.guessCreationTime){if("undefined"==typeof this._prettyTime){var e=this.get("_id");if(_.isObject(e)&&e.hasOwnProperty("$genghisType")&&"ObjectId"===e.$genghisType&&24==e.$value.length){var t=new Date;t.setTime(1e3*parseInt(e.$value.substring(0,8),16)),this._prettyTime=t.toUTCString()}}return this._prettyTime}},prettyPrint:function(){return Genghis.JSON.prettyPrint(this.toJSON())},JSONish:function(){return Genghis.JSON.stringify(this.toJSON())},isGridFile:function(){return this.get("chunkSize")&&/\.files\/documents\//.test(this.url())},isGridChunk:function(){return this.get("files_id")&&/\.chunks\/documents\//.test(this.url())},downloadUrl:function(){if(!this.isGridFile())throw"Not a GridFS file.";return this.url().replace(/\.files\/documents\//,".files/files/")},fileUrl:function(){if(!this.isGridChunk())throw"Not a GridFS chunk.";return this.url().replace(/\.chunks\/documents\//,".files/documents/").replace(this.id,Genghis.Util.encodeDocumentId(this.get("files_id")))}}),Genghis.Models.Pagination=Backbone.Model.extend({defaults:{page:1,pages:1,limit:50,count:0,total:0},initialize:function(){_.bindAll(this,"decrementTotal")},decrementTotal:function(){this.set({total:this.get("total")-1,count:this.get("count")-1})}}),Genghis.Models.Selection=Backbone.Model.extend({defaults:{server:null,database:null,collection:null,query:null,page:null},initialize:function(){_.bindAll(this,"select","update","nextPage","previousPage"),this.bind("change",this.update),this.pagination=new Genghis.Models.Pagination,this.servers=new Genghis.Collections.Servers,this.currentServer=new Genghis.Models.Server,this.databases=new Genghis.Collections.Databases,this.currentDatabase=new Genghis.Models.Database,this.collections=new Genghis.Collections.Collections,this.currentCollection=new Genghis.Models.Collection,this.documents=new Genghis.Collections.Documents,this.currentDocument=new Genghis.Models.Document},select:function(e,t,n,r,i,o){this.set({server:e||null,database:t||null,collection:n||null,document:r||null,query:i||null,page:o||null})},update:function(){function e(e,t){if(404!==t.status){try{data=JSON.parse(t.responseText)}catch(n){data={}}app.alerts.create({msg:data.error||"Unknown error",level:"error",block:!0})}}function t(t,n,r){return n=n||"Not Found",r=r||"Please try again.",function(t,i){switch(i.status){case 404:app.showSection(),app.showMasthead("404: "+n,"<p>"+r+"</p>",{error:!0});break;default:e(t,i)}}}var n=this.get("server"),r=this.get("database"),i=this.get("collection"),o=this.get("document"),s=this.get("query"),a=this.get("page"),l=app.baseUrl,c={};if(l+="servers",this.servers.url=l,this.servers.fetch({reset:!0,error:e}),n?(l=l+"/"+encodeURIComponent(n),this.currentServer.url=l,this.currentServer.fetch({reset:!0,error:t("databases","Server Not Found")}),l+="/databases",this.databases.url=l,this.databases.fetch({reset:!0,error:e})):(this.currentServer.clear(),this.databases.reset()),r?(l=l+"/"+encodeURIComponent(r),this.currentDatabase.url=l,this.currentDatabase.fetch({reset:!0,error:t("collections","Database Not Found")}),l+="/collections",this.collections.url=l,this.collections.fetch({reset:!0,error:e})):(this.currentDatabase.clear(),this.collections.reset()),i){l=l+"/"+encodeURIComponent(i),this.currentCollection.url=l,this.currentCollection.fetch({reset:!0,error:t("documents","Collection Not Found")}),l+="/documents";var u="";(s||a)&&(s&&(c.q=encodeURIComponent(JSON.stringify(Genghis.JSON.parse(s)))),a&&(c.page=encodeURIComponent(a)),u="?"+Genghis.Util.buildQuery(c)),this.documents.url=l+u,this.documents.fetch({reset:!0,error:e})}else this.currentCollection.clear(),this.documents.reset();o&&(this.currentDocument.clear({silent:!0}),this.currentDocument.id=o,this.currentDocument.urlRoot=l,this.currentDocument.fetch({reset:!0,error:t("document","Document Not Found","But I&#146;m sure there are plenty of other nice documents out there&hellip;")}))},nextPage:function(){return 1+(this.get("page")||1)},previousPage:function(){return Math.max(1,(this.get("page")||1)-1)}}),Genghis.Models.Server=Genghis.Models.BaseModel.extend({editable:function(){return!!this.get("editable")},firstChildren:function(){return _.first(this.get("databases")||[],15)},error:function(){return this.get("error")}}),Genghis.Collections.Alerts=Backbone.Collection.extend({model:Genghis.Models.Alert,initialize:function(){_.bindAll(this,"handleError")},handleError:function(e){if(0!==e.readyState){try{data=JSON.parse(e.responseText)}catch(t){data={error:e.responseText}}msg=data.error||"<strong>FAIL</strong> An unexpected server error has occurred.",this.add({level:"error",msg:msg,block:!msg.search(/<(p|ul|ol|div)[ >]/)})}}}),Genghis.Collections.Collections=Genghis.Collections.BaseCollection.extend({model:Genghis.Models.Collection}),Genghis.Collections.Databases=Genghis.Collections.BaseCollection.extend({model:Genghis.Models.Database}),Genghis.Collections.Documents=Backbone.Collection.extend({model:Genghis.Models.Document,parse:function(e){return app.selection.pagination.set({page:e.page,pages:e.pages,count:e.documents.length,total:e.count}),this.guessCreationTime=_.all(e.documents,function(e){var t=e._id||null;if(!_.isObject(t)||"ObjectId"!=t.$genghisType)return!0;if(24!=t.$value.length)return!1;var n=1e3*parseInt(t.$value.substring(0,8),16);return n>this.start&&this.end>n},{start:1251388342e3,end:(new Date).getTime()+1728e5}),e.documents}}),Genghis.Collections.Servers=Backbone.Collection.extend({model:Genghis.Models.Server,firstChildren:function(){return this.collection.reject(function(e){return e.has("error")}).slice(0,10)},hasMoreChildren:function(){return this.collection.length>10||this.collection.detect(function(e){return e.has("error")})}}),Genghis.Views.Alert=Backbone.View.extend({tagName:"div",template:Genghis.Templates.Alert,events:{"click a.close":"destroy"},initialize:function(){_.bindAll(this,"render","remove","destroy"),this.model.bind("change",this.render),this.model.bind("destroy",this.remove)},render:function(){return this.$el.html(this.template.render(this.model)),this},destroy:function(){this.model.destroy()},remove:function(){this.$el.remove()}}),Genghis.Views.Alerts=Backbone.View.extend({el:"aside#alerts",initialize:function(){_.bindAll(this,"render","addModel"),this.collection.bind("reset",this.render),this.collection.bind("add",this.addModel)},render:function(){return this.$el.html(""),this},addModel:function(e){var t=new Genghis.Views.Alert({model:e});this.$el.append(t.render().el)}}),Genghis.Views.App=Backbone.View.extend({el:"section#genghis",initialize:function(){_.bindAll(this,"showMasthead","removeMasthead","showSection");var e=this.baseUrl=this.options.baseUrl,t=this.selection=new Genghis.Models.Selection,n=this.alerts=new Genghis.Collections.Alerts,r=this.router=new Genghis.Router;this.navbarView=new Genghis.Views.Navbar({model:t,baseUrl:e,router:r}),this.alertsView=new Genghis.Views.Alerts({collection:n}),this.keyboardShortcutsView=new Genghis.Views.KeyboardShortcuts,this.serversView=new Genghis.Views.Servers({collection:t.servers}),this.databasesView=new Genghis.Views.Databases({model:t.currentServer,collection:t.databases}),this.collectionsView=new Genghis.Views.Collections({model:t.currentDatabase,collection:t.collections}),this.documentsView=new Genghis.Views.Documents({model:t.currentCollection,collection:t.documents,pagination:t.pagination}),this.documentView=new Genghis.Views.Document({model:t.currentDocument}),this.sections={servers:this.serversView,databases:this.databasesView,collections:this.collectionsView,documents:this.documentsView,document:this.documentView},$.getJSON(this.baseUrl+"check-status").error(n.handleError).success(function(e){_.each(e.alerts,function(e){n.add(_.extend({block:!e.msg.search(/<(p|ul|ol|div)[ >]/i)},e))})}),_.defer(function(){t.trigger("change")})},showMasthead:function(e,t,n){this.removeMasthead(!0),mastheadView=new Genghis.Views.Masthead(_.extend(n||{},{heading:e,content:t||""}))},removeMasthead:function(e){var t=$("header.masthead");e||(t=t.not(".sticky")),t.remove()},showSection:function(e){var t=e&&_.has(this.sections,e);this.removeMasthead(),"servers"==e&&this.showWelcome(),$("body").toggleClass("has-section",t),_.each(this.sections,function(t,n){n!=e&&t.hide()}),t&&this.sections[e].show()},showWelcome:_.once(function(){this.showMasthead("",Genghis.Templates.Welcome.render({version:Genghis.version}),{epic:!0,className:"masthead welcome"})})}),Genghis.Views.CollectionRow=Genghis.Views.BaseRow.extend({template:Genghis.Templates.CollectionRow,isParanoid:!0}),Genghis.Views.Collections=Genghis.Views.BaseSection.extend({el:"section#collections",template:Genghis.Templates.Collections,rowView:Genghis.Views.CollectionRow,events:{"click .add-form button.show":"showAddForm","click .add-form a.show":"showAddForm","click .add-form a.show-gridfs":"showGridFSAddForm","click .add-form button.add":"submitAddForm","click .add-form button.cancel":"closeAddForm","keyup .add-form input.name":"updateOnKeyup"},initialize:function(){_.bindAll(this,"showGridFSAddForm"),Genghis.Views.BaseSection.prototype.initialize.apply(this,arguments)},render:function(){return Genghis.Views.BaseSection.prototype.render.apply(this,arguments),this.$(".dropdown-toggle").dropdown(),this},formatTitle:function(e){return e.id?e.id+" Collections":"Collections"},submitAddForm:function(){var e=this.addInput.val().replace(/^\s+/,"").replace(/\s+$/,"");return""===e?(window.app.alerts.add({msg:"Please enter a valid collection name."}),void 0):(this.addButton.hasClass("add-gridfs")?(e=e.replace(/\.(files|chunks)$/,""),this.collection.create({name:e+".files"}),this.collection.create({name:e+".chunks"})):this.collection.create({name:e}),this.closeAddForm(),void 0)},showAddForm:function(){var e=this.$(".input-wrapper");e.length&&e.replaceWith(e.find("input")),this.addButton.removeClass("add-gridfs").text("Add collection"),Genghis.Views.BaseSection.prototype.showAddForm.apply(this,arguments)},showGridFSAddForm:function(e){e&&e.preventDefault&&e.preventDefault(),0===this.$(".input-wrapper").length&&(this.addInput.wrap('<div class="input-wrapper input-append">'),$('<span class="add-on">.files</span>').insertAfter(this.addInput)),this.addButton.addClass("add-gridfs").text("Add GridFS collection"),this.addForm.removeClass("inactive"),""===this.addInput.val()&&this.addInput.val("fs"),this.addInput.select().focus()},show:function(){Mousetrap.bind("shift+c",this.showGridFSAddForm),Genghis.Views.BaseSection.prototype.show.apply(this,arguments)},hide:function(){Mousetrap.unbind("shift+c"),Genghis.Views.BaseSection.prototype.hide.apply(this,arguments)}}),Genghis.Views.Confirm=Backbone.View.extend({className:"modal confirm-modal",template:Genghis.Templates.Confirm,events:{"click button.dismiss":"dismiss","click button.confirm":"confirm","keyup .confirm-input":"validateInput"},defaults:{header:null,body:"Really? There is no undo.",confirmText:"Okay",dismissText:"Cancel"},initialize:function(){_.bindAll(this,"render","confirm","validateInput","dismiss","remove"),this.onConfirm=this.options.confirm||function(){},this.confirmInput=this.options.confirmInput,this.modalOptions=_.pick(this.options,"backdrop","keyboard"),this.renderContext=_.defaults(_.pick(this.options,"header","body","confirmText","confirmInput","dismissText"),this.defaults),this.options.show!==!1&&this.render()},render:function(){var e=this.$el.html(this.template.render(this.renderContext));return this.confirmInput&&e.on("shown",function(){e.find(".confirm-input").focus()}),e.modal(this.modalOptions),this},confirm:function(){this.onConfirm(),this.dismiss()},validateInput:function(e){var t=this.$("button.confirm");$(e.target).val()==this.confirmInput?(t.removeAttr("disabled"),13==e.keyCode&&(e.preventDefault(),t.click())):t.attr("disabled",!0)},dismiss:function(){this.$el.on("hidden",this.remove).modal("hide")},remove:function(){this.$el.remove()}}),Genghis.Views.DatabaseRow=Genghis.Views.BaseRow.extend({template:Genghis.Templates.DatabaseRow,isParanoid:!0}),Genghis.Views.Databases=Genghis.Views.BaseSection.extend({el:"section#databases",template:Genghis.Templates.Databases,rowView:Genghis.Views.DatabaseRow,formatTitle:function(e){return e.id?e.id+" Databases":"Databases"}}),Genghis.Views.Document=Backbone.View.extend({el:"section#document",template:Genghis.Templates.Document,initialize:function(){_.bindAll(this,"render"),this.model.bind("change",this.render)},render:function(){var e=new Genghis.Views.DocumentView({model:this.model});return this.$el.removeClass("spinning").html(this.template.render({model:this.model})),this.$(".content").html(e.render().el),this},show:function(){$("body").addClass("section-"+this.$el.attr("id")),this.$el.addClass("spinning").show(),$(document).scrollTop(0)},hide:function(){$("body").removeClass("section-"+this.$el.attr("id")),this.$el.hide()}}),Genghis.Views.DocumentView=Genghis.Views.BaseDocument.extend({tagName:"article",template:Genghis.Templates.DocumentView,events:{"click a.id":"navigate","click button.edit":"openEditDialog","click button.save":"saveDocument","click button.cancel":"cancelEdit","click button.destroy":"destroy","click a.grid-download":"download","click a.grid-file":"navigate","click .ref .ref-ref .v .s":"navigateColl","click .ref .ref-db .v .s":"navigateDb","click .ref .ref-id .v .s, .ref .ref-id .v.n":"navigateId"},initialize:function(){_.bindAll(this,"render","updateDocument","navigate","openEditDialog","cancelEdit","saveDocument","destroy","remove","download","navigateColl","navigateDb","navigateId","showServerError"),this.model.bind("change",this.updateDocument),this.model.bind("destroy",this.remove)},render:function(){return this.$el.html(this.template.render(this.model)),Genghis.Util.attachCollapsers(this.el),setTimeout(this.updateDocument,1),this},updateDocument:function(){this.$(".document").html("").append(this.model.prettyPrint()).show()},navigate:function(e){e.preventDefault(),app.router.navigate(Genghis.Util.route($(e.target).attr("href")),!0)},navigateDb:function(e){var t=$(e.target).parents(".ref"),n=t.find(".ref-db .v .s").text();app.router.redirectToDatabase(app.selection.currentServer.id,n)},navigateColl:function(e){var t=$(e.target).parents(".ref"),n=t.find(".ref-db  .v .s").text()||app.selection.currentDatabase.id,r=t.find(".ref-ref .v .s").text();app.router.redirectToCollection(app.selection.currentServer.id,n,r)},navigateId:function(e){var t=$(e.target).parents(".ref"),n=t.find(".ref-db  .v .s").text()||app.selection.currentDatabase.id,r=t.find(".ref-ref .v .s").text()||app.selection.currentCollection.id,i=t.find(".ref-id").attr("data-document-id");app.router.redirectToDocument(app.selection.currentServer.id,n,r,encodeURIComponent(i))},openEditDialog:function(){var e=this.$(".well"),t=Math.max(180,Math.min(600,e.height()+40)),n="editor-"+this.model.id.replace("~","-"),r=$('<textarea id="'+n+'"></textarea>').text(this.model.JSONish()).appendTo(e);this.$(".document").hide();var i=this.$el.addClass("edit");this.editor=CodeMirror.fromTextArea(r[0],_.extend({},Genghis.defaults.codeMirror,{autofocus:!0,extraKeys:{"Ctrl-Enter":this.saveDocument,"Cmd-Enter":this.saveDocument}})),this.editor.on("focus",function(){i.addClass("focused")}),this.editor.on("blur",function(){i.removeClass("focused")}),this.editor.setSize(null,t),r.resize(_.throttle(this.editor.refresh,100))},cancelEdit:function(){this.$el.removeClass("edit focused"),this.editor.toTextArea(),this.$("textarea").remove(),this.updateDocument(),this.$(".well").height("auto")},getErrorBlock:function(){var e=this.$("div.errors");return 0===e.length&&(e=$('<div class="errors"></div>').prependTo(this.el)),e},showServerError:function(e){var t=new Genghis.Views.Alert({model:new Genghis.Models.Alert({level:"error",msg:e,block:!0})});this.getErrorBlock().append(t.render().el)},saveDocument:function(){var e=this.getEditorValue();if(e!==!1){var t=this.showServerError;this.model.clear({silent:!0}),this.model.save(e,{wait:!0,success:this.cancelEdit,error:function(e,n){var r;try{r=JSON.parse(n.responseText).error}catch(i){}t(r||"Error updating document.")}})}},destroy:function(){var e=this.model,t=this.model.isGridFile(),n=t?"file":"document";t&&(this.model.url=this.model.url().replace(".files/documents/",".files/files/")),new Genghis.Views.Confirm({body:"<strong>Really?</strong> "+(t?"This will delete all GridFS chunks as well. <br><br>":"")+"There is no undo.",confirmText:"<strong>Yes</strong>, delete "+n+" forever",confirm:function(){var t=app.selection;e.destroy({wait:!0,error:function(e,t){var r;try{r=JSON.parse(t.responseText).error}catch(i){}app.alerts.create({level:"error",msg:r||"Error deleting "+n+"."})},success:function(){t.pagination.decrementTotal(),t.get("document")&&app.router.redirectTo(t.get("server"),t.get("database"),t.get("collection"),null,t.get("query"))}})}})},remove:function(){this.$el.remove()},download:function(e){Genghis.Util.download(this.model.downloadUrl()),e.preventDefault()}}),Genghis.Views.Documents=Backbone.View.extend({el:"section#documents",template:Genghis.Templates.Documents,events:{"click     button.add-document":"createDocument","dragover  button.file-upload":"dragGridFile","dragleave button.file-upload":"dragLeave","drop      button.file-upload":"dropGridFile"},initialize:function(){_.bindAll(this,"render","addAll","addDocument","createDocument","dragGridFile","dragLeave","dropGridFile"),this.pagination=this.options.pagination,this.collection.bind("reset",this.addAll,this),this.collection.bind("add",this.addDocument,this),this.render()},render:function(){return this.$el.html(this.template.render({})),this.headerView=new Genghis.Views.DocumentsHeader({model:this.pagination}),this.paginationView=new Genghis.Views.Pagination({el:this.$(".pagination-wrapper"),model:this.pagination,collection:this.collection}),this.addAll(),this},addAll:function(){this.$(".content").html(""),this.$("button.add-document").text(this.model.isGridCollection()?"Upload file":"Add document").toggleClass("file-upload",this.model.isGridCollection()),this.collection.each(this.addDocument),this.$el.removeClass("spinning")},addDocument:function(e){var t=new Genghis.Views.DocumentView({model:e});this.$(".content").append(t.render().el)},createDocument:function(e){if(e&&e.preventDefault&&e.preventDefault(),this.model.isGridCollection()){if(!Modernizr.filereader)return app.alerts.create({msg:"<h2>Unable to upload file.</h2> Your browser does not support the File API. Please use a modern browser.",level:"error",block:!0}),void 0;this.getNewGridFileView().show()}else this.getNewDocumentView().show()},dragGridFile:function(e){e.stopPropagation(),e.preventDefault(),e.originalEvent.dataTransfer.dropEffect="copy",$(e.target).addClass("active")},dragLeave:function(e){$(e.target).removeClass("active")},dropGridFile:function(e){return e.stopPropagation(),e.preventDefault(),$(e.target).removeClass("active"),Modernizr.filereader?(this.getNewGridFileView().showMetadata(e.originalEvent.dataTransfer.files[0]),void 0):(app.alerts.create({msg:"<h2>Unable to upload file.</h2> Your browser does not support the File API. Please use a modern browser.",level:"error",block:!0}),void 0)},getNewDocumentView:function(){return this.newDocumentView||(this.newDocumentView=new Genghis.Views.NewDocument({collection:this.collection})),this.newDocumentView},getNewGridFileView:function(){return this.newGridFileView||(this.newGridFileView=new Genghis.Views.NewGridFile({collection:this.collection})),this.newGridFileView},show:function(){Mousetrap.bind("c",this.createDocument),$("body").addClass("section-"+this.$el.attr("id")),this.$el.addClass("spinning").show(),$(document).scrollTop(0)},hide:function(){Mousetrap.unbind("c"),$("body").removeClass("section-"+this.$el.attr("id")),this.$el.hide()}}),Genghis.Views.DocumentsHeader=Backbone.View.extend({el:"section#documents > header h2",initialize:function(){_.bindAll(this,"render"),this.model.bind("change",this.render)},render:function(){var e,t=this.model.get("count"),n=this.model.get("page");this.model.get("pages");var r=this.model.get("limit"),i=this.model.get("total");if(e=""+i+" Document"+(1!=i?"s":""),i!=t){var o=(n-1)*r+1,s=Math.min((n-1)*r+t,i);e=""+o+" - "+s+" of "+e}return this.$el.html(e),this}}),Genghis.Views.KeyboardShortcuts=Backbone.View.extend({tagName:"div",template:Genghis.Templates.KeyboardShortcuts,events:{"click a.close":"hide"},initialize:function(){_.bindAll(this,"render","show","hide","toggle"),Mousetrap.bind("?",this.toggle),$("footer a.keyboard-shortcuts").click(this.show),this.render()},render:function(){return this.$el.html(this.template.render()).modal({backdrop:!0,keyboard:!0,show:!1}),this},show:function(e){e.preventDefault(),this.$el.modal("show")},hide:function(e){e.preventDefault(),this.$el.modal("hide")},toggle:function(){this.$el.modal("toggle")}}),Genghis.Views.Masthead=Backbone.View.extend({tagName:"header",attributes:{"class":"masthead"},template:Genghis.Templates.Masthead,initialize:function(){this.heading=this.options.heading,this.content=this.options.content||"",this.error=this.options.error||!1,this.epic=this.options.epic||!1,this.sticky=this.options.sticky||!1,this.render()},render:function(){return this.$el.html(this.template.render({heading:this.heading,content:this.content})).toggleClass("error",this.error).toggleClass("epic",this.epic).toggleClass("sticky",this.sticky).insertAfter("header.navbar"),this}}),Genghis.Views.Nav=Backbone.View.extend({el:".navbar nav",template:Genghis.Templates.Nav,events:{"click a":"navigate"},initialize:function(){_.bindAll(this,"render","navigate","navigateToServers","navigateUp"),this.baseUrl=this.options.baseUrl,this.model.bind("change",this.updateQuery),$("body").bind("click",function(){$(".dropdown-toggle, .menu").parent("li").removeClass("open")}),Mousetrap.bind("s",this.navigateToServers),Mousetrap.bind("u",this.navigateUp),this.render()},render:function(){return this.$el.html(this.template.render({baseUrl:this.baseUrl})),this.serverNavView=new Genghis.Views.NavSection({el:this.$("li.server"),model:this.model.currentServer,collection:this.model.servers}),this.databaseNavView=new Genghis.Views.NavSection({el:this.$("li.database"),model:this.model.currentDatabase,collection:this.model.databases}),this.collectionNavView=new Genghis.Views.NavSection({el:this.$("li.collection"),model:this.model.currentCollection,collection:this.model.collections}),this.searchView=new Genghis.Views.Search({model:this.model}),this.$el.append(this.searchView.render().el),this},navigate:function(e){e.preventDefault(),app.router.navigate(Genghis.Util.route($(e.target).attr("href")),!0)},navigateToServers:function(e){e.preventDefault(),app.router.redirectToIndex()},navigateUp:function(e){e.preventDefault(),app.router.redirectTo(this.model.has("database")&&this.model.get("server"),this.model.has("collection")&&this.model.get("database"),(this.model.has("document")||this.model.has("query"))&&this.model.get("collection"))}}),Genghis.Views.NavSection=Backbone.View.extend({template:Genghis.Templates.NavSection,menuTemplate:Genghis.Templates.NavSectionMenu,initialize:function(){_.bindAll(this,"render"),this.model.bind("change",this.updateLink,this),this.collection.bind("reset",this.renderMenu,this),this.render()},render:function(){return this.$el.html(this.template.render(this.model)),this.$(".dropdown-toggle").hoverIntent(function(e){$(e.target).parent("li").addClass("open").siblings("li").removeClass("open")},$.noop),this},updateLink:function(){this.$("a.dropdown-toggle").text(this.model.id?this.model.id:"").attr("href",this.model.id?this.model.url:"")
},renderMenu:function(){this.$("ul.dropdown-menu").html(this.menuTemplate.render({model:this.model,collection:this.collection})),this.$("ul.dropdown-menu a span").each(function(e,t){var n=$(t),r=n.text().length;r>3&&n.parent().css("padding-right",""+(r+.5)+"em")})}}),Genghis.Views.Navbar=Backbone.View.extend({el:".navbar",events:{"click a.brand":"onClickBrand"},initialize:function(){this.router=this.options.router,this.navView=new Genghis.Views.Nav({model:this.model,baseUrl:this.options.baseUrl})},onClickBrand:function(e){e.preventDefault(),this.router.navigate("",!0)}}),Genghis.Views.NewDocument=Genghis.Views.BaseNewDocument.extend({el:"#new-document",template:Genghis.Templates.NewDocument,getTextArea:function(){return this.$("#editor-new")[0]},show:function(){this.editor.setValue("{\n    \n}\n"),this.editor.setCursor({line:1,ch:4}),this.modal.modal("show")},saveDocument:function(){var e=this.getEditorValue();if(e!==!1){var t=this.closeModal,n=this.showServerError;this.collection.create(e,{wait:!0,success:function(e){t(),app.router.navigate(Genghis.Util.route(e.url()),!0)},error:function(e,t){var r;try{r=JSON.parse(t.responseText).error}catch(i){}n(r||"Error creating document.")}})}}}),Genghis.Views.NewGridFile=Genghis.Views.BaseNewDocument.extend({el:"#new-grid-file",template:Genghis.Templates.NewGridFile,initialize:function(){_.bindAll(this,"handleFileInputChange","showMetadata"),Genghis.Views.BaseNewDocument.prototype.initialize.apply(this,arguments)},render:function(){return Genghis.Views.BaseNewDocument.prototype.render.apply(this,arguments),this.fileInput=$('<input id="new-grid-file-input" type="file">').hide().appendTo("body"),this.currentFile=null,this.fileInput.bind("change",this.handleFileInputChange),this},getTextArea:function(){return this.$("#editor-upload")[0]},show:function(){this.fileInput.click()},handleFileInputChange:function(e){this.showMetadata(e.target.files[0])},showMetadata:function(e){this.currentFile=e,e&&(this.fileInput.val(""),this.editor.setValue(Genghis.JSON.stringify({filename:e.name,contentType:e.type||"binary/octet-stream",metadata:{}})),this.editor.setCursor({line:3,ch:15}),this.modal.modal("show"))},saveDocument:function(){var e=this.getEditorValue();if(e!==!1){if(e.file)return this.showServerError("Unexpected property: 'file'"),void 0;var t=this.closeModal,n=this.showServerError,r=this.collection,i=this.collection.url.replace(".files/documents",".files/files"),o=new FileReader;o.onload=function(o){e.file=o.target.result,$.ajax({type:"POST",url:i,data:JSON.stringify(e),contentType:"application/json"}).success(function(e){r.add(e),t();var n=new Genghis.Models.Document(e).prettyId();app.router.navigate(Genghis.Util.route(r.url+"/"+n),!0)}).error(function(e){var t;try{t=JSON.parse(e.responseText).error}catch(r){}n(t||"Error uploading file.")})},o.readAsDataURL(this.currentFile)}}}),Genghis.Views.Pagination=Backbone.View.extend({template:Genghis.Templates.Pagination,events:{"click a":"navigate"},initialize:function(){_.bindAll(this,"render","urlTemplate","navigate","nextPage","prevPage"),this.model.bind("change",this.render),Mousetrap.bind("n",this.nextPage),Mousetrap.bind("p",this.prevPage)},render:function(){if(1==this.model.get("pages"))this.$el.hide();else{var e=9,t=Math.ceil(e/2),n=this.model.get("page"),r=this.model.get("pages"),i=n>t?Math.max(n-(t-3),1):1,o=r-n>t?Math.min(n+(t-3),r):r,s=o==r?Math.max(r-(e-3),1):i,a=1==i?Math.min(s+(e-3),r):o;a>=r-2&&(a=r),3>=s&&(s=1);var l=this.urlTemplate;this.$el.html(this.template.render({page:n,last:r,firstUrl:l(1),prevUrl:l(Math.max(1,n-1)),nextUrl:l(Math.min(n+1,r)),lastUrl:l(r),pageUrls:_.range(s,a+1).map(function(e){return{index:e,url:l(e),active:e===n}}),isFirst:1===n,isStart:1===s,isEnd:a>=r,isLast:n===r})).show()}return this},urlTemplate:function(e){var t=this.collection.url,n=t.split("?"),r=n.shift(),i=Genghis.Util.parseQuery(n.join("?")),o={page:e};return i.q&&(o.q=encodeURIComponent(app.selection.get("query"))),r+"?"+Genghis.Util.buildQuery(_.extend(i,o))},navigate:function(e){e.preventDefault();var t=$(e.target).attr("href");t&&app.router.navigate(Genghis.Util.route(t),!0)},nextPage:function(e){this.$el.is(":visible")&&(e.preventDefault(),this.$("li.next a[href]").click())},prevPage:function(e){this.$el.is(":visible")&&(e.preventDefault(),this.$("li.prev a[href]").click())}}),Genghis.Views.Search=Backbone.View.extend({tagName:"form",className:"navbar-search form-search control-group",template:Genghis.Templates.Search,events:{"keyup input#navbar-query":"handleSearchKeyup","click span.grippie":"toggleExpanded","dragmove span.grippie":"handleGrippieDrag","click button.cancel":"collapseSearch","click button.search":"findDocumentsAdvanced"},initialize:function(){_.bindAll(this,"render","updateQuery","handleSearchKeyup","findDocuments","findDocumentsAdvanced","focusSearch","blurSearch","advancedSearchToQuery","queryToAdvancedSearch","expandSearch","collapseSearch","collapseNoFocus","toggleExpanded","handleGrippieDrag"),this.model.bind("change",this.updateQuery),this.model.bind("change:collection",this.collapseNoFocus)},render:function(){this.$el.html(this.template.render({query:this.model.get("query")})),this.$el.submit(function(e){e.preventDefault()}),Mousetrap.bind("/",this.focusSearch);var e=this.$el;e.find(".well");var t=this.expandSearch,n=this.collapseSearch;return this.$(".grippie").bind("mousedown",function(r){function i(r){var i=r.clientY+document.documentElement.scrollTop-e.offset().top;return i>=s&&a>=i&&e.height(i+"px"),e.hasClass("expanded")?s>i&&n():i>100&&t(),!1}function o(t){$(document).unbind("mousemove",i).unbind("mouseup",o),e.hasClass("expanded")||n(),t.preventDefault()}r.preventDefault();var s=30,a=Math.min($(window).height()/2,350);$(document).mousemove(i).mouseup(o)}),this},updateQuery:function(){var e=this.normalizeQuery(this.model.get("query")||this.getDocumentQuery()||"");this.$("input#navbar-query").val(e)},getDocumentQuery:function(){var e=this.model.get("document");return _.isString(e)&&"~"===e[0]&&(e=Genghis.JSON.normalize('{"_id":'+Genghis.Util.decodeDocumentId(e)+"}")),e},handleSearchKeyup:function(e){this.$el.removeClass("error"),13==e.keyCode?(e.preventDefault(),this.findDocuments($(e.target).val())):27==e.keyCode&&this.blurSearch()},findDocuments:function(e){var t=Genghis.Util.route(this.model.currentCollection.url+"/documents");if(e=e.trim(),e.match(/^([a-z\d]+)$/i))t=t+"/"+e;else{try{e=Genghis.JSON.normalize(e,!1)}catch(n){return this.$el.addClass("error"),void 0}t=t+"?"+Genghis.Util.buildQuery({q:encodeURIComponent(e)})}app.router.navigate(t,!0)},findDocumentsAdvanced:function(){this.findDocuments(this.editor.getValue()),this.collapseSearch()},focusSearch:function(e){this.$("input#navbar-query").is(":visible")?(e&&e.preventDefault(),this.$("input#navbar-query").focus()):this.editor&&this.$(".well").is(":visible")&&(e&&e.preventDefault(),this.editor.focus())},blurSearch:function(){this.$("input#navbar-query").blur(),this.updateQuery()},normalizeQuery:function(e){if(e=e.trim(),""!==e)try{e=Genghis.JSON.normalize(e,!1)}catch(t){}return e.replace(/^\{\s*\}$/,"").replace(/^\{\s*(['"]?)_id\1\s*:\s*\{\s*(['"]?)\$id\2\s*:\s*(["'])([a-z\d]+)\3\s*\}\s*\}$/,"$4").replace(/^\{\s*(['"]?)_id\1\s*:\s*(new\s+)?ObjectId\s*\(\s*(["'])([a-z\d]+)\3\s*\)\s*\}$/,"$4")},advancedSearchToQuery:function(){this.$("input#navbar-query").val(this.normalizeQuery(this.editor.getValue()))},queryToAdvancedSearch:function(){var e=this.$("input#navbar-query").val().trim();if(e.match(/^[a-z\d]+$/i)&&(e='{_id:ObjectId("'+e+'")}'),""!==e)try{e=Genghis.JSON.normalize(e,!0)}catch(t){}this.editor.setValue(e)},expandSearch:function(){if(!this.editor){var e=this.$(".search-advanced");this.editor=CodeMirror(this.$(".well")[0],_.extend({},Genghis.defaults.codeMirror,{lineNumbers:!1,extraKeys:{"Ctrl-Enter":this.findDocumentsAdvanced,"Cmd-Enter":this.findDocumentsAdvanced,Esc:this.findDocumentsAdvanced}})),this.editor.on("focus",function(){e.addClass("focused")}),this.editor.on("blur",function(){e.removeClass("focused")}),this.editor.on("change",this.advancedSearchToQuery)}this.queryToAdvancedSearch(),this.$el.addClass("expanded");var t=this.editor,n=this.focusSearch;_.defer(function(){t.refresh(),n()})},collapseSearch:function(){this.collapseNoFocus(),this.focusSearch()},collapseNoFocus:function(){this.$el.removeClass("expanded").css("height","auto")},toggleExpanded:function(){this.$el.hasClass("expanded")?this.collapseSearch():(this.expandSearch(),this.$el.height(Math.floor($(window).height()/4)+"px"))},handleGrippieDrag:function(e){console.log(e)}}),Genghis.Views.ServerRow=Genghis.Views.BaseRow.extend({template:Genghis.Templates.ServerRow,destroyConfirmButton:function(e){return"<strong>Yes</strong>, remove "+e+" from server list"}}),Genghis.Views.Servers=Genghis.Views.BaseSection.extend({el:"section#servers",template:Genghis.Templates.Servers,rowView:Genghis.Views.ServerRow,render:function(){return Genghis.Views.BaseSection.prototype.render.apply(this,arguments),$(".help",this.addForm).tooltip(),this},updateTitle:function(){},formatTitle:function(){return"Servers"}}),Genghis.Router=function(){function e(){var e=Array.prototype.slice.call(arguments);document.title=e.length?"Genghis \u2014 "+e.join(" \u203a "):"Genghis"}var t=encodeURIComponent;return Backbone.Router.extend({routes:{"":"index",servers:"redirectToIndex","servers/:server":"server","servers/:server/databases":"redirectToServer","servers/:server/databases/:database":"database","servers/:server/databases/:database/collections":"redirectToDatabase","servers/:server/databases/:database/collections/:collection":"collection","servers/:server/databases/:database/collections/:collection/documents":"collectionQueryOrRedirect","servers/:server/databases/:database/collections/:collection/documents?*query":"collectionQueryOrRedirect","servers/:server/databases/:database/collections/:collection/documents/:documentId":"document","*path":"notFound"},index:function(){e(),app.selection.select(),app.showSection("servers")},redirectToIndex:function(){this.navigate("",!0)},server:function(t){e(t),app.selection.select(t),app.showSection("databases")},redirectToServer:function(e){this.navigate("servers/"+t(e),!0)},database:function(t,n){e(t,n),app.selection.select(t,n),app.showSection("collections")},redirectToDatabase:function(e,n){this.navigate("servers/"+t(e)+"/databases/"+t(n),!0)},collection:function(t,n,r){return window.location.search?this.collectionQueryOrRedirect(t,n,r):(e(t,n,r),app.selection.select(t,n,r),app.showSection("documents"),void 0)},redirectToCollection:function(e,n,r){this.navigate("servers/"+t(e)+"/databases/"+t(n)+"/collections/"+t(r),!0)},collectionQueryOrRedirect:function(e,t,n){return window.location.search?this.collectionQuery(e,t,n,window.location.search.substr(1)):(this.redirectToCollection(e,t,n),void 0)},collectionQuery:function(t,n,r,i){e(t,n,r,"Query results");var o=Genghis.Util.parseQuery(i);app.selection.select(t,n,r,null,o.q,o.page),app.showSection("documents")},redirectToQuery:function(e,n,r,i){this.navigate("servers/"+t(e)+"/databases/"+t(n)+"/collections/"+t(r)+"/documents?"+Genghis.Util.buildQuery({q:t(i)}),!0)},document:function(t,n,r,i){e(t,n,r,Genghis.Util.decodeDocumentId(i)),app.selection.select(t,n,r,i),app.showSection("document")},redirectToDocument:function(e,t,n,r){var i=encodeURIComponent;this.navigate("servers/"+i(e)+"/databases/"+i(t)+"/collections/"+i(n)+"/documents/"+i(r),!0)},redirectTo:function(e,t,n,r,i){return e?t?n?r||i?i?this.redirectToQuery(e,t,n,i):this.redirectToDocument(e,t,n,r):this.redirectToCollection(e,t,n):this.redirectToDatabase(e,t):this.redirectToServer(e):this.redirectToIndex()},notFound:function(){e("404: Not Found"),app.showSection(),app.showMasthead("404: Not Found","<p>If you think you've reached this message in error, please press <strong>0</strong> to speak with an operator. Otherwise, hang up and try again.</p>",{error:!0,epic:!0})}})}();

Return current item: Genghis