diff --git a/.eslintrc.js b/.eslintrc.js index e6aab1bf1..b92707670 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -24,6 +24,8 @@ module.exports = { 'class-methods-use-this': 'off', 'import/no-unresolved': 'off', 'import/extensions': ['error', 'always'], + 'import/prefer-default-export': ['off'], + 'no-use-before-define': ['off'], eqeqeq: ['error', 'smart'], 'comma-dangle': ['error', 'never'], 'object-curly-newline': ['error', { multiline: true }], @@ -32,28 +34,28 @@ module.exports = { 'lines-between-class-members': ['error', 'always', { exceptAfterSingleLine: true }] }, ignorePatterns: [ - "vendor/", - "!/custom", - "!/javascripts", - "javascripts/vendor", - "!/styles", - "!/tools", - "/tools/*", - "!tools/autoupdate", - "!tools/aceditor", - "!tools/attach", - "!tools/bazar", - "!tools/contact", - "!tools/helloworld", - "!tools/lang", - "!tools/login", - "!tools/progressbar", - "!tools/rss", - "!tools/security", - "!tools/syndication", - "!tools/tableau", - "!tools/tags", - "!tools/templates", - "!tools/toc" + 'vendor/', + '!/custom', + '!/javascripts', + 'javascripts/vendor', + '!/styles', + '!/tools', + '/tools/*', + '!tools/autoupdate', + '!tools/aceditor', + '!tools/attach', + '!tools/bazar', + '!tools/contact', + '!tools/helloworld', + '!tools/lang', + '!tools/login', + '!tools/progressbar', + '!tools/rss', + '!tools/security', + '!tools/syndication', + '!tools/tableau', + '!tools/tags', + '!tools/templates', + '!tools/toc' ] } diff --git a/actions/EditConfigAction.php b/actions/EditConfigAction.php index 891032fb5..729e0763f 100644 --- a/actions/EditConfigAction.php +++ b/actions/EditConfigAction.php @@ -20,6 +20,7 @@ class EditConfigAction extends YesWikiAction 'default_comment_avatar' => 'core', 'htmlPurifierActivated' => 'core', 'favorites_activated' => 'core', + 'preview_before_save' => 'core', 'default_read_acl' => 'access', 'default_write_acl' => 'access', diff --git a/actions/EditGroupsAction.php b/actions/EditGroupsAction.php index 794b181ee..0d030e844 100755 --- a/actions/EditGroupsAction.php +++ b/actions/EditGroupsAction.php @@ -1,5 +1,10 @@ wiki; - $list = $wiki->GetGroupsList(); // retrieves an array of group names from table 'triples' (content of 'resource' starts with 'ThisWikiGroup' and content of 'property' equals 'http://www.wikini.net/_vocabulary/acls') - if (!$wiki->UserIsAdmin()) { // If user not in admin group, remove admin group from the list - $list = array_diff($list, array(ADMIN_GROUP)); - } - sort($list); - // Start of group edition - $res = $wiki->FormOpen('', '', 'get', 'form-inline'); - $res .= '

'."\n".'

'."\n" . $wiki->FormClose(); - // End of group edition - // Start of group creation - $res .= $wiki->FormOpen('', '', 'get', 'form-inline') . '

'; - $res .= '

' . $wiki->FormClose(); - // End of group creation - // Start of group deletion - $res .= $wiki->FormOpen('', '', 'get', 'form-inline'); - $res .= ''; - $res .= '

'."\n".'

'."\n" . $wiki->FormClose(); - // End of group deletion - // End of form definition - - // Form action handling - if ($_POST && !empty($_POST['groupname']) && isset($_POST['acl'])) { // save ACL's - // The form method is 'post' - // it returns a groupname and list of users (acl), therefore - // The group has been edited - $name = $_POST['groupname']; - $newacl = $_POST['acl']; - if (strtolower($name) == ADMIN_GROUP) { - if (!$wiki->UserIsAdmin()) { - return $res . _t('ONLY_ADMINS_CAN_CHANGE_MEMBERS') .'.
'; - } - if (!$wiki->CheckACL($newacl)) { - return $res . _t('YOU_CANNOT_REMOVE_YOURSELF').'.
'; - } - } - $result = $wiki->SetGroupACL($name, $newacl); - if ($result) { - if ($result == 1000) { - return $res . _t('ERROR_RECURSIVE_GROUP').' !
'; + + return $this->render( + '@core/actions/edit-group-action.twig', + compact(['list','message','type','currentGroupAcl','selectedGroupName','action']) + ); + } + + protected function saveAcl(string $selectedGroupName): array + { + $this->confirmToken(); + + $message = ''; + $type = 'danger'; + + if (!isset($_POST['acl']) || !is_string($_POST['acl'])){ + $message = '$_POST[\'acl\'] must be a string'; + } else { + $newacl = strval($_POST['acl']); + if (strtolower($selectedGroupName) == ADMIN_GROUP && !$this->wiki->CheckACL($newacl)) { + $message = _t('YOU_CANNOT_REMOVE_YOURSELF'); + } else { + $result = $this->wiki->SetGroupACL($selectedGroupName, $newacl); + + if ($result) { + if ($result == 1000) { + $message = _t('ERROR_RECURSIVE_GROUP').' !'; + } else { + $message = _t('ERROR_WHILE_SAVING_GROUP') . ' ' . ucfirst($selectedGroupName) . ' ('._t('ERROR_CODE').' ' . $result . ')'; + } } else { - return $res . _t('ERROR_WHILE_SAVING_GROUP') . ' ' . ucfirst($name) . ' ('._t('ERROR_CODE').' ' . $result . ')
'; + // + $this->wiki->LogAdministrativeAction($this->wiki->GetUserName(), _t('NEW_ACL_FOR_GROUP')." " . ucfirst($selectedGroupName) . ' : ' . $newacl . "\n"); + $message = _t('NEW_ACL_SUCCESSFULLY_SAVED_FOR_THE_GROUP').' ' . ucfirst($selectedGroupName); + $type = 'success'; } - } else { - $wiki->LogAdministrativeAction($wiki->GetUserName(), _t('NEW_ACL_FOR_GROUP')." " . ucfirst($name) . ' : ' . $newacl . "\n"); - return $res . _t('NEW_ACL_SUCCESSFULLY_SAVED_FOR_THE_GROUP').' ' . ucfirst($name) . '.
'; } - // The group has been edited – End - } elseif (!empty($_GET['deletegroup'])) { - // The form returns a groupname to delete, therefore - // There is a request to delete the group - $name = $_GET['deletegroup']; - if ($wiki->GetGroupACL($name) != '') { // The group is not empty - $res .= _t('ONLY_EMPTY_GROUP_FOR_DELETION').'.'; + } + + return compact(['message','type']); + } + + + protected function deleteGroup(string &$selectedGroupName): array + { + $message = ''; + $type = 'danger'; + + $this->confirmToken(); + + if ($this->wiki->GetGroupACL($selectedGroupName) != '') { // The group is not empty + $message = _t('ONLY_EMPTY_GROUP_FOR_DELETION'); + } else { + // Check if acls table contains at least one line (page) + // for which this group is the only one to have some privilege + $dbService = $this->getService(DbService::class); + $vocAcsl = WIKINI_VOC_ACLS; + $sql = "SELECT page_tag FROM {$dbService->prefixTable($vocAcsl)} WHERE list = \"@{$dbService->escape($selectedGroupName)}\""; + $ownedPages = $dbService->loadAll($sql); // if group owns no pages, then empty + if (!empty($ownedPages)) { + // Array is not empty because the query returns at least one page + $message = _t('ONLY_NO_PAGES_GROUP_FOR_DELETION').'
'; + $message .= implode('
',array_map(function($acl){ + return "wiki->Href('',$acl['page_tag'])}\">{$acl['page_tag']}"; + },$ownedPages)); } else { - // Check if acls table contains at least one line (page) - // for which this group is the only one to have some privilege - $sql = 'SELECT page_tag FROM ' . $wiki->GetConfigValue('table_prefix') . 'acls WHERE list = "@' . $name . '"'; - $ownedPages = array(); - $ownedPages = $wiki->LoadAll($sql); // if group owns no pages, then empty - if ($ownedPages) { - // Array is not empty because the query returns at least one page - $res .= _t('ONLY_NO_PAGES_GROUP_FOR_DELETION').'.'; - foreach ($ownedPages as $ownedPage) { - $res .= '
' . $ownedPage['page_tag']; + // Group is empty AND is not alone having privileges on any page + $sql = <<prefixTable($vocAcsl)} + SET `list` = REPLACE(REPLACE (`list`, '@{$dbService->escape($selectedGroupName)}\\n', ''),'\\n@{$dbService->escape($selectedGroupName)}','') + WHERE `list` LIKE '%@{$dbService->escape($selectedGroupName)}%' + SQL; + + $dbService->query($sql); + + $tripleStore = $this->getService(TripleStore::class); + $previous = $tripleStore->getMatching(GROUP_PREFIX.$selectedGroupName,WIKINI_VOC_PREFIX.WIKINI_VOC_ACLS,'','='); + $deletionOk = false; + if (!empty($previous)){ + $deletionOk = true; + foreach ($previous as $triple) { + if (!$tripleStore->delete($selectedGroupName,WIKINI_VOC_ACLS,$triple['value'],GROUP_PREFIX)){ + $deletionOk = false; + } } - return $res; + } + + if ($deletionOk){ + $message = "groupe $selectedGroupName supprimé"; + $type = 'success'; + $selectedGroupName = ''; } else { - // Group is empty AND is not alone having privvileges on any page - /* create sql connection*/ - $link = mysqli_connect( - $GLOBALS["wiki"]->config['mysql_host'], - $GLOBALS["wiki"]->config['mysql_user'], - $GLOBALS["wiki"]->config['mysql_password'], - $GLOBALS["wiki"]->config['mysql_database'] - ); - /* Build sql query*/ - // ACLS part - $aclsTable = $GLOBALS["wiki"]->config['table_prefix'].WIKINI_VOC_ACLS; - $searched_value = '%@' . $name . '%'; - $seek_value_bf = '@' . $name . '\n'; // groupname to delete can be followed by another groupname - $seek_value_af = '\n@' . $name; // groupname to delete can follow another groupname - // get rid of this groupname everytime it's followed by another - $sql = "UPDATE ".$aclsTable." SET list = REPLACE (list, '".$seek_value_bf."', '') WHERE list LIKE '" . $searched_value . "';"; - // in the remaining get rid of this groupname everytime it follows another - $sql .= "\nUPDATE ".$aclsTable." SET list = REPLACE (list, '".$seek_value_af."', '') WHERE list LIKE '" . $searched_value . "';"; - // End of ACLS part - // Triples part - $triplesTable = $GLOBALS["wiki"]->config['table_prefix'].'triples'; - $groupName = GROUP_PREFIX . $name; - $sql .= "\nDELETE FROM ".$triplesTable." WHERE resource = '".$groupName."' AND value = '';"; - // End of triples part - /* Execute queries */ - mysqli_multi_query($link, $sql); - do { - ; - } while (mysqli_next_result($link)); - return $res . 'groupe ' . $name . ' supprimé' . '
'; + $message = "Une erreur s'est poduite lors de la suppression du groupe $selectedGroupName (triple non supprimé)"; + $type = 'warning'; } } - } elseif (!empty($_GET['groupname'])) { - // The form returns a groupname and no list of users (acl), therefore - // Request to edit the group - $name = $_GET['groupname']; - if (!preg_match('/[^A-Za-z0-9]/', $name)) { // only alphanumeric characters - $res .= $wiki->FormOpen(); // form method is 'post' by default - $res .= '
('. htmlspecialchars(_t('ONE_NAME_BY_LINE')).')'; - $res .= ''; - $res .= '
'; - $res .= ''; - return $res . $wiki->FormClose(); - } else { // groupname contains characters other than alphanumeric - $res .= _t('ONLY_ALPHANUM_FOR_GROUP_NAME').'.'; - } } - // Request to edit the group – End - return $res; - // Form action handling – End + + return compact(['message','type']); + } + + protected function confirmToken() + { + $this->getService(CsrfTokenController::class)->checkToken('main', 'POST', 'confirmToken',false); } } diff --git a/actions/EraseSpamedCommentsAction.php b/actions/EraseSpamedCommentsAction.php index 57d7c033d..28f20154f 100755 --- a/actions/EraseSpamedCommentsAction.php +++ b/actions/EraseSpamedCommentsAction.php @@ -21,6 +21,8 @@ * */ use YesWiki\Bazar\Controller\EntryController; +use YesWiki\Bazar\Service\EntryManager; +use YesWiki\Core\Service\PageManager; use YesWiki\Core\YesWikiAction; class EraseSpamedCommentsAction extends YesWikiAction @@ -84,10 +86,14 @@ public function run() // (si DeleteOrphanedPage ne convient pas, soit on créé // une autre, soit on la modifie echo "Effacement de : " . $page . "
\n"; - $wiki->services->get(EntryController::class)->triggerDeletedEventIfNeeded(function()use($page,$wiki){ - $wiki->DeleteOrphanedPage($page); - },$page); - $deletedPages .= $page . ", "; + if ($wiki->services->get(EntryManager::class)->isEntry($page)){ + if($wiki->services->get(EntryController::class)->delete($page)){ + $deletedPages .= $page . ", "; + } + } else { + $wiki->services->get(PageManager::class)->deleteOrphaned($page); + $deletedPages .= $page . ", "; + } } $deletedPages = trim($deletedPages, ", "); echo "

Href()."\">"._t('FORM_RETURN').".

"; diff --git a/actions/UsersTableAction.php b/actions/UsersTableAction.php index c97ade9ff..699130123 100644 --- a/actions/UsersTableAction.php +++ b/actions/UsersTableAction.php @@ -124,7 +124,7 @@ private function managePostActions(array $post, bool $isAdmin): ?string $userName = in_array($username, [false,null], true) ? "" : htmlspecialchars(strip_tags($userName)); try { $rawUserName = str_replace([''','''], ['\'','\''], $userName); - $this->csrfTokenController->checkToken("action\\userstable\\deleteUser\\{$rawUserName}", 'POST', 'csrf-token-delete'); + $this->csrfTokenController->checkToken('main', 'POST', 'csrf-token-delete',false); $user = $this->userManager->getOneByName($rawUserName); if (empty($user)) { return $this->render("@templates/alert-message.twig", [ diff --git a/composer.lock b/composer.lock index 5366fbc1c..fb949fcfb 100644 --- a/composer.lock +++ b/composer.lock @@ -698,16 +698,16 @@ }, { "name": "nesbot/carbon", - "version": "2.67.0", + "version": "2.68.1", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "c1001b3bc75039b07f38a79db5237c4c529e04c8" + "reference": "4f991ed2a403c85efbc4f23eb4030063fdbe01da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/c1001b3bc75039b07f38a79db5237c4c529e04c8", - "reference": "c1001b3bc75039b07f38a79db5237c4c529e04c8", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4f991ed2a403c85efbc4f23eb4030063fdbe01da", + "reference": "4f991ed2a403c85efbc4f23eb4030063fdbe01da", "shasum": "" }, "require": { @@ -796,7 +796,7 @@ "type": "tidelift" } ], - "time": "2023-05-25T22:09:47+00:00" + "time": "2023-06-20T18:29:04+00:00" }, { "name": "oomphinc/composer-installers-extender", @@ -1374,16 +1374,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v5.4.24", + "version": "v5.4.25", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "4645e032d0963fb614969398ca28e47605b1a7da" + "reference": "f0410c30a6c86bbce6c719c2b5cfc343362b982e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/4645e032d0963fb614969398ca28e47605b1a7da", - "reference": "4645e032d0963fb614969398ca28e47605b1a7da", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f0410c30a6c86bbce6c719c2b5cfc343362b982e", + "reference": "f0410c30a6c86bbce6c719c2b5cfc343362b982e", "shasum": "" }, "require": { @@ -1443,7 +1443,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.4.24" + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.25" }, "funding": [ { @@ -1459,7 +1459,7 @@ "type": "tidelift" } ], - "time": "2023-05-05T14:42:55+00:00" + "time": "2023-06-24T09:45:28+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1765,16 +1765,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.4.23", + "version": "v5.4.25", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "b2f79d86cd9e7de0fff6d03baa80eaed7a5f38b5" + "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/b2f79d86cd9e7de0fff6d03baa80eaed7a5f38b5", - "reference": "b2f79d86cd9e7de0fff6d03baa80eaed7a5f38b5", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/0ce3a62c9579a53358d3a7eb6b3dfb79789a6364", + "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364", "shasum": "" }, "require": { @@ -1809,7 +1809,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.23" + "source": "https://github.com/symfony/filesystem/tree/v5.4.25" }, "funding": [ { @@ -1825,20 +1825,20 @@ "type": "tidelift" } ], - "time": "2023-03-02T11:38:35+00:00" + "time": "2023-05-31T13:04:02+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.24", + "version": "v5.4.25", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "3c59f97f6249ce552a44f01b93bfcbd786a954f5" + "reference": "f66be2706075c5f6325d2fe2b743a57fb5d23f6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3c59f97f6249ce552a44f01b93bfcbd786a954f5", - "reference": "3c59f97f6249ce552a44f01b93bfcbd786a954f5", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f66be2706075c5f6325d2fe2b743a57fb5d23f6b", + "reference": "f66be2706075c5f6325d2fe2b743a57fb5d23f6b", "shasum": "" }, "require": { @@ -1885,7 +1885,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.24" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.25" }, "funding": [ { @@ -1901,20 +1901,20 @@ "type": "tidelift" } ], - "time": "2023-05-19T07:21:23+00:00" + "time": "2023-06-22T08:06:06+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.24", + "version": "v5.4.25", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "f38b722e1557eb3f487d351b48f5a1279b50e9d1" + "reference": "f6c92fe64bbdad7616cb90663c24f6350f3ca464" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f38b722e1557eb3f487d351b48f5a1279b50e9d1", - "reference": "f38b722e1557eb3f487d351b48f5a1279b50e9d1", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f6c92fe64bbdad7616cb90663c24f6350f3ca464", + "reference": "f6c92fe64bbdad7616cb90663c24f6350f3ca464", "shasum": "" }, "require": { @@ -1997,7 +1997,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.24" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.25" }, "funding": [ { @@ -2013,7 +2013,7 @@ "type": "tidelift" } ], - "time": "2023-05-27T08:06:30+00:00" + "time": "2023-06-26T05:58:08+00:00" }, { "name": "symfony/password-hasher", @@ -2882,16 +2882,16 @@ }, { "name": "symfony/routing", - "version": "v5.4.22", + "version": "v5.4.25", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "c2ac11eb34947999b7c38fb4c835a57306907e6d" + "reference": "56bfc1394f7011303eb2e22724f9b422d3f14649" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/c2ac11eb34947999b7c38fb4c835a57306907e6d", - "reference": "c2ac11eb34947999b7c38fb4c835a57306907e6d", + "url": "https://api.github.com/repos/symfony/routing/zipball/56bfc1394f7011303eb2e22724f9b422d3f14649", + "reference": "56bfc1394f7011303eb2e22724f9b422d3f14649", "shasum": "" }, "require": { @@ -2952,7 +2952,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.4.22" + "source": "https://github.com/symfony/routing/tree/v5.4.25" }, "funding": [ { @@ -2968,7 +2968,7 @@ "type": "tidelift" } ], - "time": "2023-03-14T14:59:20+00:00" + "time": "2023-06-05T14:18:47+00:00" }, { "name": "symfony/security-core", @@ -3481,16 +3481,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.4.24", + "version": "v5.4.25", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "8e12706bf9c68a2da633f23bfdc15b4dce5970b3" + "reference": "82269f73c0f0f9859ab9b6900eebacbe54954ede" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/8e12706bf9c68a2da633f23bfdc15b4dce5970b3", - "reference": "8e12706bf9c68a2da633f23bfdc15b4dce5970b3", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/82269f73c0f0f9859ab9b6900eebacbe54954ede", + "reference": "82269f73c0f0f9859ab9b6900eebacbe54954ede", "shasum": "" }, "require": { @@ -3549,7 +3549,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.24" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.25" }, "funding": [ { @@ -3565,7 +3565,7 @@ "type": "tidelift" } ], - "time": "2023-05-25T13:05:00+00:00" + "time": "2023-06-20T20:56:26+00:00" }, { "name": "symfony/yaml", @@ -3707,16 +3707,16 @@ }, { "name": "twig/twig", - "version": "v3.6.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "106c170d08e8415d78be2d16c3d057d0d108262b" + "reference": "7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/106c170d08e8415d78be2d16c3d057d0d108262b", - "reference": "106c170d08e8415d78be2d16c3d057d0d108262b", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd", + "reference": "7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd", "shasum": "" }, "require": { @@ -3762,7 +3762,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.6.0" + "source": "https://github.com/twigphp/Twig/tree/v3.6.1" }, "funding": [ { @@ -3774,20 +3774,20 @@ "type": "tidelift" } ], - "time": "2023-05-03T19:06:57+00:00" + "time": "2023-06-08T12:52:13+00:00" }, { "name": "voku/anti-xss", - "version": "4.1.41", + "version": "4.1.42", "source": { "type": "git", "url": "https://github.com/voku/anti-xss.git", - "reference": "55a403436494e44a2547a8d42de68e6cad4bca1d" + "reference": "bca1f8607e55a3c5077483615cd93bd8f11bd675" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/anti-xss/zipball/55a403436494e44a2547a8d42de68e6cad4bca1d", - "reference": "55a403436494e44a2547a8d42de68e6cad4bca1d", + "url": "https://api.github.com/repos/voku/anti-xss/zipball/bca1f8607e55a3c5077483615cd93bd8f11bd675", + "reference": "bca1f8607e55a3c5077483615cd93bd8f11bd675", "shasum": "" }, "require": { @@ -3833,7 +3833,7 @@ ], "support": { "issues": "https://github.com/voku/anti-xss/issues", - "source": "https://github.com/voku/anti-xss/tree/4.1.41" + "source": "https://github.com/voku/anti-xss/tree/4.1.42" }, "funding": [ { @@ -3857,7 +3857,7 @@ "type": "tidelift" } ], - "time": "2023-02-12T15:56:55+00:00" + "time": "2023-07-03T14:40:46+00:00" }, { "name": "voku/portable-ascii", @@ -4247,16 +4247,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.15.5", + "version": "v4.16.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e" + "reference": "19526a33fb561ef417e822e85f08a00db4059c17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/11e2663a5bc9db5d714eedb4277ee300403b4a9e", - "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/19526a33fb561ef417e822e85f08a00db4059c17", + "reference": "19526a33fb561ef417e822e85f08a00db4059c17", "shasum": "" }, "require": { @@ -4297,9 +4297,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.5" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.16.0" }, - "time": "2023-05-19T20:20:00+00:00" + "time": "2023-06-25T14:52:30+00:00" }, { "name": "phar-io/manifest", @@ -4732,16 +4732,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.8", + "version": "9.6.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e" + "reference": "a6d351645c3fe5a30f5e86be6577d946af65a328" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/17d621b3aff84d0c8b62539e269e87d8d5baa76e", - "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a6d351645c3fe5a30f5e86be6577d946af65a328", + "reference": "a6d351645c3fe5a30f5e86be6577d946af65a328", "shasum": "" }, "require": { @@ -4815,7 +4815,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.8" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.10" }, "funding": [ { @@ -4831,7 +4831,7 @@ "type": "tidelift" } ], - "time": "2023-05-11T05:14:45+00:00" + "time": "2023-07-10T04:04:23+00:00" }, { "name": "sebastian/cli-parser", @@ -5871,5 +5871,5 @@ "platform-overrides": { "php": "7.3.0" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" } diff --git a/docs/actions/bazarliste.yaml b/docs/actions/bazarliste.yaml index 4668a8533..a04d6fc0f 100644 --- a/docs/actions/bazarliste.yaml +++ b/docs/actions/bazarliste.yaml @@ -14,10 +14,10 @@ actions: label: _t(AB_bazar_commons_search_label) type: list icon: search - options: + options: 'true': _t(AB_attach_yes) 'false': _t(AB_attach_no) - dynamic: + dynamic: label: _t(AB_bazar_commons_search_label_dynamic) showif: dynamic searchfields: @@ -30,6 +30,7 @@ actions: showOnlyFor: - bazarliste - bazarcarto + - bazarmapandtable showExceptFor: - bazarcarousel dynamic: @@ -37,7 +38,9 @@ actions: showOnlyFor: - bazarliste - bazarcarto + - bazarmapandtable - bazarcalendar + - bazartableau type: checkbox advanced: true pagination: @@ -46,12 +49,13 @@ actions: type: number showExceptFor: - bazarcarto + - bazarmapandtable - bazargogocarto - bazartimeline - bazarcarousel - bazarcalendar - bazartableau - + colorfield: label: _t(AB_bazar_commons_colorfield_label) type: form-field @@ -59,6 +63,7 @@ actions: only: lists # ce champ doit être de type checkboxListe, listeListe ... showOnlyFor: - bazarcarto + - bazarmapandtable - bazargogocarto - bazarliste - bazarcalendar @@ -68,6 +73,7 @@ actions: showif: colorfield showOnlyFor: - bazarcarto + - bazarmapandtable - bazargogocarto - bazarliste - bazarcalendar @@ -88,6 +94,7 @@ actions: only: lists # ce champ doit être de type checkboxListe, listeListe ... showOnlyFor: - bazarcarto + - bazarmapandtable - bazargogocarto - bazarliste - bazarcalendar @@ -97,6 +104,7 @@ actions: showif: iconfield showOnlyFor: - bazarcarto + - bazarmapandtable - bazargogocarto - bazarliste - bazarcalendar @@ -131,6 +139,18 @@ actions: showExceptFor: - bazarcarousel - bazarcalendar + showmapinlistview: + label: _t(AB_bazar_commons2_showmapinlistview_label) + hint: _t(AB_bazar_commons2_showmapinlistview_hint) + type: checkbox + advanced: true + default: "0" + checkedvalue: "1" + uncheckedvalue: "0" + showExceptFor: + - bazarcarto + - bazarmapandtable + - bazargogocarto # ------------------------------------- # Champs Communs concernant les filtres @@ -189,7 +209,7 @@ actions: hint: _t(AB_bazar_commons2_champ_hint) doclink: https://yeswiki.net/?DocQuery type: form-field - extraFields: + extraFields: - id_typeannonce - date_creation_fiche - date_maj_fiche @@ -275,7 +295,7 @@ actions: default: bf_titre subtitle: type: form-field - extraFields: + extraFields: - owner - date_creation_fiche - date_maj_fiche @@ -283,7 +303,7 @@ actions: default: "" floating: type: form-field - extraFields: + extraFields: - owner - date_creation_fiche - date_maj_fiche @@ -291,7 +311,7 @@ actions: default: "" visual: type: form-field - extraFields: + extraFields: - owner - date_creation_fiche - date_maj_fiche @@ -314,7 +334,7 @@ actions: label: _t(AB_bazarcard_style_label) icon: paint-brush default: vertical - options: + options: vertical: _t(AB_bazarcard_style_vertical) square: _t(AB_bazarcard_style_square) horizontal: _t(AB_bazarcard_style_horizontal) @@ -351,7 +371,7 @@ actions: extraFields: owner label: _t(AB_bazarliste_displayfields_floating_label) default: "" - + advanced: type: divider label: _t(AB_advanced) @@ -446,7 +466,7 @@ actions: modal: _t(AB_bazarcarto_entrydisplay_option_modal) newtab: _t(AB_bazarcarto_entrydisplay_option_newtab) popup: _t(AB_bazarcarto_entrydisplay_option_popup) - popuptemplate: + popuptemplate: label: _t(AB_bazarcarto_popuptemplate_label) type: list value: '_map_popup_html.twig' @@ -455,7 +475,7 @@ actions: '_map_popup_html.twig': _t(AB_bazarcarto_popuptemplate_entry_from_html) '_map_popup_from_data.twig': _t(AB_bazarcarto_popuptemplate_entry_from_data) 'custom': _t(AB_bazarcarto_popuptemplate_custom) - showif: + showif: dynamic: true entrydisplay: 'popup' popupcustomtemplate: @@ -464,7 +484,7 @@ actions: value: 'custom_map_popup.twig' hint: _t(AB_bazarcarto_popupcustomtemplate_hint) advanced: true - showif: + showif: dynamic: true entrydisplay: 'popup' popuptemplate: 'custom' @@ -474,7 +494,7 @@ actions: multiple: true advanced: true default: "" - showif: + showif: dynamic: true entrydisplay: 'popup' popuptemplate: '_map_popup_html.twig|custom' @@ -484,7 +504,7 @@ actions: multiple: true advanced: true value: "bf_titre,imagebf_image" - showif: + showif: dynamic: true entrydisplay: 'popup' popuptemplate: '_map_popup_from_data.twig|custom' @@ -547,7 +567,7 @@ actions: type: list label: _t(AB_bazarcalendar_showlist_label) default: 'year' - options: + options: week: _t(AB_bazarcalendar_showlist_week) month: _t(AB_bazarcalendar_showlist_month) year: _t(AB_bazarcalendar_showlist_year) @@ -587,14 +607,14 @@ actions: subproperties: bf_date_debut_evenement: type: form-field - extraFields: + extraFields: - date_creation_fiche - date_maj_fiche label: _t(AB_bazar_bf_date_debut_evenement_label) default: "" bf_date_fin_evenement: type: form-field - extraFields: + extraFields: - date_creation_fiche - date_maj_fiche label: _t(AB_bazar_bf_date_fin_evenement_label) @@ -610,7 +630,7 @@ actions: default: advanced: true checkedvalue: "1" - uncheckedvalue: + uncheckedvalue: bazarannuaire: label: _t(AB_bazarannuaire_label) @@ -631,7 +651,7 @@ actions: subproperties: bf_date_debut_evenement: type: form-field - extraFields: + extraFields: - date_creation_fiche - date_maj_fiche label: _t(AB_bazar_bf_date_debut_evenement_label) @@ -752,7 +772,7 @@ actions: subproperties: date_creation_fiche: type: form-field - extraFields: + extraFields: - date_creation_fiche - date_maj_fiche label: _t(AB_bazarblog_date_creation_fiche_label) @@ -803,6 +823,272 @@ actions: hint: _t(AB_bazartableau_columnfieldsids_hint) multiple: true default: '' + extraFields: + - id_typeannonce + - date_creation_fiche + - date_maj_fiche + - url + columntitles: + type: text + label: _t(AB_bazartableau_columntitles_label) + hint: _t(AB_bazartableau_columntitles_hint) + default: '' + checkboxfieldsincolumns: + type: checkbox + label: _t(AB_bazartableau_checkboxfieldsincolumns_label) + default: "true" + checkedvalue: "true" + uncheckedvalue: "false" + displayimagesasthumbnails: + type: checkbox + label: _t(AB_bazartableau_displayimagesasthumbnails_label) + default: "false" + checkedvalue: "true" + uncheckedvalue: "false" + displayvaluesinsteadofkeys: + type: checkbox + label: _t(AB_bazartableau_displayvaluesinsteadofkeys_label) + default: "false" + checkedvalue: "true" + uncheckedvalue: "false" + sumfieldsids: + type: form-field + label: _t(AB_bazartableau_sumfieldsids_label) + hint: _t(AB_bazartableau_sumfieldsids_hint) + multiple: true + default: '' + displayadmincol: + type: list + label: _t(AB_bazartableau_displayadmincol_label) + hint: _t(AB_bazartableau_displayadmincol_hint) + default: '' + options: + '': _t(NO) + yes: _t(YES) + onlyadmins: _t(AB_bazartableau_displayadmincol_onlyadmins) + displaycreationdate: + type: list + label: _t(AB_bazartableau_displaycreationdate_label) + advanced: true + default: '' + options: + '': _t(NO) + yes: _t(YES) + onlyadmins: _t(AB_bazartableau_displayadmincol_onlyadmins) + displaylastchangedate: + type: list + label: _t(AB_bazartableau_displaylastchangedate_label) + advanced: true + default: '' + options: + '': _t(NO) + yes: _t(YES) + onlyadmins: _t(AB_bazartableau_displayadmincol_onlyadmins) + displayowner: + type: list + label: _t(AB_bazartableau_displayowner_label) + advanced: true + default: '' + options: + '': _t(NO) + yes: _t(YES) + onlyadmins: _t(AB_bazartableau_displayadmincol_onlyadmins) + defaultcolumnwidth: + label: _t(AB_bazartableau_defaultcolumnwidth_label) + hint: _t(AB_bazartableau_defaultcolumnwidth_hint) + type: text + advanced: true + default: '' + columnswidth: + label: _t(AB_bazartableau_columnswidth_label) + hint: _t(AB_bazartableau_columnswidth_hint) + type: columns-width + advanced: true + subproperties: + field: + label: _t(AB_bazartableau_columnswidth_field_label) + type: form-field + width: + label: _t(AB_bazartableau_columnswidth_width_label) + type: text + default: '' + exportallcolumns: + label: _t(AB_bazartableau_exportallcolumns_label) + advanced: true + type: checkbox + default: 'false' + + bazarmapandtable: + label: _t(AB_BAZAR_MAP_AND_TABLE_LABEL) + description: _t(AB_bazarcarto_description) + hint: _t(AB_bazarcarto_hint) + width: 35% + properties: + template: + value: map-and-table + provider: + label: _t(AB_bazarcarto_provider_label) + required: true + type: list + default: OpenStreetMap.Mapnik # TODO change to Stadia.OSMBright if community agrees? + options: + - OpenStreetMap.Mapnik + - OpenStreetMap.BlackAndWhite + - OpenStreetMap.DE + - OpenStreetMap.France + - OpenStreetMap.HOT + - OpenTopoMap + - Stadia.AlidadeSmooth + - Stadia.AlidadeSmoothDark + - Stadia.OSMBright + - Stamen.Toner + - Stamen.TonerBackground + - Stamen.TonerLite + - Stamen.Watercolor + - Stamen.Terrain + - Stamen.TerrainBackground + - Esri.WorldStreetMap + - Esri.DeLorme + - Esri.WorldTopoMap + - Esri.WorldImagery + - Esri.WorldTerrain + - Esri.WorldShadedRelief + - Esri.WorldPhysical + - Esri.OceanBasemap + - Esri.NatGeoWorldMap + - Esri.WorldGrayCanvas + - HERE.normalDay + - MtbMap + - CartoDB.Positron + - CartoDB.PositronNoLabels + - CartoDB.PositronOnlyLabels + - CartoDB.DarkMatter + - CartoDB.DarkMatterNoLabels + - CartoDB.DarkMatterOnlyLabels + - HikeBike.HikeBike + - HikeBike.HillShading + - BasemapAT.orthofoto + - NASAGIBS.ViirsEarthAtNight2012 + coordinates: + label: _t(AB_bazarcarto_coordinates_label) + type: geo + cluster: + label: _t(AB_bazarcarto_cluster_label) + type: checkbox + default: "false" + width: + advanced: true + label: _t(AB_bazarcarto_width_label) + hint: 500px, 100%... + type: text + default: 100% + height: + advanced: true + label: _t(AB_bazarcarto_height_label) + type: text + default: 300px + entrydisplay: + label: _t(AB_bazarcarto_entrydisplay_label) + type: list + default: sidebar + advanced: true + showif: dynamic + options: + direct: _t(AB_bazarcarto_entrydisplay_option_direct) + sidebar: _t(AB_bazarcarto_entrydisplay_option_sidebar) + modal: _t(AB_bazarcarto_entrydisplay_option_modal) + newtab: _t(AB_bazarcarto_entrydisplay_option_newtab) + popup: _t(AB_bazarcarto_entrydisplay_option_popup) + popuptemplate: + label: _t(AB_bazarcarto_popuptemplate_label) + type: list + value: '_map_popup_html.twig' + advanced: true + options: + '_map_popup_html.twig': _t(AB_bazarcarto_popuptemplate_entry_from_html) + '_map_popup_from_data.twig': _t(AB_bazarcarto_popuptemplate_entry_from_data) + 'custom': _t(AB_bazarcarto_popuptemplate_custom) + showif: + dynamic: true + entrydisplay: 'popup' + popupcustomtemplate: + label: _t(AB_bazarcarto_popupcustomtemplate_label) + type: text + value: 'custom_map_popup.twig' + hint: _t(AB_bazarcarto_popupcustomtemplate_hint) + advanced: true + showif: + dynamic: true + entrydisplay: 'popup' + popuptemplate: 'custom' + popupselectedfields: + type: form-field + label: _t(AB_bazarliste_popupselectedfields_label) + multiple: true + advanced: true + default: "" + showif: + dynamic: true + entrydisplay: 'popup' + popuptemplate: '_map_popup_html.twig|custom' + necessary_fields: + type: form-field + label: _t(AB_bazarliste_popupneededfields_label) + multiple: true + advanced: true + value: "bf_titre,imagebf_image" + showif: + dynamic: true + entrydisplay: 'popup' + popuptemplate: '_map_popup_from_data.twig|custom' + displayfields: + type: correspondance + showif: dynamic + advanced: true + subproperties: + markerhover: + type: form-field + label: _t(AB_bazarcarto_displayfields_markhover_label) + default: bf_titre + smallmarker: + advanced: true + label: _t(AB_bazarcarto_smallmarker_label) + type: checkbox + default: "0" + checkedvalue: "1" + uncheckedvalue: "0" + # spider: + # advanced: true + # label: _t(AB_bazarcarto_spider_label) + # hint: _t(AB_bazarcarto_spider_hint) + # type: checkbox + # default: "false" + # barregestion: + # advanced: true + # label: _t(AB_bazarcarto_barregestion_label) + # type: checkbox + # default: "false" + # navigation: + # advanced: true + # label: _t(AB_bazarcarto_navigation_label) + # type: checkbox + # default: "true" + zoommolette: + advanced: true + label: _t(AB_bazarcarto_zoommolette_label) + type: checkbox + default: "false" + columnfieldsids: + type: form-field + label: _t(AB_bazartableau_columnfieldsids_label) + hint: _t(AB_bazartableau_columnfieldsids_hint) + multiple: true + default: '' + extraFields: + - id_typeannonce + - date_creation_fiche + - date_maj_fiche + - url columntitles: type: text label: _t(AB_bazartableau_columntitles_label) @@ -837,7 +1123,7 @@ actions: label: _t(AB_bazartableau_displayadmincol_label) hint: _t(AB_bazartableau_displayadmincol_hint) default: '' - options: + options: '': _t(NO) yes: _t(YES) onlyadmins: _t(AB_bazartableau_displayadmincol_onlyadmins) @@ -846,7 +1132,7 @@ actions: label: _t(AB_bazartableau_displaycreationdate_label) advanced: true default: '' - options: + options: '': _t(NO) yes: _t(YES) onlyadmins: _t(AB_bazartableau_displayadmincol_onlyadmins) @@ -855,7 +1141,7 @@ actions: label: _t(AB_bazartableau_displaylastchangedate_label) advanced: true default: '' - options: + options: '': _t(NO) yes: _t(YES) onlyadmins: _t(AB_bazartableau_displayadmincol_onlyadmins) @@ -864,7 +1150,7 @@ actions: label: _t(AB_bazartableau_displayowner_label) advanced: true default: '' - options: + options: '': _t(NO) yes: _t(YES) onlyadmins: _t(AB_bazartableau_displayadmincol_onlyadmins) @@ -892,3 +1178,11 @@ actions: advanced: true type: checkbox default: 'false' + tablewith: + label: _t(AB_BAZAR_MAP_AND_TABLE_TABLEWITH_LABEL) + type: list + default: '' + options: + '': _t(AB_BAZAR_MAP_AND_TABLE_TABLEWITH_ALL) + only-geolocation : _t(AB_BAZAR_MAP_AND_TABLE_TABLEWITH_ONLY_GEOLOC) + no-geolocation: _t(AB_BAZAR_MAP_AND_TABLE_TABLEWITH_NO_GEOLOC) diff --git a/docs/actions/lang/actionsbuilder_en.inc.php b/docs/actions/lang/actionsbuilder_en.inc.php index 78263c891..d89037b35 100644 --- a/docs/actions/lang/actionsbuilder_en.inc.php +++ b/docs/actions/lang/actionsbuilder_en.inc.php @@ -120,6 +120,12 @@ // "AB_bazarcard_style_vertical" => 'Vertical', // "AB_bazarcard_style_square" => 'Carré', // "AB_bazarcard_style_horizontal" => 'Horizontal', + // BazarTable + 'AB_BAZAR_MAP_AND_TABLE_LABEL' => 'Map and table', + 'AB_BAZAR_MAP_AND_TABLE_TABLEWITH_LABEL' => 'Table with all entries', + 'AB_BAZAR_MAP_AND_TABLE_TABLEWITH_ALL' => 'with or withour geolocalization', + 'AB_BAZAR_MAP_AND_TABLE_TABLEWITH_ONLY_GEOLOC' => 'only with geolocalization', + 'AB_BAZAR_MAP_AND_TABLE_TABLEWITH_NO_GEOLOC' => 'only without geolocalization', // // BazarTrombi // "AB_bazartrombi_label" => "Trombinoscope", // "AB_bazartrombi_description" => "Les fiches seront sous forme de Trombinoscope.", diff --git a/docs/actions/lang/actionsbuilder_fr.inc.php b/docs/actions/lang/actionsbuilder_fr.inc.php index d358ab0b5..0f6149428 100644 --- a/docs/actions/lang/actionsbuilder_fr.inc.php +++ b/docs/actions/lang/actionsbuilder_fr.inc.php @@ -50,6 +50,8 @@ "AB_bazar_commons2_resetfiltersbutton_label" => "Bouton pour réinitialiser les filtres", "AB_bazar_commons2_showexportbuttons" => "Boutons d'export (CSV, JSON...)", "AB_bazar_commons2_title" => "Filtres / Facettes", + "AB_bazar_commons2_showmapinlistview_label" => "Présenter une carte associée à chaque fiche", + "AB_bazar_commons2_showmapinlistview_hint" => "Uniquement pour les fiches qui ont été géolocalisées", "AB_bazar_facettes_btn-label-add" => "Ajouter Une Facette", "AB_bazar_facettes_field_label" => "Champ", "AB_bazar_facettes_title_label" => "Titre", @@ -120,6 +122,12 @@ "AB_bazarcard_style_vertical" => 'Vertical', "AB_bazarcard_style_square" => 'Carré', "AB_bazarcard_style_horizontal" => 'Horizontal', + // BazarTable + 'AB_BAZAR_MAP_AND_TABLE_LABEL' => 'Carte et tableau', + 'AB_BAZAR_MAP_AND_TABLE_TABLEWITH_LABEL' => 'Tableau contenant toutes les fiches', + 'AB_BAZAR_MAP_AND_TABLE_TABLEWITH_ALL' => 'avec ou sans geolocalisation', + 'AB_BAZAR_MAP_AND_TABLE_TABLEWITH_ONLY_GEOLOC' => 'seulement avec geolocalisation', + 'AB_BAZAR_MAP_AND_TABLE_TABLEWITH_NO_GEOLOC' => 'seulement sans geolocalisation', // BazarTrombi "AB_bazartrombi_label" => "Trombinoscope", "AB_bazartrombi_description" => "Les fiches seront sous forme de Trombinoscope.", diff --git a/docs/actions/lang/actionsbuilder_pt.inc.php b/docs/actions/lang/actionsbuilder_pt.inc.php index 20427f803..2d84c1980 100644 --- a/docs/actions/lang/actionsbuilder_pt.inc.php +++ b/docs/actions/lang/actionsbuilder_pt.inc.php @@ -120,6 +120,12 @@ // "AB_bazarcard_style_vertical" => 'Vertical', // "AB_bazarcard_style_square" => 'Carré', // "AB_bazarcard_style_horizontal" => 'Horizontal', + // BazarTable + // 'AB_BAZAR_MAP_AND_TABLE_LABEL' => 'Carte et tableau', + // 'AB_BAZAR_MAP_AND_TABLE_TABLEWITH_LABEL' => 'Tableau contenant toutes les fiches', + // 'AB_BAZAR_MAP_AND_TABLE_TABLEWITH_ALL' => 'avec ou sans geolocalisation', + // 'AB_BAZAR_MAP_AND_TABLE_TABLEWITH_ONLY_GEOLOC' => 'seulement avec geolocalisation', + // 'AB_BAZAR_MAP_AND_TABLE_TABLEWITH_NO_GEOLOC' => 'seulement sans geolocalisation', // BazarTrombi // "AB_bazartrombi_label" => "Trombinoscope", // "AB_bazartrombi_description" => "Les fiches seront sous forme de Trombinoscope.", diff --git a/docs/code/csrf.md b/docs/code/csrf.md index e686811a7..c7fbcc248 100644 --- a/docs/code/csrf.md +++ b/docs/code/csrf.md @@ -61,6 +61,10 @@ Previous token will be considered as invalid after calling `refreshToken`. ## Rules to name 'tokenId' +In most case, we use `main` as tokenId and does not `GET` request with `token`. + +### Previous rules + We propose the following rule to name token and avoid trouble between methods. `\\`. For api we can have diff --git a/docs/en/custom-folder.md b/docs/en/custom-folder.md index 528e5494a..cecded277 100644 --- a/docs/en/custom-folder.md +++ b/docs/en/custom-folder.md @@ -29,6 +29,143 @@ Available variables inside the template are | `$values['html']` | Pre-rendered fields | `$values['html']['bf_titre'] => "

My title

"` | | `$values['form']` | Informations about the form : id, fields etc.. | +#### **Dynamic** bazarlist templates + +It is possible to customize for `{{bazarliste dynamic="true"}}`. But for that, the previous `my-template.tpl.html` can not be used even if using `my-template.twig`. + +**Explanation**: + + 1. a bazarlist dynamic template is run into `javascript` via [VueJs](https://v2.vuejs.org/v2/guide) library + 2. a not dynamic bazarlist template is run into `php` + +``` +------------ +| twig | extract +| template | template +------------ from html + | USE ========> + v / \ +-------- -------- --------- +| PHP | => | html | => | VueJs | +-------- -------- --------- + | + v +------------------- ------------- +| manipulate | <= | javascript | +| DOM dynamically | | functions | +------------------- -------------- +``` +_Diagram of process for dynamic templates_ + +**Process**: + - create a `twig` template that extends [`@bazar/entries/index-dynamic.twig`](tools/bazar/templates/entries/index-dynamic.twig ':ignore') into `custom/templates/bazar/entries/index-dynamic-templates/` with this code for example: + ```twig + {% extends "@bazar/entries/index-dynamic.twig" %} + + {% block display_entries %} + {% endblock %} + ``` + - it is possible to use this template with `yeswiki` code (do not add `.twig` example) : + ```yeswiki + {{bazarliste id=".." template="my-file-name" dynamic="true"}} + ``` + - modify the block `display_entries` to add a `VueJs` template + - it is possible to inspire from [`@bazar/entries/index-dynamic-templates/list.twig`](tools/bazar/templates/entries/index-dynamic-templates/list.twig ':ignore') template + - first example: + ```twig + {% extends "@bazar/entries/index-dynamic.twig" %} + + {% block display_entries %} +
+ My first message +
+ {% endblock %} + ``` + - **BE CAREFUL**, a `vuejs` template **IS NOT** a twig template. The syntax is different. + - if you need to add `css` or `javascripts` into the template, you can rewrite the block `assets` + ```twig + {% extends "@bazar/entries/index-dynamic.twig" %} + + {% block assets %} + {{ include_css('custom/path/to/file.css') }} + {{ include_javascript('custom/path/to/file.js') }} + {% endblock %} + + {% block display_entries %} + {# ... #} + {% endblock %} + ``` + - dynamic `bazarlist` does not import all data from the entry. To define needed fields for the template, you need to add this line : + ```twig + {% extends "@bazar/entries/index-dynamic.twig" %} + + {% set necessary_fields = ['bf_field1', 'bf_field2','url'] %} + + {% block assets %} + {# ... #} + {% endblock %} + + {% block display_entries %} + {# ... #} + {% endblock %} + ``` + +**Example with only titles**: +```twig + {% extends "@bazar/entries/index-dynamic.twig" %} + + {% set necessary_fields = ['bf_titre', 'url'] %} + + {% block display_entries %} +
+
+ {{ _t('BAZ_NO_RESULT') }} +
+
    +
  • +
+
+ {% endblock %} +``` + +**Particularity for the rendering shortcut `{{ }}`**: + +The shortcut `{{ }}` is used by `twig` and `vuejs`. +So the first time that shortcut `{{ }}` is used this is for `twig`. + +In `VueJs`, the shortcut `{{ }}` means ``. + +It is advised to use `` but you can find in existing templates `{{ "{{ entry.bf_titre }}" }}`. + +**Advise to render a dynamic string**: + +Use +``` + +``` + +using the back-quoted string into `javascript` with `${...}` to generate interpolation from `javascript`. + +the previous example is similar to (the `+` is used to concatenate strings): +``` + +``` + +**Example of link to entry**: + +```vuejs +Lire plus () +``` + +**If you need a component**: + +Sometimes, it is not possible to do all things only with html to define the [`VueJs`](https://v2.vuejs.org/v2/guide/components.html) template : a component is needed. + +An example is the [`@bazar/entries/index-dynamic-templates/map.twig`](tools/bazar/templates/entries/index-dynamic-templates/map.twig ':ignore') template. + + 1. define a component into a `.js` file inspiring from [`tools/bazar/presentation/javascripts/components/BazarMap.js`](tools/bazar/presentation/javascripts/components/BazarMap.js ':ignore') respecting [`VueJs v2`](https://v2.vuejs.org/v2/guide/components.html) syntaxe + 2. use this component into the `html` + ### Custom Javascript All the javascript files in the `custom/javascripts/` directory are included. diff --git a/docs/fr/admin.md b/docs/fr/admin.md index 5cd65b202..462423ee4 100644 --- a/docs/fr/admin.md +++ b/docs/fr/admin.md @@ -502,7 +502,7 @@ Si cela a l'avantage de bloquer/réserver la création de nouveaux comptes aux s #### Pour supprimer de nombreuses pages rapidement -Installer l'extension "multideletepages" (Roue crantée > Gestion du site > Mise à jour / extensions). +Installer l'extension "maintenance" (Roue crantée > Gestion du site > Mise à jour / extensions). Puis, dans une page (par exemple créer une page DeletePages) mettre l'action {{multideletepages}}. Vous aurez alors un tableau avec la liste de toutes les pages : vous pouvez cocher de nombreuses pages et cliquer sur "Suppr. select." : ATTENTION, ça ne redemande pas de validation. @@ -511,7 +511,7 @@ Vous aurez alors un tableau avec la liste de toutes les pages : vous pouvez coch Trois options sont possibles : * option 1 : nettoyer les pages spéciales puis utiliser l'action {{despam}} * option 2 : restaurer la base de donnée à partir d'une sauvegarde. ATTENTION, pour cette option, il faut avoir une sauvegarde et les accès à phpmyadmin -* option 3 : pour la suppression massive de nouvelles pages : extension multideletepages (cf paragraphe ci-dessus). +* option 3 : pour la suppression massive de nouvelles pages : extension `maintenance` (cf paragraphe ci-dessus). #### Pour supprimer les utilisateurs non désirables (utilisateurs avancés) @@ -558,7 +558,7 @@ Pour bien configurer, on peut mettre dans le paramètre Fuseau horaire du site l ### Droit d'accès Cette partie permet de modifier les droits d'accès pour les pages à venir. Pour voir d'autres façons de gérer les droits d'accès, voir le paragraphe [Gérer les droits d'accès des pages non encore existantes](/docs/fr/admin?id=g%c3%a9rer-les-droits-d39acc%c3%a8s-des-pages-non-encore-existantes) - - **Droits de lecture par défaut des pages (* pour tous, + pour personnes identifiées, @admins pour groupe admin) - default_read_acl** : par défaut, les pages à venir sont ouvertes à tous en droit de lecture grâce au symbole `*`.Pour limiter la lecture aux personnes ayant créé un compte, il faut mettre le symbole `+`. Pour limiter à un groupe d'utilisateurs en particulier, mettre le symbole `@` et le nom du groupe accolé. Par exemple, pour le groupe admin : `@admins`. + - **Droits de lecture par défaut des pages (* pour tous, + pour personnes identifiées, @admins pour groupe admin) - default_read_acl** : par défaut, les pages à venir sont ouvertes à tous en droit de lecture grâce au symbole `*`. Pour limiter la lecture aux personnes ayant créé un compte, il faut mettre le symbole `+`. Pour limiter à un groupe d'utilisateurs en particulier, mettre le symbole `@` et le nom du groupe accolé. Par exemple, pour le groupe admin : `@admins`. - **Droits d'écriture par défaut des pages (* pour tous, + pour personnes identifiées, @admins pour groupe admin) - default_write_acl** : par défaut, les pages à venir sont ouvertes à tous en droit d'écriture. - **Droits de commentaires par défaut des pages (comments-closed pour fermés, * pour tous, + pour personnes identifiées, @admins pour groupe admin) - default_comment_acl** : - **Commentaires activés (true ou false) - comments_activated** : @@ -568,7 +568,7 @@ La combinaison des deux paramètres donnent le résultat suivant pour l'exemple ![antispam.JPG (17.5 KB)](/images/antispam.JPG) - - **Autoriser le double-clic pour éditer les menus et pages spéciales (true ou false) - allow_doubleclic** : par défaut, le double-clic utilisé pour l'édition des pages a été retiré pour les menus et les pages spéciales (PageMenuHaut, PageTitre, PageRapideHaut) afin d'éviter que ces pages soient spammées. Pour autoriser ce double-clic, mettre `true`pour ce paramètre. + - **Autoriser le double-clic pour éditer les menus et pages spéciales (true ou false) - allow_doubleclic** : par défaut, le double-clic utilisé pour l'édition des pages a été retiré pour les menus et les pages spéciales (PageMenuHaut, PageTitre, PageRapideHaut) afin d'éviter que ces pages soient spammées. Pour autoriser ce double-clic, mettre `true` pour ce paramètre. ### Envoi des e-mails - **Remplacer le mail utilisé comme expéditeur des messages - contact_from** : @@ -584,16 +584,16 @@ La combinaison des deux paramètres donnent le résultat suivant pour l'exemple ### Base de données -Par défaut, pour l'affichage des données sous forme cartographique, les cartes sont centrées sur le centre de la France et affiche l'intégralité de la France. On peut forcer le centre ailleurs en configurant les paramètres ci-dessous. +Par défaut, pour l'affichage des données sous forme cartographique, les cartes sont centrées sur le centre de la France et affichent l'intégralité de la France. On peut forcer le centre ailleurs en configurant les paramètres ci-dessous. - **Latitude par défaut des affichages cartographiques - baz_map_center_lat** : par défaut, la latitude pour centrer la carte sur le centre de la France est 46.22763. - **Longitude par défaut des affichages cartographiques - baz_map_center_lon** : par défaut, la longitude pour centrer la carte sur le centre de la France est 2.213749 - **Niveau de zoom par défaut des cartes (1:monde => 15:commune) - baz_map_zoom** : par défaut, pour afficher l'intégralité de la France, le niveau de zoom est à 5. L'échelle de zoom va de `1`(vue de l'ensemble du monde) à `15`(vue d'une commune) - **Hauteur par défaut en pixels des affichages cartographiques - baz_map_height** : par défaut, la valeur est de 300px. - **Adresse mail de l'expéditeur des modifications des fiches bazar - BAZ_ADRESSE_MAIL_ADMIN** : - - **Envoyer un mail aux admininistrateurs à chaque modification de fiche (true ou false) - BAZ_ENVOI_MAIL_ADMIN** : + - **Envoyer un mail aux administrateurs à chaque modification de fiche (true ou false) - BAZ_ENVOI_MAIL_ADMIN** : - **Temps (s) entre deux rafraîchissements du cache pour vérifier les ajouts et modifications dans les requêtes JSON - baz_external_service[cache_time_to_check_changes]** : - - **Temps (s) entre deux rafraîchissements du cache pour vérifier les suppresions dans les requêtes JSON - baz_external_service[cache_time_to_check_deletion]** : + - **Temps (s) entre deux rafraîchissements du cache pour vérifier les suppressions dans les requêtes JSON - baz_external_service[cache_time_to_check_deletion]** : - **Temps (s) entre deux rafraîchissements du cache pour formulaires nécessaires aux requêtes JSON - baz_external_service[cache_time_to_refresh_forms]** : - **Permettre la création de fiches même si le wiki est fermé en écriture (true ou false) - bazarIgnoreAcls** : @@ -629,7 +629,7 @@ Pour exclure des fichiers de la sauvegarde, il faut écrire le nom du dossier ou Dans cet exemple d'arborescence, pour exclure le dossier "tools" , il faut écrire : tools ### Télécharger une sauvegarde -Sur la page [`GererSauvegardes`](?GererSauvegardes ':ignore') , la liste des sauvegarde est disponible au téléchargement. +Sur la page [`GererSauvegardes`](?GererSauvegardes ':ignore') , la liste des sauvegardes est disponible au téléchargement. Pour une sauvegarde complète, le dossier archive contient les fichiers et la base de données (fichier sql présent dans le dossier private\backups ) ### Résoudre les problèmes de sauvegarde @@ -644,7 +644,7 @@ Si lors de la sauvegarde, vous avec un message comme quoi le site est en "hibern 2. Rendez-vous dans la page [`GererConfig`](?GererConfig ':ignore') de votre site (aussi accessible en passant par [`GererSite`](?GererSite ':ignore') > `Fichier de conf`). 3. Rendez-vous dans la partie `Sécurité` 4. Recherchez le paramètre `wiki_status` (état du wiki) - 5. pour se paramètre, videz le champ puis sauvegardez en cliquant sur `Valider` en bas de la page + 5. pour ce paramètre, videz le champ puis sauvegardez en cliquant sur `Valider` en bas de la page 6. revenir vérifier que le champ est vide (ou qu'il vaut bien `running`) 7. revenir à la page [`GererSauvegardes`](?GererSauvegardes ':ignore') pour relancer votre sauvegarde @@ -653,15 +653,15 @@ Si lors de la sauvegarde, vous avec un message comme quoi "dossier de sauvegarde 1. Rendez-vous dans la page [`GererConfig`](?GererConfig ':ignore') de votre site (aussi accessible en passant par [`GererSite`](?GererSite ':ignore') > `Fichier de conf`). 2. Rendez-vous dans la partie `Sécurité` 3. Recherchez le paramètre `privatePath` (Localisation des sauvegardes) - - si ce paramètre contient le checmin d'un dossier de votre serveur, vérifiez que ce dossier existe bien et que l'environnement `php` du site internet a les droits d'écriture pour ce dossier. + - si ce paramètre contient le chemin d'un dossier de votre serveur, vérifiez que ce dossier existe bien et que l'environnement `php` du site internet a les droits d'écriture pour ce dossier. - si le paramètre est vide, vous pouvez le remplir avec le chemin d'un dossier de votre serveur (Pour une adresse relative par rapport au dossier de base de votre serveur, na pas commencer par `/`). Ce chemin ne doit pas être accessible depuis internet - si vous souhaitez conserver le paramètre avec une valeur vide, ce sera la dossier `private/backups/` qui sera utilisé. Pensez-bien à le rendre non accessible depuis internet; - il est possible d'utiliser la valeur `%TMP` pour que les sauvegardes se fassent dans le dossier temporaire du serveur - **lancement impossible des commandes console sur le serveur** Le système de sauvegarde de YesWiki utilise des commandes console sur le serveur pour faire les sauvegardes. -Ceci permet d'exécuter les tâches en arrièrre plan et éviter les déconnexios intempestives pendant la sauvegarde (surtout quand elle est longue). -Certaines restrictions de sécurité de votre serveur peuvent empêcher l'utilisation de ctte fonctionnalité. Pour résoudre ce souci, vous pouvez : +Ceci permet d'exécuter les tâches en arrière plan et éviter les déconnexions intempestives pendant la sauvegarde (surtout quand elle est longue). +Certaines restrictions de sécurité de votre serveur peuvent empêcher l'utilisation de cette fonctionnalité. Pour résoudre ce souci, vous pouvez : - Vérifier dans votre interface de gestion de votre serveur si les commandes `exec`, `proc_open`, `proc_terminate` ... sont autorisées pour `php` - OU passez en mode synchrone : 1. Rendez-vous dans la page [`GererConfig`](?GererConfig ':ignore') de votre site (aussi accessible en passant par [`GererSite`](?GererSite ':ignore') > `Fichier de conf`). @@ -676,7 +676,7 @@ Certaines restrictions de sécurité de votre serveur peuvent empêcher l'utilis - **mysqldump inaccessible** Pour réaliser des sauvegardes de votre site, YesWiki utilise l'utilitaire `mysqldump`. -Sur certains serveurs, cet `utilitaire` n'est pas accessible à `php` par défaut. YesWiki utilise des méthodes alternatives pour contourner ce souci mais dans certains cas, les méthodes alternativent ne suffisent pas. +Sur certains serveurs, cet `utilitaire` n'est pas accessible à `php` par défaut. YesWiki utilise des méthodes alternatives pour contourner ce souci mais dans certains cas, les méthodes alternatives ne suffisent pas. Essayer de voir si vous pouvez rendre accessible `mysqldump` sur votre serveur. - **dossier de sauvegarde accessible sur internet** diff --git a/docs/fr/asso-finances.md b/docs/fr/asso-finances.md index 3abb66218..1d993fd0e 100644 --- a/docs/fr/asso-finances.md +++ b/docs/fr/asso-finances.md @@ -5,7 +5,7 @@ Le 21 octobre 2019, l'association YesWiki a été créée, elle est un outil au L'association ne détient pas le logiciel (qui est sous licence libre), ni ne regroupe toute la communauté de contributeurices. **Avec un objet** -Objet de l'association : contribuer au développement de pratiques coopératives, notamment grâce au développement du logiciel libre YesWiki et de toute application informatique liée à l'animation de la communauté (utilisateurs, développeurs,financeurs) ; +Objet de l'association : contribuer au développement de pratiques coopératives, notamment grâce au développement du logiciel libre YesWiki et de toute application informatique liée à l'animation de la communauté (utilisateurs, développeurs, financeurs) ; **Pourquoi une association ?** Elle a pour objectif de servir de structure juridique permettant de supporter tout dispositif utile au développement du logiciel . Récolter des fonds, rembourser les frais des contributeurices aux sprints, porter administrativement des projets ou demander des financements divers et variés qui contribuent d'une manière ou d'une autre à YesWiki... @@ -34,4 +34,4 @@ La totalité des fonds récoltés seront dépensés comme suit : - **Les 1000€ premiers euros pour financer frais de fonctionnement** des services yeswiki.net et de l'association (frais divers, administratif et prestations d'hébergement / maintenance du site Yeswiki.net et des sites YesWiki hébergés sur la ferme) - **Les 4000€ suivants pour prendre en charge les rencontres présentielles** (les "sprints de développement") -- **Au delà de 5000€**, les fonds seront alloués au **financement de nouveaux développements**. Si les rencontres et les frais de fonctionnement coûtent moins cher que prévu, ce plafond sera évidemment abaissé. \ No newline at end of file +- **Au delà de 5000€**, les fonds seront alloués au **financement de nouveaux développements**. Si les rencontres et les frais de fonctionnement coûtent moins cher que prévu, ce plafond sera évidemment abaissé. diff --git a/handlers/IframeHandler.php b/handlers/IframeHandler.php index c1dc77704..6f36c2736 100644 --- a/handlers/IframeHandler.php +++ b/handlers/IframeHandler.php @@ -127,16 +127,16 @@ private function renderWikiPage(): string $title = ($isUserFavorite) ? _t('FAVORITES_REMOVE') : _t('FAVORITES_ADD') ; // HEREDOC syntax $output .= << - - -HTML ; + + + + HTML; } // on ajoute un bouton de partage, si &share=1 est présent dans l'url if (isset($_GET['share']) && $_GET['share'] == '1') { diff --git a/handlers/page/deletepage.php b/handlers/page/deletepage.php index b5e633acd..4a4f181c0 100755 --- a/handlers/page/deletepage.php +++ b/handlers/page/deletepage.php @@ -3,7 +3,9 @@ use Symfony\Component\Security\Csrf\Exception\TokenNotFoundException; use Symfony\Component\Security\Csrf\CsrfTokenManager; use YesWiki\Bazar\Controller\EntryController; +use YesWiki\Bazar\Service\EntryManager; use YesWiki\Core\Controller\CsrfTokenController; +use YesWiki\Core\Service\PageManager; // Vérification de sécurité if (!defined("WIKINI_VERSION")) { @@ -41,7 +43,7 @@ $msg .= '" method="post" style="display: inline">' . "\n"; $msg .= str_replace("{tag}", $this->Link($tag), _t('DELETEPAGE_CONFIRM')) . "\n"; $msg .= '

'; - $msg .= ''; + $msg .= ''; $msg .= 'checkToken("handler\deletepage\\$tag", 'POST', 'csrf-token'); - - $this->services->get(EntryController::class)->triggerDeletedEventIfNeeded(function()use($tag){ - $this->DeleteOrphanedPage($tag); - },$tag); - $this->LogAdministrativeAction($this->GetUserName(), "Suppression de la page ->\"\"" . $tag . "\"\""); - $msg = str_replace("{tag}", $tag, _t('DELETEPAGE_MESSAGE')); - - $hasBeenDeleted = true; - // if $incomingurl has been defined and doesn't refer to the deleted page, redirect to it - $redirectToIncoming = !empty($incomingurl); + $csrfTokenController->checkToken('main', 'POST', 'csrf-token',false); + if ($this->services->get(EntryManager::class)->isEntry($tag)){ + if($this->services->get(EntryController::class)->delete($tag)){ + $hasBeenDeleted = true; + } + } else { + $this->services->get(PageManager::class)->deleteOrphaned($tag); + $this->LogAdministrativeAction($this->GetUserName(), "Suppression de la page ->\"\"" . $tag . "\"\""); + $hasBeenDeleted = true; + } + if ($hasBeenDeleted){ + $msg = str_replace("{tag}", $tag, _t('DELETEPAGE_MESSAGE')); + // if $incomingurl has been defined and doesn't refer to the deleted page, redirect to it + $redirectToIncoming = !empty($incomingurl); + if ($redirectToIncoming){ + // to prevent errors when deleting entry from BazaR page + $incomingurl = str_replace( + ["&action=voir_fiche&id_fiche=$tag",'&message=ajout_ok'], + [''], + $incomingurl); + } + } else { + $msg = $this->render('@templates/alert-message-with-back.twig',[ + 'type' => 'danger', + 'message' => _t('DELETEPAGE_NOT_DELETED') + ]); + } } catch (TokenNotFoundException $th) { $msg = $this->render("@templates/alert-message-with-back.twig", [ 'type' => 'danger', @@ -75,7 +93,7 @@ && ($_GET['confirme'] === 'oui')) { // a trouble occured, invald token ? try { - $csrfTokenController->checkToken("handler\deletepage\\{$this->tag}", 'POST', 'csrf-token'); + $csrfTokenController->checkToken('main', 'POST', 'csrf-token',false); } catch (TokenNotFoundException $th) { $msg .= $this->render("@templates/alert-message.twig", [ 'type' => 'danger', @@ -98,7 +116,7 @@ $msg .= '" method="post" style="display: inline">' . "\n"; $msg .= str_replace("{tag}", $this->Link($this->tag), _t('DELETEPAGE_CONFIRM_WHEN_BACKLINKS')) . "\n"; $msg .= '

'; - $msg .= 'tag}")) .'">'; + $msg .= ''; $msg .= 'services->get(EntryManager::class); if ($entryManager->isEntry($this->page['tag'])) { $entryController = $this->services->get(EntryController::class); - echo $entryController->view($this->GetPageTag(), 0); + echo $entryController->view($this->GetPageTag(), $this->page['time'] ?? null); } else { echo $this->Format($this->page['body'], 'wakka', $this->GetPageTag()); } diff --git a/includes/YesWiki.php b/includes/YesWiki.php index a5caa772f..e918a02e9 100755 --- a/includes/YesWiki.php +++ b/includes/YesWiki.php @@ -62,14 +62,7 @@ class Wiki public $routes = array(); public $user; // depreciated TODO remove it for ectoplasme : replaced by userManager public $services; - - /** - * An array containing all the actions that are implemented by an object - * - * @access private - */ - public $actionObjects; - + public $actionObjects = array(); // keep track of actions performed public $pageCacheFormatted = array(); public $_groupsCache = array(); public $_actionsAclsCache = array(); @@ -265,7 +258,7 @@ public function AppendContentToPage($content, $page, $bypass_acls = false) // now we render it internally so we can write the updated link table. $page = $this->services->get(PageManager::class)->getOne($page); - $this->services->get(LinkTracker::class)->registerLinks($page, false, false); + $this->services->get(LinkTracker::class)->registerLinks($page, false, true); // Retourne 0 seulement si tout c'est bien passe return 0; @@ -296,8 +289,45 @@ public function LogAdministrativeAction($user, $content, $page = '') $replace = '\\n'; $content = str_replace($order, $replace, $content); $contentToAppend = "\n" . date('Y-m-d H:i:s') . ' . . . . ' . $user . ' . . . . ' . $content . "\n"; - $page = $page ? $page : 'LogDesActionsAdministratives' . date('Ymd'); - return $this->AppendContentToPage($contentToAppend, $page, true); + $tag = $page ? $page : 'LogDesActionsAdministratives' . date('Ymd'); + $result = $this->AppendContentToPage($contentToAppend, $tag, true); + if (empty($page) && $result === 0){ + try { + // keep only 10 revisions of this page + $pageManager = $this->services->get(PageManager::class); + $dbService = $this->services->get(DbService::class); + $revisions = $pageManager->getRevisions($tag); + if (!empty($revisions) && count($revisions) > 10){ + $idsToDelete = array_map( + function($data){ + return $data['id']; + }, + array_slice($revisions,10) + ); + + $formattedIds = implode( + ',', + array_map( + function($id) use ($dbService){ + return $dbService->escape($id); + }, + $idsToDelete + ) + ); + + // there are some versions to remove from DB + // let's build one big request, that's better... + $sql = <<prefixTable('pages')} WHERE `id` IN ($formattedIds); + SQL; + + // ... and send it ! + $dbService->query($sql); + } + } catch (Throwable $th) { + } + } + return $result; } /** @@ -313,12 +343,12 @@ public function PurgePages() $wnPages = $this->GetConfigValue('table_prefix') . 'pages'; $daysFormatted = mysqli_real_escape_string($this->dblink, $days); $sql = <<LoadAll($sql); @@ -400,7 +430,7 @@ public function Href($method = null, $tag = null, $params = null, $htmlspchars = if (is_array($params)) { $paramsArray = []; foreach ($params as $key => $value) { - if ($value) { + if (!empty($value) || in_array($value,[0,'0',''],true)) { $paramsArray[] = "$key=".urlencode($value); } }; @@ -625,24 +655,7 @@ public function Footer() // FORMS public function FormOpen($method = '', $tag = '', $formMethod = 'post', $class = '') { - if ($method=='edit' || $method=='editiframe') { - $result = '
config['password_for_editing']) and !empty($this->config['password_for_editing']) - and isset($_POST['password_for_editing'])) { - $result .= ''."\n"; - } - } else { - $result = 'config["rewrite_mode"]) { - $result .= ''."\n"; - } - return $result; + return $this->render('@core/_form-open.twig',compact(['method','tag','formMethod','class'])); } public function FormClose() @@ -726,7 +739,6 @@ public function Action($action, $forceLinkTracking = 0, $vars = array()) { $cmd = trim($action); $cmd = str_replace("\n", ' ', $cmd); - // extract $action and $vars_temp ("raw" attributes) if (! preg_match("/^([a-zA-Z0-9_-]+)\/?(.*)$/", $cmd, $matches)) { return '
' . _t('INVALID_ACTION') . ' "' . htmlspecialchars($cmd, ENT_COMPAT, YW_CHARSET) . '"
' . "\n"; @@ -744,6 +756,11 @@ public function Action($action, $forceLinkTracking = 0, $vars = array()) if (!$forceLinkTracking) { $this->StopLinkTracking(); } + // keep track of actions and their parameters + array_push($this->actionObjects, [ + 'action' => $action, + 'vars' => $vars, + ]); $result = $this->services->get(Performer::class)->run($action, 'action', $vars); $this->StartLinkTracking(); // shouldn't we restore the previous status ? return $result; @@ -998,6 +1015,13 @@ public function SetGroupACL($gname, $acl) return $this->InsertTriple($gname, WIKINI_VOC_ACLS, $acl, GROUP_PREFIX); } elseif ($old === $acl) { return 0; // nothing has changed + } elseif (strcasecmp($old,$acl) === 0 && strcmp($old,$acl) !== 0) { + // possible error when directly updating triple + if ($this->DeleteTriple($gname, WIKINI_VOC_ACLS, $old,GROUP_PREFIX)){ + return $this->InsertTriple($gname, WIKINI_VOC_ACLS, $acl, GROUP_PREFIX); + } else { + return $this->UpdateTriple($gname, WIKINI_VOC_ACLS, $old, $acl, GROUP_PREFIX); + } } else { return $this->UpdateTriple($gname, WIKINI_VOC_ACLS, $old, $acl, GROUP_PREFIX); } diff --git a/includes/YesWikiInit.php b/includes/YesWikiInit.php index 0468d13b1..6f4ec483f 100644 --- a/includes/YesWikiInit.php +++ b/includes/YesWikiInit.php @@ -223,7 +223,7 @@ public function getConfig($wakkaConfig = array()) 'default_comment_acl_updated' => false, 'comments_activated' => true, 'comments_handler' => 'yeswiki', - 'preview_before_save' => 0, + 'preview_before_save' => false, 'allow_raw_html' => true, 'disable_wiki_links' => false, 'allowed_methods_in_iframe' => ['iframe','editiframe','bazariframe','render'], diff --git a/includes/commands/ArchiveCommand.php b/includes/commands/ArchiveCommand.php index f6f8adc92..b3b85ed7b 100644 --- a/includes/commands/ArchiveCommand.php +++ b/includes/commands/ArchiveCommand.php @@ -38,6 +38,8 @@ protected function configure() ->addOption('database-only', 'd', InputOption::VALUE_NONE, 'Save only the database of the YesWiki') ->addOption('files-only', 'f', InputOption::VALUE_NONE, 'Save only the files of the YesWiki') + ->addOption('foldersToInclude', 'i', InputOption::VALUE_REQUIRED, 'Folders to include, path relative to root, coma separated') + ->addOption('foldersToExclude', 'x', InputOption::VALUE_REQUIRED, 'Folders to exclude, path relative to root, coma separated') ->addOption('hideConfigValues', 'a', InputOption::VALUE_REQUIRED, 'Params to anonymize in wakka.config.php, json_encoded') ->addOption('uid', 'u', InputOption::VALUE_REQUIRED, 'uid to retrive input and ouput files') ; @@ -53,6 +55,8 @@ protected function execute(InputInterface $input, OutputInterface $output) return Command::INVALID; } + $foldersToInclude = $this->prepareFileList($input->getOption('foldersToInclude')); + $foldersToExclude = $this->prepareFileList($input->getOption('foldersToExclude')); $rawHideConfigValues = $input->getOption('hideConfigValues'); $hideConfigValues = null; if (!empty($rawHideConfigValues)) { @@ -64,7 +68,7 @@ protected function execute(InputInterface $input, OutputInterface $output) $uid = $input->getOption('uid'); $uid = empty($uid) ? "" : $uid; - $location = $this->archiveService->archive($output, !$databaseOnly, !$filesOnly, $hideConfigValues, $uid); + $location = $this->archiveService->archive($output, !$databaseOnly, !$filesOnly, $foldersToInclude, $foldersToExclude, $hideConfigValues, $uid); return Command::SUCCESS; } diff --git a/includes/controllers/ApiController.php b/includes/controllers/ApiController.php index 177272b45..c2ec35a8e 100644 --- a/includes/controllers/ApiController.php +++ b/includes/controllers/ApiController.php @@ -110,7 +110,7 @@ public function getUser($userId) } /** - * @Route("/api/users/{userId}/delete",methods={"GET"}, options={"acl":{"public","@admins"}}) + * @Route("/api/users/{userId}/delete",methods={"POST"}, options={"acl":{"public","@admins"}}) */ public function deleteUser($userId) { @@ -121,7 +121,7 @@ public function deleteUser($userId) $result = []; try { $csrfTokenController = $this->getService(CsrfTokenController::class); - $csrfTokenController->checkToken("api\\users\\$userId\\delete", 'GET', 'csrfToken'); + $csrfTokenController->checkToken('main', 'POST', 'csrfToken',false); $user = $userManager->getOneByName($userId); if (empty($user)) { $code = Response::HTTP_BAD_REQUEST; @@ -288,10 +288,11 @@ public function deleteComment($tag) } } /** - * @Route("/api/comments/{tag}/delete",methods={"GET"}, options={"acl":{"public","+"}}) + * @Route("/api/comments/{tag}/delete",methods={"POST"}, options={"acl":{"public","+"}}) */ - public function deleteCommentByGetMethod($tag) + public function deleteCommentViaPostMethod($tag) { + // todo use Anti-Csrf token or Bearer HTTP header return $this->deleteComment($tag); } @@ -437,7 +438,7 @@ public function deletePage($tag) } /** - * @Route("/api/pages/{tag}/delete",methods={"GET"},options={"acl":{"public","+"}}) + * @Route("/api/pages/{tag}/delete",methods={"POST"},options={"acl":{"public","+"}}) */ public function deletePageByGetMethod($tag) { @@ -445,7 +446,7 @@ public function deletePageByGetMethod($tag) $code = Response::HTTP_INTERNAL_SERVER_ERROR; try { $csrfTokenController = $this->wiki->services->get(CsrfTokenController::class); - $csrfTokenController->checkToken("api\\pages\\$tag\\delete", 'GET', 'csrfToken'); + $csrfTokenController->checkToken('main', 'POST', 'csrfToken',false); } catch (TokenNotFoundException $th) { $code = Response::HTTP_UNAUTHORIZED; $result = [ diff --git a/includes/controllers/ArchiveController.php b/includes/controllers/ArchiveController.php index 5eb73299e..91036084c 100644 --- a/includes/controllers/ArchiveController.php +++ b/includes/controllers/ArchiveController.php @@ -179,9 +179,9 @@ protected function startArchive( return $this->archiveService->startArchive( $savefiles, $savedatabase, + [], + [], $startAsync ); } - - } diff --git a/includes/controllers/AuthController.php b/includes/controllers/AuthController.php index 6f72a3dc6..17e21561f 100644 --- a/includes/controllers/AuthController.php +++ b/includes/controllers/AuthController.php @@ -3,6 +3,7 @@ namespace YesWiki\Core\Controller; use DateTime; +use Exception; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use YesWiki\Core\Controller\UserController; use YesWiki\Core\Entity\CookieData; @@ -214,6 +215,13 @@ public function login($user, $remember = 0) 'lastConnection' => $currentDateTime->getTimestamp() ]; if (!$this->wiki->isCli()) { + if (!($user instanceof User)){ + if (!empty($user['name'])){ + $user = $this->userManager->getOneByName($user['name']); + } else { + throw new Exception("`\$user['name']` must not be empty when retrieving user from `\$user['name']`"); + } + } // prevent setting cookies in CLI (could be errors) $rawData = $this->prepareRawData($currentDateTime, $remember, $user->getPassword()); diff --git a/includes/controllers/CsrfTokenController.php b/includes/controllers/CsrfTokenController.php index 164fd932c..762777ab7 100644 --- a/includes/controllers/CsrfTokenController.php +++ b/includes/controllers/CsrfTokenController.php @@ -24,12 +24,13 @@ public function __construct( * @param string $name * @param string $inputType "GET" or "POST" * @param string $inputKey key in the input to use + * @param bool $remove * @return bool * * @throws TokenNotFoundException * @throws Exception */ - public function checkToken(string $name, string $inputType, string $inputKey): bool + public function checkToken(string $name, string $inputType, string $inputKey, bool $remove = true): bool { if (empty($name)) { throw new Exception("parameter `\$name` should not be empty !"); @@ -54,7 +55,9 @@ public function checkToken(string $name, string $inputType, string $inputKey): b } $token = new CsrfToken($name, $inputToken); $isValid = $this->csrfTokenManager->isTokenValid($token); - $this->csrfTokenManager->removeToken($name); + if ($remove){ + $this->csrfTokenManager->removeToken($name); + } if (!$isValid) { throw new TokenNotFoundException(_t('CSRF_TOKEN_FAIL_ERROR')); } diff --git a/includes/services/AclService.php b/includes/services/AclService.php index 8c56a6e33..71b66865f 100644 --- a/includes/services/AclService.php +++ b/includes/services/AclService.php @@ -175,7 +175,12 @@ public function hasAccess($privilege, $tag = '', $user = '') // empty acls is considered as no access if ($acl === null) { return false; - } elseif (isset($acl['list']) && $acl['list'] === 'comments-closed') { + } elseif (isset($acl['list']) && ( + $acl['list'] === 'comments-closed' || + ( + $acl['list'] === '*' && $privilege === 'comment' && empty($user) + ) + )) { return false; } diff --git a/includes/services/ArchiveService.php b/includes/services/ArchiveService.php index ea442b1ad..ee402f802 100644 --- a/includes/services/ArchiveService.php +++ b/includes/services/ArchiveService.php @@ -37,7 +37,7 @@ class ArchiveService 'setup', 'styles', 'templates', - 'test', + 'tests', 'themes', 'tools', 'vendor', @@ -62,6 +62,8 @@ class ArchiveService ]; public const PARAMS_KEY_IN_WAKKA = 'archive'; public const KEY_FOR_PRIVATE_FOLDER = 'privatePath'; + public const KEY_FOR_FOLDERS_TO_INCLUDE = 'foldersToInclude'; + public const KEY_FOR_FOLDERS_TO_EXCLUDE = 'foldersToExclude'; public const KEY_FOR_HIDE_CONFIG_VALUES = 'hideConfigValues'; protected const DEFAULT_FOLDER_NAME_IN_TMP = "yeswiki_archive"; public const ARCHIVE_SUFFIX = "_archive"; @@ -103,6 +105,8 @@ public function __construct( * @param string|OutputInterface &$output * @param bool $savefiles * @param bool $savedatabase + * @param array $foldersToInclude + * @param array $foldersToExclude * @param null|array $hideConfigValuesParams * @param string $uid * @throws Exception @@ -111,6 +115,8 @@ public function archive( &$output, bool $savefiles = true, bool $savedatabase = true, + array $foldersToInclude = [], + array $foldersToExclude = [], ?array $hideConfigValuesParams = null, string $uid = "" ) { @@ -142,8 +148,9 @@ public function archive( } $this->writeOutput($output, "=== Checking free space ===", true, $outputFile); + $blacklistedRootFolders = $this->generateListRootFolders('black',$foldersToExclude); try { - $this->assertEnoughtSpace(); + $this->assertEnoughtSpace($blacklistedRootFolders); } catch (Throwable $th) { $this->writeOutput($output, "There is not enough free space.", true, $outputFile); $this->writeOutput($output, "=> {$th->getMessage()}", true, $outputFile); @@ -200,7 +207,7 @@ public function archive( } $this->writeOutput($output, "=== Creating zip archive ===", true, $outputFile); - $this->createZip($location, $output, $sqlContent, $onlyDb, $hideConfigValuesParams, $inputFile, $outputFile); + $this->createZip($location, $foldersToInclude, $blacklistedRootFolders , $output, $sqlContent, $onlyDb, $hideConfigValuesParams, $inputFile, $outputFile); if (!file_exists($location)) { throw new StopArchiveException("Stop archive : not saved !"); } @@ -390,12 +397,16 @@ public function getForcedUpdateToken(): string * * @param bool $savefiles * @param bool $savedatabase + * @param array $foldersToInclude + * @param array $foldersToExclude * @param bool $callAsync * @return string uid */ public function startArchive( bool $savefiles = true, bool $savedatabase = true, + array $foldersToInclude = [], + array $foldersToExclude = [], bool $callAsync = true ): string { $privatePath = $this->getPrivateFolder(); @@ -408,6 +419,14 @@ public function startArchive( if (!$savedatabase) { $args[] = "-f"; } + if (!empty($foldersToInclude)) { + $args[] = "-i"; + $args[] = implode(",", $foldersToInclude); + } + if (!empty($foldersToExclude)) { + $args[] = "-x"; + $args[] = implode(",", $foldersToExclude); + } $args[] = "-u"; $args[] = $uidData['uid']; @@ -424,7 +443,7 @@ public function startArchive( } } else { $output = ""; - $location = $this->archive($output, $savefiles, $savedatabase, null, $uidData['uid']); + $location = $this->archive($output, $savefiles, $savedatabase, $foldersToInclude, $foldersToExclude, null, $uidData['uid']); if (empty($location)) { $this->cleanUID($uidData['uid'], $privatePath); return ''; @@ -601,6 +620,8 @@ protected function checkIfNeedStop(string $inputFile = ""): bool /** * create the zip file * @param string $zipPath + * @param array $foldersToInclude + * @param array $blacklistedRootFolders * @param string|OutputInterface &$output * @param string $sqlContent * @param bool $onlyDb @@ -610,6 +631,8 @@ protected function checkIfNeedStop(string $inputFile = ""): bool */ protected function createZip( string $zipPath, + array $foldersToInclude, + array $blacklistedRootFolders, &$output, string $sqlContent, bool $onlyDb = false, @@ -624,101 +647,113 @@ protected function createZip( $pathToArchive = preg_replace("/(\/|\\\\)$/", "", $pathToArchive); $dirs = [$pathToArchive]; $dirnamePathLen = strlen($pathToArchive); - - $whitelistedRootFolders = array_map(function($folder) use ($pathToArchive) { - return $pathToArchive . "/" . $folder; - }, self::FOLDERS_TO_INCLUDE); + + $whitelistedRootFolders = $this->generateListRootFolders('white',$foldersToInclude); // open file $zip = new ZipArchive(); $resource = $zip->open($zipPath, ZipArchive::CREATE | ZipArchive::OVERWRITE); - if ($resource !== true) return; - - if (!$onlyDb) { - // add empty cache folder - $zip->addEmptyDir('cache'); - - while (count($dirs)) { - $dir = current($dirs); - $dir = preg_replace("/(?:\/|\\\\|([^\/\\\\]))$/", "$1", $dir); - $baseDirName = preg_replace("/\\\\/", "/", substr($dir, $dirnamePathLen)); - $baseDirName = preg_replace("/^\//", "", $baseDirName); - if (!empty($baseDirName)) { - $this->writeOutput($output, "Adding folder \"$baseDirName\"", true, $outputFile); - $zip->addEmptyDir($baseDirName); - } - $dh = opendir($dir); - while (false !== ($file = readdir($dh))) { - if ($file != '.' && $file != '..') { - $localName = $dir.DIRECTORY_SEPARATOR.$file; - $relativeName = (empty($baseDirName) ? "" : "$baseDirName/").$file; - if (empty($baseDirName) && $file == "wakka.config.php") { - $zip->addFromString($relativeName, $this->getWakkaConfigSanitized($hideConfigValuesParams)); - } elseif (is_file($localName)) { - $zip->addFile($localName, $relativeName); - } elseif (is_dir($localName)) { - if ($this->shouldIncludeFolder($localName, $file, $whitelistedRootFolders)) { - $dirs[] = $dir.DIRECTORY_SEPARATOR.$file; - } - if ($this->checkIfNeedStop($inputFile)) { - $zip->unchangeAll(); - $this->writeOutput($output, "== Closing archive after undoing all changes ==", true, $outputFile); - $zip->close(); - throw new StopArchiveException("Stop archive"); - } + if ($resource !== true) { + return; + } + if (!$onlyDb) { + // add empty cache folder + $zip->addEmptyDir('cache'); + + while (count($dirs)) { + $dir = current($dirs); + $dir = preg_replace("/(?:\/|\\\\|([^\/\\\\]))$/", "$1", $dir); + $baseDirName = preg_replace("/\\\\/", "/", substr($dir, $dirnamePathLen)); + $baseDirName = preg_replace("/^\//", "", $baseDirName); + if (empty($baseDirName) || (!empty($baseDirName) && $this->shouldIncludeFolder($baseDirName, $whitelistedRootFolders,$blacklistedRootFolders))){ + if (!empty($baseDirName)) { + $this->writeOutput($output, "Adding folder \"$baseDirName\"", true, $outputFile); + $zip->addEmptyDir($baseDirName); + } + + $dh = opendir($dir); + while (false !== ($file = readdir($dh))) { + if ($file != '.' && $file != '..') { + $localName = $dir.DIRECTORY_SEPARATOR.$file; + $relativeName = (empty($baseDirName) ? "" : "$baseDirName/").$file; + if (empty($baseDirName) && $file == "wakka.config.php") { + $zip->addFromString($relativeName, $this->getWakkaConfigSanitized($whitelistedRootFolders,$blacklistedRootFolders,$hideConfigValuesParams)); + } elseif (is_file($localName)) { + $zip->addFile($localName, $relativeName); + } elseif (is_dir($localName)) { + if ($this->shouldIncludeFolder($relativeName, $whitelistedRootFolders,$blacklistedRootFolders)) { + $dirs[] = $dir.DIRECTORY_SEPARATOR.$file; + } + if ($this->checkIfNeedStop($inputFile)) { + $zip->unchangeAll(); + $this->writeOutput($output, "== Closing archive after undoing all changes ==", true, $outputFile); + $zip->close(); + throw new StopArchiveException("Stop archive"); } } } - closedir($dh); - - array_shift($dirs); + } } + closedir($dh); + array_shift($dirs); } + } + if (!empty($sqlContent)) { + $this->writeOutput($output, "Adding SQL file", true, $outputFile); + $zip->addEmptyDir(self::PRIVATE_FOLDER_NAME_IN_ZIP); + $zip->addFromString( + self::PRIVATE_FOLDER_NAME_IN_ZIP."/".self::SQL_FILENAME_IN_PRIVATE_FOLDER_IN_ZIP, + $sqlContent + ); + $this->writeOutput($output, "Adding .htaccess file in folder ".self::PRIVATE_FOLDER_NAME_IN_ZIP, true, $outputFile); - if (!empty($sqlContent)) { - $this->writeOutput($output, "Adding SQL file", true, $outputFile); - $zip->addEmptyDir(self::PRIVATE_FOLDER_NAME_IN_ZIP); - $zip->addFromString( - self::PRIVATE_FOLDER_NAME_IN_ZIP."/".self::SQL_FILENAME_IN_PRIVATE_FOLDER_IN_ZIP, - $sqlContent - ); - $this->writeOutput($output, "Adding .htaccess file in folder ".self::PRIVATE_FOLDER_NAME_IN_ZIP, true, $outputFile); - - $zip->addFromString( - self::PRIVATE_FOLDER_NAME_IN_ZIP."/.htaccess", - "DENY FROM ALL\n" - ); - - $zip->addFromString( - self::PRIVATE_FOLDER_NAME_IN_ZIP."/README.md", - self::PRIVATE_FOLDER_README_DEFAULT_CONTENT - ); - } + $zip->addFromString( + self::PRIVATE_FOLDER_NAME_IN_ZIP."/.htaccess", + "DENY FROM ALL\n" + ); - $this->writeOutput($output, "Generating zip file", true, $outputFile); - // register cancel callback if available - if (method_exists($zip, 'registerCancelCallback')) { - $zip->registerCancelCallback(function () use ($inputFile) { - // 0 will continue process - return ($this->checkIfNeedStop($inputFile)) ? -1 : 0; - }); - } - // register progress callback if available - if (method_exists($zip, 'registerProgressCallback')) { - $zip->registerProgressCallback(0.1, function ($r) use (&$output, $outputFile) { - $this->writeOutput($output, "Zip file creation : ".strval(round($r*100, 0))." %", true, $outputFile); - }); - } - $zip->close(); + $zip->addFromString( + self::PRIVATE_FOLDER_NAME_IN_ZIP."/README.md", + self::PRIVATE_FOLDER_README_DEFAULT_CONTENT + ); } + $this->writeOutput($output, "Generating zip file", true, $outputFile); + // register cancel callback if available + if (method_exists($zip, 'registerCancelCallback')) { + $zip->registerCancelCallback(function () use ($inputFile) { + // 0 will continue process + return ($this->checkIfNeedStop($inputFile)) ? -1 : 0; + }); + } + // register progress callback if available + if (method_exists($zip, 'registerProgressCallback')) { + $zip->registerProgressCallback(0.1, function ($r) use (&$output, $outputFile) { + $this->writeOutput($output, "Zip file creation : ".strval(round($r*100, 0))." %", true, $outputFile); + }); + } + $zip->close(); + } - protected function shouldIncludeFolder($path, $folderName, $whitelistedRootFolders) + /** + * test if folder should be included + * @param string $relativeFolderName + * @param array $whitelistedRootFolders + * @param array $blacklistedRootFolders + * @return bool + */ + protected function shouldIncludeFolder( + string $relativeFolderName, + array $whitelistedRootFolders, + array $blacklistedRootFolders + ): bool { - $relativeFolderName = str_replace(getcwd().'/', '', $path); - if (in_array($relativeFolderName, self::FOLDERS_TO_EXCLUDE)) return false; + if (in_array($relativeFolderName, $blacklistedRootFolders) || + in_array(basename($relativeFolderName), $blacklistedRootFolders)){ + return false; + } - return count(array_filter($whitelistedRootFolders, function($folder) use($path) { - return strpos($path, $folder) !== false; + return count(array_filter($whitelistedRootFolders, function($folder) use($relativeFolderName) { + return strpos($relativeFolderName, $folder) === 0; })) > 0; } @@ -741,66 +776,6 @@ private function sanitizeFileList(array $list): array return $outputList; } - /** - * @param array $list - * @param array $ignoreList - * @param string $inputFile - * @return array - */ - private function prepareFileListFromGlob(array $list, array $ignoreList = [], string $inputFile = ""): array - { - $outputList = []; - $onlyChildren = []; - foreach ($list as $filePath) { - foreach (glob($filePath) as $filename) { - $filename = str_replace("\\", "/", $filename); - if (is_dir($filename)) { - $foundChildren = array_filter($ignoreList, function ($path) use ($filename) { - return substr($path, 0, strlen($filename)) == $filename; - }); - if (!empty($foundChildren)) { - foreach ($foundChildren as $path) { - $this->appendChildPathToChildren($onlyChildren, $filename, $path, $inputFile); - } - } - } - if (empty($onlyChildren[$filename]) && !in_array($filename, $outputList) && !in_array($filename, $ignoreList)) { - $outputList[] = $filename; - } - if ($this->checkIfNeedStop($inputFile)) { - throw new StopArchiveException("Stop archive"); - } - } - } - return [$outputList,$onlyChildren]; - } - - /** - * @param &array $onlyChildren - * @param string $dirname - * @param string $path - * @param string $inputFile - * @return array - */ - private function appendChildPathToChildren(array &$onlyChildren, string $dirname, string $path, string $inputFile) - { - if (empty($onlyChildren[$dirname])) { - $onlyChildren[$dirname] = []; - } - $currentPath = $path; - $parentDir = dirname($currentPath); - while ($parentDir != $dirname) { - $this->appendChildPathToChildren($onlyChildren, $parentDir, $currentPath, $inputFile); - $currentPath = $parentDir; - $parentDir = dirname($currentPath); - if ($this->checkIfNeedStop($inputFile)) { - throw new StopArchiveException("Stop archive"); - } - } - if (!in_array($currentPath, $onlyChildren[$dirname])) { - $onlyChildren[$dirname][] = $currentPath; - } - } private function getPrivateFolder(): string { @@ -922,10 +897,12 @@ private function writeOutput(&$output, string $text, bool $newline = true, strin /** * sanitize wakka.config.php before saving it + * @param array $foldersToInclude + * @param array $foldersToExclude * @param null|array $hideConfigValuesParams * @return string */ - private function getWakkaConfigSanitized(?array $hideConfigValuesParams = null): string + private function getWakkaConfigSanitized(array $foldersToInclude, array $foldersToExclude, ?array $hideConfigValuesParams = null): string { // get wakka.config.php content $config = $this->configurationService->getConfiguration('wakka.config.php'); @@ -936,6 +913,12 @@ private function getWakkaConfigSanitized(?array $hideConfigValuesParams = null): } else { $data = $config[self::PARAMS_KEY_IN_WAKKA]; } + if (!empty($foldersToInclude)) { + $data[self::KEY_FOR_FOLDERS_TO_INCLUDE] = $foldersToInclude; + } + if (!empty($foldersToExclude)) { + $data[self::KEY_FOR_FOLDERS_TO_EXCLUDE] = $foldersToExclude; + } if (!is_null($hideConfigValuesParams)) { $data[self::KEY_FOR_HIDE_CONFIG_VALUES] = $hideConfigValuesParams; } elseif (!isset($data[self::KEY_FOR_HIDE_CONFIG_VALUES]) || !is_array($data[self::KEY_FOR_HIDE_CONFIG_VALUES])) { @@ -1052,12 +1035,21 @@ protected function getSQLContent(string $privatePath): string /** * check if there is enought free space before archive (size of files + custom + 300 Mo) + * @param array $blacklistedRootFolders * @throws Exception */ - protected function assertEnoughtSpace() + protected function assertEnoughtSpace(array $blacklistedRootFolders = []) { - $estimateZipSize = $this->folderSize("files"); - $estimateZipSize += $this->folderSize("custom"); + if (empty($blacklistedRootFolders)){ + $blacklistedRootFolders = self::FOLDERS_TO_EXCLUDE; + } + $estimateZipSize = 0; + if (!in_array('files',$blacklistedRootFolders)){ + $estimateZipSize += $this->folderSize("files"); + } + if (!in_array('custom',$blacklistedRootFolders)){ + $estimateZipSize += $this->folderSize("custom"); + } $estimateZipSize += 300 * 1024 * 1024; // 300Mb for the rest of te wiki $freeSpace = disk_free_space(realpath(getcwd())); @@ -1307,4 +1299,33 @@ private function getRunningUIDdata(string $uid, array $info): array return compact(['running','finished','stopped','output']); } + + /** + * generate ---ListedRootFolder from DEFAULT, params and wakka.config + * @param string $type "white"|"black" + * @param array $fromParams + * @return array + * + */ + private function generateListRootFolders(string $type,array $fromParams): array + { + $list = ($type == "white") ? self::FOLDERS_TO_INCLUDE : self::FOLDERS_TO_EXCLUDE; + foreach ($this->sanitizeFileList($fromParams) as $folderName) { + if (!in_array($folderName,$list)){ + $list[] = $folderName; + } + } + // merge `foldersToInclude` or `foldersToExclude` from wakka.config.php + $archiveParams = $this->getArchiveParams(); + $key = ($type == "white") ? self::KEY_FOR_FOLDERS_TO_INCLUDE : self::KEY_FOR_FOLDERS_TO_EXCLUDE; + if (!empty($archiveParams[$key]) && + is_array($archiveParams[$key])) { + foreach ($this->sanitizeFileList($archiveParams[$key]) as $path) { + if (!in_array($path, $list)) { + $list[] = $path; + } + } + } + return $list; + } } diff --git a/includes/services/LinkTracker.php b/includes/services/LinkTracker.php index 244d8c0b9..e65a98154 100644 --- a/includes/services/LinkTracker.php +++ b/includes/services/LinkTracker.php @@ -110,7 +110,7 @@ public function registerLinks(array $page, bool $trackMetadata = false, bool $re { if ($refreshPreviousTag) { $previousTag = $this->wiki->tag ; - $previousPage = $this->wiki->tag ; + $previousPage = $this->wiki->page ; $previousInclusions = $this->wiki->SetInclusions(); } $this->clear(); diff --git a/includes/services/PageManager.php b/includes/services/PageManager.php index 8c1537a1f..6b634b6d4 100644 --- a/includes/services/PageManager.php +++ b/includes/services/PageManager.php @@ -275,6 +275,9 @@ public function deleteOrphaned($tag) throw new \Exception(_t('WIKI_IN_HIBERNATION')); } unset($this->ownersCache[$tag]); + if (in_array($tag,$this->pageCache)){ + unset($this->pageCache[$tag]); + } $this->dbService->query("DELETE FROM {$this->dbService->prefixTable('pages')} WHERE tag='{$this->dbService->escape($tag)}' OR comment_on='{$this->dbService->escape($tag)}'"); $this->dbService->query("DELETE FROM {$this->dbService->prefixTable('links')} WHERE from_tag='{$this->dbService->escape($tag)}' "); $this->dbService->query("DELETE FROM {$this->dbService->prefixTable('acls')} WHERE page_tag='{$this->dbService->escape($tag)}' "); diff --git a/includes/services/TemplateEngine.php b/includes/services/TemplateEngine.php index 9161209be..f9f84cf46 100644 --- a/includes/services/TemplateEngine.php +++ b/includes/services/TemplateEngine.php @@ -98,6 +98,7 @@ public function __construct( 'session' => $_SESSION ]); $this->twig->addGlobal('config', $this->wiki->config); + $this->twig->addGlobal('isInIframe', testUrlInIframe()); // Adds Helpers $this->addTwigHelper('_t', function ($key, $params = []) { diff --git a/includes/services/ThemeManager.php b/includes/services/ThemeManager.php index 88683125f..9bf2a6184 100644 --- a/includes/services/ThemeManager.php +++ b/includes/services/ThemeManager.php @@ -7,6 +7,7 @@ use YesWiki\Core\Service\Performer; use YesWiki\Core\Service\TemplateEngine; use YesWiki\Security\Controller\SecurityController; +use YesWiki\Templates\Service\Utils; class ThemeManager { @@ -55,6 +56,7 @@ class ThemeManager protected $theme; protected $twig; protected $useFallbackTheme; + protected $utils; protected $wiki; public function __construct( @@ -62,7 +64,8 @@ public function __construct( TemplateEngine $twig, ParameterBagInterface $params, Performer $performer, - SecurityController $securityController + SecurityController $securityController, + Utils $utils ) { $this->wiki = $wiki; @@ -87,6 +90,7 @@ public function __construct( $this->theme = null; $this->twig = $twig; $this->useFallbackTheme = false; + $this->utils = $utils; } /* function imported from tooles/templates/libs/templates.functions.php @@ -223,11 +227,11 @@ public function loadTemplates($metadata = []): ?array // themes folder (used by {{update}}) if (is_dir('themes')) { - $this->templates = array_merge($this->templates, search_template_files('themes')); + $this->templates = array_merge($this->templates, $this->utils->searchTemplateFiles('themes',false)); } // custom themes folder if (is_dir('custom/themes')) { - $this->templates = array_replace_recursive($this->templates, search_template_files('custom/themes')); + $this->templates = array_replace_recursive($this->templates, $this->utils->searchTemplateFiles('custom/themes',true)); } ksort($this->templates); @@ -319,21 +323,6 @@ public function renderFooter(): string } } - /** - * get squelettes and styles used in js for theme selector - * @return array ['squelettes'=>array,'styles'=>array] - */ - public function getSquelettesAndStylesForJs(): array - { - $squelettes = []; - $styles = []; - foreach ($this->getTemplates() as $templateName => $template) { - $squelettes[$templateName] = array_values($template['squelette']); - $styles[$templateName] = array_values($template['style']); - } - return compact(['squelettes','styles']); - } - public function getTemplates(): array { return $this->templates; @@ -369,11 +358,6 @@ public function getUseFallbackTheme(): bool return $this->useFallbackTheme; } - public function setTemplates(array $templates) - { - $this->templates = $templates; - } - protected function getConfigAsStringOrDefault(string $key, string $default): string { return ($this->params->has($key) && !empty($this->params->get($key)) diff --git a/javascripts/documentation.js b/javascripts/documentation.js index 511f6a566..2bbbbe3cd 100644 --- a/javascripts/documentation.js +++ b/javascripts/documentation.js @@ -73,7 +73,7 @@ window.$docsify = { const height = data.split('preview=')[1] || 200 const codeDom = preDom.querySelector('code') const code = codeDom.textContent - let url = `${baseUrl}root/render` + let url = `${baseUrl}wiki/render` url += url.includes('?') ? '&' : '?' url += `content=${encodeURIComponent(code)}` const preview = document.createElement('div') diff --git a/javascripts/helpers/remote-modal.js b/javascripts/helpers/remote-modal.js new file mode 100644 index 000000000..f817d94ce --- /dev/null +++ b/javascripts/helpers/remote-modal.js @@ -0,0 +1,49 @@ +export default function(title, url) { + const $modal = $(` + + `) + + $('body').append($modal) + + // auto resize iframe height + const $iframe = $modal.find('iframe') + const iframe = $iframe[0] + let timer = null + iframe.onload = function() { + // remove favorite button + $iframe.contents().find('.btn.favorites').remove() + // remove "back/cancel" button in list view + $iframe.contents().find('.btn-cancel-list').remove() + // auto adjust iframe height + timer = setInterval(() => { + if (!iframe.contentWindow) return + iframe.height = iframe.contentWindow.document.documentElement.scrollHeight + 'px'; + }, 200) + } + + $modal.modal({ + show: true, + keyboard: false + }).on('hidden hidden.bs.modal', () => { + $modal.remove() + }) + + return { + close() { + $modal.modal('hide') + clearInterval(timer) + } + } +} diff --git a/javascripts/multidelete.js b/javascripts/multidelete.js index 53576baff..c712e8c51 100644 --- a/javascripts/multidelete.js +++ b/javascripts/multidelete.js @@ -19,13 +19,13 @@ const multiDeleteService = { refreshOnModalClosing: {}, modalClosing(modalContainer) { const id = $(modalContainer).prop('id') - if (multiDeleteService.refreshOnModalClosing.hasOwnProperty(id) - && multiDeleteService.refreshOnModalClosing[id] === true) { + if (this.refreshOnModalClosing.hasOwnProperty(id) + && this.refreshOnModalClosing[id] === true) { window.location.reload() } }, initProgressBar(modal) { - multiDeleteService.updateProgressBar(modal, ['test'], -1) + this.updateProgressBar(modal, ['test'], -1) }, updateProgressBar(modal, items, currentIndex) { const value = (items.length == 0) ? 100 : Math.min(100, Math.round((currentIndex + 1) / items.length * 100)) @@ -52,11 +52,11 @@ const multiDeleteService = { return true }, deleteNextItem(modal, items, type, currentIndex, target) { - multiDeleteService.updateProgressBar(modal, items, currentIndex) + this.updateProgressBar(modal, items, currentIndex) if ((currentIndex + 1) < items.length) { - multiDeleteService.deleteOneItem(modal, items, type, currentIndex + 1, target) + this.deleteOneItem(modal, items, type, currentIndex + 1, target) } else { - multiDeleteService.isRunning = false + this.isRunning = false $(modal).find('.modal-body .multi-delete-results').first().append( $('
').text(_t('MULTIDELETE_END')) ) @@ -64,39 +64,45 @@ const multiDeleteService = { }, deleteOneItem(modal, items, type, currentIndex, target) { if (['pages','comments','users'].indexOf(type) == -1){ - multiDeleteService.addErrorMessage(modal,"Unknown type ! Should be 'pages' or 'users' or 'comments'!") + this.addErrorMessage(modal,"Unknown type ! Should be 'pages' or 'users' or 'comments'!") return } const item = items[currentIndex] ?? {} const itemId = (item.id != undefined) ? item.id : '' - const csrfToken = (item.token != undefined) ? item.token : '' + const csrfToken = ('antiCsrfToken' in wiki) + ? wiki.antiCsrfToken + : ((item.token != undefined) ? item.token : '') if (itemId.length == 0 || csrfToken.length == 0) { - multiDeleteService.deleteNextItem(modal, items, type, currentIndex, target) + this.deleteNextItem(modal, items, type, currentIndex, target) return } - $.ajax({ - type: 'GET', - url: wiki.url(`?api/${type}/${itemId}/delete`, { csrfToken }), - timeout: 30000, // 30 seconds - error(xhr, status, error) { - multiDeleteService.addErrorMessage( - modal, - _t('MULTIDELETE_ERROR') - .replace('{itemId}', itemId) - .replace('{error}', error) - ) - // if error force reload - multiDeleteService.refreshOnModalClosing[$(modal).parent().prop('id')] = true - }, - success() { - if (!multiDeleteService.removeLine(target, itemId)) { - multiDeleteService.refreshOnModalClosing[$(modal).parent().prop('id')] = true - } - }, - complete() { - setTimeout(() => { multiDeleteService.deleteNextItem(modal, items, type, currentIndex, target) }, 0) + this.localFetchJson( + wiki.url(`?api/${type}/${itemId}/delete`), + { + method: 'POST', + timeout: 30000, // 30 seconds, + data: {csrfToken} + } + ) + .then(()=>{ + if (!this.removeLine(target, itemId)) { + this.refreshOnModalClosing[$(modal).parent().prop('id')] = true } }) + .catch((error)=>{ + // do nothing on error + this.addErrorMessage( + modal, + _t('MULTIDELETE_ERROR') + .replace('{itemId}', itemId) + .replace('{error}', error) + ) + // if error force reload + this.refreshOnModalClosing[$(modal).parent().prop('id')] = true + }) + .finally(()=>{ + setTimeout(() => { this.deleteNextItem(modal, items, type, currentIndex, target) }, 0) + }) }, deleteItems(elem) { const target = $(elem).data('target') @@ -110,15 +116,53 @@ const multiDeleteService = { for (let index = 0; index < inputs.length; index++) { const itemId = $(inputs[index]).data('itemid') const csrfToken = $(inputs[index]).data('csrftoken') - if (itemId.length > 0 && csrfToken.length > 0) { + if (itemId.length > 0 && (csrfToken == undefined || csrfToken.length == 0)) { + items.push({ id: itemId }) + } else if (itemId.length > 0 && csrfToken.length > 0) { items.push({ id: itemId, token: csrfToken }) } } if (items.length > 0) { - setTimeout(() => { multiDeleteService.deleteOneItem(modal, items, type, 0, target) }, 0) + setTimeout(() => { this.deleteOneItem(modal, items, type, 0, target) }, 0) } } }, + async localFetchJson(url,options){ + const internalOptions = {} + let resetTimeoutId = null + if ('timeout' in options && Number(options.timeout) > 0){ + const abortController = new AbortController() + resetTimeoutId = setTimeout(()=>abortController.abort(),options.timeout) + internalOptions.signal = abortController.signal + } + if ('method' in options && options.method === 'POST'){ + internalOptions.method = 'POST' + internalOptions.body = new URLSearchParams(this.prepareFormData(options.data ?? {})) + internalOptions.headers = (new Headers()).append('Content-Type','application/x-www-form-urlencoded') + } + return await fetch(url,internalOptions) + .then((response)=>{ + if (response.ok){ + return response.json() + } else { + throw new Error(`Response is not ok (code ${response.code})`) + } + }) + .finally(()=>{ + if (resetTimeoutId !== null){ + clearTimeout(resetTimeoutId) + } + }) + }, + prepareFormData(thing){ + let formData = new FormData(); + if (typeof thing == "object"){ + for (const key in thing) { + formData.append(key,String(thing[key])); + } + } + return formData; + }, updateNbSelected(modalId) { const button = $(`#${modalId} .modal-body > button.start-btn-delete-all`) const text = $(`#${modalId} .modal-body > .alert.alert-info > span.nb-elem-selected`) diff --git a/javascripts/users-table.js b/javascripts/users-table.js index 02e98d5ee..3d15e6ce0 100644 --- a/javascripts/users-table.js +++ b/javascripts/users-table.js @@ -54,13 +54,14 @@ const usersTableService = { $(elem).attr('disabled', 'disabled') $(elem).tooltip('hide') const name = $(elem).data('name') - const csrfToken = $(elem).data('csrfToken') + const csrfToken = wiki.antiCsrfToken || 'error wiki has not antiCsrfToken' const targetNode = $(elem).data('targetNode') const modal = $(elem).data('modal') $.ajax({ - method: 'get', - url: wiki.url(`api/users/${name}/delete`, { csrfToken }), + method: 'post', + url: wiki.url(`api/users/${name}/delete`), + data: { csrfToken }, timeout: 30000, // 30 seconds error(e) { multiDeleteService.addErrorMessage( diff --git a/javascripts/vendor/ace/ace.js b/javascripts/vendor/ace/ace.js index 5afab94b9..c8031f3c3 100644 --- a/javascripts/vendor/ace/ace.js +++ b/javascripts/vendor/ace/ace.js @@ -1,4 +1,4 @@ -(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE = "ace",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;un.length)t=n.length;t-=e.length;var r=n.indexOf(e,t);return r!==-1&&r===t}),String.prototype.repeat||r(String.prototype,"repeat",function(e){var t="",n=this;while(e>0){e&1&&(t+=n);if(e>>=1)n+=n}return t}),String.prototype.includes||r(String.prototype,"includes",function(e,t){return this.indexOf(e,t)!=-1}),Object.assign||(Object.assign=function(e){if(e===undefined||e===null)throw new TypeError("Cannot convert undefined or null to object");var t=Object(e);for(var n=1;n>>0,r=arguments[1],i=r>>0,s=i<0?Math.max(n+i,0):Math.min(i,n),o=arguments[2],u=o===undefined?n:o>>0,a=u<0?Math.max(n+u,0):Math.min(u,n);while(s0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n=0?parseFloat((s.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((s.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=s.match(/ Gecko\/\d+/),t.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(s.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(s.split(" Chrome/")[1])||undefined,t.isEdge=parseFloat(s.split(" Edge/")[1])||undefined,t.isAIR=s.indexOf("AdobeAIR")>=0,t.isAndroid=s.indexOf("Android")>=0,t.isChromeOS=s.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(s)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";function u(){var e=o;o=null,e&&e.forEach(function(e){a(e[0],e[1])})}function a(e,n,r){if(typeof document=="undefined")return;if(o)if(r)u();else if(r===!1)return o.push([e,n]);if(s)return;var i=r;if(!r||!r.getRootNode)i=document;else{i=r.getRootNode();if(!i||i==r)i=document}var a=i.ownerDocument||i;if(n&&t.hasCssString(n,i))return null;n&&(e+="\n/*# sourceURL=ace/css/"+n+" */");var f=t.createElement("style");f.appendChild(a.createTextNode(e)),n&&(f.id=n),i==a&&(i=t.getDocumentHead(a)),i.insertBefore(f,i.firstChild)}var r=e("./useragent"),i="http://www.w3.org/1999/xhtml";t.buildDom=function l(e,t,n){if(typeof e=="string"&&e){var r=document.createTextNode(e);return t&&t.appendChild(r),r}if(!Array.isArray(e))return e&&e.appendChild&&t&&t.appendChild(e),e;if(typeof e[0]!="string"||!e[0]){var i=[];for(var s=0;s=1.5:!0,r.isChromeOS&&(t.HI_DPI=!1);if(typeof document!="undefined"){var f=document.createElement("div");t.HI_DPI&&f.style.transform!==undefined&&(t.HAS_CSS_TRANSFORMS=!0),!r.isEdge&&typeof f.style.animationName!="undefined"&&(t.HAS_CSS_ANIMATION=!0),f=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o1&&(i=n[n.length-2]);var o=a[t+"Path"];return o==null?o=a.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t};var f=function(t,n){return t==="ace/theme/textmate"||t==="./theme/textmate"?n(null,e("./theme/textmate")):console.error("loader is not configured")};t.setLoader=function(e){f=e},t.dynamicModules=Object.create(null),t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);var u=function(e){if(e&&!t.$loading[n])return r&&r(e);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var i=function(){f(n,function(e,r){t._emit("load.module",{name:n,module:r});var i=t.$loading[n];t.$loading[n]=null,i.forEach(function(e){e&&e(r)})})};if(!t.get("packaged"))return i();s.loadScript(t.moduleUrl(n,o),i),l()};if(t.dynamicModules[n])t.dynamicModules[n]().then(function(e){e.default?u(e.default):u(e)});else{try{i=e(n)}catch(a){}u(i)}},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var l=function(){!a.basePath&&!a.workerPath&&!a.modePath&&!a.themePath&&!Object.keys(a.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),l=function(){})};t.version="1.15.3"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(e,t,n){"use strict";function s(t){if(!i||!i.document)return;r.set("packaged",t||e.packaged||n.packaged||i.define&&define.packaged);var s={},u="",a=document.currentScript||document._currentScript,f=a&&a.ownerDocument||document;a&&a.src&&(u=a.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");var l=f.getElementsByTagName("script");for(var c=0;c1?(u++,u>4&&(u=1)):u=1;if(i.isIE){var o=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-f)>5;if(!l||o)u=1;l&&clearTimeout(l),l=setTimeout(function(){l=null},n[u-1]||600),u==1&&(a=e.clientX,f=e.clientY)}e._clicks=u,r[s]("mousedown",e);if(u>4)u=0;else if(u>1)return r[s](h[u],e)}var u=0,a,f,l,h={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){c(e,"mousedown",p,o)})};var p=function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[p(e)]},t.addCommandKeyListener=function(e,n,r){if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var o=null;c(e,"keydown",function(e){o=e.keyCode},r),c(e,"keypress",function(e){return d(n,e,o)},r)}else{var u=null;c(e,"keydown",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=d(n,e,e.keyCode);return u=e.defaultPrevented,t},r),c(e,"keypress",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)},r),c(e,"keyup",function(e){s[e.keyCode]=null},r),s||(v(),c(window,"focus",v))}};if(typeof window=="object"&&window.postMessage&&!i.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+m++,i=function(s){s.data==r&&(t.stopPropagation(s),h(n,"message",i),e())};c(n,"message",i),n.postMessage(r,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout(function r(){t.$idleBlocked?setTimeout(r,100):e()},n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},e||100)},t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?tthis.end.column?1:0:ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.rowt)var r={row:t+1,column:0};else if(this.start.rowDate.now()-50?!0:r=!1},cancel:function(){r=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/dom"),o=e("../lib/lang"),u=e("../clipboard"),a=i.isChrome<18,f=i.isIE,l=i.isChrome>63,c=400,h=e("../lib/keys"),p=h.KEY_MODS,d=i.isIOS,v=d?/\s/:/\n/,m=i.isMobile,g=function(e,t){function X(){x=!0,n.blur(),n.focus(),x=!1}function $(e){e.keyCode==27&&n.value.lengthC&&T[s]=="\n")o=h.end;else if(rC&&T.slice(0,s).split("\n").length>2)o=h.down;else if(s>C&&T[s-1]==" ")o=h.right,u=p.option;else if(s>C||s==C&&C!=N&&r==s)o=h.right;r!==s&&(u|=p.shift);if(o){var a=t.onCommandKey({},u,o);if(!a&&t.commands){o=h.keyCodeToString(o);var f=t.commands.findKeyCommand(u,o);f&&t.execCommand(f)}N=r,C=s,O("")}};document.addEventListener("selectionchange",s),t.on("destroy",function(){document.removeEventListener("selectionchange",s)})}var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var g=!1,y=!1,b=!1,w=!1,E="";m||(n.style.fontSize="1px");var S=!1,x=!1,T="",N=0,C=0,k=0;try{var L=document.activeElement===n}catch(A){}this.setAriaOptions=function(e){e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete","list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role)},this.setAriaOptions({role:"textbox"}),r.addListener(n,"blur",function(e){if(x)return;t.onBlur(e),L=!1},t),r.addListener(n,"focus",function(e){if(x)return;L=!0;if(i.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),i.isEdge?setTimeout(O):O()},t),this.$focusScroll=!1,this.focus=function(){if(E||l||this.$focusScroll=="browser")return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var t=n.getBoundingClientRect().top!=0}catch(r){return}var i=[];if(t){var s=n.parentElement;while(s&&s.nodeType==1)i.push(s),s.setAttribute("ace_nocontext",!0),!s.parentElement&&s.getRootNode?s=s.getRootNode().host:s=s.parentElement}n.focus({preventScroll:!0}),t&&i.forEach(function(e){e.removeAttribute("ace_nocontext")}),setTimeout(function(){n.style.position="",n.style.top=="0px"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return L},t.on("beforeEndOperation",function(){var e=t.curOp,r=e&&e.command&&e.command.name;if(r=="insertstring")return;var i=r&&(e.docChanged||e.selectionChanged);b&&i&&(T=n.value="",W()),O()});var O=d?function(e){if(!L||g&&!e||w)return;e||(e="");var r="\n ab"+e+"cde fg\n";r!=n.value&&(n.value=T=r);var i=4,s=4+(e.length||(t.selection.isEmpty()?0:1));(N!=i||C!=s)&&n.setSelectionRange(i,s),N=i,C=s}:function(){if(b||w)return;if(!L&&!P)return;b=!0;var e=0,r=0,i="";if(t.session){var s=t.selection,o=s.getRange(),u=s.cursor.row;e=o.start.column,r=o.end.column,i=t.session.getLine(u);if(o.start.row!=u){var a=t.session.getLine(u-1);e=o.start.rowu+1?f.length:r,r+=i.length+1,i=i+"\n"+f}else m&&u>0&&(i="\n"+i,r+=1,e+=1);i.length>c&&(e=T.length&&e.value===T&&T&&e.selectionEnd!==C},_=function(e){if(b)return;g?g=!1:M(n)?(t.selectAll(),O()):m&&n.selectionStart!=N&&O()},D=null;this.setInputHandler=function(e){D=e},this.getInputHandler=function(){return D};var P=!1,H=function(e,r){P&&(P=!1);if(y)return O(),e&&t.onPaste(e),y=!1,"";var s=n.selectionStart,o=n.selectionEnd,u=N,a=T.length-C,f=e,l=e.length-s,c=e.length-o,h=0;while(u>0&&T[h]==e[h])h++,u--;f=f.slice(h),h=1;while(a>0&&T.length-h>N-1&&T[T.length-h]==e[e.length-h])h++,a--;l-=h-1,c-=h-1;var p=f.length-h+1;p<0&&(u=-p,p=0),f=f.slice(0,p);if(!r&&!f&&!l&&!u&&!a&&!c)return"";w=!0;var d=!1;return i.isAndroid&&f==". "&&(f=" ",d=!0),f&&!u&&!a&&!l&&!c||S?t.onTextInput(f):t.onTextInput(f,{extendLeft:u,extendRight:a,restoreStart:l,restoreEnd:c}),w=!1,T=e,N=s,C=o,k=c,d?"\n":f},B=function(e){if(b)return z();if(e&&e.inputType){if(e.inputType=="historyUndo")return t.execCommand("undo");if(e.inputType=="historyRedo")return t.execCommand("redo")}var r=n.value,i=H(r,!0);(r.length>c+100||v.test(i)||m&&N<1&&N==C)&&O()},j=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||a)return;var i=f||n?"Text":"text/plain";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return j(e,t,!0)}},F=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);j(e,s)?(d&&(O(s),g=s,setTimeout(function(){g=!1},10)),i?t.onCut():t.onCopy(),r.preventDefault(e)):(g=!0,n.value=s,n.select(),setTimeout(function(){g=!1,O(),i?t.onCut():t.onCopy()}))},I=function(e){F(e,!0)},q=function(e){F(e,!1)},R=function(e){var s=j(e);if(u.pasteCancelled())return;typeof s=="string"?(s&&t.onPaste(s,e),i.isIE&&setTimeout(O),r.preventDefault(e)):(n.value="",y=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t),t),r.addListener(n,"select",_,t),r.addListener(n,"input",B,t),r.addListener(n,"cut",I,t),r.addListener(n,"copy",q,t),r.addListener(n,"paste",R,t),(!("oncut"in n)||!("oncopy"in n)||!("onpaste"in n))&&r.addListener(e,"keydown",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:q(e);break;case 86:R(e);break;case 88:I(e)}},t);var U=function(e){if(b||!t.onCompositionStart||t.$readOnly)return;b={};if(S)return;e.data&&(b.useTextareaForIME=!1),setTimeout(z,0),t._signal("compositionStart"),t.on("mousedown",X);var r=t.getSelectionRange();r.end.row=r.start.row,r.end.column=r.start.column,b.markerRange=r,b.selectionStart=N,t.onCompositionStart(b),b.useTextareaForIME?(T=n.value="",N=0,C=0):(n.msGetInputContext&&(b.context=n.msGetInputContext()),n.getInputContext&&(b.context=n.getInputContext()))},z=function(){if(!b||!t.onCompositionUpdate||t.$readOnly)return;if(S)return X();if(b.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;H(e),b.markerRange&&(b.context&&(b.markerRange.start.column=b.selectionStart=b.context.compositionStartOffset),b.markerRange.end.column=b.markerRange.start.column+C-b.selectionStart+k)}},W=function(e){if(!t.onCompositionEnd||t.$readOnly)return;b=!1,t.onCompositionEnd(),t.off("mousedown",X),e&&B()},V=o.delayedCall(z,50).schedule.bind(null,null);r.addListener(n,"compositionstart",U,t),r.addListener(n,"compositionupdate",z,t),r.addListener(n,"keyup",$,t),r.addListener(n,"keydown",V,t),r.addListener(n,"compositionend",W,t),this.getElement=function(){return n},this.setCommandMode=function(e){S=e,n.readOnly=!1},this.setReadOnly=function(e){S||(n.readOnly=e)},this.setCopyWithEmptySelection=function(e){},this.onContextMenu=function(e){P=!0,O(),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){E||(E=n.style.cssText),n.style.cssText=(o?"z-index:100000;":"")+(i.isIE?"opacity:0.1;":"")+"text-indent: -"+(N+C)*t.renderer.characterWidth*.5+"px;";var u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){s.translate(n,e.clientX-l-2,Math.min(e.clientY-f-2,c))};h(e);if(e.type!="mousedown")return;t.renderer.$isMousePressed=!0,clearTimeout(J),i.isWin&&r.capture(t.container,h,K)},this.onContextMenuClose=K;var J,Q=function(e){t.textInput.onContextMenu(e),K()};r.addListener(n,"mouseup",Q,t),r.addListener(n,"mousedown",function(e){e.preventDefault(),K()},t),r.addListener(t.renderer.scroller,"contextmenu",Q,t),r.addListener(n,"contextmenu",Q,t),d&&G(e,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}};t.TextInput=g,t.$setUserAgentForTests=function(e,t){m=e,d=t}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";function o(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function u(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function a(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/useragent"),i=0,s=550;(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,s=e.getButton();if(s!==0){var o=i.getSelectionRange(),u=o.isEmpty();(u||s==1)&&i.selection.moveToPosition(n),s==2&&(i.textInput.onContextMenu(e.domEvent),r.isMozilla||e.preventDefault());return}this.mousedownEvent.time=Date.now();if(t&&!i.isFocused()){i.focus();if(this.$focusTimeout&&!this.$clickSelection&&!i.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;if(!this.mousedownEvent)return;this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select")},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=a(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=a(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},this.focusWait=function(){var e=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>i||t-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,r=e.domEvent.timeStamp,i=r-n.t,o=i?e.wheelX/i:n.vx,u=i?e.wheelY/i:n.vy;i=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(f=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(f=!0);if(f)n.allowed=r;else if(r-n.allowedt.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join("
"),i.setHtml(f);var p=s.className;p&&i.setClassName(p.trim()),i.show(),t._signal("showGutterTooltip",i),t.on("mousewheel",c);if(e.$tooltipFollowsMouse)h(u);else{var d=u.domEvent.target,v=d.getBoundingClientRect(),m=i.getElement().style;m.left=v.right+"px",m.top=v.bottom+"px"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t._signal("hideGutterTooltip",i),t.off("mousewheel",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,"ace_fold-widget"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)},t),t.on("changeSession",c)}function a(e){o.call(this,e)}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event"),o=e("../tooltip").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.moveCursorToPosition(e),S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.selection.fromOrientedRange(m),t.isFocused()&&!w&&t.$resetCursorStyle(),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent="\u00a0";var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.on("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout(function(){t.container.removeChild(n)}),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e),t),i.addListener(c,"dragend",this.onDragEnd.bind(e),t),i.addListener(c,"dragenter",this.onDragEnter.bind(e),t),i.addListener(c,"dragover",this.onDragOver.bind(e),t),i.addListener(c,"dragleave",this.onDragLeave.bind(e),t),i.addListener(c,"drop",this.onDrop.bind(e),t);var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./mouse_event").MouseEvent,i=e("../lib/event"),s=e("../lib/dom");t.addTouchListeners=function(e,t){function b(){var e=window.navigator&&window.navigator.clipboard,r=!1,i=function(){var n=t.getCopyText(),i=t.session.getUndoManager().hasUndo();y.replaceChild(s.buildDom(r?["span",!n&&["span",{"class":"ace_mobile-button",action:"selectall"},"Select All"],n&&["span",{"class":"ace_mobile-button",action:"copy"},"Copy"],n&&["span",{"class":"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{"class":"ace_mobile-button",action:"paste"},"Paste"],i&&["span",{"class":"ace_mobile-button",action:"undo"},"Undo"],["span",{"class":"ace_mobile-button",action:"find"},"Find"],["span",{"class":"ace_mobile-button",action:"openCommandPallete"},"Palette"]]:["span"]),y.firstChild)},o=function(n){var s=n.target.getAttribute("action");if(s=="more"||!r)return r=!r,i();if(s=="paste")e.readText().then(function(e){t.execCommand(s,e)});else if(s){if(s=="cut"||s=="copy")e?e.writeText(t.getCopyText()):document.execCommand("copy");t.execCommand(s)}y.firstChild.style.display="none",r=!1,s!="openCommandPallete"&&t.focus()};y=s.buildDom(["div",{"class":"ace_mobile-menu",ontouchstart:function(e){n="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{"class":"ace_mobile-button",action:"more"},"..."]],t.container)}function w(){y||b();var e=t.selection.cursor,n=t.renderer.textToScreenCoordinates(e.row,e.column),r=t.renderer.textToScreenCoordinates(0,0).pageX,i=t.renderer.scrollLeft,s=t.container.getBoundingClientRect();y.style.top=n.pageY-s.top-3+"px",n.pageX-s.left=2?t.selection.getLineRange(p.row):t.session.getBracketRange(p);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),n="wait"}function T(){h+=60,c=setInterval(function(){h--<=0&&(clearInterval(c),c=null),Math.abs(v)<.01&&(v=0),Math.abs(m)<.01&&(m=0),h<20&&(v=.9*v),h<20&&(m=.9*m);var e=t.session.getScrollTop();t.renderer.scrollBy(10*v,10*m),e==t.session.getScrollTop()&&(h=0)},10)}var n="scroll",o,u,a,f,l,c,h=0,p,d=0,v=0,m=0,g,y;i.addListener(e,"contextmenu",function(e){if(!g)return;var n=t.textInput.getElement();n.focus()},t),i.addListener(e,"touchstart",function(e){var i=e.touches;if(l||i.length>1){clearTimeout(l),l=null,a=-1,n="zoom";return}g=t.$mouseHandler.isMousePressed=!0;var s=t.renderer.layerConfig.lineHeight,c=t.renderer.layerConfig.lineHeight,y=e.timeStamp;f=y;var b=i[0],w=b.clientX,E=b.clientY;Math.abs(o-w)+Math.abs(u-E)>s&&(a=-1),o=e.clientX=w,u=e.clientY=E,v=m=0;var T=new r(e,t);p=T.getDocumentPosition();if(y-a<500&&i.length==1&&!h)d++,e.preventDefault(),e.button=0,x();else{d=0;var N=t.selection.cursor,C=t.selection.isEmpty()?N:t.selection.anchor,k=t.renderer.$cursorLayer.getPixelPosition(N,!0),L=t.renderer.$cursorLayer.getPixelPosition(C,!0),A=t.renderer.scroller.getBoundingClientRect(),O=t.renderer.layerConfig.offset,M=t.renderer.scrollLeft,_=function(e,t){return e/=c,t=t/s-.75,e*e+t*t};if(e.clientXP?"cursor":"anchor"),P<3.5?n="anchor":D<3.5?n="cursor":n="scroll",l=setTimeout(S,450)}a=y},t),i.addListener(e,"touchend",function(e){g=t.$mouseHandler.isMousePressed=!1,c&&clearInterval(c),n=="zoom"?(n="",h=0):l?(t.selection.moveToPosition(p),h=0,w()):n=="scroll"?(T(),E()):w(),clearTimeout(l),l=null},t),i.addListener(e,"touchmove",function(e){l&&(clearTimeout(l),l=null);var i=e.touches;if(i.length>1||n=="zoom")return;var s=i[0],a=o-s.clientX,c=u-s.clientY;if(n=="wait"){if(!(a*a+c*c>4))return e.preventDefault();n="cursor"}o=s.clientX,u=s.clientY,e.clientX=s.clientX,e.clientY=s.clientY;var h=e.timeStamp,p=h-f;f=h;if(n=="scroll"){var d=new r(e,t);d.speed=1,d.wheelX=a,d.wheelY=c,10*Math.abs(a)0)if(g==16){for(w=b;w-1){for(w=b;w=0;C--){if(r[C]!=N)break;t[C]=s}}}function I(e,t,n){if(o=e){u=i+1;while(u=e)u++;for(a=i,l=u-1;a=t.length||(o=n[r-1])!=b&&o!=w||(c=t[r+1])!=b&&c!=w)return E;return u&&(c=w),c==o?c:E;case k:o=r>0?n[r-1]:S;if(o==b&&r+10&&n[r-1]==b)return b;if(u)return E;p=r+1,h=t.length;while(p=1425&&d<=2303||d==64286;o=t[p];if(v&&(o==y||o==T))return y}if(r<1||(o=t[r-1])==S)return E;return n[r-1];case S:return u=!1,f=!0,s;case x:return l=!0,E;case O:case M:case D:case P:case _:u=!1;case H:return E}}function R(e){var t=e.charCodeAt(0),n=t>>8;return n==0?t>191?g:B[t]:n==5?/[\u0591-\u05f4]/.test(e)?y:g:n==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?A:/[\u0660-\u0669\u066b-\u066c]/.test(e)?w:t==1642?L:/[\u06f0-\u06f9]/.test(e)?b:T:n==32&&t<=8287?j[t&255]:n==254?t>=65136?T:E:E}function U(e){return e>="\u064b"&&e<="\u0655"}var r=["\u0621","\u0641"],i=["\u063a","\u064a"],s=0,o=0,u=!1,a=!1,f=!1,l=!1,c=!1,h=!1,p=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],d=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],v=0,m=1,g=0,y=1,b=2,w=3,E=4,S=5,x=6,T=7,N=8,C=9,k=10,L=11,A=12,O=13,M=14,_=15,D=16,P=17,H=18,B=[H,H,H,H,H,H,H,H,H,x,S,x,N,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,S,S,S,x,N,E,E,L,L,L,E,E,E,E,E,k,C,k,C,C,b,b,b,b,b,b,b,b,b,b,C,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,H,H,H,H,H,H,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,C,E,L,L,L,L,E,E,E,E,g,E,E,H,E,E,L,L,b,b,E,g,E,E,E,b,g,E,E,E,E,E],j=[N,N,N,N,N,N,N,N,N,N,N,H,H,H,g,y,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N,S,O,M,_,D,P,C,L,L,L,L,L,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,C,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N];t.L=g,t.R=y,t.EN=b,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="\u00b7",t.doBidiReorder=function(e,n,r){if(e.length<2)return{};var i=e.split(""),o=new Array(i.length),u=new Array(i.length),a=[];s=r?m:v,F(i,a,i.length,n);for(var f=0;fT&&n[f]0&&i[f-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(i[f])&&(a[f-1]=a[f]=t.R_H,f++);i[i.length-1]===t.DOT&&(a[i.length-1]=t.B),i[0]==="\u202b"&&(a[0]=t.RLE);for(var f=0;f=0&&(e=this.session.$docRowCache[n])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n,r=this.session.$getRowCacheIndex(t,this.currentRow);while(this.currentRow-e>0){n=this.session.$getRowCacheIndex(t,this.currentRow-e-1);if(n!==r)break;r=n,e++}}else e=this.currentRow;return e},this.updateRowLine=function(e,t){e===undefined&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1,s=n?this.EOF:this.EOL;this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE;if(this.session.$useWrapMode){var o=this.session.$wrapData[e];o&&(t===undefined&&(t=this.getSplitIndex()),t>0&&o.length?(this.wrapIndent=o.indent,this.wrapOffset=this.wrapIndent*this.charWidths[r.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=r.getVisualFromLogicalIdx(n,this.bidiMap),s=this.bidiMap.bidiLevels,o=0;!this.session.getOverwrite()&&e<=t&&s[i]%2!==0&&i++;for(var u=0;ut&&s[i]%2===0&&(o+=this.charWidths[s[i]]),this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(o+=this.rtlLineOffset),o},this.getSelections=function(e,t){var n=this.bidiMap,r=n.bidiLevels,i,s=[],o=0,u=Math.min(e,t)-this.wrapIndent,a=Math.max(e,t)-this.wrapIndent,f=!1,l=!1,c=0;this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var h,p=0;p=u&&hn+s/2){n+=s;if(r===i.length-1){s=0;break}s=this.charWidths[i[++r]]}return r>0&&i[r-1]%2!==0&&i[r]%2===0?(e0&&i[r-1]%2===0&&i[r]%2!==0?t=1+(e>n?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===i.length-1&&s===0&&i[r-1]%2===0||!this.isRtlDir&&r===0&&i[r]%2!==0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&i[r-1]%2!==0&&s!==0&&r--,t=this.bidiMap.logicalFromVisual[r]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent}}).call(o.prototype),t.BidiHandler=o}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),!t.$isEmpty&&!t.$silent&&t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.anchor.on("change",function(){t.$anchorChanged=!0,!t.$isEmpty&&!t.$silent&&t._emit("changeSelection")})};(function(){r.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},this.getCursor=function(){return this.lead.getPosition()},this.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},this.setSelectionAnchor=this.setAnchor,this.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionAnchor=this.getAnchor,this.getSelectionLead=function(){return this.lead.getPosition()},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(e,t){var n=t?e.end:e.start,r=t?e.start:e.end;this.$setSelection(n.row,n.column,r.row,r.column)},this.$setSelection=function(e,t,n,r){if(this.$silent)return;var i=this.$isEmpty,s=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,r),this.$isEmpty=!o.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||s)&&this._emit("changeSelection")},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,n){var r=e.column,i=e.column+t;return n<0&&(r=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(r,i).split(" ").length-1==t},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(e,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i){this.moveCursorTo(i.end.row,i.end.column);return}this.session.nonTokenRe.exec(r)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t));if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(s)&&(t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t=0,n,r=/\s/,i=this.session.tokenRe;i.lastIndex=0;if(this.session.tokenRe.exec(e))t=this.session.tokenRe.lastIndex;else{while((n=e[t])&&r.test(n))t++;if(t<1){i.lastIndex=0;while((n=e[t])&&!i.test(n)){i.lastIndex=0,t++;if(r.test(n)){if(t>2){t--;break}while((n=e[t])&&r.test(n))t++;if(t>2)break}}}}return i.lastIndex=0,t},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column),r;t===0&&(e!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(r=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(r/this.session.$bidiHandler.charWidths[0])):r=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);if(e!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var s=this.session.screenToDocumentPosition(n.row+e,n.column,r);e!==0&&t===0&&s.row===this.lead.row&&s.column===this.lead.column,this.moveCursorTo(s.row,s.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach()},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use strict";var r=e("./config"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;il){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;yi){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new r(this.$row,t,this.$row,t+e.value.length)}}).call(i.prototype),t.TokenIterator=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","rparen","paren","punctuation.operator"],a=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],f,l={},c={'"':'"',"'":"'"},h=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},d=function(e){this.add("braces","insertion",function(t,n,r,i,s){var u=r.getCursorPosition(),a=i.doc.getLine(u.row);if(s=="{"){h(r);var l=r.getSelectionRange(),c=i.doc.getTextRange(l);if(c!==""&&c!=="{"&&r.getWrapBehavioursEnabled())return p(l,c,"{","}");if(d.isSaneInsertion(r,i))return/[\]\}\)]/.test(a[u.column])||r.inMultiSelectMode||e&&e.braces?(d.recordAutoInsert(r,i,"}"),{text:"{}",selection:[1,1]}):(d.recordMaybeInsert(r,i,"{"),{text:"{",selection:[1,1]})}else if(s=="}"){h(r);var v=a.substring(u.column,u.column+1);if(v=="}"){var m=i.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(m!==null&&d.isAutoInsertedClosing(u,a,s))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(s=="\n"||s=="\r\n"){h(r);var g="";d.isMaybeInsertedClosing(u,a)&&(g=o.stringRepeat("}",f.maybeInsertedBrackets),d.clearMaybeInsertedClosing());var v=a.substring(u.column,u.column+1);if(v==="}"){var y=i.findMatchingBracket({row:u.row,column:u.column+1},"}");if(!y)return null;var b=this.$getIndent(i.getLine(y.row))}else{if(!g){d.clearMaybeInsertedClosing();return}var b=this.$getIndent(a)}var w=b+i.getTabString();return{text:"\n"+w+"\n"+b+g,selection:[1,w.length,1,w.length]}}d.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"(",")");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"[","]");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){var s=r.$mode.$quotes||c;if(i.length==1&&s[i]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;h(n);var o=i,u=n.getSelectionRange(),a=r.doc.getTextRange(u);if(a!==""&&(a.length!=1||!s[a])&&n.getWrapBehavioursEnabled())return p(u,a,o,o);if(!a){var f=n.getCursorPosition(),l=r.doc.getLine(f.row),d=l.substring(f.column-1,f.column),v=l.substring(f.column,f.column+1),m=r.getTokenAt(f.row,f.column),g=r.getTokenAt(f.row,f.column+1);if(d=="\\"&&m&&/escape/.test(m.type))return null;var y=m&&/string|escape/.test(m.type),b=!g||/string|escape/.test(g.type),w;if(v==o)w=y!==b,w&&/string\.end/.test(g.type)&&(w=!1);else{if(y&&!b)return null;if(y&&b)return null;var E=r.$mode.tokenRe;E.lastIndex=0;var S=E.test(d);E.lastIndex=0;var x=E.test(d);if(S||x)return null;if(v&&!/[\s;,.})\]\\]/.test(v))return null;var T=l[f.column-2];if(!(d!=o||T!=o&&!E.test(T)))return null;w=!0}return{text:w?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.$mode.$quotes||c,o=r.doc.getTextRange(i);if(!i.isMultiLine()&&s.hasOwnProperty(o)){h(n);var u=r.doc.getLine(i.start.row),a=u.substring(i.start.column+1,i.start.column+2);if(a==o)return i.end.column++,i}})};d.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},d.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},d.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},d.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},d.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},d.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},d.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},d.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(d,i),t.CstyleBehaviour=d}),ace.define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";var r=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,s=[];for(var o=0;o2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(ne.length&&(E=e.length)}),u==Infinity&&(u=E,s=!1,o=!1),l&&u%f!=0&&(u=Math.floor(u/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new f(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,a=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new l(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new f(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new l(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);a.start.row==c&&(a.start.column+=h),a.end.row==c&&(a.end.column+=h),t.selection.fromOrientedRange(a)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)if(e[t]){var n=e[t],i=n.prototype.$id,s=r.$modes[i];s||(r.$modes[i]=s=new n),r.$modes[t]||(r.$modes[t]=s),this.$embeds.push(t),this.$modes[t]=s}var o=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var t=0;t=0&&t.row=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.columnthis.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.off("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e||"")},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e0,r=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e))},this.$safeApplyDelta=function(e){var t=this.$lines.length;(e.action=="remove"&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,r==-1&&(r=t),s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action=="remove")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens},this.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()}}).call(s.prototype),t.BackgroundTokenizer=s}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow,a={};for(var f=o;f<=u;f++){var l=this.cache[f];l==null&&(l=r.getMatchOffsets(n.getLine(f),this.regExp),l.length>this.MAX_RANGES&&(l=l.slice(0,this.MAX_RANGES)),l=l.map(function(e){return new s(f,e.offset,f,e.offset+e.length)}),this.cache[f]=l.length?l:"");for(var c=l.length;c--;){var h=l[c].toScreenRange(n),p=h.toString();if(a[p])continue;a[p]=!0,t.drawSingleLineMarker(e,h,this.clazz,i)}}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=r)break}if(e.action=="insert"){var f=i-r,l=-t.column+n.column;for(;or)break;a.start.row==r&&a.start.column>=t.column&&(a.start.column==t.column&&this.$bias<=0||(a.start.column+=l,a.start.row+=f));if(a.end.row==r&&a.end.column>=t.column){if(a.end.column==t.column&&this.$bias<0)continue;a.end.column==t.column&&l>0&&oa.start.column&&a.end.column==s[o+1].start.column&&(a.end.column-=l),a.end.column+=l,a.end.row+=f}}}else{var f=r-i,l=t.column-n.column;for(;oi)break;if(a.end.rowt.column)a.end.column=t.column,a.end.row=t.row}else a.end.column+=l,a.end.row+=f;else a.end.row>i&&(a.end.row+=f);if(a.start.rowt.column)a.start.column=t.column,a.start.row=t.row}else a.start.column+=l,a.start.row+=f;else a.start.row>i&&(a.start.row+=f)}}if(f!=0&&o=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i=t){u=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column,c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),o.collapseChildren||p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;if(e==null)n=new r(0,0,this.getLength(),0),t==null&&(t=!0);else if(typeof e=="number")n=new r(e,0,e,this.getLine(e).length);else if("row"in e)n=r.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach(function(e){i=i.concat(this.unfold(e))},this),i;n=e}i=this.getFoldsInRangeList(n);var s=i;while(i.length==1&&r.comparePoints(i[0].start,n.start)<0&&r.comparePoints(i[0].end,n.end)>0)this.expandFolds(i),i=this.getFoldsInRangeList(n);t!=0?this.removeFolds(i):this.expandFolds(i);if(s.length)return s},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(tl)break}while(s&&a.test(s.type)&&!/^comment.start/.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn(),/^comment.end/.test(s.type)||(f.end.column+=s.value.length-2),f}},this.foldAll=function(e,t,n,r){n==undefined&&(n=1e5);var i=this.foldWidgets;if(!i)return;t=t||this.getLength(),e=e||0;for(var s=e;s=e&&(s=o.end.row,o.collapseChildren=n,this.addFold("...",o))}},this.foldToLevel=function(e){this.foldAll();while(e-->0)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,function(t){var n=e.getTokens(t);for(var r=0;r=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range))return this.removeFold(s),s}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action=="remove")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator;t.Folding=u}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),r=/([\(\[\{])|([\)\]\}])/,s=!t&&n.charAt(e.column-1),o=s&&s.match(r);o||(s=(t===undefined||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(r));if(!o)return null;var u=new i(e.row,e.column-1,e.row,e.column),a=o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e);if(!a)return[u];var f=new i(a.row,a.column,a.row,a.column+1);return[u,f]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a"?r=!0:t.type.indexOf("tag-name")!==-1&&(n=!0));while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,r=t.value,s=t.value,o=0,u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),f=!1;do{n=t,t=e.stepForward();if(t){if(t.value===">"&&!f){var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);f=!0}if(t.type.indexOf("tag-name")!==-1){r=t.value;if(s===r)if(n.value==="<")o++;else if(n.value==="")return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}}else if(s===r&&t.value==="/>"){o--;if(o<0)var c=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),h=c,p=h,l=new i(a.end.row,a.end.column,a.end.row,a.end.column+1)}}}while(t&&o>=0);if(u&&l&&c&&p&&a&&h)return{openTag:new i(u.start.row,u.start.column,l.end.row,l.end.column),closeTag:new i(c.start.row,c.start.column,p.end.row,p.end.column),openTagName:a,closeTagName:h}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),r=t.value,s=0,o=e.getCurrentTokenRow(),u=e.getCurrentTokenColumn(),a=u+2,f=new i(o,u,o,a);e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);t=e.stepForward();if(!t||t.value!==">")return;var c=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{t=n,o=e.getCurrentTokenRow(),u=e.getCurrentTokenColumn(),a=u+t.value.length,n=e.stepBackward();if(t)if(t.type.indexOf("tag-name")!==-1){if(r===t.value)if(n.value==="<"){s++;if(s>0){var h=new i(o,u,o,a),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do t=e.stepForward();while(t&&t.value!==">");var d=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else n.value===""){var v=0,m=n;while(m){if(m.type.indexOf("tag-name")!==-1&&m.value===r){s--;break}if(m.value==="<")break;m=e.stepBackward(),v++}for(var g=0;g=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,u),this.setDocument=function(e){this.doc&&this.doc.off("change",this.$onChange),this.doc=e,e.on("change",this.$onChange,!0),this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(oe&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;ao){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=e.length-1;n!=-1;n--){var r=e[n];r.action=="insert"||r.action=="remove"?this.doc.revertDelta(r):r.folds&&this.addFolds(r.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=0;ne.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,f=s.start,o=f.row-a.row,u=f.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new l(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new l(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n==="remove"){this[t?"$wrapData":"$rowLengthCache"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n==="remove"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),o=this.$wrapData,u=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,o){var u;if(e!=null){u=this.$getDisplayTokens(e,a.length),u[0]=n;for(var f=1;fr-b){var w=f+r-b;if(e[w-1]>=c&&e[w]>=c){y(w);continue}if(e[w]==n||e[w]==s){for(w;w!=f-1;w--)if(e[w]==n)break;if(w>f){y(w);continue}w=f+r;for(w;w>2)),f-1);while(w>E&&e[w]E&&e[w]E&&e[w]==a)w--}else while(w>E&&e[w]E){y(++w);continue}w=f+r,e[w]==t&&w--,y(w-b)}return o},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o39&&u<48||u>57&&u<64?i.push(a):u>=4352&&v(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i=4352&&v(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),!this.$useWrapMode||!this.$wrapData[e]?t:this.$wrapData[e].length+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0)var u=f[l],i=this.$docRowCache[l],h=e>f[c-1];else var h=!c;var p=this.getLength()-1,d=this.getNextFoldLine(i),v=d?d.start.row:Infinity;while(u<=e){a=this.getRowLength(i);if(u+a>e||i>=p)break;u+=a,i++,i>v&&(i=d.end.row+1,d=this.getNextFoldLine(i,d),v=d?d.start.row:Infinity),h&&(this.$docRowCache.push(i),this.$screenRowCache.push(u))}if(d&&d.start.row<=i)r=this.getFoldDisplayLine(d),i=d.start.row;else{if(u+a<=e||i>p)return{row:p,column:this.getLine(p).length};r=this.getLine(i),d=null}var m=0,g=Math.floor(e-u);if(this.$useWrapMode){var y=this.$wrapData[i];y&&(o=y[g],g>0&&y.length&&(m=y.indent,s=y[g-1]||y[y.length-1],r=r.substring(s)))}return n!==undefined&&this.$bidiHandler.isBidiRow(u+g,i,g)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(r,t-m)[1],this.$useWrapMode&&s>=o&&(s=o-1),d?d.idxToPosition(s):{row:i,column:s}},this.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return this.lineWidgets&&this.lineWidgets[u]&&this.lineWidgets[u].rowsAbove&&(r+=this.lineWidgets[u].rowsAbove),{row:r,column:v+this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;ro&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;sn)break}return[r,s]}},this.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},this.isFullWidth=v}.call(d.prototype),e("./edit_session/folding").Folding.call(d.prototype),e("./edit_session/bracket_match").BracketMatch.call(d.prototype),o.defineOptions(d.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){e=parseInt(e),e>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=d}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";function u(e,t){function n(e){return/\w/.test(e)||t.regExp?"\\b":""}return n(e[0])+e+n(e[e.length-1])}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i,o){return r=new s(e,n,i,o),n==o&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start)?(r=null,!1):!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;hv)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;gE&&o[h].end.row==S)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g=u;n--)if(c(n,Number.MAX_VALUE,e))return;if(t.wrap==0)return;for(n=a,u=o.row;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return};else var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n+=1;n<=a;n++)if(c(n,0,e))return;if(t.wrap==0)return;for(n=u,a=o.row;n<=a;n++)if(c(n,0,e))return};if(t.$isMultiLine)var l=n.length,c=function(t,i,s){var o=r?t-l+1:t;if(o<0||o+l>e.getLength())return;var u=e.getLine(o),a=u.search(n[0]);if(!r&&ai)return;if(s(o,a,o+l-1,c))return!0};else if(r)var c=function(t,r,i){var s=e.getLine(t),o=[],u,a=0;n.lastIndex=0;while(u=n.exec(s)){var f=u[0].length;a=u.index;if(!f){if(a>=s.length)break;n.lastIndex=a+=1}if(u.index+f>r)break;o.push(u.index,f)}for(var l=o.length-1;l>=0;l-=2){var c=o[l-1],f=o[l];if(i(t,c,t,c+f))return!0}};else var c=function(t,r,i){var s=e.getLine(t),o,u;n.lastIndex=r;while(u=n.exec(s)){var a=u[0].length;o=u.index;if(i(t,o,t,o+a))return!0;if(!a){n.lastIndex=o+=1;if(o>=s.length)return!1}}};return{forEach:f}}}).call(o.prototype),t.Search=o}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function o(e,t){this.platform=t||(i.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e("../lib/keys"),i=e("../lib/useragent"),s=r.KEY_MODS;u.prototype=o.prototype,function(){function e(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e=="object"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(t,n,r){var i=this.commandKeyBinding,s;if(!n)delete i[t];else if(!i[t]||this.$singleCommand)i[t]=n;else{Array.isArray(i[t])?(s=i[t].indexOf(n))!=-1&&i[t].splice(s,1):i[t]=[i[t]],typeof r!="number"&&(r=e(n));var o=i[t];for(s=0;sr)break}o.splice(s,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o=="chainKeys"||o[o.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=""}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:o}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../keyboard/hash_handler").MultiHashHandler,s=e("../lib/event_emitter").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(this.$checkCommandState!=0&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:o("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:o("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:o("Ctrl-L","Command-L"),exec:function(e,t){typeof t=="number"&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:o("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:o("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:o("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:o("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:o("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:o("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:o("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:o("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:o("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty(),n=t?e.selection.getLineRange():e.selection.getRange();e._emit("cut",n),n.isEmpty()||e.session.remove(n),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:o("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:o("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:o("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:o("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:o(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:o("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;ot[n].column&&n++,s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},this.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},this.addLineWidget=function(e){this.$registerLineWidget(e),e.session=this.session;if(!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=r.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=r.createElement("div"),e.el.textContent=e.text),e.el&&(r.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&r.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight==null&&(e.pixelHeight=e.el.offsetHeight)),e.rowCount==null&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);e.$fold=n;if(n){var i=this.session.lineWidgets;e.row==n.end.row&&!i[n.start.row]?i[n.start.row]=e:e.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}).call(i.prototype),t.LineWidgets=i}),ace.define("ace/editor",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator","ace/line_widgets","ace/clipboard"],function(e,t,n){"use strict";var r=this&&this.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),s=e("./lib/dom"),o=e("./lib/lang"),u=e("./lib/useragent"),a=e("./keyboard/textinput").TextInput,f=e("./mouse/mouse_handler").MouseHandler,l=e("./mouse/fold_handler").FoldHandler,c=e("./keyboard/keybinding").KeyBinding,h=e("./edit_session").EditSession,p=e("./search").Search,d=e("./range").Range,v=e("./lib/event_emitter").EventEmitter,m=e("./commands/command_manager").CommandManager,g=e("./commands/default_commands").commands,y=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,E=e("./clipboard"),S=function(e,t,n){this.$toDestroy=[];var r=e.getContainerElement();this.container=r,this.renderer=e,this.id="editor"+ ++S.$uid,this.commands=new m(u.isMac?"mac":"win",g),typeof document=="object"&&(this.textInput=new a(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new f(this),new l(this)),this.keyBinding=new c(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=o.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||n&&n.session||new h("")),y.resetOptions(this),n&&this.setOptions(n),y._signal("editor",this)};S.$uid=0,function(){i.implement(this,v),this.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=o.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},this.endOperation=function(e){if(this.curOp&&this.session){if(e&&e.returnValue===!1||!this.session)return this.curOp=null;if(e==1&&this.curOp.command&&this.curOp.command.name=="mouse")return;this._signal("beforeEndOperation");if(!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}var s=this.selection.toJSON();this.curOp.selectionAfter=s,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(s),this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"&&e!="ace"){this.$keybindingId=e;var n=this;y.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||s.computedStyle(this.container).fontSize},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||t.destroyed)return;t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach(function(e){t.removeMarker(e)}),t.$bracketHighlight=null);var n=e.getCursorPosition(),r=e.getKeyboardHandler(),i=r&&r.$getDirectionForHighlight&&r.$getDirectionForHighlight(e),s=t.getMatchingBracketRanges(n,i);if(!s){var o=new b(t,n.row,n.column),u=o.getCurrentToken();if(u&&/\b(?:tag-open|tag-name)/.test(u.type)){var a=t.getMatchingTags(n);a&&(s=[a.openTagName,a.closeTagName])}}!s&&t.$mode.getMatching&&(s=t.$mode.getMatching(e.session));if(!s){e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide();return}var f="ace_bracket";Array.isArray(s)?s.length==1&&(f="ace_error_bracket"):s=[s],s.length==2&&(d.comparePoints(s[0].end,s[1].start)==0?s=[d.fromPoints(s[0].start,s[1].end)]:d.comparePoints(s[0].start,s[1].end)==0&&(s=[d.fromPoints(s[1].start,s[0].end)])),t.$bracketHighlight={ranges:s,markerIds:s.map(function(e){return t.addMarker(e,f,"text")})},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()},50)},this.focus=function(){this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e)},this.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e)},this.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(t=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new d(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column,r=t.end.column,i=e.getLine(t.start.row),s=i.substring(n,r);if(s.length>5e3||!/[\w\d]/.test(s))return;var o=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s}),u=i.substring(n-1,r+1);if(!o.test(u))return;return o},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;var r=this.selection.getAllRanges();for(var i=0;iu.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e);n.insert(i,e),s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new d(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new d(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var h=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},h)}c&&r.autoOutdent(l,n,i.row)}},this.autoIndent=function(){var e=this.session,t=e.getMode(),n,r;if(this.selection.isEmpty())n=0,r=e.doc.getLength()-1;else{var i=this.getSelectionRange();n=i.start.row,r=i.end.row}var s="",o="",u="",a,f,l,c=e.getTabString();for(var h=n;h<=r;h++)h>0&&(s=e.getState(h-1),o=e.getLine(h-1),u=t.getNextLineIndent(s,o,c)),a=e.getLine(h),f=t.$getIndent(a),u!==f&&(f.length>0&&(l=new d(h,0,h,f.length),e.remove(l)),u.length>0&&e.insert({row:h,column:0},u)),t.autoOutdent(s,e,h)},this.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},this.applyComposition=function(e,t){if(t.extendLeft||t.extendRight){var n=this.selection.getRange();n.start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),!e&&!n.isEmpty()&&this.remove()}(e||!this.selection.isEmpty())&&this.insert(e,!0);if(t.restoreStart||t.restoreEnd){var n=this.selection.getRange();n.start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n)}},this.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},this.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},this.removeGhostText=function(){if(!this.session.widgetManager)return;this.renderer.removeGhostText()},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;tt.toLowerCase()?1:0});var i=new d(0,0,0,0);for(var r=e.first;r<=e.last;r++){var s=t.getLine(r);i.start.row=r,i.end.row=r,i.end.column=s.length,t.replace(i,n[r-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new d(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n=u&&s<=a&&(n=t,f.selection.clearSelection(),f.moveCursorTo(e,u+r),f.selection.selectTo(e,a+r)),u=a});var l=this.$toggleWordPairs,c;for(var h=0;h=a&&u<=f&&p.match(/((?:https?|ftp):\/\/[\S]+)/)){l=p.replace(/[\s:.,'";}\]]+$/,"");break}a=f}}catch(d){n={error:d}}finally{try{h&&!h.done&&(i=c.return)&&i.call(c)}finally{if(n)throw n.error}}return l},this.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),t!=null},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;lp+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(e)},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.selection.selectAll()},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new b(this.session,n.row,n.column),i=r.getCurrentToken(),s=0;i&&i.type.indexOf("tag-name")!==-1&&(i=r.stepBackward());var o=i||r.stepForward();if(!o)return;var u,a=!1,f={},l=n.column-o.start,c,h={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g))for(;l1?f[o.value]++:i.value==="=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&i.mixin(t,e);var r=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?r.start=r.end:r.end=r.start,this.selection.setRange(r)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(e){e.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.topwindow.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",u),this.renderer.off("beforeRender",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",s.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))},this.prompt=function(e,t,n){var r=this;y.loadModule("ace/ext/prompt",function(i){i.prompt(r,e,t,n)})}}.call(S.prototype),y.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?x.attach(this):x.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?x.attach(this):x.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.getValue());if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),s.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!e&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),s.addCssClass(this.container,"ace_hasPlaceholder");var t=s.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var x={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"\u00b7":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=S}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){for(var n=t;n--;){var r=e[n];if(r&&!r[0].ignore){while(n0){a.row+=i,a.column+=a.row==r.row?s:0;continue}!t&&l<=0&&(a.row=n.row,a.column=n.column,l===0&&(a.bias=1))}}function f(e){return{row:e.row,column:e.column}}function l(e){return{start:f(e.start),end:f(e.end),action:e.action,lines:e.lines.slice()}}function c(e){e=e||this;if(Array.isArray(e))return e.map(c).join("\n");var t="";e.action?(t=e.action=="insert"?"+":"-",t+="["+e.lines+"]"):e.value&&(Array.isArray(e.value)?t=e.value.map(h).join("\n"):t=h(e.value)),e.start&&(t+=h(e));if(e.id||e.rev)t+=" ("+(e.id||e.rev)+")";return t}function h(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function p(e,t){var n=e.action=="insert",r=t.action=="insert";if(n&&r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}else if(!n&&r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(!n&&!r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}return[t,e]}function d(e,t){for(var n=e.length;n--;)for(var r=0;r=0?m(e,t,-1):o(e.start,t.start)<=0?m(t,e,1):(m(e,s.fromPoints(t.start,e.start),-1),m(t,e,1));else if(!n&&r)o(t.start,e.end)>=0?m(t,e,-1):o(t.start,e.start)<=0?m(e,t,1):(m(t,s.fromPoints(e.start,t.start),-1),m(e,t,1));else if(!n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0)){var i,u;return o(e.start,t.start)<0&&(i=e,e=y(e,t.start)),o(e.end,t.end)>0&&(u=y(e,t.end)),g(t.end,e.start,e.end,-1),u&&!i&&(e.lines=u.lines,e.start=u.start,e.end=u.end,u=e),[t,i,u].filter(Boolean)}m(e,t,-1)}return[t,e]}function m(e,t,n){g(e.start,t.start,t.end,n),g(e.end,t.start,t.end,n)}function g(e,t,n,r){e.row==(r==1?t:n).row&&(e.column+=r*(n.column-t.column)),e.row+=r*(n.row-t.row)}function y(e,t){var n=e.lines,r=e.end;e.end=f(t);var i=e.end.row-e.start.row,s=n.splice(i,n.length),o=i?t.column:t.column-e.start.column;n.push(s[0].substring(0,o)),s[0]=s[0].substr(o);var u={start:f(t),end:r,lines:s,action:e.action};return u}function b(e,t){t=l(t);for(var n=e.length;n--;){var r=e[n];for(var i=0;ithis.$undoDepth-1&&this.$undoStack.splice(0,r-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}if(e.action=="remove"||e.action=="insert")this.$lastDelta=e;this.lastDeltas.push(e)},this.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},this.startNewGroup=function(){return this.lastDeltas=null,this.$rev},this.markIgnored=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack;for(var r=n.length;r--;){var i=n[r][0];if(i.id<=e)break;i.id0},this.canRedo=function(){return this.$redoStack.length>0},this.bookmark=function(e){e==undefined&&(e=this.$rev),this.mark=e},this.isAtBookmark=function(){return this.$rev===this.mark},this.toJSON=function(){},this.fromJSON=function(){},this.hasUndo=this.canUndo,this.hasRedo=this.canRedo,this.isClean=this.isAtBookmark,this.markClean=this.bookmark,this.$prettyPrint=function(e){return e?c(e):c(this.$undoStack)+"\n---\n"+c(this.$redoStack)}}).call(r.prototype);var s=e("./range").Range,o=s.comparePoints,u=s.comparePoints;t.UndoManager=r}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0};(function(){this.moveContainer=function(e){r.translate(this.element,0,-(e.firstRowScreen*e.lineHeight%this.canvasHeight)-e.offset*this.$offsetCoefficient)},this.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},this.computeLineTop=function(e,t,n){var r=t.firstRowScreen*t.lineHeight,i=Math.floor(r/this.canvasHeight),s=n.documentToScreenRow(e,0)*t.lineHeight;return s-i*this.canvasHeight},this.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},this.getLength=function(){return this.cells.length},this.get=function(e){return this.cells[e]},this.shift=function(){this.$cacheCell(this.cells.shift())},this.pop=function(){this.$cacheCell(this.cells.pop())},this.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);var t=r.createFragment(this.element);for(var n=0;ns&&(a=i.end.row+1,i=t.getNextFoldLine(a,i),s=i?i.start.row:Infinity);if(a>r){while(this.$lines.getLength()>u+1)this.$lines.pop();break}o=this.$lines.get(++u),o?o.row=a:(o=this.$lines.createCell(a,e,this.session,f),this.$lines.push(o)),this.$renderCell(o,e,i,a),a++}this._signal("afterRender"),this.$updateGutterWidth(e)},this.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,r=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";if(this.$fixedWidth||t.$useWrapMode)i=t.getLength()+r-1;var s=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,o=this.$padding||this.$computePadding();s+=o.left+o.right,s!==this.gutterWidth&&!isNaN(s)&&(this.gutterWidth=s,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",s))},this.$updateCursorRow=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.getCursor();if(this.$cursorRow===e.row)return;this.$cursorRow=e.row},this.updateLineHighlight=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.cursor.row;this.$cursorRow=e;if(this.$cursorCell&&this.$cursorCell.row==e)return;this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(r.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;r=t[n-1]}r.element.className="ace_gutter-active-line "+r.element.className,this.$cursorCell=r;break}}},this.scrollLines=function(e){var t=this.config;this.config=e,this.$updateCursorRow();if(this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),r=this.oldLastRow;this.oldLastRow=n;if(!t||r0;i--)this.$lines.shift();if(r>n)for(var i=this.session.getFoldedRowCount(n+1,r);i>0;i--)this.$lines.pop();e.firstRowr&&this.$lines.push(this.$renderLines(e,r+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},this.$renderLines=function(e,t,n){var r=[],i=t,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>n)break;var u=this.$lines.createCell(i,e,this.session,f);this.$renderCell(u,e,s,i),r.push(u),i++}return r},this.$renderCell=function(e,t,n,i){var s=e.element,o=this.session,u=s.childNodes[0],a=s.childNodes[1],f=o.$firstLineNumber,l=o.$breakpoints,c=o.$decorations,h=o.gutterRenderer||this.$renderer,p=this.$showFoldWidgets&&o.foldWidgets,d=n?n.start.row:Number.MAX_VALUE,v="ace_gutter-cell ";this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=d&&this.$cursorRow<=n.end.row)&&(v+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),l[i]&&(v+=l[i]),c[i]&&(v+=c[i]),this.$annotations[i]&&(v+=this.$annotations[i].className),s.className!=v&&(s.className=v);if(p){var m=p[i];m==null&&(m=p[i]=o.getFoldWidget(i))}if(m){var v="ace_fold-widget ace_"+m;m=="start"&&i==d&&in.right-t.right)return"foldWidgets"}}).call(a.prototype),t.Gutter=a}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../lib/dom"),s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.elt=function(e,t){var n=this.i!=-1&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},this.update=function(e){if(!e)return;this.config=e,this.i=0;var t;for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start"+" ace_br15",e)}if(this.i!=-1)while(this.ip,l==f),s,l==f?0:1,o)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||"";if(this.session.$bidiHandler.isBidiRow(t.start.row)){var f=t.clone();f.end.row=f.start.row,f.end.column=this.session.getLine(f.start.row).length,this.drawBidiSingleLineMarker(e,f,n+" ace_br1 ace_start",r,null,i)}else this.elt(n+" ace_br1 ace_start","height:"+o+"px;"+"right:0;"+"top:"+u+"px;left:"+a+"px;"+(i||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var f=t.clone();f.start.row=f.end.row,f.start.column=0,this.drawBidiSingleLineMarker(e,f,n+" ace_br12",r,null,i)}else{u=this.$getTop(t.end.row,r);var l=t.end.column*r.characterWidth;this.elt(n+" ace_br12","height:"+o+"px;"+"width:"+l+"px;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))}o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var c=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(c?" ace_br"+c:""),"height:"+o+"px;"+"right:0;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))},this.drawSingleLineMarker=function(e,t,n,r,i,s){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,r,i,s);var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;this.elt(n,"height:"+o+"px;"+"width:"+u+"px;"+"top:"+a+"px;"+"left:"+f+"px;"+(s||""))},this.drawBidiSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=this.$getTop(t.start.row,r),a=this.$padding,f=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);f.forEach(function(e){this.elt(n,"height:"+o+"px;"+"width:"+(e.width+(i||0))+"px;"+"top:"+u+"px;"+"left:"+(a+e.left)+"px;"+(s||""))},this)},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))}}).call(s.prototype),t.Marker=s}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("./lines").Lines,u=e("../lib/event_emitter").EventEmitter,a=function(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new o(this.element)};(function(){r.implement(this,u),this.EOF_CHAR="\u00b6",this.EOL_CHAR_LF="\u00ac",this.EOL_CHAR_CRLF="\u00a4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\u00b7",this.$padding=0,this.MAX_LINE_LENGTH=1e4,this.$updateEolChar=function(){var e=this.session.doc,t=e.getNewLineCharacter()=="\n"&&e.getNewLineMode()!="windows",n=t?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=n)return this.EOL_CHAR=n,!0},this.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.showSpaces=!1,this.showTabs=!1,this.showEOL=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,typeof e=="string"?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$highlightIndentGuides=!0,this.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides===e?!1:(this.$highlightIndentGuides=e,e)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;nl&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),l=a?a.start.row:Infinity);if(u>i)break;var c=s[o++];if(c){this.dom.removeChildren(c),this.$renderLine(c,u,u==l?a:!1),f&&(c.style.top=this.$lines.computeLineTop(u,e,this.session)+"px");var h=e.lineHeight*this.session.getRowLength(u)+"px";c.style.height!=h&&(f=!0,c.style.height=h)}u++}if(f)while(o0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(var i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},this.$renderLinesFragment=function(e,t,n){var r=[],s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=this.$lines.createCell(s,e,this.session),f=a.element;this.dom.removeChildren(f),i.setStyle(f.style,"height",this.$lines.computeLineHeight(s,e,this.session)+"px"),i.setStyle(f.style,"top",this.$lines.computeLineTop(s,e,this.session)+"px"),this.$renderLine(f,s,s==u?o:!1),this.$useLineGroups()?f.className="ace_line_group":f.className="ace_line",r.push(a),s++}return r},this.update=function(e){this.$lines.moveContainer(e),this.config=e;var t=e.firstRow,n=e.lastRow,r=this.$lines;while(r.getLength())r.pop();r.push(this.$renderLinesFragment(e,t,n))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),a,f=0;while(a=o.exec(r)){var l=a[1],c=a[2],h=a[3],p=a[4],d=a[5];if(!i.showSpaces&&c)continue;var v=f!=a.index?r.slice(f,a.index):"";f=a.index+a[0].length,v&&u.appendChild(this.dom.createTextNode(v,this.element));if(l){var m=i.session.getScreenTabSize(t+a.index);u.appendChild(i.$tabStrings[m].cloneNode(!0)),t+=m-1}else if(c)if(i.showSpaces){var g=this.dom.createElement("span");g.className="ace_invisible ace_invisible_space",g.textContent=s.stringRepeat(i.SPACE_CHAR,c.length),u.appendChild(g)}else u.appendChild(this.com.createTextNode(c,this.element));else if(h){var g=this.dom.createElement("span");g.className="ace_invisible ace_invisible_space ace_invalid",g.textContent=s.stringRepeat(i.SPACE_CHAR,h.length),u.appendChild(g)}else if(p){t+=1;var g=this.dom.createElement("span");g.style.width=i.config.characterWidth*2+"px",g.className=i.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",g.textContent=i.showSpaces?i.SPACE_CHAR:p,u.appendChild(g)}else if(d){t+=1;var g=this.dom.createElement("span");g.style.width=i.config.characterWidth*2+"px",g.className="ace_cjk",g.textContent=d,u.appendChild(g)}}u.appendChild(this.dom.createTextNode(f?r.slice(f):r,this.element));if(!this.$textToken[n.type]){var y="ace_"+n.type.replace(/\./g," ace_"),g=this.dom.createElement("span");n.type=="fold"&&(g.style.width=n.value.length*this.config.characterWidth+"px"),g.className=y,g.appendChild(u),e.appendChild(g)}else e.appendChild(u);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);if(r<=0||r>=n)return t;if(t[0]==" "){r-=r%this.tabSize;var i=r/this.tabSize;for(var s=0;ss[o].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&e[t.row]!==""&&t.column===e[t.row].length){this.$highlightIndentGuideMarker.dir=1;for(var o=t.row+1;o0)for(var i=0;i=this.$highlightIndentGuideMarker.start+1){if(r.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(r,t)}}else for(var n=e.length-1;n>=0;n--){var r=e[n];if(this.$highlightIndentGuideMarker.end&&r.row=o)u=this.$renderToken(a,u,l,c.substring(0,o-r)),c=c.substring(o-r),r=o,a=this.$createLineElement(),e.appendChild(a),a.appendChild(this.dom.createTextNode(s.stringRepeat("\u00a0",n.indent),this.element)),i++,u=0,o=n[i]||Number.MAX_VALUE;c.length!=0&&(r+=c.length,u=this.$renderToken(a,u,l,c))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(a,u,null,"",!0)},this.$renderSimpleLine=function(e,t){var n=0;for(var r=0;rthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,s);n=this.$renderToken(e,n,i,s)}},this.$renderOverflowMessage=function(e,t,n,r,i){n&&this.$renderToken(e,t,n,r.slice(0,this.MAX_LINE_LENGTH-t));var s=this.dom.createElement("span");s.className="ace_inline_button ace_keyword ace_toggle_wrap",s.textContent=i?"":"",e.appendChild(s)},this.$renderLine=function(e,t,n){!n&&n!=0&&(n=this.session.getFoldLine(t));if(n)var r=this.$getFoldLineTokens(t,n);else var r=this.session.getTokens(t);var i=e;if(r.length){var s=this.session.getRowSplitData(t);if(s&&s.length){this.$renderWrappedLine(e,r,s);var i=e.lastChild}else{var i=e;this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,r)}}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var o=this.dom.createElement("span");o.className="ace_invisible ace_invisible_eol",o.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(o)}},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.lengthn-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(sn?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)};(function(){this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)r.setStyle(t[n].style,"opacity",e?"":"0")},this.$startCssAnimation=function(){var e=this.cursors;for(var t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&r.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},this.$stopCssAnimation=function(){this.$isAnimating=!1,r.removeCssClass(this.element,"ace_animate-blinking")},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,r.removeCssClass(this.element,"ace_smooth-blinking")),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this)));if(r.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||o.top<0)&&n>1)continue;var u=this.cursors[i++]||this.addCursor(),a=u.style;this.drawCursor?this.drawCursor(u,o,e,t[n],this.session):this.isCursorInView(o,e)?(r.setStyle(a,"display","block"),r.translate(u,o.left,o.top),r.setStyle(a,"width",Math.round(e.characterWidth)+"px"),r.setStyle(a,"height",e.lineHeight+"px")):r.setStyle(a,"display","none")}while(this.cursors.length>i)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(i.prototype),t.Cursor=i}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=32768,a=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\u00a0",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var f=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};r.inherits(f,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;if(this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>u?(this.coeff=u/e,e=u):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(f.prototype);var l=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(l,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(l.prototype),t.ScrollBar=f,t.ScrollBarV=f,t.ScrollBarH=l,t.VScrollBar=f,t.HScrollBar=l}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter;i.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var u=function(e){this.element=i.createElement("div"),this.element.className="ace_sb"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(u.prototype);var a=function(e,t){u.call(this,e),this.scrollTop=0,this.scrollHeight=0,this.parent=e,this.width=this.VScrollWidth,this.renderer=t,this.inner.style.width=this.element.style.width=(this.width||15)+"px",this.$minWidth=0};r.inherits(a,u),function(){this.classSuffix="-v",r.implement(this,o),this.onMouseDown=function(e,t){if(e!=="mousedown")return;if(s.getButton(t)!==0||t.detail===2)return;if(t.target===this.inner){var n=this,r=t.clientY,i=function(e){r=e.clientY},o=function(){clearInterval(l)},u=t.clientY,a=this.thumbTop,f=function(){if(r===undefined)return;var e=n.scrollTopFromThumbTop(a+r-u);if(e===n.scrollTop)return;n._emit("scroll",{data:e})};s.capture(this.inner,i,o);var l=setInterval(f,20);return s.preventDefault(t)}var c=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(c)}),s.preventDefault(t)},this.getHeight=function(){return this.height},this.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return t>>=0,t<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},this.setInnerHeight=this.setScrollHeight=function(e,t){if(this.pageHeight===e&&!t)return;this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop}))},this.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"}}.call(a.prototype);var f=function(e,t){u.call(this,e),this.scrollLeft=0,this.scrollWidth=0,this.height=this.HScrollHeight,this.inner.style.height=this.element.style.height=(this.height||12)+"px",this.renderer=t};r.inherits(f,u),function(){this.classSuffix="-h",r.implement(this,o),this.onMouseDown=function(e,t){if(e!=="mousedown")return;if(s.getButton(t)!==0||t.detail===2)return;if(t.target===this.inner){var n=this,r=t.clientX,i=function(e){r=e.clientX},o=function(){clearInterval(l)},u=t.clientX,a=this.thumbLeft,f=function(){if(r===undefined)return;var e=n.scrollLeftFromThumbLeft(a+r-u);if(e===n.scrollLeft)return;n._emit("scroll",{data:e})};s.capture(this.inner,i,o);var l=setInterval(f,20);return s.preventDefault(t)}var c=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(c)}),s.preventDefault(t)},this.getHeight=function(){return this.isVisible?this.height:0},this.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return t>>=0,t<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},this.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},this.setInnerWidth=this.setScrollWidth=function(e,t){if(this.pageWidth===e&&!t)return;this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft}))},this.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"}}.call(f.prototype),t.ScrollBar=a,t.ScrollBarV=a,t.ScrollBarH=f,t.VScrollBar=a,t.HScrollBar=f}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;t&&(r.blockIdle(100),n.changes=0,n.onRender(t));if(n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}};(function(){this.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(r.nextFrame(this._flush),this.pending=!0)},this.clear=function(e){var t=this.changes;return this.changes=0,t}}).call(i.prototype),t.RenderLoop=i}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/event"),u=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,f=512,l=typeof ResizeObserver=="function",c=200,h=t.FontMetrics=function(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=s.stringRepeat("X",f),this.$characterSize={width:0,height:0},l?this.$addObserver():this.checkForSizeChanges()};(function(){r.implement(this,a),this.$characterSize={width:0,height:0},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",u.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(e){e===undefined&&(e=this.$measureSizes());if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver(function(t){e.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=o.onIdle(function t(){e.checkForSizeChanges(),o.onIdle(t,500)},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/f};return t.width===0||t.height===0?null:t},this.$measureCharWidth=function(e){this.$main.textContent=s.stringRepeat(e,f);var t=this.$main.getBoundingClientRect();return t.width/f},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},this.$getZoom=function e(t){return!t||!t.parentElement?1:(window.getComputedStyle(t).zoom||1)*e(t.parentElement)},this.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(c,0),e(0,c),e(c,c)],this.el)},this.transformCoordinates=function(e,t){function r(e,t,n){var r=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/r,(+e[1]*n[0]-e[0]*n[1])/r]}function i(e,t){return[e[0]-t[0],e[1]-t[1]]}function s(e,t){return[e[0]+t[0],e[1]+t[1]]}function o(e,t){return[e*t[0],e*t[1]]}function u(e){var t=e.getBoundingClientRect();return[t.left,t.top]}if(e){var n=this.$getZoom(this.el);e=o(1/n,e)}this.els||this.$initTransformMeasureNodes();var a=u(this.els[0]),f=u(this.els[1]),l=u(this.els[2]),h=u(this.els[3]),p=r(i(h,f),i(h,l),i(s(f,l),s(h,a))),d=o(1+p[0],i(f,a)),v=o(1+p[1],i(l,a));if(t){var m=t,g=p[0]*m[0]/c+p[1]*m[1]/c+1,y=s(o(m[0],d),o(m[1],v));return s(o(1/g/c,y),a)}var b=i(e,a),w=r(i(d,o(p[0],b)),i(v,o(p[1],b)),b);return o(c,w)}}).call(h.prototype)}),ace.define("ace/css/editor.css",["require","exports","module"],function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n will-change: transform;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #FFF;\n background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n}\n\n.ace_folding-enabled > .ace_gutter-cell {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n}'}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event_emitter").EventEmitter,o=function(e,t){this.canvas=r.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)};(function(){i.implement(this,s),this.$updateDecorators=function(e){function i(e,t){return e.priorityt.priority?1:0}var t=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;if(e){this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height;var n=(e.lastRow+1)*this.lineHeight;nthis.canvasHeight&&(v=this.canvasHeight-this.halfMinDecorationHeight),h=Math.round(v-this.halfMinDecorationHeight),p=Math.round(v+this.halfMinDecorationHeight)}r.fillStyle=t[s[a].type]||null,r.fillRect(0,c,this.canvasWidth,p-h)}}var m=this.renderer.session.selection.getCursor();if(m){var l=this.compensateFoldRows(m.row,u),c=Math.round((m.row-l)*this.lineHeight*this.heightRatio);r.fillStyle="rgba(0, 0, 0, 0.5)",r.fillRect(0,c,this.canvasWidth,2)}},this.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var r=0;rt[r].start.row&&e=t[r].end.row&&(n+=t[r].end.row-t[r].start.row);return n}}).call(o.prototype),t.Decorator=o}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor.css","ace/layer/decorators","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./config"),o=e("./layer/gutter").Gutter,u=e("./layer/marker").Marker,a=e("./layer/text").Text,f=e("./layer/cursor").Cursor,l=e("./scrollbar").HScrollBar,c=e("./scrollbar").VScrollBar,h=e("./scrollbar_custom").HScrollBar,p=e("./scrollbar_custom").VScrollBar,d=e("./renderloop").RenderLoop,v=e("./layer/font_metrics").FontMetrics,m=e("./lib/event_emitter").EventEmitter,g=e("./css/editor.css"),y=e("./layer/decorators").Decorator,b=e("./lib/useragent"),w=b.isIE;i.importCssString(g,"ace_editor.css",!1);var E=function(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),s.get("useStrictCSP")==null&&s.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new o(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new u(this.content);var r=this.$textLayer=new a(this.content);this.canvas=r.element,this.$markerFront=new u(this.content),this.$cursorLayer=new f(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new c(this.container,this),this.scrollBarH=new l(this.container,this),this.scrollBarV.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new v(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!b.isIOS,this.$loop=new d(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._signal("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,m),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var s=0,o=this.$size,u={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};r&&(e||o.height!=r)&&(o.height=r,s|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(o.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",s|=this.CHANGE_SCROLL);if(n&&(e||o.width!=n)){s|=this.CHANGE_SIZE,o.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),o.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var a=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",a),i.setStyle(this.scroller.style,"right",a),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(o.scrollerWidth);if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)s|=this.CHANGE_FULL}return o.$dirty=!n||!r,s&&this._signal("resize",u),s},this.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},this.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$isMousePressed)return;var e=this.textarea.style,t=this.$composition;if(!this.$keepTextAreaAtCursor&&!t){i.translate(this.textarea,-100,0);return}var n=this.$cursorLayer.$pixelPos;if(!n)return;t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var r=this.layerConfig,s=n.top,o=n.left;s-=r.offset;var u=t&&t.useTextareaForIME?this.lineHeight:w?0:1;if(s<0||s>r.height-u){i.translate(this.textarea,0,0);return}var a=1,f=this.$size.height-u;if(!t)s+=this.lineHeight;else if(t.useTextareaForIME){var l=this.textarea.value;a=this.characterWidth*this.session.$getStringScreenWidth(l)[0]}else s+=this.lineHeight+2;o-=this.scrollLeft,o>this.$size.scrollerWidth-a&&(o=this.$size.scrollerWidth-a),o+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",u+"px"),i.setStyle(e,"width",a+"px"),i.translate(this.textarea,Math.min(o,this.$size.scrollerWidth-a),Math.min(s,f))},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.setMargin=function(e,t,n,r){var i=this.margin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig()|this.$loop.clear();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var s=n.width+2*this.$padding+"px",o=n.minHeight+"px";i.setStyle(this.content.style,"width",s),i.setStyle(this.content.style,"height",o)}e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left");if(e&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender",e);return}if(e&this.CHANGE_SCROLL){this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender",e);return}e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=n<=2*this.lineHeight,i=!r&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||i!=this.$vScroll){i!=this.$vScroll&&(this.$vScroll=i,this.scrollBarV.setVisible(i));var s=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,s,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=t.scrollerHeight+this.lineHeight,l=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=l;var c=this.scrollMargin;this.session.setScrollTop(Math.max(-c.top,Math.min(this.scrollTop,i-t.scrollerHeight+c.bottom))),this.session.setScrollLeft(Math.max(-c.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+c.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+l<0||this.scrollTop>c.top),p=a!==h;p&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var d=this.scrollTop%this.lineHeight,v=Math.ceil(f/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-d)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),f=t.scrollerHeight+e.getRowLength(g)*w+b,d=this.scrollTop-y*w;var S=0;if(this.layerConfig.width!=s||u)S=this.CHANGE_H_SCROLL;if(u||p)S|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:f,maxHeight:i,offset:d,gutterOffset:w?Math.max(0,Math.ceil((d+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(s-this.$padding),S},this.$updateLines=function(){if(!this.$changedLines)return;var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),u=this.$blockCursor?Math.floor(s):Math.round(s);return{row:o,column:u,side:s-u>0?1:-1,offsetX:i}},this.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=this.$blockCursor?Math.floor(s):Math.round(s),u=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(u,Math.max(o,0),i)},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(r.row,e)?this.session.$bidiHandler.getPosLeft(r.column):Math.round(r.column*this.characterWidth)),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),e.useTextareaForIME==undefined&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},this.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""},this.setGhostText=function(e,t){var n=this.session.selection.cursor,r=t||{row:n.row,column:n.column};this.removeGhostText();var i=e.split("\n");this.addToken(i[0],"ghost_text",r.row,r.column),this.$ghostText={text:e,position:{row:r.row,column:r.column}},i.length>1&&(this.$ghostTextWidget={text:i.slice(1).join("\n"),row:r.row,column:r.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget))},this.removeGhostText=function(){if(!this.$ghostText)return;var e=this.$ghostText.position;this.removeExtraToken(e.row,e.column),this.$ghostTextWidget&&(this.session.widgetManager.removeLineWidget(this.$ghostTextWidget),this.$ghostTextWidget=null),this.$ghostText=null},this.addToken=function(e,t,n,r){var i=this.session;i.bgTokenizer.lines[n]=null;var s={type:t,value:e},o=i.getTokens(n);if(r==null)o.push(s);else{var u=0;for(var a=0;a50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})}}).call(f.prototype);var l=function(e,t,n){var r=null,i=!1,u=Object.create(s),a=[],l=new f({messageBuffer:a,terminate:function(){},postMessage:function(e){a.push(e);if(!r)return;i?setTimeout(c):c()}});l.setEmitSync=function(e){i=e};var c=function(){var e=a.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};return u.postMessage=function(e){l.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.length)c()}),l};t.UIWorkerClient=l,t.WorkerClient=f,t.createWorker=a}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action==="insert")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action==="remove")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}if(!e.textInput)return;var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()},e),u.addListener(t,"keyup",r,e),u.addListener(t,"blur",r,e)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){var e=this.ranges.length?this.ranges:[this.getRange()],t=[];for(var n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.cursor),s=this.session.documentToScreenPosition(this.anchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column0)g--;if(g>0){var y=0;while(r[y].isEmpty())y++}for(var b=g;b>=y;b--)r[b].isEmpty()&&r.splice(b,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges(),u.ranges[0]&&u.fromOrientedRange(u.ranges[0]);var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),io?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),st[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",o)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",o))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++tf){var p=e.getLine(l).length;return new r(f,u,l,p)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?"unshift":"push"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type=="errorMarker"})[0];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!="number"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},p=h.el.appendChild(i.createElement("div")),d=h.el.appendChild(i.createElement("div"));d.className="error_widget_arrow "+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("
"),p.appendChild(i.createElement("div"));var m=function(e,t,n){if(t===0&&(n==="esc"||n==="return"))return h.destroy(),{command:"null"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)}),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],function(e,t,n){"use strict";e("./loader_build")(t);var r=e("./lib/dom"),i=e("./lib/event"),s=e("./range").Range,o=e("./editor").Editor,u=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,f=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if(typeof e=="string"){var s=e;e=document.getElementById(s);if(!e)throw new Error("ace.edit can't find div #"+s)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var u="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;u=a.value,e=r.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(u=e.textContent,e.innerHTML="");var l=t.createEditSession(u),c=new o(new f(e),l,n),h={document:l,editor:c,onResize:c.resize.bind(c,null)};return a&&(h.textarea=a),i.addListener(window,"resize",h.onResize),c.on("destroy",function(){i.removeListener(window,"resize",h.onResize),h.editor.container.env=null}),c.container.env=c.env=h,c},t.createEditSession=function(e,t){var n=new u(e,t);return n.setUndoManager(new a),n},t.Range=s,t.Editor=o,t.EditSession=u,t.UndoManager=a,t.VirtualRenderer=f,t.version=t.config.version}); (function() { +(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE = "ace",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;un.length)t=n.length;t-=e.length;var r=n.indexOf(e,t);return r!==-1&&r===t}),String.prototype.repeat||r(String.prototype,"repeat",function(e){var t="",n=this;while(e>0){e&1&&(t+=n);if(e>>=1)n+=n}return t}),String.prototype.includes||r(String.prototype,"includes",function(e,t){return this.indexOf(e,t)!=-1}),Object.assign||(Object.assign=function(e){if(e===undefined||e===null)throw new TypeError("Cannot convert undefined or null to object");var t=Object(e);for(var n=1;n>>0,r=arguments[1],i=r>>0,s=i<0?Math.max(n+i,0):Math.min(i,n),o=arguments[2],u=o===undefined?n:o>>0,a=u<0?Math.max(n+u,0):Math.min(u,n);while(s0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n=0?parseFloat((s.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((s.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=s.match(/ Gecko\/\d+/),t.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(s.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(s.split(" Chrome/")[1])||undefined,t.isEdge=parseFloat(s.split(" Edge/")[1])||undefined,t.isAIR=s.indexOf("AdobeAIR")>=0,t.isAndroid=s.indexOf("Android")>=0,t.isChromeOS=s.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(s)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";function u(){var e=o;o=null,e&&e.forEach(function(e){a(e[0],e[1])})}function a(e,n,r){if(typeof document=="undefined")return;if(o)if(r)u();else if(r===!1)return o.push([e,n]);if(s)return;var i=r;if(!r||!r.getRootNode)i=document;else{i=r.getRootNode();if(!i||i==r)i=document}var a=i.ownerDocument||i;if(n&&t.hasCssString(n,i))return null;n&&(e+="\n/*# sourceURL=ace/css/"+n+" */");var f=t.createElement("style");f.appendChild(a.createTextNode(e)),n&&(f.id=n),i==a&&(i=t.getDocumentHead(a)),i.insertBefore(f,i.firstChild)}var r=e("./useragent"),i="http://www.w3.org/1999/xhtml";t.buildDom=function l(e,t,n){if(typeof e=="string"&&e){var r=document.createTextNode(e);return t&&t.appendChild(r),r}if(!Array.isArray(e))return e&&e.appendChild&&t&&t.appendChild(e),e;if(typeof e[0]!="string"||!e[0]){var i=[];for(var s=0;s=1.5:!0,r.isChromeOS&&(t.HI_DPI=!1);if(typeof document!="undefined"){var f=document.createElement("div");t.HI_DPI&&f.style.transform!==undefined&&(t.HAS_CSS_TRANSFORMS=!0),!r.isEdge&&typeof f.style.animationName!="undefined"&&(t.HAS_CSS_ANIMATION=!0),f=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,n){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(n)+"px)"}:t.translate=function(e,t,n){e.style.top=Math.round(n)+"px",e.style.left=Math.round(t)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o1&&(i=n[n.length-2]);var o=u[t+"Path"];return o==null?o=u.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return u.$moduleUrls[e]=t};var a=function(t,n){if(t==="ace/theme/textmate"||t==="./theme/textmate")return n(null,e("./theme/textmate"));if(f)return f(t,n);console.error("loader is not configured")},f;t.setLoader=function(e){f=e},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(e,n){var r,s;Array.isArray(e)&&(s=e[0],e=e[1]);var o=function(r){if(r&&!t.$loading[e])return n&&n(r);t.$loading[e]||(t.$loading[e]=[]),t.$loading[e].push(n);if(t.$loading[e].length>1)return;var o=function(){a(e,function(n,r){r&&(t.$loaded[e]=r),t._emit("load.module",{name:e,module:r});var i=t.$loading[e];t.$loading[e]=null,i.forEach(function(e){e&&e(r)})})};if(!t.get("packaged"))return o();i.loadScript(t.moduleUrl(e,s),o),l()};if(t.dynamicModules[e])t.dynamicModules[e]().then(function(e){e.default?o(e.default):o(e)});else{try{r=this.$require(e)}catch(u){}o(r||t.$loaded[e])}},t.$require=function(e){if(typeof n.require=="function"){var t="require";return n[t](e)}},t.setModuleLoader=function(e,n){t.dynamicModules[e]=n};var l=function(){!u.basePath&&!u.workerPath&&!u.modePath&&!u.themePath&&!Object.keys(u.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),l=function(){})};t.version="1.23.4"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(e,t,n){"use strict";function s(t){if(!i||!i.document)return;r.set("packaged",t||e.packaged||n.packaged||i.define&&define.packaged);var s={},u="",a=document.currentScript||document._currentScript,f=a&&a.ownerDocument||document;a&&a.src&&(u=a.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");var l=f.getElementsByTagName("script");for(var c=0;c ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return this.compare(e,t)==0},e.prototype.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},e.prototype.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},e.prototype.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},e.prototype.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},e.prototype.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?tthis.end.column?1:0:ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var r={row:n+1,column:0};else if(this.end.rown)var i={row:n+1,column:0};else if(this.start.row1?(u++,u>4&&(u=1)):u=1;if(i.isIE){var o=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-f)>5;if(!l||o)u=1;l&&clearTimeout(l),l=setTimeout(function(){l=null},n[u-1]||600),u==1&&(a=e.clientX,f=e.clientY)}e._clicks=u,r[s]("mousedown",e);if(u>4)u=0;else if(u>1)return r[s](h[u],e)}var u=0,a,f,l,h={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){c(e,"mousedown",p,o)})};var p=function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[p(e)]},t.addCommandKeyListener=function(e,n,r){if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var o=null;c(e,"keydown",function(e){o=e.keyCode},r),c(e,"keypress",function(e){return d(n,e,o)},r)}else{var u=null;c(e,"keydown",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=d(n,e,e.keyCode);return u=e.defaultPrevented,t},r),c(e,"keypress",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)},r),c(e,"keyup",function(e){s[e.keyCode]=null},r),s||(v(),c(window,"focus",v))}};if(typeof window=="object"&&window.postMessage&&!i.isOldIE){var m=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+m++,i=function(s){s.data==r&&(t.stopPropagation(s),h(n,"message",i),e())};c(n,"message",i),n.postMessage(r,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,n){return setTimeout(function r(){t.$idleBlocked?setTimeout(r,100):e()},n)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},e||100)},t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/clipboard",["require","exports","module"],function(e,t,n){"use strict";var r;n.exports={lineMode:!1,pasteCancelled:function(){return r&&r>Date.now()-50?!0:r=!1},cancel:function(){r=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../config").nls,s=e("../lib/useragent"),o=e("../lib/dom"),u=e("../lib/lang"),a=e("../clipboard"),f=s.isChrome<18,l=s.isIE,c=s.isChrome>63,h=400,p=e("../lib/keys"),d=p.KEY_MODS,v=s.isIOS,m=v?/\s/:/\n/,g=s.isMobile,y=function(e,t){function V(){T=!0,n.blur(),n.focus(),T=!1}function J(e){e.keyCode==27&&n.value.lengthk&&N[s]=="\n")o=p.end;else if(rk&&N.slice(0,s).split("\n").length>2)o=p.down;else if(s>k&&N[s-1]==" ")o=p.right,u=d.option;else if(s>k||s==k&&k!=C&&r==s)o=p.right;r!==s&&(u|=d.shift);if(o){var a=t.onCommandKey({},u,o);if(!a&&t.commands){o=p.keyCodeToString(o);var f=t.commands.findKeyCommand(u,o);f&&t.execCommand(f)}C=r,k=s,M("")}};document.addEventListener("selectionchange",s),t.on("destroy",function(){document.removeEventListener("selectionchange",s)})}var n=o.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var y=!1,b=!1,w=!1,E=!1,S="";g||(n.style.fontSize="1px");var x=!1,T=!1,N="",C=0,k=0,L=0;try{var A=document.activeElement===n}catch(O){}this.setAriaOptions=function(e){e.activeDescendant?(n.setAttribute("aria-haspopup","true"),n.setAttribute("aria-autocomplete",e.inline?"both":"list"),n.setAttribute("aria-activedescendant",e.activeDescendant)):(n.setAttribute("aria-haspopup","false"),n.setAttribute("aria-autocomplete","both"),n.removeAttribute("aria-activedescendant")),e.role&&n.setAttribute("role",e.role)},this.setAriaLabel=function(){if(t.session&&t.renderer.enableKeyboardAccessibility){var e=t.session.selection.cursor.row;n.setAttribute("aria-roledescription",i("editor")),n.setAttribute("aria-label",i("Cursor at row $0",[e+1]))}else n.removeAttribute("aria-roledescription"),n.removeAttribute("aria-label")},this.setAriaOptions({role:"textbox"}),this.setAriaLabel(),r.addListener(n,"blur",function(e){if(T)return;t.onBlur(e),A=!1},t),r.addListener(n,"focus",function(e){if(T)return;A=!0;if(s.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),s.isEdge?setTimeout(M):M()},t),this.$focusScroll=!1,this.focus=function(){this.setAriaLabel();if(S||c||this.$focusScroll=="browser")return n.focus({preventScroll:!0});var e=n.style.top;n.style.position="fixed",n.style.top="0px";try{var t=n.getBoundingClientRect().top!=0}catch(r){return}var i=[];if(t){var s=n.parentElement;while(s&&s.nodeType==1)i.push(s),s.setAttribute("ace_nocontext",!0),!s.parentElement&&s.getRootNode?s=s.getRootNode().host:s=s.parentElement}n.focus({preventScroll:!0}),t&&i.forEach(function(e){e.removeAttribute("ace_nocontext")}),setTimeout(function(){n.style.position="",n.style.top=="0px"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return A},t.on("beforeEndOperation",function(){var e=t.curOp,r=e&&e.command&&e.command.name;if(r=="insertstring")return;var i=r&&(e.docChanged||e.selectionChanged);w&&i&&(N=n.value="",X()),M()});var M=v?function(e){if(!A||y&&!e||E)return;e||(e="");var r="\n ab"+e+"cde fg\n";r!=n.value&&(n.value=N=r);var i=4,s=4+(e.length||(t.selection.isEmpty()?0:1));(C!=i||k!=s)&&n.setSelectionRange(i,s),C=i,k=s}:function(){if(w||E)return;if(!A&&!H)return;w=!0;var e=0,r=0,i="";if(t.session){var s=t.selection,o=s.getRange(),u=s.cursor.row;e=o.start.column,r=o.end.column,i=t.session.getLine(u);if(o.start.row!=u){var a=t.session.getLine(u-1);e=o.start.rowu+1?f.length:r,r+=i.length+1,i=i+"\n"+f}else g&&u>0&&(i="\n"+i,r+=1,e+=1);i.length>h&&(e=N.length&&e.value===N&&N&&e.selectionEnd!==k},D=function(e){if(w)return;y?y=!1:_(n)?(t.selectAll(),M()):g&&n.selectionStart!=C&&M()},P=null;this.setInputHandler=function(e){P=e},this.getInputHandler=function(){return P};var H=!1,B=function(e,r){H&&(H=!1);if(b)return M(),e&&t.onPaste(e),b=!1,"";var i=n.selectionStart,o=n.selectionEnd,u=C,a=N.length-k,f=e,l=e.length-i,c=e.length-o,h=0;while(u>0&&N[h]==e[h])h++,u--;f=f.slice(h),h=1;while(a>0&&N.length-h>C-1&&N[N.length-h]==e[e.length-h])h++,a--;l-=h-1,c-=h-1;var p=f.length-h+1;p<0&&(u=-p,p=0),f=f.slice(0,p);if(!r&&!f&&!l&&!u&&!a&&!c)return"";E=!0;var d=!1;return s.isAndroid&&f==". "&&(f=" ",d=!0),f&&!u&&!a&&!l&&!c||x?t.onTextInput(f):t.onTextInput(f,{extendLeft:u,extendRight:a,restoreStart:l,restoreEnd:c}),E=!1,N=e,C=i,k=o,L=c,d?"\n":f},j=function(e){if(w)return W();if(e&&e.inputType){if(e.inputType=="historyUndo")return t.execCommand("undo");if(e.inputType=="historyRedo")return t.execCommand("redo")}var r=n.value,i=B(r,!0);(r.length>h+100||m.test(i)||g&&C<1&&C==k)&&M()},F=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||f)return;var i=l||n?"Text":"text/plain";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return F(e,t,!0)}},I=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);F(e,s)?(v&&(M(s),y=s,setTimeout(function(){y=!1},10)),i?t.onCut():t.onCopy(),r.preventDefault(e)):(y=!0,n.value=s,n.select(),setTimeout(function(){y=!1,M(),i?t.onCut():t.onCopy()}))},q=function(e){I(e,!0)},R=function(e){I(e,!1)},U=function(e){var i=F(e);if(a.pasteCancelled())return;typeof i=="string"?(i&&t.onPaste(i,e),s.isIE&&setTimeout(M),r.preventDefault(e)):(n.value="",b=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t),t),r.addListener(n,"select",D,t),r.addListener(n,"input",j,t),r.addListener(n,"cut",q,t),r.addListener(n,"copy",R,t),r.addListener(n,"paste",U,t),(!("oncut"in n)||!("oncopy"in n)||!("onpaste"in n))&&r.addListener(e,"keydown",function(e){if(s.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:R(e);break;case 86:U(e);break;case 88:q(e)}},t);var z=function(e){if(w||!t.onCompositionStart||t.$readOnly)return;w={};if(x)return;e.data&&(w.useTextareaForIME=!1),setTimeout(W,0),t._signal("compositionStart"),t.on("mousedown",V);var r=t.getSelectionRange();r.end.row=r.start.row,r.end.column=r.start.column,w.markerRange=r,w.selectionStart=C,t.onCompositionStart(w),w.useTextareaForIME?(N=n.value="",C=0,k=0):(n.msGetInputContext&&(w.context=n.msGetInputContext()),n.getInputContext&&(w.context=n.getInputContext()))},W=function(){if(!w||!t.onCompositionUpdate||t.$readOnly)return;if(x)return V();if(w.useTextareaForIME)t.onCompositionUpdate(n.value);else{var e=n.value;B(e),w.markerRange&&(w.context&&(w.markerRange.start.column=w.selectionStart=w.context.compositionStartOffset),w.markerRange.end.column=w.markerRange.start.column+k-w.selectionStart+L)}},X=function(e){if(!t.onCompositionEnd||t.$readOnly)return;w=!1,t.onCompositionEnd(),t.off("mousedown",V),e&&j()},$=u.delayedCall(W,50).schedule.bind(null,null);r.addListener(n,"compositionstart",z,t),r.addListener(n,"compositionupdate",W,t),r.addListener(n,"keyup",J,t),r.addListener(n,"keydown",$,t),r.addListener(n,"compositionend",X,t),this.getElement=function(){return n},this.setCommandMode=function(e){x=e,n.readOnly=!1},this.setReadOnly=function(e){x||(n.readOnly=e)},this.setCopyWithEmptySelection=function(e){},this.onContextMenu=function(e){H=!0,M(),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){S||(S=n.style.cssText),n.style.cssText=(i?"z-index:100000;":"")+(s.isIE?"opacity:0.1;":"")+"text-indent: -"+(C+k)*t.renderer.characterWidth*.5+"px;";var u=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){o.translate(n,e.clientX-l-2,Math.min(e.clientY-f-2,c))};h(e);if(e.type!="mousedown")return;t.renderer.$isMousePressed=!0,clearTimeout(K),s.isWin&&r.capture(t.container,h,Q)},this.onContextMenuClose=Q;var K,G=function(e){t.textInput.onContextMenu(e),Q()};r.addListener(n,"mouseup",G,t),r.addListener(n,"mousedown",function(e){e.preventDefault(),Q()},t),r.addListener(t.renderer.scroller,"contextmenu",G,t),r.addListener(n,"contextmenu",G,t),v&&Y(e,t,n),this.destroy=function(){n.parentElement&&n.parentElement.removeChild(n)}};t.TextInput=y,t.$setUserAgentForTests=function(e,t){g=e,v=t}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(e,t,n){"use strict";function u(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function a(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/useragent"),i=0,s=550,o=function(){function e(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}return e.prototype.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var i=this.editor,s=e.getButton();if(s!==0){var o=i.getSelectionRange(),u=o.isEmpty();(u||s==1)&&i.selection.moveToPosition(n),s==2&&(i.textInput.onContextMenu(e.domEvent),r.isMozilla||e.preventDefault());return}this.mousedownEvent.time=Date.now();if(t&&!i.isFocused()){i.focus();if(this.$focusTimeout&&!this.$clickSelection&&!i.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},e.prototype.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;if(!this.mousedownEvent)return;this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.setStyle("ace_selecting"),this.setState("select")},e.prototype.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=a(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.renderer.scrollCursorIntoView()},e.prototype.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=a(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},e.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},e.prototype.focusWait=function(){var e=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>i||t-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},e.prototype.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},e.prototype.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},e.prototype.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},e.prototype.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,r=e.domEvent.timeStamp,i=r-n.t,o=i?e.wheelX/i:n.vx,u=i?e.wheelY/i:n.vy;i=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(f=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(f=!0);if(f)n.allowed=r;else if(r-n.allowed=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("./lib/dom"),o=e("./range").Range,u="ace_tooltip",a=function(){function e(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}return e.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=u,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},e.prototype.getElement=function(){return this.$element||this.$init()},e.prototype.setText=function(e){this.getElement().textContent=e},e.prototype.setHtml=function(e){this.getElement().innerHTML=e},e.prototype.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},e.prototype.setClassName=function(e){s.addCssClass(this.getElement(),e)},e.prototype.setTheme=function(e){this.$element.className=u+" "+(e.isDark?"ace_dark ":"")+(e.cssClass||"")},e.prototype.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},e.prototype.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=u,this.isOpen=!1)},e.prototype.getHeight=function(){return this.getElement().offsetHeight},e.prototype.getWidth=function(){return this.getElement().offsetWidth},e.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},e}(),f=function(){function e(){this.popups=[]}return e.prototype.addPopup=function(e){this.popups.push(e),this.updatePopups()},e.prototype.removePopup=function(e){var t=this.popups.indexOf(e);t!==-1&&(this.popups.splice(t,1),this.updatePopups())},e.prototype.updatePopups=function(){var e,t,n,r;this.popups.sort(function(e,t){return t.priority-e.priority});var s=[];try{for(var o=i(this.popups),u=o.next();!u.done;u=o.next()){var a=u.value,f=!0;try{for(var l=(n=void 0,i(s)),c=l.next();!c.done;c=l.next()){var h=c.value;if(this.doPopupsOverlap(h,a)){f=!1;break}}}catch(p){n={error:p}}finally{try{c&&!c.done&&(r=l.return)&&r.call(l)}finally{if(n)throw n.error}}f?s.push(a):a.hide()}}catch(d){e={error:d}}finally{try{u&&!u.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}},e.prototype.doPopupsOverlap=function(e,t){var n=e.getElement().getBoundingClientRect(),r=t.getElement().getBoundingClientRect();return n.leftr.left&&n.topr.top},e}(),l=new f;t.popupManager=l,t.Tooltip=a;var c=function(e){function t(t){t===void 0&&(t=document.body);var n=e.call(this,t)||this;n.timeout=undefined,n.lastT=0,n.idleTime=350,n.lastEvent=undefined,n.onMouseOut=n.onMouseOut.bind(n),n.onMouseMove=n.onMouseMove.bind(n),n.waitForHover=n.waitForHover.bind(n),n.hide=n.hide.bind(n);var r=n.getElement();return r.style.whiteSpace="pre-wrap",r.style.pointerEvents="auto",r.addEventListener("mouseout",n.onMouseOut),r.tabIndex=-1,r.addEventListener("blur",function(){r.contains(document.activeElement)||this.hide()}.bind(n)),n}return r(t,e),t.prototype.addToEditor=function(e){e.on("mousemove",this.onMouseMove),e.on("mousedown",this.hide),e.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},t.prototype.removeFromEditor=function(e){e.off("mousemove",this.onMouseMove),e.off("mousedown",this.hide),e.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},t.prototype.onMouseMove=function(e,t){this.lastEvent=e,this.lastT=Date.now();var n=t.$mouseHandler.isMousePressed;if(this.isOpen){var r=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(r.row,r.column)||n||this.isOutsideOfText(this.lastEvent))&&this.hide()}if(this.timeout||n)return;this.lastEvent=e,this.timeout=setTimeout(this.waitForHover,this.idleTime)},t.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var e=Date.now()-this.lastT;if(this.idleTime-e>10){this.timeout=setTimeout(this.waitForHover,this.idleTime-e);return}this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor)},t.prototype.isOutsideOfText=function(e){var t=e.editor,n=e.getDocumentPosition(),r=t.session.getLine(n.row);if(n.column==r.length){var i=t.renderer.pixelToScreenCoordinates(e.clientX,e.clientY),s=t.session.documentToScreenPosition(n.row,n.column);if(s.column!=i.column||s.row!=i.row)return!0}return!1},t.prototype.setDataProvider=function(e){this.$gatherData=e},t.prototype.showForRange=function(e,t,n,r){if(r&&r!=this.lastEvent)return;if(this.isOpen&&document.activeElement==this.getElement())return;var i=e.renderer;this.isOpen||(l.addPopup(this),this.$registerCloseEvents(),this.setTheme(i.theme)),this.isOpen=!0,this.addMarker(t,e.session),this.range=o.fromPoints(t.start,t.end);var s=this.getElement();s.innerHTML="",s.appendChild(n),s.style.display="block";var u=i.textToScreenCoordinates(t.start.row,t.start.column),a=e.getCursorPosition(),f=s.clientHeight,c=i.scroller.getBoundingClientRect(),h=!0;this.row>a.row?h=!0:this.rowc.bottom&&(h=!1),h?u.pageY+=i.lineHeight:u.pageY-=f,s.style.maxWidth=c.width-(u.pageX-c.left)+"px",this.setPosition(u.pageX,u.pageY)},t.prototype.addMarker=function(e,t){this.marker&&this.$markerSession.removeMarker(this.marker),this.$markerSession=t,this.marker=t&&t.addMarker(e,"ace_highlight-marker","text")},t.prototype.hide=function(e){if(!e&&document.activeElement==this.getElement())return;if(e&&e.target&&(e.type!="keydown"||e.ctrlKey||e.metaKey)&&this.$element.contains(e.target))return;this.lastEvent=null,this.timeout&&clearTimeout(this.timeout),this.timeout=null,this.addMarker(null),this.isOpen&&(this.$removeCloseEvents(),this.getElement().style.display="none",this.isOpen=!1,l.removePopup(this))},t.prototype.$registerCloseEvents=function(){window.addEventListener("keydown",this.hide,!0),window.addEventListener("mousewheel",this.hide,!0),window.addEventListener("mousedown",this.hide,!0)},t.prototype.$removeCloseEvents=function(){window.removeEventListener("keydown",this.hide,!0),window.removeEventListener("mousewheel",this.hide,!0),window.removeEventListener("mousedown",this.hide,!0)},t.prototype.onMouseOut=function(e){this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.lastEvent=null;if(!this.isOpen)return;if(!e.relatedTarget||e.relatedTarget==this.getElement())return;if(e&&e.currentTarget.contains(e.relatedTarget))return;e.relatedTarget.classList.contains("ace_content")||this.hide()},t}(a);t.HoverTooltip=c}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/tooltip","ace/config"],function(e,t,n){"use strict";function f(e){function a(){var i=u.getDocumentPosition().row,s=t.session.getLength();if(i==s){var o=t.renderer.pixelToScreenCoordinates(0,u.y).row,a=u.$pos;if(o>t.session.documentToScreenRow(a.row,a.column))return f()}r.showTooltip(i);if(!r.isOpen)return;t.on("mousewheel",f);if(e.$tooltipFollowsMouse)c(u);else{var l=u.getGutterRow(),h=n.$lines.get(l);if(h){var p=h.element.querySelector(".ace_gutter_annotation"),d=p.getBoundingClientRect(),v=r.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}else c(u)}}function f(){i&&(i=clearTimeout(i)),r.isOpen&&(r.hideTooltip(),t.off("mousewheel",f))}function c(e){r.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,r=new l(t);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var i,u;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(s.hasCssClass(n,"ace_fold-widget"))return f();r.isOpen&&e.$tooltipFollowsMouse&&c(t),u=t;if(i)return;i=setTimeout(function(){i=null,u&&!e.isMousePressed?a():f()},50)}),o.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!r.isOpen||i)return;i=setTimeout(function(){i=null,f()},50)},t),t.on("changeSession",f),t.on("input",f)}var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=this&&this.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=e("../lib/dom"),o=e("../lib/event"),u=e("../tooltip").Tooltip,a=e("../config").nls;t.GutterHandler=f;var l=function(e){function t(t){var n=e.call(this,t.container)||this;return n.editor=t,n}return r(t,e),t.prototype.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),u.prototype.setPosition.call(this,e,t)},Object.defineProperty(t,"annotationLabels",{get:function(){return{error:{singular:a("error"),plural:a("errors")},warning:{singular:a("warning"),plural:a("warnings")},info:{singular:a("information message"),plural:a("information messages")}}},enumerable:!1,configurable:!0}),t.prototype.showTooltip=function(e){var n=this.editor.renderer.$gutterLayer,r=n.$annotations[e],i;r?i={text:Array.from(r.text),type:Array.from(r.type)}:i={text:[],type:[]};var s=n.session.getFoldLine(e);if(s&&n.$showFoldedAnnotations){var o={error:[],warning:[],info:[]},u;for(var a=e+1;a<=s.end.row;a++){if(!n.$annotations[a])continue;for(var f=0;f ").concat(i.text[a]);h[i.type[a].replace("_fold","")].push(d)}var v=[].concat(h.error,h.warning,h.info).join("
");this.setHtml(v),this.$element.setAttribute("aria-live","polite"),this.isOpen||(this.setTheme(this.editor.renderer.theme),this.setClassName("ace_gutter-tooltip")),this.show(),this.editor._signal("showGutterTooltip",this)},t.prototype.hideTooltip=function(){this.$element.removeAttribute("aria-live"),this.hide(),this.editor._signal("hideGutterTooltip",this)},t.annotationsToSummaryString=function(e){var n,r,s=[],o=["error","warning","info"];try{for(var u=i(o),a=u.next();!a.done;a=u.next()){var f=a.value;if(!e[f].length)continue;var l=e[f].length===1?t.annotationLabels[f].singular:t.annotationLabels[f].plural;s.push("".concat(e[f].length," ").concat(l))}}catch(c){n={error:c}}finally{try{a&&!a.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}return s.join(", ")},t}(u);t.GutterTooltip=l}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=function(){function e(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1}return e.prototype.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},e.prototype.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},e.prototype.stop=function(){this.stopPropagation(),this.preventDefault()},e.prototype.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},e.prototype.getGutterRow=function(){var e=this.getDocumentPosition().row,t=this.editor.session.documentToScreenRow(e,0),n=this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row,0);return t-n},e.prototype.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},e.prototype.getButton=function(){return r.getButton(this.domEvent)},e.prototype.getShiftKey=function(){return this.domEvent.shiftKey},e.prototype.getAccelKey=function(){return i.isMac?this.domEvent.metaKey:this.domEvent.ctrlKey},e}();t.MouseEvent=s}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.moveCursorToPosition(e),S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.selection.fromOrientedRange(m),t.isFocused()&&!w&&t.$resetCursorStyle(),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("div");n.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",n.textContent="\u00a0";var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.on("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",t.container.appendChild(n),i.setDragImage&&i.setDragImage(n,0,0),setTimeout(function(){t.container.removeChild(n)}),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e),t),i.addListener(c,"dragend",this.onDragEnd.bind(e),t),i.addListener(c,"dragenter",this.onDragEnter.bind(e),t),i.addListener(c,"dragover",this.onDragOver.bind(e),t),i.addListener(c,"dragleave",this.onDragLeave.bind(e),t),i.addListener(c,"drop",this.onDrop.bind(e),t);var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./mouse_event").MouseEvent,i=e("../lib/event"),s=e("../lib/dom");t.addTouchListeners=function(e,t){function b(){var e=window.navigator&&window.navigator.clipboard,r=!1,i=function(){var n=t.getCopyText(),i=t.session.getUndoManager().hasUndo();y.replaceChild(s.buildDom(r?["span",!n&&["span",{"class":"ace_mobile-button",action:"selectall"},"Select All"],n&&["span",{"class":"ace_mobile-button",action:"copy"},"Copy"],n&&["span",{"class":"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{"class":"ace_mobile-button",action:"paste"},"Paste"],i&&["span",{"class":"ace_mobile-button",action:"undo"},"Undo"],["span",{"class":"ace_mobile-button",action:"find"},"Find"],["span",{"class":"ace_mobile-button",action:"openCommandPallete"},"Palette"]]:["span"]),y.firstChild)},o=function(n){var s=n.target.getAttribute("action");if(s=="more"||!r)return r=!r,i();if(s=="paste")e.readText().then(function(e){t.execCommand(s,e)});else if(s){if(s=="cut"||s=="copy")e?e.writeText(t.getCopyText()):document.execCommand("copy");t.execCommand(s)}y.firstChild.style.display="none",r=!1,s!="openCommandPallete"&&t.focus()};y=s.buildDom(["div",{"class":"ace_mobile-menu",ontouchstart:function(e){n="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{"class":"ace_mobile-button",action:"more"},"..."]],t.container)}function w(){y||b();var e=t.selection.cursor,n=t.renderer.textToScreenCoordinates(e.row,e.column),r=t.renderer.textToScreenCoordinates(0,0).pageX,i=t.renderer.scrollLeft,s=t.container.getBoundingClientRect();y.style.top=n.pageY-s.top-3+"px",n.pageX-s.left=2?t.selection.getLineRange(p.row):t.session.getBracketRange(p);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),n="wait"}function T(){h+=60,c=setInterval(function(){h--<=0&&(clearInterval(c),c=null),Math.abs(v)<.01&&(v=0),Math.abs(m)<.01&&(m=0),h<20&&(v=.9*v),h<20&&(m=.9*m);var e=t.session.getScrollTop();t.renderer.scrollBy(10*v,10*m),e==t.session.getScrollTop()&&(h=0)},10)}var n="scroll",o,u,a,f,l,c,h=0,p,d=0,v=0,m=0,g,y;i.addListener(e,"contextmenu",function(e){if(!g)return;var n=t.textInput.getElement();n.focus()},t),i.addListener(e,"touchstart",function(e){var i=e.touches;if(l||i.length>1){clearTimeout(l),l=null,a=-1,n="zoom";return}g=t.$mouseHandler.isMousePressed=!0;var s=t.renderer.layerConfig.lineHeight,c=t.renderer.layerConfig.lineHeight,y=e.timeStamp;f=y;var b=i[0],w=b.clientX,E=b.clientY;Math.abs(o-w)+Math.abs(u-E)>s&&(a=-1),o=e.clientX=w,u=e.clientY=E,v=m=0;var T=new r(e,t);p=T.getDocumentPosition();if(y-a<500&&i.length==1&&!h)d++,e.preventDefault(),e.button=0,x();else{d=0;var N=t.selection.cursor,C=t.selection.isEmpty()?N:t.selection.anchor,k=t.renderer.$cursorLayer.getPixelPosition(N,!0),L=t.renderer.$cursorLayer.getPixelPosition(C,!0),A=t.renderer.scroller.getBoundingClientRect(),O=t.renderer.layerConfig.offset,M=t.renderer.scrollLeft,_=function(e,t){return e/=c,t=t/s-.75,e*e+t*t};if(e.clientXP?"cursor":"anchor"),P<3.5?n="anchor":D<3.5?n="cursor":n="scroll",l=setTimeout(S,450)}a=y},t),i.addListener(e,"touchend",function(e){g=t.$mouseHandler.isMousePressed=!1,c&&clearInterval(c),n=="zoom"?(n="",h=0):l?(t.selection.moveToPosition(p),h=0,w()):n=="scroll"?(T(),E()):w(),clearTimeout(l),l=null},t),i.addListener(e,"touchmove",function(e){l&&(clearTimeout(l),l=null);var i=e.touches;if(i.length>1||n=="zoom")return;var s=i[0],a=o-s.clientX,c=u-s.clientY;if(n=="wait"){if(!(a*a+c*c>4))return e.preventDefault();n="cursor"}o=s.clientX,u=s.clientY,e.clientX=s.clientX,e.clientY=s.clientY;var h=e.timeStamp,p=h-f;f=h;if(n=="scroll"){var d=new r(e,t);d.speed=1,d.wheelX=a,d.wheelY=c,10*Math.abs(a)0)if(g==16){for(w=b;w-1){for(w=b;w=0;C--){if(r[C]!=N)break;t[C]=s}}}function I(e,t,n){if(o=e){u=i+1;while(u=e)u++;for(a=i,l=u-1;a=t.length||(o=n[r-1])!=b&&o!=w||(c=t[r+1])!=b&&c!=w)return E;return u&&(c=w),c==o?c:E;case k:o=r>0?n[r-1]:S;if(o==b&&r+10&&n[r-1]==b)return b;if(u)return E;p=r+1,h=t.length;while(p=1425&&d<=2303||d==64286;o=t[p];if(v&&(o==y||o==T))return y}if(r<1||(o=t[r-1])==S)return E;return n[r-1];case S:return u=!1,f=!0,s;case x:return l=!0,E;case O:case M:case D:case P:case _:u=!1;case H:return E}}function R(e){var t=e.charCodeAt(0),n=t>>8;return n==0?t>191?g:B[t]:n==5?/[\u0591-\u05f4]/.test(e)?y:g:n==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?A:/[\u0660-\u0669\u066b-\u066c]/.test(e)?w:t==1642?L:/[\u06f0-\u06f9]/.test(e)?b:T:n==32&&t<=8287?j[t&255]:n==254?t>=65136?T:E:E}function U(e){return e>="\u064b"&&e<="\u0655"}var r=["\u0621","\u0641"],i=["\u063a","\u064a"],s=0,o=0,u=!1,a=!1,f=!1,l=!1,c=!1,h=!1,p=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],d=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],v=0,m=1,g=0,y=1,b=2,w=3,E=4,S=5,x=6,T=7,N=8,C=9,k=10,L=11,A=12,O=13,M=14,_=15,D=16,P=17,H=18,B=[H,H,H,H,H,H,H,H,H,x,S,x,N,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,S,S,S,x,N,E,E,L,L,L,E,E,E,E,E,k,C,k,C,C,b,b,b,b,b,b,b,b,b,b,C,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,H,H,H,H,H,H,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,C,E,L,L,L,L,E,E,E,E,g,E,E,H,E,E,L,L,b,b,E,g,E,E,E,b,g,E,E,E,E,E],j=[N,N,N,N,N,N,N,N,N,N,N,H,H,H,g,y,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N,S,O,M,_,D,P,C,L,L,L,L,L,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,C,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N];t.L=g,t.R=y,t.EN=b,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="\u00b7",t.doBidiReorder=function(e,n,r){if(e.length<2)return{};var i=e.split(""),o=new Array(i.length),u=new Array(i.length),a=[];s=r?m:v,F(i,a,i.length,n);for(var f=0;fT&&n[f]0&&i[f-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(i[f])&&(a[f-1]=a[f]=t.R_H,f++);i[i.length-1]===t.DOT&&(a[i.length-1]=t.B),i[0]==="\u202b"&&(a[0]=t.RLE);for(var f=0;f=0&&(e=this.session.$docRowCache[n])}return e},e.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n,r=this.session.$getRowCacheIndex(t,this.currentRow);while(this.currentRow-e>0){n=this.session.$getRowCacheIndex(t,this.currentRow-e-1);if(n!==r)break;r=n,e++}}else e=this.currentRow;return e},e.prototype.updateRowLine=function(e,t){e===undefined&&(e=this.getDocumentRow());var n=e===this.session.getLength()-1,s=n?this.EOF:this.EOL;this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE;if(this.session.$useWrapMode){var o=this.session.$wrapData[e];o&&(t===undefined&&(t=this.getSplitIndex()),t>0&&o.length?(this.wrapIndent=o.indent,this.wrapOffset=this.wrapIndent*this.charWidths[r.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,i=r.getVisualFromLogicalIdx(n,this.bidiMap),s=this.bidiMap.bidiLevels,o=0;!this.session.getOverwrite()&&e<=t&&s[i]%2!==0&&i++;for(var u=0;ut&&s[i]%2===0&&(o+=this.charWidths[s[i]]),this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(o+=this.rtlLineOffset),o},e.prototype.getSelections=function(e,t){var n=this.bidiMap,r=n.bidiLevels,i,s=[],o=0,u=Math.min(e,t)-this.wrapIndent,a=Math.max(e,t)-this.wrapIndent,f=!1,l=!1,c=0;this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var h,p=0;p=u&&hn+s/2){n+=s;if(r===i.length-1){s=0;break}s=this.charWidths[i[++r]]}return r>0&&i[r-1]%2!==0&&i[r]%2===0?(e0&&i[r-1]%2===0&&i[r]%2!==0?t=1+(e>n?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===i.length-1&&s===0&&i[r-1]%2===0||!this.isRtlDir&&r===0&&i[r]%2!==0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&i[r-1]%2!==0&&s!==0&&r--,t=this.bidiMap.logicalFromVisual[r]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent},e}();t.BidiHandler=o}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),!t.$isEmpty&&!t.$silent&&t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.anchor.on("change",function(){t.$anchorChanged=!0,!t.$isEmpty&&!t.$silent&&t._emit("changeSelection")})};(function(){r.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},this.getCursor=function(){return this.lead.getPosition()},this.setAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},this.setSelectionAnchor=this.setAnchor,this.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionAnchor=this.getAnchor,this.getSelectionLead=function(){return this.lead.getPosition()},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(e,t){var n=t?e.end:e.start,r=t?e.start:e.end;this.$setSelection(n.row,n.column,r.row,r.column)},this.$setSelection=function(e,t,n,r){if(this.$silent)return;var i=this.$isEmpty,s=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(n,r),this.$isEmpty=!o.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||i!=this.$isEmpty||s)&&this._emit("changeSelection")},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,n){var r=e.column,i=e.column+t;return n<0&&(r=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(r,i).split(" ").length-1==t},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(e,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var i=this.session.getFoldAt(e,t,1);if(i){this.moveCursorTo(i.end.row,i.end.column);return}this.session.nonTokenRe.exec(r)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t));if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(s)&&(t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t=0,n,r=/\s/,i=this.session.tokenRe;i.lastIndex=0;if(this.session.tokenRe.exec(e))t=this.session.tokenRe.lastIndex;else{while((n=e[t])&&r.test(n))t++;if(t<1){i.lastIndex=0;while((n=e[t])&&!i.test(n)){i.lastIndex=0,t++;if(r.test(n)){if(t>2){t--;break}while((n=e[t])&&r.test(n))t++;if(t>2)break}}}}return i.lastIndex=0,t},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column),r;t===0&&(e!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(r=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(r/this.session.$bidiHandler.charWidths[0])):r=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);if(e!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var i=this.session.lineWidgets[this.lead.row];e<0?e-=i.rowsAbove||0:e>0&&(e+=i.rowCount-(i.rowsAbove||0))}var s=this.session.screenToDocumentPosition(n.row+e,n.column,r);e!==0&&t===0&&s.row===this.lead.row&&s.column===this.lead.column,this.moveCursorTo(s.row,s.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach()},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use strict";var r=e("./config"),i=2e3,s=function(){function e(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}}return e.prototype.$setMaxTokenCount=function(e){i=e|0},e.prototype.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;il){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;yi){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},e}();s.prototype.reportError=r.reportError,t.Tokenizer=s}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},e.prototype.getCurrentTokenRow=function(){return this.$row},e.prototype.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},e.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},e.prototype.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new r(this.$row,t,this.$row,t+e.value.length)},e}();t.TokenIterator=i}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","rparen","paren","punctuation.operator"],a=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],f,l={},c={'"':'"',"'":"'"},h=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},d=function(e){e=e||{},this.add("braces","insertion",function(t,n,r,i,s){var u=r.getCursorPosition(),a=i.doc.getLine(u.row);if(s=="{"){h(r);var l=r.getSelectionRange(),c=i.doc.getTextRange(l);if(c!==""&&c!=="{"&&r.getWrapBehavioursEnabled())return p(l,c,"{","}");if(d.isSaneInsertion(r,i))return/[\]\}\)]/.test(a[u.column])||r.inMultiSelectMode||e.braces?(d.recordAutoInsert(r,i,"}"),{text:"{}",selection:[1,1]}):(d.recordMaybeInsert(r,i,"{"),{text:"{",selection:[1,1]})}else if(s=="}"){h(r);var v=a.substring(u.column,u.column+1);if(v=="}"){var m=i.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(m!==null&&d.isAutoInsertedClosing(u,a,s))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(s=="\n"||s=="\r\n"){h(r);var g="";d.isMaybeInsertedClosing(u,a)&&(g=o.stringRepeat("}",f.maybeInsertedBrackets),d.clearMaybeInsertedClosing());var v=a.substring(u.column,u.column+1);if(v==="}"){var y=i.findMatchingBracket({row:u.row,column:u.column+1},"}");if(!y)return null;var b=this.$getIndent(i.getLine(y.row))}else{if(!g){d.clearMaybeInsertedClosing();return}var b=this.$getIndent(a)}var w=b+i.getTabString();return{text:"\n"+w+"\n"+b+g,selection:[1,w.length,1,w.length]}}d.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"(",")");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"[","]");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){var s=r.$mode.$quotes||c;if(i.length==1&&s[i]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;h(n);var o=i,u=n.getSelectionRange(),a=r.doc.getTextRange(u);if(a!==""&&(a.length!=1||!s[a])&&n.getWrapBehavioursEnabled())return p(u,a,o,o);if(!a){var f=n.getCursorPosition(),l=r.doc.getLine(f.row),d=l.substring(f.column-1,f.column),v=l.substring(f.column,f.column+1),m=r.getTokenAt(f.row,f.column),g=r.getTokenAt(f.row,f.column+1);if(d=="\\"&&m&&/escape/.test(m.type))return null;var y=m&&/string|escape/.test(m.type),b=!g||/string|escape/.test(g.type),w;if(v==o)w=y!==b,w&&/string\.end/.test(g.type)&&(w=!1);else{if(y&&!b)return null;if(y&&b)return null;var E=r.$mode.tokenRe;E.lastIndex=0;var S=E.test(d);E.lastIndex=0;var x=E.test(v),T=r.$mode.$pairQuotesAfter,N=T&&T[o]&&T[o].test(d);if(!N&&S||x)return null;if(v&&!/[\s;,.})\]\\]/.test(v))return null;var C=l[f.column-2];if(!(d!=o||C!=o&&!E.test(C)))return null;w=!0}return{text:w?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.$mode.$quotes||c,o=r.doc.getTextRange(i);if(!i.isMultiLine()&&s.hasOwnProperty(o)){h(n);var u=r.doc.getLine(i.start.row),a=u.substring(i.start.column+1,i.start.column+2);if(a==o)return i.end.column++,i}}),e.closeDocComment!==!1&&this.add("doc comment end","insertion",function(e,t,n,r,i){if(e==="doc-start"&&(i==="\n"||i==="\r\n")&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=r.doc.getLine(s.row+1),a=this.$getIndent(o);if(/\s*\*/.test(u))return/^\s*\*/.test(o)?{text:i+a+"* ",selection:[1,3+a.length,1,3+a.length]}:{text:i+a+" * ",selection:[1,3+a.length,1,3+a.length]};if(/\/\*\*/.test(o.substring(0,s.column)))return{text:i+a+" * "+i+" "+a+"*/",selection:[1,4+a.length,1,4+a.length]}}})};d.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){if(/[)}\]]/.test(e.session.getLine(n.row)[n.column]))return!0;var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},d.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},d.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},d.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},d.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},d.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},d.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},d.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(d,i),t.CstyleBehaviour=d}),ace.define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";var r=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],i=0,s=[];for(var o=0;o2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(ne.length&&(E=e.length)}),u==Infinity&&(u=E,s=!1,o=!1),l&&u%f!=0&&(u=Math.floor(u/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new f(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,a=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new l(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new f(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new l(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);a.start.row==c&&(a.start.column+=h),a.end.row==c&&(a.end.column+=h),t.selection.fromOrientedRange(a)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)if(e[t]){var n=e[t],i=n.prototype.$id,s=r.$modes[i];s||(r.$modes[i]=s=new n),r.$modes[t]||(r.$modes[t]=s),this.$embeds.push(t),this.$modes[t]=s}var o=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var t=0;t=0&&t.row=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";function o(e,t,n){var r=n?e.column<=t.column:e.columnthis.row)return;var t=u(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)},e.prototype.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();s.prototype.$insertRight=!1,r.implement(s.prototype,i),t.Anchor=s}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(){function e(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)}return e.prototype.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e||"")},e.prototype.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},e.prototype.createAnchor=function(e,t){return new u(this,e,t)},e.prototype.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},e.prototype.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},e.prototype.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},e.prototype.getNewLineMode=function(){return this.$newLineMode},e.prototype.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},e.prototype.getLine=function(e){return this.$lines[e]||""},e.prototype.getLines=function(e,t){return this.$lines.slice(e,t+1)},e.prototype.getAllLines=function(){return this.getLines(0,this.getLength())},e.prototype.getLength=function(){return this.$lines.length},e.prototype.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},e.prototype.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},e.prototype.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},e.prototype.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},e.prototype.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},e.prototype.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},e.prototype.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},e.prototype.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e0,r=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;(e.action=="remove"&&e.start.row20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,r==-1&&(r=t),s<=r&&n.fireUpdateEvent(s,r)}}return e.prototype.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},e.prototype.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},e.prototype.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},e.prototype.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},e.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},e.prototype.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action=="remove")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},e.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},e.prototype.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},e.prototype.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},e.prototype.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens},e.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},e}();r.implement(s.prototype,i),t.BackgroundTokenizer=s}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./range").Range,s=function(){function e(e,t,n){n===void 0&&(n="text"),this.setRegexp(e),this.clazz=t,this.type=n}return e.prototype.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},e.prototype.update=function(e,t,n,s){if(!this.regExp)return;var o=s.firstRow,u=s.lastRow,a={};for(var f=o;f<=u;f++){var l=this.cache[f];l==null&&(l=r.getMatchOffsets(n.getLine(f),this.regExp),l.length>this.MAX_RANGES&&(l=l.slice(0,this.MAX_RANGES)),l=l.map(function(e){return new i(f,e.offset,f,e.offset+e.length)}),this.cache[f]=l.length?l:"");for(var c=l.length;c--;){var h=l[c].toScreenRange(n),p=h.toString();if(a[p])continue;a[p]=!0,t.drawSingleLineMarker(e,h,this.clazz,s)}}},e}();s.prototype.MAX_RANGES=500,t.SearchHighlight=s}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){function e(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}return e.prototype.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},e.prototype.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},e.prototype.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},e.prototype.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},e.prototype.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},e.prototype.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},e.prototype.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},e.prototype.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s=0},e.prototype.containsPoint=function(e){return this.pointIndex(e)>=0},e.prototype.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},e.prototype.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row=r)break}if(e.action=="insert"){var f=i-r,l=-t.column+n.column;for(;or)break;a.start.row==r&&a.start.column>=t.column&&(a.start.column==t.column&&this.$bias<=0||(a.start.column+=l,a.start.row+=f));if(a.end.row==r&&a.end.column>=t.column){if(a.end.column==t.column&&this.$bias<0)continue;a.end.column==t.column&&l>0&&oa.start.column&&a.end.column==s[o+1].start.column&&(a.end.column-=l),a.end.column+=l,a.end.row+=f}}}else{var f=r-i,l=t.column-n.column;for(;oi)break;if(a.end.rowt.column)a.end.column=t.column,a.end.row=t.row}else a.end.column+=l,a.end.row+=f;else a.end.row>i&&(a.end.row+=f);if(a.start.rowt.column)a.start.column=t.column,a.start.row=t.row}else a.start.column+=l,a.start.row+=f;else a.start.row>i&&(a.start.row+=f)}}if(f!=0&&o=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i=t){u=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column,c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),o.collapseChildren||p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;if(e==null)n=new r(0,0,this.getLength(),0),t==null&&(t=!0);else if(typeof e=="number")n=new r(e,0,e,this.getLine(e).length);else if("row"in e)n=r.fromPoints(e,e);else{if(Array.isArray(e))return i=[],e.forEach(function(e){i=i.concat(this.unfold(e))},this),i;n=e}i=this.getFoldsInRangeList(n);var s=i;while(i.length==1&&r.comparePoints(i[0].start,n.start)<0&&r.comparePoints(i[0].end,n.end)>0)this.expandFolds(i),i=this.getFoldsInRangeList(n);t!=0?this.removeFolds(i):this.expandFolds(i);if(s.length)return s},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(tl)break}while(s&&a.test(s.type)&&!/^comment.start/.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn(),/^comment.end/.test(s.type)||(f.end.column+=s.value.length-2),f}},this.foldAll=function(e,t,n,r){n==undefined&&(n=1e5);var i=this.foldWidgets;if(!i)return;t=t||this.getLength(),e=e||0;for(var s=e;s=e&&(s=o.end.row,o.collapseChildren=n,this.addFold("...",o))}},this.foldToLevel=function(e){this.foldAll();while(e-->0)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,function(t){var n=e.getTokens(t);for(var r=0;r=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t instanceof u&&(t=t.domEvent);var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range))return this.removeFold(s),s}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action=="remove")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator,u=e("../mouse/mouse_event").MouseEvent;t.Folding=a}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.getMatchingBracketRanges=function(e,t){var n=this.getLine(e.row),r=/([\(\[\{])|([\)\]\}])/,s=!t&&n.charAt(e.column-1),o=s&&s.match(r);o||(s=(t===undefined||t)&&n.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(r));if(!o)return null;var u=new i(e.row,e.column-1,e.row,e.column),a=o[1]?this.$findClosingBracket(o[1],e):this.$findOpeningBracket(o[2],e);if(!a)return[u];var f=new i(a.row,a.column,a.row,a.column+1);return[u,f]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a"?r=!0:t.type.indexOf("tag-name")!==-1&&(n=!0));while(t&&!n);return t},this.$findClosingTag=function(e,t){var n,r=t.value,s=t.value,o=0,u=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);t=e.stepForward();var a=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length),f=!1;do{n=t,t=e.stepForward();if(t){if(t.value===">"&&!f){var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);f=!0}if(t.type.indexOf("tag-name")!==-1){r=t.value;if(s===r)if(n.value==="<")o++;else if(n.value==="")return;var p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}}else if(s===r&&t.value==="/>"){o--;if(o<0)var c=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+2),h=c,p=h,l=new i(a.end.row,a.end.column,a.end.row,a.end.column+1)}}}while(t&&o>=0);if(u&&l&&c&&p&&a&&h)return{openTag:new i(u.start.row,u.start.column,l.end.row,l.end.column),closeTag:new i(c.start.row,c.start.column,p.end.row,p.end.column),openTagName:a,closeTagName:h}},this.$findOpeningTag=function(e,t){var n=e.getCurrentToken(),r=t.value,s=0,o=e.getCurrentTokenRow(),u=e.getCurrentTokenColumn(),a=u+2,f=new i(o,u,o,a);e.stepForward();var l=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+t.value.length);t=e.stepForward();if(!t||t.value!==">")return;var c=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);e.stepBackward(),e.stepBackward();do{t=n,o=e.getCurrentTokenRow(),u=e.getCurrentTokenColumn(),a=u+t.value.length,n=e.stepBackward();if(t)if(t.type.indexOf("tag-name")!==-1){if(r===t.value)if(n.value==="<"){s++;if(s>0){var h=new i(o,u,o,a),p=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1);do t=e.stepForward();while(t&&t.value!==">");var d=new i(e.getCurrentTokenRow(),e.getCurrentTokenColumn(),e.getCurrentTokenRow(),e.getCurrentTokenColumn()+1)}}else n.value===""){var v=0,m=n;while(m){if(m.type.indexOf("tag-name")!==-1&&m.value===r){s--;break}if(m.value==="<")break;m=e.stepBackward(),v++}for(var g=0;g=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./bidihandler").BidiHandler,o=e("./config"),u=e("./lib/event_emitter").EventEmitter,a=e("./selection").Selection,f=e("./mode/text").Mode,l=e("./range").Range,c=e("./document").Document,h=e("./background_tokenizer").BackgroundTokenizer,p=e("./search_highlight").SearchHighlight,d=function(){function e(t,n){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++e.$uid,this.$foldData.toString=function(){return this.join("\n")},this.bgTokenizer=new h((new f).getTokenizer(),this);var r=this;this.bgTokenizer.on("update",function(e){r._signal("tokenizerUpdate",e)}),this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof t!="object"||!t.getLine)t=new c(t);this.setDocument(t),this.selection=new a(this),this.$bidiHandler=new s(this),o.resetOptions(this),this.setMode(n),o._signal("session",this),this.destroyed=!1}return e.prototype.setDocument=function(e){this.doc&&this.doc.off("change",this.$onChange),this.doc=e,e.on("change",this.$onChange,!0),this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},e.prototype.getDocument=function(){return this.doc},e.prototype.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},e.prototype.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},e.prototype.setUndoManager=function(e){this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},e.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},e.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},e.prototype.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):" "},e.prototype.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},e.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},e.prototype.setTabSize=function(e){this.setOption("tabSize",e)},e.prototype.getTabSize=function(){return this.$tabSize},e.prototype.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},e.prototype.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},e.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},e.prototype.setOverwrite=function(e){this.setOption("overwrite",e)},e.prototype.getOverwrite=function(){return this.$overwrite},e.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},e.prototype.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},e.prototype.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},e.prototype.getBreakpoints=function(){return this.$breakpoints},e.prototype.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(oe&&(e=t.screenWidth)}),this.lineWidgetWidth=e},e.prototype.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;ao){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},e.prototype.getLine=function(e){return this.doc.getLine(e)},e.prototype.getLines=function(e,t){return this.doc.getLines(e,t)},e.prototype.getLength=function(){return this.doc.getLength()},e.prototype.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},e.prototype.insert=function(e,t){return this.doc.insert(e,t)},e.prototype.remove=function(e){return this.doc.remove(e)},e.prototype.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},e.prototype.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=e.length-1;n!=-1;n--){var r=e[n];r.action=="insert"||r.action=="remove"?this.doc.revertDelta(r):r.folds&&this.addFolds(r.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1},e.prototype.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;for(var n=0;ne.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,f=s.start,o=f.row-a.row,u=f.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},e.prototype.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},e.prototype.outdentRows=function(e){var t=e.collapseRows(),n=new l(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new l(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},e.prototype.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},e.prototype.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},e.prototype.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},e.prototype.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},e.prototype.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},e.prototype.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},e.prototype.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},e.prototype.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},e.prototype.getUseWrapMode=function(){return this.$useWrapMode},e.prototype.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode")},e.prototype.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},e.prototype.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},e.prototype.getWrapLimit=function(){return this.$wrapLimit},e.prototype.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},e.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},e.prototype.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n==="remove"){this[t?"$wrapData":"$rowLengthCache"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n==="remove"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},e.prototype.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},e.prototype.$updateWrapData=function(e,t){var n=this.doc.getAllLines(),r=this.getTabSize(),i=this.$wrapData,s=this.$wrapLimit,o,u,a=e;t=Math.min(t,n.length-1);while(a<=t)u=this.getFoldLine(a,u),u?(o=[],u.walk(function(e,t,r,i){var s;if(e!=null){s=this.$getDisplayTokens(e,o.length),s[0]=g;for(var u=1;ut-h){var p=s+t-h;if(e[p-1]>=w&&e[p]>=w){c(p);continue}if(e[p]==g||e[p]==y){for(p;p!=s-1;p--)if(e[p]==g)break;if(p>s){c(p);continue}p=s+t;for(p;p>2)),s-1);while(p>d&&e[p]d&&e[p]d&&e[p]==b)p--}else while(p>d&&e[p]d){c(++p);continue}p=s+t,e[p]==m&&p--,c(p-h)}return r},e.prototype.$getDisplayTokens=function(e,t){var n=[],r;t=t||0;for(var i=0;i39&&s<48||s>57&&s<64?n.push(b):s>=4352&&x(s)?n.push(v,m):n.push(v)}return n},e.prototype.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i=4352&&x(r)?n+=2:n+=1;if(n>t)break}return[n,i]},e.prototype.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),!this.$useWrapMode||!this.$wrapData[e]?t:this.$wrapData[e].length+t},e.prototype.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},e.prototype.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0)var u=f[l],i=this.$docRowCache[l],h=e>f[c-1];else var h=!c;var p=this.getLength()-1,d=this.getNextFoldLine(i),v=d?d.start.row:Infinity;while(u<=e){a=this.getRowLength(i);if(u+a>e||i>=p)break;u+=a,i++,i>v&&(i=d.end.row+1,d=this.getNextFoldLine(i,d),v=d?d.start.row:Infinity),h&&(this.$docRowCache.push(i),this.$screenRowCache.push(u))}if(d&&d.start.row<=i)r=this.getFoldDisplayLine(d),i=d.start.row;else{if(u+a<=e||i>p)return{row:p,column:this.getLine(p).length};r=this.getLine(i),d=null}var m=0,g=Math.floor(e-u);if(this.$useWrapMode){var y=this.$wrapData[i];y&&(o=y[g],g>0&&y.length&&(m=y.indent,s=y[g-1]||y[y.length-1],r=r.substring(s)))}return n!==undefined&&this.$bidiHandler.isBidiRow(u+g,i,g)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(r,t-m)[1],this.$useWrapMode&&s>=o&&(s=o-1),d?d.idxToPosition(s):{row:i,column:s}},e.prototype.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return this.lineWidgets&&this.lineWidgets[u]&&this.lineWidgets[u].rowsAbove&&(r+=this.lineWidgets[u].rowsAbove),{row:r,column:v+this.$getStringScreenWidth(d)[0]}},e.prototype.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},e.prototype.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},e.prototype.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;ro&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},e.prototype.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;sn)break}return[r,s]}},e.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},e}();d.$uid=0,d.prototype.$modes=o.$modes,d.prototype.getValue=d.prototype.toString,d.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},d.prototype.$overwrite=!1,d.prototype.$mode=null,d.prototype.$modeId=null,d.prototype.$scrollTop=0,d.prototype.$scrollLeft=0,d.prototype.$wrapLimit=80,d.prototype.$useWrapMode=!1,d.prototype.$wrapLimitRange={min:null,max:null},d.prototype.lineWidgets=null,d.prototype.isFullWidth=x,r.implement(d.prototype,u);var v=1,m=2,g=3,y=4,b=9,w=10,E=11,S=12;e("./edit_session/folding").Folding.call(d.prototype),e("./edit_session/bracket_match").BracketMatch.call(d.prototype),o.defineOptions(d.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){e=parseInt(e),e>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=d}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";function u(e,t){function n(e){return/\w/.test(e)||t.regExp?"\\b":""}return n(e[0])+e+n(e[e.length-1])}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){function e(){this.$options={}}return e.prototype.set=function(e){return i.mixin(this.$options,e),this},e.prototype.getOptions=function(){return r.copyObject(this.$options)},e.prototype.setOptions=function(e){this.$options=e},e.prototype.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i,o){return r=new s(e,n,i,o),n==o&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start)?(r=null,!1):!0}),r},e.prototype.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;hv)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;gE&&o[h].end.row==S)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g=u;n--)if(c(n,Number.MAX_VALUE,e))return;if(t.wrap==0)return;for(n=a,u=o.row;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return};else var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n+=1;n<=a;n++)if(c(n,0,e))return;if(t.wrap==0)return;for(n=u,a=o.row;n<=a;n++)if(c(n,0,e))return};if(t.$isMultiLine)var l=n.length,c=function(t,i,s){var o=r?t-l+1:t;if(o<0||o+l>e.getLength())return;var u=e.getLine(o),a=u.search(n[0]);if(!r&&ai)return;if(s(o,a,o+l-1,c))return!0};else if(r)var c=function(t,r,i){var s=e.getLine(t),o=[],u,a=0;n.lastIndex=0;while(u=n.exec(s)){var f=u[0].length;a=u.index;if(!f){if(a>=s.length)break;n.lastIndex=a+=1}if(u.index+f>r)break;o.push(u.index,f)}for(var l=o.length-1;l>=0;l-=2){var c=o[l-1],f=o[l];if(i(t,c,t,c+f))return!0}};else var c=function(t,r,i){var s=e.getLine(t),o,u;n.lastIndex=r;while(u=n.exec(s)){var a=u[0].length;o=u.index;if(i(t,o,t,o+a))return!0;if(!a){n.lastIndex=o+=1;if(o>=s.length)return!1}}};return{forEach:f}},e}();t.Search=o}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function a(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e("../lib/keys"),s=e("../lib/useragent"),o=i.KEY_MODS,u=function(){function e(e,t){this.$init(e,t,!1)}return e.prototype.$init=function(e,t,n){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=n},e.prototype.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},e.prototype.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},e.prototype.bindKey=function(e,t,n){typeof e=="object"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=o[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var s=this.parseKeys(e),u=o[s.hashId]+s.key;this._addCommandToBinding(r+u,t,n)},this)},e.prototype._addCommandToBinding=function(e,t,n){var r=this.commandKeyBinding,i;if(!t)delete r[e];else if(!r[e]||this.$singleCommand)r[e]=t;else{Array.isArray(r[e])?(i=r[e].indexOf(t))!=-1&&r[e].splice(i,1):r[e]=[r[e]],typeof n!="number"&&(n=a(t));var s=r[e];for(i=0;in)break}s.splice(i,0,t)}},e.prototype.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},e.prototype.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},e.prototype.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},e.prototype._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},e.prototype.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),r=i[n];if(i.FUNCTION_KEYS[r])n=i.FUNCTION_KEYS[r].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=i.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},e.prototype.findKeyCommand=function(e,t){var n=o[e]+t;return this.commandKeyBinding[n]},e.prototype.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=o[t]+n,s=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,s=this.commandKeyBinding[e.$keyChain]||s);if(s)if(s=="chainKeys"||s[s.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=""}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:s}},e.prototype.getStatusText=function(e,t){return t.$keyChain||""},e}(),f=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.$singleCommand=!0,r}return r(t,e),t}(u);f.call=function(e,t,n){u.prototype.$init.call(e,t,n,!0)},u.call=function(e,t,n){u.prototype.$init.call(e,t,n,!1)},t.HashHandler=f,t.MultiHashHandler=u}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,u=function(e){function t(t,n){var r=e.call(this,n,t)||this;return r.byName=r.commands,r.setDefaultHandler("exec",function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)}),r}return r(t,e),t.prototype.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(this.$checkCommandState!=0&&e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},t.prototype.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},t.prototype.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})},t}(s);i.implement(u.prototype,o),t.CommandManager=u}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:o("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:o("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:o("Ctrl-L","Command-L"),exec:function(e,t){typeof t=="number"&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:o("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:o("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:o("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:o("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:o("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:o("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:o("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:o("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:o("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty(),n=t?e.selection.getLineRange():e.selection.getRange();e._emit("cut",n),n.isEmpty()||e.session.remove(n),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:o("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:o("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:o("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:o("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:o(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:o("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;ot[n].column&&n++,s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},e.prototype.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},e.prototype.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},e.prototype.addLineWidget=function(e){this.$registerLineWidget(e),e.session=this.session;if(!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=r.createElement("div"),e.el.innerHTML=e.html),e.text&&!e.el&&(e.el=r.createElement("div"),e.el.textContent=e.text),e.el&&(r.addCssClass(e.el,"ace_lineWidgetContainer"),e.className&&r.addCssClass(e.el,e.className),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight==null&&(e.pixelHeight=e.el.offsetHeight)),e.rowCount==null&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var n=this.session.getFoldAt(e.row,0);e.$fold=n;if(n){var i=this.session.lineWidgets;e.row==n.end.row&&!i[n.start.row]?i[n.start.row]=e:e.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},e.prototype.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},e.prototype.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},e.prototype.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},e.prototype.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}},e}();t.LineWidgets=i}),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../mouse/default_gutter_handler").GutterTooltip,s=function(){function e(e){this.editor=e,this.gutterLayer=e.renderer.$gutterLayer,this.element=e.renderer.$gutter,this.lines=e.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new i(this.editor)}return e.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},e.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},e.prototype.$onGutterKeyDown=function(e){if(this.annotationTooltip.isOpen){e.preventDefault(),e.keyCode===r.escape&&this.annotationTooltip.hideTooltip();return}if(e.target===this.element){if(e.keyCode!=r["enter"])return;e.preventDefault();var t=this.editor.getCursorPosition().row;this.editor.isRowVisible(t)||this.editor.scrollToLine(t,!0,!0),setTimeout(function(){var e=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),t=this.$findNearestFoldWidget(e),n=this.$findNearestAnnotation(e);if(t===null&&n===null)return;if(t===null&&n!==null){this.activeRowIndex=n,this.activeLane="annotation",this.$focusAnnotation(this.activeRowIndex);return}if(t!==null&&n===null){this.activeRowIndex=t,this.activeLane="fold",this.$focusFoldWidget(this.activeRowIndex);return}if(Math.abs(n-e)0||e+t=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},e.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;var t=0;while(e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},e.prototype.$focusFoldWidget=function(e){if(e==null)return;var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()},e.prototype.$focusAnnotation=function(e){if(e==null)return;var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()},e.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},e.prototype.$moveFoldWidgetUp=function(){var e=this.activeRowIndex;while(e>0){e--;if(this.$isFoldWidgetVisible(e)){this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=e,this.$focusFoldWidget(this.activeRowIndex);return}}return},e.prototype.$moveFoldWidgetDown=function(){var e=this.activeRowIndex;while(e0){e--;if(this.$isAnnotationVisible(e)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,this.$focusAnnotation(this.activeRowIndex);return}}return},e.prototype.$moveAnnotationDown=function(){var e=this.activeRowIndex;while(e=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},i=e("./lib/oop"),s=e("./lib/dom"),o=e("./lib/lang"),u=e("./lib/useragent"),a=e("./keyboard/textinput").TextInput,f=e("./mouse/mouse_handler").MouseHandler,l=e("./mouse/fold_handler").FoldHandler,c=e("./keyboard/keybinding").KeyBinding,h=e("./edit_session").EditSession,p=e("./search").Search,d=e("./range").Range,v=e("./lib/event_emitter").EventEmitter,m=e("./commands/command_manager").CommandManager,g=e("./commands/default_commands").commands,y=e("./config"),b=e("./token_iterator").TokenIterator,w=e("./line_widgets").LineWidgets,E=e("./keyboard/gutter_handler").GutterKeyboardHandler,S=e("./config").nls,x=e("./clipboard"),T=e("./lib/keys"),N=function(){function e(t,n,r){this.$toDestroy=[];var i=t.getContainerElement();this.container=i,this.renderer=t,this.id="editor"+ ++e.$uid,this.commands=new m(u.isMac?"mac":"win",g),typeof document=="object"&&(this.textInput=new a(t.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new f(this),new l(this)),this.keyBinding=new c(this),this.$search=(new p).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=o.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(n||r&&r.session||new h("")),y.resetOptions(this),r&&this.setOptions(r),y._signal("editor",this)}return e.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=o.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},e.prototype.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},e.prototype.endOperation=function(e){if(this.curOp&&this.session){if(e&&e.returnValue===!1||!this.session)return this.curOp=null;if(e==1&&this.curOp.command&&this.curOp.command.name=="mouse")return;this._signal("beforeEndOperation");if(!this.curOp)return;var t=this.curOp.command,n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}var s=this.selection.toJSON();this.curOp.selectionAfter=s,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(s),this.prevOp=this.curOp,this.curOp=null}},e.prototype.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},e.prototype.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"&&e!="ace"){this.$keybindingId=e;var n=this;y.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},e.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},e.prototype.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&!e.destroyed&&e.bgTokenizer.scheduleStart()},e.prototype.getSession=function(){return this.session},e.prototype.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},e.prototype.getValue=function(){return this.session.getValue()},e.prototype.getSelection=function(){return this.selection},e.prototype.resize=function(e){this.renderer.onResize(e)},e.prototype.setTheme=function(e,t){this.renderer.setTheme(e,t)},e.prototype.getTheme=function(){return this.renderer.getTheme()},e.prototype.setStyle=function(e){this.renderer.setStyle(e)},e.prototype.unsetStyle=function(e){this.renderer.unsetStyle(e)},e.prototype.getFontSize=function(){return this.getOption("fontSize")||s.computedStyle(this.container).fontSize},e.prototype.setFontSize=function(e){this.setOption("fontSize",e)},e.prototype.$highlightBrackets=function(){if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||t.destroyed)return;t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach(function(e){t.removeMarker(e)}),t.$bracketHighlight=null);var n=e.getCursorPosition(),r=e.getKeyboardHandler(),i=r&&r.$getDirectionForHighlight&&r.$getDirectionForHighlight(e),s=t.getMatchingBracketRanges(n,i);if(!s){var o=new b(t,n.row,n.column),u=o.getCurrentToken();if(u&&/\b(?:tag-open|tag-name)/.test(u.type)){var a=t.getMatchingTags(n);a&&(s=[a.openTagName,a.closeTagName])}}!s&&t.$mode.getMatching&&(s=t.$mode.getMatching(e.session));if(!s){e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide();return}var f="ace_bracket";Array.isArray(s)?s.length==1&&(f="ace_error_bracket"):s=[s],s.length==2&&(d.comparePoints(s[0].end,s[1].start)==0?s=[d.fromPoints(s[0].start,s[1].end)]:d.comparePoints(s[0].start,s[1].end)==0&&(s=[d.fromPoints(s[1].start,s[0].end)])),t.$bracketHighlight={ranges:s,markerIds:s.map(function(e){return t.addMarker(e,f,"text")})},e.getHighlightIndentGuides()&&e.renderer.$textLayer.$highlightIndentGuide()},50)},e.prototype.focus=function(){this.textInput.focus()},e.prototype.isFocused=function(){return this.textInput.isFocused()},e.prototype.blur=function(){this.textInput.blur()},e.prototype.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e)},e.prototype.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e)},e.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},e.prototype.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange()},e.prototype.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},e.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},e.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},e.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},e.prototype.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(t=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new d(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},e.prototype.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},e.prototype.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column,r=t.end.column,i=e.getLine(t.start.row),s=i.substring(n,r);if(s.length>5e3||!/[\w\d]/.test(s))return;var o=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:s}),u=i.substring(n-1,r+1);if(!o.test(u))return;return o},e.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},e.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},e.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},e.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},e.prototype.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},e.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},e.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},e.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},e.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},e.prototype.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),n=!1;if(!e&&this.$copyWithEmptySelection){n=!0;var r=this.selection.getAllRanges();for(var i=0;iu.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e);n.insert(i,e),s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new d(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new d(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(this.$enableAutoIndent){if(n.getDocument().isNewLine(e)){var h=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},h)}c&&r.autoOutdent(l,n,i.row)}},e.prototype.autoIndent=function(){var e=this.session,t=e.getMode(),n,r;if(this.selection.isEmpty())n=0,r=e.doc.getLength()-1;else{var i=this.getSelectionRange();n=i.start.row,r=i.end.row}var s="",o="",u="",a,f,l,c=e.getTabString();for(var h=n;h<=r;h++)h>0&&(s=e.getState(h-1),o=e.getLine(h-1),u=t.getNextLineIndent(s,o,c)),a=e.getLine(h),f=t.$getIndent(a),u!==f&&(f.length>0&&(l=new d(h,0,h,f.length),e.remove(l)),u.length>0&&e.insert({row:h,column:0},u)),t.autoOutdent(s,e,h)},e.prototype.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var n=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(n):n(),this.endOperation()},e.prototype.applyComposition=function(e,t){if(t.extendLeft||t.extendRight){var n=this.selection.getRange();n.start.column-=t.extendLeft,n.end.column+=t.extendRight,n.start.column<0&&(n.start.row--,n.start.column+=this.session.getLine(n.start.row).length+1),this.selection.setRange(n),!e&&!n.isEmpty()&&this.remove()}(e||!this.selection.isEmpty())&&this.insert(e,!0);if(t.restoreStart||t.restoreEnd){var n=this.selection.getRange();n.start.column-=t.restoreStart,n.end.column-=t.restoreEnd,this.selection.setRange(n)}},e.prototype.onCommandKey=function(e,t,n){return this.keyBinding.onCommandKey(e,t,n)},e.prototype.setOverwrite=function(e){this.session.setOverwrite(e)},e.prototype.getOverwrite=function(){return this.session.getOverwrite()},e.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},e.prototype.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},e.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},e.prototype.setDragDelay=function(e){this.setOption("dragDelay",e)},e.prototype.getDragDelay=function(){return this.getOption("dragDelay")},e.prototype.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},e.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},e.prototype.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},e.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},e.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},e.prototype.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},e.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},e.prototype.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},e.prototype.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},e.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},e.prototype.setHighlightIndentGuides=function(e){this.renderer.setHighlightIndentGuides(e)},e.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},e.prototype.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},e.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},e.prototype.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},e.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},e.prototype.setReadOnly=function(e){this.setOption("readOnly",e)},e.prototype.getReadOnly=function(){return this.getOption("readOnly")},e.prototype.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},e.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},e.prototype.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},e.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},e.prototype.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},e.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},e.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},e.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},e.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},e.prototype.setGhostText=function(e,t){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(e,t)},e.prototype.removeGhostText=function(){if(!this.session.widgetManager)return;this.renderer.removeGhostText()},e.prototype.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;tt.toLowerCase()?1:0});var i=new d(0,0,0,0);for(var r=e.first;r<=e.last;r++){var s=t.getLine(r);i.start.row=r,i.end.row=r,i.end.column=s.length,t.replace(i,n[r-e.first])}},e.prototype.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},e.prototype.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},e.prototype.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},e.prototype.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new d(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n=u&&s<=a&&(n=t,f.selection.clearSelection(),f.moveCursorTo(e,u+r),f.selection.selectTo(e,a+r)),u=a});var l=this.$toggleWordPairs,c;for(var h=0;h=a&&u<=f&&p.match(/((?:https?|ftp):\/\/[\S]+)/)){l=p.replace(/[\s:.,'";}\]]+$/,"");break}a=f}}catch(d){n={error:d}}finally{try{h&&!h.done&&(i=c.return)&&i.call(c)}finally{if(n)throw n.error}}return l},e.prototype.openLink=function(){var e=this.selection.getCursor(),t=this.findLinkAt(e.row,e.column);return t&&window.open(t,"_blank"),t!=null},e.prototype.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},e.prototype.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},e.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},e.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},e.prototype.moveText=function(e,t,n){return this.session.moveText(e,t,n)},e.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},e.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},e.prototype.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;lp+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},e.prototype.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},e.prototype.onCompositionStart=function(e){this.renderer.showComposition(e)},e.prototype.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},e.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},e.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},e.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},e.prototype.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},e.prototype.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},e.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},e.prototype.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection());var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},e.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},e.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},e.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},e.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},e.prototype.scrollPageDown=function(){this.$moveByPage(1)},e.prototype.scrollPageUp=function(){this.$moveByPage(-1)},e.prototype.scrollToRow=function(e){this.renderer.scrollToRow(e)},e.prototype.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},e.prototype.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},e.prototype.getCursorPosition=function(){return this.selection.getCursor()},e.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},e.prototype.getSelectionRange=function(){return this.selection.getRange()},e.prototype.selectAll=function(){this.selection.selectAll()},e.prototype.clearSelection=function(){this.selection.clearSelection()},e.prototype.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},e.prototype.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},e.prototype.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new b(this.session,n.row,n.column),i=r.getCurrentToken(),s=0;i&&i.type.indexOf("tag-name")!==-1&&(i=r.stepBackward());var o=i||r.stepForward();if(!o)return;var u,a=!1,f={},l=n.column-o.start,c,h={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g))for(;l1?f[o.value]++:i.value==="=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),r},e.prototype.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},e.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},e.prototype.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&i.mixin(t,e);var r=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(r)||this.$search.$options.needle,e||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?r.start=r.end:r.end=r.start,this.selection.setRange(r)},e.prototype.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},e.prototype.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},e.prototype.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},e.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},e.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(e){e.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},e.prototype.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.topwindow.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",u),this.renderer.off("beforeRender",o)}},e.prototype.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",s.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))},e.prototype.prompt=function(e,t,n){var r=this;y.loadModule("ace/ext/prompt",function(i){i.prompt(r,e,t,n)})},e}();N.$uid=0,N.prototype.curOp=null,N.prototype.prevOp={},N.prototype.$mergeableCommands=["backspace","del","insertstring"],N.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],i.implement(N.prototype,v),y.defineOptions(N.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?C.attach(this):C.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?C.attach(this):C.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),s.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!e&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),s.addCssClass(this.container,"ace_hasPlaceholder");var t=s.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(e){var t={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(e){e.blur(),e.renderer.scroller.focus()},readOnly:!0},n=function(e){if(e.target==this.renderer.scroller&&e.keyCode===T.enter){e.preventDefault();var t=this.getCursorPosition().row;this.isRowVisible(t)||this.scrollToLine(t,!0,!0),this.focus()}},r;e?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",S("editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",S("Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",n.bind(this)),this.commands.addCommand(t),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",S("editor")),this.renderer.$gutter.setAttribute("aria-label",S("Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),r||(r=new E(this)),r.addListener()):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",n.bind(this)),this.commands.removeCommand(t),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),r&&r.removeListener())},initialValue:!1},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var C={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"\u00b7":""))+""},getWidth:function(e,t,n){return Math.max(t.toString().length,(n.lastRow+1).toString().length,2)*n.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=N}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){for(var n=t;n--;){var r=e[n];if(r&&!r[0].ignore){while(n0){a.row+=i,a.column+=a.row==r.row?s:0;continue}!t&&l<=0&&(a.row=n.row,a.column=n.column,l===0&&(a.bias=1))}}function f(e){return{row:e.row,column:e.column}}function l(e){return{start:f(e.start),end:f(e.end),action:e.action,lines:e.lines.slice()}}function c(e){e=e||this;if(Array.isArray(e))return e.map(c).join("\n");var t="";e.action?(t=e.action=="insert"?"+":"-",t+="["+e.lines+"]"):e.value&&(Array.isArray(e.value)?t=e.value.map(h).join("\n"):t=h(e.value)),e.start&&(t+=h(e));if(e.id||e.rev)t+=" ("+(e.id||e.rev)+")";return t}function h(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function p(e,t){var n=e.action=="insert",r=t.action=="insert";if(n&&r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}else if(!n&&r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.start,e.start)<=0))return null;m(e,t,1)}else if(!n&&!r)if(o(t.start,e.start)>=0)m(t,e,1);else{if(!(o(t.end,e.start)<=0))return null;m(e,t,-1)}return[t,e]}function d(e,t){for(var n=e.length;n--;)for(var r=0;r=0?m(e,t,-1):o(e.start,t.start)<=0?m(t,e,1):(m(e,s.fromPoints(t.start,e.start),-1),m(t,e,1));else if(!n&&r)o(t.start,e.end)>=0?m(t,e,-1):o(t.start,e.start)<=0?m(e,t,1):(m(t,s.fromPoints(e.start,t.start),-1),m(e,t,1));else if(!n&&!r)if(o(t.start,e.end)>=0)m(t,e,-1);else{if(!(o(t.end,e.start)<=0)){var i,u;return o(e.start,t.start)<0&&(i=e,e=y(e,t.start)),o(e.end,t.end)>0&&(u=y(e,t.end)),g(t.end,e.start,e.end,-1),u&&!i&&(e.lines=u.lines,e.start=u.start,e.end=u.end,u=e),[t,i,u].filter(Boolean)}m(e,t,-1)}return[t,e]}function m(e,t,n){g(e.start,t.start,t.end,n),g(e.end,t.start,t.end,n)}function g(e,t,n,r){e.row==(r==1?t:n).row&&(e.column+=r*(n.column-t.column)),e.row+=r*(n.row-t.row)}function y(e,t){var n=e.lines,r=e.end;e.end=f(t);var i=e.end.row-e.start.row,s=n.splice(i,n.length),o=i?t.column:t.column-e.start.column;n.push(s[0].substring(0,o)),s[0]=s[0].substr(o);var u={start:f(t),end:r,lines:s,action:e.action};return u}function b(e,t){t=l(t);for(var n=e.length;n--;){var r=e[n];for(var i=0;ithis.$undoDepth-1&&this.$undoStack.splice(0,r-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),e.id=this.$rev=++this.$maxRev}if(e.action=="remove"||e.action=="insert")this.$lastDelta=e;this.lastDeltas.push(e)},e.prototype.addSelection=function(e,t){this.selections.push({value:e,rev:t||this.$rev})},e.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},e.prototype.markIgnored=function(e,t){t==null&&(t=this.$rev+1);var n=this.$undoStack;for(var r=n.length;r--;){var i=n[r][0];if(i.id<=e)break;i.id0},e.prototype.canRedo=function(){return this.$redoStack.length>0},e.prototype.bookmark=function(e){e==undefined&&(e=this.$rev),this.mark=e},e.prototype.isAtBookmark=function(){return this.$rev===this.mark},e.prototype.toJSON=function(){},e.prototype.fromJSON=function(){},e.prototype.$prettyPrint=function(e){return e?c(e):c(this.$undoStack)+"\n---\n"+c(this.$redoStack)},e}();r.prototype.hasUndo=r.prototype.canUndo,r.prototype.hasRedo=r.prototype.canRedo,r.prototype.isClean=r.prototype.isAtBookmark,r.prototype.markClean=r.prototype.bookmark;var s=e("./range").Range,o=s.comparePoints,u=s.comparePoints;t.UndoManager=r}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(){function e(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return e.prototype.moveContainer=function(e){r.translate(this.element,0,-(e.firstRowScreen*e.lineHeight%this.canvasHeight)-e.offset*this.$offsetCoefficient)},e.prototype.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},e.prototype.computeLineTop=function(e,t,n){var r=t.firstRowScreen*t.lineHeight,i=Math.floor(r/this.canvasHeight),s=n.documentToScreenRow(e,0)*t.lineHeight;return s-i*this.canvasHeight},e.prototype.computeLineHeight=function(e,t,n){return t.lineHeight*n.getRowLineCount(e)},e.prototype.getLength=function(){return this.cells.length},e.prototype.get=function(e){return this.cells[e]},e.prototype.shift=function(){this.$cacheCell(this.cells.shift())},e.prototype.pop=function(){this.$cacheCell(this.cells.pop())},e.prototype.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);var t=r.createFragment(this.element);for(var n=0;ns&&(a=i.end.row+1,i=t.getNextFoldLine(a,i),s=i?i.start.row:Infinity);if(a>r){while(this.$lines.getLength()>u+1)this.$lines.pop();break}o=this.$lines.get(++u),o?o.row=a:(o=this.$lines.createCell(a,e,this.session,l),this.$lines.push(o)),this.$renderCell(o,e,i,a),a++}this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$updateGutterWidth=function(e){var t=this.session,n=t.gutterRenderer||this.$renderer,r=t.$firstLineNumber,i=this.$lines.last()?this.$lines.last().text:"";if(this.$fixedWidth||t.$useWrapMode)i=t.getLength()+r-1;var s=n?n.getWidth(t,i,e):i.toString().length*e.characterWidth,o=this.$padding||this.$computePadding();s+=o.left+o.right,s!==this.gutterWidth&&!isNaN(s)&&(this.gutterWidth=s,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",s))},e.prototype.$updateCursorRow=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.getCursor();if(this.$cursorRow===e.row)return;this.$cursorRow=e.row},e.prototype.updateLineHighlight=function(){if(!this.$highlightGutterLine)return;var e=this.session.selection.cursor.row;this.$cursorRow=e;if(this.$cursorCell&&this.$cursorCell.row==e)return;this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var n=0;n=this.$cursorRow){if(r.row>this.$cursorRow){var i=this.session.getFoldLine(this.$cursorRow);if(!(n>0&&i&&i.start.row==t[n-1].row))break;r=t[n-1]}r.element.className="ace_gutter-active-line "+r.element.className,this.$cursorCell=r;break}}},e.prototype.scrollLines=function(e){var t=this.config;this.config=e,this.$updateCursorRow();if(this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var n=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),r=this.oldLastRow;this.oldLastRow=n;if(!t||r0;i--)this.$lines.shift();if(r>n)for(var i=this.session.getFoldedRowCount(n+1,r);i>0;i--)this.$lines.pop();e.firstRowr&&this.$lines.push(this.$renderLines(e,r+1,n)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},e.prototype.$renderLines=function(e,t,n){var r=[],i=t,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>n)break;var u=this.$lines.createCell(i,e,this.session,l);this.$renderCell(u,e,s,i),r.push(u),i++}return r},e.prototype.$renderCell=function(e,t,n,i){var s=e.element,o=this.session,u=s.childNodes[0],f=s.childNodes[1],l=s.childNodes[2],c=l.firstChild,h=o.$firstLineNumber,p=o.$breakpoints,d=o.$decorations,v=o.gutterRenderer||this.$renderer,m=this.$showFoldWidgets&&o.foldWidgets,g=n?n.start.row:Number.MAX_VALUE,y=t.lineHeight+"px",b=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",w=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",E=(v?v.getText(o,i):i+h).toString();this.$highlightGutterLine&&(i==this.$cursorRow||n&&i=g&&this.$cursorRow<=n.end.row)&&(b+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),p[i]&&(b+=p[i]),d[i]&&(b+=d[i]),this.$annotations[i]&&i!==g&&(b+=this.$annotations[i].className);if(m){var S=m[i];S==null&&(S=m[i]=o.getFoldWidget(i))}if(S){var x="ace_fold-widget ace_"+S,T=S=="start"&&i==g&&in.right-t.right)return"foldWidgets"},e}();f.prototype.$fixedWidth=!1,f.prototype.$highlightGutterLine=!0,f.prototype.$renderer="",f.prototype.$showLineNumbers=!0,f.prototype.$showFoldWidgets=!0,i.implement(f.prototype,o),t.Gutter=f}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";function o(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}var r=e("../range").Range,i=e("../lib/dom"),s=function(){function e(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setMarkers=function(e){this.markers=e},e.prototype.elt=function(e,t){var n=this.i!=-1&&this.element.childNodes[this.i];n?this.i++:(n=document.createElement("div"),this.element.appendChild(n),this.i=-1),n.style.cssText=t,n.className=e},e.prototype.update=function(e){if(!e)return;this.config=e,this.i=0;var t;for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start"+" ace_br15",e)}if(this.i!=-1)while(this.ip,l==f),i,l==f?0:1,s)},e.prototype.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||"";if(this.session.$bidiHandler.isBidiRow(t.start.row)){var f=t.clone();f.end.row=f.start.row,f.end.column=this.session.getLine(f.start.row).length,this.drawBidiSingleLineMarker(e,f,n+" ace_br1 ace_start",r,null,i)}else this.elt(n+" ace_br1 ace_start","height:"+o+"px;"+"right:0;"+"top:"+u+"px;left:"+a+"px;"+(i||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var f=t.clone();f.start.row=f.end.row,f.start.column=0,this.drawBidiSingleLineMarker(e,f,n+" ace_br12",r,null,i)}else{u=this.$getTop(t.end.row,r);var l=t.end.column*r.characterWidth;this.elt(n+" ace_br12","height:"+o+"px;"+"width:"+l+"px;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))}o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var c=(t.start.column?1:0)|(t.end.column?0:8);this.elt(n+(c?" ace_br"+c:""),"height:"+o+"px;"+"right:0;"+"top:"+u+"px;"+"left:"+s+"px;"+(i||""))},e.prototype.drawSingleLineMarker=function(e,t,n,r,i,s){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,n,r,i,s);var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;this.elt(n,"height:"+o+"px;"+"width:"+u+"px;"+"top:"+a+"px;"+"left:"+f+"px;"+(s||""))},e.prototype.drawBidiSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=this.$getTop(t.start.row,r),a=this.$padding,f=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);f.forEach(function(e){this.elt(n,"height:"+o+"px;"+"width:"+(e.width+(i||0))+"px;"+"top:"+u+"px;"+"left:"+(a+e.left)+"px;"+(s||""))},this)},e.prototype.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))},e.prototype.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;this.elt(n,"height:"+o+"px;"+"top:"+s+"px;"+"left:0;right:0;"+(i||""))},e}();s.prototype.$padding=0,t.Marker=s}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("./lines").Lines,u=e("../lib/event_emitter").EventEmitter,a=e("../config").nls,f=function(){function e(e){this.dom=i,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new o(this.element)}return e.prototype.$updateEolChar=function(){var e=this.session.doc,t=e.getNewLineCharacter()=="\n"&&e.getNewLineMode()!="windows",n=t?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=n)return this.EOL_CHAR=n,!0},e.prototype.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},e.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},e.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},e.prototype.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},e.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},e.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},e.prototype.setSession=function(e){this.session=e,e&&this.$computeTabString()},e.prototype.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,typeof e=="string"?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},e.prototype.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},e.prototype.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides===e?!1:(this.$highlightIndentGuides=e,e)},e.prototype.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;nl&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),l=a?a.start.row:Infinity);if(u>i)break;var c=s[o++];if(c){this.dom.removeChildren(c),this.$renderLine(c,u,u==l?a:!1),f&&(c.style.top=this.$lines.computeLineTop(u,e,this.session)+"px");var h=e.lineHeight*this.session.getRowLength(u)+"px";c.style.height!=h&&(f=!0,c.style.height=h)}u++}if(f)while(o0;i--)this.$lines.shift();if(t.lastRow>e.lastRow)for(var i=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);i>0;i--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},e.prototype.$renderLinesFragment=function(e,t,n){var r=[],s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=this.$lines.createCell(s,e,this.session),f=a.element;this.dom.removeChildren(f),i.setStyle(f.style,"height",this.$lines.computeLineHeight(s,e,this.session)+"px"),i.setStyle(f.style,"top",this.$lines.computeLineTop(s,e,this.session)+"px"),this.$renderLine(f,s,s==u?o:!1),this.$useLineGroups()?f.className="ace_line_group":f.className="ace_line",r.push(a),s++}return r},e.prototype.update=function(e){this.$lines.moveContainer(e),this.config=e;var t=e.firstRow,n=e.lastRow,r=this.$lines;while(r.getLength())r.pop();r.push(this.$renderLinesFragment(e,t,n))},e.prototype.$renderToken=function(e,t,n,r){var i=this,o=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,u=this.dom.createFragment(this.element),f,l=0;while(f=o.exec(r)){var c=f[1],h=f[2],p=f[3],d=f[4],v=f[5];if(!i.showSpaces&&h)continue;var m=l!=f.index?r.slice(l,f.index):"";l=f.index+f[0].length,m&&u.appendChild(this.dom.createTextNode(m,this.element));if(c){var g=i.session.getScreenTabSize(t+f.index);u.appendChild(i.$tabStrings[g].cloneNode(!0)),t+=g-1}else if(h)if(i.showSpaces){var y=this.dom.createElement("span");y.className="ace_invisible ace_invisible_space",y.textContent=s.stringRepeat(i.SPACE_CHAR,h.length),u.appendChild(y)}else u.appendChild(this.com.createTextNode(h,this.element));else if(p){var y=this.dom.createElement("span");y.className="ace_invisible ace_invisible_space ace_invalid",y.textContent=s.stringRepeat(i.SPACE_CHAR,p.length),u.appendChild(y)}else if(d){t+=1;var y=this.dom.createElement("span");y.style.width=i.config.characterWidth*2+"px",y.className=i.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",y.textContent=i.showSpaces?i.SPACE_CHAR:d,u.appendChild(y)}else if(v){t+=1;var y=this.dom.createElement("span");y.style.width=i.config.characterWidth*2+"px",y.className="ace_cjk",y.textContent=v,u.appendChild(y)}}u.appendChild(this.dom.createTextNode(l?r.slice(l):r,this.element));if(!this.$textToken[n.type]){var b="ace_"+n.type.replace(/\./g," ace_"),y=this.dom.createElement("span");n.type=="fold"&&(y.style.width=n.value.length*this.config.characterWidth+"px",y.setAttribute("title",a("Unfold code"))),y.className=b,y.appendChild(u),e.appendChild(y)}else e.appendChild(u);return t+r.length},e.prototype.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);if(r<=0||r>=n)return t;if(t[0]==" "){r-=r%this.tabSize;var i=r/this.tabSize;for(var s=0;ss[o].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&e[t.row]!==""&&t.column===e[t.row].length){this.$highlightIndentGuideMarker.dir=1;for(var o=t.row+1;o0)for(var i=0;i=this.$highlightIndentGuideMarker.start+1){if(r.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(r,t)}}else for(var n=e.length-1;n>=0;n--){var r=e[n];if(this.$highlightIndentGuideMarker.end&&r.row=o)u=this.$renderToken(a,u,l,c.substring(0,o-r)),c=c.substring(o-r),r=o,a=this.$createLineElement(),e.appendChild(a),a.appendChild(this.dom.createTextNode(s.stringRepeat("\u00a0",n.indent),this.element)),i++,u=0,o=n[i]||Number.MAX_VALUE;c.length!=0&&(r+=c.length,u=this.$renderToken(a,u,l,c))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(a,u,null,"",!0)},e.prototype.$renderSimpleLine=function(e,t){var n=0;for(var r=0;rthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,i,s);n=this.$renderToken(e,n,i,s)}},e.prototype.$renderOverflowMessage=function(e,t,n,r,i){n&&this.$renderToken(e,t,n,r.slice(0,this.MAX_LINE_LENGTH-t));var s=this.dom.createElement("span");s.className="ace_inline_button ace_keyword ace_toggle_wrap",s.textContent=i?"":"",e.appendChild(s)},e.prototype.$renderLine=function(e,t,n){!n&&n!=0&&(n=this.session.getFoldLine(t));if(n)var r=this.$getFoldLineTokens(t,n);else var r=this.session.getTokens(t);var i=e;if(r.length){var s=this.session.getRowSplitData(t);if(s&&s.length){this.$renderWrappedLine(e,r,s);var i=e.lastChild}else{var i=e;this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i)),this.$renderSimpleLine(i,r)}}else this.$useLineGroups()&&(i=this.$createLineElement(),e.appendChild(i));if(this.showEOL&&i){n&&(t=n.end.row);var o=this.dom.createElement("span");o.className="ace_invisible ace_invisible_eol",o.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,i.appendChild(o)}},e.prototype.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.lengthn-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(sn?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},e.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},e}();f.prototype.$textToken={text:!0,rparen:!0,lparen:!0},f.prototype.EOF_CHAR="\u00b6",f.prototype.EOL_CHAR_LF="\u00ac",f.prototype.EOL_CHAR_CRLF="\u00a4",f.prototype.EOL_CHAR=f.prototype.EOL_CHAR_LF,f.prototype.TAB_CHAR="\u2014",f.prototype.SPACE_CHAR="\u00b7",f.prototype.$padding=0,f.prototype.MAX_LINE_LENGTH=1e4,f.prototype.showInvisibles=!1,f.prototype.showSpaces=!1,f.prototype.showTabs=!1,f.prototype.showEOL=!1,f.prototype.displayIndentGuides=!0,f.prototype.$highlightIndentGuides=!0,f.prototype.$tabStrings=[],f.prototype.destroy={},f.prototype.onChangeTabSize=f.prototype.$computeTabString,r.implement(f.prototype,u),t.Text=f}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=function(){function e(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return e.prototype.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)r.setStyle(t[n].style,"opacity",e?"":"0")},e.prototype.$startCssAnimation=function(){var e=this.cursors;for(var t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&r.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},e.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,r.removeCssClass(this.element,"ace_animate-blinking")},e.prototype.setPadding=function(e){this.$padding=e},e.prototype.setSession=function(e){this.session=e},e.prototype.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},e.prototype.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},e.prototype.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},e.prototype.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},e.prototype.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},e.prototype.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},e.prototype.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,r.removeCssClass(this.element,"ace_smooth-blinking")),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this)));if(r.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()}},e.prototype.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},e.prototype.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||o.top<0)&&n>1)continue;var u=this.cursors[i++]||this.addCursor(),a=u.style;this.drawCursor?this.drawCursor(u,o,e,t[n],this.session):this.isCursorInView(o,e)?(r.setStyle(a,"display","block"),r.translate(u,o.left,o.top),r.setStyle(a,"width",Math.round(e.characterWidth)+"px"),r.setStyle(a,"height",e.lineHeight+"px")):r.setStyle(a,"display","none")}while(this.cursors.length>i)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=o,this.restartTimer()},e.prototype.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},e.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},e}();i.prototype.$padding=0,i.prototype.drawCursor=null,t.Cursor=i}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e("./lib/oop"),s=e("./lib/dom"),o=e("./lib/event"),u=e("./lib/event_emitter").EventEmitter,a=32768,f=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+t,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\u00a0",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();i.implement(f.prototype,u);var l=function(e){function t(t,n){var r=e.call(this,t,"-v")||this;return r.scrollTop=0,r.scrollHeight=0,n.$scrollbarWidth=r.width=s.scrollbarWidth(t.ownerDocument),r.inner.style.width=r.element.style.width=(r.width||15)+5+"px",r.$minWidth=0,r}return r(t,e),t.prototype.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;if(this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.element.style.height=e+"px"},t.prototype.setScrollHeight=function(e){this.scrollHeight=e,e>a?(this.coeff=a/e,e=a):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+"px"},t.prototype.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)},t}(f);l.prototype.setInnerHeight=l.prototype.setScrollHeight;var c=function(e){function t(t,n){var r=e.call(this,t,"-h")||this;return r.scrollLeft=0,r.height=n.$scrollbarWidth,r.inner.style.height=r.element.style.height=(r.height||15)+5+"px",r}return r(t,e),t.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.setWidth=function(e){this.element.style.width=e+"px"},t.prototype.setInnerWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollWidth=function(e){this.inner.style.width=e+"px"},t.prototype.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)},t}(f);t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=c,t.VScrollBar=l,t.HScrollBar=c}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");e(t,n),t.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=e("./lib/oop"),s=e("./lib/dom"),o=e("./lib/event"),u=e("./lib/event_emitter").EventEmitter;s.importCssString(".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\n position: absolute;\n background: rgba(128, 128, 128, 0.6);\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n border: 1px solid #bbb;\n border-radius: 2px;\n z-index: 8;\n}\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\n position: absolute;\n z-index: 6;\n background: none;\n overflow: hidden!important;\n}\n.ace_editor>.ace_sb-v {\n z-index: 6;\n right: 0;\n top: 0;\n width: 12px;\n}\n.ace_editor>.ace_sb-v div {\n z-index: 8;\n right: 0;\n width: 100%;\n}\n.ace_editor>.ace_sb-h {\n bottom: 0;\n left: 0;\n height: 12px;\n}\n.ace_editor>.ace_sb-h div {\n bottom: 0;\n height: 100%;\n}\n.ace_editor>.ace_sb_grabbed {\n z-index: 8;\n background: #000;\n}","ace_scrollbar.css",!1);var a=function(){function e(e,t){this.element=s.createElement("div"),this.element.className="ace_sb"+t,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return e.prototype.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1},e}();i.implement(a.prototype,u);var f=function(e){function t(t,n){var r=e.call(this,t,"-v")||this;return r.scrollTop=0,r.scrollHeight=0,r.parent=t,r.width=r.VScrollWidth,r.renderer=n,r.inner.style.width=r.element.style.width=(r.width||15)+"px",r.$minWidth=0,r}return r(t,e),t.prototype.onMouseDown=function(e,t){if(e!=="mousedown")return;if(o.getButton(t)!==0||t.detail===2)return;if(t.target===this.inner){var n=this,r=t.clientY,i=function(e){r=e.clientY},s=function(){clearInterval(l)},u=t.clientY,a=this.thumbTop,f=function(){if(r===undefined)return;var e=n.scrollTopFromThumbTop(a+r-u);if(e===n.scrollTop)return;n._emit("scroll",{data:e})};o.capture(this.inner,i,s);var l=setInterval(f,20);return o.preventDefault(t)}var c=t.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(c)}),o.preventDefault(t)},t.prototype.getHeight=function(){return this.height},t.prototype.scrollTopFromThumbTop=function(e){var t=e*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return t>>=0,t<0?t=0:t>this.pageHeight-this.viewHeight&&(t=this.pageHeight-this.viewHeight),t},t.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},t.prototype.setHeight=function(e){this.height=Math.max(0,e),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},t.prototype.setScrollHeight=function(e,t){if(this.pageHeight===e&&!t)return;this.pageHeight=e,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop}))},t.prototype.setScrollTop=function(e){this.scrollTop=e,e<0&&(e=0),this.thumbTop=e*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},t}(a);f.prototype.setInnerHeight=f.prototype.setScrollHeight;var l=function(e){function t(t,n){var r=e.call(this,t,"-h")||this;return r.scrollLeft=0,r.scrollWidth=0,r.height=r.HScrollHeight,r.inner.style.height=r.element.style.height=(r.height||12)+"px",r.renderer=n,r}return r(t,e),t.prototype.onMouseDown=function(e,t){if(e!=="mousedown")return;if(o.getButton(t)!==0||t.detail===2)return;if(t.target===this.inner){var n=this,r=t.clientX,i=function(e){r=e.clientX},s=function(){clearInterval(l)},u=t.clientX,a=this.thumbLeft,f=function(){if(r===undefined)return;var e=n.scrollLeftFromThumbLeft(a+r-u);if(e===n.scrollLeft)return;n._emit("scroll",{data:e})};o.capture(this.inner,i,s);var l=setInterval(f,20);return o.preventDefault(t)}var c=t.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(c)}),o.preventDefault(t)},t.prototype.getHeight=function(){return this.isVisible?this.height:0},t.prototype.scrollLeftFromThumbLeft=function(e){var t=e*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return t>>=0,t<0?t=0:t>this.pageWidth-this.viewWidth&&(t=this.pageWidth-this.viewWidth),t},t.prototype.setWidth=function(e){this.width=Math.max(0,e),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},t.prototype.setScrollWidth=function(e,t){if(this.pageWidth===e&&!t)return;this.pageWidth=e,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft}))},t.prototype.setScrollLeft=function(e){this.scrollLeft=e,e<0&&(e=0),this.thumbLeft=e*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},t}(a);l.prototype.setInnerWidth=l.prototype.setScrollWidth,t.ScrollBar=f,t.ScrollBarV=f,t.ScrollBarH=l,t.VScrollBar=f,t.HScrollBar=l}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(){function e(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var n=this;this._flush=function(e){n.pending=!1;var t=n.changes;t&&(r.blockIdle(100),n.changes=0,n.onRender(t));if(n.changes){if(n.$recursionLimit--<0)return;n.schedule()}else n.$recursionLimit=2}}return e.prototype.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(r.nextFrame(this._flush),this.pending=!0)},e.prototype.clear=function(e){var t=this.changes;return this.changes=0,t},e}();t.RenderLoop=i}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/event"),u=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,f=512,l=typeof ResizeObserver=="function",c=200,h=function(){function e(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=s.stringRepeat("X",f),this.$characterSize={width:0,height:0},l?this.$addObserver():this.checkForSizeChanges()}return e.prototype.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",u.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},e.prototype.checkForSizeChanges=function(e){e===undefined&&(e=this.$measureSizes());if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},e.prototype.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver(function(t){e.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},e.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=o.onIdle(function t(){e.checkForSizeChanges(),o.onIdle(t,500)},500)},e.prototype.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},e.prototype.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/f};return t.width===0||t.height===0?null:t},e.prototype.$measureCharWidth=function(e){this.$main.textContent=s.stringRepeat(e,f);var t=this.$main.getBoundingClientRect();return t.width/f},e.prototype.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},e.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},e.prototype.$getZoom=function(e){return!e||!e.parentElement?1:(window.getComputedStyle(e).zoom||1)*this.$getZoom(e.parentElement)},e.prototype.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=i.buildDom([e(0,0),e(c,0),e(0,c),e(c,c)],this.el)},e.prototype.transformCoordinates=function(e,t){function r(e,t,n){var r=e[1]*t[0]-e[0]*t[1];return[(-t[1]*n[0]+t[0]*n[1])/r,(+e[1]*n[0]-e[0]*n[1])/r]}function i(e,t){return[e[0]-t[0],e[1]-t[1]]}function s(e,t){return[e[0]+t[0],e[1]+t[1]]}function o(e,t){return[e*t[0],e*t[1]]}function u(e){var t=e.getBoundingClientRect();return[t.left,t.top]}if(e){var n=this.$getZoom(this.el);e=o(1/n,e)}this.els||this.$initTransformMeasureNodes();var a=u(this.els[0]),f=u(this.els[1]),l=u(this.els[2]),h=u(this.els[3]),p=r(i(h,f),i(h,l),i(s(f,l),s(h,a))),d=o(1+p[0],i(f,a)),v=o(1+p[1],i(l,a));if(t){var m=t,g=p[0]*m[0]/c+p[1]*m[1]/c+1,y=s(o(m[0],d),o(m[1],v));return s(o(1/g/c,y),a)}var b=i(e,a),w=r(i(d,o(p[0],b)),i(v,o(p[1],b)),b);return o(c,w)},e}();h.prototype.$characterSize={width:0,height:0},r.implement(h.prototype,a),t.FontMetrics=h}),ace.define("ace/css/editor-css",["require","exports","module"],function(e,t,n){n.exports='\n.ace_br1 {border-top-left-radius : 3px;}\n.ace_br2 {border-top-right-radius : 3px;}\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\n.ace_br4 {border-bottom-right-radius: 3px;}\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\n.ace_br8 {border-bottom-left-radius : 3px;}\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\n\n\n.ace_editor {\n position: relative;\n overflow: hidden;\n padding: 0;\n font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'Source Code Pro\', \'source-code-pro\', monospace;\n direction: ltr;\n text-align: left;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n.ace_scroller {\n position: absolute;\n overflow: hidden;\n top: 0;\n bottom: 0;\n background-color: inherit;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n cursor: text;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n min-width: 100%;\n contain: style size layout;\n font-variant-ligatures: no-common-ligatures;\n}\n\n.ace_keyboard-focus:focus {\n box-shadow: inset 0 0 0 2px #5E9ED6;\n outline: none;\n}\n\n.ace_dragging .ace_scroller:before{\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n content: \'\';\n background: rgba(250, 250, 250, 0.01);\n z-index: 1000;\n}\n.ace_dragging.ace_dark .ace_scroller:before{\n background: rgba(0, 0, 0, 0.01);\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n width: auto;\n top: 0;\n bottom: 0;\n left: 0;\n cursor: default;\n z-index: 4;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n contain: style size layout;\n}\n\n.ace_gutter-active-line {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.ace_scroller.ace_scroll-left:after {\n content: "";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n pointer-events: none;\n}\n\n.ace_gutter-cell, .ace_gutter-cell_svg-icons {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n padding-left: 19px;\n padding-right: 6px;\n background-repeat: no-repeat;\n}\n\n.ace_gutter-cell_svg-icons .ace_gutter_annotation {\n margin-left: -14px;\n float: left;\n}\n\n.ace_gutter-cell .ace_gutter_annotation {\n margin-left: -19px;\n float: left;\n}\n\n.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info, .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");\n}\n\n.ace_icon_svg.ace_error {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: darkorange;\n}\n.ace_icon_svg.ace_info {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");\n background-color: royalblue;\n}\n\n.ace_icon_svg.ace_error_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");\n background-color: crimson;\n}\n.ace_icon_svg.ace_warning_fold {\n -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");\n background-color: darkorange;\n}\n\n.ace_scrollbar {\n contain: strict;\n position: absolute;\n right: 0;\n bottom: 0;\n z-index: 6;\n}\n\n.ace_scrollbar-inner {\n position: absolute;\n cursor: text;\n left: 0;\n top: 0;\n}\n\n.ace_scrollbar-v{\n overflow-x: hidden;\n overflow-y: scroll;\n top: 0;\n}\n\n.ace_scrollbar-h {\n overflow-x: scroll;\n overflow-y: hidden;\n left: 0;\n}\n\n.ace_print-margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_text-input {\n position: absolute;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n -moz-appearance: none;\n appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n font: inherit;\n padding: 0 1px;\n margin: 0 -1px;\n contain: strict;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n user-select: text;\n /*with `pre-line` chrome inserts   instead of space*/\n white-space: pre!important;\n}\n.ace_text-input.ace_composition {\n background: transparent;\n color: inherit;\n z-index: 1000;\n opacity: 1;\n}\n.ace_composition_placeholder { color: transparent }\n.ace_composition_marker { \n border-bottom: 1px solid;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n}\n\n[ace_nocontext=true] {\n transform: none!important;\n filter: none!important;\n clip-path: none!important;\n mask : none!important;\n contain: none!important;\n perspective: none!important;\n mix-blend-mode: initial!important;\n z-index: auto;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/\n word-wrap: normal;\n white-space: pre;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter-layer {\n position: relative;\n width: auto;\n text-align: right;\n pointer-events: auto;\n height: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer {\n font: inherit !important;\n position: absolute;\n height: 1000000px;\n width: 1000000px;\n contain: style size layout;\n}\n\n.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\n contain: style size layout;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n}\n\n.ace_hidpi .ace_text-layer,\n.ace_hidpi .ace_gutter-layer,\n.ace_hidpi .ace_content,\n.ace_hidpi .ace_gutter {\n contain: strict;\n}\n.ace_hidpi .ace_text-layer > .ace_line, \n.ace_hidpi .ace_text-layer > .ace_line_group {\n contain: strict;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n box-sizing: border-box;\n border-left: 2px solid;\n /* workaround for smooth cursor repaintng whole screen in chrome */\n transform: translatez(0);\n}\n\n.ace_multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_slim-cursors .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_overwrite-cursors .ace_cursor {\n border-left-width: 0;\n border-bottom: 1px solid;\n}\n\n.ace_hidden-cursors .ace_cursor {\n opacity: 0.2;\n}\n\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\n opacity: 0;\n}\n\n.ace_smooth-blinking .ace_cursor {\n transition: opacity 0.18s;\n}\n\n.ace_animate-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: step-end;\n animation-name: blink-ace-animate;\n animation-iteration-count: infinite;\n}\n\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\n animation-duration: 1000ms;\n animation-timing-function: ease-in-out;\n animation-name: blink-ace-animate-smooth;\n}\n \n@keyframes blink-ace-animate {\n from, to { opacity: 1; }\n 60% { opacity: 0; }\n}\n\n@keyframes blink-ace-animate-smooth {\n from, to { opacity: 1; }\n 45% { opacity: 1; }\n 60% { opacity: 0; }\n 85% { opacity: 0; }\n}\n\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_error_bracket {\n position: absolute;\n border-bottom: 1px solid #DE5555;\n border-radius: 0;\n}\n\n.ace_marker-layer .ace_active-line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected-word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n\n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n border-radius: 2px;\n\n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image:\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),\n url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");\n}\n\n.ace_tooltip {\n background-color: #f5f5f5;\n border: 1px solid gray;\n border-radius: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n color: black;\n max-width: 100%;\n padding: 3px 4px;\n position: fixed;\n z-index: 999999;\n box-sizing: border-box;\n cursor: default;\n white-space: pre;\n word-wrap: break-word;\n line-height: normal;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n pointer-events: none;\n}\n\n.ace_tooltip.ace_dark {\n background-color: #636363;\n color: #fff;\n}\n\n.ace_tooltip:focus {\n outline: 1px solid #5E9ED6;\n}\n\n.ace_icon {\n display: inline-block;\n width: 18px;\n vertical-align: top;\n}\n\n.ace_icon_svg {\n display: inline-block;\n width: 12px;\n vertical-align: top;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: 12px;\n -webkit-mask-position: center;\n}\n\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n\n margin: 0 -12px 0 1px;\n display: none;\n width: 11px;\n vertical-align: top;\n\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: 3px;\n \n border: 1px solid transparent;\n cursor: pointer;\n}\n\n.ace_folding-enabled .ace_fold-widget {\n display: inline-block; \n}\n\n.ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");\n}\n\n.ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");\n}\n.ace_dark .ace_fold-widget.ace_end {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget.ace_closed {\n background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");\n}\n.ace_dark .ace_fold-widget:hover {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n\n.ace_inline_button {\n border: 1px solid lightgray;\n display: inline-block;\n margin: -1px 8px;\n padding: 0 5px;\n pointer-events: auto;\n cursor: pointer;\n}\n.ace_inline_button:hover {\n border-color: gray;\n background: rgba(200,200,200,0.2);\n display: inline-block;\n pointer-events: auto;\n}\n\n.ace_fold-widget.ace_invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n transition: opacity 0.4s ease 0.05s;\n opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n transition: opacity 0.05s ease 0.05s;\n opacity:1;\n}\n\n.ace_underline {\n text-decoration: underline;\n}\n\n.ace_bold {\n font-weight: bold;\n}\n\n.ace_nobold .ace_bold {\n font-weight: normal;\n}\n\n.ace_italic {\n font-style: italic;\n}\n\n\n.ace_error-marker {\n background-color: rgba(255, 0, 0,0.2);\n position: absolute;\n z-index: 9;\n}\n\n.ace_highlight-marker {\n background-color: rgba(255, 255, 0,0.2);\n position: absolute;\n z-index: 8;\n}\n\n.ace_mobile-menu {\n position: absolute;\n line-height: 1.5;\n border-radius: 4px;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n background: white;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #dcdcdc;\n color: black;\n}\n.ace_dark > .ace_mobile-menu {\n background: #333;\n color: #ccc;\n box-shadow: 1px 3px 2px grey;\n border: 1px solid #444;\n\n}\n.ace_mobile-button {\n padding: 2px;\n cursor: pointer;\n overflow: hidden;\n}\n.ace_mobile-button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_mobile-button:active {\n background-color: #ddd;\n}\n\n.ace_placeholder {\n font-family: arial;\n transform: scale(0.9);\n transform-origin: left;\n white-space: pre;\n opacity: 0.7;\n margin: 0 10px;\n}\n\n.ace_ghost_text {\n opacity: 0.5;\n font-style: italic;\n white-space: pre;\n}'}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event_emitter").EventEmitter,o=function(){function e(e,t){this.canvas=r.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=e.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=e.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},e.element.appendChild(this.canvas)}return e.prototype.$updateDecorators=function(e){function i(e,t){return e.priorityt.priority?1:0}var t=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;if(e){this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height;var n=(e.lastRow+1)*this.lineHeight;nthis.canvasHeight&&(v=this.canvasHeight-this.halfMinDecorationHeight),h=Math.round(v-this.halfMinDecorationHeight),p=Math.round(v+this.halfMinDecorationHeight)}r.fillStyle=t[s[a].type]||null,r.fillRect(0,c,this.canvasWidth,p-h)}}var m=this.renderer.session.selection.getCursor();if(m){var l=this.compensateFoldRows(m.row,u),c=Math.round((m.row-l)*this.lineHeight*this.heightRatio);r.fillStyle="rgba(0, 0, 0, 0.5)",r.fillRect(0,c,this.canvasWidth,2)}},e.prototype.compensateFoldRows=function(e,t){var n=0;if(t&&t.length>0)for(var r=0;rt[r].start.row&&e=t[r].end.row&&(n+=t[r].end.row-t[r].start.row);return n},e}();i.implement(o.prototype,s),t.Decorator=o}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/lang"),o=e("./config"),u=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,f=e("./layer/text").Text,l=e("./layer/cursor").Cursor,c=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./scrollbar_custom").HScrollBar,d=e("./scrollbar_custom").VScrollBar,v=e("./renderloop").RenderLoop,m=e("./layer/font_metrics").FontMetrics,g=e("./lib/event_emitter").EventEmitter,y=e("./css/editor-css"),b=e("./layer/decorators").Decorator,w=e("./lib/useragent");i.importCssString(y,"ace_editor.css",!1);var E=function(){function e(e,t){var n=this;this.container=e||i.createElement("div"),i.addCssClass(this.container,"ace_editor"),i.HI_DPI&&i.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),o.get("useStrictCSP")==null&&o.set("useStrictCSP",!1),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.on("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new m(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new v(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),o.resetOptions(this),o._signal("renderer",this)}return e.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),i.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},e.prototype.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},e.prototype.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},e.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},e.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},e.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},e.prototype.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},e.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},e.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},e.prototype.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);this.$resizeTimer&&this.$resizeTimer.cancel();if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)},e.prototype.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var s=0,o=this.$size,u={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};r&&(e||o.height!=r)&&(o.height=r,s|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(o.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",s|=this.CHANGE_SCROLL);if(n&&(e||o.width!=n)){s|=this.CHANGE_SIZE,o.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,i.setStyle(this.scrollBarH.element.style,"left",t+"px"),i.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),o.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()-this.margin.h),i.setStyle(this.$gutter.style,"left",this.margin.left+"px");var a=this.scrollBarV.getWidth()+"px";i.setStyle(this.scrollBarH.element.style,"right",a),i.setStyle(this.scroller.style,"right",a),i.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(o.scrollerWidth);if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)s|=this.CHANGE_FULL}return o.$dirty=!n||!r,s&&this._signal("resize",u),s},e.prototype.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},e.prototype.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},e.prototype.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},e.prototype.getAnimatedScroll=function(){return this.$animatedScroll},e.prototype.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},e.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},e.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},e.prototype.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},e.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},e.prototype.setHighlightIndentGuides=function(e){this.setOption("highlightIndentGuides",e)},e.prototype.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},e.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},e.prototype.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},e.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},e.prototype.getShowGutter=function(){return this.getOption("showGutter")},e.prototype.setShowGutter=function(e){return this.setOption("showGutter",e)},e.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},e.prototype.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},e.prototype.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},e.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},e.prototype.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},e.prototype.getContainerElement=function(){return this.container},e.prototype.getMouseEventTarget=function(){return this.scroller},e.prototype.getTextAreaContainer=function(){return this.container},e.prototype.$moveTextAreaToCursor=function(){if(this.$isMousePressed)return;var e=this.textarea.style,t=this.$composition;if(!this.$keepTextAreaAtCursor&&!t){i.translate(this.textarea,-100,0);return}var n=this.$cursorLayer.$pixelPos;if(!n)return;t&&t.markerRange&&(n=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var r=this.layerConfig,s=n.top,o=n.left;s-=r.offset;var u=t&&t.useTextareaForIME||w.isMobile?this.lineHeight:1;if(s<0||s>r.height-u){i.translate(this.textarea,0,0);return}var a=1,f=this.$size.height-u;if(!t)s+=this.lineHeight;else if(t.useTextareaForIME){var l=this.textarea.value;a=this.characterWidth*this.session.$getStringScreenWidth(l)[0]}else s+=this.lineHeight+2;o-=this.scrollLeft,o>this.$size.scrollerWidth-a&&(o=this.$size.scrollerWidth-a),o+=this.gutterWidth+this.margin.left,i.setStyle(e,"height",u+"px"),i.setStyle(e,"width",a+"px"),i.translate(this.textarea,Math.min(o,this.$size.scrollerWidth-a),Math.min(s,f))},e.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},e.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},e.prototype.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},e.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},e.prototype.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},e.prototype.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},e.prototype.setMargin=function(e,t,n,r){var i=this.margin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},e.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},e.prototype.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},e.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},e.prototype.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},e.prototype.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},e.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},e.prototype.freeze=function(){this.$frozen=!0},e.prototype.unfreeze=function(){this.$frozen=!1},e.prototype.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig()|this.$loop.clear();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),i.translate(this.content,-this.scrollLeft,-n.offset);var s=n.width+2*this.$padding+"px",o=n.minHeight+"px";i.setStyle(this.content.style,"width",s),i.setStyle(this.content.style,"height",o)}e&this.CHANGE_H_SCROLL&&(i.translate(this.content,-this.scrollLeft,-n.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName));if(e&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender",e);return}if(e&this.CHANGE_SCROLL){this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(n):this.$gutterLayer.scrollLines(n)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this._signal("afterRender",e);return}e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_LINES?((this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)):e&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(n),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(n)),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender",e)},e.prototype.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=n<=2*this.lineHeight,i=!r&&e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||i!=this.$vScroll){i!=this.$vScroll&&(this.$vScroll=i,this.scrollBarV.setVisible(i));var s=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,s,n),this.desiredHeight=n,this._signal("autosize")}},e.prototype.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=t.scrollerHeight+this.lineHeight,l=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=l;var c=this.scrollMargin;this.session.setScrollTop(Math.max(-c.top,Math.min(this.scrollTop,i-t.scrollerHeight+c.bottom))),this.session.setScrollLeft(Math.max(-c.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+c.right)));var h=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+l<0||this.scrollTop>c.top),p=a!==h;p&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var d=this.scrollTop%this.lineHeight,v=Math.ceil(f/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-d)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),f=t.scrollerHeight+e.getRowLength(g)*w+b,d=this.scrollTop-y*w;var S=0;if(this.layerConfig.width!=s||u)S=this.CHANGE_H_SCROLL;if(u||p)S|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:f,maxHeight:i,offset:d,gutterOffset:w?Math.max(0,Math.ceil((d+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(s-this.$padding),S},e.prototype.$updateLines=function(){if(!this.$changedLines)return;var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},e.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},e.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},e.prototype.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},e.prototype.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},e.prototype.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},e.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},e.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},e.prototype.showCursor=function(){this.$cursorLayer.showCursor()},e.prototype.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},e.prototype.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},e.prototype.pixelToScreenCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),u=this.$blockCursor?Math.floor(s):Math.round(s);return{row:o,column:u,side:s-u>0?1:-1,offsetX:i}},e.prototype.screenToTextCoordinates=function(e,t){var n;if(this.$hasCssTransforms){n={top:0,left:0};var r=this.$fontMetrics.transformCoordinates([e,t]);e=r[1]-this.gutterWidth-this.margin.left,t=r[0]}else n=this.scroller.getBoundingClientRect();var i=e+this.scrollLeft-n.left-this.$padding,s=i/this.characterWidth,o=this.$blockCursor?Math.floor(s):Math.round(s),u=Math.floor((t+this.scrollTop-n.top)/this.lineHeight);return this.session.screenToDocumentPosition(u,Math.max(o,0),i)},e.prototype.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(r.row,e)?this.session.$bidiHandler.getPosLeft(r.column):Math.round(r.column*this.characterWidth)),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},e.prototype.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},e.prototype.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},e.prototype.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),e.useTextareaForIME==undefined&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},e.prototype.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},e.prototype.hideComposition=function(){if(!this.$composition)return;this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),i.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""},e.prototype.setGhostText=function(e,t){var n=this.session.selection.cursor,r=t||{row:n.row,column:n.column};this.removeGhostText();var i=e.split("\n");this.addToken(i[0],"ghost_text",r.row,r.column),this.$ghostText={text:e,position:{row:r.row,column:r.column}},i.length>1&&(this.$ghostTextWidget={text:i.slice(1).join("\n"),row:r.row,column:r.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget))},e.prototype.removeGhostText=function(){if(!this.$ghostText)return;var e=this.$ghostText.position;this.removeExtraToken(e.row,e.column),this.$ghostTextWidget&&(this.session.widgetManager.removeLineWidget(this.$ghostTextWidget),this.$ghostTextWidget=null),this.$ghostText=null},e.prototype.addToken=function(e,t,n,r){var i=this.session;i.bgTokenizer.lines[n]=null;var s={type:t,value:e},o=i.getTokens(n);if(r==null||!o.length)o.push(s);else{var u=0;for(var a=0;a1||Math.abs(e.$size.height-r)>1?e.$resizeTimer.delay():e.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)},e}();E.prototype.CHANGE_CURSOR=1,E.prototype.CHANGE_MARKER=2,E.prototype.CHANGE_GUTTER=4,E.prototype.CHANGE_SCROLL=8,E.prototype.CHANGE_LINES=16,E.prototype.CHANGE_TEXT=32,E.prototype.CHANGE_SIZE=64,E.prototype.CHANGE_MARKER_BACK=128,E.prototype.CHANGE_MARKER_FRONT=256,E.prototype.CHANGE_FULL=512,E.prototype.CHANGE_H_SCROLL=1024,E.prototype.$changes=0,E.prototype.$padding=null,E.prototype.$frozen=!1,E.prototype.STEPS=8,r.implement(E.prototype,g),o.defineOptions(E.prototype,"renderer",{useResizeObserver:{set:function(e){!e&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):e&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(e){this.$gutterLayer.$useSvgGutterIcons=e},initialValue:!1},showFoldedAnnotations:{set:function(e){this.$gutterLayer.$showFoldedAnnotations=e},initialValue:!1},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(e){this.$textLayer.setHighlightIndentGuides(e)==1?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(e){this.$gutterLayer.setHighlightGutterLine(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(e){this.$updateCustomScrollbar(e)},initialValue:!1},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),t.VirtualRenderer=E}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";function u(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}function a(e){if(typeof Worker=="undefined")return{postMessage:function(){},terminate:function(){}};if(o.get("loadWorkerFromBlob")){var t=u(e),n=window.URL||window.webkitURL,r=n.createObjectURL(t);return new Worker(r)}return new Worker(e)}var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),f=function(e){e.postMessage||(e=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=e,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.$createWorkerFromOldConfig=function(t,n,r,i,s){e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var u=this.$normalizePath;i=i||u(e.toUrl("ace/worker/worker.js",null,"_"));var f={};t.forEach(function(t){f[t]=u(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=a(i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:f,module:n,classname:r}),this.$worker},this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(e){e.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{t.data&&t.data.err&&(t.data.err={message:t.data.err.message,stack:t.data.err.stack,code:t.data.err.code}),this.$worker&&this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener,!0)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action=="insert"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})}}).call(f.prototype);var l=function(e,t,n){var r=null,i=!1,u=Object.create(s),a=[],l=new f({messageBuffer:a,terminate:function(){},postMessage:function(e){a.push(e);if(!r)return;i?setTimeout(c):c()}});l.setEmitSync=function(e){i=e};var c=function(){var e=a.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};return u.postMessage=function(e){l.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.length)c()}),l};t.UIWorkerClient=l,t.WorkerClient=f,t.createWorker=a}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(){function e(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return e.prototype.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},e.prototype.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},e.prototype.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action==="insert")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action==="remove")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},e.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},e.prototype.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},e.prototype.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},e.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},e.prototype.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}if(!e.textInput)return;var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()},e),u.addListener(t,"keyup",r,e),u.addListener(t,"blur",r,e)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){var e=this.ranges.length?this.ranges:[this.getRange()],t=[];for(var n=0;n1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.cursor),s=this.session.documentToScreenPosition(this.anchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column0)g--;if(g>0){var y=0;while(r[y].isEmpty())y++}for(var b=g;b>=y;b--)r[b].isEmpty()&&r.splice(b,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges(),u.ranges[0]&&u.fromOrientedRange(u.ranges[0]);var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),io?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),st[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?this.on("mousedown",o):this.off("mousedown",o)},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++tf){var p=e.getLine(l).length;return new r(f,u,l,p)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range","ace/config"],function(e,t,n){"use strict";function u(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function a(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=u(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var o=r[i];if(!o||!n)return;if(o.row===t){do o=r[i+=n];while(o&&o.row===t);if(!o)return r.slice()}var a=[];t=o.row;do a[n<0?"unshift":"push"](o),o=r[i+=n];while(o&&o.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range,o=e("../config").nls;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),u=s.row,f=n.widgetManager.getWidgetsAtRow(u).filter(function(e){return e.type=="errorMarker"})[0];f?f.destroy():u-=t;var l=a(n,u,t),c;if(l){var h=l[0];s.column=(h.pos&&typeof h.column!="number"?h.pos.sc:h.column)||0,s.row=h.row,c=e.renderer.$gutterLayer.$annotations[s.row]}else{if(f)return;c={text:[o("Looks good!")],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var p={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},d=p.el.appendChild(i.createElement("div")),v=p.el.appendChild(i.createElement("div"));v.className="error_widget_arrow "+c.className;var m=e.renderer.$cursorLayer.getPixelPosition(s).left;v.style.left=m+e.renderer.gutterWidth-5+"px",p.el.className="error_widget_wrapper",d.className="error_widget "+c.className,d.innerHTML=c.text.join("
"),d.appendChild(i.createElement("div"));var g=function(e,t,n){if(t===0&&(n==="esc"||n==="return"))return p.destroy(),{command:"null"}};p.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(g),n.widgetManager.removeLineWidget(p),e.off("changeSelection",p.destroy),e.off("changeSession",p.destroy),e.off("mouseup",p.destroy),e.off("change",p.destroy)},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",p.destroy),e.on("changeSession",p.destroy),e.on("mouseup",p.destroy),e.on("change",p.destroy),e.session.widgetManager.addLineWidget(p),p.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:p.el.offsetHeight})},i.importCssString("\n .error_widget_wrapper {\n background: inherit;\n color: inherit;\n border:none\n }\n .error_widget {\n border-top: solid 2px;\n border-bottom: solid 2px;\n margin: 5px 0;\n padding: 10px 40px;\n white-space: pre-wrap;\n }\n .error_widget.ace_error, .error_widget_arrow.ace_error{\n border-color: #ff5a5a\n }\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\n border-color: #F1D817\n }\n .error_widget.ace_info, .error_widget_arrow.ace_info{\n border-color: #5a5a5a\n }\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\n border-color: #5aaa5a\n }\n .error_widget_arrow {\n position: absolute;\n border: solid 5px;\n border-top-color: transparent!important;\n border-right-color: transparent!important;\n border-left-color: transparent!important;\n top: -5px;\n }\n","error_marker.css",!1)}),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],function(e,t,n){"use strict";e("./loader_build")(t);var r=e("./lib/dom"),i=e("./range").Range,s=e("./editor").Editor,o=e("./edit_session").EditSession,u=e("./undomanager").UndoManager,a=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.edit=function(e,n){if(typeof e=="string"){var i=e;e=document.getElementById(i);if(!e)throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var o="";if(e&&/input|textarea/i.test(e.tagName)){var u=e;o=u.value,e=r.createElement("pre"),u.parentNode.replaceChild(e,u)}else e&&(o=e.textContent,e.innerHTML="");var f=t.createEditSession(o),l=new s(new a(e),f,n),c={document:f,editor:l,onResize:l.resize.bind(l,null)};return u&&(c.textarea=u),l.on("destroy",function(){c.editor.container.env=null}),l.container.env=l.env=c,l},t.createEditSession=function(e,t){var n=new o(e,t);return n.setUndoManager(new u),n},t.Range=i,t.Editor=s,t.EditSession=o,t.UndoManager=u,t.VirtualRenderer=a,t.version=t.config.version}); (function() { ace.require(["ace/ace"], function(a) { if (a) { a.config.init(true); diff --git a/javascripts/vendor/ace/ext-language_tools.js b/javascripts/vendor/ace/ext-language_tools.js index 05fdcf1dc..71b6f7ed0 100644 --- a/javascripts/vendor/ace/ext-language_tools.js +++ b/javascripts/vendor/ace/ext-language_tools.js @@ -1,4 +1,4 @@ -ace.define("ace/snippets",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/range_list","ace/keyboard/hash_handler","ace/tokenizer","ace/clipboard","ace/editor"],function(e,t,n){"use strict";function p(e){var t=(new Date).toLocaleString("en-us",e);return t.length==1?"0"+t:t}var r=e("./lib/dom"),i=e("./lib/oop"),s=e("./lib/event_emitter").EventEmitter,o=e("./lib/lang"),u=e("./range").Range,a=e("./range_list").RangeList,f=e("./keyboard/hash_handler").HashHandler,l=e("./tokenizer").Tokenizer,c=e("./clipboard"),h={CURRENT_WORD:function(e){return e.session.getTextRange(e.session.getWordRange())},SELECTION:function(e,t,n){var r=e.session.getTextRange();return n?r.replace(/\n\r?([ \t]*\S)/g,"\n"+n+"$1"):r},CURRENT_LINE:function(e){return e.session.getLine(e.getCursorPosition().row)},PREV_LINE:function(e){return e.session.getLine(e.getCursorPosition().row-1)},LINE_INDEX:function(e){return e.getCursorPosition().row},LINE_NUMBER:function(e){return e.getCursorPosition().row+1},SOFT_TABS:function(e){return e.session.getUseSoftTabs()?"YES":"NO"},TAB_SIZE:function(e){return e.session.getTabSize()},CLIPBOARD:function(e){return c.getText&&c.getText()},FILENAME:function(e){return/[^/\\]*$/.exec(this.FILEPATH(e))[0]},FILENAME_BASE:function(e){return/[^/\\]*$/.exec(this.FILEPATH(e))[0].replace(/\.[^.]*$/,"")},DIRECTORY:function(e){return this.FILEPATH(e).replace(/[^/\\]*$/,"")},FILEPATH:function(e){return"/not implemented.txt"},WORKSPACE_NAME:function(){return"Unknown"},FULLNAME:function(){return"Unknown"},BLOCK_COMMENT_START:function(e){var t=e.session.$mode||{};return t.blockComment&&t.blockComment.start||""},BLOCK_COMMENT_END:function(e){var t=e.session.$mode||{};return t.blockComment&&t.blockComment.end||""},LINE_COMMENT:function(e){var t=e.session.$mode||{};return t.lineCommentStart||""},CURRENT_YEAR:p.bind(null,{year:"numeric"}),CURRENT_YEAR_SHORT:p.bind(null,{year:"2-digit"}),CURRENT_MONTH:p.bind(null,{month:"numeric"}),CURRENT_MONTH_NAME:p.bind(null,{month:"long"}),CURRENT_MONTH_NAME_SHORT:p.bind(null,{month:"short"}),CURRENT_DATE:p.bind(null,{day:"2-digit"}),CURRENT_DAY_NAME:p.bind(null,{weekday:"long"}),CURRENT_DAY_NAME_SHORT:p.bind(null,{weekday:"short"}),CURRENT_HOUR:p.bind(null,{hour:"2-digit",hour12:!1}),CURRENT_MINUTE:p.bind(null,{minute:"2-digit"}),CURRENT_SECOND:p.bind(null,{second:"2-digit"})};h.SELECTED_TEXT=h.SELECTION;var d=function(){this.snippetMap={},this.snippetNameMap={}};(function(){i.implement(this,s),this.getTokenizer=function(){return d.$tokenizer||this.createTokenizer()},this.createTokenizer=function(){function e(e){return e=e.substr(1),/^\d+$/.test(e)?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function t(e){return"(?:[^\\\\"+e+"]|\\\\.)"}var n={regex:"/("+t("/")+"+)/",onMatch:function(e,t,n){var r=n[0];return r.fmtString=!0,r.guard=e.slice(1,-1),r.flag="",""},next:"formatString"};return d.$tokenizer=new l({start:[{regex:/\\./,onMatch:function(e,t,n){var r=e[1];return r=="}"&&n.length?e=r:"`$\\".indexOf(r)!=-1&&(e=r),[e]}},{regex:/}/,onMatch:function(e,t,n){return[n.length?n.shift():e]}},{regex:/\$(?:\d+|\w+)/,onMatch:e},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(t,n,r){var i=e(t.substr(1));return r.unshift(i[0]),i},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+t("\\|")+"*\\|",onMatch:function(e,t,n){var r=e.slice(1,-1).replace(/\\[,|\\]|,/g,function(e){return e.length==2?e[1]:"\0"}).split("\0").map(function(e){return{value:e}});return n[0].choices=r,[r[0]]},next:"start"},n,{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:/:/,onMatch:function(e,t,n){return n.length&&n[0].expectElse?(n[0].expectElse=!1,n[0].ifEnd={elseEnd:n[0]},[n[0].ifEnd]):":"}},{regex:/\\./,onMatch:function(e,t,n){var r=e[1];return r=="}"&&n.length?e=r:"`$\\".indexOf(r)!=-1?e=r:r=="n"?e="\n":r=="t"?e=" ":"ulULE".indexOf(r)!=-1&&(e={changeCase:r,local:r>"a"}),[e]}},{regex:"/\\w*}",onMatch:function(e,t,n){var r=n.shift();return r&&(r.flag=e.slice(1,-1)),this.next=r&&r.tabstopId?"start":"",[r||e]},next:"start"},{regex:/\$(?:\d+|\w+)/,onMatch:function(e,t,n){return[{text:e.slice(1)}]}},{regex:/\${\w+/,onMatch:function(e,t,n){var r={text:e.slice(2)};return n.unshift(r),[r]},next:"formatStringVar"},{regex:/\n/,token:"newline",merge:!1},{regex:/}/,onMatch:function(e,t,n){var r=n.shift();return this.next=r&&r.tabstopId?"start":"",[r||e]},next:"start"}],formatStringVar:[{regex:/:\/\w+}/,onMatch:function(e,t,n){var r=n[0];return r.formatFunction=e.slice(2,-1),[n.shift()]},next:"formatString"},n,{regex:/:[\?\-+]?/,onMatch:function(e,t,n){e[1]=="+"&&(n[0].ifEnd=n[0]),e[1]=="?"&&(n[0].expectElse=!0)},next:"formatString"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"formatString"}]}),d.$tokenizer},this.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map(function(e){return e.value||e})},this.getVariableValue=function(e,t,n){if(/^\d+$/.test(t))return(this.variables.__||{})[t]||"";if(/^[A-Z]\d+$/.test(t))return(this.variables[t[0]+"__"]||{})[t.substr(1)]||"";t=t.replace(/^TM_/,"");if(!this.variables.hasOwnProperty(t))return"";var r=this.variables[t];return typeof r=="function"&&(r=this.variables[t](e,t,n)),r==null?"":r},this.variables=h,this.tmStrFormat=function(e,t,n){if(!t.fmt)return e;var r=t.flag||"",i=t.guard;i=new RegExp(i,r.replace(/[^gim]/g,""));var s=typeof t.fmt=="string"?this.tokenizeTmSnippet(t.fmt,"formatString"):t.fmt,o=this,u=e.replace(i,function(){var e=o.variables.__;o.variables.__=[].slice.call(arguments);var t=o.resolveVariables(s,n),r="E";for(var i=0;i1?(y=t[t.length-1].length,g+=t.length-1):y+=e.length,b+=e}else e&&(e.start?e.end={row:g,column:y}:e.start={row:g,column:y})});var w=e.getSelectionRange(),E=e.session.replace(w,b),S=new v(e),x=e.inVirtualSelectionMode&&e.selection.index;S.addTabstops(u,w.start,E,x)},this.insertSnippet=function(e,t){var n=this;if(e.inVirtualSelectionMode)return n.insertSnippetForSelection(e,t);e.forEachSelection(function(){n.insertSnippetForSelection(e,t)},null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},this.$getScope=function(e){var t=e.session.$mode.$id||"";t=t.split("/").pop();if(t==="html"||t==="php"){t==="php"&&!e.session.$mode.inlinePhp&&(t="html");var n=e.getCursorPosition(),r=e.session.getState(n.row);typeof r=="object"&&(r=r[0]),r.substring&&(r.substring(0,3)=="js-"?t="javascript":r.substring(0,4)=="css-"?t="css":r.substring(0,4)=="php-"&&(t="php"))}return t},this.getActiveScopes=function(e){var t=this.$getScope(e),n=[t],r=this.snippetMap;return r[t]&&r[t].includeScopes&&n.push.apply(n,r[t].includeScopes),n.push("_"),n},this.expandWithTab=function(e,t){var n=this,r=e.forEachSelection(function(){return n.expandSnippetForSelection(e,t)},null,{keepOrder:!0});return r&&e.tabstopManager&&e.tabstopManager.tabNext(),r},this.expandSnippetForSelection=function(e,t){var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=r.substring(0,n.column),s=r.substr(n.column),o=this.snippetMap,u;return this.getActiveScopes(e).some(function(e){var t=o[e];return t&&(u=this.findMatchingSnippet(t,i,s)),!!u},this),u?t&&t.dryRun?!0:(e.session.doc.removeInLine(n.row,n.column-u.replaceBefore.length,n.column+u.replaceAfter.length),this.variables.M__=u.matchBefore,this.variables.T__=u.matchAfter,this.insertSnippetForSelection(e,u.content),this.variables.M__=this.variables.T__=null,!0):!1},this.findMatchingSnippet=function(e,t,n){for(var r=e.length;r--;){var i=e[r];if(i.startRe&&!i.startRe.test(t))continue;if(i.endRe&&!i.endRe.test(n))continue;if(!i.startRe&&!i.endRe)continue;return i.matchBefore=i.startRe?i.startRe.exec(t):[""],i.matchAfter=i.endRe?i.endRe.exec(n):[""],i.replaceBefore=i.triggerRe?i.triggerRe.exec(t)[0]:"",i.replaceAfter=i.endTriggerRe?i.endTriggerRe.exec(n)[0]:"",i}},this.snippetMap={},this.snippetNameMap={},this.register=function(e,t){function s(e){return e&&!/^\^?\(.*\)\$?$|^\\b$/.test(e)&&(e="(?:"+e+")"),e||""}function u(e,t,n){return e=s(e),t=s(t),n?(e=t+e,e&&e[e.length-1]!="$"&&(e+="$")):(e+=t,e&&e[0]!="^"&&(e="^"+e)),new RegExp(e)}function a(e){e.scope||(e.scope=t||"_"),t=e.scope,n[t]||(n[t]=[],r[t]={});var s=r[t];if(e.name){var a=s[e.name];a&&i.unregister(a),s[e.name]=e}n[t].push(e),e.prefix&&(e.tabTrigger=e.prefix),!e.content&&e.body&&(e.content=Array.isArray(e.body)?e.body.join("\n"):e.body),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\w/.test(e.tabTrigger)&&(e.guard="\\b"),e.trigger=o.escapeRegExp(e.tabTrigger));if(!e.trigger&&!e.guard&&!e.endTrigger&&!e.endGuard)return;e.startRe=u(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger),e.endRe=u(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger)}var n=this.snippetMap,r=this.snippetNameMap,i=this;e||(e=[]),Array.isArray(e)?e.forEach(a):Object.keys(e).forEach(function(t){a(e[t])}),this._signal("registerSnippets",{scope:t})},this.unregister=function(e,t){function i(e){var i=r[e.scope||t];if(i&&i[e.name]){delete i[e.name];var s=n[e.scope||t],o=s&&s.indexOf(e);o>=0&&s.splice(o,1)}}var n=this.snippetMap,r=this.snippetNameMap;e.content?i(e):Array.isArray(e)&&e.forEach(i)},this.parseSnippetFile=function(e){e=e.replace(/\r/g,"");var t=[],n={},r=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm,i;while(i=r.exec(e)){if(i[1])try{n=JSON.parse(i[1]),t.push(n)}catch(s){}if(i[4])n.content=i[4].replace(/^\t/gm,""),t.push(n),n={};else{var o=i[2],u=i[3];if(o=="regex"){var a=/\/((?:[^\/\\]|\\.)*)|$/g;n.guard=a.exec(u)[1],n.trigger=a.exec(u)[1],n.endTrigger=a.exec(u)[1],n.endGuard=a.exec(u)[1]}else o=="snippet"?(n.tabTrigger=u.match(/^\S*/)[0],n.name||(n.name=u)):o&&(n[o]=u)}}return t},this.getSnippetByName=function(e,t){var n=this.snippetNameMap,r;return this.getActiveScopes(t).some(function(t){var i=n[t];return i&&(r=i[e]),!!r},this),r}}).call(d.prototype);var v=function(e){if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=o.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)};(function(){this.attach=function(e){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener("change",this.$onChange),this.editor.removeListener("changeSelection",this.$onChangeSelection),this.editor.removeListener("changeSession",this.$onChangeSession),this.editor.commands.removeListener("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(e){var t=e.action[0]=="r",n=this.selectedTabstop||{},r=n.parents||{},i=(this.tabstops||[]).slice();for(var s=0;s2&&(this.tabstops.length&&o.push(o.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,o))},this.addTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){e.markerId||(e.markerId=t.addMarker(e,"ace_snippet-marker","text"))})},this.removeTabstopMarkers=function(e){var t=this.editor.session;e.forEach(function(e){t.removeMarker(e.markerId),e.markerId=null})},this.removeRange=function(e){var t=e.tabstop.indexOf(e);t!=-1&&e.tabstop.splice(t,1),t=this.ranges.indexOf(e),t!=-1&&this.ranges.splice(t,1),t=e.tabstop.rangeList.ranges.indexOf(e),t!=-1&&e.tabstop.splice(t,1),this.editor.session.removeMarker(e.markerId),e.tabstop.length||(t=this.tabstops.indexOf(e.tabstop),t!=-1&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},this.keyboardHandler=new f,this.keyboardHandler.bindKeys({Tab:function(e){if(t.snippetManager&&t.snippetManager.expandWithTab(e))return;e.tabstopManager.tabNext(1),e.renderer.scrollCursorIntoView()},"Shift-Tab":function(e){e.tabstopManager.tabNext(-1),e.renderer.scrollCursorIntoView()},Esc:function(e){e.tabstopManager.detach()}})}).call(v.prototype);var m=function(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row},g=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};r.importCssString("\n.ace_snippet-marker {\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n background: rgba(194, 193, 208, 0.09);\n border: 1px dotted rgba(211, 208, 235, 0.62);\n position: absolute;\n}","snippets.css",!1),t.snippetManager=new d;var y=e("./editor").Editor;(function(){this.insertSnippet=function(e,n){return t.snippetManager.insertSnippet(this,e,n)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(y.prototype)}),ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../virtual_renderer").VirtualRenderer,i=e("../editor").Editor,s=e("../range").Range,o=e("../lib/event"),u=e("../lib/lang"),a=e("../lib/dom"),f=function(e){return"suggest-aria-id:".concat(e)},l=function(e){var t=new r(e);t.$maxLines=4;var n=new i(t);return n.setHighlightActiveLine(!1),n.setShowPrintMargin(!1),n.renderer.setShowGutter(!1),n.renderer.setHighlightGutterLine(!1),n.$mouseHandler.$focusTimeout=0,n.$highlightTagPending=!0,n},c=function(e){var t=a.createElement("div"),n=new l(t);e&&e.appendChild(t),t.style.display="none",n.renderer.content.style.cursor="default",n.renderer.setStyle("ace_autocomplete"),n.renderer.container.setAttribute("role","listbox"),n.renderer.container.setAttribute("aria-label","Autocomplete suggestions"),n.setOption("displayIndentGuides",!1),n.setOption("dragDelay",150);var r=function(){};n.focus=r,n.$isFocused=!0,n.renderer.$cursorLayer.restartTimer=r,n.renderer.$cursorLayer.element.style.opacity=0,n.renderer.$maxLines=8,n.renderer.$keepTextAreaAtCursor=!1,n.setHighlightActiveLine(!1),n.session.highlight(""),n.session.$searchHighlight.clazz="ace_highlight-marker",n.on("mousedown",function(e){var t=e.getDocumentPosition();n.selection.moveToPosition(t),h.start.row=h.end.row=t.row,e.stop()});var i,c=new s(-1,0,-1,Infinity),h=new s(-1,0,-1,Infinity);h.id=n.session.addMarker(h,"ace_active-line","fullLine"),n.setSelectOnHover=function(e){e?c.id&&(n.session.removeMarker(c.id),c.id=null):c.id=n.session.addMarker(c,"ace_line-hover","fullLine")},n.setSelectOnHover(!1),n.on("mousemove",function(e){if(!i){i=e;return}if(i.x==e.x&&i.y==e.y)return;i=e,i.scrollTop=n.renderer.scrollTop;var t=i.getDocumentPosition().row;c.start.row!=t&&(c.id||n.setRow(t),d(t))}),n.renderer.on("beforeRender",function(){if(i&&c.start.row!=-1){i.$pos=null;var e=i.getDocumentPosition().row;c.id||n.setRow(e),d(e,!0)}}),n.renderer.on("afterRender",function(){var e=n.getRow(),t=n.renderer.$textLayer,r=t.element.childNodes[e-t.config.firstRow],i=document.activeElement;r!==t.selectedNode&&t.selectedNode&&(a.removeCssClass(t.selectedNode,"ace_selected"),i.removeAttribute("aria-activedescendant"),t.selectedNode.removeAttribute("id")),t.selectedNode=r;if(r){a.addCssClass(r,"ace_selected");var s=f(e);r.id=s,n.renderer.container.setAttribute("aria-activedescendant",s),i.setAttribute("aria-activedescendant",s),r.setAttribute("role","option"),r.setAttribute("aria-label",n.getData(e).value),r.setAttribute("aria-setsize",n.data.length),r.setAttribute("aria-posinset",e)}});var p=function(){d(-1)},d=function(e,t){e!==c.start.row&&(c.start.row=c.end.row=e,t||n.session._emit("changeBackMarker"),n._emit("changeHoverMarker"))};n.getHoveredRow=function(){return c.start.row},o.addListener(n.container,"mouseout",p),n.on("hide",p),n.on("changeSelection",p),n.session.doc.getLength=function(){return n.data.length},n.session.doc.getLine=function(e){var t=n.data[e];return typeof t=="string"?t:t&&t.value||""};var v=n.session.bgTokenizer;return v.$tokenizeRow=function(e){function s(e,n){e&&r.push({type:(t.className||"")+(n||""),value:e})}var t=n.data[e],r=[];if(!t)return r;typeof t=="string"&&(t={value:t});var i=t.caption||t.value||t.name,o=i.toLowerCase(),u=(n.filterText||"").toLowerCase(),a=0,f=0;for(var l=0;l<=u.length;l++)if(l!=f&&(t.matchMask&1<o/2&&!r;c&&l+t+f>o?(a.$maxPixelHeight=l-2*this.$borderSize,s.style.top="",s.style.bottom=o-l+"px",n.isTopdown=!1):(l+=t,a.$maxPixelHeight=o-l-.2*t,s.style.top=l+"px",s.style.bottom="",n.isTopdown=!0),s.style.display="";var h=e.left;h+s.offsetWidth>u&&(h=u-s.offsetWidth),s.style.left=h+"px",this._signal("show"),i=null,n.isOpen=!0},n.goTo=function(e){var t=this.getRow(),n=this.session.getLength()-1;switch(e){case"up":t=t<=0?n:t-1;break;case"down":t=t>=n?-1:t+1;break;case"start":t=0;break;case"end":t=n}this.setRow(t)},n.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},n.$imageSize=0,n.$borderSize=1,n};a.importCssString("\n.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\n background-color: #CAD6FA;\n z-index: 1;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\n background-color: #3a674e;\n}\n.ace_editor.ace_autocomplete .ace_line-hover {\n border: 1px solid #abbffe;\n margin-top: -1px;\n background: rgba(233,233,253,0.4);\n position: absolute;\n z-index: 2;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_line-hover {\n border: 1px solid rgba(109, 150, 13, 0.8);\n background: rgba(58, 103, 78, 0.62);\n}\n.ace_completion-meta {\n opacity: 0.5;\n margin: 0.9em;\n}\n.ace_completion-message {\n color: blue;\n}\n.ace_editor.ace_autocomplete .ace_completion-highlight{\n color: #2d69c7;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{\n color: #93ca12;\n}\n.ace_editor.ace_autocomplete {\n width: 300px;\n z-index: 200000;\n border: 1px lightgray solid;\n position: fixed;\n box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n line-height: 1.4;\n background: #fefefe;\n color: #111;\n}\n.ace_dark.ace_editor.ace_autocomplete {\n border: 1px #484747 solid;\n box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51);\n line-height: 1.4;\n background: #25282c;\n color: #c1c1c1;\n}","autocompletion.css",!1),t.AcePopup=c,t.$singleLineEditor=l,t.getAriaId=f}),ace.define("ace/autocomplete/util",["require","exports","module"],function(e,t,n){"use strict";t.parForEach=function(e,t,n){var r=0,i=e.length;i===0&&n();for(var s=0;s=0;s--){if(!n.test(e[s]))break;i.push(e[s])}return i.reverse().join("")},t.retrieveFollowingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t;sthis.filterText&&e.lastIndexOf(this.filterText,0)===0)var t=this.filtered;else var t=this.all;this.filterText=e,t=this.filterCompletions(t,this.filterText),t=t.sort(function(e,t){return t.exactMatch-e.exactMatch||t.$score-e.$score||(e.caption||e.value).localeCompare(t.caption||t.value)});var n=null;t=t.filter(function(e){var t=e.snippet||e.caption||e.value;return t===n?!1:(n=t,!0)}),this.filtered=t},this.filterCompletions=function(e,t){var n=[],r=t.toUpperCase(),i=t.toLowerCase();e:for(var s=0,o;o=e[s];s++){var u=o.caption||o.value||o.snippet;if(!u)continue;var a=-1,f=0,l=0,c,h;if(this.exactMatch){if(t!==u.substr(0,t.length))continue e}else{var p=u.toLowerCase().indexOf(i);if(p>-1)l=p;else for(var d=0;d=0?m<0||v0&&(a===-1&&(l+=10),l+=h,f|=1<",o.escapeHTML(e.caption),"","
",o.escapeHTML(l(e.snippet))].join(""))}},h=[c,a,f];t.setCompleters=function(e){h.length=0,e&&h.push.apply(h,e)},t.addCompleter=function(e){h.push(e)},t.textCompleter=a,t.keyWordCompleter=f,t.snippetCompleter=c;var p={name:"expandSnippet",exec:function(e){return r.expandWithTab(e)},bindKey:"Tab"},d=function(e,t){v(t.session.$mode)},v=function(e){typeof e=="string"&&(e=s.$modes[e]);if(!e)return;r.files||(r.files={}),m(e.$id,e.snippetFileId),e.modes&&e.modes.forEach(v)},m=function(e,t){if(!t||!e||r.files[e])return;r.files[e]={},s.loadModule(t,function(t){if(!t)return;r.files[e]=t,!t.snippets&&t.snippetText&&(t.snippets=r.parseSnippetFile(t.snippetText)),r.register(t.snippets||[],t.scope),t.includeScopes&&(r.snippetMap[t.scope].includeScopes=t.includeScopes,t.includeScopes.forEach(function(e){v("ace/mode/"+e)}))})},g=function(e){var t=e.editor,n=t.completer&&t.completer.activated;if(e.command.name==="backspace")n&&!u.getCompletionPrefix(t)&&t.completer.detach();else if(e.command.name==="insertstring"){var r=u.getCompletionPrefix(t);if(r&&!n){var s=i.for(t);s.autoInsert=!1,s.showPopup(t)}}},y=e("../editor").Editor;e("../config").defineOptions(y.prototype,"editor",{enableBasicAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:h),this.commands.addCommand(i.startCommand)):this.commands.removeCommand(i.startCommand)},value:!1},enableLiveAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:h),this.commands.on("afterExec",g)):this.commands.removeListener("afterExec",g)},value:!1},enableSnippets:{set:function(e){e?(this.commands.addCommand(p),this.on("changeMode",d),d(null,this)):(this.commands.removeCommand(p),this.off("changeMode",d))},value:!1}})}); (function() { +ace.define("ace/snippets",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/range_list","ace/keyboard/hash_handler","ace/tokenizer","ace/clipboard","ace/editor"],function(e,t,n){"use strict";function p(e){var t=(new Date).toLocaleString("en-us",e);return t.length==1?"0"+t:t}var r=e("./lib/dom"),i=e("./lib/oop"),s=e("./lib/event_emitter").EventEmitter,o=e("./lib/lang"),u=e("./range").Range,a=e("./range_list").RangeList,f=e("./keyboard/hash_handler").HashHandler,l=e("./tokenizer").Tokenizer,c=e("./clipboard"),h={CURRENT_WORD:function(e){return e.session.getTextRange(e.session.getWordRange())},SELECTION:function(e,t,n){var r=e.session.getTextRange();return n?r.replace(/\n\r?([ \t]*\S)/g,"\n"+n+"$1"):r},CURRENT_LINE:function(e){return e.session.getLine(e.getCursorPosition().row)},PREV_LINE:function(e){return e.session.getLine(e.getCursorPosition().row-1)},LINE_INDEX:function(e){return e.getCursorPosition().row},LINE_NUMBER:function(e){return e.getCursorPosition().row+1},SOFT_TABS:function(e){return e.session.getUseSoftTabs()?"YES":"NO"},TAB_SIZE:function(e){return e.session.getTabSize()},CLIPBOARD:function(e){return c.getText&&c.getText()},FILENAME:function(e){return/[^/\\]*$/.exec(this.FILEPATH(e))[0]},FILENAME_BASE:function(e){return/[^/\\]*$/.exec(this.FILEPATH(e))[0].replace(/\.[^.]*$/,"")},DIRECTORY:function(e){return this.FILEPATH(e).replace(/[^/\\]*$/,"")},FILEPATH:function(e){return"/not implemented.txt"},WORKSPACE_NAME:function(){return"Unknown"},FULLNAME:function(){return"Unknown"},BLOCK_COMMENT_START:function(e){var t=e.session.$mode||{};return t.blockComment&&t.blockComment.start||""},BLOCK_COMMENT_END:function(e){var t=e.session.$mode||{};return t.blockComment&&t.blockComment.end||""},LINE_COMMENT:function(e){var t=e.session.$mode||{};return t.lineCommentStart||""},CURRENT_YEAR:p.bind(null,{year:"numeric"}),CURRENT_YEAR_SHORT:p.bind(null,{year:"2-digit"}),CURRENT_MONTH:p.bind(null,{month:"numeric"}),CURRENT_MONTH_NAME:p.bind(null,{month:"long"}),CURRENT_MONTH_NAME_SHORT:p.bind(null,{month:"short"}),CURRENT_DATE:p.bind(null,{day:"2-digit"}),CURRENT_DAY_NAME:p.bind(null,{weekday:"long"}),CURRENT_DAY_NAME_SHORT:p.bind(null,{weekday:"short"}),CURRENT_HOUR:p.bind(null,{hour:"2-digit",hour12:!1}),CURRENT_MINUTE:p.bind(null,{minute:"2-digit"}),CURRENT_SECOND:p.bind(null,{second:"2-digit"})};h.SELECTED_TEXT=h.SELECTION;var d=function(){function e(){this.snippetMap={},this.snippetNameMap={},this.variables=h}return e.prototype.getTokenizer=function(){return e.$tokenizer||this.createTokenizer()},e.prototype.createTokenizer=function(){function t(e){return e=e.substr(1),/^\d+$/.test(e)?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function n(e){return"(?:[^\\\\"+e+"]|\\\\.)"}var r={regex:"/("+n("/")+"+)/",onMatch:function(e,t,n){var r=n[0];return r.fmtString=!0,r.guard=e.slice(1,-1),r.flag="",""},next:"formatString"};return e.$tokenizer=new l({start:[{regex:/\\./,onMatch:function(e,t,n){var r=e[1];return r=="}"&&n.length?e=r:"`$\\".indexOf(r)!=-1&&(e=r),[e]}},{regex:/}/,onMatch:function(e,t,n){return[n.length?n.shift():e]}},{regex:/\$(?:\d+|\w+)/,onMatch:t},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(e,n,r){var i=t(e.substr(1));return r.unshift(i[0]),i},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+n("\\|")+"*\\|",onMatch:function(e,t,n){var r=e.slice(1,-1).replace(/\\[,|\\]|,/g,function(e){return e.length==2?e[1]:"\0"}).split("\0").map(function(e){return{value:e}});return n[0].choices=r,[r[0]]},next:"start"},r,{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:/:/,onMatch:function(e,t,n){return n.length&&n[0].expectElse?(n[0].expectElse=!1,n[0].ifEnd={elseEnd:n[0]},[n[0].ifEnd]):":"}},{regex:/\\./,onMatch:function(e,t,n){var r=e[1];return r=="}"&&n.length?e=r:"`$\\".indexOf(r)!=-1?e=r:r=="n"?e="\n":r=="t"?e=" ":"ulULE".indexOf(r)!=-1&&(e={changeCase:r,local:r>"a"}),[e]}},{regex:"/\\w*}",onMatch:function(e,t,n){var r=n.shift();return r&&(r.flag=e.slice(1,-1)),this.next=r&&r.tabstopId?"start":"",[r||e]},next:"start"},{regex:/\$(?:\d+|\w+)/,onMatch:function(e,t,n){return[{text:e.slice(1)}]}},{regex:/\${\w+/,onMatch:function(e,t,n){var r={text:e.slice(2)};return n.unshift(r),[r]},next:"formatStringVar"},{regex:/\n/,token:"newline",merge:!1},{regex:/}/,onMatch:function(e,t,n){var r=n.shift();return this.next=r&&r.tabstopId?"start":"",[r||e]},next:"start"}],formatStringVar:[{regex:/:\/\w+}/,onMatch:function(e,t,n){var r=n[0];return r.formatFunction=e.slice(2,-1),[n.shift()]},next:"formatString"},r,{regex:/:[\?\-+]?/,onMatch:function(e,t,n){e[1]=="+"&&(n[0].ifEnd=n[0]),e[1]=="?"&&(n[0].expectElse=!0)},next:"formatString"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"formatString"}]}),e.$tokenizer},e.prototype.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map(function(e){return e.value||e})},e.prototype.getVariableValue=function(e,t,n){if(/^\d+$/.test(t))return(this.variables.__||{})[t]||"";if(/^[A-Z]\d+$/.test(t))return(this.variables[t[0]+"__"]||{})[t.substr(1)]||"";t=t.replace(/^TM_/,"");if(!this.variables.hasOwnProperty(t))return"";var r=this.variables[t];return typeof r=="function"&&(r=this.variables[t](e,t,n)),r==null?"":r},e.prototype.tmStrFormat=function(e,t,n){if(!t.fmt)return e;var r=t.flag||"",i=t.guard;i=new RegExp(i,r.replace(/[^gim]/g,""));var s=typeof t.fmt=="string"?this.tokenizeTmSnippet(t.fmt,"formatString"):t.fmt,o=this,u=e.replace(i,function(){var e=o.variables.__;o.variables.__=[].slice.call(arguments);var t=o.resolveVariables(s,n),r="E";for(var i=0;i=0&&s.splice(o,1)}}var n=this.snippetMap,r=this.snippetNameMap;e.content?i(e):Array.isArray(e)&&e.forEach(i)},e.prototype.parseSnippetFile=function(e){e=e.replace(/\r/g,"");var t=[],n={},r=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm,i;while(i=r.exec(e)){if(i[1])try{n=JSON.parse(i[1]),t.push(n)}catch(s){}if(i[4])n.content=i[4].replace(/^\t/gm,""),t.push(n),n={};else{var o=i[2],u=i[3];if(o=="regex"){var a=/\/((?:[^\/\\]|\\.)*)|$/g;n.guard=a.exec(u)[1],n.trigger=a.exec(u)[1],n.endTrigger=a.exec(u)[1],n.endGuard=a.exec(u)[1]}else o=="snippet"?(n.tabTrigger=u.match(/^\S*/)[0],n.name||(n.name=u)):o&&(n[o]=u)}}return t},e.prototype.getSnippetByName=function(e,t){var n=this.snippetNameMap,r;return this.getActiveScopes(t).some(function(t){var i=n[t];return i&&(r=i[e]),!!r},this),r},e}();i.implement(d.prototype,s);var v=function(e,t,n){function l(e){var t=[];for(var n=0;n1?(y=t[t.length-1].length,g+=t.length-1):y+=e.length,b+=e}else e&&(e.start?e.end={row:g,column:y}:e.start={row:g,column:y})}),{text:b,tabstops:a,tokens:u}},m=function(){function e(e){this.index=0,this.ranges=[],this.tabstops=[];if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=o.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)}return e.prototype.attach=function(e){this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.session=e.session,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},e.prototype.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges.length=0,this.tabstops.length=0,this.selectedTabstop=null,this.editor.off("change",this.$onChange),this.editor.off("changeSelection",this.$onChangeSelection),this.editor.off("changeSession",this.$onChangeSession),this.editor.commands.off("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.session=null,this.editor=null},e.prototype.onChange=function(e){var t=e.action[0]=="r",n=this.selectedTabstop||{},r=n.parents||{},i=this.tabstops.slice();for(var s=0;s2&&(this.tabstops.length&&o.push(o.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,o))},e.prototype.addTabstopMarkers=function(e){var t=this.session;e.forEach(function(e){e.markerId||(e.markerId=t.addMarker(e,"ace_snippet-marker","text"))})},e.prototype.removeTabstopMarkers=function(e){var t=this.session;e.forEach(function(e){t.removeMarker(e.markerId),e.markerId=null})},e.prototype.removeRange=function(e){var t=e.tabstop.indexOf(e);t!=-1&&e.tabstop.splice(t,1),t=this.ranges.indexOf(e),t!=-1&&this.ranges.splice(t,1),t=e.tabstop.rangeList.ranges.indexOf(e),t!=-1&&e.tabstop.splice(t,1),this.session.removeMarker(e.markerId),e.tabstop.length||(t=this.tabstops.indexOf(e.tabstop),t!=-1&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},e}();m.prototype.keyboardHandler=new f,m.prototype.keyboardHandler.bindKeys({Tab:function(e){if(t.snippetManager&&t.snippetManager.expandWithTab(e))return;e.tabstopManager.tabNext(1),e.renderer.scrollCursorIntoView()},"Shift-Tab":function(e){e.tabstopManager.tabNext(-1),e.renderer.scrollCursorIntoView()},Esc:function(e){e.tabstopManager.detach()}});var g=function(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row},y=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};r.importCssString("\n.ace_snippet-marker {\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n background: rgba(194, 193, 208, 0.09);\n border: 1px dotted rgba(211, 208, 235, 0.62);\n position: absolute;\n}","snippets.css",!1),t.snippetManager=new d;var b=e("./editor").Editor;(function(){this.insertSnippet=function(e,n){return t.snippetManager.insertSnippet(this,e,n)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(b.prototype)}),ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/config"],function(e,t,n){"use strict";var r=e("../virtual_renderer").VirtualRenderer,i=e("../editor").Editor,s=e("../range").Range,o=e("../lib/event"),u=e("../lib/lang"),a=e("../lib/dom"),f=e("../config").nls,l=function(e){return"suggest-aria-id:".concat(e)},c=function(e){var t=new r(e);t.$maxLines=4;var n=new i(t);return n.setHighlightActiveLine(!1),n.setShowPrintMargin(!1),n.renderer.setShowGutter(!1),n.renderer.setHighlightGutterLine(!1),n.$mouseHandler.$focusTimeout=0,n.$highlightTagPending=!0,n},h=function(){function e(e){var t=a.createElement("div"),n=new c(t);e&&e.appendChild(t),t.style.display="none",n.renderer.content.style.cursor="default",n.renderer.setStyle("ace_autocomplete"),n.renderer.$textLayer.element.setAttribute("role","listbox"),n.renderer.$textLayer.element.setAttribute("aria-label",f("Autocomplete suggestions")),n.renderer.textarea.setAttribute("aria-hidden","true"),n.setOption("displayIndentGuides",!1),n.setOption("dragDelay",150);var r=function(){};n.focus=r,n.$isFocused=!0,n.renderer.$cursorLayer.restartTimer=r,n.renderer.$cursorLayer.element.style.opacity=0,n.renderer.$maxLines=8,n.renderer.$keepTextAreaAtCursor=!1,n.setHighlightActiveLine(!1),n.session.highlight(""),n.session.$searchHighlight.clazz="ace_highlight-marker",n.on("mousedown",function(e){var t=e.getDocumentPosition();n.selection.moveToPosition(t),p.start.row=p.end.row=t.row,e.stop()});var i,h=new s(-1,0,-1,Infinity),p=new s(-1,0,-1,Infinity);p.id=n.session.addMarker(p,"ace_active-line","fullLine"),n.setSelectOnHover=function(e){e?h.id&&(n.session.removeMarker(h.id),h.id=null):h.id=n.session.addMarker(h,"ace_line-hover","fullLine")},n.setSelectOnHover(!1),n.on("mousemove",function(e){if(!i){i=e;return}if(i.x==e.x&&i.y==e.y)return;i=e,i.scrollTop=n.renderer.scrollTop;var t=i.getDocumentPosition().row;h.start.row!=t&&(h.id||n.setRow(t),v(t))}),n.renderer.on("beforeRender",function(){if(i&&h.start.row!=-1){i.$pos=null;var e=i.getDocumentPosition().row;h.id||n.setRow(e),v(e,!0)}}),n.renderer.on("afterRender",function(){var e=n.getRow(),t=n.renderer.$textLayer,r=t.element.childNodes[e-t.config.firstRow],i=document.activeElement;r!==t.selectedNode&&t.selectedNode&&(a.removeCssClass(t.selectedNode,"ace_selected"),i.removeAttribute("aria-activedescendant"),t.selectedNode.removeAttribute("id")),t.selectedNode=r;if(r){a.addCssClass(r,"ace_selected");var s=l(e);r.id=s,t.element.setAttribute("aria-activedescendant",s),i.setAttribute("aria-activedescendant",s),r.setAttribute("role","option"),r.setAttribute("aria-label",n.getData(e).value),r.setAttribute("aria-setsize",n.data.length),r.setAttribute("aria-posinset",e+1),r.setAttribute("aria-describedby","doc-tooltip")}});var d=function(){v(-1)},v=function(e,t){e!==h.start.row&&(h.start.row=h.end.row=e,t||n.session._emit("changeBackMarker"),n._emit("changeHoverMarker"))};n.getHoveredRow=function(){return h.start.row},o.addListener(n.container,"mouseout",d),n.on("hide",d),n.on("changeSelection",d),n.session.doc.getLength=function(){return n.data.length},n.session.doc.getLine=function(e){var t=n.data[e];return typeof t=="string"?t:t&&t.value||""};var m=n.session.bgTokenizer;return m.$tokenizeRow=function(e){function s(e,n){e&&r.push({type:(t.className||"")+(n||""),value:e})}var t=n.data[e],r=[];if(!t)return r;typeof t=="string"&&(t={value:t});var i=t.caption||t.value||t.name,o=i.toLowerCase(),u=(n.filterText||"").toLowerCase(),a=0,f=0;for(var l=0;l<=u.length;l++)if(l!=f&&(t.matchMask&1<=l?r="bottom":r="top"),r==="top"?(c.bottom=e.top-this.$borderSize,c.top=c.bottom-l):r==="bottom"&&(c.top=e.top+t+this.$borderSize,c.bottom=c.top+l);var d=c.top>=0&&c.bottom<=u;if(!s&&!d)return!1;d?f.$maxPixelHeight=null:r==="top"?f.$maxPixelHeight=p:f.$maxPixelHeight=h,r==="top"?(o.style.top="",o.style.bottom=u-c.bottom+"px",n.isTopdown=!1):(o.style.top=c.top+"px",o.style.bottom="",n.isTopdown=!0),o.style.display="";var v=e.left;return v+o.offsetWidth>a&&(v=a-o.offsetWidth),o.style.left=v+"px",o.style.right="",n.isOpen||(n.isOpen=!0,this._signal("show"),i=null),n.anchorPos=e,n.anchor=r,!0},n.show=function(e,t,n){this.tryShow(e,t,n?"bottom":undefined,!0)},n.goTo=function(e){var t=this.getRow(),n=this.session.getLength()-1;switch(e){case"up":t=t<=0?n:t-1;break;case"down":t=t>=n?-1:t+1;break;case"start":t=0;break;case"end":t=n}this.setRow(t)},n.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},n.$imageSize=0,n.$borderSize=1,n}return e}();a.importCssString("\n.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\n background-color: #CAD6FA;\n z-index: 1;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\n background-color: #3a674e;\n}\n.ace_editor.ace_autocomplete .ace_line-hover {\n border: 1px solid #abbffe;\n margin-top: -1px;\n background: rgba(233,233,253,0.4);\n position: absolute;\n z-index: 2;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_line-hover {\n border: 1px solid rgba(109, 150, 13, 0.8);\n background: rgba(58, 103, 78, 0.62);\n}\n.ace_completion-meta {\n opacity: 0.5;\n margin-left: 0.9em;\n}\n.ace_completion-message {\n color: blue;\n}\n.ace_editor.ace_autocomplete .ace_completion-highlight{\n color: #2d69c7;\n}\n.ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{\n color: #93ca12;\n}\n.ace_editor.ace_autocomplete {\n width: 300px;\n z-index: 200000;\n border: 1px lightgray solid;\n position: fixed;\n box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n line-height: 1.4;\n background: #fefefe;\n color: #111;\n}\n.ace_dark.ace_editor.ace_autocomplete {\n border: 1px #484747 solid;\n box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51);\n line-height: 1.4;\n background: #25282c;\n color: #c1c1c1;\n}\n.ace_autocomplete .ace_text-layer {\n width: calc(100% - 8px);\n}\n.ace_autocomplete .ace_line {\n display: flex;\n align-items: center;\n}\n.ace_autocomplete .ace_line > * {\n min-width: 0;\n flex: 0 0 auto;\n}\n.ace_autocomplete .ace_line .ace_ {\n flex: 0 1 auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ace_autocomplete .ace_completion-spacer {\n flex: 1;\n}\n","autocompletion.css",!1),t.AcePopup=h,t.$singleLineEditor=c,t.getAriaId=l}),ace.define("ace/autocomplete/inline",["require","exports","module","ace/snippets"],function(e,t,n){"use strict";var r=e("../snippets").snippetManager,i=function(){function e(){this.editor=null}return e.prototype.show=function(e,t,n){n=n||"",e&&this.editor&&this.editor!==e&&(this.hide(),this.editor=null);if(!e||!t)return!1;var i=t.snippet?r.getDisplayTextForSnippet(e,t.snippet):t.value;return!i||!i.startsWith(n)?!1:(this.editor=e,i=i.slice(n.length),i===""?e.removeGhostText():e.setGhostText(i),!0)},e.prototype.isOpen=function(){return this.editor?!!this.editor.renderer.$ghostText:!1},e.prototype.hide=function(){return this.editor?(this.editor.removeGhostText(),!0):!1},e.prototype.destroy=function(){this.hide(),this.editor=null},e}();t.AceInline=i}),ace.define("ace/autocomplete/util",["require","exports","module"],function(e,t,n){"use strict";t.parForEach=function(e,t,n){var r=0,i=e.length;i===0&&n();for(var s=0;s=0;s--){if(!n.test(e[s]))break;i.push(e[s])}return i.reverse().join("")},t.retrieveFollowingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t;sthis.filterText&&e.lastIndexOf(this.filterText,0)===0)var t=this.filtered;else var t=this.all;this.filterText=e,t=this.filterCompletions(t,this.filterText),t=t.sort(function(e,t){return t.exactMatch-e.exactMatch||t.$score-e.$score||(e.caption||e.value).localeCompare(t.caption||t.value)});var n=null;t=t.filter(function(e){var t=e.snippet||e.caption||e.value;return t===n?!1:(n=t,!0)}),this.filtered=t},e.prototype.filterCompletions=function(e,t){var n=[],r=t.toUpperCase(),i=t.toLowerCase();e:for(var s=0,o;o=e[s];s++){var u=!this.ignoreCaption&&o.caption||o.value||o.snippet;if(!u)continue;var a=-1,f=0,l=0,c,h;if(this.exactMatch){if(t!==u.substr(0,t.length))continue e}else{var p=u.toLowerCase().indexOf(i);if(p>-1)l=p;else for(var d=0;d=0?m<0||v0&&(a===-1&&(l+=10),l+=h,f|=1<",o.escapeHTML(e.caption),"","
",o.escapeHTML(l(e.snippet))].join(""))},id:"snippetCompleter"},h=[c,a,f];t.setCompleters=function(e){h.length=0,e&&h.push.apply(h,e)},t.addCompleter=function(e){h.push(e)},t.textCompleter=a,t.keyWordCompleter=f,t.snippetCompleter=c;var p={name:"expandSnippet",exec:function(e){return r.expandWithTab(e)},bindKey:"Tab"},d=function(e,t){v(t.session.$mode)},v=function(e){typeof e=="string"&&(e=s.$modes[e]);if(!e)return;r.files||(r.files={}),m(e.$id,e.snippetFileId),e.modes&&e.modes.forEach(v)},m=function(e,t){if(!t||!e||r.files[e])return;r.files[e]={},s.loadModule(t,function(t){if(!t)return;r.files[e]=t,!t.snippets&&t.snippetText&&(t.snippets=r.parseSnippetFile(t.snippetText)),r.register(t.snippets||[],t.scope),t.includeScopes&&(r.snippetMap[t.scope].includeScopes=t.includeScopes,t.includeScopes.forEach(function(e){v("ace/mode/"+e)}))})},g=function(e){var t=e.editor,n=t.completer&&t.completer.activated;if(e.command.name==="backspace")n&&!u.getCompletionPrefix(t)&&t.completer.detach();else if(e.command.name==="insertstring"&&!n){y=e;var r=e.editor.$liveAutocompletionDelay;r?b.delay(r):w(e)}},y,b=o.delayedCall(function(){w(y)},0),w=function(e){var t=e.editor,n=u.getCompletionPrefix(t),r=u.triggerAutocomplete(t);if((n||r)&&n.length>=t.$liveAutocompletionThreshold){var s=i.for(t);s.autoShown=!0,s.showPopup(t)}},E=e("../editor").Editor;e("../config").defineOptions(E.prototype,"editor",{enableBasicAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:h),this.commands.addCommand(i.startCommand)):this.commands.removeCommand(i.startCommand)},value:!1},enableLiveAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:h),this.commands.on("afterExec",g)):this.commands.off("afterExec",g)},value:!1},liveAutocompletionDelay:{initialValue:0},liveAutocompletionThreshold:{initialValue:0},enableSnippets:{set:function(e){e?(this.commands.addCommand(p),this.on("changeMode",d),d(null,this)):(this.commands.removeCommand(p),this.off("changeMode",d))},value:!1}})}); (function() { ace.require(["ace/ext/language_tools"], function(m) { if (typeof module == "object" && typeof exports == "object" && module) { module.exports = m; diff --git a/javascripts/vendor/ace/mode-html.js b/javascripts/vendor/ace/mode-html.js index 8a66de8ed..fb39d68b0 100644 --- a/javascripts/vendor/ace/mode-html.js +++ b/javascripts/vendor/ace/mode-html.js @@ -1,4 +1,4 @@ -ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[f("function_arguments"),{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:r},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+o+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++tf)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++no)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",f=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",l=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:c},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/css_completions",["require","exports","module"],function(e,t,n){"use strict";var r={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,"double":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{"default":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},"float":{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,"static":1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e){if(typeof e[t]!="string")continue;var n=t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();if(e==="ruleset"||t.$mode.$id=="ace/mode/scss"){var i=t.getLine(n.row).substr(0,n.column),s=/\([^)]*$/.test(i);return s&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r,s)}return[]},this.getPropertyCompletions=function(e,t,n,i,s){s=s||!1;var o=Object.keys(r);return o.map(function(e){return{caption:e,snippet:e+": $0"+(s?"":";"),meta:"property",score:1e6}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\w\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]=="object"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}})}}).call(i.prototype),t.CssCompletions=i}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(f.substring(s.column)))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}}),this.add("!important","insertion",function(e,t,n,r,i){if(i==="!"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\s*(;|}|$)/.test(o.substring(s.column)))return{text:"!important",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./css_completions").CssCompletions,f=e("./behaviour/css").CssBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[_:a-zA-Z\u00c0-\uffff][-_:.a-zA-Z0-9\u00c0-\uffff]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:.]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules((new o({jsx:!1})).getRules(),"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,"tag-name")){f=a.stepBackward();if(f.value=="<"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="-1}var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e,t){s.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(o,s);var u=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/";break}}return r}if(a(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"attribute-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{"accept-charset":1,action:1,autocomplete:1,enctype:{"multipart/form-data":1,"application/x-www-form-urlencoded":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{"allow-same-origin":1,"allow-top-navigation":1,"allow-forms":1,"allow-scripts":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,"datetime-local":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{"application/x-www-form-urlencoded":1,"multipart/form-data":1,"text/plain":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,"for":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{"text/css":1,"image/png":1,"image/jpeg":1,"image/gif":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{"http-equiv":{"content-type":1},name:{description:1,keywords:1},content:{"text/html; charset=UTF-8":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{"for":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{"text/javascript":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,"default":1},section:{},summary:{},u:{},ul:{},"var":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open"))return this.getTagCompletions(e,t,n,r);if(f(i,"tag-whitespace")||f(i,"attribute-name"))return this.getAttributeCompletions(e,t,n,r);if(f(i,"attribute-value"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:1e6}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:1e6}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]=="object"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:"attribute value",score:1e6}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=["Aacute;","aacute;","Acirc;","acirc;","acute;","AElig;","aelig;","Agrave;","agrave;","alefsym;","Alpha;","alpha;","amp;","and;","ang;","Aring;","aring;","asymp;","Atilde;","atilde;","Auml;","auml;","bdquo;","Beta;","beta;","brvbar;","bull;","cap;","Ccedil;","ccedil;","cedil;","cent;","Chi;","chi;","circ;","clubs;","cong;","copy;","crarr;","cup;","curren;","Dagger;","dagger;","dArr;","darr;","deg;","Delta;","delta;","diams;","divide;","Eacute;","eacute;","Ecirc;","ecirc;","Egrave;","egrave;","empty;","emsp;","ensp;","Epsilon;","epsilon;","equiv;","Eta;","eta;","ETH;","eth;","Euml;","euml;","euro;","exist;","fnof;","forall;","frac12;","frac14;","frac34;","frasl;","Gamma;","gamma;","ge;","gt;","hArr;","harr;","hearts;","hellip;","Iacute;","iacute;","Icirc;","icirc;","iexcl;","Igrave;","igrave;","image;","infin;","int;","Iota;","iota;","iquest;","isin;","Iuml;","iuml;","Kappa;","kappa;","Lambda;","lambda;","lang;","laquo;","lArr;","larr;","lceil;","ldquo;","le;","lfloor;","lowast;","loz;","lrm;","lsaquo;","lsquo;","lt;","macr;","mdash;","micro;","middot;","minus;","Mu;","mu;","nabla;","nbsp;","ndash;","ne;","ni;","not;","notin;","nsub;","Ntilde;","ntilde;","Nu;","nu;","Oacute;","oacute;","Ocirc;","ocirc;","OElig;","oelig;","Ograve;","ograve;","oline;","Omega;","omega;","Omicron;","omicron;","oplus;","or;","ordf;","ordm;","Oslash;","oslash;","Otilde;","otilde;","otimes;","Ouml;","ouml;","para;","part;","permil;","perp;","Phi;","phi;","Pi;","pi;","piv;","plusmn;","pound;","Prime;","prime;","prod;","prop;","Psi;","psi;","quot;","radic;","rang;","raquo;","rArr;","rarr;","rceil;","rdquo;","real;","reg;","rfloor;","Rho;","rho;","rlm;","rsaquo;","rsquo;","sbquo;","Scaron;","scaron;","sdot;","sect;","shy;","Sigma;","sigma;","sigmaf;","sim;","spades;","sub;","sube;","sum;","sup;","sup1;","sup2;","sup3;","supe;","szlig;","Tau;","tau;","there4;","Theta;","theta;","thetasym;","thinsp;","THORN;","thorn;","tilde;","times;","trade;","Uacute;","uacute;","uArr;","uarr;","Ucirc;","ucirc;","Ugrave;","ugrave;","uml;","upsih;","Upsilon;","upsilon;","Uuml;","uuml;","weierp;","Xi;","xi;","Yacute;","yacute;","yen;","Yuml;","yuml;","Zeta;","zeta;","zwj;","zwnj;"];return i.map(function(e){return{caption:e,snippet:e,meta:"html entity",score:1e6}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:""},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html",this.snippetFileId="ace/snippets/html"}.call(v.prototype),t.Mode=v}); (function() { +ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=s}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[f("function_arguments"),{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:r},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+o+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++tf)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++no)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",f=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",l=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:c},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/css_completions",["require","exports","module"],function(e,t,n){"use strict";var r={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,"double":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{"default":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},"float":{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,"static":1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e){if(typeof e[t]!="string")continue;var n=t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();if(e==="ruleset"||t.$mode.$id=="ace/mode/scss"){var i=t.getLine(n.row).substr(0,n.column),s=/\([^)]*$/.test(i);return s&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r,s)}return[]},this.getPropertyCompletions=function(e,t,n,i,s){s=s||!1;var o=Object.keys(r);return o.map(function(e){return{caption:e,snippet:e+": $0"+(s?"":";"),meta:"property",score:1e6}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\w\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]=="object"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}})}}).call(i.prototype),t.CssCompletions=i}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(f.substring(s.column)))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}}),this.add("!important","insertion",function(e,t,n,r,i){if(i==="!"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\s*(;|}|$)/.test(o.substring(s.column)))return{text:"!important",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./css_completions").CssCompletions,f=e("./behaviour/css").CssBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[_:a-zA-Z\u00c0-\uffff][-_:.a-zA-Z0-9\u00c0-\uffff]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:.]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules((new o({jsx:!1})).getRules(),"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,"tag-name")){f=a.stepBackward();if(f.value=="<"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="-1}var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e,t){s.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(o,s);var u=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/";break}}return r}if(a(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"attribute-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{"accept-charset":1,action:1,autocomplete:1,enctype:{"multipart/form-data":1,"application/x-www-form-urlencoded":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{"allow-same-origin":1,"allow-top-navigation":1,"allow-forms":1,"allow-scripts":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,"datetime-local":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{"application/x-www-form-urlencoded":1,"multipart/form-data":1,"text/plain":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,"for":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{"text/css":1,"image/png":1,"image/jpeg":1,"image/gif":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{"http-equiv":{"content-type":1},name:{description:1,keywords:1},content:{"text/html; charset=UTF-8":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{"for":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{"text/javascript":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,"default":1},section:{},summary:{},u:{},ul:{},"var":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open"))return this.getTagCompletions(e,t,n,r);if(f(i,"tag-whitespace")||f(i,"attribute-name"))return this.getAttributeCompletions(e,t,n,r);if(f(i,"attribute-value"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:1e6}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:1e6}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]=="object"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:"attribute value",score:1e6}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=["Aacute;","aacute;","Acirc;","acirc;","acute;","AElig;","aelig;","Agrave;","agrave;","alefsym;","Alpha;","alpha;","amp;","and;","ang;","Aring;","aring;","asymp;","Atilde;","atilde;","Auml;","auml;","bdquo;","Beta;","beta;","brvbar;","bull;","cap;","Ccedil;","ccedil;","cedil;","cent;","Chi;","chi;","circ;","clubs;","cong;","copy;","crarr;","cup;","curren;","Dagger;","dagger;","dArr;","darr;","deg;","Delta;","delta;","diams;","divide;","Eacute;","eacute;","Ecirc;","ecirc;","Egrave;","egrave;","empty;","emsp;","ensp;","Epsilon;","epsilon;","equiv;","Eta;","eta;","ETH;","eth;","Euml;","euml;","euro;","exist;","fnof;","forall;","frac12;","frac14;","frac34;","frasl;","Gamma;","gamma;","ge;","gt;","hArr;","harr;","hearts;","hellip;","Iacute;","iacute;","Icirc;","icirc;","iexcl;","Igrave;","igrave;","image;","infin;","int;","Iota;","iota;","iquest;","isin;","Iuml;","iuml;","Kappa;","kappa;","Lambda;","lambda;","lang;","laquo;","lArr;","larr;","lceil;","ldquo;","le;","lfloor;","lowast;","loz;","lrm;","lsaquo;","lsquo;","lt;","macr;","mdash;","micro;","middot;","minus;","Mu;","mu;","nabla;","nbsp;","ndash;","ne;","ni;","not;","notin;","nsub;","Ntilde;","ntilde;","Nu;","nu;","Oacute;","oacute;","Ocirc;","ocirc;","OElig;","oelig;","Ograve;","ograve;","oline;","Omega;","omega;","Omicron;","omicron;","oplus;","or;","ordf;","ordm;","Oslash;","oslash;","Otilde;","otilde;","otimes;","Ouml;","ouml;","para;","part;","permil;","perp;","Phi;","phi;","Pi;","pi;","piv;","plusmn;","pound;","Prime;","prime;","prod;","prop;","Psi;","psi;","quot;","radic;","rang;","raquo;","rArr;","rarr;","rceil;","rdquo;","real;","reg;","rfloor;","Rho;","rho;","rlm;","rsaquo;","rsquo;","sbquo;","Scaron;","scaron;","sdot;","sect;","shy;","Sigma;","sigma;","sigmaf;","sim;","spades;","sub;","sube;","sum;","sup;","sup1;","sup2;","sup3;","supe;","szlig;","Tau;","tau;","there4;","Theta;","theta;","thetasym;","thinsp;","THORN;","thorn;","tilde;","times;","trade;","Uacute;","uacute;","uArr;","uarr;","Ucirc;","ucirc;","Ugrave;","ugrave;","uml;","upsih;","Upsilon;","upsilon;","Uuml;","uuml;","weierp;","Xi;","xi;","Yacute;","yacute;","yen;","Yuml;","yuml;","Zeta;","zeta;","zwj;","zwnj;"];return i.map(function(e){return{caption:e,snippet:e,meta:"html entity",score:1e6}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:""},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html",this.snippetFileId="ace/snippets/html"}.call(v.prototype),t.Mode=v}); (function() { ace.require(["ace/mode/html"], function(m) { if (typeof module == "object" && typeof exports == "object" && module) { module.exports = m; diff --git a/javascripts/vendor/ace/mode-markdown.js b/javascripts/vendor/ace/mode-markdown.js index 7222b34cd..3246440a8 100644 --- a/javascripts/vendor/ace/mode-markdown.js +++ b/javascripts/vendor/ace/mode-markdown.js @@ -1,4 +1,4 @@ -ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",f=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",l=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:c},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[f("function_arguments"),{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:r},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+o+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[_:a-zA-Z\u00c0-\uffff][-_:.a-zA-Z0-9\u00c0-\uffff]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:.]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules((new o({jsx:!1})).getRules(),"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/markdown_highlight_rules",["require","exports","module","ace/config","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/html_highlight_rules"],function(e,t,n){"use strict";var r=e("../config").$modes,i=e("../lib/oop"),s=e("../lib/lang"),o=e("./text_highlight_rules").TextHighlightRules,u=e("./html_highlight_rules").HtmlHighlightRules,a=function(e){return"(?:[^"+s.escapeRegExp(e)+"\\\\]|\\\\.)*"},f=function(){u.call(this);var e={token:"support.function",regex:/^\s*(```+[^`]*|~~~+[^~]*)$/,onMatch:function(e,t,n,i){var s=e.match(/^(\s*)([`~]+)(.*)/),o=/[\w-]+|$/.exec(s[3])[0];return r[o]||(o=""),n.unshift("githubblock",[],[s[1],s[2],o],t),this.token},next:"githubblock"},t=[{token:"support.function",regex:".*",onMatch:function(e,t,n,i){var s=n[1],o=n[2][0],u=n[2][1],a=n[2][2],f=/^(\s*)(`+|~+)\s*$/.exec(e);if(f&&f[1].length=u.length&&f[2][0]==u[0])return n.splice(0,3),this.next=n.shift(),this.token;this.next="";if(a&&r[a]){var l=r[a].getTokenizer().getLineTokens(e,s.slice(0));return n[1]=l.state,l.tokens}return this.token}}];this.$rules.start.unshift({token:"empty_line",regex:"^$",next:"allowBlock"},{token:"markup.heading.1",regex:"^=+(?=\\s*$)"},{token:"markup.heading.2",regex:"^\\-+(?=\\s*$)"},{token:function(e){return"markup.heading."+e.length},regex:/^#{1,6}(?=\s|$)/,next:"header"},e,{token:"string.blockquote",regex:"^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+",next:"blockquote"},{token:"constant",regex:"^ {0,3}(?:(?:\\* ?){3,}|(?:\\- ?){3,}|(?:\\_ ?){3,})\\s*$",next:"allowBlock"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock-start"},{include:"basic"}),this.addRules({basic:[{token:"constant.language.escape",regex:/\\[\\`*_{}\[\]()#+\-.!]/},{token:"support.function",regex:"(`+)(.*?[^`])(\\1)"},{token:["text","constant","text","url","string","text"],regex:'^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$'},{token:["text","string","text","constant","text"],regex:"(\\[)("+a("]")+")(\\]\\s*\\[)("+a("]")+")(\\])"},{token:["text","string","text","markup.underline","string","text"],regex:"(\\!?\\[)("+a("]")+")(\\]\\()"+'((?:[^\\)\\s\\\\]|\\\\.|\\s(?=[^"]))*)'+'(\\s*"'+a('"')+'"\\s*)?'+"(\\))"},{token:"string.strong",regex:"([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)"},{token:"string.emphasis",regex:"([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)"},{token:["text","url","text"],regex:"(<)((?:https?|ftp|dict):[^'\">\\s]+|(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+)(>)"}],allowBlock:[{token:"support.function",regex:"^ {4}.+",next:"allowBlock"},{token:"empty_line",regex:"^$",next:"allowBlock"},{token:"empty",regex:"",next:"start"}],header:[{regex:"$",next:"start"},{include:"basic"},{defaultToken:"heading"}],"listblock-start":[{token:"support.variable",regex:/(?:\[[ x]\])?/,next:"listblock"}],listblock:[{token:"empty_line",regex:"^$",next:"start"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock-start"},{include:"basic",noEscape:!0},e,{defaultToken:"list"}],blockquote:[{token:"empty_line",regex:"^\\s*$",next:"start"},{token:"string.blockquote",regex:"^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+",next:"blockquote"},{include:"basic",noEscape:!0},{defaultToken:"string.blockquote"}],githubblock:t}),this.normalizeRules()};i.inherits(f,o),t.MarkdownHighlightRules=f}),ace.define("ace/mode/folding/markdown",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/^(?:[=-]+\s*$|#{1,6} |`{3})/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?r[0]=="`"?e.bgTokenizer.getState(n)=="start"?"end":"start":"start":""},this.getFoldWidgetRange=function(e,t,n){function l(t){return f=e.getTokens(t)[0],f&&f.type.lastIndexOf(c,0)===0}function h(){var e=f.value[0];return e=="="?6:e=="-"?5:7-f.value.search(/[^#]|$/)}var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(!r.match(this.foldingStartMarker))return;if(r[0]=="`"){if(e.bgTokenizer.getState(n)!=="start"){while(++n0){r=e.getLine(n);if(r[0]=="`"&r.substring(0,3)=="```")break}return new s(n,r.length,u,0)}var f,c="markup.heading";if(l(n)){var p=h();while(++n=p)break}a=n-(!f||["=","-"].indexOf(f.value[0])==-1?1:2);if(a>u)while(a>u&&/^\s*$/.test(e.getLine(a)))a--;if(a>u){var v=e.getLine(a).length;return new s(u,i,a,v)}}}}.call(o.prototype)}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++tf)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++no)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/css_completions",["require","exports","module"],function(e,t,n){"use strict";var r={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,"double":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{"default":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},"float":{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,"static":1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e){if(typeof e[t]!="string")continue;var n=t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();if(e==="ruleset"||t.$mode.$id=="ace/mode/scss"){var i=t.getLine(n.row).substr(0,n.column),s=/\([^)]*$/.test(i);return s&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r,s)}return[]},this.getPropertyCompletions=function(e,t,n,i,s){s=s||!1;var o=Object.keys(r);return o.map(function(e){return{caption:e,snippet:e+": $0"+(s?"":";"),meta:"property",score:1e6}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\w\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]=="object"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}})}}).call(i.prototype),t.CssCompletions=i}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(f.substring(s.column)))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}}),this.add("!important","insertion",function(e,t,n,r,i){if(i==="!"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\s*(;|}|$)/.test(o.substring(s.column)))return{text:"!important",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./css_completions").CssCompletions,f=e("./behaviour/css").CssBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,"tag-name")){f=a.stepBackward();if(f.value=="<"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="-1}var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e,t){s.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(o,s);var u=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/";break}}return r}if(a(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"attribute-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{"accept-charset":1,action:1,autocomplete:1,enctype:{"multipart/form-data":1,"application/x-www-form-urlencoded":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{"allow-same-origin":1,"allow-top-navigation":1,"allow-forms":1,"allow-scripts":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,"datetime-local":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{"application/x-www-form-urlencoded":1,"multipart/form-data":1,"text/plain":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,"for":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{"text/css":1,"image/png":1,"image/jpeg":1,"image/gif":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{"http-equiv":{"content-type":1},name:{description:1,keywords:1},content:{"text/html; charset=UTF-8":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{"for":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{"text/javascript":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,"default":1},section:{},summary:{},u:{},ul:{},"var":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open"))return this.getTagCompletions(e,t,n,r);if(f(i,"tag-whitespace")||f(i,"attribute-name"))return this.getAttributeCompletions(e,t,n,r);if(f(i,"attribute-value"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:1e6}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:1e6}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]=="object"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:"attribute value",score:1e6}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=["Aacute;","aacute;","Acirc;","acirc;","acute;","AElig;","aelig;","Agrave;","agrave;","alefsym;","Alpha;","alpha;","amp;","and;","ang;","Aring;","aring;","asymp;","Atilde;","atilde;","Auml;","auml;","bdquo;","Beta;","beta;","brvbar;","bull;","cap;","Ccedil;","ccedil;","cedil;","cent;","Chi;","chi;","circ;","clubs;","cong;","copy;","crarr;","cup;","curren;","Dagger;","dagger;","dArr;","darr;","deg;","Delta;","delta;","diams;","divide;","Eacute;","eacute;","Ecirc;","ecirc;","Egrave;","egrave;","empty;","emsp;","ensp;","Epsilon;","epsilon;","equiv;","Eta;","eta;","ETH;","eth;","Euml;","euml;","euro;","exist;","fnof;","forall;","frac12;","frac14;","frac34;","frasl;","Gamma;","gamma;","ge;","gt;","hArr;","harr;","hearts;","hellip;","Iacute;","iacute;","Icirc;","icirc;","iexcl;","Igrave;","igrave;","image;","infin;","int;","Iota;","iota;","iquest;","isin;","Iuml;","iuml;","Kappa;","kappa;","Lambda;","lambda;","lang;","laquo;","lArr;","larr;","lceil;","ldquo;","le;","lfloor;","lowast;","loz;","lrm;","lsaquo;","lsquo;","lt;","macr;","mdash;","micro;","middot;","minus;","Mu;","mu;","nabla;","nbsp;","ndash;","ne;","ni;","not;","notin;","nsub;","Ntilde;","ntilde;","Nu;","nu;","Oacute;","oacute;","Ocirc;","ocirc;","OElig;","oelig;","Ograve;","ograve;","oline;","Omega;","omega;","Omicron;","omicron;","oplus;","or;","ordf;","ordm;","Oslash;","oslash;","Otilde;","otilde;","otimes;","Ouml;","ouml;","para;","part;","permil;","perp;","Phi;","phi;","Pi;","pi;","piv;","plusmn;","pound;","Prime;","prime;","prod;","prop;","Psi;","psi;","quot;","radic;","rang;","raquo;","rArr;","rarr;","rceil;","rdquo;","real;","reg;","rfloor;","Rho;","rho;","rlm;","rsaquo;","rsquo;","sbquo;","Scaron;","scaron;","sdot;","sect;","shy;","Sigma;","sigma;","sigmaf;","sim;","spades;","sub;","sube;","sum;","sup;","sup1;","sup2;","sup3;","supe;","szlig;","Tau;","tau;","there4;","Theta;","theta;","thetasym;","thinsp;","THORN;","thorn;","tilde;","times;","trade;","Uacute;","uacute;","uArr;","uarr;","Ucirc;","ucirc;","Ugrave;","ugrave;","uml;","upsih;","Upsilon;","upsilon;","Uuml;","uuml;","weierp;","Xi;","xi;","Yacute;","yacute;","yen;","Yuml;","yuml;","Zeta;","zeta;","zwj;","zwnj;"];return i.map(function(e){return{caption:e,snippet:e,meta:"html entity",score:1e6}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:""},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html",this.snippetFileId="ace/snippets/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/sh_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=t.reservedKeywords="!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set|function|declare|readonly",o=t.languageConstructs="[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait",u=function(){var e=this.createKeywordMapper({keyword:s,"support.function.builtin":o,"invalid.deprecated":"debugger"},"identifier"),t="(?:(?:[1-9]\\d*)|(?:0))",n="(?:\\.\\d+)",r="(?:\\d+)",i="(?:(?:"+r+"?"+n+")|(?:"+r+"\\.))",u="(?:(?:"+i+"|"+r+")"+")",a="(?:"+u+"|"+i+")",f="(?:&"+r+")",l="[a-zA-Z_][a-zA-Z0-9_]*",c="(?:"+l+"(?==))",h="(?:\\$(?:SHLVL|\\$|\\!|\\?))",p="(?:"+l+"\\s*\\(\\))";this.$rules={start:[{token:"constant",regex:/\\./},{token:["text","comment"],regex:/(^|\s)(#.*)$/},{token:"string.start",regex:'"',push:[{token:"constant.language.escape",regex:/\\(?:[$`"\\]|$)/},{include:"variables"},{token:"keyword.operator",regex:/`/},{token:"string.end",regex:'"',next:"pop"},{defaultToken:"string"}]},{token:"string",regex:"\\$'",push:[{token:"constant.language.escape",regex:/\\(?:[abeEfnrtv\\'"]|x[a-fA-F\d]{1,2}|u[a-fA-F\d]{4}([a-fA-F\d]{4})?|c.|\d{1,3})/},{token:"string",regex:"'",next:"pop"},{defaultToken:"string"}]},{regex:"<<<",token:"keyword.operator"},{stateName:"heredoc",regex:"(<<-?)(\\s*)(['\"`]?)([\\w\\-]+)(['\"`]?)",onMatch:function(e,t,n){var r=e[2]=="-"?"indentedHeredoc":"heredoc",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:"constant",value:i[1]},{type:"text",value:i[2]},{type:"string",value:i[3]},{type:"support.class",value:i[4]},{type:"string",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}],indentedHeredoc:[{token:"string",regex:"^ +"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}]}},{regex:"$",token:"empty",next:function(e,t){return t[0]==="heredoc"||t[0]==="indentedHeredoc"?t[0]:e}},{token:["keyword","text","text","text","variable"],regex:/(declare|local|readonly)(\s+)(?:(-[fixar]+)(\s+))?([a-zA-Z_][a-zA-Z0-9_]*\b)/},{token:"variable.language",regex:h},{token:"variable",regex:c},{include:"variables"},{token:"support.function",regex:p},{token:"support.function",regex:f},{token:"string",start:"'",end:"'"},{token:"constant.numeric",regex:a},{token:"constant.numeric",regex:t+"\\b"},{token:e,regex:"[a-zA-Z_][a-zA-Z0-9_]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!=|[%&|`]"},{token:"punctuation.operator",regex:";"},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]]"},{token:"paren.rparen",regex:"[\\)\\}]",next:"pop"}],variables:[{token:"variable",regex:/(\$)(\w+)/},{token:["variable","paren.lparen"],regex:/(\$)(\()/,push:"start"},{token:["variable","paren.lparen","keyword.operator","variable","keyword.operator"],regex:/(\$)(\{)([#!]?)(\w+|[*@#?\-$!0_])(:[?+\-=]?|##?|%%?|,,?\/|\^\^?)?/,push:"start"},{token:"variable",regex:/\$[*@#?\-$!0_]/},{token:["variable","paren.lparen"],regex:/(\$)(\{)/,push:"start"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define("ace/mode/sh",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sh_highlight_rules","ace/range","ace/mode/folding/cstyle","ace/mode/behaviour/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./sh_highlight_rules").ShHighlightRules,o=e("../range").Range,u=e("./folding/cstyle").FoldMode,a=e("./behaviour/cstyle").CstyleBehaviour,f=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=new a};r.inherits(f,i),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[:]\s*$/);o&&(r+=n)}return r};var e={pass:1,"return":1,raise:1,"break":1,"continue":1};this.checkOutdent=function(t,n,r){if(r!=="\r\n"&&r!=="\r"&&r!=="\n")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type=="comment"||s.type=="text"&&s.value.match(/^\s+$/)));return s?s.type=="keyword"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new o(n,r.length-i.length,n,r.length))},this.$id="ace/mode/sh",this.snippetFileId="ace/snippets/sh"}.call(f.prototype),t.Mode=f}),ace.define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./xml_highlight_rules").XmlHighlightRules,u=e("./behaviour/xml").XmlBehaviour,a=e("./folding/xml").FoldMode,f=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:""},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/xml_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/xml"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/markdown",["require","exports","module","ace/lib/oop","ace/mode/behaviour/cstyle","ace/mode/text","ace/mode/markdown_highlight_rules","ace/mode/folding/markdown","ace/mode/javascript","ace/mode/html","ace/mode/sh","ace/mode/sh","ace/mode/xml","ace/mode/css"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./behaviour/cstyle").CstyleBehaviour,s=e("./text").Mode,o=e("./markdown_highlight_rules").MarkdownHighlightRules,u=e("./folding/markdown").FoldMode,a=function(){this.HighlightRules=o,this.createModeDelegates({javascript:e("./javascript").Mode,html:e("./html").Mode,bash:e("./sh").Mode,sh:e("./sh").Mode,xml:e("./xml").Mode,css:e("./css").Mode}),this.foldingRules=new u,this.$behaviour=new i({braces:!0})};r.inherits(a,s),function(){this.type="text",this.blockComment={start:""},this.$quotes={'"':'"',"`":"`"},this.getNextLineIndent=function(e,t,n){if(e=="listblock"){var r=/^(\s*)(?:([-+*])|(\d+)\.)(\s+)/.exec(t);if(!r)return"";var i=r[2];return i||(i=parseInt(r[3],10)+1+"."),r[1]+i+r[4]}return this.$getIndent(t)},this.$id="ace/mode/markdown",this.snippetFileId="ace/snippets/markdown"}.call(a.prototype),t.Mode=a}); (function() { +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",f=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",l=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:c},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=s}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function\\*?)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function\\*?)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[f("function_arguments"),{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:r},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+o+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[_:a-zA-Z\u00c0-\uffff][-_:.a-zA-Z0-9\u00c0-\uffff]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:.]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules((new o({jsx:!1})).getRules(),"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),ace.define("ace/mode/markdown_highlight_rules",["require","exports","module","ace/config","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/html_highlight_rules"],function(e,t,n){"use strict";var r=e("../config").$modes,i=e("../lib/oop"),s=e("../lib/lang"),o=e("./text_highlight_rules").TextHighlightRules,u=e("./html_highlight_rules").HtmlHighlightRules,a=function(e){return"(?:[^"+s.escapeRegExp(e)+"\\\\]|\\\\.)*"},f=function(){u.call(this);var e={token:"support.function",regex:/^\s*(```+[^`]*|~~~+[^~]*)$/,onMatch:function(e,t,n,i){var s=e.match(/^(\s*)([`~]+)(.*)/),o=/[\w-]+|$/.exec(s[3])[0];return r[o]||(o=""),n.unshift("githubblock",[],[s[1],s[2],o],t),this.token},next:"githubblock"},t=[{token:"support.function",regex:".*",onMatch:function(e,t,n,i){var s=n[1],o=n[2][0],u=n[2][1],a=n[2][2],f=/^(\s*)(`+|~+)\s*$/.exec(e);if(f&&f[1].length=u.length&&f[2][0]==u[0])return n.splice(0,3),this.next=n.shift(),this.token;this.next="";if(a&&r[a]){var l=r[a].getTokenizer().getLineTokens(e,s.slice(0));return n[1]=l.state,l.tokens}return this.token}}];this.$rules.start.unshift({token:"empty_line",regex:"^$",next:"allowBlock"},{token:"markup.heading.1",regex:"^=+(?=\\s*$)"},{token:"markup.heading.2",regex:"^\\-+(?=\\s*$)"},{token:function(e){return"markup.heading."+e.length},regex:/^#{1,6}(?=\s|$)/,next:"header"},e,{token:"string.blockquote",regex:"^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+",next:"blockquote"},{token:"constant",regex:"^ {0,3}(?:(?:\\* ?){3,}|(?:\\- ?){3,}|(?:\\_ ?){3,})\\s*$",next:"allowBlock"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock-start"},{include:"basic"}),this.addRules({basic:[{token:"constant.language.escape",regex:/\\[\\`*_{}\[\]()#+\-.!]/},{token:"support.function",regex:"(`+)(.*?[^`])(\\1)"},{token:["text","constant","text","url","string","text"],regex:'^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$'},{token:["text","string","text","constant","text"],regex:"(\\[)("+a("]")+")(\\]\\s*\\[)("+a("]")+")(\\])"},{token:["text","string","text","markup.underline","string","text"],regex:"(\\!?\\[)("+a("]")+")(\\]\\()"+'((?:[^\\)\\s\\\\]|\\\\.|\\s(?=[^"]))*)'+'(\\s*"'+a('"')+'"\\s*)?'+"(\\))"},{token:"string.strong",regex:"([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)"},{token:"string.emphasis",regex:"([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)"},{token:["text","url","text"],regex:"(<)((?:https?|ftp|dict):[^'\">\\s]+|(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+)(>)"}],allowBlock:[{token:"support.function",regex:"^ {4}.+",next:"allowBlock"},{token:"empty_line",regex:"^$",next:"allowBlock"},{token:"empty",regex:"",next:"start"}],header:[{regex:"$",next:"start"},{include:"basic"},{defaultToken:"heading"}],"listblock-start":[{token:"support.variable",regex:/(?:\[[ x]\])?/,next:"listblock"}],listblock:[{token:"empty_line",regex:"^$",next:"start"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock-start"},{include:"basic",noEscape:!0},e,{defaultToken:"list"}],blockquote:[{token:"empty_line",regex:"^\\s*$",next:"start"},{token:"string.blockquote",regex:"^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+",next:"blockquote"},{include:"basic",noEscape:!0},{defaultToken:"string.blockquote"}],githubblock:t}),this.normalizeRules()};i.inherits(f,o),t.MarkdownHighlightRules=f}),ace.define("ace/mode/folding/markdown",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.foldingStartMarker=/^(?:[=-]+\s*$|#{1,6} |`{3})/,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?r[0]=="`"?e.bgTokenizer.getState(n)=="start"?"end":"start":"start":""},this.getFoldWidgetRange=function(e,t,n){function l(t){return f=e.getTokens(t)[0],f&&f.type.lastIndexOf(c,0)===0}function h(){var e=f.value[0];return e=="="?6:e=="-"?5:7-f.value.search(/[^#]|$/)}var r=e.getLine(n),i=r.length,o=e.getLength(),u=n,a=n;if(!r.match(this.foldingStartMarker))return;if(r[0]=="`"){if(e.bgTokenizer.getState(n)!=="start"){while(++n0){r=e.getLine(n);if(r[0]=="`"&r.substring(0,3)=="```")break}return new s(n,r.length,u,0)}var f,c="markup.heading";if(l(n)){var p=h();while(++n=p)break}a=n-(!f||["=","-"].indexOf(f.value[0])==-1?1:2);if(a>u)while(a>u&&/^\s*$/.test(e.getLine(a)))a--;if(a>u){var v=e.getLine(a).length;return new s(u,i,a,v)}}}}.call(o.prototype)}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++tf)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++no)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/css_completions",["require","exports","module"],function(e,t,n){"use strict";var r={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,"double":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{"default":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},"float":{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,"static":1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e){if(typeof e[t]!="string")continue;var n=t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();if(e==="ruleset"||t.$mode.$id=="ace/mode/scss"){var i=t.getLine(n.row).substr(0,n.column),s=/\([^)]*$/.test(i);return s&&(i=i.substr(i.lastIndexOf("(")+1)),/:[^;]+$/.test(i)?(/([\w\-]+):[^:]*$/.test(i),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r,s)}return[]},this.getPropertyCompletions=function(e,t,n,i,s){s=s||!1;var o=Object.keys(r);return o.map(function(e){return{caption:e,snippet:e+": $0"+(s?"":";"),meta:"property",score:1e6}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\w\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]=="object"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:"property value",score:1e6}})}}).call(i.prototype),t.CssCompletions=i}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"&&n.selection.isEmpty()){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(f.substring(s.column)))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}}),this.add("!important","insertion",function(e,t,n,r,i){if(i==="!"&&n.selection.isEmpty()){var s=n.getCursorPosition(),o=r.doc.getLine(s.row);if(/^\s*(;|}|$)/.test(o.substring(s.column)))return{text:"!important",selection:[10,10]}}})};r.inherits(u,s),t.CssBehaviour=u}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./css_completions").CssCompletions,f=e("./behaviour/css").CssBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(c.prototype),t.Mode=c}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=a.getCurrentTokenColumn()+f.value.length;if(o.column/.test(r.getLine(o.row).slice(o.column)))return;while(!u(f,"tag-name")){f=a.stepBackward();if(f.value=="<"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var d=f.value;h==o.row&&(d=d.substring(0,o.column-p));if(this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="-1}var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e,t){s.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(o,s);var u=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/";break}}return r}if(a(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"attribute-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{"accept-charset":1,action:1,autocomplete:1,enctype:{"multipart/form-data":1,"application/x-www-form-urlencoded":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{"allow-same-origin":1,"allow-top-navigation":1,"allow-forms":1,"allow-scripts":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,"datetime-local":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{"application/x-www-form-urlencoded":1,"multipart/form-data":1,"text/plain":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,"for":1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{"text/css":1,"image/png":1,"image/jpeg":1,"image/gif":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{"http-equiv":{"content-type":1},name:{description:1,keywords:1},content:{"text/html; charset=UTF-8":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{"for":1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{"text/javascript":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,"default":1},section:{},summary:{},u:{},ul:{},"var":{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open"))return this.getTagCompletions(e,t,n,r);if(f(i,"tag-whitespace")||f(i,"attribute-name"))return this.getAttributeCompletions(e,t,n,r);if(f(i,"attribute-value"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:1e6}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:1e6}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]=="object"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:"attribute value",score:1e6}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=["Aacute;","aacute;","Acirc;","acirc;","acute;","AElig;","aelig;","Agrave;","agrave;","alefsym;","Alpha;","alpha;","amp;","and;","ang;","Aring;","aring;","asymp;","Atilde;","atilde;","Auml;","auml;","bdquo;","Beta;","beta;","brvbar;","bull;","cap;","Ccedil;","ccedil;","cedil;","cent;","Chi;","chi;","circ;","clubs;","cong;","copy;","crarr;","cup;","curren;","Dagger;","dagger;","dArr;","darr;","deg;","Delta;","delta;","diams;","divide;","Eacute;","eacute;","Ecirc;","ecirc;","Egrave;","egrave;","empty;","emsp;","ensp;","Epsilon;","epsilon;","equiv;","Eta;","eta;","ETH;","eth;","Euml;","euml;","euro;","exist;","fnof;","forall;","frac12;","frac14;","frac34;","frasl;","Gamma;","gamma;","ge;","gt;","hArr;","harr;","hearts;","hellip;","Iacute;","iacute;","Icirc;","icirc;","iexcl;","Igrave;","igrave;","image;","infin;","int;","Iota;","iota;","iquest;","isin;","Iuml;","iuml;","Kappa;","kappa;","Lambda;","lambda;","lang;","laquo;","lArr;","larr;","lceil;","ldquo;","le;","lfloor;","lowast;","loz;","lrm;","lsaquo;","lsquo;","lt;","macr;","mdash;","micro;","middot;","minus;","Mu;","mu;","nabla;","nbsp;","ndash;","ne;","ni;","not;","notin;","nsub;","Ntilde;","ntilde;","Nu;","nu;","Oacute;","oacute;","Ocirc;","ocirc;","OElig;","oelig;","Ograve;","ograve;","oline;","Omega;","omega;","Omicron;","omicron;","oplus;","or;","ordf;","ordm;","Oslash;","oslash;","Otilde;","otilde;","otimes;","Ouml;","ouml;","para;","part;","permil;","perp;","Phi;","phi;","Pi;","pi;","piv;","plusmn;","pound;","Prime;","prime;","prod;","prop;","Psi;","psi;","quot;","radic;","rang;","raquo;","rArr;","rarr;","rceil;","rdquo;","real;","reg;","rfloor;","Rho;","rho;","rlm;","rsaquo;","rsquo;","sbquo;","Scaron;","scaron;","sdot;","sect;","shy;","Sigma;","sigma;","sigmaf;","sim;","spades;","sub;","sube;","sum;","sup;","sup1;","sup2;","sup3;","supe;","szlig;","Tau;","tau;","there4;","Theta;","theta;","thetasym;","thinsp;","THORN;","thorn;","tilde;","times;","trade;","Uacute;","uacute;","uArr;","uarr;","Ucirc;","ucirc;","Ugrave;","ugrave;","uml;","upsih;","Upsilon;","upsilon;","Uuml;","uuml;","weierp;","Xi;","xi;","Yacute;","yacute;","yen;","Yuml;","yuml;","Zeta;","zeta;","zwj;","zwnj;"];return i.map(function(e){return{caption:e,snippet:e,meta:"html entity",score:1e6}})}}).call(h.prototype),t.HtmlCompletions=h}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:""},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html",this.snippetFileId="ace/snippets/html"}.call(v.prototype),t.Mode=v}),ace.define("ace/mode/sh_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=t.reservedKeywords="!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set|function|declare|readonly",o=t.languageConstructs="[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait",u=function(){var e=this.createKeywordMapper({keyword:s,"support.function.builtin":o,"invalid.deprecated":"debugger"},"identifier"),t="(?:(?:[1-9]\\d*)|(?:0))",n="(?:\\.\\d+)",r="(?:\\d+)",i="(?:(?:"+r+"?"+n+")|(?:"+r+"\\.))",u="(?:(?:"+i+"|"+r+")"+")",a="(?:"+u+"|"+i+")",f="(?:&"+r+")",l="[a-zA-Z_][a-zA-Z0-9_]*",c="(?:"+l+"(?==))",h="(?:\\$(?:SHLVL|\\$|\\!|\\?))",p="(?:"+l+"\\s*\\(\\))";this.$rules={start:[{token:"constant",regex:/\\./},{token:["text","comment"],regex:/(^|\s)(#.*)$/},{token:"string.start",regex:'"',push:[{token:"constant.language.escape",regex:/\\(?:[$`"\\]|$)/},{include:"variables"},{token:"keyword.operator",regex:/`/},{token:"string.end",regex:'"',next:"pop"},{defaultToken:"string"}]},{token:"string",regex:"\\$'",push:[{token:"constant.language.escape",regex:/\\(?:[abeEfnrtv\\'"]|x[a-fA-F\d]{1,2}|u[a-fA-F\d]{4}([a-fA-F\d]{4})?|c.|\d{1,3})/},{token:"string",regex:"'",next:"pop"},{defaultToken:"string"}]},{regex:"<<<",token:"keyword.operator"},{stateName:"heredoc",regex:"(<<-?)(\\s*)(['\"`]?)([\\w\\-]+)(['\"`]?)",onMatch:function(e,t,n){var r=e[2]=="-"?"indentedHeredoc":"heredoc",i=e.split(this.splitRegex);return n.push(r,i[4]),[{type:"constant",value:i[1]},{type:"text",value:i[2]},{type:"string",value:i[3]},{type:"support.class",value:i[4]},{type:"string",value:i[5]}]},rules:{heredoc:[{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}],indentedHeredoc:[{token:"string",regex:"^ +"},{onMatch:function(e,t,n){return e===n[1]?(n.shift(),n.shift(),this.next=n[0]||"start","support.class"):(this.next="","string")},regex:".*$",next:"start"}]}},{regex:"$",token:"empty",next:function(e,t){return t[0]==="heredoc"||t[0]==="indentedHeredoc"?t[0]:e}},{token:["keyword","text","text","text","variable"],regex:/(declare|local|readonly)(\s+)(?:(-[fixar]+)(\s+))?([a-zA-Z_][a-zA-Z0-9_]*\b)/},{token:"variable.language",regex:h},{token:"variable",regex:c},{include:"variables"},{token:"support.function",regex:p},{token:"support.function",regex:f},{token:"string",start:"'",end:"'"},{token:"constant.numeric",regex:a},{token:"constant.numeric",regex:t+"\\b"},{token:e,regex:"[a-zA-Z_][a-zA-Z0-9_]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!=|[%&|`]"},{token:"punctuation.operator",regex:";"},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]]"},{token:"paren.rparen",regex:"[\\)\\}]",next:"pop"}],variables:[{token:"variable",regex:/(\$)(\w+)/},{token:["variable","paren.lparen"],regex:/(\$)(\()/,push:"start"},{token:["variable","paren.lparen","keyword.operator","variable","keyword.operator"],regex:/(\$)(\{)([#!]?)(\w+|[*@#?\-$!0_])(:[?+\-=]?|##?|%%?|,,?\/|\^\^?)?/,push:"start"},{token:"variable",regex:/\$[*@#?\-$!0_]/},{token:["variable","paren.lparen"],regex:/(\$)(\{)/,push:"start"}]},this.normalizeRules()};r.inherits(u,i),t.ShHighlightRules=u}),ace.define("ace/mode/sh",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sh_highlight_rules","ace/range","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./sh_highlight_rules").ShHighlightRules,o=e("../range").Range,u=e("./folding/cstyle").FoldMode,a=function(){this.HighlightRules=s,this.foldingRules=new u,this.$behaviour=this.$defaultBehaviour};r.inherits(a,i),function(){this.lineCommentStart="#",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var o=t.match(/^.*[\{\(\[:]\s*$/);o&&(r+=n)}return r};var e={pass:1,"return":1,raise:1,"break":1,"continue":1};this.checkOutdent=function(t,n,r){if(r!=="\r\n"&&r!=="\r"&&r!=="\n")return!1;var i=this.getTokenizer().getLineTokens(n.trim(),t).tokens;if(!i)return!1;do var s=i.pop();while(s&&(s.type=="comment"||s.type=="text"&&s.value.match(/^\s+$/)));return s?s.type=="keyword"&&e[s.value]:!1},this.autoOutdent=function(e,t,n){n+=1;var r=this.$getIndent(t.getLine(n)),i=t.getTabString();r.slice(-i.length)==i&&t.remove(new o(n,r.length-i.length,n,r.length))},this.$id="ace/mode/sh",this.snippetFileId="ace/snippets/sh"}.call(a.prototype),t.Mode=a}),ace.define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./xml_highlight_rules").XmlHighlightRules,u=e("./behaviour/xml").XmlBehaviour,a=e("./folding/xml").FoldMode,f=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,s),function(){this.voidElements=i.arrayToMap([]),this.blockComment={start:""},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/xml_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/xml"}.call(l.prototype),t.Mode=l}),ace.define("ace/mode/markdown",["require","exports","module","ace/lib/oop","ace/mode/behaviour/cstyle","ace/mode/text","ace/mode/markdown_highlight_rules","ace/mode/folding/markdown","ace/mode/javascript","ace/mode/html","ace/mode/sh","ace/mode/sh","ace/mode/xml","ace/mode/css"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./behaviour/cstyle").CstyleBehaviour,s=e("./text").Mode,o=e("./markdown_highlight_rules").MarkdownHighlightRules,u=e("./folding/markdown").FoldMode,a=function(){this.HighlightRules=o,this.createModeDelegates({javascript:e("./javascript").Mode,html:e("./html").Mode,bash:e("./sh").Mode,sh:e("./sh").Mode,xml:e("./xml").Mode,css:e("./css").Mode}),this.foldingRules=new u,this.$behaviour=new i({braces:!0})};r.inherits(a,s),function(){this.type="text",this.blockComment={start:""},this.$quotes={'"':'"',"`":"`"},this.getNextLineIndent=function(e,t,n){if(e=="listblock"){var r=/^(\s*)(?:([-+*])|(\d+)\.)(\s+)/.exec(t);if(!r)return"";var i=r[2];return i||(i=parseInt(r[3],10)+1+"."),r[1]+i+r[4]}return this.$getIndent(t)},this.$id="ace/mode/markdown",this.snippetFileId="ace/snippets/markdown"}.call(a.prototype),t.Mode=a}); (function() { ace.require(["ace/mode/markdown"], function(m) { if (typeof module == "object" && typeof exports == "object" && module) { module.exports = m; diff --git a/javascripts/vendor/ace/worker-html.js b/javascripts/vendor/ace/worker-html.js index acac8004f..1a2537fbb 100644 --- a/javascripts/vendor/ace/worker-html.js +++ b/javascripts/vendor/ace/worker-html.js @@ -1 +1 @@ -"no use strict";!function(e){function t(e,t){var n=e,r="";while(n){var i=t[n];if(typeof i=="string")return i+r;if(i)return i.location.replace(/\/*$/,"/")+(r||i.main||i.name);if(i===!1)return"";var s=n.lastIndexOf("/");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!="undefined"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,data:i&&i.data,file:t,line:n,col:r,stack:i&&i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log("unable to load "+i);var o=t(i,e.require.tlns);return o.slice(-3)!=".js"&&(o+=".js"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.slice(0,r.length).map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.require.tlns={},e.initBaseUrls=function(t){for(var n in t)this.require.tlns[n]=t[n]},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error("Unknown command:"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),r=e.sender=e.initSender();var s=this.require(i.module)[i.classname];n=e.main=new s(r)}}}(this),ace.define("ace/lib/oop",[],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/lang",[],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n=0&&t.row=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define("ace/lib/event_emitter",[],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?tthis.end.column?1:0:ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.rowt)var r={row:t+1,column:0};else if(this.start.rowthis.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.off("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",[],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e||"")},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e0,r=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e))},this.$safeApplyDelta=function(e){var t=this.$lines.length;(e.action=="remove"&&e.start.row=t.$lines.length)throw u=new Error("Invalid delta"),u.data={path:s.$path,linesLength:t.$lines.length,start:o.start,end:o.end},u;t.applyDelta(o,!0)}if(s.$timeout)return n.schedule(s.$timeout);s.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(s.prototype)}),ace.define("ace/mode/html/saxparser",[],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e=="function"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);throw new Error("Cannot find module '"+u+"'")}var l=n[u]={exports:{}};t[u][0].call(l.exports,function(e){var n=t[u][1][e];return s(n?n:e)},l,l.exports,r,t,n,i)}return n[u].exports}var o=typeof e=="function"&&e;for(var u=0;u=0;n--){var r=this.elements[n];if(r.localName===e)return!0;if(t(r))return!1}},l.prototype.push=function(e){this.elements.push(e)},l.prototype.pushHtmlElement=function(e){this.rootNode=e.node,this.push(e)},l.prototype.pushHeadElement=function(e){this.headElement=e.node,this.push(e)},l.prototype.pushBodyElement=function(e){this.bodyElement=e.node,this.push(e)},l.prototype.pop=function(){return this.elements.pop()},l.prototype.remove=function(e){this.elements.splice(this.elements.indexOf(e),1)},l.prototype.popUntilPopped=function(e){var t;do t=this.pop();while(t.localName!=e)},l.prototype.popUntilTableScopeMarker=function(){while(!s(this.top))this.pop()},l.prototype.popUntilTableBodyScopeMarker=function(){while(!o(this.top))this.pop()},l.prototype.popUntilTableRowScopeMarker=function(){while(!u(this.top))this.pop()},l.prototype.item=function(e){return this.elements[e]},l.prototype.contains=function(e){return this.elements.indexOf(e)!==-1},l.prototype.inScope=function(e){return this._inScope(e,r)},l.prototype.inListItemScope=function(e){return this._inScope(e,i)},l.prototype.inTableScope=function(e){return this._inScope(e,s)},l.prototype.inButtonScope=function(e){return this._inScope(e,a)},l.prototype.inSelectScope=function(e){return this._inScope(e,f)},l.prototype.hasNumberedHeaderElementInScope=function(){for(var e=this.elements.length-1;e>=0;e--){var t=this.elements[e];if(t.isNumberedHeader())return!0;if(r(t))return!1}},l.prototype.furthestBlockForFormattingElement=function(e){var t=null;for(var n=this.elements.length-1;n>=0;n--){var r=this.elements[n];if(r.node===e)break;r.isSpecial()&&(t=r)}return t},l.prototype.findIndex=function(e){for(var t=this.elements.length-1;t>=0;t--)if(this.elements[t].localName==e)return t;return-1},l.prototype.remove_openElements_until=function(e){var t=!1,n;while(!t)n=this.elements.pop(),t=e(n);return n},Object.defineProperty(l.prototype,"top",{get:function(){return this.elements[this.elements.length-1]}}),Object.defineProperty(l.prototype,"length",{get:function(){return this.elements.length}}),n.ElementStack=l},{}],2:[function(e,t,n){function o(e){return e>="0"&&e<="9"||e>="a"&&e<="z"||e>="A"&&e<="Z"}function u(e){return e>="0"&&e<="9"||e>="a"&&e<="f"||e>="A"&&e<="F"}function a(e){return e>="0"&&e<="9"}var r=e("html5-entities"),i=e("./InputStream").InputStream,s={};Object.keys(r).forEach(function(e){for(var t=0;t65535&&d<=1114111){d-=65536;var m=((1047552&d)>>10)+55296,g=(1023&d)+56320;f=String.fromCharCode(m,g)}else f=String.fromCharCode(d);return c!==";"&&(t._parseError("numeric-entity-without-semicolon"),e.unget(c)),f}return e.unget(l),t._parseError("expected-numeric-entity"),!1}if(c>="a"&&c<="z"||c>="A"&&c<="Z"){var y="";while(s[l]){r[l]&&(y=l);if(c==";")break;c=e.char();if(c===i.EOF)break;l+=c}return y?(f=r[y],c===";"||!n||!o(c)&&c!=="="?(l.length>y.length&&e.unget(l.substring(y.length)),c!==";"&&t._parseError("named-entity-without-semicolon"),f):(e.unget(l),!1)):(t._parseError("expected-named-entity"),e.unget(l),!1)}},f.replaceEntityNumbers=function(e){switch(e){case 0:return 65533;case 19:return 16;case 128:return 8364;case 129:return 129;case 130:return 8218;case 131:return 402;case 132:return 8222;case 133:return 8230;case 134:return 8224;case 135:return 8225;case 136:return 710;case 137:return 8240;case 138:return 352;case 139:return 8249;case 140:return 338;case 141:return 141;case 142:return 381;case 143:return 143;case 144:return 144;case 145:return 8216;case 146:return 8217;case 147:return 8220;case 148:return 8221;case 149:return 8226;case 150:return 8211;case 151:return 8212;case 152:return 732;case 153:return 8482;case 154:return 353;case 155:return 8250;case 156:return 339;case 157:return 157;case 158:return 382;case 159:return 376;default:if(e>=55296&&e<=57343||e>1114111)return 65533;if(e>=1&&e<=8||e>=14&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||e==11||e==65534||e==131070||e==3145726||e==196607||e==262142||e==262143||e==327678||e==327679||e==393214||e==393215||e==458750||e==458751||e==524286||e==524287||e==589822||e==589823||e==655358||e==655359||e==720894||e==720895||e==786430||e==786431||e==851966||e==851967||e==917502||e==917503||e==983038||e==983039||e==1048574||e==1048575||e==1114110||e==1114111)return e}},n.EntityParser=f},{"./InputStream":3,"html5-entities":12}],3:[function(e,t,n){function r(){this.data="",this.start=0,this.committed=0,this.eof=!1,this.lastLocation={line:0,column:0}}r.EOF=-1,r.DRAIN=-2,r.prototype={slice:function(){if(this.start>=this.data.length){if(!this.eof)throw r.DRAIN;return r.EOF}return this.data.slice(this.start,this.data.length)},"char":function(){if(!this.eof&&this.start>=this.data.length-1)throw r.DRAIN;if(this.start>=this.data.length)return r.EOF;var e=this.data[this.start++];return e==="\r"&&(e="\n"),e},advance:function(e){this.start+=e;if(this.start>=this.data.length){if(!this.eof)throw r.DRAIN;return r.EOF}this.committed>this.data.length/2&&(this.lastLocation=this.location(),this.data=this.data.slice(this.committed),this.start=this.start-this.committed,this.committed=0)},matchWhile:function(e){if(this.eof&&this.start>=this.data.length)return"";var t=new RegExp("^"+e+"+"),n=t.exec(this.slice());if(n){if(!this.eof&&n[0].length==this.data.length-this.start)throw r.DRAIN;return this.advance(n[0].length),n[0]}return""},matchUntil:function(e){var t,n;n=this.slice();if(n===r.EOF)return"";if(t=(new RegExp(e+(this.eof?"|$":""))).exec(n)){var i=this.data.slice(this.start,this.start+t.index);return this.advance(t.index),i.replace(/\r/g,"\n").replace(/\n{2,}/g,"\n")}throw r.DRAIN},append:function(e){this.data+=e},shift:function(e){if(!this.eof&&this.start+e>=this.data.length)throw r.DRAIN;if(this.eof&&this.start>=this.data.length)return r.EOF;var t=this.data.slice(this.start,this.start+e).toString();return this.advance(Math.min(e,this.data.length-this.start)),t},peek:function(e){if(!this.eof&&this.start+e>=this.data.length)throw r.DRAIN;return this.eof&&this.start>=this.data.length?r.EOF:this.data.slice(this.start,Math.min(this.start+e,this.data.length)).toString()},length:function(){return this.data.length-this.start-1},unget:function(e){if(e===r.EOF)return;this.start-=e.length},undo:function(){this.start=this.committed},commit:function(){this.committed=this.start},location:function(){var e=this.lastLocation.line,t=this.lastLocation.column,n=this.data.slice(0,this.committed),r=n.match(/\n/g),i=r?e+r.length:e,s=r?n.length-n.lastIndexOf("\n")-1:t+n.length;return{line:i,column:s}}},n.InputStream=r},{}],4:[function(e,t,n){function i(e,t,n,r){this.localName=t,this.namespaceURI=e,this.attributes=n,this.node=r}function s(e,t){for(var n=0;n-1},i.prototype.isFosterParenting=function(){return this.namespaceURI==="http://www.w3.org/1999/xhtml"?this.localName==="table"||this.localName==="tbody"||this.localName==="tfoot"||this.localName==="thead"||this.localName==="tr":!1},i.prototype.isNumberedHeader=function(){return this.namespaceURI==="http://www.w3.org/1999/xhtml"?this.localName==="h1"||this.localName==="h2"||this.localName==="h3"||this.localName==="h4"||this.localName==="h5"||this.localName==="h6":!1},i.prototype.isForeign=function(){return this.namespaceURI!="http://www.w3.org/1999/xhtml"},i.prototype.isHtmlIntegrationPoint=function(){if(this.namespaceURI==="http://www.w3.org/1998/Math/MathML"){if(this.localName!=="annotation-xml")return!1;var e=s(this,"encoding");return e?(e=e.toLowerCase(),e==="text/html"||e==="application/xhtml+xml"):!1}return this.namespaceURI==="http://www.w3.org/2000/svg"?this.localName==="foreignObject"||this.localName==="desc"||this.localName==="title":!1},i.prototype.isMathMLTextIntegrationPoint=function(){return this.namespaceURI==="http://www.w3.org/1998/Math/MathML"?this.localName==="mi"||this.localName==="mo"||this.localName==="mn"||this.localName==="ms"||this.localName==="mtext":!1},n.StackItem=i},{}],5:[function(e,t,n){function s(e){return e===" "||e==="\n"||e===" "||e==="\r"||e==="\f"}function o(e){return e>="A"&&e<="Z"||e>="a"&&e<="z"}function u(e){this._tokenHandler=e,this._state=u.DATA,this._inputStream=new r,this._currentToken=null,this._temporaryBuffer="",this._additionalAllowedCharacter=""}var r=e("./InputStream").InputStream,i=e("./EntityParser").EntityParser;u.prototype._parseError=function(e,t){this._tokenHandler.parseError(e,t)},u.prototype._emitToken=function(e){if(e.type==="StartTag")for(var t=1;t"&&r?(t._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},t._emitCurrentToken(),t.setState(n)):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:"Characters",data:""&&r?(t._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},t._emitCurrentToken(),t.setState(n)):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:"Characters",data:""&&n?(t._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},t._emitCurrentToken()):o(r)?(this._temporaryBuffer+=r,e.commit()):(t._emitToken({type:"Characters",data:""?(t._emitToken({type:"Characters",data:">"}),t.setState(p)):i==="\0"?(t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),t.setState(N)):(t._emitToken({type:"Characters",data:i}),t.setState(N)),!0}function L(e){var n=e.char();return n==="/"?(this._temporaryBuffer="",t.setState(A)):o(n)?(t._emitToken({type:"Characters",data:"<"+n}),this._temporaryBuffer=n,t.setState(M)):(t._emitToken({type:"Characters",data:"<"}),e.unget(n),t.setState(N)),!0}function A(e){var n=e.char();return o(n)?(this._temporaryBuffer=n,t.setState(O)):(t._emitToken({type:"Characters",data:""&&r?(t._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},t.setState(n),t._emitCurrentToken()):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:"Characters",data:""?(t._emitToken({type:"Characters",data:n}),this._temporaryBuffer.toLowerCase()==="script"?t.setState(_):t.setState(N)):o(n)?(t._emitToken({type:"Characters",data:n}),this._temporaryBuffer+=n,e.commit()):(e.unget(n),t.setState(N)),!0}function _(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-script"),e.unget(i),t.setState(n)):i==="-"?(t._emitToken({type:"Characters",data:"-"}),t.setState(D)):i==="<"?(t._emitToken({type:"Characters",data:"<"}),t.setState(H)):i==="\0"?(t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),e.commit()):(t._emitToken({type:"Characters",data:i}),e.commit()),!0}function D(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-script"),e.unget(i),t.setState(n)):i==="-"?(t._emitToken({type:"Characters",data:"-"}),t.setState(P)):i==="<"?(t._emitToken({type:"Characters",data:"<"}),t.setState(H)):i==="\0"?(t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),t.setState(_)):(t._emitToken({type:"Characters",data:i}),t.setState(_)),!0}function P(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-script"),e.unget(i),t.setState(n)):i==="-"?(t._emitToken({type:"Characters",data:"-"}),e.commit()):i==="<"?(t._emitToken({type:"Characters",data:"<"}),t.setState(H)):i===">"?(t._emitToken({type:"Characters",data:">"}),t.setState(p)):i==="\0"?(t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),t.setState(_)):(t._emitToken({type:"Characters",data:i}),t.setState(_)),!0}function H(e){var n=e.char();return n==="/"?(t._emitToken({type:"Characters",data:"/"}),this._temporaryBuffer="",t.setState(B)):(e.unget(n),t.setState(_)),!0}function B(e){var n=e.char();return s(n)||n==="/"||n===">"?(t._emitToken({type:"Characters",data:n}),this._temporaryBuffer.toLowerCase()==="script"?t.setState(N):t.setState(_)):o(n)?(t._emitToken({type:"Characters",data:n}),this._temporaryBuffer+=n,e.commit()):(e.unget(n),t.setState(_)),!0}function j(e){var i=e.char();return i===r.EOF?(t._parseError("bare-less-than-sign-at-eof"),t._emitToken({type:"Characters",data:"<"}),e.unget(i),t.setState(n)):o(i)?(t._currentToken={type:"StartTag",name:i.toLowerCase(),data:[]},t.setState(I)):i==="!"?t.setState(G):i==="/"?t.setState(F):i===">"?(t._parseError("expected-tag-name-but-got-right-bracket"),t._emitToken({type:"Characters",data:"<>"}),t.setState(n)):i==="?"?(t._parseError("expected-tag-name-but-got-question-mark"),e.unget(i),t.setState(Q)):(t._parseError("expected-tag-name"),t._emitToken({type:"Characters",data:"<"}),e.unget(i),t.setState(n)),!0}function F(e){var i=e.char();return i===r.EOF?(t._parseError("expected-closing-tag-but-got-eof"),t._emitToken({type:"Characters",data:""?(t._parseError("expected-closing-tag-but-got-right-bracket"),t.setState(n)):(t._parseError("expected-closing-tag-but-got-char",{data:i}),e.unget(i),t.setState(Q)),!0}function I(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-tag-name"),e.unget(i),t.setState(n)):s(i)?t.setState(q):o(i)?t._currentToken.name+=i.toLowerCase():i===">"?t._emitCurrentToken():i==="/"?t.setState(K):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.name+="\ufffd"):t._currentToken.name+=i,e.commit(),!0}function q(e){var i=e.char();if(i===r.EOF)t._parseError("expected-attribute-name-but-got-eof"),e.unget(i),t.setState(n);else{if(s(i))return!0;o(i)?(t._currentToken.data.push({nodeName:i.toLowerCase(),nodeValue:""}),t.setState(R)):i===">"?t._emitCurrentToken():i==="/"?t.setState(K):i==="'"||i==='"'||i==="="||i==="<"?(t._parseError("invalid-character-in-attribute-name"),t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data.push({nodeName:"\ufffd",nodeValue:""})):(t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R))}return!0}function R(e){var i=e.char(),u=!0,a=!1;i===r.EOF?(t._parseError("eof-in-attribute-name"),e.unget(i),t.setState(n),a=!0):i==="="?t.setState(z):o(i)?(t._currentAttribute().nodeName+=i.toLowerCase(),u=!1):i===">"?a=!0:s(i)?t.setState(U):i==="/"?t.setState(K):i==="'"||i==='"'?(t._parseError("invalid-character-in-attribute-name"),t._currentAttribute().nodeName+=i,u=!1):i==="\0"?(t._parseError("invalid-codepoint"),t._currentAttribute().nodeName+="\ufffd"):(t._currentAttribute().nodeName+=i,u=!1);if(u){var f=t._currentToken.data,l=f[f.length-1];for(var c=f.length-2;c>=0;c--)if(l.nodeName===f[c].nodeName){t._parseError("duplicate-attribute",{name:l.nodeName}),l.nodeName=null;break}a&&t._emitCurrentToken()}else e.commit();return!0}function U(e){var i=e.char();if(i===r.EOF)t._parseError("expected-end-of-tag-but-got-eof"),e.unget(i),t.setState(n);else{if(s(i))return!0;i==="="?t.setState(z):i===">"?t._emitCurrentToken():o(i)?(t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R)):i==="/"?t.setState(K):i==="'"||i==='"'||i==="<"?(t._parseError("invalid-character-after-attribute-name"),t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data.push({nodeName:"\ufffd",nodeValue:""})):(t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R))}return!0}function z(e){var i=e.char();if(i===r.EOF)t._parseError("expected-attribute-value-but-got-eof"),e.unget(i),t.setState(n);else{if(s(i))return!0;i==='"'?t.setState(W):i==="&"?(t.setState(V),e.unget(i)):i==="'"?t.setState(X):i===">"?(t._parseError("expected-attribute-value-but-got-right-bracket"),t._emitCurrentToken()):i==="="||i==="<"||i==="`"?(t._parseError("unexpected-character-in-unquoted-attribute-value"),t._currentAttribute().nodeValue+=i,t.setState(V)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentAttribute().nodeValue+="\ufffd"):(t._currentAttribute().nodeValue+=i,t.setState(V))}return!0}function W(e){var i=e.char();if(i===r.EOF)t._parseError("eof-in-attribute-value-double-quote"),e.unget(i),t.setState(n);else if(i==='"')t.setState(J);else if(i==="&")this._additionalAllowedCharacter='"',t.setState($);else if(i==="\0")t._parseError("invalid-codepoint"),t._currentAttribute().nodeValue+="\ufffd";else{var s=e.matchUntil('[\0"&]');i+=s,t._currentAttribute().nodeValue+=i}return!0}function X(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-attribute-value-single-quote"),e.unget(i),t.setState(n)):i==="'"?t.setState(J):i==="&"?(this._additionalAllowedCharacter="'",t.setState($)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentAttribute().nodeValue+="\ufffd"):t._currentAttribute().nodeValue+=i+e.matchUntil("\0|['&]"),!0}function V(e){var i=e.char();if(i===r.EOF)t._parseError("eof-after-attribute-value"),e.unget(i),t.setState(n);else if(s(i))t.setState(q);else if(i==="&")this._additionalAllowedCharacter=">",t.setState($);else if(i===">")t._emitCurrentToken();else if(i==='"'||i==="'"||i==="="||i==="`"||i==="<")t._parseError("unexpected-character-in-unquoted-attribute-value"),t._currentAttribute().nodeValue+=i,e.commit();else if(i==="\0")t._parseError("invalid-codepoint"),t._currentAttribute().nodeValue+="\ufffd";else{var o=e.matchUntil("\0|[ \n\x0b\f \r&<>\"'=`]");o===r.EOF&&(t._parseError("eof-in-attribute-value-no-quotes"),t._emitCurrentToken()),e.commit(),t._currentAttribute().nodeValue+=i+o}return!0}function $(e){var n=i.consumeEntity(e,t,this._additionalAllowedCharacter);return this._currentAttribute().nodeValue+=n||"&",this._additionalAllowedCharacter==='"'?t.setState(W):this._additionalAllowedCharacter==="'"?t.setState(X):this._additionalAllowedCharacter===">"&&t.setState(V),!0}function J(e){var i=e.char();return i===r.EOF?(t._parseError("eof-after-attribute-value"),e.unget(i),t.setState(n)):s(i)?t.setState(q):i===">"?(t.setState(n),t._emitCurrentToken()):i==="/"?t.setState(K):(t._parseError("unexpected-character-after-attribute-value"),e.unget(i),t.setState(q)),!0}function K(e){var i=e.char();return i===r.EOF?(t._parseError("unexpected-eof-after-solidus-in-tag"),e.unget(i),t.setState(n)):i===">"?(t._currentToken.selfClosing=!0,t.setState(n),t._emitCurrentToken()):(t._parseError("unexpected-character-after-solidus-in-tag"),e.unget(i),t.setState(q)),!0}function Q(e){var r=e.matchUntil(">");return r=r.replace(/\u0000/g,"\ufffd"),e.char(),t._emitToken({type:"Comment",data:r}),t.setState(n),!0}function G(e){var n=e.shift(2);if(n==="--")t._currentToken={type:"Comment",data:""},t.setState(Z);else{var i=e.shift(5);if(i===r.EOF||n===r.EOF)return t._parseError("expected-dashes-or-doctype"),t.setState(Q),e.unget(n),!0;n+=i,n.toUpperCase()==="DOCTYPE"?(t._currentToken={type:"Doctype",name:"",publicId:null,systemId:null,forceQuirks:!1},t.setState(st)):t._tokenHandler.isCdataSectionAllowed()&&n==="[CDATA["?t.setState(Y):(t._parseError("expected-dashes-or-doctype"),e.unget(n),t.setState(Q))}return!0}function Y(e){var r=e.matchUntil("]]>");return e.shift(3),r&&t._emitToken({type:"Characters",data:r}),t.setState(n),!0}function Z(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i==="-"?t.setState(et):i===">"?(t._parseError("incorrect-comment"),t._emitToken(t._currentToken),t.setState(n)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="\ufffd"):(t._currentToken.data+=i,t.setState(tt)),!0}function et(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i==="-"?t.setState(rt):i===">"?(t._parseError("incorrect-comment"),t._emitToken(t._currentToken),t.setState(n)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="\ufffd"):(t._currentToken.data+="-"+i,t.setState(tt)),!0}function tt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i==="-"?t.setState(nt):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="\ufffd"):(t._currentToken.data+=i,e.commit()),!0}function nt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment-end-dash"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i==="-"?t.setState(rt):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="-\ufffd",t.setState(tt)):(t._currentToken.data+="-"+i+e.matchUntil("\0|-"),e.char()),!0}function rt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment-double-dash"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===">"?(t._emitToken(t._currentToken),t.setState(n)):i==="!"?(t._parseError("unexpected-bang-after-double-dash-in-comment"),t.setState(it)):i==="-"?(t._parseError("unexpected-dash-after-double-dash-in-comment"),t._currentToken.data+=i):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="--\ufffd",t.setState(tt)):(t._parseError("unexpected-char-in-comment"),t._currentToken.data+="--"+i,t.setState(tt)),!0}function it(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment-end-bang-state"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===">"?(t._emitToken(t._currentToken),t.setState(n)):i==="-"?(t._currentToken.data+="--!",t.setState(nt)):(t._currentToken.data+="--!"+i,t.setState(tt)),!0}function st(e){var i=e.char();return i===r.EOF?(t._parseError("expected-doctype-name-but-got-eof"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(ot):(t._parseError("need-space-after-doctype"),e.unget(i),t.setState(ot)),!0}function ot(e){var i=e.char();return i===r.EOF?(t._parseError("expected-doctype-name-but-got-eof"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)||(i===">"?(t._parseError("expected-doctype-name-but-got-right-bracket"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):(o(i)&&(i=i.toLowerCase()),t._currentToken.name=i,t.setState(ut))),!0}function ut(e){var i=e.char();return i===r.EOF?(t._currentToken.forceQuirks=!0,e.unget(i),t._parseError("eof-in-doctype-name"),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(at):i===">"?(t.setState(n),t._emitCurrentToken()):(o(i)&&(i=i.toLowerCase()),t._currentToken.name+=i,e.commit()),!0}function at(e){var i=e.char();if(i===r.EOF)t._currentToken.forceQuirks=!0,e.unget(i),t._parseError("eof-in-doctype"),t.setState(n),t._emitCurrentToken();else if(!s(i))if(i===">")t.setState(n),t._emitCurrentToken();else{if(["p","P"].indexOf(i)>-1){var o=[["u","U"],["b","B"],["l","L"],["i","I"],["c","C"]],u=o.every(function(t){return i=e.char(),t.indexOf(i)>-1});if(u)return t.setState(ft),!0}else if(["s","S"].indexOf(i)>-1){var o=[["y","Y"],["s","S"],["t","T"],["e","E"],["m","M"]],u=o.every(function(t){return i=e.char(),t.indexOf(i)>-1});if(u)return t.setState(vt),!0}e.unget(i),t._currentToken.forceQuirks=!0,i===r.EOF?(t._parseError("eof-in-doctype"),e.unget(i),t.setState(n),t._emitCurrentToken()):(t._parseError("expected-space-or-right-bracket-in-doctype",{data:i}),t.setState(wt))}return!0}function ft(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(lt):i==="'"||i==='"'?(t._parseError("unexpected-char-in-doctype"),e.unget(i),t.setState(lt)):(e.unget(i),t.setState(lt)),!0}function lt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)||(i==='"'?(t._currentToken.publicId="",t.setState(ct)):i==="'"?(t._currentToken.publicId="",t.setState(ht)):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):(t._parseError("unexpected-char-in-doctype"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function ct(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):i==='"'?t.setState(pt):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):t._currentToken.publicId+=i,!0}function ht(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):i==="'"?t.setState(pt):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):t._currentToken.publicId+=i,!0}function pt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)?t.setState(dt):i===">"?(t.setState(n),t._emitCurrentToken()):i==='"'?(t._parseError("unexpected-char-in-doctype"),t._currentToken.systemId="",t.setState(gt)):i==="'"?(t._parseError("unexpected-char-in-doctype"),t._currentToken.systemId="",t.setState(yt)):(t._parseError("unexpected-char-in-doctype"),t._currentToken.forceQuirks=!0,t.setState(wt)),!0}function dt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i===">"?(t._emitCurrentToken(),t.setState(n)):i==='"'?(t._currentToken.systemId="",t.setState(gt)):i==="'"?(t._currentToken.systemId="",t.setState(yt)):(t._parseError("unexpected-char-in-doctype"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function vt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)?t.setState(mt):i==="'"||i==='"'?(t._parseError("unexpected-char-in-doctype"),e.unget(i),t.setState(mt)):(e.unget(i),t.setState(mt)),!0}function mt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i==='"'?(t._currentToken.systemId="",t.setState(gt)):i==="'"?(t._currentToken.systemId="",t.setState(yt)):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):(t._parseError("unexpected-char-in-doctype"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function gt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):i==='"'?t.setState(bt):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):t._currentToken.systemId+=i,!0}function yt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):i==="'"?t.setState(bt):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):t._currentToken.systemId+=i,!0}function bt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i===">"?(t._emitCurrentToken(),t.setState(n)):(t._parseError("unexpected-char-in-doctype"),t.setState(wt))),!0}function wt(e){var i=e.char();return i===r.EOF?(e.unget(i),t._emitCurrentToken(),t.setState(n)):i===">"&&(t._emitCurrentToken(),t.setState(n)),!0}u.DATA=n,u.RCDATA=f,u.RAWTEXT=c,u.SCRIPT_DATA=p,u.PLAINTEXT=h,this._state=u.DATA,this._inputStream.append(e),this._tokenHandler.startTokenization(this),this._inputStream.eof=!0;var t=this;while(this._state.call(this,this._inputStream));},Object.defineProperty(u.prototype,"lineNumber",{get:function(){return this._inputStream.location().line}}),Object.defineProperty(u.prototype,"columnNumber",{get:function(){return this._inputStream.location().column}}),n.Tokenizer=u},{"./EntityParser":2,"./InputStream":3}],6:[function(e,t,n){function c(e){return e===" "||e==="\n"||e===" "||e==="\r"||e==="\f"}function h(e){return c(e)||e==="\ufffd"}function p(e){for(var t=0;t2?e.parseError("expected-closing-tag-but-got-eof"):e.openElements.length==2&&e.openElements.item(1).localName!="body"?e.parseError("expected-closing-tag-but-got-eof"):e.context&&e.openElements.length>1},processComment:function(t){e.insertComment(t,e.currentStackItem().node)},processDoctype:function(t,n,r,i){e.parseError("unexpected-doctype")},processStartTag:function(e,t,n){if(this[this.start_tag_handlers[e]])this[this.start_tag_handlers[e]](e,t,n);else{if(!this[this.start_tag_handlers["-default"]])throw new Error("No handler found for "+e);this[this.start_tag_handlers["-default"]](e,t,n)}},processEndTag:function(e){if(this[this.end_tag_handlers[e]])this[this.end_tag_handlers[e]](e);else{if(!this[this.end_tag_handlers["-default"]])throw new Error("No handler found for "+e);this[this.end_tag_handlers["-default"]](e)}},startTagHtml:function(e,n){t.inBody.startTagHtml(e,n)}},t.initial=Object.create(t.base),t.initial.processEOF=function(){e.parseError("expected-doctype-but-got-eof"),this.anythingElse(),e.insertionMode.processEOF()},t.initial.processComment=function(t){e.insertComment(t,e.document)},t.initial.processDoctype=function(t,n,r,i){function s(e){return n.toLowerCase().indexOf(e)===0}e.insertDoctype(t||"",n||"",r||""),i||t!="html"||n!=null&&(["+//silmaril//dtd html pro v0r11 19970101//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//as//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html strict//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//ietf//dtd html//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//spyglass//dtd html 2.0 extended//","-//sq//dtd html 2.0 hotmetal + extensions//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//","html"].some(s)||["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"].indexOf(n.toLowerCase())>-1||r==null&&["-//w3c//dtd html 4.01 transitional//","-//w3c//dtd html 4.01 frameset//"].some(s))||r!=null&&r.toLowerCase()=="http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"?(e.compatMode="quirks",e.parseError("quirky-doctype")):n!=null&&(["-//w3c//dtd xhtml 1.0 transitional//","-//w3c//dtd xhtml 1.0 frameset//"].some(s)||r!=null&&["-//w3c//dtd html 4.01 transitional//","-//w3c//dtd html 4.01 frameset//"].indexOf(n.toLowerCase())>-1)?(e.compatMode="limited quirks",e.parseError("almost-standards-doctype")):n=="-//W3C//DTD HTML 4.0//EN"&&(r==null||r=="http://www.w3.org/TR/REC-html40/strict.dtd")||n=="-//W3C//DTD HTML 4.01//EN"&&(r==null||r=="http://www.w3.org/TR/html4/strict.dtd")||n=="-//W3C//DTD XHTML 1.0 Strict//EN"&&r=="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"||n=="-//W3C//DTD XHTML 1.1//EN"&&r=="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"||(r!=null&&r!="about:legacy-compat"||n!=null)&&e.parseError("unknown-doctype"),e.setInsertionMode("beforeHTML")},t.initial.processCharacters=function(t){t.skipLeadingWhitespace();if(!t.length)return;e.parseError("expected-doctype-but-got-chars"),this.anythingElse(),e.insertionMode.processCharacters(t)},t.initial.processStartTag=function(t,n,r){e.parseError("expected-doctype-but-got-start-tag",{name:t}),this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.initial.processEndTag=function(t){e.parseError("expected-doctype-but-got-end-tag",{name:t}),this.anythingElse(),e.insertionMode.processEndTag(t)},t.initial.anythingElse=function(){e.compatMode="quirks",e.setInsertionMode("beforeHTML")},t.beforeHTML=Object.create(t.base),t.beforeHTML.start_tag_handlers={html:"startTagHtml","-default":"startTagOther"},t.beforeHTML.processEOF=function(){this.anythingElse(),e.insertionMode.processEOF()},t.beforeHTML.processComment=function(t){e.insertComment(t,e.document)},t.beforeHTML.processCharacters=function(t){t.skipLeadingWhitespace();if(!t.length)return;this.anythingElse(),e.insertionMode.processCharacters(t)},t.beforeHTML.startTagHtml=function(t,n,r){e.insertHtmlElement(n),e.setInsertionMode("beforeHead")},t.beforeHTML.startTagOther=function(t,n,r){this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.beforeHTML.processEndTag=function(t){this.anythingElse(),e.insertionMode.processEndTag(t)},t.beforeHTML.anythingElse=function(){e.insertHtmlElement(),e.setInsertionMode("beforeHead")},t.afterAfterBody=Object.create(t.base),t.afterAfterBody.start_tag_handlers={html:"startTagHtml","-default":"startTagOther"},t.afterAfterBody.processComment=function(t){e.insertComment(t,e.document)},t.afterAfterBody.processDoctype=function(e){t.inBody.processDoctype(e)},t.afterAfterBody.startTagHtml=function(e,n){t.inBody.startTagHtml(e,n)},t.afterAfterBody.startTagOther=function(t,n,r){e.parseError("unexpected-start-tag",{name:t}),e.setInsertionMode("inBody"),e.insertionMode.processStartTag(t,n,r)},t.afterAfterBody.endTagOther=function(t){e.parseError("unexpected-end-tag",{name:t}),e.setInsertionMode("inBody"),e.insertionMode.processEndTag(t)},t.afterAfterBody.processCharacters=function(n){if(!p(n.characters))return e.parseError("unexpected-char-after-body"),e.setInsertionMode("inBody"),e.insertionMode.processCharacters(n);t.inBody.processCharacters(n)},t.afterBody=Object.create(t.base),t.afterBody.end_tag_handlers={html:"endTagHtml","-default":"endTagOther"},t.afterBody.processComment=function(t){e.insertComment(t,e.openElements.rootNode)},t.afterBody.processCharacters=function(n){if(!p(n.characters))return e.parseError("unexpected-char-after-body"),e.setInsertionMode("inBody"),e.insertionMode.processCharacters(n);t.inBody.processCharacters(n)},t.afterBody.processStartTag=function(t,n,r){e.parseError("unexpected-start-tag-after-body",{name:t}),e.setInsertionMode("inBody"),e.insertionMode.processStartTag(t,n,r)},t.afterBody.endTagHtml=function(t){e.context?e.parseError("end-html-in-innerhtml"):e.setInsertionMode("afterAfterBody")},t.afterBody.endTagOther=function(t){e.parseError("unexpected-end-tag-after-body",{name:t}),e.setInsertionMode("inBody"),e.insertionMode.processEndTag(t)},t.afterFrameset=Object.create(t.base),t.afterFrameset.start_tag_handlers={html:"startTagHtml",noframes:"startTagNoframes","-default":"startTagOther"},t.afterFrameset.end_tag_handlers={html:"endTagHtml","-default":"endTagOther"},t.afterFrameset.processCharacters=function(t){var n=t.takeRemaining(),r="";for(var i=0;i1)e.openElements.pop();e.insertElement(t,n),e.setInsertionMode("inFrameset")}},t.inBody.startTagCloseP=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n)},t.inBody.startTagPreListing=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n),e.framesetOk=!1,e.shouldSkipLeadingNewline=!0},t.inBody.startTagForm=function(t,n){e.form?e.parseError("unexpected-start-tag",{name:t}):(e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n),e.form=e.currentStackItem())},t.inBody.startTagRpRt=function(t,n){e.openElements.inScope("ruby")&&(e.generateImpliedEndTags(),e.currentStackItem().localName!="ruby"&&e.parseError("unexpected-start-tag",{name:t})),e.insertElement(t,n)},t.inBody.startTagListItem=function(t,n){var r={li:["li"],dd:["dd","dt"],dt:["dd","dt"]},i=r[t],s=e.openElements;for(var o=s.length-1;o>=0;o--){var u=s.item(o);if(i.indexOf(u.localName)!=-1){e.insertionMode.processEndTag(u.localName);break}if(u.isSpecial()&&u.localName!=="p"&&u.localName!=="address"&&u.localName!=="div")break}e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n),e.framesetOk=!1},t.inBody.startTagPlaintext=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n),e.tokenizer.setState(u.PLAINTEXT)},t.inBody.startTagHeading=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.currentStackItem().isNumberedHeader()&&(e.parseError("unexpected-start-tag",{name:t}),e.popElement()),e.insertElement(t,n)},t.inBody.startTagA=function(t,n){var r=e.elementInActiveFormattingElements("a");r&&(e.parseError("unexpected-start-tag-implies-end-tag",{startName:"a",endName:"a"}),e.adoptionAgencyEndTag("a"),e.openElements.contains(r)&&e.openElements.remove(r),e.removeElementFromActiveFormattingElements(r)),e.reconstructActiveFormattingElements(),e.insertFormattingElement(t,n)},t.inBody.startTagFormatting=function(t,n){e.reconstructActiveFormattingElements(),e.insertFormattingElement(t,n)},t.inBody.startTagNobr=function(t,n){e.reconstructActiveFormattingElements(),e.openElements.inScope("nobr")&&(e.parseError("unexpected-start-tag-implies-end-tag",{startName:"nobr",endName:"nobr"}),this.processEndTag("nobr"),e.reconstructActiveFormattingElements()),e.insertFormattingElement(t,n)},t.inBody.startTagButton=function(t,n){e.openElements.inScope("button")?(e.parseError("unexpected-start-tag-implies-end-tag",{startName:"button",endName:"button"}),this.processEndTag("button"),e.insertionMode.processStartTag(t,n)):(e.framesetOk=!1,e.reconstructActiveFormattingElements(),e.insertElement(t,n))},t.inBody.startTagAppletMarqueeObject=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n),e.activeFormattingElements.push(l),e.framesetOk=!1},t.inBody.endTagAppletMarqueeObject=function(t){e.openElements.inScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early",{name:t}),e.openElements.popUntilPopped(t),e.clearActiveFormattingElements()):e.parseError("unexpected-end-tag",{name:t})},t.inBody.startTagXmp=function(t,n){e.openElements.inButtonScope("p")&&this.processEndTag("p"),e.reconstructActiveFormattingElements(),e.processGenericRawTextStartTag(t,n),e.framesetOk=!1},t.inBody.startTagTable=function(t,n){e.compatMode!=="quirks"&&e.openElements.inButtonScope("p")&&this.processEndTag("p"),e.insertElement(t,n),e.setInsertionMode("inTable"),e.framesetOk=!1},t.inBody.startTagVoidFormatting=function(t,n){e.reconstructActiveFormattingElements(),e.insertSelfClosingElement(t,n),e.framesetOk=!1},t.inBody.startTagParamSourceTrack=function(t,n){e.insertSelfClosingElement(t,n)},t.inBody.startTagHr=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertSelfClosingElement(t,n),e.framesetOk=!1},t.inBody.startTagImage=function(t,n){e.parseError("unexpected-start-tag-treated-as",{originalName:"image",newName:"img"}),this.processStartTag("img",n)},t.inBody.startTagInput=function(t,n){var r=e.framesetOk;this.startTagVoidFormatting(t,n);for(var i in n)if(n[i].nodeName=="type"){n[i].nodeValue.toLowerCase()=="hidden"&&(e.framesetOk=r);break}},t.inBody.startTagIsindex=function(t,n){e.parseError("deprecated-tag",{name:"isindex"}),e.selfClosingFlagAcknowledged=!0;if(e.form)return;var r=[],i=[],s="This is a searchable index. Enter search keywords: ";for(var o in n)switch(n[o].nodeName){case"action":r.push({nodeName:"action",nodeValue:n[o].nodeValue});break;case"prompt":s=n[o].nodeValue;break;case"name":break;default:i.push({nodeName:n[o].nodeName,nodeValue:n[o].nodeValue})}i.push({nodeName:"name",nodeValue:"isindex"}),this.processStartTag("form",r),this.processStartTag("hr"),this.processStartTag("label"),this.processCharacters(new m(s)),this.processStartTag("input",i),this.processEndTag("label"),this.processStartTag("hr"),this.processEndTag("form")},t.inBody.startTagTextarea=function(t,n){e.insertElement(t,n),e.tokenizer.setState(u.RCDATA),e.originalInsertionMode=e.insertionModeName,e.shouldSkipLeadingNewline=!0,e.framesetOk=!1,e.setInsertionMode("text")},t.inBody.startTagIFrame=function(t,n){e.framesetOk=!1,this.startTagRawText(t,n)},t.inBody.startTagRawText=function(t,n){e.processGenericRawTextStartTag(t,n)},t.inBody.startTagSelect=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n),e.framesetOk=!1;var r=e.insertionModeName;r=="inTable"||r=="inCaption"||r=="inColumnGroup"||r=="inTableBody"||r=="inRow"||r=="inCell"?e.setInsertionMode("inSelectInTable"):e.setInsertionMode("inSelect")},t.inBody.startTagMisplaced=function(t,n){e.parseError("unexpected-start-tag-ignored",{name:t})},t.inBody.endTagMisplaced=function(t){e.parseError("unexpected-end-tag",{name:t})},t.inBody.endTagBr=function(t){e.parseError("unexpected-end-tag-treated-as",{originalName:"br",newName:"br element"}),e.reconstructActiveFormattingElements(),e.insertElement(t,[]),e.popElement()},t.inBody.startTagOptionOptgroup=function(t,n){e.currentStackItem().localName=="option"&&e.popElement(),e.reconstructActiveFormattingElements(),e.insertElement(t,n)},t.inBody.startTagOther=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n)},t.inBody.endTagOther=function(t){var n;for(var r=e.openElements.length-1;r>0;r--){n=e.openElements.item(r);if(n.localName==t){e.generateImpliedEndTags(t),e.currentStackItem().localName!=t&&e.parseError("unexpected-end-tag",{name:t}),e.openElements.remove_openElements_until(function(e){return e===n});break}if(n.isSpecial()){e.parseError("unexpected-end-tag",{name:t});break}}},t.inBody.startTagMath=function(t,n,r){e.reconstructActiveFormattingElements(),n=e.adjustMathMLAttributes(n),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,"http://www.w3.org/1998/Math/MathML",r)},t.inBody.startTagSVG=function(t,n,r){e.reconstructActiveFormattingElements(),n=e.adjustSVGAttributes(n),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,"http://www.w3.org/2000/svg",r)},t.inBody.endTagP=function(t){e.openElements.inButtonScope("p")?(e.generateImpliedEndTags("p"),e.currentStackItem().localName!="p"&&e.parseError("unexpected-implied-end-tag",{name:"p"}),e.openElements.popUntilPopped(t)):(e.parseError("unexpected-end-tag",{name:"p"}),this.startTagCloseP("p",[]),this.endTagP("p"))},t.inBody.endTagBody=function(t){if(!e.openElements.inScope("body")){e.parseError("unexpected-end-tag",{name:t});return}e.currentStackItem().localName!="body"&&e.parseError("expected-one-end-tag-but-got-another",{expectedName:e.currentStackItem().localName,gotName:t}),e.setInsertionMode("afterBody")},t.inBody.endTagHtml=function(t){if(!e.openElements.inScope("body")){e.parseError("unexpected-end-tag",{name:t});return}e.currentStackItem().localName!="body"&&e.parseError("expected-one-end-tag-but-got-another",{expectedName:e.currentStackItem().localName,gotName:t}),e.setInsertionMode("afterBody"),e.insertionMode.processEndTag(t)},t.inBody.endTagBlock=function(t){e.openElements.inScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early",{name:t}),e.openElements.popUntilPopped(t)):e.parseError("unexpected-end-tag",{name:t})},t.inBody.endTagForm=function(t){var n=e.form;e.form=null,!n||!e.openElements.inScope(t)?e.parseError("unexpected-end-tag",{name:t}):(e.generateImpliedEndTags(),e.currentStackItem()!=n&&e.parseError("end-tag-too-early-ignored",{name:"form"}),e.openElements.remove(n))},t.inBody.endTagListItem=function(t){e.openElements.inListItemScope(t)?(e.generateImpliedEndTags(t),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early",{name:t}),e.openElements.popUntilPopped(t)):e.parseError("unexpected-end-tag",{name:t})},t.inBody.endTagHeading=function(t){if(!e.openElements.hasNumberedHeaderElementInScope()){e.parseError("unexpected-end-tag",{name:t});return}e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early",{name:t}),e.openElements.remove_openElements_until(function(e){return e.isNumberedHeader()})},t.inBody.endTagFormatting=function(t,n){e.adoptionAgencyEndTag(t)||this.endTagOther(t,n)},t.inCaption=Object.create(t.base),t.inCaption.start_tag_handlers={html:"startTagHtml",caption:"startTagTableElement",col:"startTagTableElement",colgroup:"startTagTableElement",tbody:"startTagTableElement",td:"startTagTableElement",tfoot:"startTagTableElement",thead:"startTagTableElement",tr:"startTagTableElement","-default":"startTagOther"},t.inCaption.end_tag_handlers={caption:"endTagCaption",table:"endTagTable",body:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",tbody:"endTagIgnore",td:"endTagIgnore",tfood:"endTagIgnore",thead:"endTagIgnore",tr:"endTagIgnore","-default":"endTagOther"},t.inCaption.processCharacters=function(e){t.inBody.processCharacters(e)},t.inCaption.startTagTableElement=function(t,n){e.parseError("unexpected-end-tag",{name:t});var r=!e.openElements.inTableScope("caption");e.insertionMode.processEndTag("caption"),r||e.insertionMode.processStartTag(t,n)},t.inCaption.startTagOther=function(e,n,r){t.inBody.processStartTag(e,n,r)},t.inCaption.endTagCaption=function(t){e.openElements.inTableScope("caption")?(e.generateImpliedEndTags(),e.currentStackItem().localName!="caption"&&e.parseError("expected-one-end-tag-but-got-another",{gotName:"caption",expectedName:e.currentStackItem().localName}),e.openElements.popUntilPopped("caption"),e.clearActiveFormattingElements(),e.setInsertionMode("inTable")):(r.ok(e.context),e.parseError("unexpected-end-tag",{name:t}))},t.inCaption.endTagTable=function(t){e.parseError("unexpected-end-table-in-caption");var n=!e.openElements.inTableScope("caption");e.insertionMode.processEndTag("caption"),n||e.insertionMode.processEndTag(t)},t.inCaption.endTagIgnore=function(t){e.parseError("unexpected-end-tag",{name:t})},t.inCaption.endTagOther=function(e){t.inBody.processEndTag(e)},t.inCell=Object.create(t.base),t.inCell.start_tag_handlers={html:"startTagHtml",caption:"startTagTableOther",col:"startTagTableOther",colgroup:"startTagTableOther",tbody:"startTagTableOther",td:"startTagTableOther",tfoot:"startTagTableOther",th:"startTagTableOther",thead:"startTagTableOther",tr:"startTagTableOther","-default":"startTagOther"},t.inCell.end_tag_handlers={td:"endTagTableCell",th:"endTagTableCell",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",table:"endTagImply",tbody:"endTagImply",tfoot:"endTagImply",thead:"endTagImply",tr:"endTagImply","-default":"endTagOther"},t.inCell.processCharacters=function(e){t.inBody.processCharacters(e)},t.inCell.startTagTableOther=function(t,n,r){e.openElements.inTableScope("td")||e.openElements.inTableScope("th")?(this.closeCell(),e.insertionMode.processStartTag(t,n,r)):e.parseError("unexpected-start-tag",{name:t})},t.inCell.startTagOther=function(e,n,r){t.inBody.processStartTag(e,n,r)},t.inCell.endTagTableCell=function(t){e.openElements.inTableScope(t)?(e.generateImpliedEndTags(t),e.currentStackItem().localName!=t.toLowerCase()?(e.parseError("unexpected-cell-end-tag",{name:t}),e.openElements.popUntilPopped(t)):e.popElement(),e.clearActiveFormattingElements(),e.setInsertionMode("inRow")):e.parseError("unexpected-end-tag",{name:t})},t.inCell.endTagIgnore=function(t){e.parseError("unexpected-end-tag",{name:t})},t.inCell.endTagImply=function(t){e.openElements.inTableScope(t)?(this.closeCell(),e.insertionMode.processEndTag(t)):e.parseError("unexpected-end-tag",{name:t})},t.inCell.endTagOther=function(e){t.inBody.processEndTag(e)},t.inCell.closeCell=function(){e.openElements.inTableScope("td")?this.endTagTableCell("td"):e.openElements.inTableScope("th")&&this.endTagTableCell("th")},t.inColumnGroup=Object.create(t.base),t.inColumnGroup.start_tag_handlers={html:"startTagHtml",col:"startTagCol","-default":"startTagOther"},t.inColumnGroup.end_tag_handlers={colgroup:"endTagColgroup",col:"endTagCol","-default":"endTagOther"},t.inColumnGroup.ignoreEndTagColgroup=function(){return e.currentStackItem().localName=="html"},t.inColumnGroup.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;var r=this.ignoreEndTagColgroup();this.endTagColgroup("colgroup"),r||e.insertionMode.processCharacters(t)},t.inColumnGroup.startTagCol=function(t,n){e.insertSelfClosingElement(t,n)},t.inColumnGroup.startTagOther=function(t,n,r){var i=this.ignoreEndTagColgroup();this.endTagColgroup("colgroup"),i||e.insertionMode.processStartTag(t,n,r)},t.inColumnGroup.endTagColgroup=function(t){this.ignoreEndTagColgroup()?(r.ok(e.context),e.parseError("unexpected-end-tag",{name:t})):(e.popElement(),e.setInsertionMode("inTable"))},t.inColumnGroup.endTagCol=function(t){e.parseError("no-end-tag",{name:"col"})},t.inColumnGroup.endTagOther=function(t){var n=this.ignoreEndTagColgroup();this.endTagColgroup("colgroup"),n||e.insertionMode.processEndTag(t)},t.inForeignContent=Object.create(t.base),t.inForeignContent.processStartTag=function(t,n,r){if(["b","big","blockquote","body","br","center","code","dd","div","dl","dt","em","embed","h1","h2","h3","h4","h5","h6","head","hr","i","img","li","listing","menu","meta","nobr","ol","p","pre","ruby","s","small","span","strong","strike","sub","sup","table","tt","u","ul","var"].indexOf(t)!=-1||t=="font"&&n.some(function(e){return["color","face","size"].indexOf(e.nodeName)>=0})){e.parseError("unexpected-html-element-in-foreign-content",{name:t});while(e.currentStackItem().isForeign()&&!e.currentStackItem().isHtmlIntegrationPoint()&&!e.currentStackItem().isMathMLTextIntegrationPoint())e.openElements.pop();e.insertionMode.processStartTag(t,n,r);return}e.currentStackItem().namespaceURI=="http://www.w3.org/1998/Math/MathML"&&(n=e.adjustMathMLAttributes(n)),e.currentStackItem().namespaceURI=="http://www.w3.org/2000/svg"&&(t=e.adjustSVGTagNameCase(t),n=e.adjustSVGAttributes(n)),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,e.currentStackItem().namespaceURI,r)},t.inForeignContent.processEndTag=function(t){var n=e.currentStackItem(),r=e.openElements.length-1;n.localName.toLowerCase()!=t&&e.parseError("unexpected-end-tag",{name:t});for(;;){if(r===0)break;if(n.localName.toLowerCase()==t){while(e.openElements.pop()!=n);break}r-=1,n=e.openElements.item(r);if(n.isForeign())continue;e.insertionMode.processEndTag(t);break}},t.inForeignContent.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\u0000/g,function(t,n){return e.parseError("invalid-codepoint"),"\ufffd"}),e.framesetOk&&!d(n)&&(e.framesetOk=!1),e.insertText(n)},t.inHeadNoscript=Object.create(t.base),t.inHeadNoscript.start_tag_handlers={html:"startTagHtml",basefont:"startTagBasefontBgsoundLinkMetaNoframesStyle",bgsound:"startTagBasefontBgsoundLinkMetaNoframesStyle",link:"startTagBasefontBgsoundLinkMetaNoframesStyle",meta:"startTagBasefontBgsoundLinkMetaNoframesStyle",noframes:"startTagBasefontBgsoundLinkMetaNoframesStyle",style:"startTagBasefontBgsoundLinkMetaNoframesStyle",head:"startTagHeadNoscript",noscript:"startTagHeadNoscript","-default":"startTagOther"},t.inHeadNoscript.end_tag_handlers={noscript:"endTagNoscript",br:"endTagBr","-default":"endTagOther"},t.inHeadNoscript.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;e.parseError("unexpected-char-in-frameset"),this.anythingElse(),e.insertionMode.processCharacters(t)},t.inHeadNoscript.processComment=function(e){t.inHead.processComment(e)},t.inHeadNoscript.startTagBasefontBgsoundLinkMetaNoframesStyle=function(e,n){t.inHead.processStartTag(e,n)},t.inHeadNoscript.startTagHeadNoscript=function(t,n){e.parseError("unexpected-start-tag-in-frameset",{name:t})},t.inHeadNoscript.startTagOther=function(t,n){e.parseError("unexpected-start-tag-in-frameset",{name:t}),this.anythingElse(),e.insertionMode.processStartTag(t,n)},t.inHeadNoscript.endTagBr=function(t,n){e.parseError("unexpected-end-tag-in-frameset",{name:t}),this.anythingElse(),e.insertionMode.processEndTag(t,n)},t.inHeadNoscript.endTagNoscript=function(t,n){e.popElement(),e.setInsertionMode("inHead")},t.inHeadNoscript.endTagOther=function(t,n){e.parseError("unexpected-end-tag-in-frameset",{name:t})},t.inHeadNoscript.anythingElse=function(){e.popElement(),e.setInsertionMode("inHead")},t.inFrameset=Object.create(t.base),t.inFrameset.start_tag_handlers={html:"startTagHtml",frameset:"startTagFrameset",frame:"startTagFrame",noframes:"startTagNoframes","-default":"startTagOther"},t.inFrameset.end_tag_handlers={frameset:"endTagFrameset",noframes:"endTagNoframes","-default":"endTagOther"},t.inFrameset.processCharacters=function(t){e.parseError("unexpected-char-in-frameset")},t.inFrameset.startTagFrameset=function(t,n){e.insertElement(t,n)},t.inFrameset.startTagFrame=function(t,n){e.insertSelfClosingElement(t,n)},t.inFrameset.startTagNoframes=function(e,n){t.inBody.processStartTag(e,n)},t.inFrameset.startTagOther=function(t,n){e.parseError("unexpected-start-tag-in-frameset",{name:t})},t.inFrameset.endTagFrameset=function(t,n){e.currentStackItem().localName=="html"?e.parseError("unexpected-frameset-in-frameset-innerhtml"):e.popElement(),!e.context&&e.currentStackItem().localName!="frameset"&&e.setInsertionMode("afterFrameset")},t.inFrameset.endTagNoframes=function(e){t.inBody.processEndTag(e)},t.inFrameset.endTagOther=function(t){e.parseError("unexpected-end-tag-in-frameset",{name:t})},t.inTable=Object.create(t.base),t.inTable.start_tag_handlers={html:"startTagHtml",caption:"startTagCaption",colgroup:"startTagColgroup",col:"startTagCol",table:"startTagTable",tbody:"startTagRowGroup",tfoot:"startTagRowGroup",thead:"startTagRowGroup",td:"startTagImplyTbody",th:"startTagImplyTbody",tr:"startTagImplyTbody",style:"startTagStyleScript",script:"startTagStyleScript",input:"startTagInput",form:"startTagForm","-default":"startTagOther"},t.inTable.end_tag_handlers={table:"endTagTable",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",tbody:"endTagIgnore",td:"endTagIgnore",tfoot:"endTagIgnore",th:"endTagIgnore",thead:"endTagIgnore",tr:"endTagIgnore","-default":"endTagOther"},t.inTable.processCharacters=function(n){if(e.currentStackItem().isFosterParenting()){var r=e.insertionModeName;e.setInsertionMode("inTableText"),e.originalInsertionMode=r,e.insertionMode.processCharacters(n)}else e.redirectAttachToFosterParent=!0,t.inBody.processCharacters(n),e.redirectAttachToFosterParent=!1},t.inTable.startTagCaption=function(t,n){e.openElements.popUntilTableScopeMarker(),e.activeFormattingElements.push(l),e.insertElement(t,n),e.setInsertionMode("inCaption")},t.inTable.startTagColgroup=function(t,n){e.openElements.popUntilTableScopeMarker(),e.insertElement(t,n),e.setInsertionMode("inColumnGroup")},t.inTable.startTagCol=function(t,n){this.startTagColgroup("colgroup",[]),e.insertionMode.processStartTag(t,n)},t.inTable.startTagRowGroup=function(t,n){e.openElements.popUntilTableScopeMarker(),e.insertElement(t,n),e.setInsertionMode("inTableBody")},t.inTable.startTagImplyTbody=function(t,n){this.startTagRowGroup("tbody",[]),e.insertionMode.processStartTag(t,n)},t.inTable.startTagTable=function(t,n){e.parseError("unexpected-start-tag-implies-end-tag",{startName:"table",endName:"table"}),e.insertionMode.processEndTag("table"),e.context||e.insertionMode.processStartTag(t,n)},t.inTable.startTagStyleScript=function(e,n){t.inHead.processStartTag(e,n)},t.inTable.startTagInput=function(t,n){for(var r in n)if(n[r].nodeName.toLowerCase()=="type"){if(n[r].nodeValue.toLowerCase()=="hidden"){e.parseError("unexpected-hidden-input-in-table"),e.insertElement(t,n),e.openElements.pop();return}break}this.startTagOther(t,n)},t.inTable.startTagForm=function(t,n){e.parseError("unexpected-form-in-table"),e.form||(e.insertElement(t,n),e.form=e.currentStackItem(),e.openElements.pop())},t.inTable.startTagOther=function(n,r,i){e.parseError("unexpected-start-tag-implies-table-voodoo",{name:n}),e.redirectAttachToFosterParent=!0,t.inBody.processStartTag(n,r,i),e.redirectAttachToFosterParent=!1},t.inTable.endTagTable=function(t){e.openElements.inTableScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early-named",{gotName:"table",expectedName:e.currentStackItem().localName}),e.openElements.popUntilPopped("table"),e.resetInsertionMode()):(r.ok(e.context),e.parseError("unexpected-end-tag",{name:t}))},t.inTable.endTagIgnore=function(t){e.parseError("unexpected-end-tag",{name:t})},t.inTable.endTagOther=function(n){e.parseError("unexpected-end-tag-implies-table-voodoo",{name:n}),e.redirectAttachToFosterParent=!0,t.inBody.processEndTag(n),e.redirectAttachToFosterParent=!1},t.inTableText=Object.create(t.base),t.inTableText.flushCharacters=function(){var t=e.pendingTableCharacters.join("");p(t)?e.insertText(t):(e.redirectAttachToFosterParent=!0,e.reconstructActiveFormattingElements(),e.insertText(t),e.framesetOk=!1,e.redirectAttachToFosterParent=!1),e.pendingTableCharacters=[]},t.inTableText.processComment=function(t){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processComment(t)},t.inTableText.processEOF=function(t){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processEOF()},t.inTableText.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\u0000/g,function(t,n){return e.parseError("invalid-codepoint"),""});if(!n)return;e.pendingTableCharacters.push(n)},t.inTableText.processStartTag=function(t,n,r){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processStartTag(t,n,r)},t.inTableText.processEndTag=function(t,n){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processEndTag(t,n)},t.inTableBody=Object.create(t.base),t.inTableBody.start_tag_handlers={html:"startTagHtml",tr:"startTagTr",td:"startTagTableCell",th:"startTagTableCell",caption:"startTagTableOther",col:"startTagTableOther",colgroup:"startTagTableOther",tbody:"startTagTableOther",tfoot:"startTagTableOther",thead:"startTagTableOther","-default":"startTagOther"},t.inTableBody.end_tag_handlers={table:"endTagTable",tbody:"endTagTableRowGroup",tfoot:"endTagTableRowGroup",thead:"endTagTableRowGroup",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",td:"endTagIgnore",th:"endTagIgnore",tr:"endTagIgnore","-default":"endTagOther"},t.inTableBody.processCharacters=function(e){t.inTable.processCharacters(e)},t.inTableBody.startTagTr=function(t,n){e.openElements.popUntilTableBodyScopeMarker(),e.insertElement(t,n),e.setInsertionMode("inRow")},t.inTableBody.startTagTableCell=function(t,n){e.parseError("unexpected-cell-in-table-body",{name:t}),this.startTagTr("tr",[]),e.insertionMode.processStartTag(t,n)},t.inTableBody.startTagTableOther=function(t,n){e.openElements.inTableScope("tbody")||e.openElements.inTableScope("thead")||e.openElements.inTableScope("tfoot")?(e.openElements.popUntilTableBodyScopeMarker(),this.endTagTableRowGroup(e.currentStackItem().localName),e.insertionMode.processStartTag(t,n)):e.parseError("unexpected-start-tag",{name:t})},t.inTableBody.startTagOther=function(e,n){t.inTable.processStartTag(e,n)},t.inTableBody.endTagTableRowGroup=function(t){e.openElements.inTableScope(t)?(e.openElements.popUntilTableBodyScopeMarker(),e.popElement(),e.setInsertionMode("inTable")):e.parseError("unexpected-end-tag-in-table-body",{name:t})},t.inTableBody.endTagTable=function(t){e.openElements.inTableScope("tbody")||e.openElements.inTableScope("thead")||e.openElements.inTableScope("tfoot")?(e.openElements.popUntilTableBodyScopeMarker(),this.endTagTableRowGroup(e.currentStackItem().localName),e.insertionMode.processEndTag(t)):e.parseError("unexpected-end-tag",{name:t})},t.inTableBody.endTagIgnore=function(t){e.parseError("unexpected-end-tag-in-table-body",{name:t})},t.inTableBody.endTagOther=function(e){t.inTable.processEndTag(e)},t.inSelect=Object.create(t.base),t.inSelect.start_tag_handlers={html:"startTagHtml",option:"startTagOption",optgroup:"startTagOptgroup",select:"startTagSelect",input:"startTagInput",keygen:"startTagInput",textarea:"startTagInput",script:"startTagScript","-default":"startTagOther"},t.inSelect.end_tag_handlers={option:"endTagOption",optgroup:"endTagOptgroup",select:"endTagSelect",caption:"endTagTableElements",table:"endTagTableElements",tbody:"endTagTableElements",tfoot:"endTagTableElements",thead:"endTagTableElements",tr:"endTagTableElements",td:"endTagTableElements",th:"endTagTableElements","-default":"endTagOther"},t.inSelect.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\u0000/g,function(t,n){return e.parseError("invalid-codepoint"),""});if(!n)return;e.insertText(n)},t.inSelect.startTagOption=function(t,n){e.currentStackItem().localName=="option"&&e.popElement(),e.insertElement(t,n)},t.inSelect.startTagOptgroup=function(t,n){e.currentStackItem().localName=="option"&&e.popElement(),e.currentStackItem().localName=="optgroup"&&e.popElement(),e.insertElement(t,n)},t.inSelect.endTagOption=function(t){if(e.currentStackItem().localName!=="option"){e.parseError("unexpected-end-tag-in-select",{name:t});return}e.popElement()},t.inSelect.endTagOptgroup=function(t){e.currentStackItem().localName=="option"&&e.openElements.item(e.openElements.length-2).localName=="optgroup"&&e.popElement(),e.currentStackItem().localName=="optgroup"?e.popElement():e.parseError("unexpected-end-tag-in-select",{name:"optgroup"})},t.inSelect.startTagSelect=function(t){e.parseError("unexpected-select-in-select"),this.endTagSelect("select")},t.inSelect.endTagSelect=function(t){e.openElements.inTableScope("select")?(e.openElements.popUntilPopped("select"),e.resetInsertionMode()):e.parseError("unexpected-end-tag",{name:t})},t.inSelect.startTagInput=function(t,n){e.parseError("unexpected-input-in-select"),e.openElements.inSelectScope("select")&&(this.endTagSelect("select"),e.insertionMode.processStartTag(t,n))},t.inSelect.startTagScript=function(e,n){t.inHead.processStartTag(e,n)},t.inSelect.endTagTableElements=function(t){e.parseError("unexpected-end-tag-in-select",{name:t}),e.openElements.inTableScope(t)&&(this.endTagSelect("select"),e.insertionMode.processEndTag(t))},t.inSelect.startTagOther=function(t,n){e.parseError("unexpected-start-tag-in-select",{name:t})},t.inSelect.endTagOther=function(t){e.parseError("unexpected-end-tag-in-select",{name:t})},t.inSelectInTable=Object.create(t.base),t.inSelectInTable.start_tag_handlers={caption:"startTagTable",table:"startTagTable",tbody:"startTagTable",tfoot:"startTagTable",thead:"startTagTable",tr:"startTagTable",td:"startTagTable",th:"startTagTable","-default":"startTagOther"},t.inSelectInTable.end_tag_handlers={caption:"endTagTable",table:"endTagTable",tbody:"endTagTable",tfoot:"endTagTable",thead:"endTagTable",tr:"endTagTable",td:"endTagTable",th:"endTagTable","-default":"endTagOther"},t.inSelectInTable.processCharacters=function(e){t.inSelect.processCharacters(e)},t.inSelectInTable.startTagTable=function(t,n){e.parseError("unexpected-table-element-start-tag-in-select-in-table",{name:t}),this.endTagOther("select"),e.insertionMode.processStartTag(t,n)},t.inSelectInTable.startTagOther=function(e,n,r){t.inSelect.processStartTag(e,n,r)},t.inSelectInTable.endTagTable=function(t){e.parseError("unexpected-table-element-end-tag-in-select-in-table",{name:t}),e.openElements.inTableScope(t)&&(this.endTagOther("select"),e.insertionMode.processEndTag(t))},t.inSelectInTable.endTagOther=function(e){t.inSelect.processEndTag(e)},t.inRow=Object.create(t.base),t.inRow.start_tag_handlers={html:"startTagHtml",td:"startTagTableCell",th:"startTagTableCell",caption:"startTagTableOther",col:"startTagTableOther",colgroup:"startTagTableOther",tbody:"startTagTableOther",tfoot:"startTagTableOther",thead:"startTagTableOther",tr:"startTagTableOther","-default":"startTagOther"},t.inRow.end_tag_handlers={tr:"endTagTr",table:"endTagTable",tbody:"endTagTableRowGroup",tfoot:"endTagTableRowGroup",thead:"endTagTableRowGroup",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",td:"endTagIgnore",th:"endTagIgnore","-default":"endTagOther"},t.inRow.processCharacters=function(e){t.inTable.processCharacters(e)},t.inRow.startTagTableCell=function(t,n){e.openElements.popUntilTableRowScopeMarker(),e.insertElement(t,n),e.setInsertionMode("inCell"),e.activeFormattingElements.push(l)},t.inRow.startTagTableOther=function(t,n){var r=this.ignoreEndTagTr();this.endTagTr("tr"),r||e.insertionMode.processStartTag(t,n)},t.inRow.startTagOther=function(e,n,r){t.inTable.processStartTag(e,n,r)},t.inRow.endTagTr=function(t){this.ignoreEndTagTr()?(r.ok(e.context),e.parseError("unexpected-end-tag",{name:t})):(e.openElements.popUntilTableRowScopeMarker(),e.popElement(),e.setInsertionMode("inTableBody"))},t.inRow.endTagTable=function(t){var n=this.ignoreEndTagTr();this.endTagTr("tr"),n||e.insertionMode.processEndTag(t)},t.inRow.endTagTableRowGroup=function(t){e.openElements.inTableScope(t)?(this.endTagTr("tr"),e.insertionMode.processEndTag(t)):e.parseError("unexpected-end-tag",{name:t})},t.inRow.endTagIgnore=function(t){e.parseError("unexpected-end-tag-in-table-row",{name:t})},t.inRow.endTagOther=function(e){t.inTable.processEndTag(e)},t.inRow.ignoreEndTagTr=function(){return!e.openElements.inTableScope("tr")},t.afterAfterFrameset=Object.create(t.base),t.afterAfterFrameset.start_tag_handlers={html:"startTagHtml",noframes:"startTagNoFrames","-default":"startTagOther"},t.afterAfterFrameset.processEOF=function(){},t.afterAfterFrameset.processComment=function(t){e.insertComment(t,e.document)},t.afterAfterFrameset.processCharacters=function(t){var n=t.takeRemaining(),r="";for(var i=0;i0&&this.currentStackItem().isForeign()},g.prototype.isSelfClosingFlagAcknowledged=function(){return this.selfClosingFlagAcknowledged},g.prototype.createElement=function(e,t,n){throw new Error("Not implemented")},g.prototype.attachNode=function(e,t){throw new Error("Not implemented")},g.prototype.attachNodeToFosterParent=function(e,t,n){throw new Error("Not implemented")},g.prototype.detachFromParent=function(e){throw new Error("Not implemented")},g.prototype.addAttributesToElement=function(e,t){throw new Error("Not implemented")},g.prototype.insertHtmlElement=function(e){var t=this.createElement("http://www.w3.org/1999/xhtml","html",e);return this.attachNode(t,this.document),this.openElements.pushHtmlElement(new f("http://www.w3.org/1999/xhtml","html",e,t)),t},g.prototype.insertHeadElement=function(e){var t=this.createElement("http://www.w3.org/1999/xhtml","head",e);return this.head=new f("http://www.w3.org/1999/xhtml","head",e,t),this.attachNode(t,this.openElements.top.node),this.openElements.pushHeadElement(this.head),t},g.prototype.insertBodyElement=function(e){var t=this.createElement("http://www.w3.org/1999/xhtml","body",e);return this.attachNode(t,this.openElements.top.node),this.openElements.pushBodyElement(new f("http://www.w3.org/1999/xhtml","body",e,t)),t},g.prototype.insertIntoFosterParent=function(e){var t=this.openElements.findIndex("table"),n=this.openElements.item(t).node;if(t===0)return this.attachNode(e,n);this.attachNodeToFosterParent(e,n,this.openElements.item(t-1).node)},g.prototype.insertElement=function(e,t,n,r){n||(n="http://www.w3.org/1999/xhtml");var i=this.createElement(n,e,t);this.shouldFosterParent()?this.insertIntoFosterParent(i):this.attachNode(i,this.openElements.top.node),r||this.openElements.push(new f(n,e,t,i))},g.prototype.insertFormattingElement=function(e,t){this.insertElement(e,t,"http://www.w3.org/1999/xhtml"),this.appendElementToActiveFormattingElements(this.currentStackItem())},g.prototype.insertSelfClosingElement=function(e,t){this.selfClosingFlagAcknowledged=!0,this.insertElement(e,t,"http://www.w3.org/1999/xhtml",!0)},g.prototype.insertForeignElement=function(e,t,n,r){r&&(this.selfClosingFlagAcknowledged=!0),this.insertElement(e,t,n,r)},g.prototype.insertComment=function(e,t){throw new Error("Not implemented")},g.prototype.insertDoctype=function(e,t,n){throw new Error("Not implemented")},g.prototype.insertText=function(e){throw new Error("Not implemented")},g.prototype.currentStackItem=function(){return this.openElements.top},g.prototype.popElement=function(){return this.openElements.pop()},g.prototype.shouldFosterParent=function(){return this.redirectAttachToFosterParent&&this.currentStackItem().isFosterParenting()},g.prototype.generateImpliedEndTags=function(e){var t=this.openElements.top.localName;["dd","dt","li","option","optgroup","p","rp","rt"].indexOf(t)!=-1&&t!=e&&(this.popElement(),this.generateImpliedEndTags(e))},g.prototype.reconstructActiveFormattingElements=function(){if(this.activeFormattingElements.length===0)return;var e=this.activeFormattingElements.length-1,t=this.activeFormattingElements[e];if(t==l||this.openElements.contains(t))return;while(t!=l&&!this.openElements.contains(t)){e-=1,t=this.activeFormattingElements[e];if(!t)break}for(;;){e+=1,t=this.activeFormattingElements[e],this.insertElement(t.localName,t.attributes);var n=this.currentStackItem();this.activeFormattingElements[e]=n;if(n==this.activeFormattingElements[this.activeFormattingElements.length-1])break}},g.prototype.ensureNoahsArkCondition=function(e){var t=3;if(this.activeFormattingElements.length=0;i--){var s=this.activeFormattingElements[i];if(s===l)break;if(e.localName!==s.localName||e.namespaceURI!==s.namespaceURI)continue;if(s.attributes.length!=r)continue;n.push(s)}if(n.length=0&&this.activeFormattingElements.splice(t,1)},g.prototype.elementInActiveFormattingElements=function(e){var t=this.activeFormattingElements;for(var n=t.length-1;n>=0;n--){if(t[n]==l)break;if(t[n].localName==e)return t[n]}return!1},g.prototype.clearActiveFormattingElements=function(){while(this.activeFormattingElements.length!==0&&this.activeFormattingElements.pop()!=l);},g.prototype.reparentChildren=function(e,t){throw new Error("Not implemented")},g.prototype.setFragmentContext=function(e){this.context=e},g.prototype.parseError=function(e,t){if(!this.errorHandler)return;var n=y(i[e],t);this.errorHandler.error(n,this.tokenizer._inputStream.location(),e)},g.prototype.resetInsertionMode=function(){var e=!1,t=null;for(var n=this.openElements.length-1;n>=0;n--){t=this.openElements.item(n),n===0&&(r.ok(this.context),e=!0,t=new f("http://www.w3.org/1999/xhtml",this.context,[],null));if(t.namespaceURI==="http://www.w3.org/1999/xhtml"){if(t.localName==="select")return this.setInsertionMode("inSelect");if(t.localName==="td"||t.localName==="th")return this.setInsertionMode("inCell");if(t.localName==="tr")return this.setInsertionMode("inRow");if(t.localName==="tbody"||t.localName==="thead"||t.localName==="tfoot")return this.setInsertionMode("inTableBody");if(t.localName==="caption")return this.setInsertionMode("inCaption");if(t.localName==="colgroup")return this.setInsertionMode("inColumnGroup");if(t.localName==="table")return this.setInsertionMode("inTable");if(t.localName==="head")return this.setInsertionMode("inHead");if(t.localName==="body")return this.setInsertionMode("inBody");if(t.localName==="frameset")return this.setInsertionMode("inFrameset");if(t.localName==="html")return this.openElements.headElement?this.setInsertionMode("afterHead"):this.setInsertionMode("beforeHead")}if(e)return this.setInsertionMode("inBody")}},g.prototype.processGenericRCDATAStartTag=function(e,t){this.insertElement(e,t),this.tokenizer.setState(u.RCDATA),this.originalInsertionMode=this.insertionModeName,this.setInsertionMode("text")},g.prototype.processGenericRawTextStartTag=function(e,t){this.insertElement(e,t),this.tokenizer.setState(u.RAWTEXT),this.originalInsertionMode=this.insertionModeName,this.setInsertionMode("text")},g.prototype.adjustMathMLAttributes=function(e){return e.forEach(function(e){e.namespaceURI="http://www.w3.org/1998/Math/MathML",s.MATHMLAttributeMap[e.nodeName]&&(e.nodeName=s.MATHMLAttributeMap[e.nodeName])}),e},g.prototype.adjustSVGTagNameCase=function(e){return s.SVGTagMap[e]||e},g.prototype.adjustSVGAttributes=function(e){return e.forEach(function(e){e.namespaceURI="http://www.w3.org/2000/svg",s.SVGAttributeMap[e.nodeName]&&(e.nodeName=s.SVGAttributeMap[e.nodeName])}),e},g.prototype.adjustForeignAttributes=function(e){for(var t=0;t' instead.","expected-tag-name-but-got-question-mark":"Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)","expected-tag-name":"Expected tag name. Got something else instead.","expected-closing-tag-but-got-right-bracket":"Expected closing tag. Got '>' instead. Ignoring ''.","expected-closing-tag-but-got-eof":"Expected closing tag. Unexpected end of file.","expected-closing-tag-but-got-char":"Expected closing tag. Unexpected character '{data}' found.","eof-in-tag-name":"Unexpected end of file in the tag name.","expected-attribute-name-but-got-eof":"Unexpected end of file. Expected attribute name instead.","eof-in-attribute-name":"Unexpected end of file in attribute name.","invalid-character-in-attribute-name":"Invalid character in attribute name.","duplicate-attribute":"Dropped duplicate attribute '{name}' on tag.","expected-end-of-tag-but-got-eof":"Unexpected end of file. Expected = or end of tag.","expected-attribute-value-but-got-eof":"Unexpected end of file. Expected attribute value.","expected-attribute-value-but-got-right-bracket":"Expected attribute value. Got '>' instead.","unexpected-character-in-unquoted-attribute-value":"Unexpected character in unquoted attribute","invalid-character-after-attribute-name":"Unexpected character after attribute name.","unexpected-character-after-attribute-value":"Unexpected character after attribute value.","eof-in-attribute-value-double-quote":'Unexpected end of file in attribute value (").',"eof-in-attribute-value-single-quote":"Unexpected end of file in attribute value (').","eof-in-attribute-value-no-quotes":"Unexpected end of file in attribute value.","eof-after-attribute-value":"Unexpected end of file after attribute value.","unexpected-eof-after-solidus-in-tag":"Unexpected end of file in tag. Expected >.","unexpected-character-after-solidus-in-tag":"Unexpected character after / in tag. Expected >.","expected-dashes-or-doctype":"Expected '--' or 'DOCTYPE'. Not found.","unexpected-bang-after-double-dash-in-comment":"Unexpected ! after -- in comment.","incorrect-comment":"Incorrect comment.","eof-in-comment":"Unexpected end of file in comment.","eof-in-comment-end-dash":"Unexpected end of file in comment (-).","unexpected-dash-after-double-dash-in-comment":"Unexpected '-' after '--' found in comment.","eof-in-comment-double-dash":"Unexpected end of file in comment (--).","eof-in-comment-end-bang-state":"Unexpected end of file in comment.","unexpected-char-in-comment":"Unexpected character in comment found.","need-space-after-doctype":"No space after literal string 'DOCTYPE'.","expected-doctype-name-but-got-right-bracket":"Unexpected > character. Expected DOCTYPE name.","expected-doctype-name-but-got-eof":"Unexpected end of file. Expected DOCTYPE name.","eof-in-doctype-name":"Unexpected end of file in DOCTYPE name.","eof-in-doctype":"Unexpected end of file in DOCTYPE.","expected-space-or-right-bracket-in-doctype":"Expected space or '>'. Got '{data}'.","unexpected-end-of-doctype":"Unexpected end of DOCTYPE.","unexpected-char-in-doctype":"Unexpected character in DOCTYPE.","eof-in-bogus-doctype":"Unexpected end of file in bogus doctype.","eof-in-innerhtml":"Unexpected EOF in inner html mode.","unexpected-doctype":"Unexpected DOCTYPE. Ignored.","non-html-root":"html needs to be the first start tag.","expected-doctype-but-got-eof":"Unexpected End of file. Expected DOCTYPE.","unknown-doctype":"Erroneous DOCTYPE. Expected .","quirky-doctype":"Quirky doctype. Expected .","almost-standards-doctype":"Almost standards mode doctype. Expected .","obsolete-doctype":"Obsolete doctype. Expected .","expected-doctype-but-got-chars":"Non-space characters found without seeing a doctype first. Expected e.g. .","expected-doctype-but-got-start-tag":"Start tag seen without seeing a doctype first. Expected e.g. .","expected-doctype-but-got-end-tag":"End tag seen without seeing a doctype first. Expected e.g. .","end-tag-after-implied-root":"Unexpected end tag ({name}) after the (implied) root element.","expected-named-closing-tag-but-got-eof":"Unexpected end of file. Expected end tag ({name}).","two-heads-are-not-better-than-one":"Unexpected start tag head in existing head. Ignored.","unexpected-end-tag":"Unexpected end tag ({name}). Ignored.","unexpected-implied-end-tag":"End tag {name} implied, but there were open elements.","unexpected-start-tag-out-of-my-head":"Unexpected start tag ({name}) that can be in head. Moved.","unexpected-start-tag":"Unexpected start tag ({name}).","missing-end-tag":"Missing end tag ({name}).","missing-end-tags":"Missing end tags ({name}).","unexpected-start-tag-implies-end-tag":"Unexpected start tag ({startName}) implies end tag ({endName}).","unexpected-start-tag-treated-as":"Unexpected start tag ({originalName}). Treated as {newName}.","deprecated-tag":"Unexpected start tag {name}. Don't use it!","unexpected-start-tag-ignored":"Unexpected start tag {name}. Ignored.","expected-one-end-tag-but-got-another":"Unexpected end tag ({gotName}). Missing end tag ({expectedName}).","end-tag-too-early":"End tag ({name}) seen too early. Expected other end tag.","end-tag-too-early-named":"Unexpected end tag ({gotName}). Expected end tag ({expectedName}.","end-tag-too-early-ignored":"End tag ({name}) seen too early. Ignored.","adoption-agency-1.1":"End tag ({name}) violates step 1, paragraph 1 of the adoption agency algorithm.","adoption-agency-1.2":"End tag ({name}) violates step 1, paragraph 2 of the adoption agency algorithm.","adoption-agency-1.3":"End tag ({name}) violates step 1, paragraph 3 of the adoption agency algorithm.","adoption-agency-4.4":"End tag ({name}) violates step 4, paragraph 4 of the adoption agency algorithm.","unexpected-end-tag-treated-as":"Unexpected end tag ({originalName}). Treated as {newName}.","no-end-tag":"This element ({name}) has no end tag.","unexpected-implied-end-tag-in-table":"Unexpected implied end tag ({name}) in the table phase.","unexpected-implied-end-tag-in-table-body":"Unexpected implied end tag ({name}) in the table body phase.","unexpected-char-implies-table-voodoo":"Unexpected non-space characters in table context caused voodoo mode.","unexpected-hidden-input-in-table":"Unexpected input with type hidden in table context.","unexpected-form-in-table":"Unexpected form in table context.","unexpected-start-tag-implies-table-voodoo":"Unexpected start tag ({name}) in table context caused voodoo mode.","unexpected-end-tag-implies-table-voodoo":"Unexpected end tag ({name}) in table context caused voodoo mode.","unexpected-cell-in-table-body":"Unexpected table cell start tag ({name}) in the table body phase.","unexpected-cell-end-tag":"Got table cell end tag ({name}) while required end tags are missing.","unexpected-end-tag-in-table-body":"Unexpected end tag ({name}) in the table body phase. Ignored.","unexpected-implied-end-tag-in-table-row":"Unexpected implied end tag ({name}) in the table row phase.","unexpected-end-tag-in-table-row":"Unexpected end tag ({name}) in the table row phase. Ignored.","unexpected-select-in-select":"Unexpected select start tag in the select phase treated as select end tag.","unexpected-input-in-select":"Unexpected input start tag in the select phase.","unexpected-start-tag-in-select":"Unexpected start tag token ({name}) in the select phase. Ignored.","unexpected-end-tag-in-select":"Unexpected end tag ({name}) in the select phase. Ignored.","unexpected-table-element-start-tag-in-select-in-table":"Unexpected table element start tag ({name}) in the select in table phase.","unexpected-table-element-end-tag-in-select-in-table":"Unexpected table element end tag ({name}) in the select in table phase.","unexpected-char-after-body":"Unexpected non-space characters in the after body phase.","unexpected-start-tag-after-body":"Unexpected start tag token ({name}) in the after body phase.","unexpected-end-tag-after-body":"Unexpected end tag token ({name}) in the after body phase.","unexpected-char-in-frameset":"Unepxected characters in the frameset phase. Characters ignored.","unexpected-start-tag-in-frameset":"Unexpected start tag token ({name}) in the frameset phase. Ignored.","unexpected-frameset-in-frameset-innerhtml":"Unexpected end tag token (frameset in the frameset phase (innerHTML).","unexpected-end-tag-in-frameset":"Unexpected end tag token ({name}) in the frameset phase. Ignored.","unexpected-char-after-frameset":"Unexpected non-space characters in the after frameset phase. Ignored.","unexpected-start-tag-after-frameset":"Unexpected start tag ({name}) in the after frameset phase. Ignored.","unexpected-end-tag-after-frameset":"Unexpected end tag ({name}) in the after frameset phase. Ignored.","expected-eof-but-got-char":"Unexpected non-space characters. Expected end of file.","expected-eof-but-got-start-tag":"Unexpected start tag ({name}). Expected end of file.","expected-eof-but-got-end-tag":"Unexpected end tag ({name}). Expected end of file.","unexpected-end-table-in-caption":"Unexpected end table tag in caption. Generates implied end caption.","end-html-in-innerhtml":"Unexpected html end tag in inner html mode.","eof-in-table":"Unexpected end of file. Expected table content.","eof-in-script":"Unexpected end of file. Expected script content.","non-void-element-with-trailing-solidus":"Trailing solidus not allowed on element {name}.","unexpected-html-element-in-foreign-content":'HTML start tag "{name}" in a foreign namespace context.',"unexpected-start-tag-in-table":"Unexpected {name}. Expected table content."}},{}],9:[function(e,t,n){function o(){this.contentHandler=null,this._errorHandler=null,this._treeBuilder=new r,this._tokenizer=new i(this._treeBuilder),this._scriptingEnabled=!1}var r=e("./SAXTreeBuilder").SAXTreeBuilder,i=e("../Tokenizer").Tokenizer,s=e("./TreeParser").TreeParser;o.prototype.parse=function(e,t){t&&this._treeBuilder.setFragmentContext(t),this._tokenizer.tokenize(e);var n=this._treeBuilder.document;n&&(new s(this.contentHandler)).parse(n)},o.prototype.parseFragment=function(e,t){this._treeBuilder.setFragmentContext(t),this._tokenizer.tokenize(e);var n=this._treeBuilder.getFragment();n&&(new s(this.contentHandler)).parse(n)},Object.defineProperty(o.prototype,"scriptingEnabled",{get:function(){return this._scriptingEnabled},set:function(e){this._scriptingEnabled=e,this._treeBuilder.scriptingEnabled=e}}),Object.defineProperty(o.prototype,"errorHandler",{get:function(){return this._errorHandler},set:function(e){this._errorHandler=e,this._treeBuilder.errorHandler=e}}),n.SAXParser=o},{"../Tokenizer":5,"./SAXTreeBuilder":10,"./TreeParser":11}],10:[function(e,t,n){function s(){i.call(this)}function o(e,t){for(var n=0;n",gt:">","GT;":">",GT:">","Gt;":"\u226b","gtdot;":"\u22d7","gtlPar;":"\u2995","gtquest;":"\u2a7c","gtrapprox;":"\u2a86","gtrarr;":"\u2978","gtrdot;":"\u22d7","gtreqless;":"\u22db","gtreqqless;":"\u2a8c","gtrless;":"\u2277","gtrsim;":"\u2273","gvertneqq;":"\u2269\ufe00","gvnE;":"\u2269\ufe00","Hacek;":"\u02c7","hairsp;":"\u200a","half;":"\u00bd","hamilt;":"\u210b","HARDcy;":"\u042a","hardcy;":"\u044a","harrcir;":"\u2948","harr;":"\u2194","hArr;":"\u21d4","harrw;":"\u21ad","Hat;":"^","hbar;":"\u210f","Hcirc;":"\u0124","hcirc;":"\u0125","hearts;":"\u2665","heartsuit;":"\u2665","hellip;":"\u2026","hercon;":"\u22b9","hfr;":"\ud835\udd25","Hfr;":"\u210c","HilbertSpace;":"\u210b","hksearow;":"\u2925","hkswarow;":"\u2926","hoarr;":"\u21ff","homtht;":"\u223b","hookleftarrow;":"\u21a9","hookrightarrow;":"\u21aa","hopf;":"\ud835\udd59","Hopf;":"\u210d","horbar;":"\u2015","HorizontalLine;":"\u2500","hscr;":"\ud835\udcbd","Hscr;":"\u210b","hslash;":"\u210f","Hstrok;":"\u0126","hstrok;":"\u0127","HumpDownHump;":"\u224e","HumpEqual;":"\u224f","hybull;":"\u2043","hyphen;":"\u2010","Iacute;":"\u00cd",Iacute:"\u00cd","iacute;":"\u00ed",iacute:"\u00ed","ic;":"\u2063","Icirc;":"\u00ce",Icirc:"\u00ce","icirc;":"\u00ee",icirc:"\u00ee","Icy;":"\u0418","icy;":"\u0438","Idot;":"\u0130","IEcy;":"\u0415","iecy;":"\u0435","iexcl;":"\u00a1",iexcl:"\u00a1","iff;":"\u21d4","ifr;":"\ud835\udd26","Ifr;":"\u2111","Igrave;":"\u00cc",Igrave:"\u00cc","igrave;":"\u00ec",igrave:"\u00ec","ii;":"\u2148","iiiint;":"\u2a0c","iiint;":"\u222d","iinfin;":"\u29dc","iiota;":"\u2129","IJlig;":"\u0132","ijlig;":"\u0133","Imacr;":"\u012a","imacr;":"\u012b","image;":"\u2111","ImaginaryI;":"\u2148","imagline;":"\u2110","imagpart;":"\u2111","imath;":"\u0131","Im;":"\u2111","imof;":"\u22b7","imped;":"\u01b5","Implies;":"\u21d2","incare;":"\u2105","in;":"\u2208","infin;":"\u221e","infintie;":"\u29dd","inodot;":"\u0131","intcal;":"\u22ba","int;":"\u222b","Int;":"\u222c","integers;":"\u2124","Integral;":"\u222b","intercal;":"\u22ba","Intersection;":"\u22c2","intlarhk;":"\u2a17","intprod;":"\u2a3c","InvisibleComma;":"\u2063","InvisibleTimes;":"\u2062","IOcy;":"\u0401","iocy;":"\u0451","Iogon;":"\u012e","iogon;":"\u012f","Iopf;":"\ud835\udd40","iopf;":"\ud835\udd5a","Iota;":"\u0399","iota;":"\u03b9","iprod;":"\u2a3c","iquest;":"\u00bf",iquest:"\u00bf","iscr;":"\ud835\udcbe","Iscr;":"\u2110","isin;":"\u2208","isindot;":"\u22f5","isinE;":"\u22f9","isins;":"\u22f4","isinsv;":"\u22f3","isinv;":"\u2208","it;":"\u2062","Itilde;":"\u0128","itilde;":"\u0129","Iukcy;":"\u0406","iukcy;":"\u0456","Iuml;":"\u00cf",Iuml:"\u00cf","iuml;":"\u00ef",iuml:"\u00ef","Jcirc;":"\u0134","jcirc;":"\u0135","Jcy;":"\u0419","jcy;":"\u0439","Jfr;":"\ud835\udd0d","jfr;":"\ud835\udd27","jmath;":"\u0237","Jopf;":"\ud835\udd41","jopf;":"\ud835\udd5b","Jscr;":"\ud835\udca5","jscr;":"\ud835\udcbf","Jsercy;":"\u0408","jsercy;":"\u0458","Jukcy;":"\u0404","jukcy;":"\u0454","Kappa;":"\u039a","kappa;":"\u03ba","kappav;":"\u03f0","Kcedil;":"\u0136","kcedil;":"\u0137","Kcy;":"\u041a","kcy;":"\u043a","Kfr;":"\ud835\udd0e","kfr;":"\ud835\udd28","kgreen;":"\u0138","KHcy;":"\u0425","khcy;":"\u0445","KJcy;":"\u040c","kjcy;":"\u045c","Kopf;":"\ud835\udd42","kopf;":"\ud835\udd5c","Kscr;":"\ud835\udca6","kscr;":"\ud835\udcc0","lAarr;":"\u21da","Lacute;":"\u0139","lacute;":"\u013a","laemptyv;":"\u29b4","lagran;":"\u2112","Lambda;":"\u039b","lambda;":"\u03bb","lang;":"\u27e8","Lang;":"\u27ea","langd;":"\u2991","langle;":"\u27e8","lap;":"\u2a85","Laplacetrf;":"\u2112","laquo;":"\u00ab",laquo:"\u00ab","larrb;":"\u21e4","larrbfs;":"\u291f","larr;":"\u2190","Larr;":"\u219e","lArr;":"\u21d0","larrfs;":"\u291d","larrhk;":"\u21a9","larrlp;":"\u21ab","larrpl;":"\u2939","larrsim;":"\u2973","larrtl;":"\u21a2","latail;":"\u2919","lAtail;":"\u291b","lat;":"\u2aab","late;":"\u2aad","lates;":"\u2aad\ufe00","lbarr;":"\u290c","lBarr;":"\u290e","lbbrk;":"\u2772","lbrace;":"{","lbrack;":"[","lbrke;":"\u298b","lbrksld;":"\u298f","lbrkslu;":"\u298d","Lcaron;":"\u013d","lcaron;":"\u013e","Lcedil;":"\u013b","lcedil;":"\u013c","lceil;":"\u2308","lcub;":"{","Lcy;":"\u041b","lcy;":"\u043b","ldca;":"\u2936","ldquo;":"\u201c","ldquor;":"\u201e","ldrdhar;":"\u2967","ldrushar;":"\u294b","ldsh;":"\u21b2","le;":"\u2264","lE;":"\u2266","LeftAngleBracket;":"\u27e8","LeftArrowBar;":"\u21e4","leftarrow;":"\u2190","LeftArrow;":"\u2190","Leftarrow;":"\u21d0","LeftArrowRightArrow;":"\u21c6","leftarrowtail;":"\u21a2","LeftCeiling;":"\u2308","LeftDoubleBracket;":"\u27e6","LeftDownTeeVector;":"\u2961","LeftDownVectorBar;":"\u2959","LeftDownVector;":"\u21c3","LeftFloor;":"\u230a","leftharpoondown;":"\u21bd","leftharpoonup;":"\u21bc","leftleftarrows;":"\u21c7","leftrightarrow;":"\u2194","LeftRightArrow;":"\u2194","Leftrightarrow;":"\u21d4","leftrightarrows;":"\u21c6","leftrightharpoons;":"\u21cb","leftrightsquigarrow;":"\u21ad","LeftRightVector;":"\u294e","LeftTeeArrow;":"\u21a4","LeftTee;":"\u22a3","LeftTeeVector;":"\u295a","leftthreetimes;":"\u22cb","LeftTriangleBar;":"\u29cf","LeftTriangle;":"\u22b2","LeftTriangleEqual;":"\u22b4","LeftUpDownVector;":"\u2951","LeftUpTeeVector;":"\u2960","LeftUpVectorBar;":"\u2958","LeftUpVector;":"\u21bf","LeftVectorBar;":"\u2952","LeftVector;":"\u21bc","lEg;":"\u2a8b","leg;":"\u22da","leq;":"\u2264","leqq;":"\u2266","leqslant;":"\u2a7d","lescc;":"\u2aa8","les;":"\u2a7d","lesdot;":"\u2a7f","lesdoto;":"\u2a81","lesdotor;":"\u2a83","lesg;":"\u22da\ufe00","lesges;":"\u2a93","lessapprox;":"\u2a85","lessdot;":"\u22d6","lesseqgtr;":"\u22da","lesseqqgtr;":"\u2a8b","LessEqualGreater;":"\u22da","LessFullEqual;":"\u2266","LessGreater;":"\u2276","lessgtr;":"\u2276","LessLess;":"\u2aa1","lesssim;":"\u2272","LessSlantEqual;":"\u2a7d","LessTilde;":"\u2272","lfisht;":"\u297c","lfloor;":"\u230a","Lfr;":"\ud835\udd0f","lfr;":"\ud835\udd29","lg;":"\u2276","lgE;":"\u2a91","lHar;":"\u2962","lhard;":"\u21bd","lharu;":"\u21bc","lharul;":"\u296a","lhblk;":"\u2584","LJcy;":"\u0409","ljcy;":"\u0459","llarr;":"\u21c7","ll;":"\u226a","Ll;":"\u22d8","llcorner;":"\u231e","Lleftarrow;":"\u21da","llhard;":"\u296b","lltri;":"\u25fa","Lmidot;":"\u013f","lmidot;":"\u0140","lmoustache;":"\u23b0","lmoust;":"\u23b0","lnap;":"\u2a89","lnapprox;":"\u2a89","lne;":"\u2a87","lnE;":"\u2268","lneq;":"\u2a87","lneqq;":"\u2268","lnsim;":"\u22e6","loang;":"\u27ec","loarr;":"\u21fd","lobrk;":"\u27e6","longleftarrow;":"\u27f5","LongLeftArrow;":"\u27f5","Longleftarrow;":"\u27f8","longleftrightarrow;":"\u27f7","LongLeftRightArrow;":"\u27f7","Longleftrightarrow;":"\u27fa","longmapsto;":"\u27fc","longrightarrow;":"\u27f6","LongRightArrow;":"\u27f6","Longrightarrow;":"\u27f9","looparrowleft;":"\u21ab","looparrowright;":"\u21ac","lopar;":"\u2985","Lopf;":"\ud835\udd43","lopf;":"\ud835\udd5d","loplus;":"\u2a2d","lotimes;":"\u2a34","lowast;":"\u2217","lowbar;":"_","LowerLeftArrow;":"\u2199","LowerRightArrow;":"\u2198","loz;":"\u25ca","lozenge;":"\u25ca","lozf;":"\u29eb","lpar;":"(","lparlt;":"\u2993","lrarr;":"\u21c6","lrcorner;":"\u231f","lrhar;":"\u21cb","lrhard;":"\u296d","lrm;":"\u200e","lrtri;":"\u22bf","lsaquo;":"\u2039","lscr;":"\ud835\udcc1","Lscr;":"\u2112","lsh;":"\u21b0","Lsh;":"\u21b0","lsim;":"\u2272","lsime;":"\u2a8d","lsimg;":"\u2a8f","lsqb;":"[","lsquo;":"\u2018","lsquor;":"\u201a","Lstrok;":"\u0141","lstrok;":"\u0142","ltcc;":"\u2aa6","ltcir;":"\u2a79","lt;":"<",lt:"<","LT;":"<",LT:"<","Lt;":"\u226a","ltdot;":"\u22d6","lthree;":"\u22cb","ltimes;":"\u22c9","ltlarr;":"\u2976","ltquest;":"\u2a7b","ltri;":"\u25c3","ltrie;":"\u22b4","ltrif;":"\u25c2","ltrPar;":"\u2996","lurdshar;":"\u294a","luruhar;":"\u2966","lvertneqq;":"\u2268\ufe00","lvnE;":"\u2268\ufe00","macr;":"\u00af",macr:"\u00af","male;":"\u2642","malt;":"\u2720","maltese;":"\u2720","Map;":"\u2905","map;":"\u21a6","mapsto;":"\u21a6","mapstodown;":"\u21a7","mapstoleft;":"\u21a4","mapstoup;":"\u21a5","marker;":"\u25ae","mcomma;":"\u2a29","Mcy;":"\u041c","mcy;":"\u043c","mdash;":"\u2014","mDDot;":"\u223a","measuredangle;":"\u2221","MediumSpace;":"\u205f","Mellintrf;":"\u2133","Mfr;":"\ud835\udd10","mfr;":"\ud835\udd2a","mho;":"\u2127","micro;":"\u00b5",micro:"\u00b5","midast;":"*","midcir;":"\u2af0","mid;":"\u2223","middot;":"\u00b7",middot:"\u00b7","minusb;":"\u229f","minus;":"\u2212","minusd;":"\u2238","minusdu;":"\u2a2a","MinusPlus;":"\u2213","mlcp;":"\u2adb","mldr;":"\u2026","mnplus;":"\u2213","models;":"\u22a7","Mopf;":"\ud835\udd44","mopf;":"\ud835\udd5e","mp;":"\u2213","mscr;":"\ud835\udcc2","Mscr;":"\u2133","mstpos;":"\u223e","Mu;":"\u039c","mu;":"\u03bc","multimap;":"\u22b8","mumap;":"\u22b8","nabla;":"\u2207","Nacute;":"\u0143","nacute;":"\u0144","nang;":"\u2220\u20d2","nap;":"\u2249","napE;":"\u2a70\u0338","napid;":"\u224b\u0338","napos;":"\u0149","napprox;":"\u2249","natural;":"\u266e","naturals;":"\u2115","natur;":"\u266e","nbsp;":"\u00a0",nbsp:"\u00a0","nbump;":"\u224e\u0338","nbumpe;":"\u224f\u0338","ncap;":"\u2a43","Ncaron;":"\u0147","ncaron;":"\u0148","Ncedil;":"\u0145","ncedil;":"\u0146","ncong;":"\u2247","ncongdot;":"\u2a6d\u0338","ncup;":"\u2a42","Ncy;":"\u041d","ncy;":"\u043d","ndash;":"\u2013","nearhk;":"\u2924","nearr;":"\u2197","neArr;":"\u21d7","nearrow;":"\u2197","ne;":"\u2260","nedot;":"\u2250\u0338","NegativeMediumSpace;":"\u200b","NegativeThickSpace;":"\u200b","NegativeThinSpace;":"\u200b","NegativeVeryThinSpace;":"\u200b","nequiv;":"\u2262","nesear;":"\u2928","nesim;":"\u2242\u0338","NestedGreaterGreater;":"\u226b","NestedLessLess;":"\u226a","NewLine;":"\n","nexist;":"\u2204","nexists;":"\u2204","Nfr;":"\ud835\udd11","nfr;":"\ud835\udd2b","ngE;":"\u2267\u0338","nge;":"\u2271","ngeq;":"\u2271","ngeqq;":"\u2267\u0338","ngeqslant;":"\u2a7e\u0338","nges;":"\u2a7e\u0338","nGg;":"\u22d9\u0338","ngsim;":"\u2275","nGt;":"\u226b\u20d2","ngt;":"\u226f","ngtr;":"\u226f","nGtv;":"\u226b\u0338","nharr;":"\u21ae","nhArr;":"\u21ce","nhpar;":"\u2af2","ni;":"\u220b","nis;":"\u22fc","nisd;":"\u22fa","niv;":"\u220b","NJcy;":"\u040a","njcy;":"\u045a","nlarr;":"\u219a","nlArr;":"\u21cd","nldr;":"\u2025","nlE;":"\u2266\u0338","nle;":"\u2270","nleftarrow;":"\u219a","nLeftarrow;":"\u21cd","nleftrightarrow;":"\u21ae","nLeftrightarrow;":"\u21ce","nleq;":"\u2270","nleqq;":"\u2266\u0338","nleqslant;":"\u2a7d\u0338","nles;":"\u2a7d\u0338","nless;":"\u226e","nLl;":"\u22d8\u0338","nlsim;":"\u2274","nLt;":"\u226a\u20d2","nlt;":"\u226e","nltri;":"\u22ea","nltrie;":"\u22ec","nLtv;":"\u226a\u0338","nmid;":"\u2224","NoBreak;":"\u2060","NonBreakingSpace;":"\u00a0","nopf;":"\ud835\udd5f","Nopf;":"\u2115","Not;":"\u2aec","not;":"\u00ac",not:"\u00ac","NotCongruent;":"\u2262","NotCupCap;":"\u226d","NotDoubleVerticalBar;":"\u2226","NotElement;":"\u2209","NotEqual;":"\u2260","NotEqualTilde;":"\u2242\u0338","NotExists;":"\u2204","NotGreater;":"\u226f","NotGreaterEqual;":"\u2271","NotGreaterFullEqual;":"\u2267\u0338","NotGreaterGreater;":"\u226b\u0338","NotGreaterLess;":"\u2279","NotGreaterSlantEqual;":"\u2a7e\u0338","NotGreaterTilde;":"\u2275","NotHumpDownHump;":"\u224e\u0338","NotHumpEqual;":"\u224f\u0338","notin;":"\u2209","notindot;":"\u22f5\u0338","notinE;":"\u22f9\u0338","notinva;":"\u2209","notinvb;":"\u22f7","notinvc;":"\u22f6","NotLeftTriangleBar;":"\u29cf\u0338","NotLeftTriangle;":"\u22ea","NotLeftTriangleEqual;":"\u22ec","NotLess;":"\u226e","NotLessEqual;":"\u2270","NotLessGreater;":"\u2278","NotLessLess;":"\u226a\u0338","NotLessSlantEqual;":"\u2a7d\u0338","NotLessTilde;":"\u2274","NotNestedGreaterGreater;":"\u2aa2\u0338","NotNestedLessLess;":"\u2aa1\u0338","notni;":"\u220c","notniva;":"\u220c","notnivb;":"\u22fe","notnivc;":"\u22fd","NotPrecedes;":"\u2280","NotPrecedesEqual;":"\u2aaf\u0338","NotPrecedesSlantEqual;":"\u22e0","NotReverseElement;":"\u220c","NotRightTriangleBar;":"\u29d0\u0338","NotRightTriangle;":"\u22eb","NotRightTriangleEqual;":"\u22ed","NotSquareSubset;":"\u228f\u0338","NotSquareSubsetEqual;":"\u22e2","NotSquareSuperset;":"\u2290\u0338","NotSquareSupersetEqual;":"\u22e3","NotSubset;":"\u2282\u20d2","NotSubsetEqual;":"\u2288","NotSucceeds;":"\u2281","NotSucceedsEqual;":"\u2ab0\u0338","NotSucceedsSlantEqual;":"\u22e1","NotSucceedsTilde;":"\u227f\u0338","NotSuperset;":"\u2283\u20d2","NotSupersetEqual;":"\u2289","NotTilde;":"\u2241","NotTildeEqual;":"\u2244","NotTildeFullEqual;":"\u2247","NotTildeTilde;":"\u2249","NotVerticalBar;":"\u2224","nparallel;":"\u2226","npar;":"\u2226","nparsl;":"\u2afd\u20e5","npart;":"\u2202\u0338","npolint;":"\u2a14","npr;":"\u2280","nprcue;":"\u22e0","nprec;":"\u2280","npreceq;":"\u2aaf\u0338","npre;":"\u2aaf\u0338","nrarrc;":"\u2933\u0338","nrarr;":"\u219b","nrArr;":"\u21cf","nrarrw;":"\u219d\u0338","nrightarrow;":"\u219b","nRightarrow;":"\u21cf","nrtri;":"\u22eb","nrtrie;":"\u22ed","nsc;":"\u2281","nsccue;":"\u22e1","nsce;":"\u2ab0\u0338","Nscr;":"\ud835\udca9","nscr;":"\ud835\udcc3","nshortmid;":"\u2224","nshortparallel;":"\u2226","nsim;":"\u2241","nsime;":"\u2244","nsimeq;":"\u2244","nsmid;":"\u2224","nspar;":"\u2226","nsqsube;":"\u22e2","nsqsupe;":"\u22e3","nsub;":"\u2284","nsubE;":"\u2ac5\u0338","nsube;":"\u2288","nsubset;":"\u2282\u20d2","nsubseteq;":"\u2288","nsubseteqq;":"\u2ac5\u0338","nsucc;":"\u2281","nsucceq;":"\u2ab0\u0338","nsup;":"\u2285","nsupE;":"\u2ac6\u0338","nsupe;":"\u2289","nsupset;":"\u2283\u20d2","nsupseteq;":"\u2289","nsupseteqq;":"\u2ac6\u0338","ntgl;":"\u2279","Ntilde;":"\u00d1",Ntilde:"\u00d1","ntilde;":"\u00f1",ntilde:"\u00f1","ntlg;":"\u2278","ntriangleleft;":"\u22ea","ntrianglelefteq;":"\u22ec","ntriangleright;":"\u22eb","ntrianglerighteq;":"\u22ed","Nu;":"\u039d","nu;":"\u03bd","num;":"#","numero;":"\u2116","numsp;":"\u2007","nvap;":"\u224d\u20d2","nvdash;":"\u22ac","nvDash;":"\u22ad","nVdash;":"\u22ae","nVDash;":"\u22af","nvge;":"\u2265\u20d2","nvgt;":">\u20d2","nvHarr;":"\u2904","nvinfin;":"\u29de","nvlArr;":"\u2902","nvle;":"\u2264\u20d2","nvlt;":"<\u20d2","nvltrie;":"\u22b4\u20d2","nvrArr;":"\u2903","nvrtrie;":"\u22b5\u20d2","nvsim;":"\u223c\u20d2","nwarhk;":"\u2923","nwarr;":"\u2196","nwArr;":"\u21d6","nwarrow;":"\u2196","nwnear;":"\u2927","Oacute;":"\u00d3",Oacute:"\u00d3","oacute;":"\u00f3",oacute:"\u00f3","oast;":"\u229b","Ocirc;":"\u00d4",Ocirc:"\u00d4","ocirc;":"\u00f4",ocirc:"\u00f4","ocir;":"\u229a","Ocy;":"\u041e","ocy;":"\u043e","odash;":"\u229d","Odblac;":"\u0150","odblac;":"\u0151","odiv;":"\u2a38","odot;":"\u2299","odsold;":"\u29bc","OElig;":"\u0152","oelig;":"\u0153","ofcir;":"\u29bf","Ofr;":"\ud835\udd12","ofr;":"\ud835\udd2c","ogon;":"\u02db","Ograve;":"\u00d2",Ograve:"\u00d2","ograve;":"\u00f2",ograve:"\u00f2","ogt;":"\u29c1","ohbar;":"\u29b5","ohm;":"\u03a9","oint;":"\u222e","olarr;":"\u21ba","olcir;":"\u29be","olcross;":"\u29bb","oline;":"\u203e","olt;":"\u29c0","Omacr;":"\u014c","omacr;":"\u014d","Omega;":"\u03a9","omega;":"\u03c9","Omicron;":"\u039f","omicron;":"\u03bf","omid;":"\u29b6","ominus;":"\u2296","Oopf;":"\ud835\udd46","oopf;":"\ud835\udd60","opar;":"\u29b7","OpenCurlyDoubleQuote;":"\u201c","OpenCurlyQuote;":"\u2018","operp;":"\u29b9","oplus;":"\u2295","orarr;":"\u21bb","Or;":"\u2a54","or;":"\u2228","ord;":"\u2a5d","order;":"\u2134","orderof;":"\u2134","ordf;":"\u00aa",ordf:"\u00aa","ordm;":"\u00ba",ordm:"\u00ba","origof;":"\u22b6","oror;":"\u2a56","orslope;":"\u2a57","orv;":"\u2a5b","oS;":"\u24c8","Oscr;":"\ud835\udcaa","oscr;":"\u2134","Oslash;":"\u00d8",Oslash:"\u00d8","oslash;":"\u00f8",oslash:"\u00f8","osol;":"\u2298","Otilde;":"\u00d5",Otilde:"\u00d5","otilde;":"\u00f5",otilde:"\u00f5","otimesas;":"\u2a36","Otimes;":"\u2a37","otimes;":"\u2297","Ouml;":"\u00d6",Ouml:"\u00d6","ouml;":"\u00f6",ouml:"\u00f6","ovbar;":"\u233d","OverBar;":"\u203e","OverBrace;":"\u23de","OverBracket;":"\u23b4","OverParenthesis;":"\u23dc","para;":"\u00b6",para:"\u00b6","parallel;":"\u2225","par;":"\u2225","parsim;":"\u2af3","parsl;":"\u2afd","part;":"\u2202","PartialD;":"\u2202","Pcy;":"\u041f","pcy;":"\u043f","percnt;":"%","period;":".","permil;":"\u2030","perp;":"\u22a5","pertenk;":"\u2031","Pfr;":"\ud835\udd13","pfr;":"\ud835\udd2d","Phi;":"\u03a6","phi;":"\u03c6","phiv;":"\u03d5","phmmat;":"\u2133","phone;":"\u260e","Pi;":"\u03a0","pi;":"\u03c0","pitchfork;":"\u22d4","piv;":"\u03d6","planck;":"\u210f","planckh;":"\u210e","plankv;":"\u210f","plusacir;":"\u2a23","plusb;":"\u229e","pluscir;":"\u2a22","plus;":"+","plusdo;":"\u2214","plusdu;":"\u2a25","pluse;":"\u2a72","PlusMinus;":"\u00b1","plusmn;":"\u00b1",plusmn:"\u00b1","plussim;":"\u2a26","plustwo;":"\u2a27","pm;":"\u00b1","Poincareplane;":"\u210c","pointint;":"\u2a15","popf;":"\ud835\udd61","Popf;":"\u2119","pound;":"\u00a3",pound:"\u00a3","prap;":"\u2ab7","Pr;":"\u2abb","pr;":"\u227a","prcue;":"\u227c","precapprox;":"\u2ab7","prec;":"\u227a","preccurlyeq;":"\u227c","Precedes;":"\u227a","PrecedesEqual;":"\u2aaf","PrecedesSlantEqual;":"\u227c","PrecedesTilde;":"\u227e","preceq;":"\u2aaf","precnapprox;":"\u2ab9","precneqq;":"\u2ab5","precnsim;":"\u22e8","pre;":"\u2aaf","prE;":"\u2ab3","precsim;":"\u227e","prime;":"\u2032","Prime;":"\u2033","primes;":"\u2119","prnap;":"\u2ab9","prnE;":"\u2ab5","prnsim;":"\u22e8","prod;":"\u220f","Product;":"\u220f","profalar;":"\u232e","profline;":"\u2312","profsurf;":"\u2313","prop;":"\u221d","Proportional;":"\u221d","Proportion;":"\u2237","propto;":"\u221d","prsim;":"\u227e","prurel;":"\u22b0","Pscr;":"\ud835\udcab","pscr;":"\ud835\udcc5","Psi;":"\u03a8","psi;":"\u03c8","puncsp;":"\u2008","Qfr;":"\ud835\udd14","qfr;":"\ud835\udd2e","qint;":"\u2a0c","qopf;":"\ud835\udd62","Qopf;":"\u211a","qprime;":"\u2057","Qscr;":"\ud835\udcac","qscr;":"\ud835\udcc6","quaternions;":"\u210d","quatint;":"\u2a16","quest;":"?","questeq;":"\u225f","quot;":'"',quot:'"',"QUOT;":'"',QUOT:'"',"rAarr;":"\u21db","race;":"\u223d\u0331","Racute;":"\u0154","racute;":"\u0155","radic;":"\u221a","raemptyv;":"\u29b3","rang;":"\u27e9","Rang;":"\u27eb","rangd;":"\u2992","range;":"\u29a5","rangle;":"\u27e9","raquo;":"\u00bb",raquo:"\u00bb","rarrap;":"\u2975","rarrb;":"\u21e5","rarrbfs;":"\u2920","rarrc;":"\u2933","rarr;":"\u2192","Rarr;":"\u21a0","rArr;":"\u21d2","rarrfs;":"\u291e","rarrhk;":"\u21aa","rarrlp;":"\u21ac","rarrpl;":"\u2945","rarrsim;":"\u2974","Rarrtl;":"\u2916","rarrtl;":"\u21a3","rarrw;":"\u219d","ratail;":"\u291a","rAtail;":"\u291c","ratio;":"\u2236","rationals;":"\u211a","rbarr;":"\u290d","rBarr;":"\u290f","RBarr;":"\u2910","rbbrk;":"\u2773","rbrace;":"}","rbrack;":"]","rbrke;":"\u298c","rbrksld;":"\u298e","rbrkslu;":"\u2990","Rcaron;":"\u0158","rcaron;":"\u0159","Rcedil;":"\u0156","rcedil;":"\u0157","rceil;":"\u2309","rcub;":"}","Rcy;":"\u0420","rcy;":"\u0440","rdca;":"\u2937","rdldhar;":"\u2969","rdquo;":"\u201d","rdquor;":"\u201d","rdsh;":"\u21b3","real;":"\u211c","realine;":"\u211b","realpart;":"\u211c","reals;":"\u211d","Re;":"\u211c","rect;":"\u25ad","reg;":"\u00ae",reg:"\u00ae","REG;":"\u00ae",REG:"\u00ae","ReverseElement;":"\u220b","ReverseEquilibrium;":"\u21cb","ReverseUpEquilibrium;":"\u296f","rfisht;":"\u297d","rfloor;":"\u230b","rfr;":"\ud835\udd2f","Rfr;":"\u211c","rHar;":"\u2964","rhard;":"\u21c1","rharu;":"\u21c0","rharul;":"\u296c","Rho;":"\u03a1","rho;":"\u03c1","rhov;":"\u03f1","RightAngleBracket;":"\u27e9","RightArrowBar;":"\u21e5","rightarrow;":"\u2192","RightArrow;":"\u2192","Rightarrow;":"\u21d2","RightArrowLeftArrow;":"\u21c4","rightarrowtail;":"\u21a3","RightCeiling;":"\u2309","RightDoubleBracket;":"\u27e7","RightDownTeeVector;":"\u295d","RightDownVectorBar;":"\u2955","RightDownVector;":"\u21c2","RightFloor;":"\u230b","rightharpoondown;":"\u21c1","rightharpoonup;":"\u21c0","rightleftarrows;":"\u21c4","rightleftharpoons;":"\u21cc","rightrightarrows;":"\u21c9","rightsquigarrow;":"\u219d","RightTeeArrow;":"\u21a6","RightTee;":"\u22a2","RightTeeVector;":"\u295b","rightthreetimes;":"\u22cc","RightTriangleBar;":"\u29d0","RightTriangle;":"\u22b3","RightTriangleEqual;":"\u22b5","RightUpDownVector;":"\u294f","RightUpTeeVector;":"\u295c","RightUpVectorBar;":"\u2954","RightUpVector;":"\u21be","RightVectorBar;":"\u2953","RightVector;":"\u21c0","ring;":"\u02da","risingdotseq;":"\u2253","rlarr;":"\u21c4","rlhar;":"\u21cc","rlm;":"\u200f","rmoustache;":"\u23b1","rmoust;":"\u23b1","rnmid;":"\u2aee","roang;":"\u27ed","roarr;":"\u21fe","robrk;":"\u27e7","ropar;":"\u2986","ropf;":"\ud835\udd63","Ropf;":"\u211d","roplus;":"\u2a2e","rotimes;":"\u2a35","RoundImplies;":"\u2970","rpar;":")","rpargt;":"\u2994","rppolint;":"\u2a12","rrarr;":"\u21c9","Rrightarrow;":"\u21db","rsaquo;":"\u203a","rscr;":"\ud835\udcc7","Rscr;":"\u211b","rsh;":"\u21b1","Rsh;":"\u21b1","rsqb;":"]","rsquo;":"\u2019","rsquor;":"\u2019","rthree;":"\u22cc","rtimes;":"\u22ca","rtri;":"\u25b9","rtrie;":"\u22b5","rtrif;":"\u25b8","rtriltri;":"\u29ce","RuleDelayed;":"\u29f4","ruluhar;":"\u2968","rx;":"\u211e","Sacute;":"\u015a","sacute;":"\u015b","sbquo;":"\u201a","scap;":"\u2ab8","Scaron;":"\u0160","scaron;":"\u0161","Sc;":"\u2abc","sc;":"\u227b","sccue;":"\u227d","sce;":"\u2ab0","scE;":"\u2ab4","Scedil;":"\u015e","scedil;":"\u015f","Scirc;":"\u015c","scirc;":"\u015d","scnap;":"\u2aba","scnE;":"\u2ab6","scnsim;":"\u22e9","scpolint;":"\u2a13","scsim;":"\u227f","Scy;":"\u0421","scy;":"\u0441","sdotb;":"\u22a1","sdot;":"\u22c5","sdote;":"\u2a66","searhk;":"\u2925","searr;":"\u2198","seArr;":"\u21d8","searrow;":"\u2198","sect;":"\u00a7",sect:"\u00a7","semi;":";","seswar;":"\u2929","setminus;":"\u2216","setmn;":"\u2216","sext;":"\u2736","Sfr;":"\ud835\udd16","sfr;":"\ud835\udd30","sfrown;":"\u2322","sharp;":"\u266f","SHCHcy;":"\u0429","shchcy;":"\u0449","SHcy;":"\u0428","shcy;":"\u0448","ShortDownArrow;":"\u2193","ShortLeftArrow;":"\u2190","shortmid;":"\u2223","shortparallel;":"\u2225","ShortRightArrow;":"\u2192","ShortUpArrow;":"\u2191","shy;":"\u00ad",shy:"\u00ad","Sigma;":"\u03a3","sigma;":"\u03c3","sigmaf;":"\u03c2","sigmav;":"\u03c2","sim;":"\u223c","simdot;":"\u2a6a","sime;":"\u2243","simeq;":"\u2243","simg;":"\u2a9e","simgE;":"\u2aa0","siml;":"\u2a9d","simlE;":"\u2a9f","simne;":"\u2246","simplus;":"\u2a24","simrarr;":"\u2972","slarr;":"\u2190","SmallCircle;":"\u2218","smallsetminus;":"\u2216","smashp;":"\u2a33","smeparsl;":"\u29e4","smid;":"\u2223","smile;":"\u2323","smt;":"\u2aaa","smte;":"\u2aac","smtes;":"\u2aac\ufe00","SOFTcy;":"\u042c","softcy;":"\u044c","solbar;":"\u233f","solb;":"\u29c4","sol;":"/","Sopf;":"\ud835\udd4a","sopf;":"\ud835\udd64","spades;":"\u2660","spadesuit;":"\u2660","spar;":"\u2225","sqcap;":"\u2293","sqcaps;":"\u2293\ufe00","sqcup;":"\u2294","sqcups;":"\u2294\ufe00","Sqrt;":"\u221a","sqsub;":"\u228f","sqsube;":"\u2291","sqsubset;":"\u228f","sqsubseteq;":"\u2291","sqsup;":"\u2290","sqsupe;":"\u2292","sqsupset;":"\u2290","sqsupseteq;":"\u2292","square;":"\u25a1","Square;":"\u25a1","SquareIntersection;":"\u2293","SquareSubset;":"\u228f","SquareSubsetEqual;":"\u2291","SquareSuperset;":"\u2290","SquareSupersetEqual;":"\u2292","SquareUnion;":"\u2294","squarf;":"\u25aa","squ;":"\u25a1","squf;":"\u25aa","srarr;":"\u2192","Sscr;":"\ud835\udcae","sscr;":"\ud835\udcc8","ssetmn;":"\u2216","ssmile;":"\u2323","sstarf;":"\u22c6","Star;":"\u22c6","star;":"\u2606","starf;":"\u2605","straightepsilon;":"\u03f5","straightphi;":"\u03d5","strns;":"\u00af","sub;":"\u2282","Sub;":"\u22d0","subdot;":"\u2abd","subE;":"\u2ac5","sube;":"\u2286","subedot;":"\u2ac3","submult;":"\u2ac1","subnE;":"\u2acb","subne;":"\u228a","subplus;":"\u2abf","subrarr;":"\u2979","subset;":"\u2282","Subset;":"\u22d0","subseteq;":"\u2286","subseteqq;":"\u2ac5","SubsetEqual;":"\u2286","subsetneq;":"\u228a","subsetneqq;":"\u2acb","subsim;":"\u2ac7","subsub;":"\u2ad5","subsup;":"\u2ad3","succapprox;":"\u2ab8","succ;":"\u227b","succcurlyeq;":"\u227d","Succeeds;":"\u227b","SucceedsEqual;":"\u2ab0","SucceedsSlantEqual;":"\u227d","SucceedsTilde;":"\u227f","succeq;":"\u2ab0","succnapprox;":"\u2aba","succneqq;":"\u2ab6","succnsim;":"\u22e9","succsim;":"\u227f","SuchThat;":"\u220b","sum;":"\u2211","Sum;":"\u2211","sung;":"\u266a","sup1;":"\u00b9",sup1:"\u00b9","sup2;":"\u00b2",sup2:"\u00b2","sup3;":"\u00b3",sup3:"\u00b3","sup;":"\u2283","Sup;":"\u22d1","supdot;":"\u2abe","supdsub;":"\u2ad8","supE;":"\u2ac6","supe;":"\u2287","supedot;":"\u2ac4","Superset;":"\u2283","SupersetEqual;":"\u2287","suphsol;":"\u27c9","suphsub;":"\u2ad7","suplarr;":"\u297b","supmult;":"\u2ac2","supnE;":"\u2acc","supne;":"\u228b","supplus;":"\u2ac0","supset;":"\u2283","Supset;":"\u22d1","supseteq;":"\u2287","supseteqq;":"\u2ac6","supsetneq;":"\u228b","supsetneqq;":"\u2acc","supsim;":"\u2ac8","supsub;":"\u2ad4","supsup;":"\u2ad6","swarhk;":"\u2926","swarr;":"\u2199","swArr;":"\u21d9","swarrow;":"\u2199","swnwar;":"\u292a","szlig;":"\u00df",szlig:"\u00df","Tab;":" ","target;":"\u2316","Tau;":"\u03a4","tau;":"\u03c4","tbrk;":"\u23b4","Tcaron;":"\u0164","tcaron;":"\u0165","Tcedil;":"\u0162","tcedil;":"\u0163","Tcy;":"\u0422","tcy;":"\u0442","tdot;":"\u20db","telrec;":"\u2315","Tfr;":"\ud835\udd17","tfr;":"\ud835\udd31","there4;":"\u2234","therefore;":"\u2234","Therefore;":"\u2234","Theta;":"\u0398","theta;":"\u03b8","thetasym;":"\u03d1","thetav;":"\u03d1","thickapprox;":"\u2248","thicksim;":"\u223c","ThickSpace;":"\u205f\u200a","ThinSpace;":"\u2009","thinsp;":"\u2009","thkap;":"\u2248","thksim;":"\u223c","THORN;":"\u00de",THORN:"\u00de","thorn;":"\u00fe",thorn:"\u00fe","tilde;":"\u02dc","Tilde;":"\u223c","TildeEqual;":"\u2243","TildeFullEqual;":"\u2245","TildeTilde;":"\u2248","timesbar;":"\u2a31","timesb;":"\u22a0","times;":"\u00d7",times:"\u00d7","timesd;":"\u2a30","tint;":"\u222d","toea;":"\u2928","topbot;":"\u2336","topcir;":"\u2af1","top;":"\u22a4","Topf;":"\ud835\udd4b","topf;":"\ud835\udd65","topfork;":"\u2ada","tosa;":"\u2929","tprime;":"\u2034","trade;":"\u2122","TRADE;":"\u2122","triangle;":"\u25b5","triangledown;":"\u25bf","triangleleft;":"\u25c3","trianglelefteq;":"\u22b4","triangleq;":"\u225c","triangleright;":"\u25b9","trianglerighteq;":"\u22b5","tridot;":"\u25ec","trie;":"\u225c","triminus;":"\u2a3a","TripleDot;":"\u20db","triplus;":"\u2a39","trisb;":"\u29cd","tritime;":"\u2a3b","trpezium;":"\u23e2","Tscr;":"\ud835\udcaf","tscr;":"\ud835\udcc9","TScy;":"\u0426","tscy;":"\u0446","TSHcy;":"\u040b","tshcy;":"\u045b","Tstrok;":"\u0166","tstrok;":"\u0167","twixt;":"\u226c","twoheadleftarrow;":"\u219e","twoheadrightarrow;":"\u21a0","Uacute;":"\u00da",Uacute:"\u00da","uacute;":"\u00fa",uacute:"\u00fa","uarr;":"\u2191","Uarr;":"\u219f","uArr;":"\u21d1","Uarrocir;":"\u2949","Ubrcy;":"\u040e","ubrcy;":"\u045e","Ubreve;":"\u016c","ubreve;":"\u016d","Ucirc;":"\u00db",Ucirc:"\u00db","ucirc;":"\u00fb",ucirc:"\u00fb","Ucy;":"\u0423","ucy;":"\u0443","udarr;":"\u21c5","Udblac;":"\u0170","udblac;":"\u0171","udhar;":"\u296e","ufisht;":"\u297e","Ufr;":"\ud835\udd18","ufr;":"\ud835\udd32","Ugrave;":"\u00d9",Ugrave:"\u00d9","ugrave;":"\u00f9",ugrave:"\u00f9","uHar;":"\u2963","uharl;":"\u21bf","uharr;":"\u21be","uhblk;":"\u2580","ulcorn;":"\u231c","ulcorner;":"\u231c","ulcrop;":"\u230f","ultri;":"\u25f8","Umacr;":"\u016a","umacr;":"\u016b","uml;":"\u00a8",uml:"\u00a8","UnderBar;":"_","UnderBrace;":"\u23df","UnderBracket;":"\u23b5","UnderParenthesis;":"\u23dd","Union;":"\u22c3","UnionPlus;":"\u228e","Uogon;":"\u0172","uogon;":"\u0173","Uopf;":"\ud835\udd4c","uopf;":"\ud835\udd66","UpArrowBar;":"\u2912","uparrow;":"\u2191","UpArrow;":"\u2191","Uparrow;":"\u21d1","UpArrowDownArrow;":"\u21c5","updownarrow;":"\u2195","UpDownArrow;":"\u2195","Updownarrow;":"\u21d5","UpEquilibrium;":"\u296e","upharpoonleft;":"\u21bf","upharpoonright;":"\u21be","uplus;":"\u228e","UpperLeftArrow;":"\u2196","UpperRightArrow;":"\u2197","upsi;":"\u03c5","Upsi;":"\u03d2","upsih;":"\u03d2","Upsilon;":"\u03a5","upsilon;":"\u03c5","UpTeeArrow;":"\u21a5","UpTee;":"\u22a5","upuparrows;":"\u21c8","urcorn;":"\u231d","urcorner;":"\u231d","urcrop;":"\u230e","Uring;":"\u016e","uring;":"\u016f","urtri;":"\u25f9","Uscr;":"\ud835\udcb0","uscr;":"\ud835\udcca","utdot;":"\u22f0","Utilde;":"\u0168","utilde;":"\u0169","utri;":"\u25b5","utrif;":"\u25b4","uuarr;":"\u21c8","Uuml;":"\u00dc",Uuml:"\u00dc","uuml;":"\u00fc",uuml:"\u00fc","uwangle;":"\u29a7","vangrt;":"\u299c","varepsilon;":"\u03f5","varkappa;":"\u03f0","varnothing;":"\u2205","varphi;":"\u03d5","varpi;":"\u03d6","varpropto;":"\u221d","varr;":"\u2195","vArr;":"\u21d5","varrho;":"\u03f1","varsigma;":"\u03c2","varsubsetneq;":"\u228a\ufe00","varsubsetneqq;":"\u2acb\ufe00","varsupsetneq;":"\u228b\ufe00","varsupsetneqq;":"\u2acc\ufe00","vartheta;":"\u03d1","vartriangleleft;":"\u22b2","vartriangleright;":"\u22b3","vBar;":"\u2ae8","Vbar;":"\u2aeb","vBarv;":"\u2ae9","Vcy;":"\u0412","vcy;":"\u0432","vdash;":"\u22a2","vDash;":"\u22a8","Vdash;":"\u22a9","VDash;":"\u22ab","Vdashl;":"\u2ae6","veebar;":"\u22bb","vee;":"\u2228","Vee;":"\u22c1","veeeq;":"\u225a","vellip;":"\u22ee","verbar;":"|","Verbar;":"\u2016","vert;":"|","Vert;":"\u2016","VerticalBar;":"\u2223","VerticalLine;":"|","VerticalSeparator;":"\u2758","VerticalTilde;":"\u2240","VeryThinSpace;":"\u200a","Vfr;":"\ud835\udd19","vfr;":"\ud835\udd33","vltri;":"\u22b2","vnsub;":"\u2282\u20d2","vnsup;":"\u2283\u20d2","Vopf;":"\ud835\udd4d","vopf;":"\ud835\udd67","vprop;":"\u221d","vrtri;":"\u22b3","Vscr;":"\ud835\udcb1","vscr;":"\ud835\udccb","vsubnE;":"\u2acb\ufe00","vsubne;":"\u228a\ufe00","vsupnE;":"\u2acc\ufe00","vsupne;":"\u228b\ufe00","Vvdash;":"\u22aa","vzigzag;":"\u299a","Wcirc;":"\u0174","wcirc;":"\u0175","wedbar;":"\u2a5f","wedge;":"\u2227","Wedge;":"\u22c0","wedgeq;":"\u2259","weierp;":"\u2118","Wfr;":"\ud835\udd1a","wfr;":"\ud835\udd34","Wopf;":"\ud835\udd4e","wopf;":"\ud835\udd68","wp;":"\u2118","wr;":"\u2240","wreath;":"\u2240","Wscr;":"\ud835\udcb2","wscr;":"\ud835\udccc","xcap;":"\u22c2","xcirc;":"\u25ef","xcup;":"\u22c3","xdtri;":"\u25bd","Xfr;":"\ud835\udd1b","xfr;":"\ud835\udd35","xharr;":"\u27f7","xhArr;":"\u27fa","Xi;":"\u039e","xi;":"\u03be","xlarr;":"\u27f5","xlArr;":"\u27f8","xmap;":"\u27fc","xnis;":"\u22fb","xodot;":"\u2a00","Xopf;":"\ud835\udd4f","xopf;":"\ud835\udd69","xoplus;":"\u2a01","xotime;":"\u2a02","xrarr;":"\u27f6","xrArr;":"\u27f9","Xscr;":"\ud835\udcb3","xscr;":"\ud835\udccd","xsqcup;":"\u2a06","xuplus;":"\u2a04","xutri;":"\u25b3","xvee;":"\u22c1","xwedge;":"\u22c0","Yacute;":"\u00dd",Yacute:"\u00dd","yacute;":"\u00fd",yacute:"\u00fd","YAcy;":"\u042f","yacy;":"\u044f","Ycirc;":"\u0176","ycirc;":"\u0177","Ycy;":"\u042b","ycy;":"\u044b","yen;":"\u00a5",yen:"\u00a5","Yfr;":"\ud835\udd1c","yfr;":"\ud835\udd36","YIcy;":"\u0407","yicy;":"\u0457","Yopf;":"\ud835\udd50","yopf;":"\ud835\udd6a","Yscr;":"\ud835\udcb4","yscr;":"\ud835\udcce","YUcy;":"\u042e","yucy;":"\u044e","yuml;":"\u00ff",yuml:"\u00ff","Yuml;":"\u0178","Zacute;":"\u0179","zacute;":"\u017a","Zcaron;":"\u017d","zcaron;":"\u017e","Zcy;":"\u0417","zcy;":"\u0437","Zdot;":"\u017b","zdot;":"\u017c","zeetrf;":"\u2128","ZeroWidthSpace;":"\u200b","Zeta;":"\u0396","zeta;":"\u03b6","zfr;":"\ud835\udd37","Zfr;":"\u2128","ZHcy;":"\u0416","zhcy;":"\u0436","zigrarr;":"\u21dd","zopf;":"\ud835\udd6b","Zopf;":"\u2124","Zscr;":"\ud835\udcb5","zscr;":"\ud835\udccf","zwj;":"\u200d","zwnj;":"\u200c"}},{}],13:[function(e,t,n){function u(e,t){return r.isUndefined(t)?""+t:r.isNumber(t)&&(isNaN(t)||!isFinite(t))?t.toString():r.isFunction(t)||r.isRegExp(t)?t.toString():t}function a(e,t){return r.isString(e)?e.length=0;u--)if(n[u]!=s[u])return!1;for(u=n.length-1;u>=0;u--){o=n[u];if(!h(e[o],t[o]))return!1}return!0}function v(e,t){return!e||!t?!1:Object.prototype.toString.call(t)=="[object RegExp]"?t.test(e):e instanceof t?!0:t.call({},e)===!0?!0:!1}function m(e,t,n,i){var s;r.isString(n)&&(i=n,n=null);try{t()}catch(o){s=o}i=(n&&n.name?" ("+n.name+").":".")+(i?" "+i:"."),e&&!s&&l(s,n,"Missing expected exception"+i),!e&&v(s,n)&&l(s,n,"Got unwanted exception"+i);if(e&&s&&n&&!v(s,n)||!e&&s)throw s}var r=e("util/"),i=Array.prototype.slice,s=Object.prototype.hasOwnProperty,o=t.exports=c;o.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=f(this),this.generatedMessage=!0);var n=t.stackStartFunction||l;if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{var r=new Error;if(r.stack){var i=r.stack,s=n.name,o=i.indexOf("\n"+s);if(o>=0){var u=i.indexOf("\n",o+1);i=i.substring(u+1)}this.stack=i}}},r.inherits(o.AssertionError,Error),o.fail=l,o.ok=c,o.equal=function(t,n,r){t!=n&&l(t,n,r,"==",o.equal)},o.notEqual=function(t,n,r){t==n&&l(t,n,r,"!=",o.notEqual)},o.deepEqual=function(t,n,r){h(t,n)||l(t,n,r,"deepEqual",o.deepEqual)},o.notDeepEqual=function(t,n,r){h(t,n)&&l(t,n,r,"notDeepEqual",o.notDeepEqual)},o.strictEqual=function(t,n,r){t!==n&&l(t,n,r,"===",o.strictEqual)},o.notStrictEqual=function(t,n,r){t===n&&l(t,n,r,"!==",o.notStrictEqual)},o.throws=function(e,t,n){m.apply(this,[!0].concat(i.call(arguments)))},o.doesNotThrow=function(e,t){m.apply(this,[!1].concat(i.call(arguments)))},o.ifError=function(e){if(e)throw e};var g=Object.keys||function(e){var t=[];for(var n in e)s.call(e,n)&&t.push(n);return t}},{"util/":15}],14:[function(e,t,n){t.exports=function(t){return t&&typeof t=="object"&&typeof t.copy=="function"&&typeof t.fill=="function"&&typeof t.readUInt8=="function"}},{}],15:[function(e,t,n){(function(t,r){function u(e,t){var r={seen:[],stylize:f};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),y(t)?r.showHidden=t:t&&n._extend(r,t),T(r.showHidden)&&(r.showHidden=!1),T(r.depth)&&(r.depth=2),T(r.colors)&&(r.colors=!1),T(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=a),c(r,e,r.depth)}function a(e,t){var n=u.styles[t];return n?"["+u.colors[n][0]+"m"+e+"["+u.colors[n][1]+"m":e}function f(e,t){return e}function l(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function c(e,t,r){if(e.customInspect&&t&&A(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(r,e);return S(i)||(i=c(e,i,r)),i}var s=h(e,t);if(s)return s;var o=Object.keys(t),u=l(o);e.showHidden&&(o=Object.getOwnPropertyNames(t));if(L(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return p(t);if(o.length===0){if(A(t)){var a=t.name?": "+t.name:"";return e.stylize("[Function"+a+"]","special")}if(N(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(k(t))return e.stylize(Date.prototype.toString.call(t),"date");if(L(t))return p(t)}var f="",y=!1,b=["{","}"];g(t)&&(y=!0,b=["[","]"]);if(A(t)){var w=t.name?": "+t.name:"";f=" [Function"+w+"]"}N(t)&&(f=" "+RegExp.prototype.toString.call(t)),k(t)&&(f=" "+Date.prototype.toUTCString.call(t)),L(t)&&(f=" "+p(t));if(o.length!==0||!!y&&t.length!=0){if(r<0)return N(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var E;return y?E=d(e,t,r,u,o):E=o.map(function(n){return v(e,t,r,u,n,y)}),e.seen.pop(),m(E,f,b)}return b[0]+f+b[1]}function h(e,t){if(T(t))return e.stylize("undefined","undefined");if(S(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(E(t))return e.stylize(""+t,"number");if(y(t))return e.stylize(""+t,"boolean");if(b(t))return e.stylize("null","null")}function p(e){return"["+Error.prototype.toString.call(e)+"]"}function d(e,t,n,r,i){var s=[];for(var o=0,u=t.length;o-1&&(s?u=u.split("\n").map(function(e){return" "+e}).join("\n").substr(2):u="\n"+u.split("\n").map(function(e){return" "+e}).join("\n"))):u=e.stylize("[Circular]","special"));if(T(o)){if(s&&i.match(/^\d+$/))return u;o=JSON.stringify(""+i),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+u}function m(e,t,n){var r=0,i=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?n[0]+(t===""?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function g(e){return Array.isArray(e)}function y(e){return typeof e=="boolean"}function b(e){return e===null}function w(e){return e==null}function E(e){return typeof e=="number"}function S(e){return typeof e=="string"}function x(e){return typeof e=="symbol"}function T(e){return e===void 0}function N(e){return C(e)&&M(e)==="[object RegExp]"}function C(e){return typeof e=="object"&&e!==null}function k(e){return C(e)&&M(e)==="[object Date]"}function L(e){return C(e)&&(M(e)==="[object Error]"||e instanceof Error)}function A(e){return typeof e=="function"}function O(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}function M(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}function P(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),D[e.getMonth()],t].join(" ")}function H(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var i=/%[sdj%]/g;n.format=function(e){if(!S(e)){var t=[];for(var n=0;n=s)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(t){return"[Circular]"};default:return e}});for(var a=r[n];n0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),console.trace())}return this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var n=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var n,r,s,u;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;n=this._events[e],s=n.length,r=-1;if(n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(u=s;u-->0;)if(n[u]===t||n[u].listener&&n[u].listener===t){r=u;break}if(r<0)return this;n.length===1?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return arguments.length===0?this._events={}:this._events[e]&&delete this._events[e],this;if(arguments.length===0){for(t in this._events){if(t==="removeListener")continue;this.removeAllListeners(t)}return this.removeAllListeners("removeListener"),this._events={},this}n=this._events[e];if(i(n))this.removeListener(e,n);else while(n.length)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return!this._events||!this._events[e]?t=[]:i(this._events[e])?t=[this._events[e]]:t=this._events[e].slice(),t},r.listenerCount=function(e,t){var n;return!e._events||!e._events[t]?n=0:i(e._events[t])?n=1:n=e._events[t].length,n}},{}],17:[function(e,t,n){typeof Object.create=="function"?t.exports=function(t,n){t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}},{}],18:[function(e,t,n){function i(){}var r=t.exports={};r.nextTick=function(){var e=typeof window!="undefined"&&window.setImmediate,t=typeof window!="undefined"&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(t){var n=[];return window.addEventListener("message",function(e){var t=e.source;if((t===window||t===null)&&e.data==="process-tick"){e.stopPropagation();if(n.length>0){var r=n.shift();r()}}},!0),function(t){n.push(t),window.postMessage("process-tick","*")}}return function(t){setTimeout(t,0)}}(),r.title="browser",r.browser=!0,r.env={},r.argv=[],r.on=i,r.once=i,r.off=i,r.emit=i,r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")}},{}],19:[function(e,t,n){t.exports=e(14)},{}],20:[function(e,t,n){t.exports=e(15)},{"./support/isBuffer":19,"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":18,inherits:17}]},{},[9])(9)}),ace.define("ace/mode/html_worker",[],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("../worker/mirror").Mirror,o=e("./html/saxparser").SAXParser,u={"expected-doctype-but-got-start-tag":"info","expected-doctype-but-got-chars":"info","non-html-root":"info"},a=t.Worker=function(e){s.call(this,e),this.setTimeout(400),this.context=null};r.inherits(a,s),function(){this.setOptions=function(e){this.context=e.context},this.onUpdate=function(){var e=this.doc.getValue();if(!e)return;var t=new o,n=[],r=function(){};t.contentHandler={startDocument:r,endDocument:r,startElement:r,endElement:r,characters:r},t.errorHandler={error:function(e,t,r){n.push({row:t.line,column:t.column,text:e,type:u[r]||"error"})}},t.parse(e,this.context),this.sender.emit("error",n)}}.call(a.prototype)}) \ No newline at end of file +"no use strict";!function(e){function t(e,t){var n=e,r="";while(n){var i=t[n];if(typeof i=="string")return i+r;if(i)return i.location.replace(/\/*$/,"/")+(r||i.main||i.name);if(i===!1)return"";var s=n.lastIndexOf("/");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!="undefined"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,data:i&&i.data,file:t,line:n,col:r,stack:i&&i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log("unable to load "+i);var o=t(i,e.require.tlns);return o.slice(-3)!=".js"&&(o+=".js"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.slice(0,r.length).map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.require.tlns={},e.initBaseUrls=function(t){for(var n in t)this.require.tlns[n]=t[n]},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error("Unknown command:"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),r=e.sender=e.initSender();var s=this.require(i.module)[i.classname];n=e.main=new s(r)}}}(this),ace.define("ace/lib/oop",[],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define("ace/lib/lang",[],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n=0&&t.row=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define("ace/lib/event_emitter",[],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o ["+this.end.row+"/"+this.end.column+"]"},e.prototype.contains=function(e,t){return this.compare(e,t)==0},e.prototype.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},e.prototype.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},e.prototype.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},e.prototype.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},e.prototype.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?tthis.end.column?1:0:ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var r={row:n+1,column:0};else if(this.end.rown)var i={row:n+1,column:0};else if(this.start.rowthis.row)return;var t=u(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)},e.prototype.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();s.prototype.$insertRight=!1,r.implement(s.prototype,i),t.Anchor=s}),ace.define("ace/document",[],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(){function e(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)}return e.prototype.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e||"")},e.prototype.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},e.prototype.createAnchor=function(e,t){return new u(this,e,t)},e.prototype.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},e.prototype.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},e.prototype.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},e.prototype.getNewLineMode=function(){return this.$newLineMode},e.prototype.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},e.prototype.getLine=function(e){return this.$lines[e]||""},e.prototype.getLines=function(e,t){return this.$lines.slice(e,t+1)},e.prototype.getAllLines=function(){return this.getLines(0,this.getLength())},e.prototype.getLength=function(){return this.$lines.length},e.prototype.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},e.prototype.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},e.prototype.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},e.prototype.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},e.prototype.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},e.prototype.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},e.prototype.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},e.prototype.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e0,r=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},e.prototype.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},e.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;(e.action=="remove"&&e.start.row=t.$lines.length)throw u=new Error("Invalid delta"),u.data={path:s.$path,linesLength:t.$lines.length,start:o.start,end:o.end},u;t.applyDelta(o,!0)}if(s.$timeout)return n.schedule(s.$timeout);s.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(s.prototype)}),ace.define("ace/mode/html/saxparser",[],function(e,t,n){n.exports=function r(t,n,i){function s(u,a){if(!n[u]){if(!t[u]){var f=typeof e=="function"&&e;if(!a&&f)return f(u,!0);if(o)return o(u,!0);throw new Error("Cannot find module '"+u+"'")}var l=n[u]={exports:{}};t[u][0].call(l.exports,function(e){var n=t[u][1][e];return s(n?n:e)},l,l.exports,r,t,n,i)}return n[u].exports}var o=typeof e=="function"&&e;for(var u=0;u=0;n--){var r=this.elements[n];if(r.localName===e)return!0;if(t(r))return!1}},l.prototype.push=function(e){this.elements.push(e)},l.prototype.pushHtmlElement=function(e){this.rootNode=e.node,this.push(e)},l.prototype.pushHeadElement=function(e){this.headElement=e.node,this.push(e)},l.prototype.pushBodyElement=function(e){this.bodyElement=e.node,this.push(e)},l.prototype.pop=function(){return this.elements.pop()},l.prototype.remove=function(e){this.elements.splice(this.elements.indexOf(e),1)},l.prototype.popUntilPopped=function(e){var t;do t=this.pop();while(t.localName!=e)},l.prototype.popUntilTableScopeMarker=function(){while(!s(this.top))this.pop()},l.prototype.popUntilTableBodyScopeMarker=function(){while(!o(this.top))this.pop()},l.prototype.popUntilTableRowScopeMarker=function(){while(!u(this.top))this.pop()},l.prototype.item=function(e){return this.elements[e]},l.prototype.contains=function(e){return this.elements.indexOf(e)!==-1},l.prototype.inScope=function(e){return this._inScope(e,r)},l.prototype.inListItemScope=function(e){return this._inScope(e,i)},l.prototype.inTableScope=function(e){return this._inScope(e,s)},l.prototype.inButtonScope=function(e){return this._inScope(e,a)},l.prototype.inSelectScope=function(e){return this._inScope(e,f)},l.prototype.hasNumberedHeaderElementInScope=function(){for(var e=this.elements.length-1;e>=0;e--){var t=this.elements[e];if(t.isNumberedHeader())return!0;if(r(t))return!1}},l.prototype.furthestBlockForFormattingElement=function(e){var t=null;for(var n=this.elements.length-1;n>=0;n--){var r=this.elements[n];if(r.node===e)break;r.isSpecial()&&(t=r)}return t},l.prototype.findIndex=function(e){for(var t=this.elements.length-1;t>=0;t--)if(this.elements[t].localName==e)return t;return-1},l.prototype.remove_openElements_until=function(e){var t=!1,n;while(!t)n=this.elements.pop(),t=e(n);return n},Object.defineProperty(l.prototype,"top",{get:function(){return this.elements[this.elements.length-1]}}),Object.defineProperty(l.prototype,"length",{get:function(){return this.elements.length}}),n.ElementStack=l},{}],2:[function(e,t,n){function o(e){return e>="0"&&e<="9"||e>="a"&&e<="z"||e>="A"&&e<="Z"}function u(e){return e>="0"&&e<="9"||e>="a"&&e<="f"||e>="A"&&e<="F"}function a(e){return e>="0"&&e<="9"}var r=e("html5-entities"),i=e("./InputStream").InputStream,s={};Object.keys(r).forEach(function(e){for(var t=0;t65535&&d<=1114111){d-=65536;var m=((1047552&d)>>10)+55296,g=(1023&d)+56320;f=String.fromCharCode(m,g)}else f=String.fromCharCode(d);return c!==";"&&(t._parseError("numeric-entity-without-semicolon"),e.unget(c)),f}return e.unget(l),t._parseError("expected-numeric-entity"),!1}if(c>="a"&&c<="z"||c>="A"&&c<="Z"){var y="";while(s[l]){r[l]&&(y=l);if(c==";")break;c=e.char();if(c===i.EOF)break;l+=c}return y?(f=r[y],c===";"||!n||!o(c)&&c!=="="?(l.length>y.length&&e.unget(l.substring(y.length)),c!==";"&&t._parseError("named-entity-without-semicolon"),f):(e.unget(l),!1)):(t._parseError("expected-named-entity"),e.unget(l),!1)}},f.replaceEntityNumbers=function(e){switch(e){case 0:return 65533;case 19:return 16;case 128:return 8364;case 129:return 129;case 130:return 8218;case 131:return 402;case 132:return 8222;case 133:return 8230;case 134:return 8224;case 135:return 8225;case 136:return 710;case 137:return 8240;case 138:return 352;case 139:return 8249;case 140:return 338;case 141:return 141;case 142:return 381;case 143:return 143;case 144:return 144;case 145:return 8216;case 146:return 8217;case 147:return 8220;case 148:return 8221;case 149:return 8226;case 150:return 8211;case 151:return 8212;case 152:return 732;case 153:return 8482;case 154:return 353;case 155:return 8250;case 156:return 339;case 157:return 157;case 158:return 382;case 159:return 376;default:if(e>=55296&&e<=57343||e>1114111)return 65533;if(e>=1&&e<=8||e>=14&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||e==11||e==65534||e==131070||e==3145726||e==196607||e==262142||e==262143||e==327678||e==327679||e==393214||e==393215||e==458750||e==458751||e==524286||e==524287||e==589822||e==589823||e==655358||e==655359||e==720894||e==720895||e==786430||e==786431||e==851966||e==851967||e==917502||e==917503||e==983038||e==983039||e==1048574||e==1048575||e==1114110||e==1114111)return e}},n.EntityParser=f},{"./InputStream":3,"html5-entities":12}],3:[function(e,t,n){function r(){this.data="",this.start=0,this.committed=0,this.eof=!1,this.lastLocation={line:0,column:0}}r.EOF=-1,r.DRAIN=-2,r.prototype={slice:function(){if(this.start>=this.data.length){if(!this.eof)throw r.DRAIN;return r.EOF}return this.data.slice(this.start,this.data.length)},"char":function(){if(!this.eof&&this.start>=this.data.length-1)throw r.DRAIN;if(this.start>=this.data.length)return r.EOF;var e=this.data[this.start++];return e==="\r"&&(e="\n"),e},advance:function(e){this.start+=e;if(this.start>=this.data.length){if(!this.eof)throw r.DRAIN;return r.EOF}this.committed>this.data.length/2&&(this.lastLocation=this.location(),this.data=this.data.slice(this.committed),this.start=this.start-this.committed,this.committed=0)},matchWhile:function(e){if(this.eof&&this.start>=this.data.length)return"";var t=new RegExp("^"+e+"+"),n=t.exec(this.slice());if(n){if(!this.eof&&n[0].length==this.data.length-this.start)throw r.DRAIN;return this.advance(n[0].length),n[0]}return""},matchUntil:function(e){var t,n;n=this.slice();if(n===r.EOF)return"";if(t=(new RegExp(e+(this.eof?"|$":""))).exec(n)){var i=this.data.slice(this.start,this.start+t.index);return this.advance(t.index),i.replace(/\r/g,"\n").replace(/\n{2,}/g,"\n")}throw r.DRAIN},append:function(e){this.data+=e},shift:function(e){if(!this.eof&&this.start+e>=this.data.length)throw r.DRAIN;if(this.eof&&this.start>=this.data.length)return r.EOF;var t=this.data.slice(this.start,this.start+e).toString();return this.advance(Math.min(e,this.data.length-this.start)),t},peek:function(e){if(!this.eof&&this.start+e>=this.data.length)throw r.DRAIN;return this.eof&&this.start>=this.data.length?r.EOF:this.data.slice(this.start,Math.min(this.start+e,this.data.length)).toString()},length:function(){return this.data.length-this.start-1},unget:function(e){if(e===r.EOF)return;this.start-=e.length},undo:function(){this.start=this.committed},commit:function(){this.committed=this.start},location:function(){var e=this.lastLocation.line,t=this.lastLocation.column,n=this.data.slice(0,this.committed),r=n.match(/\n/g),i=r?e+r.length:e,s=r?n.length-n.lastIndexOf("\n")-1:t+n.length;return{line:i,column:s}}},n.InputStream=r},{}],4:[function(e,t,n){function i(e,t,n,r){this.localName=t,this.namespaceURI=e,this.attributes=n,this.node=r}function s(e,t){for(var n=0;n-1},i.prototype.isFosterParenting=function(){return this.namespaceURI==="http://www.w3.org/1999/xhtml"?this.localName==="table"||this.localName==="tbody"||this.localName==="tfoot"||this.localName==="thead"||this.localName==="tr":!1},i.prototype.isNumberedHeader=function(){return this.namespaceURI==="http://www.w3.org/1999/xhtml"?this.localName==="h1"||this.localName==="h2"||this.localName==="h3"||this.localName==="h4"||this.localName==="h5"||this.localName==="h6":!1},i.prototype.isForeign=function(){return this.namespaceURI!="http://www.w3.org/1999/xhtml"},i.prototype.isHtmlIntegrationPoint=function(){if(this.namespaceURI==="http://www.w3.org/1998/Math/MathML"){if(this.localName!=="annotation-xml")return!1;var e=s(this,"encoding");return e?(e=e.toLowerCase(),e==="text/html"||e==="application/xhtml+xml"):!1}return this.namespaceURI==="http://www.w3.org/2000/svg"?this.localName==="foreignObject"||this.localName==="desc"||this.localName==="title":!1},i.prototype.isMathMLTextIntegrationPoint=function(){return this.namespaceURI==="http://www.w3.org/1998/Math/MathML"?this.localName==="mi"||this.localName==="mo"||this.localName==="mn"||this.localName==="ms"||this.localName==="mtext":!1},n.StackItem=i},{}],5:[function(e,t,n){function s(e){return e===" "||e==="\n"||e===" "||e==="\r"||e==="\f"}function o(e){return e>="A"&&e<="Z"||e>="a"&&e<="z"}function u(e){this._tokenHandler=e,this._state=u.DATA,this._inputStream=new r,this._currentToken=null,this._temporaryBuffer="",this._additionalAllowedCharacter=""}var r=e("./InputStream").InputStream,i=e("./EntityParser").EntityParser;u.prototype._parseError=function(e,t){this._tokenHandler.parseError(e,t)},u.prototype._emitToken=function(e){if(e.type==="StartTag")for(var t=1;t"&&r?(t._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},t._emitCurrentToken(),t.setState(n)):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:"Characters",data:""&&r?(t._currentToken={type:"EndTag",name:this._temporaryBuffer,data:[],selfClosing:!1},t._emitCurrentToken(),t.setState(n)):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:"Characters",data:""&&n?(t._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},t._emitCurrentToken()):o(r)?(this._temporaryBuffer+=r,e.commit()):(t._emitToken({type:"Characters",data:""?(t._emitToken({type:"Characters",data:">"}),t.setState(p)):i==="\0"?(t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),t.setState(N)):(t._emitToken({type:"Characters",data:i}),t.setState(N)),!0}function L(e){var n=e.char();return n==="/"?(this._temporaryBuffer="",t.setState(A)):o(n)?(t._emitToken({type:"Characters",data:"<"+n}),this._temporaryBuffer=n,t.setState(M)):(t._emitToken({type:"Characters",data:"<"}),e.unget(n),t.setState(N)),!0}function A(e){var n=e.char();return o(n)?(this._temporaryBuffer=n,t.setState(O)):(t._emitToken({type:"Characters",data:""&&r?(t._currentToken={type:"EndTag",name:"script",data:[],selfClosing:!1},t.setState(n),t._emitCurrentToken()):o(i)?(this._temporaryBuffer+=i,e.commit()):(t._emitToken({type:"Characters",data:""?(t._emitToken({type:"Characters",data:n}),this._temporaryBuffer.toLowerCase()==="script"?t.setState(_):t.setState(N)):o(n)?(t._emitToken({type:"Characters",data:n}),this._temporaryBuffer+=n,e.commit()):(e.unget(n),t.setState(N)),!0}function _(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-script"),e.unget(i),t.setState(n)):i==="-"?(t._emitToken({type:"Characters",data:"-"}),t.setState(D)):i==="<"?(t._emitToken({type:"Characters",data:"<"}),t.setState(H)):i==="\0"?(t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),e.commit()):(t._emitToken({type:"Characters",data:i}),e.commit()),!0}function D(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-script"),e.unget(i),t.setState(n)):i==="-"?(t._emitToken({type:"Characters",data:"-"}),t.setState(P)):i==="<"?(t._emitToken({type:"Characters",data:"<"}),t.setState(H)):i==="\0"?(t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),t.setState(_)):(t._emitToken({type:"Characters",data:i}),t.setState(_)),!0}function P(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-script"),e.unget(i),t.setState(n)):i==="-"?(t._emitToken({type:"Characters",data:"-"}),e.commit()):i==="<"?(t._emitToken({type:"Characters",data:"<"}),t.setState(H)):i===">"?(t._emitToken({type:"Characters",data:">"}),t.setState(p)):i==="\0"?(t._parseError("invalid-codepoint"),t._emitToken({type:"Characters",data:"\ufffd"}),t.setState(_)):(t._emitToken({type:"Characters",data:i}),t.setState(_)),!0}function H(e){var n=e.char();return n==="/"?(t._emitToken({type:"Characters",data:"/"}),this._temporaryBuffer="",t.setState(B)):(e.unget(n),t.setState(_)),!0}function B(e){var n=e.char();return s(n)||n==="/"||n===">"?(t._emitToken({type:"Characters",data:n}),this._temporaryBuffer.toLowerCase()==="script"?t.setState(N):t.setState(_)):o(n)?(t._emitToken({type:"Characters",data:n}),this._temporaryBuffer+=n,e.commit()):(e.unget(n),t.setState(_)),!0}function j(e){var i=e.char();return i===r.EOF?(t._parseError("bare-less-than-sign-at-eof"),t._emitToken({type:"Characters",data:"<"}),e.unget(i),t.setState(n)):o(i)?(t._currentToken={type:"StartTag",name:i.toLowerCase(),data:[]},t.setState(I)):i==="!"?t.setState(G):i==="/"?t.setState(F):i===">"?(t._parseError("expected-tag-name-but-got-right-bracket"),t._emitToken({type:"Characters",data:"<>"}),t.setState(n)):i==="?"?(t._parseError("expected-tag-name-but-got-question-mark"),e.unget(i),t.setState(Q)):(t._parseError("expected-tag-name"),t._emitToken({type:"Characters",data:"<"}),e.unget(i),t.setState(n)),!0}function F(e){var i=e.char();return i===r.EOF?(t._parseError("expected-closing-tag-but-got-eof"),t._emitToken({type:"Characters",data:""?(t._parseError("expected-closing-tag-but-got-right-bracket"),t.setState(n)):(t._parseError("expected-closing-tag-but-got-char",{data:i}),e.unget(i),t.setState(Q)),!0}function I(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-tag-name"),e.unget(i),t.setState(n)):s(i)?t.setState(q):o(i)?t._currentToken.name+=i.toLowerCase():i===">"?t._emitCurrentToken():i==="/"?t.setState(K):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.name+="\ufffd"):t._currentToken.name+=i,e.commit(),!0}function q(e){var i=e.char();if(i===r.EOF)t._parseError("expected-attribute-name-but-got-eof"),e.unget(i),t.setState(n);else{if(s(i))return!0;o(i)?(t._currentToken.data.push({nodeName:i.toLowerCase(),nodeValue:""}),t.setState(R)):i===">"?t._emitCurrentToken():i==="/"?t.setState(K):i==="'"||i==='"'||i==="="||i==="<"?(t._parseError("invalid-character-in-attribute-name"),t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data.push({nodeName:"\ufffd",nodeValue:""})):(t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R))}return!0}function R(e){var i=e.char(),u=!0,a=!1;i===r.EOF?(t._parseError("eof-in-attribute-name"),e.unget(i),t.setState(n),a=!0):i==="="?t.setState(z):o(i)?(t._currentAttribute().nodeName+=i.toLowerCase(),u=!1):i===">"?a=!0:s(i)?t.setState(U):i==="/"?t.setState(K):i==="'"||i==='"'?(t._parseError("invalid-character-in-attribute-name"),t._currentAttribute().nodeName+=i,u=!1):i==="\0"?(t._parseError("invalid-codepoint"),t._currentAttribute().nodeName+="\ufffd"):(t._currentAttribute().nodeName+=i,u=!1);if(u){var f=t._currentToken.data,l=f[f.length-1];for(var c=f.length-2;c>=0;c--)if(l.nodeName===f[c].nodeName){t._parseError("duplicate-attribute",{name:l.nodeName}),l.nodeName=null;break}a&&t._emitCurrentToken()}else e.commit();return!0}function U(e){var i=e.char();if(i===r.EOF)t._parseError("expected-end-of-tag-but-got-eof"),e.unget(i),t.setState(n);else{if(s(i))return!0;i==="="?t.setState(z):i===">"?t._emitCurrentToken():o(i)?(t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R)):i==="/"?t.setState(K):i==="'"||i==='"'||i==="<"?(t._parseError("invalid-character-after-attribute-name"),t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data.push({nodeName:"\ufffd",nodeValue:""})):(t._currentToken.data.push({nodeName:i,nodeValue:""}),t.setState(R))}return!0}function z(e){var i=e.char();if(i===r.EOF)t._parseError("expected-attribute-value-but-got-eof"),e.unget(i),t.setState(n);else{if(s(i))return!0;i==='"'?t.setState(W):i==="&"?(t.setState(V),e.unget(i)):i==="'"?t.setState(X):i===">"?(t._parseError("expected-attribute-value-but-got-right-bracket"),t._emitCurrentToken()):i==="="||i==="<"||i==="`"?(t._parseError("unexpected-character-in-unquoted-attribute-value"),t._currentAttribute().nodeValue+=i,t.setState(V)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentAttribute().nodeValue+="\ufffd"):(t._currentAttribute().nodeValue+=i,t.setState(V))}return!0}function W(e){var i=e.char();if(i===r.EOF)t._parseError("eof-in-attribute-value-double-quote"),e.unget(i),t.setState(n);else if(i==='"')t.setState(J);else if(i==="&")this._additionalAllowedCharacter='"',t.setState($);else if(i==="\0")t._parseError("invalid-codepoint"),t._currentAttribute().nodeValue+="\ufffd";else{var s=e.matchUntil('[\0"&]');i+=s,t._currentAttribute().nodeValue+=i}return!0}function X(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-attribute-value-single-quote"),e.unget(i),t.setState(n)):i==="'"?t.setState(J):i==="&"?(this._additionalAllowedCharacter="'",t.setState($)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentAttribute().nodeValue+="\ufffd"):t._currentAttribute().nodeValue+=i+e.matchUntil("\0|['&]"),!0}function V(e){var i=e.char();if(i===r.EOF)t._parseError("eof-after-attribute-value"),e.unget(i),t.setState(n);else if(s(i))t.setState(q);else if(i==="&")this._additionalAllowedCharacter=">",t.setState($);else if(i===">")t._emitCurrentToken();else if(i==='"'||i==="'"||i==="="||i==="`"||i==="<")t._parseError("unexpected-character-in-unquoted-attribute-value"),t._currentAttribute().nodeValue+=i,e.commit();else if(i==="\0")t._parseError("invalid-codepoint"),t._currentAttribute().nodeValue+="\ufffd";else{var o=e.matchUntil("\0|[ \n\x0b\f \r&<>\"'=`]");o===r.EOF&&(t._parseError("eof-in-attribute-value-no-quotes"),t._emitCurrentToken()),e.commit(),t._currentAttribute().nodeValue+=i+o}return!0}function $(e){var n=i.consumeEntity(e,t,this._additionalAllowedCharacter);return this._currentAttribute().nodeValue+=n||"&",this._additionalAllowedCharacter==='"'?t.setState(W):this._additionalAllowedCharacter==="'"?t.setState(X):this._additionalAllowedCharacter===">"&&t.setState(V),!0}function J(e){var i=e.char();return i===r.EOF?(t._parseError("eof-after-attribute-value"),e.unget(i),t.setState(n)):s(i)?t.setState(q):i===">"?(t.setState(n),t._emitCurrentToken()):i==="/"?t.setState(K):(t._parseError("unexpected-character-after-attribute-value"),e.unget(i),t.setState(q)),!0}function K(e){var i=e.char();return i===r.EOF?(t._parseError("unexpected-eof-after-solidus-in-tag"),e.unget(i),t.setState(n)):i===">"?(t._currentToken.selfClosing=!0,t.setState(n),t._emitCurrentToken()):(t._parseError("unexpected-character-after-solidus-in-tag"),e.unget(i),t.setState(q)),!0}function Q(e){var r=e.matchUntil(">");return r=r.replace(/\u0000/g,"\ufffd"),e.char(),t._emitToken({type:"Comment",data:r}),t.setState(n),!0}function G(e){var n=e.shift(2);if(n==="--")t._currentToken={type:"Comment",data:""},t.setState(Z);else{var i=e.shift(5);if(i===r.EOF||n===r.EOF)return t._parseError("expected-dashes-or-doctype"),t.setState(Q),e.unget(n),!0;n+=i,n.toUpperCase()==="DOCTYPE"?(t._currentToken={type:"Doctype",name:"",publicId:null,systemId:null,forceQuirks:!1},t.setState(st)):t._tokenHandler.isCdataSectionAllowed()&&n==="[CDATA["?t.setState(Y):(t._parseError("expected-dashes-or-doctype"),e.unget(n),t.setState(Q))}return!0}function Y(e){var r=e.matchUntil("]]>");return e.shift(3),r&&t._emitToken({type:"Characters",data:r}),t.setState(n),!0}function Z(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i==="-"?t.setState(et):i===">"?(t._parseError("incorrect-comment"),t._emitToken(t._currentToken),t.setState(n)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="\ufffd"):(t._currentToken.data+=i,t.setState(tt)),!0}function et(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i==="-"?t.setState(rt):i===">"?(t._parseError("incorrect-comment"),t._emitToken(t._currentToken),t.setState(n)):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="\ufffd"):(t._currentToken.data+="-"+i,t.setState(tt)),!0}function tt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i==="-"?t.setState(nt):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="\ufffd"):(t._currentToken.data+=i,e.commit()),!0}function nt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment-end-dash"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i==="-"?t.setState(rt):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="-\ufffd",t.setState(tt)):(t._currentToken.data+="-"+i+e.matchUntil("\0|-"),e.char()),!0}function rt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment-double-dash"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===">"?(t._emitToken(t._currentToken),t.setState(n)):i==="!"?(t._parseError("unexpected-bang-after-double-dash-in-comment"),t.setState(it)):i==="-"?(t._parseError("unexpected-dash-after-double-dash-in-comment"),t._currentToken.data+=i):i==="\0"?(t._parseError("invalid-codepoint"),t._currentToken.data+="--\ufffd",t.setState(tt)):(t._parseError("unexpected-char-in-comment"),t._currentToken.data+="--"+i,t.setState(tt)),!0}function it(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-comment-end-bang-state"),t._emitToken(t._currentToken),e.unget(i),t.setState(n)):i===">"?(t._emitToken(t._currentToken),t.setState(n)):i==="-"?(t._currentToken.data+="--!",t.setState(nt)):(t._currentToken.data+="--!"+i,t.setState(tt)),!0}function st(e){var i=e.char();return i===r.EOF?(t._parseError("expected-doctype-name-but-got-eof"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(ot):(t._parseError("need-space-after-doctype"),e.unget(i),t.setState(ot)),!0}function ot(e){var i=e.char();return i===r.EOF?(t._parseError("expected-doctype-name-but-got-eof"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)||(i===">"?(t._parseError("expected-doctype-name-but-got-right-bracket"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):(o(i)&&(i=i.toLowerCase()),t._currentToken.name=i,t.setState(ut))),!0}function ut(e){var i=e.char();return i===r.EOF?(t._currentToken.forceQuirks=!0,e.unget(i),t._parseError("eof-in-doctype-name"),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(at):i===">"?(t.setState(n),t._emitCurrentToken()):(o(i)&&(i=i.toLowerCase()),t._currentToken.name+=i,e.commit()),!0}function at(e){var i=e.char();if(i===r.EOF)t._currentToken.forceQuirks=!0,e.unget(i),t._parseError("eof-in-doctype"),t.setState(n),t._emitCurrentToken();else if(!s(i))if(i===">")t.setState(n),t._emitCurrentToken();else{if(["p","P"].indexOf(i)>-1){var o=[["u","U"],["b","B"],["l","L"],["i","I"],["c","C"]],u=o.every(function(t){return i=e.char(),t.indexOf(i)>-1});if(u)return t.setState(ft),!0}else if(["s","S"].indexOf(i)>-1){var o=[["y","Y"],["s","S"],["t","T"],["e","E"],["m","M"]],u=o.every(function(t){return i=e.char(),t.indexOf(i)>-1});if(u)return t.setState(vt),!0}e.unget(i),t._currentToken.forceQuirks=!0,i===r.EOF?(t._parseError("eof-in-doctype"),e.unget(i),t.setState(n),t._emitCurrentToken()):(t._parseError("expected-space-or-right-bracket-in-doctype",{data:i}),t.setState(wt))}return!0}function ft(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)?t.setState(lt):i==="'"||i==='"'?(t._parseError("unexpected-char-in-doctype"),e.unget(i),t.setState(lt)):(e.unget(i),t.setState(lt)),!0}function lt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):s(i)||(i==='"'?(t._currentToken.publicId="",t.setState(ct)):i==="'"?(t._currentToken.publicId="",t.setState(ht)):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):(t._parseError("unexpected-char-in-doctype"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function ct(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):i==='"'?t.setState(pt):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):t._currentToken.publicId+=i,!0}function ht(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,e.unget(i),t.setState(n),t._emitCurrentToken()):i==="'"?t.setState(pt):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t.setState(n),t._emitCurrentToken()):t._currentToken.publicId+=i,!0}function pt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)?t.setState(dt):i===">"?(t.setState(n),t._emitCurrentToken()):i==='"'?(t._parseError("unexpected-char-in-doctype"),t._currentToken.systemId="",t.setState(gt)):i==="'"?(t._parseError("unexpected-char-in-doctype"),t._currentToken.systemId="",t.setState(yt)):(t._parseError("unexpected-char-in-doctype"),t._currentToken.forceQuirks=!0,t.setState(wt)),!0}function dt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i===">"?(t._emitCurrentToken(),t.setState(n)):i==='"'?(t._currentToken.systemId="",t.setState(gt)):i==="'"?(t._currentToken.systemId="",t.setState(yt)):(t._parseError("unexpected-char-in-doctype"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function vt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)?t.setState(mt):i==="'"||i==='"'?(t._parseError("unexpected-char-in-doctype"),e.unget(i),t.setState(mt)):(e.unget(i),t.setState(mt)),!0}function mt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i==='"'?(t._currentToken.systemId="",t.setState(gt)):i==="'"?(t._currentToken.systemId="",t.setState(yt)):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):(t._parseError("unexpected-char-in-doctype"),t._currentToken.forceQuirks=!0,t.setState(wt))),!0}function gt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):i==='"'?t.setState(bt):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):t._currentToken.systemId+=i,!0}function yt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):i==="'"?t.setState(bt):i===">"?(t._parseError("unexpected-end-of-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),t.setState(n)):t._currentToken.systemId+=i,!0}function bt(e){var i=e.char();return i===r.EOF?(t._parseError("eof-in-doctype"),t._currentToken.forceQuirks=!0,t._emitCurrentToken(),e.unget(i),t.setState(n)):s(i)||(i===">"?(t._emitCurrentToken(),t.setState(n)):(t._parseError("unexpected-char-in-doctype"),t.setState(wt))),!0}function wt(e){var i=e.char();return i===r.EOF?(e.unget(i),t._emitCurrentToken(),t.setState(n)):i===">"&&(t._emitCurrentToken(),t.setState(n)),!0}u.DATA=n,u.RCDATA=f,u.RAWTEXT=c,u.SCRIPT_DATA=p,u.PLAINTEXT=h,this._state=u.DATA,this._inputStream.append(e),this._tokenHandler.startTokenization(this),this._inputStream.eof=!0;var t=this;while(this._state.call(this,this._inputStream));},Object.defineProperty(u.prototype,"lineNumber",{get:function(){return this._inputStream.location().line}}),Object.defineProperty(u.prototype,"columnNumber",{get:function(){return this._inputStream.location().column}}),n.Tokenizer=u},{"./EntityParser":2,"./InputStream":3}],6:[function(e,t,n){function c(e){return e===" "||e==="\n"||e===" "||e==="\r"||e==="\f"}function h(e){return c(e)||e==="\ufffd"}function p(e){for(var t=0;t2?e.parseError("expected-closing-tag-but-got-eof"):e.openElements.length==2&&e.openElements.item(1).localName!="body"?e.parseError("expected-closing-tag-but-got-eof"):e.context&&e.openElements.length>1},processComment:function(t){e.insertComment(t,e.currentStackItem().node)},processDoctype:function(t,n,r,i){e.parseError("unexpected-doctype")},processStartTag:function(e,t,n){if(this[this.start_tag_handlers[e]])this[this.start_tag_handlers[e]](e,t,n);else{if(!this[this.start_tag_handlers["-default"]])throw new Error("No handler found for "+e);this[this.start_tag_handlers["-default"]](e,t,n)}},processEndTag:function(e){if(this[this.end_tag_handlers[e]])this[this.end_tag_handlers[e]](e);else{if(!this[this.end_tag_handlers["-default"]])throw new Error("No handler found for "+e);this[this.end_tag_handlers["-default"]](e)}},startTagHtml:function(e,n){t.inBody.startTagHtml(e,n)}},t.initial=Object.create(t.base),t.initial.processEOF=function(){e.parseError("expected-doctype-but-got-eof"),this.anythingElse(),e.insertionMode.processEOF()},t.initial.processComment=function(t){e.insertComment(t,e.document)},t.initial.processDoctype=function(t,n,r,i){function s(e){return n.toLowerCase().indexOf(e)===0}e.insertDoctype(t||"",n||"",r||""),i||t!="html"||n!=null&&(["+//silmaril//dtd html pro v0r11 19970101//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//as//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html strict//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//ietf//dtd html//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//spyglass//dtd html 2.0 extended//","-//sq//dtd html 2.0 hotmetal + extensions//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//","html"].some(s)||["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"].indexOf(n.toLowerCase())>-1||r==null&&["-//w3c//dtd html 4.01 transitional//","-//w3c//dtd html 4.01 frameset//"].some(s))||r!=null&&r.toLowerCase()=="http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"?(e.compatMode="quirks",e.parseError("quirky-doctype")):n!=null&&(["-//w3c//dtd xhtml 1.0 transitional//","-//w3c//dtd xhtml 1.0 frameset//"].some(s)||r!=null&&["-//w3c//dtd html 4.01 transitional//","-//w3c//dtd html 4.01 frameset//"].indexOf(n.toLowerCase())>-1)?(e.compatMode="limited quirks",e.parseError("almost-standards-doctype")):n=="-//W3C//DTD HTML 4.0//EN"&&(r==null||r=="http://www.w3.org/TR/REC-html40/strict.dtd")||n=="-//W3C//DTD HTML 4.01//EN"&&(r==null||r=="http://www.w3.org/TR/html4/strict.dtd")||n=="-//W3C//DTD XHTML 1.0 Strict//EN"&&r=="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"||n=="-//W3C//DTD XHTML 1.1//EN"&&r=="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"||(r!=null&&r!="about:legacy-compat"||n!=null)&&e.parseError("unknown-doctype"),e.setInsertionMode("beforeHTML")},t.initial.processCharacters=function(t){t.skipLeadingWhitespace();if(!t.length)return;e.parseError("expected-doctype-but-got-chars"),this.anythingElse(),e.insertionMode.processCharacters(t)},t.initial.processStartTag=function(t,n,r){e.parseError("expected-doctype-but-got-start-tag",{name:t}),this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.initial.processEndTag=function(t){e.parseError("expected-doctype-but-got-end-tag",{name:t}),this.anythingElse(),e.insertionMode.processEndTag(t)},t.initial.anythingElse=function(){e.compatMode="quirks",e.setInsertionMode("beforeHTML")},t.beforeHTML=Object.create(t.base),t.beforeHTML.start_tag_handlers={html:"startTagHtml","-default":"startTagOther"},t.beforeHTML.processEOF=function(){this.anythingElse(),e.insertionMode.processEOF()},t.beforeHTML.processComment=function(t){e.insertComment(t,e.document)},t.beforeHTML.processCharacters=function(t){t.skipLeadingWhitespace();if(!t.length)return;this.anythingElse(),e.insertionMode.processCharacters(t)},t.beforeHTML.startTagHtml=function(t,n,r){e.insertHtmlElement(n),e.setInsertionMode("beforeHead")},t.beforeHTML.startTagOther=function(t,n,r){this.anythingElse(),e.insertionMode.processStartTag(t,n,r)},t.beforeHTML.processEndTag=function(t){this.anythingElse(),e.insertionMode.processEndTag(t)},t.beforeHTML.anythingElse=function(){e.insertHtmlElement(),e.setInsertionMode("beforeHead")},t.afterAfterBody=Object.create(t.base),t.afterAfterBody.start_tag_handlers={html:"startTagHtml","-default":"startTagOther"},t.afterAfterBody.processComment=function(t){e.insertComment(t,e.document)},t.afterAfterBody.processDoctype=function(e){t.inBody.processDoctype(e)},t.afterAfterBody.startTagHtml=function(e,n){t.inBody.startTagHtml(e,n)},t.afterAfterBody.startTagOther=function(t,n,r){e.parseError("unexpected-start-tag",{name:t}),e.setInsertionMode("inBody"),e.insertionMode.processStartTag(t,n,r)},t.afterAfterBody.endTagOther=function(t){e.parseError("unexpected-end-tag",{name:t}),e.setInsertionMode("inBody"),e.insertionMode.processEndTag(t)},t.afterAfterBody.processCharacters=function(n){if(!p(n.characters))return e.parseError("unexpected-char-after-body"),e.setInsertionMode("inBody"),e.insertionMode.processCharacters(n);t.inBody.processCharacters(n)},t.afterBody=Object.create(t.base),t.afterBody.end_tag_handlers={html:"endTagHtml","-default":"endTagOther"},t.afterBody.processComment=function(t){e.insertComment(t,e.openElements.rootNode)},t.afterBody.processCharacters=function(n){if(!p(n.characters))return e.parseError("unexpected-char-after-body"),e.setInsertionMode("inBody"),e.insertionMode.processCharacters(n);t.inBody.processCharacters(n)},t.afterBody.processStartTag=function(t,n,r){e.parseError("unexpected-start-tag-after-body",{name:t}),e.setInsertionMode("inBody"),e.insertionMode.processStartTag(t,n,r)},t.afterBody.endTagHtml=function(t){e.context?e.parseError("end-html-in-innerhtml"):e.setInsertionMode("afterAfterBody")},t.afterBody.endTagOther=function(t){e.parseError("unexpected-end-tag-after-body",{name:t}),e.setInsertionMode("inBody"),e.insertionMode.processEndTag(t)},t.afterFrameset=Object.create(t.base),t.afterFrameset.start_tag_handlers={html:"startTagHtml",noframes:"startTagNoframes","-default":"startTagOther"},t.afterFrameset.end_tag_handlers={html:"endTagHtml","-default":"endTagOther"},t.afterFrameset.processCharacters=function(t){var n=t.takeRemaining(),r="";for(var i=0;i1)e.openElements.pop();e.insertElement(t,n),e.setInsertionMode("inFrameset")}},t.inBody.startTagCloseP=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n)},t.inBody.startTagPreListing=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n),e.framesetOk=!1,e.shouldSkipLeadingNewline=!0},t.inBody.startTagForm=function(t,n){e.form?e.parseError("unexpected-start-tag",{name:t}):(e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n),e.form=e.currentStackItem())},t.inBody.startTagRpRt=function(t,n){e.openElements.inScope("ruby")&&(e.generateImpliedEndTags(),e.currentStackItem().localName!="ruby"&&e.parseError("unexpected-start-tag",{name:t})),e.insertElement(t,n)},t.inBody.startTagListItem=function(t,n){var r={li:["li"],dd:["dd","dt"],dt:["dd","dt"]},i=r[t],s=e.openElements;for(var o=s.length-1;o>=0;o--){var u=s.item(o);if(i.indexOf(u.localName)!=-1){e.insertionMode.processEndTag(u.localName);break}if(u.isSpecial()&&u.localName!=="p"&&u.localName!=="address"&&u.localName!=="div")break}e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n),e.framesetOk=!1},t.inBody.startTagPlaintext=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertElement(t,n),e.tokenizer.setState(u.PLAINTEXT)},t.inBody.startTagHeading=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.currentStackItem().isNumberedHeader()&&(e.parseError("unexpected-start-tag",{name:t}),e.popElement()),e.insertElement(t,n)},t.inBody.startTagA=function(t,n){var r=e.elementInActiveFormattingElements("a");r&&(e.parseError("unexpected-start-tag-implies-end-tag",{startName:"a",endName:"a"}),e.adoptionAgencyEndTag("a"),e.openElements.contains(r)&&e.openElements.remove(r),e.removeElementFromActiveFormattingElements(r)),e.reconstructActiveFormattingElements(),e.insertFormattingElement(t,n)},t.inBody.startTagFormatting=function(t,n){e.reconstructActiveFormattingElements(),e.insertFormattingElement(t,n)},t.inBody.startTagNobr=function(t,n){e.reconstructActiveFormattingElements(),e.openElements.inScope("nobr")&&(e.parseError("unexpected-start-tag-implies-end-tag",{startName:"nobr",endName:"nobr"}),this.processEndTag("nobr"),e.reconstructActiveFormattingElements()),e.insertFormattingElement(t,n)},t.inBody.startTagButton=function(t,n){e.openElements.inScope("button")?(e.parseError("unexpected-start-tag-implies-end-tag",{startName:"button",endName:"button"}),this.processEndTag("button"),e.insertionMode.processStartTag(t,n)):(e.framesetOk=!1,e.reconstructActiveFormattingElements(),e.insertElement(t,n))},t.inBody.startTagAppletMarqueeObject=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n),e.activeFormattingElements.push(l),e.framesetOk=!1},t.inBody.endTagAppletMarqueeObject=function(t){e.openElements.inScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early",{name:t}),e.openElements.popUntilPopped(t),e.clearActiveFormattingElements()):e.parseError("unexpected-end-tag",{name:t})},t.inBody.startTagXmp=function(t,n){e.openElements.inButtonScope("p")&&this.processEndTag("p"),e.reconstructActiveFormattingElements(),e.processGenericRawTextStartTag(t,n),e.framesetOk=!1},t.inBody.startTagTable=function(t,n){e.compatMode!=="quirks"&&e.openElements.inButtonScope("p")&&this.processEndTag("p"),e.insertElement(t,n),e.setInsertionMode("inTable"),e.framesetOk=!1},t.inBody.startTagVoidFormatting=function(t,n){e.reconstructActiveFormattingElements(),e.insertSelfClosingElement(t,n),e.framesetOk=!1},t.inBody.startTagParamSourceTrack=function(t,n){e.insertSelfClosingElement(t,n)},t.inBody.startTagHr=function(t,n){e.openElements.inButtonScope("p")&&this.endTagP("p"),e.insertSelfClosingElement(t,n),e.framesetOk=!1},t.inBody.startTagImage=function(t,n){e.parseError("unexpected-start-tag-treated-as",{originalName:"image",newName:"img"}),this.processStartTag("img",n)},t.inBody.startTagInput=function(t,n){var r=e.framesetOk;this.startTagVoidFormatting(t,n);for(var i in n)if(n[i].nodeName=="type"){n[i].nodeValue.toLowerCase()=="hidden"&&(e.framesetOk=r);break}},t.inBody.startTagIsindex=function(t,n){e.parseError("deprecated-tag",{name:"isindex"}),e.selfClosingFlagAcknowledged=!0;if(e.form)return;var r=[],i=[],s="This is a searchable index. Enter search keywords: ";for(var o in n)switch(n[o].nodeName){case"action":r.push({nodeName:"action",nodeValue:n[o].nodeValue});break;case"prompt":s=n[o].nodeValue;break;case"name":break;default:i.push({nodeName:n[o].nodeName,nodeValue:n[o].nodeValue})}i.push({nodeName:"name",nodeValue:"isindex"}),this.processStartTag("form",r),this.processStartTag("hr"),this.processStartTag("label"),this.processCharacters(new m(s)),this.processStartTag("input",i),this.processEndTag("label"),this.processStartTag("hr"),this.processEndTag("form")},t.inBody.startTagTextarea=function(t,n){e.insertElement(t,n),e.tokenizer.setState(u.RCDATA),e.originalInsertionMode=e.insertionModeName,e.shouldSkipLeadingNewline=!0,e.framesetOk=!1,e.setInsertionMode("text")},t.inBody.startTagIFrame=function(t,n){e.framesetOk=!1,this.startTagRawText(t,n)},t.inBody.startTagRawText=function(t,n){e.processGenericRawTextStartTag(t,n)},t.inBody.startTagSelect=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n),e.framesetOk=!1;var r=e.insertionModeName;r=="inTable"||r=="inCaption"||r=="inColumnGroup"||r=="inTableBody"||r=="inRow"||r=="inCell"?e.setInsertionMode("inSelectInTable"):e.setInsertionMode("inSelect")},t.inBody.startTagMisplaced=function(t,n){e.parseError("unexpected-start-tag-ignored",{name:t})},t.inBody.endTagMisplaced=function(t){e.parseError("unexpected-end-tag",{name:t})},t.inBody.endTagBr=function(t){e.parseError("unexpected-end-tag-treated-as",{originalName:"br",newName:"br element"}),e.reconstructActiveFormattingElements(),e.insertElement(t,[]),e.popElement()},t.inBody.startTagOptionOptgroup=function(t,n){e.currentStackItem().localName=="option"&&e.popElement(),e.reconstructActiveFormattingElements(),e.insertElement(t,n)},t.inBody.startTagOther=function(t,n){e.reconstructActiveFormattingElements(),e.insertElement(t,n)},t.inBody.endTagOther=function(t){var n;for(var r=e.openElements.length-1;r>0;r--){n=e.openElements.item(r);if(n.localName==t){e.generateImpliedEndTags(t),e.currentStackItem().localName!=t&&e.parseError("unexpected-end-tag",{name:t}),e.openElements.remove_openElements_until(function(e){return e===n});break}if(n.isSpecial()){e.parseError("unexpected-end-tag",{name:t});break}}},t.inBody.startTagMath=function(t,n,r){e.reconstructActiveFormattingElements(),n=e.adjustMathMLAttributes(n),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,"http://www.w3.org/1998/Math/MathML",r)},t.inBody.startTagSVG=function(t,n,r){e.reconstructActiveFormattingElements(),n=e.adjustSVGAttributes(n),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,"http://www.w3.org/2000/svg",r)},t.inBody.endTagP=function(t){e.openElements.inButtonScope("p")?(e.generateImpliedEndTags("p"),e.currentStackItem().localName!="p"&&e.parseError("unexpected-implied-end-tag",{name:"p"}),e.openElements.popUntilPopped(t)):(e.parseError("unexpected-end-tag",{name:"p"}),this.startTagCloseP("p",[]),this.endTagP("p"))},t.inBody.endTagBody=function(t){if(!e.openElements.inScope("body")){e.parseError("unexpected-end-tag",{name:t});return}e.currentStackItem().localName!="body"&&e.parseError("expected-one-end-tag-but-got-another",{expectedName:e.currentStackItem().localName,gotName:t}),e.setInsertionMode("afterBody")},t.inBody.endTagHtml=function(t){if(!e.openElements.inScope("body")){e.parseError("unexpected-end-tag",{name:t});return}e.currentStackItem().localName!="body"&&e.parseError("expected-one-end-tag-but-got-another",{expectedName:e.currentStackItem().localName,gotName:t}),e.setInsertionMode("afterBody"),e.insertionMode.processEndTag(t)},t.inBody.endTagBlock=function(t){e.openElements.inScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early",{name:t}),e.openElements.popUntilPopped(t)):e.parseError("unexpected-end-tag",{name:t})},t.inBody.endTagForm=function(t){var n=e.form;e.form=null,!n||!e.openElements.inScope(t)?e.parseError("unexpected-end-tag",{name:t}):(e.generateImpliedEndTags(),e.currentStackItem()!=n&&e.parseError("end-tag-too-early-ignored",{name:"form"}),e.openElements.remove(n))},t.inBody.endTagListItem=function(t){e.openElements.inListItemScope(t)?(e.generateImpliedEndTags(t),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early",{name:t}),e.openElements.popUntilPopped(t)):e.parseError("unexpected-end-tag",{name:t})},t.inBody.endTagHeading=function(t){if(!e.openElements.hasNumberedHeaderElementInScope()){e.parseError("unexpected-end-tag",{name:t});return}e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early",{name:t}),e.openElements.remove_openElements_until(function(e){return e.isNumberedHeader()})},t.inBody.endTagFormatting=function(t,n){e.adoptionAgencyEndTag(t)||this.endTagOther(t,n)},t.inCaption=Object.create(t.base),t.inCaption.start_tag_handlers={html:"startTagHtml",caption:"startTagTableElement",col:"startTagTableElement",colgroup:"startTagTableElement",tbody:"startTagTableElement",td:"startTagTableElement",tfoot:"startTagTableElement",thead:"startTagTableElement",tr:"startTagTableElement","-default":"startTagOther"},t.inCaption.end_tag_handlers={caption:"endTagCaption",table:"endTagTable",body:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",tbody:"endTagIgnore",td:"endTagIgnore",tfood:"endTagIgnore",thead:"endTagIgnore",tr:"endTagIgnore","-default":"endTagOther"},t.inCaption.processCharacters=function(e){t.inBody.processCharacters(e)},t.inCaption.startTagTableElement=function(t,n){e.parseError("unexpected-end-tag",{name:t});var r=!e.openElements.inTableScope("caption");e.insertionMode.processEndTag("caption"),r||e.insertionMode.processStartTag(t,n)},t.inCaption.startTagOther=function(e,n,r){t.inBody.processStartTag(e,n,r)},t.inCaption.endTagCaption=function(t){e.openElements.inTableScope("caption")?(e.generateImpliedEndTags(),e.currentStackItem().localName!="caption"&&e.parseError("expected-one-end-tag-but-got-another",{gotName:"caption",expectedName:e.currentStackItem().localName}),e.openElements.popUntilPopped("caption"),e.clearActiveFormattingElements(),e.setInsertionMode("inTable")):(r.ok(e.context),e.parseError("unexpected-end-tag",{name:t}))},t.inCaption.endTagTable=function(t){e.parseError("unexpected-end-table-in-caption");var n=!e.openElements.inTableScope("caption");e.insertionMode.processEndTag("caption"),n||e.insertionMode.processEndTag(t)},t.inCaption.endTagIgnore=function(t){e.parseError("unexpected-end-tag",{name:t})},t.inCaption.endTagOther=function(e){t.inBody.processEndTag(e)},t.inCell=Object.create(t.base),t.inCell.start_tag_handlers={html:"startTagHtml",caption:"startTagTableOther",col:"startTagTableOther",colgroup:"startTagTableOther",tbody:"startTagTableOther",td:"startTagTableOther",tfoot:"startTagTableOther",th:"startTagTableOther",thead:"startTagTableOther",tr:"startTagTableOther","-default":"startTagOther"},t.inCell.end_tag_handlers={td:"endTagTableCell",th:"endTagTableCell",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",table:"endTagImply",tbody:"endTagImply",tfoot:"endTagImply",thead:"endTagImply",tr:"endTagImply","-default":"endTagOther"},t.inCell.processCharacters=function(e){t.inBody.processCharacters(e)},t.inCell.startTagTableOther=function(t,n,r){e.openElements.inTableScope("td")||e.openElements.inTableScope("th")?(this.closeCell(),e.insertionMode.processStartTag(t,n,r)):e.parseError("unexpected-start-tag",{name:t})},t.inCell.startTagOther=function(e,n,r){t.inBody.processStartTag(e,n,r)},t.inCell.endTagTableCell=function(t){e.openElements.inTableScope(t)?(e.generateImpliedEndTags(t),e.currentStackItem().localName!=t.toLowerCase()?(e.parseError("unexpected-cell-end-tag",{name:t}),e.openElements.popUntilPopped(t)):e.popElement(),e.clearActiveFormattingElements(),e.setInsertionMode("inRow")):e.parseError("unexpected-end-tag",{name:t})},t.inCell.endTagIgnore=function(t){e.parseError("unexpected-end-tag",{name:t})},t.inCell.endTagImply=function(t){e.openElements.inTableScope(t)?(this.closeCell(),e.insertionMode.processEndTag(t)):e.parseError("unexpected-end-tag",{name:t})},t.inCell.endTagOther=function(e){t.inBody.processEndTag(e)},t.inCell.closeCell=function(){e.openElements.inTableScope("td")?this.endTagTableCell("td"):e.openElements.inTableScope("th")&&this.endTagTableCell("th")},t.inColumnGroup=Object.create(t.base),t.inColumnGroup.start_tag_handlers={html:"startTagHtml",col:"startTagCol","-default":"startTagOther"},t.inColumnGroup.end_tag_handlers={colgroup:"endTagColgroup",col:"endTagCol","-default":"endTagOther"},t.inColumnGroup.ignoreEndTagColgroup=function(){return e.currentStackItem().localName=="html"},t.inColumnGroup.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;var r=this.ignoreEndTagColgroup();this.endTagColgroup("colgroup"),r||e.insertionMode.processCharacters(t)},t.inColumnGroup.startTagCol=function(t,n){e.insertSelfClosingElement(t,n)},t.inColumnGroup.startTagOther=function(t,n,r){var i=this.ignoreEndTagColgroup();this.endTagColgroup("colgroup"),i||e.insertionMode.processStartTag(t,n,r)},t.inColumnGroup.endTagColgroup=function(t){this.ignoreEndTagColgroup()?(r.ok(e.context),e.parseError("unexpected-end-tag",{name:t})):(e.popElement(),e.setInsertionMode("inTable"))},t.inColumnGroup.endTagCol=function(t){e.parseError("no-end-tag",{name:"col"})},t.inColumnGroup.endTagOther=function(t){var n=this.ignoreEndTagColgroup();this.endTagColgroup("colgroup"),n||e.insertionMode.processEndTag(t)},t.inForeignContent=Object.create(t.base),t.inForeignContent.processStartTag=function(t,n,r){if(["b","big","blockquote","body","br","center","code","dd","div","dl","dt","em","embed","h1","h2","h3","h4","h5","h6","head","hr","i","img","li","listing","menu","meta","nobr","ol","p","pre","ruby","s","small","span","strong","strike","sub","sup","table","tt","u","ul","var"].indexOf(t)!=-1||t=="font"&&n.some(function(e){return["color","face","size"].indexOf(e.nodeName)>=0})){e.parseError("unexpected-html-element-in-foreign-content",{name:t});while(e.currentStackItem().isForeign()&&!e.currentStackItem().isHtmlIntegrationPoint()&&!e.currentStackItem().isMathMLTextIntegrationPoint())e.openElements.pop();e.insertionMode.processStartTag(t,n,r);return}e.currentStackItem().namespaceURI=="http://www.w3.org/1998/Math/MathML"&&(n=e.adjustMathMLAttributes(n)),e.currentStackItem().namespaceURI=="http://www.w3.org/2000/svg"&&(t=e.adjustSVGTagNameCase(t),n=e.adjustSVGAttributes(n)),n=e.adjustForeignAttributes(n),e.insertForeignElement(t,n,e.currentStackItem().namespaceURI,r)},t.inForeignContent.processEndTag=function(t){var n=e.currentStackItem(),r=e.openElements.length-1;n.localName.toLowerCase()!=t&&e.parseError("unexpected-end-tag",{name:t});for(;;){if(r===0)break;if(n.localName.toLowerCase()==t){while(e.openElements.pop()!=n);break}r-=1,n=e.openElements.item(r);if(n.isForeign())continue;e.insertionMode.processEndTag(t);break}},t.inForeignContent.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\u0000/g,function(t,n){return e.parseError("invalid-codepoint"),"\ufffd"}),e.framesetOk&&!d(n)&&(e.framesetOk=!1),e.insertText(n)},t.inHeadNoscript=Object.create(t.base),t.inHeadNoscript.start_tag_handlers={html:"startTagHtml",basefont:"startTagBasefontBgsoundLinkMetaNoframesStyle",bgsound:"startTagBasefontBgsoundLinkMetaNoframesStyle",link:"startTagBasefontBgsoundLinkMetaNoframesStyle",meta:"startTagBasefontBgsoundLinkMetaNoframesStyle",noframes:"startTagBasefontBgsoundLinkMetaNoframesStyle",style:"startTagBasefontBgsoundLinkMetaNoframesStyle",head:"startTagHeadNoscript",noscript:"startTagHeadNoscript","-default":"startTagOther"},t.inHeadNoscript.end_tag_handlers={noscript:"endTagNoscript",br:"endTagBr","-default":"endTagOther"},t.inHeadNoscript.processCharacters=function(t){var n=t.takeLeadingWhitespace();n&&e.insertText(n);if(!t.length)return;e.parseError("unexpected-char-in-frameset"),this.anythingElse(),e.insertionMode.processCharacters(t)},t.inHeadNoscript.processComment=function(e){t.inHead.processComment(e)},t.inHeadNoscript.startTagBasefontBgsoundLinkMetaNoframesStyle=function(e,n){t.inHead.processStartTag(e,n)},t.inHeadNoscript.startTagHeadNoscript=function(t,n){e.parseError("unexpected-start-tag-in-frameset",{name:t})},t.inHeadNoscript.startTagOther=function(t,n){e.parseError("unexpected-start-tag-in-frameset",{name:t}),this.anythingElse(),e.insertionMode.processStartTag(t,n)},t.inHeadNoscript.endTagBr=function(t,n){e.parseError("unexpected-end-tag-in-frameset",{name:t}),this.anythingElse(),e.insertionMode.processEndTag(t,n)},t.inHeadNoscript.endTagNoscript=function(t,n){e.popElement(),e.setInsertionMode("inHead")},t.inHeadNoscript.endTagOther=function(t,n){e.parseError("unexpected-end-tag-in-frameset",{name:t})},t.inHeadNoscript.anythingElse=function(){e.popElement(),e.setInsertionMode("inHead")},t.inFrameset=Object.create(t.base),t.inFrameset.start_tag_handlers={html:"startTagHtml",frameset:"startTagFrameset",frame:"startTagFrame",noframes:"startTagNoframes","-default":"startTagOther"},t.inFrameset.end_tag_handlers={frameset:"endTagFrameset",noframes:"endTagNoframes","-default":"endTagOther"},t.inFrameset.processCharacters=function(t){e.parseError("unexpected-char-in-frameset")},t.inFrameset.startTagFrameset=function(t,n){e.insertElement(t,n)},t.inFrameset.startTagFrame=function(t,n){e.insertSelfClosingElement(t,n)},t.inFrameset.startTagNoframes=function(e,n){t.inBody.processStartTag(e,n)},t.inFrameset.startTagOther=function(t,n){e.parseError("unexpected-start-tag-in-frameset",{name:t})},t.inFrameset.endTagFrameset=function(t,n){e.currentStackItem().localName=="html"?e.parseError("unexpected-frameset-in-frameset-innerhtml"):e.popElement(),!e.context&&e.currentStackItem().localName!="frameset"&&e.setInsertionMode("afterFrameset")},t.inFrameset.endTagNoframes=function(e){t.inBody.processEndTag(e)},t.inFrameset.endTagOther=function(t){e.parseError("unexpected-end-tag-in-frameset",{name:t})},t.inTable=Object.create(t.base),t.inTable.start_tag_handlers={html:"startTagHtml",caption:"startTagCaption",colgroup:"startTagColgroup",col:"startTagCol",table:"startTagTable",tbody:"startTagRowGroup",tfoot:"startTagRowGroup",thead:"startTagRowGroup",td:"startTagImplyTbody",th:"startTagImplyTbody",tr:"startTagImplyTbody",style:"startTagStyleScript",script:"startTagStyleScript",input:"startTagInput",form:"startTagForm","-default":"startTagOther"},t.inTable.end_tag_handlers={table:"endTagTable",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",tbody:"endTagIgnore",td:"endTagIgnore",tfoot:"endTagIgnore",th:"endTagIgnore",thead:"endTagIgnore",tr:"endTagIgnore","-default":"endTagOther"},t.inTable.processCharacters=function(n){if(e.currentStackItem().isFosterParenting()){var r=e.insertionModeName;e.setInsertionMode("inTableText"),e.originalInsertionMode=r,e.insertionMode.processCharacters(n)}else e.redirectAttachToFosterParent=!0,t.inBody.processCharacters(n),e.redirectAttachToFosterParent=!1},t.inTable.startTagCaption=function(t,n){e.openElements.popUntilTableScopeMarker(),e.activeFormattingElements.push(l),e.insertElement(t,n),e.setInsertionMode("inCaption")},t.inTable.startTagColgroup=function(t,n){e.openElements.popUntilTableScopeMarker(),e.insertElement(t,n),e.setInsertionMode("inColumnGroup")},t.inTable.startTagCol=function(t,n){this.startTagColgroup("colgroup",[]),e.insertionMode.processStartTag(t,n)},t.inTable.startTagRowGroup=function(t,n){e.openElements.popUntilTableScopeMarker(),e.insertElement(t,n),e.setInsertionMode("inTableBody")},t.inTable.startTagImplyTbody=function(t,n){this.startTagRowGroup("tbody",[]),e.insertionMode.processStartTag(t,n)},t.inTable.startTagTable=function(t,n){e.parseError("unexpected-start-tag-implies-end-tag",{startName:"table",endName:"table"}),e.insertionMode.processEndTag("table"),e.context||e.insertionMode.processStartTag(t,n)},t.inTable.startTagStyleScript=function(e,n){t.inHead.processStartTag(e,n)},t.inTable.startTagInput=function(t,n){for(var r in n)if(n[r].nodeName.toLowerCase()=="type"){if(n[r].nodeValue.toLowerCase()=="hidden"){e.parseError("unexpected-hidden-input-in-table"),e.insertElement(t,n),e.openElements.pop();return}break}this.startTagOther(t,n)},t.inTable.startTagForm=function(t,n){e.parseError("unexpected-form-in-table"),e.form||(e.insertElement(t,n),e.form=e.currentStackItem(),e.openElements.pop())},t.inTable.startTagOther=function(n,r,i){e.parseError("unexpected-start-tag-implies-table-voodoo",{name:n}),e.redirectAttachToFosterParent=!0,t.inBody.processStartTag(n,r,i),e.redirectAttachToFosterParent=!1},t.inTable.endTagTable=function(t){e.openElements.inTableScope(t)?(e.generateImpliedEndTags(),e.currentStackItem().localName!=t&&e.parseError("end-tag-too-early-named",{gotName:"table",expectedName:e.currentStackItem().localName}),e.openElements.popUntilPopped("table"),e.resetInsertionMode()):(r.ok(e.context),e.parseError("unexpected-end-tag",{name:t}))},t.inTable.endTagIgnore=function(t){e.parseError("unexpected-end-tag",{name:t})},t.inTable.endTagOther=function(n){e.parseError("unexpected-end-tag-implies-table-voodoo",{name:n}),e.redirectAttachToFosterParent=!0,t.inBody.processEndTag(n),e.redirectAttachToFosterParent=!1},t.inTableText=Object.create(t.base),t.inTableText.flushCharacters=function(){var t=e.pendingTableCharacters.join("");p(t)?e.insertText(t):(e.redirectAttachToFosterParent=!0,e.reconstructActiveFormattingElements(),e.insertText(t),e.framesetOk=!1,e.redirectAttachToFosterParent=!1),e.pendingTableCharacters=[]},t.inTableText.processComment=function(t){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processComment(t)},t.inTableText.processEOF=function(t){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processEOF()},t.inTableText.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\u0000/g,function(t,n){return e.parseError("invalid-codepoint"),""});if(!n)return;e.pendingTableCharacters.push(n)},t.inTableText.processStartTag=function(t,n,r){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processStartTag(t,n,r)},t.inTableText.processEndTag=function(t,n){this.flushCharacters(),e.setInsertionMode(e.originalInsertionMode),e.insertionMode.processEndTag(t,n)},t.inTableBody=Object.create(t.base),t.inTableBody.start_tag_handlers={html:"startTagHtml",tr:"startTagTr",td:"startTagTableCell",th:"startTagTableCell",caption:"startTagTableOther",col:"startTagTableOther",colgroup:"startTagTableOther",tbody:"startTagTableOther",tfoot:"startTagTableOther",thead:"startTagTableOther","-default":"startTagOther"},t.inTableBody.end_tag_handlers={table:"endTagTable",tbody:"endTagTableRowGroup",tfoot:"endTagTableRowGroup",thead:"endTagTableRowGroup",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",td:"endTagIgnore",th:"endTagIgnore",tr:"endTagIgnore","-default":"endTagOther"},t.inTableBody.processCharacters=function(e){t.inTable.processCharacters(e)},t.inTableBody.startTagTr=function(t,n){e.openElements.popUntilTableBodyScopeMarker(),e.insertElement(t,n),e.setInsertionMode("inRow")},t.inTableBody.startTagTableCell=function(t,n){e.parseError("unexpected-cell-in-table-body",{name:t}),this.startTagTr("tr",[]),e.insertionMode.processStartTag(t,n)},t.inTableBody.startTagTableOther=function(t,n){e.openElements.inTableScope("tbody")||e.openElements.inTableScope("thead")||e.openElements.inTableScope("tfoot")?(e.openElements.popUntilTableBodyScopeMarker(),this.endTagTableRowGroup(e.currentStackItem().localName),e.insertionMode.processStartTag(t,n)):e.parseError("unexpected-start-tag",{name:t})},t.inTableBody.startTagOther=function(e,n){t.inTable.processStartTag(e,n)},t.inTableBody.endTagTableRowGroup=function(t){e.openElements.inTableScope(t)?(e.openElements.popUntilTableBodyScopeMarker(),e.popElement(),e.setInsertionMode("inTable")):e.parseError("unexpected-end-tag-in-table-body",{name:t})},t.inTableBody.endTagTable=function(t){e.openElements.inTableScope("tbody")||e.openElements.inTableScope("thead")||e.openElements.inTableScope("tfoot")?(e.openElements.popUntilTableBodyScopeMarker(),this.endTagTableRowGroup(e.currentStackItem().localName),e.insertionMode.processEndTag(t)):e.parseError("unexpected-end-tag",{name:t})},t.inTableBody.endTagIgnore=function(t){e.parseError("unexpected-end-tag-in-table-body",{name:t})},t.inTableBody.endTagOther=function(e){t.inTable.processEndTag(e)},t.inSelect=Object.create(t.base),t.inSelect.start_tag_handlers={html:"startTagHtml",option:"startTagOption",optgroup:"startTagOptgroup",select:"startTagSelect",input:"startTagInput",keygen:"startTagInput",textarea:"startTagInput",script:"startTagScript","-default":"startTagOther"},t.inSelect.end_tag_handlers={option:"endTagOption",optgroup:"endTagOptgroup",select:"endTagSelect",caption:"endTagTableElements",table:"endTagTableElements",tbody:"endTagTableElements",tfoot:"endTagTableElements",thead:"endTagTableElements",tr:"endTagTableElements",td:"endTagTableElements",th:"endTagTableElements","-default":"endTagOther"},t.inSelect.processCharacters=function(t){var n=t.takeRemaining();n=n.replace(/\u0000/g,function(t,n){return e.parseError("invalid-codepoint"),""});if(!n)return;e.insertText(n)},t.inSelect.startTagOption=function(t,n){e.currentStackItem().localName=="option"&&e.popElement(),e.insertElement(t,n)},t.inSelect.startTagOptgroup=function(t,n){e.currentStackItem().localName=="option"&&e.popElement(),e.currentStackItem().localName=="optgroup"&&e.popElement(),e.insertElement(t,n)},t.inSelect.endTagOption=function(t){if(e.currentStackItem().localName!=="option"){e.parseError("unexpected-end-tag-in-select",{name:t});return}e.popElement()},t.inSelect.endTagOptgroup=function(t){e.currentStackItem().localName=="option"&&e.openElements.item(e.openElements.length-2).localName=="optgroup"&&e.popElement(),e.currentStackItem().localName=="optgroup"?e.popElement():e.parseError("unexpected-end-tag-in-select",{name:"optgroup"})},t.inSelect.startTagSelect=function(t){e.parseError("unexpected-select-in-select"),this.endTagSelect("select")},t.inSelect.endTagSelect=function(t){e.openElements.inTableScope("select")?(e.openElements.popUntilPopped("select"),e.resetInsertionMode()):e.parseError("unexpected-end-tag",{name:t})},t.inSelect.startTagInput=function(t,n){e.parseError("unexpected-input-in-select"),e.openElements.inSelectScope("select")&&(this.endTagSelect("select"),e.insertionMode.processStartTag(t,n))},t.inSelect.startTagScript=function(e,n){t.inHead.processStartTag(e,n)},t.inSelect.endTagTableElements=function(t){e.parseError("unexpected-end-tag-in-select",{name:t}),e.openElements.inTableScope(t)&&(this.endTagSelect("select"),e.insertionMode.processEndTag(t))},t.inSelect.startTagOther=function(t,n){e.parseError("unexpected-start-tag-in-select",{name:t})},t.inSelect.endTagOther=function(t){e.parseError("unexpected-end-tag-in-select",{name:t})},t.inSelectInTable=Object.create(t.base),t.inSelectInTable.start_tag_handlers={caption:"startTagTable",table:"startTagTable",tbody:"startTagTable",tfoot:"startTagTable",thead:"startTagTable",tr:"startTagTable",td:"startTagTable",th:"startTagTable","-default":"startTagOther"},t.inSelectInTable.end_tag_handlers={caption:"endTagTable",table:"endTagTable",tbody:"endTagTable",tfoot:"endTagTable",thead:"endTagTable",tr:"endTagTable",td:"endTagTable",th:"endTagTable","-default":"endTagOther"},t.inSelectInTable.processCharacters=function(e){t.inSelect.processCharacters(e)},t.inSelectInTable.startTagTable=function(t,n){e.parseError("unexpected-table-element-start-tag-in-select-in-table",{name:t}),this.endTagOther("select"),e.insertionMode.processStartTag(t,n)},t.inSelectInTable.startTagOther=function(e,n,r){t.inSelect.processStartTag(e,n,r)},t.inSelectInTable.endTagTable=function(t){e.parseError("unexpected-table-element-end-tag-in-select-in-table",{name:t}),e.openElements.inTableScope(t)&&(this.endTagOther("select"),e.insertionMode.processEndTag(t))},t.inSelectInTable.endTagOther=function(e){t.inSelect.processEndTag(e)},t.inRow=Object.create(t.base),t.inRow.start_tag_handlers={html:"startTagHtml",td:"startTagTableCell",th:"startTagTableCell",caption:"startTagTableOther",col:"startTagTableOther",colgroup:"startTagTableOther",tbody:"startTagTableOther",tfoot:"startTagTableOther",thead:"startTagTableOther",tr:"startTagTableOther","-default":"startTagOther"},t.inRow.end_tag_handlers={tr:"endTagTr",table:"endTagTable",tbody:"endTagTableRowGroup",tfoot:"endTagTableRowGroup",thead:"endTagTableRowGroup",body:"endTagIgnore",caption:"endTagIgnore",col:"endTagIgnore",colgroup:"endTagIgnore",html:"endTagIgnore",td:"endTagIgnore",th:"endTagIgnore","-default":"endTagOther"},t.inRow.processCharacters=function(e){t.inTable.processCharacters(e)},t.inRow.startTagTableCell=function(t,n){e.openElements.popUntilTableRowScopeMarker(),e.insertElement(t,n),e.setInsertionMode("inCell"),e.activeFormattingElements.push(l)},t.inRow.startTagTableOther=function(t,n){var r=this.ignoreEndTagTr();this.endTagTr("tr"),r||e.insertionMode.processStartTag(t,n)},t.inRow.startTagOther=function(e,n,r){t.inTable.processStartTag(e,n,r)},t.inRow.endTagTr=function(t){this.ignoreEndTagTr()?(r.ok(e.context),e.parseError("unexpected-end-tag",{name:t})):(e.openElements.popUntilTableRowScopeMarker(),e.popElement(),e.setInsertionMode("inTableBody"))},t.inRow.endTagTable=function(t){var n=this.ignoreEndTagTr();this.endTagTr("tr"),n||e.insertionMode.processEndTag(t)},t.inRow.endTagTableRowGroup=function(t){e.openElements.inTableScope(t)?(this.endTagTr("tr"),e.insertionMode.processEndTag(t)):e.parseError("unexpected-end-tag",{name:t})},t.inRow.endTagIgnore=function(t){e.parseError("unexpected-end-tag-in-table-row",{name:t})},t.inRow.endTagOther=function(e){t.inTable.processEndTag(e)},t.inRow.ignoreEndTagTr=function(){return!e.openElements.inTableScope("tr")},t.afterAfterFrameset=Object.create(t.base),t.afterAfterFrameset.start_tag_handlers={html:"startTagHtml",noframes:"startTagNoFrames","-default":"startTagOther"},t.afterAfterFrameset.processEOF=function(){},t.afterAfterFrameset.processComment=function(t){e.insertComment(t,e.document)},t.afterAfterFrameset.processCharacters=function(t){var n=t.takeRemaining(),r="";for(var i=0;i0&&this.currentStackItem().isForeign()},g.prototype.isSelfClosingFlagAcknowledged=function(){return this.selfClosingFlagAcknowledged},g.prototype.createElement=function(e,t,n){throw new Error("Not implemented")},g.prototype.attachNode=function(e,t){throw new Error("Not implemented")},g.prototype.attachNodeToFosterParent=function(e,t,n){throw new Error("Not implemented")},g.prototype.detachFromParent=function(e){throw new Error("Not implemented")},g.prototype.addAttributesToElement=function(e,t){throw new Error("Not implemented")},g.prototype.insertHtmlElement=function(e){var t=this.createElement("http://www.w3.org/1999/xhtml","html",e);return this.attachNode(t,this.document),this.openElements.pushHtmlElement(new f("http://www.w3.org/1999/xhtml","html",e,t)),t},g.prototype.insertHeadElement=function(e){var t=this.createElement("http://www.w3.org/1999/xhtml","head",e);return this.head=new f("http://www.w3.org/1999/xhtml","head",e,t),this.attachNode(t,this.openElements.top.node),this.openElements.pushHeadElement(this.head),t},g.prototype.insertBodyElement=function(e){var t=this.createElement("http://www.w3.org/1999/xhtml","body",e);return this.attachNode(t,this.openElements.top.node),this.openElements.pushBodyElement(new f("http://www.w3.org/1999/xhtml","body",e,t)),t},g.prototype.insertIntoFosterParent=function(e){var t=this.openElements.findIndex("table"),n=this.openElements.item(t).node;if(t===0)return this.attachNode(e,n);this.attachNodeToFosterParent(e,n,this.openElements.item(t-1).node)},g.prototype.insertElement=function(e,t,n,r){n||(n="http://www.w3.org/1999/xhtml");var i=this.createElement(n,e,t);this.shouldFosterParent()?this.insertIntoFosterParent(i):this.attachNode(i,this.openElements.top.node),r||this.openElements.push(new f(n,e,t,i))},g.prototype.insertFormattingElement=function(e,t){this.insertElement(e,t,"http://www.w3.org/1999/xhtml"),this.appendElementToActiveFormattingElements(this.currentStackItem())},g.prototype.insertSelfClosingElement=function(e,t){this.selfClosingFlagAcknowledged=!0,this.insertElement(e,t,"http://www.w3.org/1999/xhtml",!0)},g.prototype.insertForeignElement=function(e,t,n,r){r&&(this.selfClosingFlagAcknowledged=!0),this.insertElement(e,t,n,r)},g.prototype.insertComment=function(e,t){throw new Error("Not implemented")},g.prototype.insertDoctype=function(e,t,n){throw new Error("Not implemented")},g.prototype.insertText=function(e){throw new Error("Not implemented")},g.prototype.currentStackItem=function(){return this.openElements.top},g.prototype.popElement=function(){return this.openElements.pop()},g.prototype.shouldFosterParent=function(){return this.redirectAttachToFosterParent&&this.currentStackItem().isFosterParenting()},g.prototype.generateImpliedEndTags=function(e){var t=this.openElements.top.localName;["dd","dt","li","option","optgroup","p","rp","rt"].indexOf(t)!=-1&&t!=e&&(this.popElement(),this.generateImpliedEndTags(e))},g.prototype.reconstructActiveFormattingElements=function(){if(this.activeFormattingElements.length===0)return;var e=this.activeFormattingElements.length-1,t=this.activeFormattingElements[e];if(t==l||this.openElements.contains(t))return;while(t!=l&&!this.openElements.contains(t)){e-=1,t=this.activeFormattingElements[e];if(!t)break}for(;;){e+=1,t=this.activeFormattingElements[e],this.insertElement(t.localName,t.attributes);var n=this.currentStackItem();this.activeFormattingElements[e]=n;if(n==this.activeFormattingElements[this.activeFormattingElements.length-1])break}},g.prototype.ensureNoahsArkCondition=function(e){var t=3;if(this.activeFormattingElements.length=0;i--){var s=this.activeFormattingElements[i];if(s===l)break;if(e.localName!==s.localName||e.namespaceURI!==s.namespaceURI)continue;if(s.attributes.length!=r)continue;n.push(s)}if(n.length=0&&this.activeFormattingElements.splice(t,1)},g.prototype.elementInActiveFormattingElements=function(e){var t=this.activeFormattingElements;for(var n=t.length-1;n>=0;n--){if(t[n]==l)break;if(t[n].localName==e)return t[n]}return!1},g.prototype.clearActiveFormattingElements=function(){while(this.activeFormattingElements.length!==0&&this.activeFormattingElements.pop()!=l);},g.prototype.reparentChildren=function(e,t){throw new Error("Not implemented")},g.prototype.setFragmentContext=function(e){this.context=e},g.prototype.parseError=function(e,t){if(!this.errorHandler)return;var n=y(i[e],t);this.errorHandler.error(n,this.tokenizer._inputStream.location(),e)},g.prototype.resetInsertionMode=function(){var e=!1,t=null;for(var n=this.openElements.length-1;n>=0;n--){t=this.openElements.item(n),n===0&&(r.ok(this.context),e=!0,t=new f("http://www.w3.org/1999/xhtml",this.context,[],null));if(t.namespaceURI==="http://www.w3.org/1999/xhtml"){if(t.localName==="select")return this.setInsertionMode("inSelect");if(t.localName==="td"||t.localName==="th")return this.setInsertionMode("inCell");if(t.localName==="tr")return this.setInsertionMode("inRow");if(t.localName==="tbody"||t.localName==="thead"||t.localName==="tfoot")return this.setInsertionMode("inTableBody");if(t.localName==="caption")return this.setInsertionMode("inCaption");if(t.localName==="colgroup")return this.setInsertionMode("inColumnGroup");if(t.localName==="table")return this.setInsertionMode("inTable");if(t.localName==="head")return this.setInsertionMode("inHead");if(t.localName==="body")return this.setInsertionMode("inBody");if(t.localName==="frameset")return this.setInsertionMode("inFrameset");if(t.localName==="html")return this.openElements.headElement?this.setInsertionMode("afterHead"):this.setInsertionMode("beforeHead")}if(e)return this.setInsertionMode("inBody")}},g.prototype.processGenericRCDATAStartTag=function(e,t){this.insertElement(e,t),this.tokenizer.setState(u.RCDATA),this.originalInsertionMode=this.insertionModeName,this.setInsertionMode("text")},g.prototype.processGenericRawTextStartTag=function(e,t){this.insertElement(e,t),this.tokenizer.setState(u.RAWTEXT),this.originalInsertionMode=this.insertionModeName,this.setInsertionMode("text")},g.prototype.adjustMathMLAttributes=function(e){return e.forEach(function(e){e.namespaceURI="http://www.w3.org/1998/Math/MathML",s.MATHMLAttributeMap[e.nodeName]&&(e.nodeName=s.MATHMLAttributeMap[e.nodeName])}),e},g.prototype.adjustSVGTagNameCase=function(e){return s.SVGTagMap[e]||e},g.prototype.adjustSVGAttributes=function(e){return e.forEach(function(e){e.namespaceURI="http://www.w3.org/2000/svg",s.SVGAttributeMap[e.nodeName]&&(e.nodeName=s.SVGAttributeMap[e.nodeName])}),e},g.prototype.adjustForeignAttributes=function(e){for(var t=0;t' instead.","expected-tag-name-but-got-question-mark":"Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.)","expected-tag-name":"Expected tag name. Got something else instead.","expected-closing-tag-but-got-right-bracket":"Expected closing tag. Got '>' instead. Ignoring ''.","expected-closing-tag-but-got-eof":"Expected closing tag. Unexpected end of file.","expected-closing-tag-but-got-char":"Expected closing tag. Unexpected character '{data}' found.","eof-in-tag-name":"Unexpected end of file in the tag name.","expected-attribute-name-but-got-eof":"Unexpected end of file. Expected attribute name instead.","eof-in-attribute-name":"Unexpected end of file in attribute name.","invalid-character-in-attribute-name":"Invalid character in attribute name.","duplicate-attribute":"Dropped duplicate attribute '{name}' on tag.","expected-end-of-tag-but-got-eof":"Unexpected end of file. Expected = or end of tag.","expected-attribute-value-but-got-eof":"Unexpected end of file. Expected attribute value.","expected-attribute-value-but-got-right-bracket":"Expected attribute value. Got '>' instead.","unexpected-character-in-unquoted-attribute-value":"Unexpected character in unquoted attribute","invalid-character-after-attribute-name":"Unexpected character after attribute name.","unexpected-character-after-attribute-value":"Unexpected character after attribute value.","eof-in-attribute-value-double-quote":'Unexpected end of file in attribute value (").',"eof-in-attribute-value-single-quote":"Unexpected end of file in attribute value (').","eof-in-attribute-value-no-quotes":"Unexpected end of file in attribute value.","eof-after-attribute-value":"Unexpected end of file after attribute value.","unexpected-eof-after-solidus-in-tag":"Unexpected end of file in tag. Expected >.","unexpected-character-after-solidus-in-tag":"Unexpected character after / in tag. Expected >.","expected-dashes-or-doctype":"Expected '--' or 'DOCTYPE'. Not found.","unexpected-bang-after-double-dash-in-comment":"Unexpected ! after -- in comment.","incorrect-comment":"Incorrect comment.","eof-in-comment":"Unexpected end of file in comment.","eof-in-comment-end-dash":"Unexpected end of file in comment (-).","unexpected-dash-after-double-dash-in-comment":"Unexpected '-' after '--' found in comment.","eof-in-comment-double-dash":"Unexpected end of file in comment (--).","eof-in-comment-end-bang-state":"Unexpected end of file in comment.","unexpected-char-in-comment":"Unexpected character in comment found.","need-space-after-doctype":"No space after literal string 'DOCTYPE'.","expected-doctype-name-but-got-right-bracket":"Unexpected > character. Expected DOCTYPE name.","expected-doctype-name-but-got-eof":"Unexpected end of file. Expected DOCTYPE name.","eof-in-doctype-name":"Unexpected end of file in DOCTYPE name.","eof-in-doctype":"Unexpected end of file in DOCTYPE.","expected-space-or-right-bracket-in-doctype":"Expected space or '>'. Got '{data}'.","unexpected-end-of-doctype":"Unexpected end of DOCTYPE.","unexpected-char-in-doctype":"Unexpected character in DOCTYPE.","eof-in-bogus-doctype":"Unexpected end of file in bogus doctype.","eof-in-innerhtml":"Unexpected EOF in inner html mode.","unexpected-doctype":"Unexpected DOCTYPE. Ignored.","non-html-root":"html needs to be the first start tag.","expected-doctype-but-got-eof":"Unexpected End of file. Expected DOCTYPE.","unknown-doctype":"Erroneous DOCTYPE. Expected .","quirky-doctype":"Quirky doctype. Expected .","almost-standards-doctype":"Almost standards mode doctype. Expected .","obsolete-doctype":"Obsolete doctype. Expected .","expected-doctype-but-got-chars":"Non-space characters found without seeing a doctype first. Expected e.g. .","expected-doctype-but-got-start-tag":"Start tag seen without seeing a doctype first. Expected e.g. .","expected-doctype-but-got-end-tag":"End tag seen without seeing a doctype first. Expected e.g. .","end-tag-after-implied-root":"Unexpected end tag ({name}) after the (implied) root element.","expected-named-closing-tag-but-got-eof":"Unexpected end of file. Expected end tag ({name}).","two-heads-are-not-better-than-one":"Unexpected start tag head in existing head. Ignored.","unexpected-end-tag":"Unexpected end tag ({name}). Ignored.","unexpected-implied-end-tag":"End tag {name} implied, but there were open elements.","unexpected-start-tag-out-of-my-head":"Unexpected start tag ({name}) that can be in head. Moved.","unexpected-start-tag":"Unexpected start tag ({name}).","missing-end-tag":"Missing end tag ({name}).","missing-end-tags":"Missing end tags ({name}).","unexpected-start-tag-implies-end-tag":"Unexpected start tag ({startName}) implies end tag ({endName}).","unexpected-start-tag-treated-as":"Unexpected start tag ({originalName}). Treated as {newName}.","deprecated-tag":"Unexpected start tag {name}. Don't use it!","unexpected-start-tag-ignored":"Unexpected start tag {name}. Ignored.","expected-one-end-tag-but-got-another":"Unexpected end tag ({gotName}). Missing end tag ({expectedName}).","end-tag-too-early":"End tag ({name}) seen too early. Expected other end tag.","end-tag-too-early-named":"Unexpected end tag ({gotName}). Expected end tag ({expectedName}.","end-tag-too-early-ignored":"End tag ({name}) seen too early. Ignored.","adoption-agency-1.1":"End tag ({name}) violates step 1, paragraph 1 of the adoption agency algorithm.","adoption-agency-1.2":"End tag ({name}) violates step 1, paragraph 2 of the adoption agency algorithm.","adoption-agency-1.3":"End tag ({name}) violates step 1, paragraph 3 of the adoption agency algorithm.","adoption-agency-4.4":"End tag ({name}) violates step 4, paragraph 4 of the adoption agency algorithm.","unexpected-end-tag-treated-as":"Unexpected end tag ({originalName}). Treated as {newName}.","no-end-tag":"This element ({name}) has no end tag.","unexpected-implied-end-tag-in-table":"Unexpected implied end tag ({name}) in the table phase.","unexpected-implied-end-tag-in-table-body":"Unexpected implied end tag ({name}) in the table body phase.","unexpected-char-implies-table-voodoo":"Unexpected non-space characters in table context caused voodoo mode.","unexpected-hidden-input-in-table":"Unexpected input with type hidden in table context.","unexpected-form-in-table":"Unexpected form in table context.","unexpected-start-tag-implies-table-voodoo":"Unexpected start tag ({name}) in table context caused voodoo mode.","unexpected-end-tag-implies-table-voodoo":"Unexpected end tag ({name}) in table context caused voodoo mode.","unexpected-cell-in-table-body":"Unexpected table cell start tag ({name}) in the table body phase.","unexpected-cell-end-tag":"Got table cell end tag ({name}) while required end tags are missing.","unexpected-end-tag-in-table-body":"Unexpected end tag ({name}) in the table body phase. Ignored.","unexpected-implied-end-tag-in-table-row":"Unexpected implied end tag ({name}) in the table row phase.","unexpected-end-tag-in-table-row":"Unexpected end tag ({name}) in the table row phase. Ignored.","unexpected-select-in-select":"Unexpected select start tag in the select phase treated as select end tag.","unexpected-input-in-select":"Unexpected input start tag in the select phase.","unexpected-start-tag-in-select":"Unexpected start tag token ({name}) in the select phase. Ignored.","unexpected-end-tag-in-select":"Unexpected end tag ({name}) in the select phase. Ignored.","unexpected-table-element-start-tag-in-select-in-table":"Unexpected table element start tag ({name}) in the select in table phase.","unexpected-table-element-end-tag-in-select-in-table":"Unexpected table element end tag ({name}) in the select in table phase.","unexpected-char-after-body":"Unexpected non-space characters in the after body phase.","unexpected-start-tag-after-body":"Unexpected start tag token ({name}) in the after body phase.","unexpected-end-tag-after-body":"Unexpected end tag token ({name}) in the after body phase.","unexpected-char-in-frameset":"Unepxected characters in the frameset phase. Characters ignored.","unexpected-start-tag-in-frameset":"Unexpected start tag token ({name}) in the frameset phase. Ignored.","unexpected-frameset-in-frameset-innerhtml":"Unexpected end tag token (frameset in the frameset phase (innerHTML).","unexpected-end-tag-in-frameset":"Unexpected end tag token ({name}) in the frameset phase. Ignored.","unexpected-char-after-frameset":"Unexpected non-space characters in the after frameset phase. Ignored.","unexpected-start-tag-after-frameset":"Unexpected start tag ({name}) in the after frameset phase. Ignored.","unexpected-end-tag-after-frameset":"Unexpected end tag ({name}) in the after frameset phase. Ignored.","expected-eof-but-got-char":"Unexpected non-space characters. Expected end of file.","expected-eof-but-got-start-tag":"Unexpected start tag ({name}). Expected end of file.","expected-eof-but-got-end-tag":"Unexpected end tag ({name}). Expected end of file.","unexpected-end-table-in-caption":"Unexpected end table tag in caption. Generates implied end caption.","end-html-in-innerhtml":"Unexpected html end tag in inner html mode.","eof-in-table":"Unexpected end of file. Expected table content.","eof-in-script":"Unexpected end of file. Expected script content.","non-void-element-with-trailing-solidus":"Trailing solidus not allowed on element {name}.","unexpected-html-element-in-foreign-content":'HTML start tag "{name}" in a foreign namespace context.',"unexpected-start-tag-in-table":"Unexpected {name}. Expected table content."}},{}],9:[function(e,t,n){function o(){this.contentHandler=null,this._errorHandler=null,this._treeBuilder=new r,this._tokenizer=new i(this._treeBuilder),this._scriptingEnabled=!1}var r=e("./SAXTreeBuilder").SAXTreeBuilder,i=e("../Tokenizer").Tokenizer,s=e("./TreeParser").TreeParser;o.prototype.parse=function(e,t){t&&this._treeBuilder.setFragmentContext(t),this._tokenizer.tokenize(e);var n=this._treeBuilder.document;n&&(new s(this.contentHandler)).parse(n)},o.prototype.parseFragment=function(e,t){this._treeBuilder.setFragmentContext(t),this._tokenizer.tokenize(e);var n=this._treeBuilder.getFragment();n&&(new s(this.contentHandler)).parse(n)},Object.defineProperty(o.prototype,"scriptingEnabled",{get:function(){return this._scriptingEnabled},set:function(e){this._scriptingEnabled=e,this._treeBuilder.scriptingEnabled=e}}),Object.defineProperty(o.prototype,"errorHandler",{get:function(){return this._errorHandler},set:function(e){this._errorHandler=e,this._treeBuilder.errorHandler=e}}),n.SAXParser=o},{"../Tokenizer":5,"./SAXTreeBuilder":10,"./TreeParser":11}],10:[function(e,t,n){function s(){i.call(this)}function o(e,t){for(var n=0;n",gt:">","GT;":">",GT:">","Gt;":"\u226b","gtdot;":"\u22d7","gtlPar;":"\u2995","gtquest;":"\u2a7c","gtrapprox;":"\u2a86","gtrarr;":"\u2978","gtrdot;":"\u22d7","gtreqless;":"\u22db","gtreqqless;":"\u2a8c","gtrless;":"\u2277","gtrsim;":"\u2273","gvertneqq;":"\u2269\ufe00","gvnE;":"\u2269\ufe00","Hacek;":"\u02c7","hairsp;":"\u200a","half;":"\u00bd","hamilt;":"\u210b","HARDcy;":"\u042a","hardcy;":"\u044a","harrcir;":"\u2948","harr;":"\u2194","hArr;":"\u21d4","harrw;":"\u21ad","Hat;":"^","hbar;":"\u210f","Hcirc;":"\u0124","hcirc;":"\u0125","hearts;":"\u2665","heartsuit;":"\u2665","hellip;":"\u2026","hercon;":"\u22b9","hfr;":"\ud835\udd25","Hfr;":"\u210c","HilbertSpace;":"\u210b","hksearow;":"\u2925","hkswarow;":"\u2926","hoarr;":"\u21ff","homtht;":"\u223b","hookleftarrow;":"\u21a9","hookrightarrow;":"\u21aa","hopf;":"\ud835\udd59","Hopf;":"\u210d","horbar;":"\u2015","HorizontalLine;":"\u2500","hscr;":"\ud835\udcbd","Hscr;":"\u210b","hslash;":"\u210f","Hstrok;":"\u0126","hstrok;":"\u0127","HumpDownHump;":"\u224e","HumpEqual;":"\u224f","hybull;":"\u2043","hyphen;":"\u2010","Iacute;":"\u00cd",Iacute:"\u00cd","iacute;":"\u00ed",iacute:"\u00ed","ic;":"\u2063","Icirc;":"\u00ce",Icirc:"\u00ce","icirc;":"\u00ee",icirc:"\u00ee","Icy;":"\u0418","icy;":"\u0438","Idot;":"\u0130","IEcy;":"\u0415","iecy;":"\u0435","iexcl;":"\u00a1",iexcl:"\u00a1","iff;":"\u21d4","ifr;":"\ud835\udd26","Ifr;":"\u2111","Igrave;":"\u00cc",Igrave:"\u00cc","igrave;":"\u00ec",igrave:"\u00ec","ii;":"\u2148","iiiint;":"\u2a0c","iiint;":"\u222d","iinfin;":"\u29dc","iiota;":"\u2129","IJlig;":"\u0132","ijlig;":"\u0133","Imacr;":"\u012a","imacr;":"\u012b","image;":"\u2111","ImaginaryI;":"\u2148","imagline;":"\u2110","imagpart;":"\u2111","imath;":"\u0131","Im;":"\u2111","imof;":"\u22b7","imped;":"\u01b5","Implies;":"\u21d2","incare;":"\u2105","in;":"\u2208","infin;":"\u221e","infintie;":"\u29dd","inodot;":"\u0131","intcal;":"\u22ba","int;":"\u222b","Int;":"\u222c","integers;":"\u2124","Integral;":"\u222b","intercal;":"\u22ba","Intersection;":"\u22c2","intlarhk;":"\u2a17","intprod;":"\u2a3c","InvisibleComma;":"\u2063","InvisibleTimes;":"\u2062","IOcy;":"\u0401","iocy;":"\u0451","Iogon;":"\u012e","iogon;":"\u012f","Iopf;":"\ud835\udd40","iopf;":"\ud835\udd5a","Iota;":"\u0399","iota;":"\u03b9","iprod;":"\u2a3c","iquest;":"\u00bf",iquest:"\u00bf","iscr;":"\ud835\udcbe","Iscr;":"\u2110","isin;":"\u2208","isindot;":"\u22f5","isinE;":"\u22f9","isins;":"\u22f4","isinsv;":"\u22f3","isinv;":"\u2208","it;":"\u2062","Itilde;":"\u0128","itilde;":"\u0129","Iukcy;":"\u0406","iukcy;":"\u0456","Iuml;":"\u00cf",Iuml:"\u00cf","iuml;":"\u00ef",iuml:"\u00ef","Jcirc;":"\u0134","jcirc;":"\u0135","Jcy;":"\u0419","jcy;":"\u0439","Jfr;":"\ud835\udd0d","jfr;":"\ud835\udd27","jmath;":"\u0237","Jopf;":"\ud835\udd41","jopf;":"\ud835\udd5b","Jscr;":"\ud835\udca5","jscr;":"\ud835\udcbf","Jsercy;":"\u0408","jsercy;":"\u0458","Jukcy;":"\u0404","jukcy;":"\u0454","Kappa;":"\u039a","kappa;":"\u03ba","kappav;":"\u03f0","Kcedil;":"\u0136","kcedil;":"\u0137","Kcy;":"\u041a","kcy;":"\u043a","Kfr;":"\ud835\udd0e","kfr;":"\ud835\udd28","kgreen;":"\u0138","KHcy;":"\u0425","khcy;":"\u0445","KJcy;":"\u040c","kjcy;":"\u045c","Kopf;":"\ud835\udd42","kopf;":"\ud835\udd5c","Kscr;":"\ud835\udca6","kscr;":"\ud835\udcc0","lAarr;":"\u21da","Lacute;":"\u0139","lacute;":"\u013a","laemptyv;":"\u29b4","lagran;":"\u2112","Lambda;":"\u039b","lambda;":"\u03bb","lang;":"\u27e8","Lang;":"\u27ea","langd;":"\u2991","langle;":"\u27e8","lap;":"\u2a85","Laplacetrf;":"\u2112","laquo;":"\u00ab",laquo:"\u00ab","larrb;":"\u21e4","larrbfs;":"\u291f","larr;":"\u2190","Larr;":"\u219e","lArr;":"\u21d0","larrfs;":"\u291d","larrhk;":"\u21a9","larrlp;":"\u21ab","larrpl;":"\u2939","larrsim;":"\u2973","larrtl;":"\u21a2","latail;":"\u2919","lAtail;":"\u291b","lat;":"\u2aab","late;":"\u2aad","lates;":"\u2aad\ufe00","lbarr;":"\u290c","lBarr;":"\u290e","lbbrk;":"\u2772","lbrace;":"{","lbrack;":"[","lbrke;":"\u298b","lbrksld;":"\u298f","lbrkslu;":"\u298d","Lcaron;":"\u013d","lcaron;":"\u013e","Lcedil;":"\u013b","lcedil;":"\u013c","lceil;":"\u2308","lcub;":"{","Lcy;":"\u041b","lcy;":"\u043b","ldca;":"\u2936","ldquo;":"\u201c","ldquor;":"\u201e","ldrdhar;":"\u2967","ldrushar;":"\u294b","ldsh;":"\u21b2","le;":"\u2264","lE;":"\u2266","LeftAngleBracket;":"\u27e8","LeftArrowBar;":"\u21e4","leftarrow;":"\u2190","LeftArrow;":"\u2190","Leftarrow;":"\u21d0","LeftArrowRightArrow;":"\u21c6","leftarrowtail;":"\u21a2","LeftCeiling;":"\u2308","LeftDoubleBracket;":"\u27e6","LeftDownTeeVector;":"\u2961","LeftDownVectorBar;":"\u2959","LeftDownVector;":"\u21c3","LeftFloor;":"\u230a","leftharpoondown;":"\u21bd","leftharpoonup;":"\u21bc","leftleftarrows;":"\u21c7","leftrightarrow;":"\u2194","LeftRightArrow;":"\u2194","Leftrightarrow;":"\u21d4","leftrightarrows;":"\u21c6","leftrightharpoons;":"\u21cb","leftrightsquigarrow;":"\u21ad","LeftRightVector;":"\u294e","LeftTeeArrow;":"\u21a4","LeftTee;":"\u22a3","LeftTeeVector;":"\u295a","leftthreetimes;":"\u22cb","LeftTriangleBar;":"\u29cf","LeftTriangle;":"\u22b2","LeftTriangleEqual;":"\u22b4","LeftUpDownVector;":"\u2951","LeftUpTeeVector;":"\u2960","LeftUpVectorBar;":"\u2958","LeftUpVector;":"\u21bf","LeftVectorBar;":"\u2952","LeftVector;":"\u21bc","lEg;":"\u2a8b","leg;":"\u22da","leq;":"\u2264","leqq;":"\u2266","leqslant;":"\u2a7d","lescc;":"\u2aa8","les;":"\u2a7d","lesdot;":"\u2a7f","lesdoto;":"\u2a81","lesdotor;":"\u2a83","lesg;":"\u22da\ufe00","lesges;":"\u2a93","lessapprox;":"\u2a85","lessdot;":"\u22d6","lesseqgtr;":"\u22da","lesseqqgtr;":"\u2a8b","LessEqualGreater;":"\u22da","LessFullEqual;":"\u2266","LessGreater;":"\u2276","lessgtr;":"\u2276","LessLess;":"\u2aa1","lesssim;":"\u2272","LessSlantEqual;":"\u2a7d","LessTilde;":"\u2272","lfisht;":"\u297c","lfloor;":"\u230a","Lfr;":"\ud835\udd0f","lfr;":"\ud835\udd29","lg;":"\u2276","lgE;":"\u2a91","lHar;":"\u2962","lhard;":"\u21bd","lharu;":"\u21bc","lharul;":"\u296a","lhblk;":"\u2584","LJcy;":"\u0409","ljcy;":"\u0459","llarr;":"\u21c7","ll;":"\u226a","Ll;":"\u22d8","llcorner;":"\u231e","Lleftarrow;":"\u21da","llhard;":"\u296b","lltri;":"\u25fa","Lmidot;":"\u013f","lmidot;":"\u0140","lmoustache;":"\u23b0","lmoust;":"\u23b0","lnap;":"\u2a89","lnapprox;":"\u2a89","lne;":"\u2a87","lnE;":"\u2268","lneq;":"\u2a87","lneqq;":"\u2268","lnsim;":"\u22e6","loang;":"\u27ec","loarr;":"\u21fd","lobrk;":"\u27e6","longleftarrow;":"\u27f5","LongLeftArrow;":"\u27f5","Longleftarrow;":"\u27f8","longleftrightarrow;":"\u27f7","LongLeftRightArrow;":"\u27f7","Longleftrightarrow;":"\u27fa","longmapsto;":"\u27fc","longrightarrow;":"\u27f6","LongRightArrow;":"\u27f6","Longrightarrow;":"\u27f9","looparrowleft;":"\u21ab","looparrowright;":"\u21ac","lopar;":"\u2985","Lopf;":"\ud835\udd43","lopf;":"\ud835\udd5d","loplus;":"\u2a2d","lotimes;":"\u2a34","lowast;":"\u2217","lowbar;":"_","LowerLeftArrow;":"\u2199","LowerRightArrow;":"\u2198","loz;":"\u25ca","lozenge;":"\u25ca","lozf;":"\u29eb","lpar;":"(","lparlt;":"\u2993","lrarr;":"\u21c6","lrcorner;":"\u231f","lrhar;":"\u21cb","lrhard;":"\u296d","lrm;":"\u200e","lrtri;":"\u22bf","lsaquo;":"\u2039","lscr;":"\ud835\udcc1","Lscr;":"\u2112","lsh;":"\u21b0","Lsh;":"\u21b0","lsim;":"\u2272","lsime;":"\u2a8d","lsimg;":"\u2a8f","lsqb;":"[","lsquo;":"\u2018","lsquor;":"\u201a","Lstrok;":"\u0141","lstrok;":"\u0142","ltcc;":"\u2aa6","ltcir;":"\u2a79","lt;":"<",lt:"<","LT;":"<",LT:"<","Lt;":"\u226a","ltdot;":"\u22d6","lthree;":"\u22cb","ltimes;":"\u22c9","ltlarr;":"\u2976","ltquest;":"\u2a7b","ltri;":"\u25c3","ltrie;":"\u22b4","ltrif;":"\u25c2","ltrPar;":"\u2996","lurdshar;":"\u294a","luruhar;":"\u2966","lvertneqq;":"\u2268\ufe00","lvnE;":"\u2268\ufe00","macr;":"\u00af",macr:"\u00af","male;":"\u2642","malt;":"\u2720","maltese;":"\u2720","Map;":"\u2905","map;":"\u21a6","mapsto;":"\u21a6","mapstodown;":"\u21a7","mapstoleft;":"\u21a4","mapstoup;":"\u21a5","marker;":"\u25ae","mcomma;":"\u2a29","Mcy;":"\u041c","mcy;":"\u043c","mdash;":"\u2014","mDDot;":"\u223a","measuredangle;":"\u2221","MediumSpace;":"\u205f","Mellintrf;":"\u2133","Mfr;":"\ud835\udd10","mfr;":"\ud835\udd2a","mho;":"\u2127","micro;":"\u00b5",micro:"\u00b5","midast;":"*","midcir;":"\u2af0","mid;":"\u2223","middot;":"\u00b7",middot:"\u00b7","minusb;":"\u229f","minus;":"\u2212","minusd;":"\u2238","minusdu;":"\u2a2a","MinusPlus;":"\u2213","mlcp;":"\u2adb","mldr;":"\u2026","mnplus;":"\u2213","models;":"\u22a7","Mopf;":"\ud835\udd44","mopf;":"\ud835\udd5e","mp;":"\u2213","mscr;":"\ud835\udcc2","Mscr;":"\u2133","mstpos;":"\u223e","Mu;":"\u039c","mu;":"\u03bc","multimap;":"\u22b8","mumap;":"\u22b8","nabla;":"\u2207","Nacute;":"\u0143","nacute;":"\u0144","nang;":"\u2220\u20d2","nap;":"\u2249","napE;":"\u2a70\u0338","napid;":"\u224b\u0338","napos;":"\u0149","napprox;":"\u2249","natural;":"\u266e","naturals;":"\u2115","natur;":"\u266e","nbsp;":"\u00a0",nbsp:"\u00a0","nbump;":"\u224e\u0338","nbumpe;":"\u224f\u0338","ncap;":"\u2a43","Ncaron;":"\u0147","ncaron;":"\u0148","Ncedil;":"\u0145","ncedil;":"\u0146","ncong;":"\u2247","ncongdot;":"\u2a6d\u0338","ncup;":"\u2a42","Ncy;":"\u041d","ncy;":"\u043d","ndash;":"\u2013","nearhk;":"\u2924","nearr;":"\u2197","neArr;":"\u21d7","nearrow;":"\u2197","ne;":"\u2260","nedot;":"\u2250\u0338","NegativeMediumSpace;":"\u200b","NegativeThickSpace;":"\u200b","NegativeThinSpace;":"\u200b","NegativeVeryThinSpace;":"\u200b","nequiv;":"\u2262","nesear;":"\u2928","nesim;":"\u2242\u0338","NestedGreaterGreater;":"\u226b","NestedLessLess;":"\u226a","NewLine;":"\n","nexist;":"\u2204","nexists;":"\u2204","Nfr;":"\ud835\udd11","nfr;":"\ud835\udd2b","ngE;":"\u2267\u0338","nge;":"\u2271","ngeq;":"\u2271","ngeqq;":"\u2267\u0338","ngeqslant;":"\u2a7e\u0338","nges;":"\u2a7e\u0338","nGg;":"\u22d9\u0338","ngsim;":"\u2275","nGt;":"\u226b\u20d2","ngt;":"\u226f","ngtr;":"\u226f","nGtv;":"\u226b\u0338","nharr;":"\u21ae","nhArr;":"\u21ce","nhpar;":"\u2af2","ni;":"\u220b","nis;":"\u22fc","nisd;":"\u22fa","niv;":"\u220b","NJcy;":"\u040a","njcy;":"\u045a","nlarr;":"\u219a","nlArr;":"\u21cd","nldr;":"\u2025","nlE;":"\u2266\u0338","nle;":"\u2270","nleftarrow;":"\u219a","nLeftarrow;":"\u21cd","nleftrightarrow;":"\u21ae","nLeftrightarrow;":"\u21ce","nleq;":"\u2270","nleqq;":"\u2266\u0338","nleqslant;":"\u2a7d\u0338","nles;":"\u2a7d\u0338","nless;":"\u226e","nLl;":"\u22d8\u0338","nlsim;":"\u2274","nLt;":"\u226a\u20d2","nlt;":"\u226e","nltri;":"\u22ea","nltrie;":"\u22ec","nLtv;":"\u226a\u0338","nmid;":"\u2224","NoBreak;":"\u2060","NonBreakingSpace;":"\u00a0","nopf;":"\ud835\udd5f","Nopf;":"\u2115","Not;":"\u2aec","not;":"\u00ac",not:"\u00ac","NotCongruent;":"\u2262","NotCupCap;":"\u226d","NotDoubleVerticalBar;":"\u2226","NotElement;":"\u2209","NotEqual;":"\u2260","NotEqualTilde;":"\u2242\u0338","NotExists;":"\u2204","NotGreater;":"\u226f","NotGreaterEqual;":"\u2271","NotGreaterFullEqual;":"\u2267\u0338","NotGreaterGreater;":"\u226b\u0338","NotGreaterLess;":"\u2279","NotGreaterSlantEqual;":"\u2a7e\u0338","NotGreaterTilde;":"\u2275","NotHumpDownHump;":"\u224e\u0338","NotHumpEqual;":"\u224f\u0338","notin;":"\u2209","notindot;":"\u22f5\u0338","notinE;":"\u22f9\u0338","notinva;":"\u2209","notinvb;":"\u22f7","notinvc;":"\u22f6","NotLeftTriangleBar;":"\u29cf\u0338","NotLeftTriangle;":"\u22ea","NotLeftTriangleEqual;":"\u22ec","NotLess;":"\u226e","NotLessEqual;":"\u2270","NotLessGreater;":"\u2278","NotLessLess;":"\u226a\u0338","NotLessSlantEqual;":"\u2a7d\u0338","NotLessTilde;":"\u2274","NotNestedGreaterGreater;":"\u2aa2\u0338","NotNestedLessLess;":"\u2aa1\u0338","notni;":"\u220c","notniva;":"\u220c","notnivb;":"\u22fe","notnivc;":"\u22fd","NotPrecedes;":"\u2280","NotPrecedesEqual;":"\u2aaf\u0338","NotPrecedesSlantEqual;":"\u22e0","NotReverseElement;":"\u220c","NotRightTriangleBar;":"\u29d0\u0338","NotRightTriangle;":"\u22eb","NotRightTriangleEqual;":"\u22ed","NotSquareSubset;":"\u228f\u0338","NotSquareSubsetEqual;":"\u22e2","NotSquareSuperset;":"\u2290\u0338","NotSquareSupersetEqual;":"\u22e3","NotSubset;":"\u2282\u20d2","NotSubsetEqual;":"\u2288","NotSucceeds;":"\u2281","NotSucceedsEqual;":"\u2ab0\u0338","NotSucceedsSlantEqual;":"\u22e1","NotSucceedsTilde;":"\u227f\u0338","NotSuperset;":"\u2283\u20d2","NotSupersetEqual;":"\u2289","NotTilde;":"\u2241","NotTildeEqual;":"\u2244","NotTildeFullEqual;":"\u2247","NotTildeTilde;":"\u2249","NotVerticalBar;":"\u2224","nparallel;":"\u2226","npar;":"\u2226","nparsl;":"\u2afd\u20e5","npart;":"\u2202\u0338","npolint;":"\u2a14","npr;":"\u2280","nprcue;":"\u22e0","nprec;":"\u2280","npreceq;":"\u2aaf\u0338","npre;":"\u2aaf\u0338","nrarrc;":"\u2933\u0338","nrarr;":"\u219b","nrArr;":"\u21cf","nrarrw;":"\u219d\u0338","nrightarrow;":"\u219b","nRightarrow;":"\u21cf","nrtri;":"\u22eb","nrtrie;":"\u22ed","nsc;":"\u2281","nsccue;":"\u22e1","nsce;":"\u2ab0\u0338","Nscr;":"\ud835\udca9","nscr;":"\ud835\udcc3","nshortmid;":"\u2224","nshortparallel;":"\u2226","nsim;":"\u2241","nsime;":"\u2244","nsimeq;":"\u2244","nsmid;":"\u2224","nspar;":"\u2226","nsqsube;":"\u22e2","nsqsupe;":"\u22e3","nsub;":"\u2284","nsubE;":"\u2ac5\u0338","nsube;":"\u2288","nsubset;":"\u2282\u20d2","nsubseteq;":"\u2288","nsubseteqq;":"\u2ac5\u0338","nsucc;":"\u2281","nsucceq;":"\u2ab0\u0338","nsup;":"\u2285","nsupE;":"\u2ac6\u0338","nsupe;":"\u2289","nsupset;":"\u2283\u20d2","nsupseteq;":"\u2289","nsupseteqq;":"\u2ac6\u0338","ntgl;":"\u2279","Ntilde;":"\u00d1",Ntilde:"\u00d1","ntilde;":"\u00f1",ntilde:"\u00f1","ntlg;":"\u2278","ntriangleleft;":"\u22ea","ntrianglelefteq;":"\u22ec","ntriangleright;":"\u22eb","ntrianglerighteq;":"\u22ed","Nu;":"\u039d","nu;":"\u03bd","num;":"#","numero;":"\u2116","numsp;":"\u2007","nvap;":"\u224d\u20d2","nvdash;":"\u22ac","nvDash;":"\u22ad","nVdash;":"\u22ae","nVDash;":"\u22af","nvge;":"\u2265\u20d2","nvgt;":">\u20d2","nvHarr;":"\u2904","nvinfin;":"\u29de","nvlArr;":"\u2902","nvle;":"\u2264\u20d2","nvlt;":"<\u20d2","nvltrie;":"\u22b4\u20d2","nvrArr;":"\u2903","nvrtrie;":"\u22b5\u20d2","nvsim;":"\u223c\u20d2","nwarhk;":"\u2923","nwarr;":"\u2196","nwArr;":"\u21d6","nwarrow;":"\u2196","nwnear;":"\u2927","Oacute;":"\u00d3",Oacute:"\u00d3","oacute;":"\u00f3",oacute:"\u00f3","oast;":"\u229b","Ocirc;":"\u00d4",Ocirc:"\u00d4","ocirc;":"\u00f4",ocirc:"\u00f4","ocir;":"\u229a","Ocy;":"\u041e","ocy;":"\u043e","odash;":"\u229d","Odblac;":"\u0150","odblac;":"\u0151","odiv;":"\u2a38","odot;":"\u2299","odsold;":"\u29bc","OElig;":"\u0152","oelig;":"\u0153","ofcir;":"\u29bf","Ofr;":"\ud835\udd12","ofr;":"\ud835\udd2c","ogon;":"\u02db","Ograve;":"\u00d2",Ograve:"\u00d2","ograve;":"\u00f2",ograve:"\u00f2","ogt;":"\u29c1","ohbar;":"\u29b5","ohm;":"\u03a9","oint;":"\u222e","olarr;":"\u21ba","olcir;":"\u29be","olcross;":"\u29bb","oline;":"\u203e","olt;":"\u29c0","Omacr;":"\u014c","omacr;":"\u014d","Omega;":"\u03a9","omega;":"\u03c9","Omicron;":"\u039f","omicron;":"\u03bf","omid;":"\u29b6","ominus;":"\u2296","Oopf;":"\ud835\udd46","oopf;":"\ud835\udd60","opar;":"\u29b7","OpenCurlyDoubleQuote;":"\u201c","OpenCurlyQuote;":"\u2018","operp;":"\u29b9","oplus;":"\u2295","orarr;":"\u21bb","Or;":"\u2a54","or;":"\u2228","ord;":"\u2a5d","order;":"\u2134","orderof;":"\u2134","ordf;":"\u00aa",ordf:"\u00aa","ordm;":"\u00ba",ordm:"\u00ba","origof;":"\u22b6","oror;":"\u2a56","orslope;":"\u2a57","orv;":"\u2a5b","oS;":"\u24c8","Oscr;":"\ud835\udcaa","oscr;":"\u2134","Oslash;":"\u00d8",Oslash:"\u00d8","oslash;":"\u00f8",oslash:"\u00f8","osol;":"\u2298","Otilde;":"\u00d5",Otilde:"\u00d5","otilde;":"\u00f5",otilde:"\u00f5","otimesas;":"\u2a36","Otimes;":"\u2a37","otimes;":"\u2297","Ouml;":"\u00d6",Ouml:"\u00d6","ouml;":"\u00f6",ouml:"\u00f6","ovbar;":"\u233d","OverBar;":"\u203e","OverBrace;":"\u23de","OverBracket;":"\u23b4","OverParenthesis;":"\u23dc","para;":"\u00b6",para:"\u00b6","parallel;":"\u2225","par;":"\u2225","parsim;":"\u2af3","parsl;":"\u2afd","part;":"\u2202","PartialD;":"\u2202","Pcy;":"\u041f","pcy;":"\u043f","percnt;":"%","period;":".","permil;":"\u2030","perp;":"\u22a5","pertenk;":"\u2031","Pfr;":"\ud835\udd13","pfr;":"\ud835\udd2d","Phi;":"\u03a6","phi;":"\u03c6","phiv;":"\u03d5","phmmat;":"\u2133","phone;":"\u260e","Pi;":"\u03a0","pi;":"\u03c0","pitchfork;":"\u22d4","piv;":"\u03d6","planck;":"\u210f","planckh;":"\u210e","plankv;":"\u210f","plusacir;":"\u2a23","plusb;":"\u229e","pluscir;":"\u2a22","plus;":"+","plusdo;":"\u2214","plusdu;":"\u2a25","pluse;":"\u2a72","PlusMinus;":"\u00b1","plusmn;":"\u00b1",plusmn:"\u00b1","plussim;":"\u2a26","plustwo;":"\u2a27","pm;":"\u00b1","Poincareplane;":"\u210c","pointint;":"\u2a15","popf;":"\ud835\udd61","Popf;":"\u2119","pound;":"\u00a3",pound:"\u00a3","prap;":"\u2ab7","Pr;":"\u2abb","pr;":"\u227a","prcue;":"\u227c","precapprox;":"\u2ab7","prec;":"\u227a","preccurlyeq;":"\u227c","Precedes;":"\u227a","PrecedesEqual;":"\u2aaf","PrecedesSlantEqual;":"\u227c","PrecedesTilde;":"\u227e","preceq;":"\u2aaf","precnapprox;":"\u2ab9","precneqq;":"\u2ab5","precnsim;":"\u22e8","pre;":"\u2aaf","prE;":"\u2ab3","precsim;":"\u227e","prime;":"\u2032","Prime;":"\u2033","primes;":"\u2119","prnap;":"\u2ab9","prnE;":"\u2ab5","prnsim;":"\u22e8","prod;":"\u220f","Product;":"\u220f","profalar;":"\u232e","profline;":"\u2312","profsurf;":"\u2313","prop;":"\u221d","Proportional;":"\u221d","Proportion;":"\u2237","propto;":"\u221d","prsim;":"\u227e","prurel;":"\u22b0","Pscr;":"\ud835\udcab","pscr;":"\ud835\udcc5","Psi;":"\u03a8","psi;":"\u03c8","puncsp;":"\u2008","Qfr;":"\ud835\udd14","qfr;":"\ud835\udd2e","qint;":"\u2a0c","qopf;":"\ud835\udd62","Qopf;":"\u211a","qprime;":"\u2057","Qscr;":"\ud835\udcac","qscr;":"\ud835\udcc6","quaternions;":"\u210d","quatint;":"\u2a16","quest;":"?","questeq;":"\u225f","quot;":'"',quot:'"',"QUOT;":'"',QUOT:'"',"rAarr;":"\u21db","race;":"\u223d\u0331","Racute;":"\u0154","racute;":"\u0155","radic;":"\u221a","raemptyv;":"\u29b3","rang;":"\u27e9","Rang;":"\u27eb","rangd;":"\u2992","range;":"\u29a5","rangle;":"\u27e9","raquo;":"\u00bb",raquo:"\u00bb","rarrap;":"\u2975","rarrb;":"\u21e5","rarrbfs;":"\u2920","rarrc;":"\u2933","rarr;":"\u2192","Rarr;":"\u21a0","rArr;":"\u21d2","rarrfs;":"\u291e","rarrhk;":"\u21aa","rarrlp;":"\u21ac","rarrpl;":"\u2945","rarrsim;":"\u2974","Rarrtl;":"\u2916","rarrtl;":"\u21a3","rarrw;":"\u219d","ratail;":"\u291a","rAtail;":"\u291c","ratio;":"\u2236","rationals;":"\u211a","rbarr;":"\u290d","rBarr;":"\u290f","RBarr;":"\u2910","rbbrk;":"\u2773","rbrace;":"}","rbrack;":"]","rbrke;":"\u298c","rbrksld;":"\u298e","rbrkslu;":"\u2990","Rcaron;":"\u0158","rcaron;":"\u0159","Rcedil;":"\u0156","rcedil;":"\u0157","rceil;":"\u2309","rcub;":"}","Rcy;":"\u0420","rcy;":"\u0440","rdca;":"\u2937","rdldhar;":"\u2969","rdquo;":"\u201d","rdquor;":"\u201d","rdsh;":"\u21b3","real;":"\u211c","realine;":"\u211b","realpart;":"\u211c","reals;":"\u211d","Re;":"\u211c","rect;":"\u25ad","reg;":"\u00ae",reg:"\u00ae","REG;":"\u00ae",REG:"\u00ae","ReverseElement;":"\u220b","ReverseEquilibrium;":"\u21cb","ReverseUpEquilibrium;":"\u296f","rfisht;":"\u297d","rfloor;":"\u230b","rfr;":"\ud835\udd2f","Rfr;":"\u211c","rHar;":"\u2964","rhard;":"\u21c1","rharu;":"\u21c0","rharul;":"\u296c","Rho;":"\u03a1","rho;":"\u03c1","rhov;":"\u03f1","RightAngleBracket;":"\u27e9","RightArrowBar;":"\u21e5","rightarrow;":"\u2192","RightArrow;":"\u2192","Rightarrow;":"\u21d2","RightArrowLeftArrow;":"\u21c4","rightarrowtail;":"\u21a3","RightCeiling;":"\u2309","RightDoubleBracket;":"\u27e7","RightDownTeeVector;":"\u295d","RightDownVectorBar;":"\u2955","RightDownVector;":"\u21c2","RightFloor;":"\u230b","rightharpoondown;":"\u21c1","rightharpoonup;":"\u21c0","rightleftarrows;":"\u21c4","rightleftharpoons;":"\u21cc","rightrightarrows;":"\u21c9","rightsquigarrow;":"\u219d","RightTeeArrow;":"\u21a6","RightTee;":"\u22a2","RightTeeVector;":"\u295b","rightthreetimes;":"\u22cc","RightTriangleBar;":"\u29d0","RightTriangle;":"\u22b3","RightTriangleEqual;":"\u22b5","RightUpDownVector;":"\u294f","RightUpTeeVector;":"\u295c","RightUpVectorBar;":"\u2954","RightUpVector;":"\u21be","RightVectorBar;":"\u2953","RightVector;":"\u21c0","ring;":"\u02da","risingdotseq;":"\u2253","rlarr;":"\u21c4","rlhar;":"\u21cc","rlm;":"\u200f","rmoustache;":"\u23b1","rmoust;":"\u23b1","rnmid;":"\u2aee","roang;":"\u27ed","roarr;":"\u21fe","robrk;":"\u27e7","ropar;":"\u2986","ropf;":"\ud835\udd63","Ropf;":"\u211d","roplus;":"\u2a2e","rotimes;":"\u2a35","RoundImplies;":"\u2970","rpar;":")","rpargt;":"\u2994","rppolint;":"\u2a12","rrarr;":"\u21c9","Rrightarrow;":"\u21db","rsaquo;":"\u203a","rscr;":"\ud835\udcc7","Rscr;":"\u211b","rsh;":"\u21b1","Rsh;":"\u21b1","rsqb;":"]","rsquo;":"\u2019","rsquor;":"\u2019","rthree;":"\u22cc","rtimes;":"\u22ca","rtri;":"\u25b9","rtrie;":"\u22b5","rtrif;":"\u25b8","rtriltri;":"\u29ce","RuleDelayed;":"\u29f4","ruluhar;":"\u2968","rx;":"\u211e","Sacute;":"\u015a","sacute;":"\u015b","sbquo;":"\u201a","scap;":"\u2ab8","Scaron;":"\u0160","scaron;":"\u0161","Sc;":"\u2abc","sc;":"\u227b","sccue;":"\u227d","sce;":"\u2ab0","scE;":"\u2ab4","Scedil;":"\u015e","scedil;":"\u015f","Scirc;":"\u015c","scirc;":"\u015d","scnap;":"\u2aba","scnE;":"\u2ab6","scnsim;":"\u22e9","scpolint;":"\u2a13","scsim;":"\u227f","Scy;":"\u0421","scy;":"\u0441","sdotb;":"\u22a1","sdot;":"\u22c5","sdote;":"\u2a66","searhk;":"\u2925","searr;":"\u2198","seArr;":"\u21d8","searrow;":"\u2198","sect;":"\u00a7",sect:"\u00a7","semi;":";","seswar;":"\u2929","setminus;":"\u2216","setmn;":"\u2216","sext;":"\u2736","Sfr;":"\ud835\udd16","sfr;":"\ud835\udd30","sfrown;":"\u2322","sharp;":"\u266f","SHCHcy;":"\u0429","shchcy;":"\u0449","SHcy;":"\u0428","shcy;":"\u0448","ShortDownArrow;":"\u2193","ShortLeftArrow;":"\u2190","shortmid;":"\u2223","shortparallel;":"\u2225","ShortRightArrow;":"\u2192","ShortUpArrow;":"\u2191","shy;":"\u00ad",shy:"\u00ad","Sigma;":"\u03a3","sigma;":"\u03c3","sigmaf;":"\u03c2","sigmav;":"\u03c2","sim;":"\u223c","simdot;":"\u2a6a","sime;":"\u2243","simeq;":"\u2243","simg;":"\u2a9e","simgE;":"\u2aa0","siml;":"\u2a9d","simlE;":"\u2a9f","simne;":"\u2246","simplus;":"\u2a24","simrarr;":"\u2972","slarr;":"\u2190","SmallCircle;":"\u2218","smallsetminus;":"\u2216","smashp;":"\u2a33","smeparsl;":"\u29e4","smid;":"\u2223","smile;":"\u2323","smt;":"\u2aaa","smte;":"\u2aac","smtes;":"\u2aac\ufe00","SOFTcy;":"\u042c","softcy;":"\u044c","solbar;":"\u233f","solb;":"\u29c4","sol;":"/","Sopf;":"\ud835\udd4a","sopf;":"\ud835\udd64","spades;":"\u2660","spadesuit;":"\u2660","spar;":"\u2225","sqcap;":"\u2293","sqcaps;":"\u2293\ufe00","sqcup;":"\u2294","sqcups;":"\u2294\ufe00","Sqrt;":"\u221a","sqsub;":"\u228f","sqsube;":"\u2291","sqsubset;":"\u228f","sqsubseteq;":"\u2291","sqsup;":"\u2290","sqsupe;":"\u2292","sqsupset;":"\u2290","sqsupseteq;":"\u2292","square;":"\u25a1","Square;":"\u25a1","SquareIntersection;":"\u2293","SquareSubset;":"\u228f","SquareSubsetEqual;":"\u2291","SquareSuperset;":"\u2290","SquareSupersetEqual;":"\u2292","SquareUnion;":"\u2294","squarf;":"\u25aa","squ;":"\u25a1","squf;":"\u25aa","srarr;":"\u2192","Sscr;":"\ud835\udcae","sscr;":"\ud835\udcc8","ssetmn;":"\u2216","ssmile;":"\u2323","sstarf;":"\u22c6","Star;":"\u22c6","star;":"\u2606","starf;":"\u2605","straightepsilon;":"\u03f5","straightphi;":"\u03d5","strns;":"\u00af","sub;":"\u2282","Sub;":"\u22d0","subdot;":"\u2abd","subE;":"\u2ac5","sube;":"\u2286","subedot;":"\u2ac3","submult;":"\u2ac1","subnE;":"\u2acb","subne;":"\u228a","subplus;":"\u2abf","subrarr;":"\u2979","subset;":"\u2282","Subset;":"\u22d0","subseteq;":"\u2286","subseteqq;":"\u2ac5","SubsetEqual;":"\u2286","subsetneq;":"\u228a","subsetneqq;":"\u2acb","subsim;":"\u2ac7","subsub;":"\u2ad5","subsup;":"\u2ad3","succapprox;":"\u2ab8","succ;":"\u227b","succcurlyeq;":"\u227d","Succeeds;":"\u227b","SucceedsEqual;":"\u2ab0","SucceedsSlantEqual;":"\u227d","SucceedsTilde;":"\u227f","succeq;":"\u2ab0","succnapprox;":"\u2aba","succneqq;":"\u2ab6","succnsim;":"\u22e9","succsim;":"\u227f","SuchThat;":"\u220b","sum;":"\u2211","Sum;":"\u2211","sung;":"\u266a","sup1;":"\u00b9",sup1:"\u00b9","sup2;":"\u00b2",sup2:"\u00b2","sup3;":"\u00b3",sup3:"\u00b3","sup;":"\u2283","Sup;":"\u22d1","supdot;":"\u2abe","supdsub;":"\u2ad8","supE;":"\u2ac6","supe;":"\u2287","supedot;":"\u2ac4","Superset;":"\u2283","SupersetEqual;":"\u2287","suphsol;":"\u27c9","suphsub;":"\u2ad7","suplarr;":"\u297b","supmult;":"\u2ac2","supnE;":"\u2acc","supne;":"\u228b","supplus;":"\u2ac0","supset;":"\u2283","Supset;":"\u22d1","supseteq;":"\u2287","supseteqq;":"\u2ac6","supsetneq;":"\u228b","supsetneqq;":"\u2acc","supsim;":"\u2ac8","supsub;":"\u2ad4","supsup;":"\u2ad6","swarhk;":"\u2926","swarr;":"\u2199","swArr;":"\u21d9","swarrow;":"\u2199","swnwar;":"\u292a","szlig;":"\u00df",szlig:"\u00df","Tab;":" ","target;":"\u2316","Tau;":"\u03a4","tau;":"\u03c4","tbrk;":"\u23b4","Tcaron;":"\u0164","tcaron;":"\u0165","Tcedil;":"\u0162","tcedil;":"\u0163","Tcy;":"\u0422","tcy;":"\u0442","tdot;":"\u20db","telrec;":"\u2315","Tfr;":"\ud835\udd17","tfr;":"\ud835\udd31","there4;":"\u2234","therefore;":"\u2234","Therefore;":"\u2234","Theta;":"\u0398","theta;":"\u03b8","thetasym;":"\u03d1","thetav;":"\u03d1","thickapprox;":"\u2248","thicksim;":"\u223c","ThickSpace;":"\u205f\u200a","ThinSpace;":"\u2009","thinsp;":"\u2009","thkap;":"\u2248","thksim;":"\u223c","THORN;":"\u00de",THORN:"\u00de","thorn;":"\u00fe",thorn:"\u00fe","tilde;":"\u02dc","Tilde;":"\u223c","TildeEqual;":"\u2243","TildeFullEqual;":"\u2245","TildeTilde;":"\u2248","timesbar;":"\u2a31","timesb;":"\u22a0","times;":"\u00d7",times:"\u00d7","timesd;":"\u2a30","tint;":"\u222d","toea;":"\u2928","topbot;":"\u2336","topcir;":"\u2af1","top;":"\u22a4","Topf;":"\ud835\udd4b","topf;":"\ud835\udd65","topfork;":"\u2ada","tosa;":"\u2929","tprime;":"\u2034","trade;":"\u2122","TRADE;":"\u2122","triangle;":"\u25b5","triangledown;":"\u25bf","triangleleft;":"\u25c3","trianglelefteq;":"\u22b4","triangleq;":"\u225c","triangleright;":"\u25b9","trianglerighteq;":"\u22b5","tridot;":"\u25ec","trie;":"\u225c","triminus;":"\u2a3a","TripleDot;":"\u20db","triplus;":"\u2a39","trisb;":"\u29cd","tritime;":"\u2a3b","trpezium;":"\u23e2","Tscr;":"\ud835\udcaf","tscr;":"\ud835\udcc9","TScy;":"\u0426","tscy;":"\u0446","TSHcy;":"\u040b","tshcy;":"\u045b","Tstrok;":"\u0166","tstrok;":"\u0167","twixt;":"\u226c","twoheadleftarrow;":"\u219e","twoheadrightarrow;":"\u21a0","Uacute;":"\u00da",Uacute:"\u00da","uacute;":"\u00fa",uacute:"\u00fa","uarr;":"\u2191","Uarr;":"\u219f","uArr;":"\u21d1","Uarrocir;":"\u2949","Ubrcy;":"\u040e","ubrcy;":"\u045e","Ubreve;":"\u016c","ubreve;":"\u016d","Ucirc;":"\u00db",Ucirc:"\u00db","ucirc;":"\u00fb",ucirc:"\u00fb","Ucy;":"\u0423","ucy;":"\u0443","udarr;":"\u21c5","Udblac;":"\u0170","udblac;":"\u0171","udhar;":"\u296e","ufisht;":"\u297e","Ufr;":"\ud835\udd18","ufr;":"\ud835\udd32","Ugrave;":"\u00d9",Ugrave:"\u00d9","ugrave;":"\u00f9",ugrave:"\u00f9","uHar;":"\u2963","uharl;":"\u21bf","uharr;":"\u21be","uhblk;":"\u2580","ulcorn;":"\u231c","ulcorner;":"\u231c","ulcrop;":"\u230f","ultri;":"\u25f8","Umacr;":"\u016a","umacr;":"\u016b","uml;":"\u00a8",uml:"\u00a8","UnderBar;":"_","UnderBrace;":"\u23df","UnderBracket;":"\u23b5","UnderParenthesis;":"\u23dd","Union;":"\u22c3","UnionPlus;":"\u228e","Uogon;":"\u0172","uogon;":"\u0173","Uopf;":"\ud835\udd4c","uopf;":"\ud835\udd66","UpArrowBar;":"\u2912","uparrow;":"\u2191","UpArrow;":"\u2191","Uparrow;":"\u21d1","UpArrowDownArrow;":"\u21c5","updownarrow;":"\u2195","UpDownArrow;":"\u2195","Updownarrow;":"\u21d5","UpEquilibrium;":"\u296e","upharpoonleft;":"\u21bf","upharpoonright;":"\u21be","uplus;":"\u228e","UpperLeftArrow;":"\u2196","UpperRightArrow;":"\u2197","upsi;":"\u03c5","Upsi;":"\u03d2","upsih;":"\u03d2","Upsilon;":"\u03a5","upsilon;":"\u03c5","UpTeeArrow;":"\u21a5","UpTee;":"\u22a5","upuparrows;":"\u21c8","urcorn;":"\u231d","urcorner;":"\u231d","urcrop;":"\u230e","Uring;":"\u016e","uring;":"\u016f","urtri;":"\u25f9","Uscr;":"\ud835\udcb0","uscr;":"\ud835\udcca","utdot;":"\u22f0","Utilde;":"\u0168","utilde;":"\u0169","utri;":"\u25b5","utrif;":"\u25b4","uuarr;":"\u21c8","Uuml;":"\u00dc",Uuml:"\u00dc","uuml;":"\u00fc",uuml:"\u00fc","uwangle;":"\u29a7","vangrt;":"\u299c","varepsilon;":"\u03f5","varkappa;":"\u03f0","varnothing;":"\u2205","varphi;":"\u03d5","varpi;":"\u03d6","varpropto;":"\u221d","varr;":"\u2195","vArr;":"\u21d5","varrho;":"\u03f1","varsigma;":"\u03c2","varsubsetneq;":"\u228a\ufe00","varsubsetneqq;":"\u2acb\ufe00","varsupsetneq;":"\u228b\ufe00","varsupsetneqq;":"\u2acc\ufe00","vartheta;":"\u03d1","vartriangleleft;":"\u22b2","vartriangleright;":"\u22b3","vBar;":"\u2ae8","Vbar;":"\u2aeb","vBarv;":"\u2ae9","Vcy;":"\u0412","vcy;":"\u0432","vdash;":"\u22a2","vDash;":"\u22a8","Vdash;":"\u22a9","VDash;":"\u22ab","Vdashl;":"\u2ae6","veebar;":"\u22bb","vee;":"\u2228","Vee;":"\u22c1","veeeq;":"\u225a","vellip;":"\u22ee","verbar;":"|","Verbar;":"\u2016","vert;":"|","Vert;":"\u2016","VerticalBar;":"\u2223","VerticalLine;":"|","VerticalSeparator;":"\u2758","VerticalTilde;":"\u2240","VeryThinSpace;":"\u200a","Vfr;":"\ud835\udd19","vfr;":"\ud835\udd33","vltri;":"\u22b2","vnsub;":"\u2282\u20d2","vnsup;":"\u2283\u20d2","Vopf;":"\ud835\udd4d","vopf;":"\ud835\udd67","vprop;":"\u221d","vrtri;":"\u22b3","Vscr;":"\ud835\udcb1","vscr;":"\ud835\udccb","vsubnE;":"\u2acb\ufe00","vsubne;":"\u228a\ufe00","vsupnE;":"\u2acc\ufe00","vsupne;":"\u228b\ufe00","Vvdash;":"\u22aa","vzigzag;":"\u299a","Wcirc;":"\u0174","wcirc;":"\u0175","wedbar;":"\u2a5f","wedge;":"\u2227","Wedge;":"\u22c0","wedgeq;":"\u2259","weierp;":"\u2118","Wfr;":"\ud835\udd1a","wfr;":"\ud835\udd34","Wopf;":"\ud835\udd4e","wopf;":"\ud835\udd68","wp;":"\u2118","wr;":"\u2240","wreath;":"\u2240","Wscr;":"\ud835\udcb2","wscr;":"\ud835\udccc","xcap;":"\u22c2","xcirc;":"\u25ef","xcup;":"\u22c3","xdtri;":"\u25bd","Xfr;":"\ud835\udd1b","xfr;":"\ud835\udd35","xharr;":"\u27f7","xhArr;":"\u27fa","Xi;":"\u039e","xi;":"\u03be","xlarr;":"\u27f5","xlArr;":"\u27f8","xmap;":"\u27fc","xnis;":"\u22fb","xodot;":"\u2a00","Xopf;":"\ud835\udd4f","xopf;":"\ud835\udd69","xoplus;":"\u2a01","xotime;":"\u2a02","xrarr;":"\u27f6","xrArr;":"\u27f9","Xscr;":"\ud835\udcb3","xscr;":"\ud835\udccd","xsqcup;":"\u2a06","xuplus;":"\u2a04","xutri;":"\u25b3","xvee;":"\u22c1","xwedge;":"\u22c0","Yacute;":"\u00dd",Yacute:"\u00dd","yacute;":"\u00fd",yacute:"\u00fd","YAcy;":"\u042f","yacy;":"\u044f","Ycirc;":"\u0176","ycirc;":"\u0177","Ycy;":"\u042b","ycy;":"\u044b","yen;":"\u00a5",yen:"\u00a5","Yfr;":"\ud835\udd1c","yfr;":"\ud835\udd36","YIcy;":"\u0407","yicy;":"\u0457","Yopf;":"\ud835\udd50","yopf;":"\ud835\udd6a","Yscr;":"\ud835\udcb4","yscr;":"\ud835\udcce","YUcy;":"\u042e","yucy;":"\u044e","yuml;":"\u00ff",yuml:"\u00ff","Yuml;":"\u0178","Zacute;":"\u0179","zacute;":"\u017a","Zcaron;":"\u017d","zcaron;":"\u017e","Zcy;":"\u0417","zcy;":"\u0437","Zdot;":"\u017b","zdot;":"\u017c","zeetrf;":"\u2128","ZeroWidthSpace;":"\u200b","Zeta;":"\u0396","zeta;":"\u03b6","zfr;":"\ud835\udd37","Zfr;":"\u2128","ZHcy;":"\u0416","zhcy;":"\u0436","zigrarr;":"\u21dd","zopf;":"\ud835\udd6b","Zopf;":"\u2124","Zscr;":"\ud835\udcb5","zscr;":"\ud835\udccf","zwj;":"\u200d","zwnj;":"\u200c"}},{}],13:[function(e,t,n){function u(e,t){return r.isUndefined(t)?""+t:r.isNumber(t)&&(isNaN(t)||!isFinite(t))?t.toString():r.isFunction(t)||r.isRegExp(t)?t.toString():t}function a(e,t){return r.isString(e)?e.length=0;u--)if(n[u]!=s[u])return!1;for(u=n.length-1;u>=0;u--){o=n[u];if(!h(e[o],t[o]))return!1}return!0}function v(e,t){return!e||!t?!1:Object.prototype.toString.call(t)=="[object RegExp]"?t.test(e):e instanceof t?!0:t.call({},e)===!0?!0:!1}function m(e,t,n,i){var s;r.isString(n)&&(i=n,n=null);try{t()}catch(o){s=o}i=(n&&n.name?" ("+n.name+").":".")+(i?" "+i:"."),e&&!s&&l(s,n,"Missing expected exception"+i),!e&&v(s,n)&&l(s,n,"Got unwanted exception"+i);if(e&&s&&n&&!v(s,n)||!e&&s)throw s}var r=e("util/"),i=Array.prototype.slice,s=Object.prototype.hasOwnProperty,o=t.exports=c;o.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=f(this),this.generatedMessage=!0);var n=t.stackStartFunction||l;if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{var r=new Error;if(r.stack){var i=r.stack,s=n.name,o=i.indexOf("\n"+s);if(o>=0){var u=i.indexOf("\n",o+1);i=i.substring(u+1)}this.stack=i}}},r.inherits(o.AssertionError,Error),o.fail=l,o.ok=c,o.equal=function(t,n,r){t!=n&&l(t,n,r,"==",o.equal)},o.notEqual=function(t,n,r){t==n&&l(t,n,r,"!=",o.notEqual)},o.deepEqual=function(t,n,r){h(t,n)||l(t,n,r,"deepEqual",o.deepEqual)},o.notDeepEqual=function(t,n,r){h(t,n)&&l(t,n,r,"notDeepEqual",o.notDeepEqual)},o.strictEqual=function(t,n,r){t!==n&&l(t,n,r,"===",o.strictEqual)},o.notStrictEqual=function(t,n,r){t===n&&l(t,n,r,"!==",o.notStrictEqual)},o.throws=function(e,t,n){m.apply(this,[!0].concat(i.call(arguments)))},o.doesNotThrow=function(e,t){m.apply(this,[!1].concat(i.call(arguments)))},o.ifError=function(e){if(e)throw e};var g=Object.keys||function(e){var t=[];for(var n in e)s.call(e,n)&&t.push(n);return t}},{"util/":15}],14:[function(e,t,n){t.exports=function(t){return t&&typeof t=="object"&&typeof t.copy=="function"&&typeof t.fill=="function"&&typeof t.readUInt8=="function"}},{}],15:[function(e,t,n){(function(t,r){function u(e,t){var r={seen:[],stylize:f};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),y(t)?r.showHidden=t:t&&n._extend(r,t),T(r.showHidden)&&(r.showHidden=!1),T(r.depth)&&(r.depth=2),T(r.colors)&&(r.colors=!1),T(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=a),c(r,e,r.depth)}function a(e,t){var n=u.styles[t];return n?"["+u.colors[n][0]+"m"+e+"["+u.colors[n][1]+"m":e}function f(e,t){return e}function l(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function c(e,t,r){if(e.customInspect&&t&&A(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(r,e);return S(i)||(i=c(e,i,r)),i}var s=h(e,t);if(s)return s;var o=Object.keys(t),u=l(o);e.showHidden&&(o=Object.getOwnPropertyNames(t));if(L(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return p(t);if(o.length===0){if(A(t)){var a=t.name?": "+t.name:"";return e.stylize("[Function"+a+"]","special")}if(N(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(k(t))return e.stylize(Date.prototype.toString.call(t),"date");if(L(t))return p(t)}var f="",y=!1,b=["{","}"];g(t)&&(y=!0,b=["[","]"]);if(A(t)){var w=t.name?": "+t.name:"";f=" [Function"+w+"]"}N(t)&&(f=" "+RegExp.prototype.toString.call(t)),k(t)&&(f=" "+Date.prototype.toUTCString.call(t)),L(t)&&(f=" "+p(t));if(o.length!==0||!!y&&t.length!=0){if(r<0)return N(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var E;return y?E=d(e,t,r,u,o):E=o.map(function(n){return v(e,t,r,u,n,y)}),e.seen.pop(),m(E,f,b)}return b[0]+f+b[1]}function h(e,t){if(T(t))return e.stylize("undefined","undefined");if(S(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(E(t))return e.stylize(""+t,"number");if(y(t))return e.stylize(""+t,"boolean");if(b(t))return e.stylize("null","null")}function p(e){return"["+Error.prototype.toString.call(e)+"]"}function d(e,t,n,r,i){var s=[];for(var o=0,u=t.length;o-1&&(s?u=u.split("\n").map(function(e){return" "+e}).join("\n").substr(2):u="\n"+u.split("\n").map(function(e){return" "+e}).join("\n"))):u=e.stylize("[Circular]","special"));if(T(o)){if(s&&i.match(/^\d+$/))return u;o=JSON.stringify(""+i),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+u}function m(e,t,n){var r=0,i=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?n[0]+(t===""?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function g(e){return Array.isArray(e)}function y(e){return typeof e=="boolean"}function b(e){return e===null}function w(e){return e==null}function E(e){return typeof e=="number"}function S(e){return typeof e=="string"}function x(e){return typeof e=="symbol"}function T(e){return e===void 0}function N(e){return C(e)&&M(e)==="[object RegExp]"}function C(e){return typeof e=="object"&&e!==null}function k(e){return C(e)&&M(e)==="[object Date]"}function L(e){return C(e)&&(M(e)==="[object Error]"||e instanceof Error)}function A(e){return typeof e=="function"}function O(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}function M(e){return Object.prototype.toString.call(e)}function _(e){return e<10?"0"+e.toString(10):e.toString(10)}function P(){var e=new Date,t=[_(e.getHours()),_(e.getMinutes()),_(e.getSeconds())].join(":");return[e.getDate(),D[e.getMonth()],t].join(" ")}function H(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var i=/%[sdj%]/g;n.format=function(e){if(!S(e)){var t=[];for(var n=0;n=s)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(t){return"[Circular]"};default:return e}});for(var a=r[n];n0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),console.trace())}return this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var n=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var n,r,s,u;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;n=this._events[e],s=n.length,r=-1;if(n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(u=s;u-->0;)if(n[u]===t||n[u].listener&&n[u].listener===t){r=u;break}if(r<0)return this;n.length===1?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return arguments.length===0?this._events={}:this._events[e]&&delete this._events[e],this;if(arguments.length===0){for(t in this._events){if(t==="removeListener")continue;this.removeAllListeners(t)}return this.removeAllListeners("removeListener"),this._events={},this}n=this._events[e];if(i(n))this.removeListener(e,n);else while(n.length)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return!this._events||!this._events[e]?t=[]:i(this._events[e])?t=[this._events[e]]:t=this._events[e].slice(),t},r.listenerCount=function(e,t){var n;return!e._events||!e._events[t]?n=0:i(e._events[t])?n=1:n=e._events[t].length,n}},{}],17:[function(e,t,n){typeof Object.create=="function"?t.exports=function(t,n){t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,n){t.super_=n;var r=function(){};r.prototype=n.prototype,t.prototype=new r,t.prototype.constructor=t}},{}],18:[function(e,t,n){function i(){}var r=t.exports={};r.nextTick=function(){var e=typeof window!="undefined"&&window.setImmediate,t=typeof window!="undefined"&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};if(t){var n=[];return window.addEventListener("message",function(e){var t=e.source;if((t===window||t===null)&&e.data==="process-tick"){e.stopPropagation();if(n.length>0){var r=n.shift();r()}}},!0),function(t){n.push(t),window.postMessage("process-tick","*")}}return function(t){setTimeout(t,0)}}(),r.title="browser",r.browser=!0,r.env={},r.argv=[],r.on=i,r.once=i,r.off=i,r.emit=i,r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")}},{}],19:[function(e,t,n){t.exports=e(14)},{}],20:[function(e,t,n){t.exports=e(15)},{"./support/isBuffer":19,"/usr/local/lib/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":18,inherits:17}]},{},[9])(9)}),ace.define("ace/mode/html_worker",[],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("../worker/mirror").Mirror,o=e("./html/saxparser").SAXParser,u={"expected-doctype-but-got-start-tag":"info","expected-doctype-but-got-chars":"info","non-html-root":"info"},a=t.Worker=function(e){s.call(this,e),this.setTimeout(400),this.context=null};r.inherits(a,s),function(){this.setOptions=function(e){this.context=e.context},this.onUpdate=function(){var e=this.doc.getValue();if(!e)return;var t=new o,n=[],r=function(){};t.contentHandler={startDocument:r,endDocument:r,startElement:r,endElement:r,characters:r},t.errorHandler={error:function(e,t,r){n.push({row:t.line,column:t.column,text:e,type:u[r]||"error"})}},t.parse(e,this.context),this.sender.emit("error",n)}}.call(a.prototype)}) \ No newline at end of file diff --git a/javascripts/vendor/datatables-full/jquery.dataTables.min.js b/javascripts/vendor/datatables-full/jquery.dataTables.min.js index 9b747d4f9..0edc78957 100644 --- a/javascripts/vendor/datatables-full/jquery.dataTables.min.js +++ b/javascripts/vendor/datatables-full/jquery.dataTables.min.js @@ -1,17 +1,17 @@ -/*! DataTables 1.13.3 +/*! DataTables 1.13.5 * ©2008-2023 SpryMedia Ltd - datatables.net/license */ -!function(n){"use strict";"function"==typeof define&&define.amd?define(["jquery"],function(t){return n(t,window,document)}):"object"==typeof exports?module.exports=function(t,e){return t=t||window,e=e||("undefined"!=typeof window?require("jquery"):require("jquery")(t)),n(e,t,t.document)}:window.DataTable=n(jQuery,window,document)}(function(P,j,y,N){"use strict";function d(t){var e=parseInt(t,10);return!isNaN(e)&&isFinite(t)?e:null}function l(t,e,n){var a=typeof t,r="string"==a;return"number"==a||"bigint"==a||(!!h(t)||(e&&r&&(t=G(t,e)),n&&r&&(t=t.replace(q,"")),!isNaN(parseFloat(t))&&isFinite(t)))}function a(t,e,n){var a;return!!h(t)||((h(a=t)||"string"==typeof a)&&!!l(t.replace(V,""),e,n)||null)}function m(t,e,n,a){var r=[],o=0,i=e.length;if(a!==N)for(;o").appendTo(l)),h.nTHead=n[0],l.children("tbody")),n=(0===a.length&&(a=P("").insertAfter(n)),h.nTBody=a[0],l.children("tfoot"));if(0===(n=0===n.length&&0").appendTo(l):n).length||0===n.children().length?l.addClass(p.sNoFooter):0/g,X=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,J=new RegExp("(\\"+["/",".","*","+","?","|","(",")","[","]","{","}","\\","$","^","-"].join("|\\")+")","g"),q=/['\u00A0,$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,h=function(t){return!t||!0===t||"-"===t},G=function(t,e){return c[e]||(c[e]=new RegExp(Ot(e),"g")),"string"==typeof t&&"."!==e?t.replace(/\./g,"").replace(c[e],"."):t},H=function(t,e,n){var a=[],r=0,o=t.length;if(n!==N)for(;r").css({position:"fixed",top:0,left:-1*P(j).scrollLeft(),height:1,width:1,overflow:"hidden"}).append(P("
").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(P("
").css({width:"100%",height:10}))).appendTo("body")).children()).children(),e.barWidth=a[0].offsetWidth-a[0].clientWidth,e.bScrollOversize=100===r[0].offsetWidth&&100!==a[0].clientWidth,e.bScrollbarLeft=1!==Math.round(r.offset().left),e.bBounding=!!n[0].getBoundingClientRect().width,n.remove()),P.extend(t.oBrowser,C.__browser),t.oScroll.iBarWidth=C.__browser.barWidth}function et(t,e,n,a,r,o){var i,l=a,s=!1;for(n!==N&&(i=n,s=!0);l!==r;)t.hasOwnProperty(l)&&(i=s?e(i,t[l],l,t):t[l],s=!0,l+=o);return i}function nt(t,e){var n=C.defaults.column,a=t.aoColumns.length,n=P.extend({},C.models.oColumn,n,{nTh:e||y.createElement("th"),sTitle:n.sTitle||(e?e.innerHTML:""),aDataSort:n.aDataSort||[a],mData:n.mData||a,idx:a}),n=(t.aoColumns.push(n),t.aoPreSearchCols);n[a]=P.extend({},C.models.oSearch,n[a]),at(t,a,P(e).data())}function at(t,e,n){function a(t){return"string"==typeof t&&-1!==t.indexOf("@")}var e=t.aoColumns[e],r=t.oClasses,o=P(e.nTh),i=(e.sWidthOrig||(e.sWidthOrig=o.attr("width")||null,(u=(o.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/))&&(e.sWidthOrig=u[1])),n!==N&&null!==n&&(Q(n),w(C.defaults.column,n,!0),n.mDataProp===N||n.mData||(n.mData=n.mDataProp),n.sType&&(e._sManualType=n.sType),n.className&&!n.sClass&&(n.sClass=n.className),n.sClass&&o.addClass(n.sClass),u=e.sClass,P.extend(e,n),F(e,n,"sWidth","sWidthOrig"),u!==e.sClass&&(e.sClass=u+" "+e.sClass),n.iDataSort!==N&&(e.aDataSort=[n.iDataSort]),F(e,n,"aDataSort")),e.mData),l=A(i),s=e.mRender?A(e.mRender):null,u=(e._bAttrSrc=P.isPlainObject(i)&&(a(i.sort)||a(i.type)||a(i.filter)),e._setter=null,e.fnGetData=function(t,e,n){var a=l(t,e,N,n);return s&&e?s(a,e,t,n):a},e.fnSetData=function(t,e,n){return b(i)(t,e,n)},"number"!=typeof i&&(t._rowReadObject=!0),t.oFeatures.bSort||(e.bSortable=!1,o.addClass(r.sSortableNone)),-1!==P.inArray("asc",e.asSorting)),n=-1!==P.inArray("desc",e.asSorting);e.bSortable&&(u||n)?u&&!n?(e.sSortingClass=r.sSortableAsc,e.sSortingClassJUI=r.sSortJUIAscAllowed):!u&&n?(e.sSortingClass=r.sSortableDesc,e.sSortingClassJUI=r.sSortJUIDescAllowed):(e.sSortingClass=r.sSortable,e.sSortingClassJUI=r.sSortJUI):(e.sSortingClass=r.sSortableNone,e.sSortingClassJUI="")}function O(t){if(!1!==t.oFeatures.bAutoWidth){var e=t.aoColumns;ee(t);for(var n=0,a=e.length;ne&&t[r]--;-1!=a&&n===N&&t.splice(a,1)}function bt(n,a,t,e){function r(t,e){for(;t.childNodes.length;)t.removeChild(t.firstChild);t.innerHTML=S(n,a,e,"display")}var o,i,l=n.aoData[a];if("dom"!==t&&(t&&"auto"!==t||"dom"!==l.src)){var s=l.anCells;if(s)if(e!==N)r(s[e],e);else for(o=0,i=s.length;o").appendTo(r)),c=0,f=s.length;c=s.fnRecordsDisplay()?0:l,s.iInitDisplayStart=-1);var n=R(t,"aoPreDrawCallback","preDraw",[t]);if(-1!==P.inArray(!1,n))D(t,!1);else{var a=[],r=0,o=t.asStripeClasses,i=o.length,l=t.oLanguage,s="ssp"==E(t),u=t.aiDisplay,n=t._iDisplayStart,c=t.fnDisplayEnd();if(t.bDrawing=!0,t.bDeferLoading)t.bDeferLoading=!1,t.iDraw++,D(t,!1);else if(s){if(!t.bDestroying&&!e)return void xt(t)}else t.iDraw++;if(0!==u.length)for(var f=s?t.aoData.length:c,d=s?0:n;d",{class:i?o[0]:""}).append(P("",{valign:"top",colSpan:T(t),class:t.oClasses.sRowEmpty}).html(e))[0]}R(t,"aoHeaderCallback","header",[P(t.nTHead).children("tr")[0],ht(t),n,c,u]),R(t,"aoFooterCallback","footer",[P(t.nTFoot).children("tr")[0],ht(t),n,c,u]);s=P(t.nTBody);s.children().detach(),s.append(P(a)),R(t,"aoDrawCallback","draw",[t]),t.bSorted=!1,t.bFiltered=!1,t.bDrawing=!1}}function u(t,e){var n=t.oFeatures,a=n.bSort,n=n.bFilter;a&&ie(t),n?Rt(t,t.oPreviousSearch):t.aiDisplay=t.aiDisplayMaster.slice(),!0!==e&&(t._iDisplayStart=0),t._drawHold=e,v(t),t._drawHold=!1}function _t(t){for(var e,n,a,r,o,i,l,s=t.oClasses,u=P(t.nTable),u=P("
").insertBefore(u),c=t.oFeatures,f=P("
",{id:t.sTableId+"_wrapper",class:s.sWrapper+(t.nTFoot?"":" "+s.sNoFooter)}),d=(t.nHolding=u[0],t.nTableWrapper=f[0],t.nTableReinsertBefore=t.nTable.nextSibling,t.sDom.split("")),h=0;h")[0],"'"==(r=d[h+1])||'"'==r){for(o="",i=2;d[h+i]!=r;)o+=d[h+i],i++;"H"==o?o=s.sJUIHeader:"F"==o&&(o=s.sJUIFooter),-1!=o.indexOf(".")?(l=o.split("."),a.id=l[0].substr(1,l[0].length-1),a.className=l[1]):"#"==o.charAt(0)?a.id=o.substr(1,o.length-1):a.className=o,h+=i}f.append(a),f=P(a)}else if(">"==n)f=f.parent();else if("l"==n&&c.bPaginate&&c.bLengthChange)e=$t(t);else if("f"==n&&c.bFilter)e=Lt(t);else if("r"==n&&c.bProcessing)e=Zt(t);else if("t"==n)e=Kt(t);else if("i"==n&&c.bInfo)e=Ut(t);else if("p"==n&&c.bPaginate)e=zt(t);else if(0!==C.ext.feature.length)for(var p=C.ext.feature,g=0,b=p.length;g',s=(s=r.sSearch).match(/_INPUT_/)?s.replace("_INPUT_",l):s+l,l=P("
",{id:i.f?null:a+"_filter",class:t.sFilter}).append(P("
").addClass(t.sLength);return a.aanFeatures.l||(c[0].id=e+"_length"),c.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",l[0].outerHTML)),P("select",c).val(a._iDisplayLength).on("change.DT",function(t){Gt(a,P(this).val()),v(a)}),P(a.nTable).on("length.dt.DT",function(t,e,n){a===e&&P("select",c).val(n)}),c[0]}function zt(t){function c(t){v(t)}var e=t.sPaginationType,f=C.ext.pager[e],d="function"==typeof f,e=P("
").addClass(t.oClasses.sPaging+e)[0],h=t.aanFeatures;return d||f.fnInit(t,e,c),h.p||(e.id=t.sTableId+"_paginate",t.aoDrawCallback.push({fn:function(t){if(d)for(var e=t._iDisplayStart,n=t._iDisplayLength,a=t.fnRecordsDisplay(),r=-1===n,o=r?0:Math.ceil(e/n),i=r?1:Math.ceil(a/n),l=f(o,i),s=0,u=h.p.length;s",{id:t.aanFeatures.r?null:t.sTableId+"_processing",class:t.oClasses.sProcessing,role:"status"}).html(t.oLanguage.sProcessing).append("
").insertBefore(t.nTable)[0]}function D(t,e){t.oFeatures.bProcessing&&P(t.aanFeatures.r).css("display",e?"block":"none"),R(t,null,"processing",[t,e])}function Kt(t){var e,n,a,r,o,i,l,s,u,c,f,d,h=P(t.nTable),p=t.oScroll;return""===p.sX&&""===p.sY?t.nTable:(e=p.sX,n=p.sY,a=t.oClasses,o=(r=h.children("caption")).length?r[0]._captionSide:null,s=P(h[0].cloneNode(!1)),i=P(h[0].cloneNode(!1)),u=function(t){return t?M(t):null},(l=h.children("tfoot")).length||(l=null),s=P(f="
",{class:a.sScrollWrapper}).append(P(f,{class:a.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:e?u(e):"100%"}).append(P(f,{class:a.sScrollHeadInner}).css({"box-sizing":"content-box",width:p.sXInner||"100%"}).append(s.removeAttr("id").css("margin-left",0).append("top"===o?r:null).append(h.children("thead"))))).append(P(f,{class:a.sScrollBody}).css({position:"relative",overflow:"auto",width:u(e)}).append(h)),l&&s.append(P(f,{class:a.sScrollFoot}).css({overflow:"hidden",border:0,width:e?u(e):"100%"}).append(P(f,{class:a.sScrollFootInner}).append(i.removeAttr("id").css("margin-left",0).append("bottom"===o?r:null).append(h.children("tfoot"))))),u=s.children(),c=u[0],f=u[1],d=l?u[2]:null,e&&P(f).on("scroll.DT",function(t){var e=this.scrollLeft;c.scrollLeft=e,l&&(d.scrollLeft=e)}),P(f).css("max-height",n),p.bCollapse||P(f).css("height",n),t.nScrollHead=c,t.nScrollBody=f,t.nScrollFoot=d,t.aoDrawCallback.push({fn:Qt,sName:"scrolling"}),s[0])}function Qt(n){function t(t){(t=t.style).paddingTop="0",t.paddingBottom="0",t.borderTopWidth="0",t.borderBottomWidth="0",t.height=0}var e,a,r,o,i,l=n.oScroll,s=l.sX,u=l.sXInner,c=l.sY,l=l.iBarWidth,f=P(n.nScrollHead),d=f[0].style,h=f.children("div"),p=h[0].style,h=h.children("table"),g=n.nScrollBody,b=P(g),m=g.style,S=P(n.nScrollFoot).children("div"),v=S.children("table"),y=P(n.nTHead),D=P(n.nTable),_=D[0],C=_.style,w=n.nTFoot?P(n.nTFoot):null,T=n.oBrowser,x=T.bScrollOversize,A=(H(n.aoColumns,"nTh"),[]),I=[],F=[],L=[],R=g.scrollHeight>g.clientHeight;n.scrollBarVis!==R&&n.scrollBarVis!==N?(n.scrollBarVis=R,O(n)):(n.scrollBarVis=R,D.children("thead, tfoot").remove(),w&&(R=w.clone().prependTo(D),i=w.find("tr"),a=R.find("tr"),R.find("[id]").removeAttr("id")),R=y.clone().prependTo(D),y=y.find("tr"),e=R.find("tr"),R.find("th, td").removeAttr("tabindex"),R.find("[id]").removeAttr("id"),s||(m.width="100%",f[0].style.width="100%"),P.each(wt(n,R),function(t,e){r=rt(n,t),e.style.width=n.aoColumns[r].sWidth}),w&&k(function(t){t.style.width=""},a),f=D.outerWidth(),""===s?(C.width="100%",x&&(D.find("tbody").height()>g.offsetHeight||"scroll"==b.css("overflow-y"))&&(C.width=M(D.outerWidth()-l)),f=D.outerWidth()):""!==u&&(C.width=M(u),f=D.outerWidth()),k(t,e),k(function(t){var e=j.getComputedStyle?j.getComputedStyle(t).width:M(P(t).width());F.push(t.innerHTML),A.push(e)},e),k(function(t,e){t.style.width=A[e]},y),P(e).css("height",0),w&&(k(t,a),k(function(t){L.push(t.innerHTML),I.push(M(P(t).css("width")))},a),k(function(t,e){t.style.width=I[e]},i),P(a).height(0)),k(function(t,e){t.innerHTML='
'+F[e]+"
",t.childNodes[0].style.height="0",t.childNodes[0].style.overflow="hidden",t.style.width=A[e]},e),w&&k(function(t,e){t.innerHTML='
'+L[e]+"
",t.childNodes[0].style.height="0",t.childNodes[0].style.overflow="hidden",t.style.width=I[e]},a),Math.round(D.outerWidth())g.offsetHeight||"scroll"==b.css("overflow-y")?f+l:f,x&&(g.scrollHeight>g.offsetHeight||"scroll"==b.css("overflow-y"))&&(C.width=M(o-l)),""!==s&&""===u||W(n,1,"Possible column misalignment",6)):o="100%",m.width=M(o),d.width=M(o),w&&(n.nScrollFoot.style.width=M(o)),c||x&&(m.height=M(_.offsetHeight+l)),R=D.outerWidth(),h[0].style.width=M(R),p.width=M(R),y=D.height()>g.clientHeight||"scroll"==b.css("overflow-y"),p[i="padding"+(T.bScrollbarLeft?"Left":"Right")]=y?l+"px":"0px",w&&(v[0].style.width=M(R),S[0].style.width=M(R),S[0].style[i]=y?l+"px":"0px"),D.children("colgroup").insertBefore(D.children("thead")),b.trigger("scroll"),!n.bSorted&&!n.bFiltered||n._drawHold||(g.scrollTop=0))}function k(t,e,n){for(var a,r,o=0,i=0,l=e.length;i/g;function ee(t){var e,n,a=t.nTable,r=t.aoColumns,o=t.oScroll,i=o.sY,l=o.sX,o=o.sXInner,s=r.length,u=it(t,"bVisible"),c=P("th",t.nTHead),f=a.getAttribute("width"),d=a.parentNode,h=!1,p=t.oBrowser,g=p.bScrollOversize,b=a.style.width;for(b&&-1!==b.indexOf("%")&&(f=b),D=0;D").appendTo(b.find("tbody")));for(b.find("thead, tfoot").remove(),b.append(P(t.nTHead).clone()).append(P(t.nTFoot).clone()),b.find("tfoot th, tfoot td").css("width",""),c=wt(t,b.find("thead")[0]),D=0;D").css({width:e.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(t.aoData.length)for(D=0;D").css(l||i?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(b).appendTo(d),y=(l&&o?b.width(o):l?(b.css("width","auto"),b.removeAttr("width"),b.width()").css("width",M(t)).appendTo(e||y.body))[0].offsetWidth,t.remove(),e):0}function re(t,e){var n,a=oe(t,e);return a<0?null:(n=t.aoData[a]).nTr?n.anCells[e]:P("").html(S(t,a,e,"display"))[0]}function oe(t,e){for(var n,a=-1,r=-1,o=0,i=t.aoData.length;oa&&(a=n.length,r=o);return r}function M(t){return null===t?"0px":"number"==typeof t?t<0?"0px":t+"px":t.match(/\d$/)?t+"px":t}function I(t){function e(t){t.length&&!Array.isArray(t[0])?h.push(t):P.merge(h,t)}var n,a,r,o,i,l,s,u=[],c=t.aoColumns,f=t.aaSortingFixed,d=P.isPlainObject(f),h=[];for(Array.isArray(f)&&e(f),d&&f.pre&&e(f.pre),e(t.aaSorting),d&&f.post&&e(f.post),n=0;n/g,""),u=i.nTh;u.removeAttribute("aria-sort"),i=i.bSortable?s+("asc"===(0=o.length?[0,e[1]]:e)})),t.search!==N&&P.extend(n.oPreviousSearch,Bt(t.search)),t.columns){for(a=0,r=t.columns.length;a").addClass(e),P("td",n).addClass(e).html(t)[0].colSpan=T(o),l.push(n[0]))}var l=[];i(e,n),t._details&&t._details.detach(),t._details=P(l),t._detailsShow&&t._details.insertAfter(t.nTr)}function xe(t,e){var n=t.context;if(n.length&&t.length){var a=n[0].aoData[t[0]];if(a._details){(a._detailsShow=e)?(a._details.insertAfter(a.nTr),P(a.nTr).addClass("dt-hasChild")):(a._details.detach(),P(a.nTr).removeClass("dt-hasChild")),R(n[0],null,"childRow",[e,t.row(t[0])]);var s=n[0],r=new B(s),a=".dt.DT_details",e="draw"+a,t="column-sizing"+a,a="destroy"+a,u=s.aoData;if(r.off(e+" "+t+" "+a),H(u,"_details").length>0){r.on(e,function(t,e){if(s!==e)return;r.rows({page:"current"}).eq(0).each(function(t){var e=u[t];if(e._detailsShow)e._details.insertAfter(e.nTr)})});r.on(t,function(t,e,n,a){if(s!==e)return;var r,o=T(e);for(var i=0,l=u.length;it?new B(e[t],this[t]):null},filter:function(t){var e=[];if(o.filter)e=o.filter.call(this,t,this);else for(var n=0,a=this.length;n").appendTo(t);p(u,n)}else{switch(g=null,b=n,a=c.iTabIndex,n){case"ellipsis":t.append('');break;case"first":g=S.sFirst,0===d&&(a=-1,b+=" "+o);break;case"previous":g=S.sPrevious,0===d&&(a=-1,b+=" "+o);break;case"next":g=S.sNext,0!==h&&d!==h-1||(a=-1,b+=" "+o);break;case"last":g=S.sLast,0!==h&&d!==h-1||(a=-1,b+=" "+o);break;default:g=c.fnFormatNumber(n+1),b=d===n?m.sPageButtonActive:""}null!==g&&(u=c.oInit.pagingTag||"a",r=-1!==b.indexOf(o),me(P("<"+u+">",{class:m.sPageButton+" "+b,"aria-controls":c.sTableId,"aria-disabled":r?"true":null,"aria-label":v[n],"aria-role":"link","aria-current":b===m.sPageButtonActive?"page":null,"data-dt-idx":n,tabindex:a,id:0===f&&"string"==typeof n?c.sTableId+"_"+n:null}).html(g).appendTo(t),{action:n},i))}}var g,b,n,m=c.oClasses,S=c.oLanguage.oPaginate,v=c.oLanguage.oAria.paginate||{};try{n=P(t).find(y.activeElement).data("dt-idx")}catch(t){}p(P(t).empty(),e),n!==N&&P(t).find("[data-dt-idx="+n+"]").trigger("focus")}}}),P.extend(C.ext.type.detect,[function(t,e){e=e.oLanguage.sDecimal;return l(t,e)?"num"+e:null},function(t,e){var n;return(!t||t instanceof Date||X.test(t))&&(null!==(n=Date.parse(t))&&!isNaN(n)||h(t))?"date":null},function(t,e){e=e.oLanguage.sDecimal;return l(t,e,!0)?"num-fmt"+e:null},function(t,e){e=e.oLanguage.sDecimal;return a(t,e)?"html-num"+e:null},function(t,e){e=e.oLanguage.sDecimal;return a(t,e,!0)?"html-num-fmt"+e:null},function(t,e){return h(t)||"string"==typeof t&&-1!==t.indexOf("<")?"html":null}]),P.extend(C.ext.type.search,{html:function(t){return h(t)?t:"string"==typeof t?t.replace(U," ").replace(V,""):""},string:function(t){return!h(t)&&"string"==typeof t?t.replace(U," "):t}});function ke(t,e,n,a){var r;return 0===t||t&&"-"!==t?"number"==(r=typeof t)||"bigint"==r?t:((t=e?G(t,e):t).replace&&(n&&(t=t.replace(n,"")),a&&(t=t.replace(a,""))),+t):-1/0}function Me(n){P.each({num:function(t){return ke(t,n)},"num-fmt":function(t){return ke(t,n,q)},"html-num":function(t){return ke(t,n,V)},"html-num-fmt":function(t){return ke(t,n,V,q)}},function(t,e){p.type.order[t+n+"-pre"]=e,t.match(/^html\-/)&&(p.type.search[t+n]=p.type.search.html)})}P.extend(p.type.order,{"date-pre":function(t){t=Date.parse(t);return isNaN(t)?-1/0:t},"html-pre":function(t){return h(t)?"":t.replace?t.replace(/<.*?>/g,"").toLowerCase():t+""},"string-pre":function(t){return h(t)?"":"string"==typeof t?t.toLowerCase():t.toString?t.toString():""},"string-asc":function(t,e){return t").addClass(l.sSortJUIWrapper).append(o.contents()).append(P("").addClass(l.sSortIcon+" "+i.sSortingClassJUI)).appendTo(o),P(r.nTable).on("order.dt.DT",function(t,e,n,a){r===e&&(e=i.idx,o.removeClass(l.sSortAsc+" "+l.sSortDesc).addClass("asc"==a[e]?l.sSortAsc:"desc"==a[e]?l.sSortDesc:i.sSortingClass),o.find("span."+l.sSortIcon).removeClass(l.sSortJUIAsc+" "+l.sSortJUIDesc+" "+l.sSortJUI+" "+l.sSortJUIAscAllowed+" "+l.sSortJUIDescAllowed).addClass("asc"==a[e]?l.sSortJUIAsc:"desc"==a[e]?l.sSortJUIDesc:i.sSortingClassJUI))})}}});function We(t){return"string"==typeof(t=Array.isArray(t)?t.join(","):t)?t.replace(/&/g,"&").replace(//g,">").replace(/"/g,"""):t}function Ee(t,e,n,a,r){return j.moment?t[e](r):j.luxon?t[n](r):a?t[a](r):t}var Be=!1;function Ue(t,e,n){var a;if(j.moment){if(!(a=j.moment.utc(t,e,n,!0)).isValid())return null}else if(j.luxon){if(!(a=e&&"string"==typeof t?j.luxon.DateTime.fromFormat(t,e):j.luxon.DateTime.fromISO(t)).isValid)return null;a.setLocale(n)}else e?(Be||alert("DataTables warning: Formatted date without Moment.js or Luxon - https://datatables.net/tn/17"),Be=!0):a=new Date(t);return a}function Ve(s){return function(a,r,o,i){0===arguments.length?(o="en",a=r=null):1===arguments.length?(o="en",r=a,a=null):2===arguments.length&&(o=r,r=a,a=null);var l="datetime-"+r;return C.ext.type.order[l]||(C.ext.type.detect.unshift(function(t){return t===l&&l}),C.ext.type.order[l+"-asc"]=function(t,e){t=t.valueOf(),e=e.valueOf();return t===e?0:t").appendTo(l)),h.nTHead=n[0],l.children("tbody")),n=(0===a.length&&(a=P("").insertAfter(n)),h.nTBody=a[0],l.children("tfoot"));if(0===(n=0===n.length&&0").appendTo(l):n).length||0===n.children().length?l.addClass(p.sNoFooter):0/g,X=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,J=new RegExp("(\\"+["/",".","*","+","?","|","(",")","[","]","{","}","\\","$","^","-"].join("|\\")+")","g"),q=/['\u00A0,$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,h=function(t){return!t||!0===t||"-"===t},$=function(t,e){return c[e]||(c[e]=new RegExp(Ot(e),"g")),"string"==typeof t&&"."!==e?t.replace(/\./g,"").replace(c[e],"."):t},N=function(t,e,n){var a=[],r=0,o=t.length;if(n!==H)for(;r").css({position:"fixed",top:0,left:-1*P(j).scrollLeft(),height:1,width:1,overflow:"hidden"}).append(P("
").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(P("
").css({width:"100%",height:10}))).appendTo("body")).children()).children(),e.barWidth=a[0].offsetWidth-a[0].clientWidth,e.bScrollOversize=100===r[0].offsetWidth&&100!==a[0].clientWidth,e.bScrollbarLeft=1!==Math.round(r.offset().left),e.bBounding=!!n[0].getBoundingClientRect().width,n.remove()),P.extend(t.oBrowser,w.__browser),t.oScroll.iBarWidth=w.__browser.barWidth}function et(t,e,n,a,r,o){var i,l=a,s=!1;for(n!==H&&(i=n,s=!0);l!==r;)t.hasOwnProperty(l)&&(i=s?e(i,t[l],l,t):t[l],s=!0,l+=o);return i}function nt(t,e){var n=w.defaults.column,a=t.aoColumns.length,n=P.extend({},w.models.oColumn,n,{nTh:e||y.createElement("th"),sTitle:n.sTitle||(e?e.innerHTML:""),aDataSort:n.aDataSort||[a],mData:n.mData||a,idx:a}),n=(t.aoColumns.push(n),t.aoPreSearchCols);n[a]=P.extend({},w.models.oSearch,n[a]),at(t,a,P(e).data())}function at(t,e,n){function a(t){return"string"==typeof t&&-1!==t.indexOf("@")}var e=t.aoColumns[e],r=t.oClasses,o=P(e.nTh),i=(e.sWidthOrig||(e.sWidthOrig=o.attr("width")||null,(u=(o.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/))&&(e.sWidthOrig=u[1])),n!==H&&null!==n&&(Q(n),C(w.defaults.column,n,!0),n.mDataProp===H||n.mData||(n.mData=n.mDataProp),n.sType&&(e._sManualType=n.sType),n.className&&!n.sClass&&(n.sClass=n.className),n.sClass&&o.addClass(n.sClass),u=e.sClass,P.extend(e,n),F(e,n,"sWidth","sWidthOrig"),u!==e.sClass&&(e.sClass=u+" "+e.sClass),n.iDataSort!==H&&(e.aDataSort=[n.iDataSort]),F(e,n,"aDataSort")),e.mData),l=A(i),s=e.mRender?A(e.mRender):null,u=(e._bAttrSrc=P.isPlainObject(i)&&(a(i.sort)||a(i.type)||a(i.filter)),e._setter=null,e.fnGetData=function(t,e,n){var a=l(t,e,H,n);return s&&e?s(a,e,t,n):a},e.fnSetData=function(t,e,n){return b(i)(t,e,n)},"number"==typeof i||e._isArrayHost||(t._rowReadObject=!0),t.oFeatures.bSort||(e.bSortable=!1,o.addClass(r.sSortableNone)),-1!==P.inArray("asc",e.asSorting)),n=-1!==P.inArray("desc",e.asSorting);e.bSortable&&(u||n)?u&&!n?(e.sSortingClass=r.sSortableAsc,e.sSortingClassJUI=r.sSortJUIAscAllowed):!u&&n?(e.sSortingClass=r.sSortableDesc,e.sSortingClassJUI=r.sSortJUIDescAllowed):(e.sSortingClass=r.sSortable,e.sSortingClassJUI=r.sSortJUI):(e.sSortingClass=r.sSortableNone,e.sSortingClassJUI="")}function O(t){if(!1!==t.oFeatures.bAutoWidth){var e=t.aoColumns;ee(t);for(var n=0,a=e.length;ne&&t[r]--;-1!=a&&n===H&&t.splice(a,1)}function bt(n,a,t,e){function r(t,e){for(;t.childNodes.length;)t.removeChild(t.firstChild);t.innerHTML=S(n,a,e,"display")}var o,i,l=n.aoData[a];if("dom"!==t&&(t&&"auto"!==t||"dom"!==l.src)){var s=l.anCells;if(s)if(e!==H)r(s[e],e);else for(o=0,i=s.length;o").appendTo(r)),c=0,f=s.length;c=s.fnRecordsDisplay()?0:l,s.iInitDisplayStart=-1);var n=R(t,"aoPreDrawCallback","preDraw",[t]);if(-1!==P.inArray(!1,n))D(t,!1);else{var a=[],r=0,o=t.asStripeClasses,i=o.length,l=t.oLanguage,s="ssp"==E(t),u=t.aiDisplay,n=t._iDisplayStart,c=t.fnDisplayEnd();if(t.bDrawing=!0,t.bDeferLoading)t.bDeferLoading=!1,t.iDraw++,D(t,!1);else if(s){if(!t.bDestroying&&!e)return void xt(t)}else t.iDraw++;if(0!==u.length)for(var f=s?t.aoData.length:c,d=s?0:n;d",{class:i?o[0]:""}).append(P("",{valign:"top",colSpan:T(t),class:t.oClasses.sRowEmpty}).html(e))[0]}R(t,"aoHeaderCallback","header",[P(t.nTHead).children("tr")[0],ht(t),n,c,u]),R(t,"aoFooterCallback","footer",[P(t.nTFoot).children("tr")[0],ht(t),n,c,u]);s=P(t.nTBody);s.children().detach(),s.append(P(a)),R(t,"aoDrawCallback","draw",[t]),t.bSorted=!1,t.bFiltered=!1,t.bDrawing=!1}}function u(t,e){var n=t.oFeatures,a=n.bSort,n=n.bFilter;a&&ie(t),n?Rt(t,t.oPreviousSearch):t.aiDisplay=t.aiDisplayMaster.slice(),!0!==e&&(t._iDisplayStart=0),t._drawHold=e,v(t),t._drawHold=!1}function _t(t){for(var e,n,a,r,o,i,l,s=t.oClasses,u=P(t.nTable),u=P("
").insertBefore(u),c=t.oFeatures,f=P("
",{id:t.sTableId+"_wrapper",class:s.sWrapper+(t.nTFoot?"":" "+s.sNoFooter)}),d=(t.nHolding=u[0],t.nTableWrapper=f[0],t.nTableReinsertBefore=t.nTable.nextSibling,t.sDom.split("")),h=0;h")[0],"'"==(r=d[h+1])||'"'==r){for(o="",i=2;d[h+i]!=r;)o+=d[h+i],i++;"H"==o?o=s.sJUIHeader:"F"==o&&(o=s.sJUIFooter),-1!=o.indexOf(".")?(l=o.split("."),a.id=l[0].substr(1,l[0].length-1),a.className=l[1]):"#"==o.charAt(0)?a.id=o.substr(1,o.length-1):a.className=o,h+=i}f.append(a),f=P(a)}else if(">"==n)f=f.parent();else if("l"==n&&c.bPaginate&&c.bLengthChange)e=Gt(t);else if("f"==n&&c.bFilter)e=Lt(t);else if("r"==n&&c.bProcessing)e=Zt(t);else if("t"==n)e=Kt(t);else if("i"==n&&c.bInfo)e=Ut(t);else if("p"==n&&c.bPaginate)e=zt(t);else if(0!==w.ext.feature.length)for(var p=w.ext.feature,g=0,b=p.length;g',s=(s=r.sSearch).match(/_INPUT_/)?s.replace("_INPUT_",l):s+l,l=P("
",{id:i.f?null:a+"_filter",class:t.sFilter}).append(P("
").addClass(t.sLength);return a.aanFeatures.l||(c[0].id=e+"_length"),c.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",l[0].outerHTML)),P("select",c).val(a._iDisplayLength).on("change.DT",function(t){$t(a,P(this).val()),v(a)}),P(a.nTable).on("length.dt.DT",function(t,e,n){a===e&&P("select",c).val(n)}),c[0]}function zt(t){function c(t){v(t)}var e=t.sPaginationType,f=w.ext.pager[e],d="function"==typeof f,e=P("
").addClass(t.oClasses.sPaging+e)[0],h=t.aanFeatures;return d||f.fnInit(t,e,c),h.p||(e.id=t.sTableId+"_paginate",t.aoDrawCallback.push({fn:function(t){if(d)for(var e=t._iDisplayStart,n=t._iDisplayLength,a=t.fnRecordsDisplay(),r=-1===n,o=r?0:Math.ceil(e/n),i=r?1:Math.ceil(a/n),l=f(o,i),s=0,u=h.p.length;s",{id:t.aanFeatures.r?null:t.sTableId+"_processing",class:t.oClasses.sProcessing,role:"status"}).html(t.oLanguage.sProcessing).append("
").insertBefore(t.nTable)[0]}function D(t,e){t.oFeatures.bProcessing&&P(t.aanFeatures.r).css("display",e?"block":"none"),R(t,null,"processing",[t,e])}function Kt(t){var e,n,a,r,o,i,l,s,u,c,f,d,h=P(t.nTable),p=t.oScroll;return""===p.sX&&""===p.sY?t.nTable:(e=p.sX,n=p.sY,a=t.oClasses,o=(r=h.children("caption")).length?r[0]._captionSide:null,s=P(h[0].cloneNode(!1)),i=P(h[0].cloneNode(!1)),u=function(t){return t?M(t):null},(l=h.children("tfoot")).length||(l=null),s=P(f="
",{class:a.sScrollWrapper}).append(P(f,{class:a.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:e?u(e):"100%"}).append(P(f,{class:a.sScrollHeadInner}).css({"box-sizing":"content-box",width:p.sXInner||"100%"}).append(s.removeAttr("id").css("margin-left",0).append("top"===o?r:null).append(h.children("thead"))))).append(P(f,{class:a.sScrollBody}).css({position:"relative",overflow:"auto",width:u(e)}).append(h)),l&&s.append(P(f,{class:a.sScrollFoot}).css({overflow:"hidden",border:0,width:e?u(e):"100%"}).append(P(f,{class:a.sScrollFootInner}).append(i.removeAttr("id").css("margin-left",0).append("bottom"===o?r:null).append(h.children("tfoot"))))),u=s.children(),c=u[0],f=u[1],d=l?u[2]:null,e&&P(f).on("scroll.DT",function(t){var e=this.scrollLeft;c.scrollLeft=e,l&&(d.scrollLeft=e)}),P(f).css("max-height",n),p.bCollapse||P(f).css("height",n),t.nScrollHead=c,t.nScrollBody=f,t.nScrollFoot=d,t.aoDrawCallback.push({fn:Qt,sName:"scrolling"}),s[0])}function Qt(n){function t(t){(t=t.style).paddingTop="0",t.paddingBottom="0",t.borderTopWidth="0",t.borderBottomWidth="0",t.height=0}var e,a,r,o,i,l=n.oScroll,s=l.sX,u=l.sXInner,c=l.sY,l=l.iBarWidth,f=P(n.nScrollHead),d=f[0].style,h=f.children("div"),p=h[0].style,h=h.children("table"),g=n.nScrollBody,b=P(g),m=g.style,S=P(n.nScrollFoot).children("div"),v=S.children("table"),y=P(n.nTHead),D=P(n.nTable),_=D[0],w=_.style,C=n.nTFoot?P(n.nTFoot):null,T=n.oBrowser,x=T.bScrollOversize,A=(N(n.aoColumns,"nTh"),[]),I=[],F=[],L=[],R=g.scrollHeight>g.clientHeight;n.scrollBarVis!==R&&n.scrollBarVis!==H?(n.scrollBarVis=R,O(n)):(n.scrollBarVis=R,D.children("thead, tfoot").remove(),C&&(R=C.clone().prependTo(D),i=C.find("tr"),a=R.find("tr"),R.find("[id]").removeAttr("id")),R=y.clone().prependTo(D),y=y.find("tr"),e=R.find("tr"),R.find("th, td").removeAttr("tabindex"),R.find("[id]").removeAttr("id"),s||(m.width="100%",f[0].style.width="100%"),P.each(Ct(n,R),function(t,e){r=rt(n,t),e.style.width=n.aoColumns[r].sWidth}),C&&k(function(t){t.style.width=""},a),f=D.outerWidth(),""===s?(w.width="100%",x&&(D.find("tbody").height()>g.offsetHeight||"scroll"==b.css("overflow-y"))&&(w.width=M(D.outerWidth()-l)),f=D.outerWidth()):""!==u&&(w.width=M(u),f=D.outerWidth()),k(t,e),k(function(t){var e=j.getComputedStyle?j.getComputedStyle(t).width:M(P(t).width());F.push(t.innerHTML),A.push(e)},e),k(function(t,e){t.style.width=A[e]},y),P(e).css("height",0),C&&(k(t,a),k(function(t){L.push(t.innerHTML),I.push(M(P(t).css("width")))},a),k(function(t,e){t.style.width=I[e]},i),P(a).height(0)),k(function(t,e){t.innerHTML='
'+F[e]+"
",t.childNodes[0].style.height="0",t.childNodes[0].style.overflow="hidden",t.style.width=A[e]},e),C&&k(function(t,e){t.innerHTML='
'+L[e]+"
",t.childNodes[0].style.height="0",t.childNodes[0].style.overflow="hidden",t.style.width=I[e]},a),Math.round(D.outerWidth())g.offsetHeight||"scroll"==b.css("overflow-y")?f+l:f,x&&(g.scrollHeight>g.offsetHeight||"scroll"==b.css("overflow-y"))&&(w.width=M(o-l)),""!==s&&""===u||W(n,1,"Possible column misalignment",6)):o="100%",m.width=M(o),d.width=M(o),C&&(n.nScrollFoot.style.width=M(o)),c||x&&(m.height=M(_.offsetHeight+l)),R=D.outerWidth(),h[0].style.width=M(R),p.width=M(R),y=D.height()>g.clientHeight||"scroll"==b.css("overflow-y"),p[i="padding"+(T.bScrollbarLeft?"Left":"Right")]=y?l+"px":"0px",C&&(v[0].style.width=M(R),S[0].style.width=M(R),S[0].style[i]=y?l+"px":"0px"),D.children("colgroup").insertBefore(D.children("thead")),b.trigger("scroll"),!n.bSorted&&!n.bFiltered||n._drawHold||(g.scrollTop=0))}function k(t,e,n){for(var a,r,o=0,i=0,l=e.length;i/g;function ee(t){var e,n,a=t.nTable,r=t.aoColumns,o=t.oScroll,i=o.sY,l=o.sX,o=o.sXInner,s=r.length,u=it(t,"bVisible"),c=P("th",t.nTHead),f=a.getAttribute("width"),d=a.parentNode,h=!1,p=t.oBrowser,g=p.bScrollOversize,b=a.style.width;for(b&&-1!==b.indexOf("%")&&(f=b),D=0;D").appendTo(b.find("tbody")));for(b.find("thead, tfoot").remove(),b.append(P(t.nTHead).clone()).append(P(t.nTFoot).clone()),b.find("tfoot th, tfoot td").css("width",""),c=Ct(t,b.find("thead")[0]),D=0;D").css({width:e.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(t.aoData.length)for(D=0;D").css(l||i?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(b).appendTo(d),y=(l&&o?b.width(o):l?(b.css("width","auto"),b.removeAttr("width"),b.width()").css("width",M(t)).appendTo(e||y.body))[0].offsetWidth,t.remove(),e):0}function re(t,e){var n,a=oe(t,e);return a<0?null:(n=t.aoData[a]).nTr?n.anCells[e]:P("").html(S(t,a,e,"display"))[0]}function oe(t,e){for(var n,a=-1,r=-1,o=0,i=t.aoData.length;oa&&(a=n.length,r=o);return r}function M(t){return null===t?"0px":"number"==typeof t?t<0?"0px":t+"px":t.match(/\d$/)?t+"px":t}function I(t){function e(t){t.length&&!Array.isArray(t[0])?h.push(t):P.merge(h,t)}var n,a,r,o,i,l,s,u=[],c=t.aoColumns,f=t.aaSortingFixed,d=P.isPlainObject(f),h=[];for(Array.isArray(f)&&e(f),d&&f.pre&&e(f.pre),e(t.aaSorting),d&&f.post&&e(f.post),n=0;n/g,""),u=i.nTh;u.removeAttribute("aria-sort"),i=i.bSortable?s+("asc"===(0=o.length?[0,e[1]]:e)})),t.search!==H&&P.extend(n.oPreviousSearch,Bt(t.search)),t.columns){for(a=0,r=t.columns.length;a").addClass(e),P("td",n).addClass(e).html(t)[0].colSpan=T(o),l.push(n[0]))}var l=[];i(e,n),t._details&&t._details.detach(),t._details=P(l),t._detailsShow&&t._details.insertAfter(t.nTr)}function xe(t,e){var n=t.context;if(n.length&&t.length){var a=n[0].aoData[t[0]];if(a._details){(a._detailsShow=e)?(a._details.insertAfter(a.nTr),P(a.nTr).addClass("dt-hasChild")):(a._details.detach(),P(a.nTr).removeClass("dt-hasChild")),R(n[0],null,"childRow",[e,t.row(t[0])]);var s=n[0],r=new B(s),a=".dt.DT_details",e="draw"+a,t="column-sizing"+a,a="destroy"+a,u=s.aoData;if(r.off(e+" "+t+" "+a),N(u,"_details").length>0){r.on(e,function(t,e){if(s!==e)return;r.rows({page:"current"}).eq(0).each(function(t){var e=u[t];if(e._detailsShow)e._details.insertAfter(e.nTr)})});r.on(t,function(t,e,n,a){if(s!==e)return;var r,o=T(e);for(var i=0,l=u.length;it?new B(e[t],this[t]):null},filter:function(t){var e=[];if(o.filter)e=o.filter.call(this,t,this);else for(var n=0,a=this.length;n").appendTo(t);p(u,n)}else{switch(g=null,b=n,a=c.iTabIndex,n){case"ellipsis":t.append('');break;case"first":g=S.sFirst,0===d&&(a=-1,b+=" "+o);break;case"previous":g=S.sPrevious,0===d&&(a=-1,b+=" "+o);break;case"next":g=S.sNext,0!==h&&d!==h-1||(a=-1,b+=" "+o);break;case"last":g=S.sLast,0!==h&&d!==h-1||(a=-1,b+=" "+o);break;default:g=c.fnFormatNumber(n+1),b=d===n?m.sPageButtonActive:""}null!==g&&(u=c.oInit.pagingTag||"a",r=-1!==b.indexOf(o),me(P("<"+u+">",{class:m.sPageButton+" "+b,"aria-controls":c.sTableId,"aria-disabled":r?"true":null,"aria-label":v[n],role:"link","aria-current":b===m.sPageButtonActive?"page":null,"data-dt-idx":n,tabindex:a,id:0===f&&"string"==typeof n?c.sTableId+"_"+n:null}).html(g).appendTo(t),{action:n},i))}}var g,b,n,m=c.oClasses,S=c.oLanguage.oPaginate,v=c.oLanguage.oAria.paginate||{};try{n=P(t).find(y.activeElement).data("dt-idx")}catch(t){}p(P(t).empty(),e),n!==H&&P(t).find("[data-dt-idx="+n+"]").trigger("focus")}}}),P.extend(w.ext.type.detect,[function(t,e){e=e.oLanguage.sDecimal;return l(t,e)?"num"+e:null},function(t,e){var n;return(!t||t instanceof Date||X.test(t))&&(null!==(n=Date.parse(t))&&!isNaN(n)||h(t))?"date":null},function(t,e){e=e.oLanguage.sDecimal;return l(t,e,!0)?"num-fmt"+e:null},function(t,e){e=e.oLanguage.sDecimal;return a(t,e)?"html-num"+e:null},function(t,e){e=e.oLanguage.sDecimal;return a(t,e,!0)?"html-num-fmt"+e:null},function(t,e){return h(t)||"string"==typeof t&&-1!==t.indexOf("<")?"html":null}]),P.extend(w.ext.type.search,{html:function(t){return h(t)?t:"string"==typeof t?t.replace(U," ").replace(V,""):""},string:function(t){return!h(t)&&"string"==typeof t?t.replace(U," "):t}});function ke(t,e,n,a){var r;return 0===t||t&&"-"!==t?"number"==(r=typeof t)||"bigint"==r?t:((t=e?$(t,e):t).replace&&(n&&(t=t.replace(n,"")),a&&(t=t.replace(a,""))),+t):-1/0}function Me(n){P.each({num:function(t){return ke(t,n)},"num-fmt":function(t){return ke(t,n,q)},"html-num":function(t){return ke(t,n,V)},"html-num-fmt":function(t){return ke(t,n,V,q)}},function(t,e){p.type.order[t+n+"-pre"]=e,t.match(/^html\-/)&&(p.type.search[t+n]=p.type.search.html)})}P.extend(p.type.order,{"date-pre":function(t){t=Date.parse(t);return isNaN(t)?-1/0:t},"html-pre":function(t){return h(t)?"":t.replace?t.replace(/<.*?>/g,"").toLowerCase():t+""},"string-pre":function(t){return h(t)?"":"string"==typeof t?t.toLowerCase():t.toString?t.toString():""},"string-asc":function(t,e){return t").addClass(l.sSortJUIWrapper).append(o.contents()).append(P("").addClass(l.sSortIcon+" "+i.sSortingClassJUI)).appendTo(o),P(r.nTable).on("order.dt.DT",function(t,e,n,a){r===e&&(e=i.idx,o.removeClass(l.sSortAsc+" "+l.sSortDesc).addClass("asc"==a[e]?l.sSortAsc:"desc"==a[e]?l.sSortDesc:i.sSortingClass),o.find("span."+l.sSortIcon).removeClass(l.sSortJUIAsc+" "+l.sSortJUIDesc+" "+l.sSortJUI+" "+l.sSortJUIAscAllowed+" "+l.sSortJUIDescAllowed).addClass("asc"==a[e]?l.sSortJUIAsc:"desc"==a[e]?l.sSortJUIDesc:i.sSortingClassJUI))})}}});function We(t){return"string"==typeof(t=Array.isArray(t)?t.join(","):t)?t.replace(/&/g,"&").replace(//g,">").replace(/"/g,"""):t}function Ee(t,e,n,a,r){return j.moment?t[e](r):j.luxon?t[n](r):a?t[a](r):t}var Be=!1;function Ue(t,e,n){var a;if(j.moment){if(!(a=j.moment.utc(t,e,n,!0)).isValid())return null}else if(j.luxon){if(!(a=e&&"string"==typeof t?j.luxon.DateTime.fromFormat(t,e):j.luxon.DateTime.fromISO(t)).isValid)return null;a.setLocale(n)}else e?(Be||alert("DataTables warning: Formatted date without Moment.js or Luxon - https://datatables.net/tn/17"),Be=!0):a=new Date(t);return a}function Ve(s){return function(a,r,o,i){0===arguments.length?(o="en",a=r=null):1===arguments.length?(o="en",r=a,a=null):2===arguments.length&&(o=r,r=a,a=null);var l="datetime-"+r;return w.ext.type.order[l]||(w.ext.type.detect.unshift(function(t){return t===l&&l}),w.ext.type.order[l+"-asc"]=function(t,e){t=t.valueOf(),e=e.valueOf();return t===e?0:t<'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"}),x.extend(i.ext.classes,{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"}),i.ext.renderer.pageButton.bootstrap=function(d,e,o,a,l,u){function c(e,a){for(var t,n,r=function(e){e.preventDefault(),x(e.currentTarget).hasClass("disabled")||b.page()==e.data.action||b.page(e.data.action).draw("page")},i=0,s=a.length;i",{class:g.sPageButton+" "+f,id:0===o&&"string"==typeof t?d.sTableId+"_"+t:null}).append(x("",{href:n?null:"#","aria-controls":d.sTableId,"aria-disabled":n?"true":null,"aria-label":w[t],"aria-role":"link","aria-current":"active"===f?"page":null,"data-dt-idx":t,tabindex:d.iTabIndex}).html(p)).appendTo(e),d.oApi._fnBindAction(n,{action:t},r))}}var p,f,t,b=new i.Api(d),g=d.oClasses,m=d.oLanguage.oPaginate,w=d.oLanguage.oAria.paginate||{};try{t=x(e).find(n.activeElement).data("dt-idx")}catch(e){}c(x(e).empty().html('
\n\n
")})}})})})}catch(e){f(m.handleError(e,g,v))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/directory-menu/filter-date.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+='
',r+=n.suppressValue(e.getFilter("i18n").call(t,"filter.date.view."+u),e.opts.autoescape),r+="\n "}o=o.pop(),r+='\n
\n\n
\n ',o=o.push();var c=n.memberLookup(n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"options"),"views");if(c)for(var p=(c=n.fromIterator(c)).length,d=0;d\n ',"range"==h&&(r+='\n
\n \n to\n \n
\n '),r+="\n
\n "}o=o.pop(),i(null,r+="\n
\n")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/directory-menu/filter-header.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+='
  • \n ',r+=n.suppressValue(e.getFilter("safe").call(t,"<"+n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"subtype")+">"+n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"label")+""),e.opts.autoescape),i(null,r+="\n
  • ")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/directory-menu/filter-number.html.njk"]={root:function(e,t,o,n,i){var r="";try{"value"==n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"subtype")?r+='\n \n':"slider"==n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"subtype")&&(r+='\n
    \n'),i(null,r+="\n")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/directory-menu/filter-paragraph.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+='
  • \n ',r+=n.suppressValue(e.getFilter("safe").call(t,"<"+n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"subtype")+">"+n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"label")+""),e.opts.autoescape),i(null,r+="\n
  • ")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/directory-menu/filter-taxonomy.html.njk"]={root:function(y,b,_,w,k){var x=0,L=0,C="";try{y.getTemplate("components/directory-menu/category-item.html.njk",!1,"components/directory-menu/filter-taxonomy.html.njk",!1,function(e,t){e?k(e):t.getExported(function(e,t){if(e)k(e);else{if(b.setVariable("categoryRenderer",t),C+="\n\n",w.memberLookup(w.memberLookup(w.contextOrFrameLookup(b,_,"config"),"menu"),"showOnePanePerMainOption")){C+="\n ",C+='\n \n ",C+="\n ",_=_.push();var o=w.memberLookup(w.contextOrFrameLookup(b,_,"mainCategory"),"options");if(o)for(var n=(o=w.fromIterator(o)).length,i=0;i\n "}_=_.pop(),C+="\n\n ",C+="\n ",x=17,L=47,e=w.callWrap(w.memberLookup(w.contextOrFrameLookup(b,_,"rootCategories"),"slice"),'rootCategories["slice"]',b,[1]),_.set("otherCategories",e,!0),_.topLevel&&b.setVariable("otherCategories",e),_.topLevel&&b.addExport("otherCategories",e),C+='\n
    \n ',_=_.push();var c=w.contextOrFrameLookup(b,_,"otherCategories");if(c)for(var p=(c=w.fromIterator(c)).length,d=0;d\n"}else{C+="\n ",C+='\n \n\t"),i+="\n"),i+="\n\n",L=L.push();var u=C.memberLookup(e,"children");if(u)for(var c=(u=C.fromIterator(u)).length,p=0;p",i+=C.suppressValue(C.memberLookup(C.memberLookup(h,"option"),"name"),k.opts.autoescape),i+=" : ",i+=C.suppressValue(C.memberLookup(C.memberLookup(h,"children"),"length"),k.opts.autoescape),i+=", ",i+=C.suppressValue(C.memberLookup(C.memberLookup(C.memberLookup(h,"children"),0),"isLastCategoryDepth"),k.opts.autoescape),i+="
    --\x3e\n\t\t",d=C.memberLookup(C.contextOrFrameLookup(x,L,"option"),"enableDescription")||C.memberLookup(C.memberLookup(e,"category"),"enableDescription")?"s6 m5":"s12",L.set("colWidth",d,!0),L.topLevel&&x.setVariable("colWidth",d),L.topLevel&&x.addExport("colWidth",d),i+="\n\t\t
    \n\t\t\t\n\n\t\t\t\t',d=C.memberLookup(C.memberLookup(h,"option"),"icon")?C.memberLookup(C.memberLookup(h,"option"),"icon"):"gogo-icon-angle-right",L.set("iconClass",d,!0),L.topLevel&&x.setVariable("iconClass",d),L.topLevel&&x.addExport("iconClass",d),i+="\t\n\t\t\t\t",d=C.memberLookup(C.memberLookup(h,"option"),"icon")?C.memberLookup(C.memberLookup(h,"option"),"id"):"",L.set("iconColorId",d,!0),L.topLevel&&x.setVariable("iconColorId",d),L.topLevel&&x.addExport("iconColorId",d),i+="\t\n\t\t\t\t",C.contextOrFrameLookup(x,L,"iconClass")&&(i+=' \n\t\t\t\t\t\n\t\t\t\t"),i+='\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t",i+=C.suppressValue(C.memberLookup(C.memberLookup(h,"option"),"nameShort"),k.opts.autoescape),i+="\n\t\t\t\t \n\n\t\t\t\t",C.contextOrFrameLookup(x,L,"displayFirstCategoryInline")){i+='\n\t\t\t\t\t(\n\t\t\t\t\t\t',L=L.push();var m=C.memberLookup(C.memberLookup(C.memberLookup(h,"children"),0),"children");if(m)for(var f=(m=C.fromIterator(m)).length,g=0;g\n\t\t\t\t"}i+="\n\n\t\t\t\n\t\t\t",(C.memberLookup(C.contextOrFrameLookup(x,L,"option"),"enableDescription")||C.memberLookup(C.memberLookup(e,"category"),"enableDescription"))&&(i+='\n\t\t\t\t\n\t\t\t"),i+="\n\t\t
    \n \t"}i+="\n\n\t",t=C.memberLookup(C.memberLookup(h,"children"),"length"),L.set("subcategoriesCount",t,!0),L.topLevel&&x.setVariable("subcategoriesCount",t),L.topLevel&&x.addExport("subcategoriesCount",t),i+="\n\t",C.contextOrFrameLookup(x,L,"displayFirstCategoryInline")&&(t-=1,L.set("subcategoriesCount",t,!0),L.topLevel&&x.setVariable("subcategoriesCount",t),L.topLevel&&x.addExport("subcategoriesCount",t)),i+="\n\n\t",L=L.push();var y=C.memberLookup(h,"children");if(y)for(var b=(y=C.fromIterator(y)).length,_=0;_\t\n'),n+="\n\n",w.memberLookup(w.memberLookup(e,"category"),"displayInInfoBar")&&(n+='\n\t

    ',n+=w.suppressValue(w.memberLookup(w.memberLookup(e,"category"),"name"),y.opts.autoescape),n+="

    \n"),n+="\n\n",w.memberLookup(w.memberLookup(e,"category"),"displaySuboptionsInline")&&(n+='
    '),n+="\n",_=_.push();var l=w.memberLookup(e,"children");if(l)for(var u=(l=w.fromIterator(l)).length,c=0;c'),n+='\n\t\t\n\t\t\t",w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"icon")?(n+="\n\t\t\t\t",n+=w.suppressValue((k=38,x=11,w.callWrap(w.contextOrFrameLookup(b,_,"icon"),"icon",b,[w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"icon"),"icon gogo-color-as",w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"id")])),y.opts.autoescape),n+="\n\t\t\t"):(w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"useColorForMarker")||w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"markerShape"))&&(n+="\n\t\t\t\t",d=w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"markerShape")?w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"markerShape"):w.memberLookup(w.memberLookup(w.contextOrFrameLookup(b,_,"config"),"marker"),"defaultShape"),_.set("shape",d,!0),_.topLevel&&b.setVariable("shape",d),_.topLevel&&b.addExport("shape",d),n+="\n\t\t\t\t",n+=w.suppressValue((k=41,x=18,w.callWrap(w.contextOrFrameLookup(b,_,"markerShape"),"markerShape",b,[w.contextOrFrameLookup(b,_,"shape"),"icon gogo-color-as",w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"id")])),y.opts.autoescape),n+="\n\t\t\t"),n+='\n\t\t\t",n+=w.suppressValue(w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"name"),y.opts.autoescape),n+="\n\t\t\t",w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"url")&&(n+=''),n+="\n\t\t\n\t\t",w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"url")&&(n+=""),n+="\n\n\t\t",n+="\n\t\t",!w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"enableDescription")&&!w.memberLookup(w.memberLookup(e,"category"),"enableDescription")||w.memberLookup(w.memberLookup(e,"category"),"displaySuboptionsInline")||(n+='\n\t\t\t\n\t\t"),n+="\n\t \n\t\t",w.memberLookup(w.memberLookup(e,"category"),"displaySuboptionsInline")||(n+="
    "),n+="\n "),n+="\n\n ",n+="\n ",w.memberLookup(w.memberLookup(h,"option"),"displayChildrenInInfoBar")&&!w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"isHidden")){n+="\n\t\t",_=_.push();var m=w.memberLookup(h,"children");if(m)for(var f=(m=w.fromIterator(m)).length,g=0;gOpen Street Map
    \n
    \n'),r+="\n\n",r+=n.suppressValue(e.getFilter("gogo_textarea").call(t,n.contextOrFrameLookup(t,o,"descriptionMore"),n.makeKeywordArgs({truncate:400})),e.opts.autoescape),r+="\n\n",n.contextOrFrameLookup(t,o,"address")||n.contextOrFrameLookup(t,o,"telephone")||n.contextOrFrameLookup(t,o,"email")||n.contextOrFrameLookup(t,o,"website")||n.contextOrFrameLookup(t,o,"urls")){if(r+="\n ",r+="\n ",r+=n.suppressValue(e.getFilter("gogo_title").call(t,e.getFilter("i18n").call(t,"general.infos")),e.opts.autoescape),r+="\n\n ",r+="\n ",r+=n.suppressValue(e.getFilter("gogo_text").call(t,n.contextOrFrameLookup(t,o,"address")),e.opts.autoescape),r+="\n\n ",r+="\n ",r+=n.suppressValue(e.getFilter("gogo_tel").call(t,n.contextOrFrameLookup(t,o,"telephone")),e.opts.autoescape),r+="\n\n ",r+="\n ",r+=n.suppressValue(e.getFilter("gogo_email").call(t,n.contextOrFrameLookup(t,o,"email")),e.opts.autoescape),r+="\n\n ",r+="\n ",r+=n.suppressValue(e.getFilter("gogo_url").call(t,n.contextOrFrameLookup(t,o,"website")),e.opts.autoescape),r+="\n\n ",n.contextOrFrameLookup(t,o,"urls")){r+="\n ",o=o.push();var s=n.contextOrFrameLookup(t,o,"urls");if(s)for(var a=(s=n.fromIterator(s)).length,l=0;l",r+=n.suppressValue(e.getFilter("i18n").call(t,"other.infos"),e.opts.autoescape),r+='\n
    \n ',o=o.push();var c=n.contextOrFrameLookup(t,o,"customData");if(c)for(var p=(c=n.fromIterator(c)).length,d=0;d\n"}r+="\n\n",e.getFilter("length").call(t,n.contextOrFrameLookup(t,o,"files"))&&(r+="\n ",r+=n.suppressValue(e.getFilter("gogo_separator").call(t,""),e.opts.autoescape),r+="\n

    ",r+=n.suppressValue(e.getFilter("i18n").call(t,"files"),e.opts.autoescape),r+="

    \n ",r+=n.suppressValue(e.getFilter("gogo_files").call(t,n.contextOrFrameLookup(t,o,"files")),e.opts.autoescape),r+="\n"),r+="\n\n",n.contextOrFrameLookup(t,o,"updatedAt")&&(r+="\n ",r+=n.suppressValue(e.getFilter("gogo_separator").call(t,""),e.opts.autoescape),r+='\n
    ',r+=n.suppressValue(e.getFilter("i18n").call(t,"updated.at"),e.opts.autoescape),r+=" : ",r+=n.suppressValue(e.getFilter("date").call(t,n.contextOrFrameLookup(t,o,"updatedAt")),e.opts.autoescape),r+="
    \n"),i(null,r+="\n\n\n\n")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/default-header-content.html.njk"]={root:function(e,t,o,n,i){var r="";try{i(null,r+=n.suppressValue(e.getFilter("gogo_textarea").call(t,n.contextOrFrameLookup(t,o,"description"),n.makeKeywordArgs({truncate:500})),e.opts.autoescape))}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element.html.njk"]={root:function(r,s,a,l,u){var c=0,p=0,d="";try{var e,t,o="components/element/";a.set("here",o,!0),a.topLevel&&s.setVariable("here",o),a.topLevel&&s.addExport("here",o),d+="\n",d+="\n",d+="\n",d+='\n
  • \n\n',e=(l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"isPending")||l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"isDeleted"))&&(c=8,p=105,l.callWrap(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',s,["pending"]))?"pending":"",a.set("pendingClass",e,!0),a.topLevel&&s.setVariable("pendingClass",e),a.topLevel&&s.addExport("pendingClass",e),d+="\n",c=9,p=53,t=l.callWrap(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',s,["elementHistory"])&&l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"contributions")&&0\n ";var n=[];n.push(function(o){r.getTemplate(l.contextOrFrameLookup(s,a,"here")+"header.html.njk",!1,"components/element/element.html.njk",!1,function(e,t){e?u(e):o(null,t)})}),n.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?u(e):o(null,t)})}),n.push(function(e,t){d+=e,t(null)}),r.waterfall(n,function(){d+="\n
  • \n\n",d+="\n";var e=[];e.push(function(o){r.getTemplate(l.contextOrFrameLookup(s,a,"here")+"interactive-section.html.njk",!1,"components/element/element.html.njk",!1,function(e,t){e?u(e):o(null,t)})}),e.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?u(e):o(null,t)})}),e.push(function(e,t){d+=e,t(null)}),r.waterfall(e,function(){d+="\n\n",d+="\n";var e=[];e.push(function(o){r.getTemplate(l.contextOrFrameLookup(s,a,"here")+"menu.html.njk",!1,"components/element/element.html.njk",!1,function(e,t){e?u(e):o(null,t)})}),e.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?u(e):o(null,t)})}),e.push(function(e,t){d+=e,t(null)}),r.waterfall(e,function(){if(d+="\n\n",d+="\n",l.contextOrFrameLookup(s,a,"isHistoryAvailable")&&(d+='\n \n"),d+="\n\n",d+='\n\n
    \n\n ',l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"images"),"length")){d+='\n
    \n
    \n "}var i;d+='\n
    \n ',l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"images"),"length")&&(d+="\n ",d+='\n
    \n \n \n \n
    \n '),d+='\n
    \n
    \n\n ',d+="\n ",c=56,p=39,l.callWrap(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',s,["directModeration"])&&(d+="\n ",(i=[]).push(function(o){r.getTemplate(l.contextOrFrameLookup(s,a,"here")+"admin/pending-contribution.html.njk",!1,"components/element/element.html.njk",!1,function(e,t){e?u(e):o(null,t)})}),i.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?u(e):o(null,t)})}),i.push(function(e,t){d+=e,t(null)}),r.waterfall(i,function(){d+="\n ",r.getTemplate(l.contextOrFrameLookup(s,a,"here")+"admin/votes-reports.html.njk",!1,"components/element/element.html.njk",!1,function(e,t){e?u(e):t.getExported(function(e,t){e?u(e):(s.setVariable("VotesReportsRenderer",t),d+="\n ",d+=l.suppressValue((c=59,p=40,l.callWrap(l.memberLookup(t,"render"),'VotesReportsRenderer["render"]',s,["Votes",l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"votes"),l.contextOrFrameLookup(s,a,"smallWidth")])),r.opts.autoescape),d+="\n ",d+=l.suppressValue((c=60,p=40,l.callWrap(l.memberLookup(t,"render"),'VotesReportsRenderer["render"]',s,["Erreurs signalées",l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"reports"),l.contextOrFrameLookup(s,a,"smallWidth")])),r.opts.autoescape),d+="\n ")})})})),d+="\n\n ",d+="\n ",d+=l.suppressValue(r.getFilter("safe").call(s,l.contextOrFrameLookup(s,a,"customBody")),r.opts.autoescape),d+="\n
    \n\n ",d+="\n ",l.contextOrFrameLookup(s,a,"isHistoryAvailable")&&(d+='\n
    \n ',(i=[]).push(function(o){r.getTemplate(l.contextOrFrameLookup(s,a,"here")+"admin/contributions.html.njk",!1,"components/element/element.html.njk",!1,function(e,t){e?u(e):o(null,t)})}),i.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?u(e):o(null,t)})}),i.push(function(e,t){d+=e,t(null)}),r.waterfall(i,function(){d+="\n
    \n "})),u(null,d+="\n
    \n
    \n
    \n\n\n\n")})})})}catch(e){u(l.handleError(e,c,p))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/header.html.njk"]={root:function(e,t,o,n,i){var r,s=0,a=0,l="";try{l+="\n",n.memberLookup(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"infobar"),"displayDateField")&&(l+="\n
    \n ',l+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"dateToDisplay"),"dddd"),e.opts.autoescape),l+='\n ',l+=n.suppressValue((s=5,a=74,n.callWrap(n.memberLookup(n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"dateToDisplay"),"date"),'element["dateToDisplay"]["date"]',t,[])),e.opts.autoescape),l+='\n ',l+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"dateToDisplay"),"MMM"),e.opts.autoescape),l+='\n ',l+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"dateToDisplay"),"MMMM"),e.opts.autoescape),l+='\n ',l+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"dateToDisplay"),"YYYY"),e.opts.autoescape),l+="\n
    \n"),l+='\n\n
    \n\n ',l+="\n
    \n\n \n\n ",l+='\n \n\n ',l+='\n

    ',l+=n.suppressValue(e.getFilter("safe").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"name")),e.opts.autoescape),l+="

    \n ",n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"isDeleted")&&(l+="
    ",l+=n.suppressValue(e.getFilter("i18n").call(t,"rejected.or.deleted.element"),e.opts.autoescape),l+=""),l+="\n\n ",l+="\n ",n.contextOrFrameLookup(t,o,"showDistance")&&(l+='\n ~ ',l+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"distance"),e.opts.autoescape),l+=" km\n "),l+="\n\n ",l+="\n ",r=n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"originalAddress"),o.set("address",r,!0),o.topLevel&&t.setVariable("address",r),o.topLevel&&t.addExport("address",r),l+="\n ",n.contextOrFrameLookup(t,o,"address")&&(l+='\n \n ',l+="\n ",n.memberLookup(n.contextOrFrameLookup(t,o,"address"),"postalCode")&&(l+='',l+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"address"),"postalCode"),e.opts.autoescape),l+=""),l+="\n ",n.memberLookup(n.contextOrFrameLookup(t,o,"address"),"addressLocality")&&(l+=' ',l+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"address"),"addressLocality"),e.opts.autoescape),l+=""),l+="\n \n "),l+="\n\n
    \n\n
    \n\n ",l+="\n
    \n\n
    ",l+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"customHeader")),e.opts.autoescape),l+="
    \n\n ",l+='\n \n\n ',o.set("lastIconToDisplay","",!0),o.topLevel&&t.setVariable("lastIconToDisplay",""),o.topLevel&&t.addExport("lastIconToDisplay",""),l+="\n ",o=o.push();var u=n.contextOrFrameLookup(t,o,"currOptionsValues");if(u)for(var c=(u=n.fromIterator(u)).length,p=0;p\n ',h=n.memberLookup(b,"isFilledByFilters")?"":"disabled",o.set("isDisabled",h,!0),o.topLevel&&t.setVariable("isDisabled",h),o.topLevel&&t.addExport("isDisabled",h),l+="\n ",m=n.memberLookup(n.contextOrFrameLookup(t,o,"option"),"icon"),o.set("icon",m,!0),o.topLevel&&t.setVariable("icon",m),o.topLevel&&t.addExport("icon",m),l+="\n ",s=63,a=82,f=n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"option"),"getOwner"),'option["getOwner"]',t,[])?n.memberLookup((s=63,a=56,n.callWrap(n.memberLookup((s=63,a=45,n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"option"),"getOwner"),'option["getOwner"]',t,[])),"getOwner"),'the return value of (option["getOwner"])["getOwner"]',t,[])),"icon"):"",o.set("parentIcon",f,!0),o.topLevel&&t.setVariable("parentIcon",f),o.topLevel&&t.addExport("parentIcon",f),l+="\n ",g=n.contextOrFrameLookup(t,o,"parentIcon")&&!n.memberLookup(n.contextOrFrameLookup(t,o,"option"),"useIconForMarker")?n.contextOrFrameLookup(t,o,"parentIcon"):n.contextOrFrameLookup(t,o,"icon"),o.set("iconToDisplay",g,!0),o.topLevel&&t.setVariable("iconToDisplay",g),o.topLevel&&t.addExport("iconToDisplay",g),l+="\n\n ",v=n.contextOrFrameLookup(t,o,"iconToDisplay")==n.contextOrFrameLookup(t,o,"lastIconToDisplay"),o.set("sameIcon",v,!0),o.topLevel&&t.setVariable("sameIcon",v),o.topLevel&&t.addExport("sameIcon",v),l+="\n ",n.contextOrFrameLookup(t,o,"iconToDisplay")&&!n.contextOrFrameLookup(t,o,"sameIcon")&&(l+='\n \n "),l+="\n ",y=n.contextOrFrameLookup(t,o,"iconToDisplay"),o.set("lastIconToDisplay",y,!0),o.topLevel&&t.setVariable("lastIconToDisplay",y),o.topLevel&&t.addExport("lastIconToDisplay",y),l+='\n\n ",l+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"option"),"nameShort"),e.opts.autoescape),l+="\n \n "}o=o.pop(),l+="\n\n ",e.getFilter("length").call(t,n.contextOrFrameLookup(t,o,"currOptionsValues"))||(l+='\n ',l+=n.suppressValue(n.memberLookup(n.memberLookup(n.contextOrFrameLookup(t,o,"mainOptionToDisplay"),"option"),"name"),e.opts.autoescape),l+="\n "),l+="\n\n \n\n ",l+='\n \n ',n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"isPending")&&(p+='\n
    \n \n \n ',u=5,c=54,r=n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',t,["vote"])||(u=5,c=91,n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',t,["vote"])&&(u=5,c=132,n.callWrap(n.memberLookup(n.memberLookup(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"features"),"vote"),"hasRole"),'config["features"]["vote"]["hasRole"]',t,["user"]))),o.set("voteEnabled",r,!0),o.topLevel&&t.setVariable("voteEnabled",r),o.topLevel&&t.addExport("voteEnabled",r),p+="\n ",s=n.contextOrFrameLookup(t,o,"voteEnabled")?"validation-process-info":"",o.set("class",s,!0),o.topLevel&&t.setVariable("class",s),o.topLevel&&t.addExport("class",s),p+='\n \n ",u=11,c=50,a=n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',t,["directModeration"]),o.set("isAdmin",a,!0),o.topLevel&&t.setVariable("isAdmin",a),o.topLevel&&t.addExport("isAdmin",a),p+="\n ",p+="\n ",(n.contextOrFrameLookup(t,o,"voteEnabled")||n.contextOrFrameLookup(t,o,"isAdmin"))&&(p+='\n ',p+=n.suppressValue(n.contextOrFrameLookup(t,o,"isAdmin")?e.getFilter("i18n").call(t,"decide"):e.getFilter("i18n").call(t,"vote"),e.opts.autoescape),p+="\n "),p+="\n \n
    \n "),p+="\n\n ",l={"-2":"geolocation.error","-1":"no.category.provided",0:"no.moderation.necessary",1:"errors.reported",2:"non.consensual.votes",3:"pending.for.too.long",4:"potential.duplicate"},o.set("moderationStates",l,!0),o.topLevel&&t.setVariable("moderationStates",l),o.topLevel&&t.addExport("moderationStates",l),p+="\n\n ",n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"needsModeration")&&(u=31,c=61,n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',t,["moderation"]))&&(p+='\n
    \n \n \n ',p+=n.suppressValue(e.getFilter("i18n").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"moderationStates"),n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"moderationState"))),e.opts.autoescape),p+="\n ",u=36,c=39,n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',t,["directModeration"])&&(p+="\n ",n.inOperator(n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"moderationState"),[n.memberLookup(n.contextOrFrameLookup(t,o,"ElementModerationState"),"ReportsSubmitted"),n.memberLookup(n.contextOrFrameLookup(t,o,"ElementModerationState"),"PossibleDuplicate")])&&(p+='\n ',p+=n.suppressValue(e.getFilter("i18n").call(t,"mark.as.resolved"),e.opts.autoescape),p+='\n \n \n ",a=3,l=33,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["favorite"])&&(u+=' \n \n \n "),u+="\n\n ",a=16,l=33,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["stamp"])){u+="\n ",i=i.push();var e=r.contextOrFrameLookup(n,i,"allowedStamps");if(e)for(var t=(e=r.fromIterator(e)).length,c=0;c\n \n ',u+=r.suppressValue(r.memberLookup(p,"name"),o.opts.autoescape),u+="\n
    \n "}i=i.pop(),u+="\n "}u+="\n\n ",r.contextOrFrameLookup(n,i,"isMapMode")||(u+='\n \n "),u+="\n\n ",a=34,l=33,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["share"])&&(u+=' \n \n "),u+="\n \n ";var d,h,a=42,l=33;r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["subscribe"])&&(u+=" \n ",i.set("subscribed",!1,!0),i.topLevel&&n.setVariable("subscribed",!1),i.topLevel&&n.addExport("subscribed",!1),u+="\n ",0
    \n ',u+=r.suppressValue((a=51,l=29,r.callWrap(r.memberLookup(t,"create"),'spinnerLoader["create"]',n,["subscriber-loader"])),o.opts.autoescape),u+='\n ',u+=r.suppressValue(o.getFilter("i18n").call(n,"subscribe.changes"),o.opts.autoescape),u+='\n
    \n \n ")})})),u+="\n\n ",d=r.memberLookup(r.memberLookup(r.memberLookup(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"features"),"edit"),"options"),"readonlySources"),i.set("readonlySources",d,!0),i.topLevel&&n.setVariable("readonlySources",d),i.topLevel&&n.addExport("readonlySources",d),u+="\n ",a=63,l=33,!r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["edit"])||r.memberLookup(r.contextOrFrameLookup(n,i,"element"),"isPending")&&(a=64,l=63,!r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["directModeration"]))||r.contextOrFrameLookup(n,i,"readonlySources")&&r.inOperator(r.memberLookup(r.contextOrFrameLookup(n,i,"element"),"sourceKey"),r.contextOrFrameLookup(n,i,"readonlySources"))||(u+=' \n \n "),u+="\n\n ",a=75,l=33,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["report"])&&!r.memberLookup(r.contextOrFrameLookup(n,i,"element"),"isPending")&&(u+=' \n \n "),u+=" \n\n ",a=83,l=33,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["delete"])&&r.memberLookup(r.contextOrFrameLookup(n,i,"element"),"status")!=r.memberLookup(r.contextOrFrameLookup(n,i,"ElementStatus"),"PendingAdd")&&(u+=' \n \n "),s(null,u+=" \n
    ")}catch(e){s(r.handleError(e,a,l))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/list/list.html.njk"]={root:function(e,t,n,o,i){var r=0,s=0,a="";try{a+='
    \n\n ';var l=[];l.push(function(o){e.getTemplate("components/buttons/show-directory-menu-button.html.njk",!1,"components/list/list.html.njk",!1,function(e,t){e?i(e):o(null,t)})}),l.push(function(e,o){e.render(t.getVariables(),n,function(e,t){e?i(e):o(null,t)})}),l.push(function(e,t){a+=e,t(null)}),e.waterfall(l,function(){a+='\n\n \n \n ',a+=o.suppressValue(e.getFilter("i18n").call(t,"back.to.map"),e.opts.autoescape),a+='\n \n\n
    \n ',a+=o.suppressValue(e.getFilter("i18n").call(t,"search.radius"),e.opts.autoescape),a+='\n 0\n
    \n 500\n
    \n\n \n\n
    \n
    \n\n
    \n
      \n
      \n
      ',a+=o.suppressValue((r=29,s=61,o.callWrap(o.memberLookup(o.contextOrFrameLookup(t,n,"spinnerLoader"),"create"),'spinnerLoader["create"]',t,["directory-list-spinner-loader"])),e.opts.autoescape),a+='
      \n \n
      ')})}catch(e){i(o.handleError(e,r,s))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/map/info-bar.html.njk"]={root:function(e,t,o,n,i){var r=0,s=0,a="";try{a+=' ')}catch(e){i(n.handleError(e,r,s))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/map/map.html.njk"]={root:function(e,t,n,o,i){var r=0,s=0,a="";try{a+='\n\n
      \n ';var l=[];l.push(function(o){e.getTemplate("components/buttons/show-directory-menu-button.html.njk",!1,"components/map/map.html.njk",!1,function(e,t){e?i(e):o(null,t)})}),l.push(function(e,o){e.render(t.getVariables(),n,function(e,t){e?i(e):o(null,t)})}),l.push(function(e,t){a+=e,t(null)}),e.waterfall(l,function(){a+="\n\n ",r=7,s=33,o.callWrap(o.memberLookup(o.contextOrFrameLookup(t,n,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',t,["listMode"])&&(a+='\n
      \n \n ',a+=o.suppressValue(e.getFilter("i18n").call(t,"show.as.list"),e.opts.autoescape),a+="\n
      \n "),a+='\n
      \n\n
      \n ',r=16,s=33,o.callWrap(o.memberLookup(o.contextOrFrameLookup(t,n,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',t,["layers"])&&(a+='\n
      \n '):!0===r.getTest("defined").call(s,l.memberLookup(e,"url"))?(n+='\n \n '):(n+="\n ",n+='\n
      \n '),a=i,new l.SafeString(n+="\n\n")});s.addExport("markerShape"),s.setVariable("markerShape",e),0;var o=l.makeMacro(["icon","class"],["colorOptionId"],function(e,t,o){var n=a;a=new l.Frame,o=o||{},Object.prototype.hasOwnProperty.call(o,"caller")&&a.set("caller",o.caller),a.set("icon",e),a.set("class",t),a.set("colorOptionId",Object.prototype.hasOwnProperty.call(o,"colorOptionId")?o.colorOptionId:"");o="";return o+="\n\n ",r.getFilter("is_image_url").call(s,e)?(o+='\n \n\t\t\t',b+=f.suppressValue(d.getFilter("safe").call(h,f.contextOrFrameLookup(h,m,"popup")),d.opts.autoescape),b+="\n\t\t
      \n\t"),b+='\n\n\t
      \n\n\t\t',b+="\n\t\t",b+=f.suppressValue((v=34,y=16,f.callWrap(e,"markerShape",h,[f.memberLookup(f.contextOrFrameLookup(h,m,"element"),"markerShape"),"marker-shape gogo-color-as "+f.contextOrFrameLookup(h,m,"pendingClass"),f.memberLookup(f.contextOrFrameLookup(h,m,"element"),"colorOptionId")])),d.opts.autoescape),b+="\n\n\t\t",f.contextOrFrameLookup(h,m,"mainIconInMarkerShape")){if(b+="\n\t\t\t",b+='\n\t\t\t
      \n\t\t\t\t",b+=f.suppressValue((v=40,y=11,f.callWrap(o,"icon",h,[f.memberLookup(f.contextOrFrameLookup(h,m,"element"),"mainIcon"),"marker-icon rotate-reverse "+(f.contextOrFrameLookup(h,m,"circle")?f.contextOrFrameLookup(h,m,"pendingClass"):"")])),d.opts.autoescape),b+="\n\t\t\t
      \n\n\t\t\t",b+="\n\t\t\t",f.contextOrFrameLookup(h,m,"showOtherIcons")&&(b+='\n\t\t\t\t
      \n\t\t\t\t'),b+="\n\n\t\t\t\t",v=57,y=35,f.callWrap(f.memberLookup(f.contextOrFrameLookup(h,m,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',h,["stamp"])){b+="\n\t\t\t\t\t",m=m.push();var n=f.contextOrFrameLookup(h,m,"displayStamps");if(n)for(var i=(n=f.fromIterator(n)).length,r=0;r\n\t\t"}if(b+="\n\t
      \n\n\t",b+="\n\t",f.contextOrFrameLookup(h,m,"showOtherIcons")){b+='\n\t\t
      \n\t"}g(null,b+="\n\n
      \n\n\n\n")}else g(new Error("cannot import 'icon'"))}else g(new Error("cannot import 'markerShape'"))})})}catch(e){g(f.handleError(e,v,y))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/modals/abstract-modal.html.njk"]={b_id:function(e,t,o,n,i){try{o=o.push(!0);i(null,"default")}catch(e){i(n.handleError(e,0,18))}},b_modalClass:function(e,t,o,n,i){try{o=o.push(!0);i(null,"action-modal")}catch(e){i(n.handleError(e,0,89))}},b_content:function(e,t,o,n,i){try{o=o.push(!0);i(null,"\n\t \t\t")}catch(e){i(n.handleError(e,4,8))}},b_cancelText:function(e,t,o,n,i){var r="";try{o=o.push(!0);i(null,r+=n.suppressValue(e.getFilter("i18n").call(t,"cancel"),e.opts.autoescape))}catch(e){i(n.handleError(e,14,7))}},b_submitText:function(e,t,o,n,i){var r="";try{o=o.push(!0);i(null,r+=n.suppressValue(e.getFilter("i18n").call(t,"send"),e.opts.autoescape))}catch(e){i(n.handleError(e,17,7))}},root:function(o,n,i,r,s){var a=0,l=0,u="";try{u+=''))})}))}))}))}))}))})}catch(e){s(r.handleError(e,a,l))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/modals/contribution-information.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+='")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/modals/export-iframe.html.njk"]={root:function(e,t,o,n,i){var r=0,s=0,a="";try{if(a+='\x3c!-- Pop up message alerte--\x3e\n")}catch(e){i(n.handleError(e,r,s))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/modals/image.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+='\n\n")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/search-bar/search-bar.html.njk"]={root:function(o,n,i,r,s){var a=0,l=0,u="";try{a=0,l=31;(r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',n,["searchPlace"])||(a=0,l=75,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',n,["searchElements"]))||(a=0,l=122,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',n,["searchCategories"])))&&(u+="\n\n",o.getTemplate("components/spinner-loader.html.njk",!1,"components/search-bar/search-bar.html.njk",!1,function(e,t){e?s(e):t.getExported(function(e,t){e?s(e):(n.setVariable("spinnerLoader",t),u+='\n
      \n\n ',u+='\n
      \n \n ',u+=r.suppressValue((a=8,l=35,r.callWrap(r.memberLookup(t,"create"),'spinnerLoader["create"]',n,["search-spinner-loader"])),o.opts.autoescape),u+="\n \n\n ",a=11,l=39,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',n,["searchGeolocate"])&&(u+='\n ",u+=r.suppressValue(o.getFilter("i18n").call(n,"no.result.found"),o.opts.autoescape),u+="
      \n\n
      \n\n",u+="\n\n")})})),s(null,u)}catch(e){s(r.handleError(e,a,l))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/search-bar/search-results-header.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+='\n')}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/themes/default.html.njk"]={root:function(e,t,o,n,i){try{i(null,"")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/themes/flat.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+="")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/themes/presdecheznous.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+="")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/themes/transiscope.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+="")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/admin/contribution-item.html.njk"]={root:function(e,t,o,n,i){var r="";try{var s,a,l,u,c,p={0:"add",1:"modification",2:"vote",3:"reporting",4:"imported"};o.set("contributionType",p,!0),o.topLevel&&t.setVariable("contributionType",p),o.topLevel&&t.addExport("contributionType",p),r+=" \n\n",s={"":"waiting","-5":"modified.pending","-4":"deleted","-3":"refused.votes","-2":"refused.admin","-1":"pending.modifications",0:"pending.add",1:"validated.admin",2:"validated.votes",3:"added.admin",4:"modified.admin",5:"modified.owner",6:"modified.direct.link"},o.set("elementStatus",s,!0),o.topLevel&&t.setVariable("elementStatus",s),o.topLevel&&t.addExport("elementStatus",s),r+=" \n\n",a={0:"anonymous",1:"anonymous.email",2:"logged.user",3:"admin",4:"anonymous.link"},o.set("userRoles",a,!0),o.topLevel&&t.setVariable("userRoles",a),o.topLevel&&t.addExport("userRoles",a),r+=" \n\n",r+='\n
      \n ',l=0 \n ',c=4==n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"type")?n.memberLookup(n.contextOrFrameLookup(t,o,"contributionType"),n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"type")):n.memberLookup(n.contextOrFrameLookup(t,o,"elementStatus"),n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"status")),o.set("title",c,!0),o.topLevel&&t.setVariable("title",c),o.topLevel&&t.addExport("title",c),r+='\n \n ",r+=n.suppressValue(e.getFilter("i18n").call(t,"by"),e.opts.autoescape),r+=" ",r+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"user"),e.opts.autoescape),r+=' \n ',r+=n.suppressValue(e.getFilter("i18n").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"userRoles"),n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"userRole"))),e.opts.autoescape),r+=' \n ',r+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"resolvedMessage"),e.opts.autoescape),r+=' \n
      \n
      ',r+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"updatedAt")),e.opts.autoescape),r+="
      \n "):(r+=" \n ",n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"status")&&(r+=" ",r+="\n
      \n ",r+=n.suppressValue(e.getFilter("upper").call(t,e.getFilter("i18n").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"contributionType"),n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"type")))),e.opts.autoescape),r+=' \n \n ",n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"resolvedMessage")&&(r+=' ',r+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"resolvedMessage"),e.opts.autoescape),r+=""),r+="\n ",n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"resolvedBy")&&(r+="(",r+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"resolvedBy"),e.opts.autoescape),r+=")"),r+=' \n \n
      \n
      ',r+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"updatedAt")),e.opts.autoescape),r+="
      \n "),r+="\n\n
      \n ",r+=n.suppressValue(e.getFilter("i18n").call(t,"proposed.by"),e.opts.autoescape),r+=" ",r+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"user"),e.opts.autoescape),r+=' \n ',r+=n.suppressValue(e.getFilter("i18n").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"userRoles"),n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"userRole"))),e.opts.autoescape),r+=" \n ",r+=n.suppressValue(e.getFilter("i18n").call(t,"the"),e.opts.autoescape),r+=" ",r+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"createdAt")),e.opts.autoescape),r+=" \n
      \n "),r+="\n
      \n\n",r+="\n",i(null,r+="\n")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/admin/contributions.html.njk"]={root:function(n,i,r,s,a){var o=0,l=0,u="";try{var e,t=s.contextOrFrameLookup(i,r,"here")+"admin/";r.set("here",t,!0),r.topLevel&&i.setVariable("here",t),r.topLevel&&i.addExport("here",t),u+="\n\n",e="label-danger",r.set("labelClass",e,!0),r.topLevel&&i.setVariable("labelClass",e),r.topLevel&&i.addExport("labelClass",e),u+='\n\n
        \n ',r=r.push();var c=s.memberLookup(s.contextOrFrameLookup(i,r,"element"),"contributions");if(c)for(var p=(c=s.fromIterator(c)).length,d=0;d
        \n ',n.getTemplate(s.contextOrFrameLookup(i,r,"here")+"vote-report-item.html.njk",!1,"components/element/admin/contributions.html.njk",!1,function(e,t){e?a(e):t.getExported(function(e,t){e?a(e):(r.set("VoteReportRenderer",t),u+="\n ",u+=s.suppressValue((o=9,l=38,s.callWrap(s.memberLookup(t,"render"),'VoteReportRenderer["render"]',i,[m,!0,s.contextOrFrameLookup(i,r,"smallWidth")])),n.opts.autoescape),u+="\n
        \n ")})})):(u+="\n ",u+="\n
      • \n ",(h=[]).push(function(o){n.getTemplate(s.contextOrFrameLookup(i,r,"here")+"contribution-item.html.njk",!1,"components/element/admin/contributions.html.njk",!1,function(e,t){e?a(e):o(null,t)})}),h.push(function(e,o){e.render(i.getVariables(),r,function(e,t){e?a(e):o(null,t)})}),h.push(function(e,t){u+=e,t(null)}),n.waterfall(h,function(){u+="\n
      • \n "})),u+="\n "}r=r.pop(),a(null,u+=" \n
      \n\n\n")}catch(e){a(s.handleError(e,o,l))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/admin/pending-contribution.html.njk"]={root:function(e,t,n,i,r){var o,s,a="";try{i.memberLookup(i.contextOrFrameLookup(t,n,"element"),"isPending")&&i.memberLookup(i.contextOrFrameLookup(t,n,"element"),"pendingContribution")&&(a+='\n
      \n ',o=i.memberLookup(i.contextOrFrameLookup(t,n,"element"),"pendingContribution"),n.set("item",o,!0),n.topLevel&&t.setVariable("item",o),n.topLevel&&t.addExport("item",o),a+="\n ",(s=[]).push(function(o){e.getTemplate(i.contextOrFrameLookup(t,n,"here")+"admin/contribution-item.html.njk",!1,"components/element/admin/pending-contribution.html.njk",!1,function(e,t){e?r(e):o(null,t)})}),s.push(function(e,o){e.render(t.getVariables(),n,function(e,t){e?r(e):o(null,t)})}),s.push(function(e,t){a+=e,t(null)}),e.waterfall(s,function(){a+='\n
      \n
      \n'})),r(null,a)}catch(e){r(i.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/admin/vote-report-item.html.njk"]={root:function(s,a,l,u,t){try{var e=u.makeMacro(["item","lastElement","smallWidth"],[],function(e,t,o,n){var i=l;l=new u.Frame,n=n||{},Object.prototype.hasOwnProperty.call(n,"caller")&&l.set("caller",n.caller),l.set("item",e),l.set("lastElement",t),l.set("smallWidth",o);var r="";return r+="\n\n",l.set("userRoles",n={0:"anonymous",1:"anonymous.email",2:"logged.user",3:"admin"},!0),l.topLevel&&a.setVariable("userRoles",n),l.topLevel&&a.addExport("userRoles",n),r+="\n\n",l.set("reportValues",n={0:"element.no.longer.exists",1:"informations.incorrect",2:"element.no.respect.charter",4:"element.referenced.several.times"},!0),l.topLevel&&a.setVariable("reportValues",n),l.topLevel&&a.addExport("reportValues",n),r+="\n\n",l.set("voteValues",n={"-2":"does.not.respect.charter","-1":"does.not.exist",0:"exists.but.incorrect.informations",1:"exists",2:"exists.and.correct.informations"},!0),l.topLevel&&a.setVariable("voteValues",n),l.topLevel&&a.addExport("voteValues",n),r+="\n\n",r+="\n\n",n=3==u.memberLookup(e,"type")?u.contextOrFrameLookup(a,l,"reportValues"):u.contextOrFrameLookup(a,l,"voteValues"),l.set("itemValues",n,!0),l.topLevel&&a.setVariable("itemValues",n),l.topLevel&&a.addExport("itemValues",n),r+='\n\n
      \n
      ',r+=u.suppressValue(s.getFilter("date").call(a,u.memberLookup(e,"createdAt")),s.opts.autoescape),r+="
      \n ",s.getFilter("default").call(a,o,!1)?r+='\n
      \n \n ':r+='\n \n ',r+="\n ",r+=u.suppressValue(s.getFilter("i18n").call(a,"by"),s.opts.autoescape),r+=" : ",r+=u.suppressValue(u.memberLookup(e,"userEmail")?u.memberLookup(e,"userEmail"):s.getFilter("i18n").call(a,"anonymous"),s.opts.autoescape),r+='\n ',r+=u.suppressValue(s.getFilter("i18n").call(a,u.memberLookup(u.contextOrFrameLookup(a,l,"userRoles"),u.memberLookup(e,"userRole"))),s.opts.autoescape),r+='\n \n
      \n\n
      ',r+=u.suppressValue(s.getFilter("capitalize").call(a,u.memberLookup(e,"comment")),s.opts.autoescape),l=i,new u.SafeString(r+="
      \n
      \n\n")});a.addExport("render"),a.setVariable("render",e),t(null,"")}catch(e){t(u.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/admin/votes-reports.html.njk"]={root:function(u,c,p,d,h){var m=0,f=0;try{var e=d.makeMacro(["label","array","smallWidth"],[],function(e,s,a,t){var o=p;p=new d.Frame,t=t||{},Object.prototype.hasOwnProperty.call(t,"caller")&&p.set("caller",t.caller),p.set("label",e),p.set("array",s),p.set("smallWidth",a);var l="";return l+="\n\n ",0",l+=d.suppressValue(e,u.opts.autoescape),l+=' \n
      \n ',u.getTemplate("components/element/admin/vote-report-item.html.njk",!1,"components/element/admin/votes-reports.html.njk",!1,function(e,t){e?h(e):t.getExported(function(e,t){if(e)h(e);else{c.setVariable("VoteReportItemRenderer",t),l+=" \n ",p=p.push();var o=s;if(s)for(var n=(o=d.fromIterator(s)).length,i=0;i
      \n '}p=p.pop(),l+=" \n
      \n "}})})),l+="\n\n",p=o,new d.SafeString(l)});c.addExport("render"),c.setVariable("render",e),h(null,"")}catch(e){h(d.handleError(e,m,f))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_date.html.njk"]={root:function(e,t,o,n,i){var r,s="";try{n.contextOrFrameLookup(t,o,"value")&&(s+='\n
      \n ',n.contextOrFrameLookup(t,o,"label")&&(s+='',s+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"label")),e.opts.autoescape),s+=""),s+="\n ",r=e.getFilter("default").call(t,n.contextOrFrameLookup(t,o,"format"),null),o.set("format",r,!0),o.topLevel&&t.setVariable("format",r),o.topLevel&&t.addExport("format",r),s+='\n ',s+=n.suppressValue(e.getFilter("date").call(t,n.contextOrFrameLookup(t,o,"value"),n.contextOrFrameLookup(t,o,"format")),e.opts.autoescape),s+="
      \n"),i(null,s)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_elements.html.njk"]={root:function(e,t,o,n,i){var r="";try{if(n.contextOrFrameLookup(t,o,"value")&&0\n ',r+="\n ",o=o.push(),s=n.contextOrFrameLookup(t,o,"value")){var s=n.fromIterator(s);if(n.isArray(s))for(var a=s.length,l=0;l',r+=n.suppressValue(c,e.opts.autoescape),r+="
      \n "}else{l=-1;var p,a=n.keys(s).length;for(p in s){l++;var d=s[p];o.set("id",p),o.set("name",d),o.set("loop.index",l+1),o.set("loop.index0",l),o.set("loop.revindex",a-l),o.set("loop.revindex0",a-l-1),o.set("loop.first",0===l),o.set("loop.last",l===a-1),o.set("loop.length",a),r+='\n
      ',r+=n.suppressValue(d,e.opts.autoescape),r+="
      \n "}}}o=o.pop(),r+="\n
      \n"}i(null,r)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_email.html.njk"]={root:function(e,t,o,n,i){var r="";try{n.contextOrFrameLookup(t,o,"value")&&(r+='\n
      \n ',"private"==n.contextOrFrameLookup(t,o,"value")?(r+='\n \n "):(r+="\n ",n.contextOrFrameLookup(t,o,"label")&&(r+='',r+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"label")),e.opts.autoescape),r+=""),r+='\n ',r+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"value")),e.opts.autoescape),r+="\n "),r+="\n
      \n"),i(null,r)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_files.html.njk"]={root:function(e,t,o,n,i){var r="";try{if(n.contextOrFrameLookup(t,o,"value")&&0\n ',o=o.push();var s=n.contextOrFrameLookup(t,o,"value");if(s)for(var a=(s=n.fromIterator(s)).length,l=0;l\n
      \n
      \n "}o=o.pop(),r+="\n
      \n"}i(null,r)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_openhours.html.njk"]={root:function(e,t,o,n,i){var r="";try{if(n.contextOrFrameLookup(t,o,"value")){if(r+='\n
      \n ',o=o.push(),s=n.contextOrFrameLookup(t,o,"value")){var s=n.fromIterator(s);if(n.isArray(s))for(var a=s.length,l=0;l\n ',r+=n.suppressValue(e.getFilter("capitalize").call(t,u),e.opts.autoescape),r+='\n ',r+=n.suppressValue(c,e.opts.autoescape),r+=" \n
      \n "),r+="\n "}else{l=-1;var p,a=n.keys(s).length;for(p in s){l++;var d=s[p];o.set("key",p),o.set("horaire",d),o.set("loop.index",l+1),o.set("loop.index0",l),o.set("loop.revindex",a-l),o.set("loop.revindex0",a-l-1),o.set("loop.first",0===l),o.set("loop.last",l===a-1),o.set("loop.length",a),r+=" \n ",null!=d&&(r+='\n
      \n ',r+=n.suppressValue(e.getFilter("capitalize").call(t,p),e.opts.autoescape),r+='\n ',r+=n.suppressValue(d,e.opts.autoescape),r+=" \n
      \n "),r+="\n "}}}o=o.pop(),r+=" \n
      \n"}i(null,r)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_separator.html.njk"]={root:function(e,t,o,n,i){try{i(null,'
      ')}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_tags.html.njk"]={root:function(e,t,o,n,i){var r="";try{if(n.contextOrFrameLookup(t,o,"value")){r+='\n
      \n ',o=o.push();var s=n.contextOrFrameLookup(t,o,"value");if(s)for(var a=(s=n.fromIterator(s)).length,l=0;l',r+=n.suppressValue(e.getFilter("capitalize").call(t,e.getFilter("trim").call(t,u)),e.opts.autoescape),r+=" \n "}o=o.pop(),r+="\n
      \n"}i(null,r)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_taxonomy.html.njk"]={root:function(s,a,l,u,c){var p=0,d=0,h="";try{h+='
      \n ',s.getTemplate("components/element/category-value.html.njk",!1,"components/element/element-filters/gogo_taxonomy.html.njk",!1,function(e,t){e?c(e):t.getExported(function(e,t){if(e)c(e);else{if(a.setVariable("categoryRenderer",t),h+="\n ",s.getFilter("is_array").call(a,u.contextOrFrameLookup(a,l,"value"))){h+="\n ",l=l.push();var o=u.contextOrFrameLookup(a,l,"value");if(o)for(var n=(o=u.fromIterator(o)).length,i=0;i\n ',n.contextOrFrameLookup(t,o,"label")&&(a+='',a+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"label")),e.opts.autoescape),a+=""),a+='\n ',a+=n.suppressValue(e.getFilter("safe").call(t,(r=3,s=44,n.callWrap(n.contextOrFrameLookup(t,o,"formatPhoneNumber"),"formatPhoneNumber",t,[n.contextOrFrameLookup(t,o,"value")]))),e.opts.autoescape),a+="
      \n"),i(null,a)}catch(e){i(n.handleError(e,r,s))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_text.html.njk"]={root:function(e,t,o,n,i){var r="";try{n.contextOrFrameLookup(t,o,"value")&&(r+='\n
      \n ',n.contextOrFrameLookup(t,o,"label")&&(r+='',r+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"label")),e.opts.autoescape),r+=""),r+='\n ',r+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"value")),e.opts.autoescape),r+="\n
      \n"),i(null,r)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_textarea.html.njk"]={root:function(e,t,o,n,i){var r,s,a,l=0,u=0,c="";try{n.contextOrFrameLookup(t,o,"value")&&(c+="\n ",l=1,u=33,r=n.callWrap(n.contextOrFrameLookup(t,o,"splitLongText"),"splitLongText",t,[n.contextOrFrameLookup(t,o,"value"),e.getFilter("default").call(t,n.contextOrFrameLookup(t,o,"truncate"),1e3),e.getFilter("default").call(t,n.contextOrFrameLookup(t,o,"tolerance"),50)]),o.set("longText",r,!0),o.topLevel&&t.setVariable("longText",r),o.topLevel&&t.addExport("longText",r),c+="\n ",l=2,u=36,s=n.callWrap(n.contextOrFrameLookup(t,o,"applyGlossary"),"applyGlossary",t,[n.memberLookup(n.contextOrFrameLookup(t,o,"longText"),"first"),e.getFilter("default").call(t,n.contextOrFrameLookup(t,o,"glossary"),{})]),o.set("visibleText",s,!0),o.topLevel&&t.setVariable("visibleText",s),o.topLevel&&t.addExport("visibleText",s),c+='\n
      \n"),i(null,c)}catch(e){i(n.handleError(e,l,u))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_title.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+="

      ",r+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"value")),e.opts.autoescape),i(null,r+="

      ")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_url.html.njk"]={root:function(e,t,o,n,i){var r,s=0,a=0,l="";try{n.contextOrFrameLookup(t,o,"value")&&(l+='\n
      \n ',n.contextOrFrameLookup(t,o,"label")&&(l+='',l+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"label")),e.opts.autoescape),l+=""),l+="\n\n ",s=4,a=32,r=0',l+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"value")),e.opts.autoescape),l+="\n "),l+="\n
      \n"),i(null,l)}catch(e){i(n.handleError(e,s,a))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_vimeo.html.njk"]={root:function(e,t,o,n,i){var r="";try{n.contextOrFrameLookup(t,o,"value")&&(r+='\n
      \n ';$("#modal-iframe #iframe-code").val(e)},s.prototype.createListenerForLayers=function(){this.listenerLayerChangeHasBeenCreated||(n.App.config.map.saveTileLayerInCookies&&$("#directory-content-map .leaflet-control-layers-selector").change(function(e){i.createCookie("defaultBaseLayer",$(this).siblings("span").text(),100)}),this.listenerLayerChangeHasBeenCreated=!0)},s.prototype.showControlLayers=function(){$("#directory-content-map .leaflet-control-layers").show(),$("#directory-content-map #close-layers-panel").show(),this.createListenerForLayers()},s.prototype.hideControlLayers=function(){$("#directory-content-map .leaflet-control-layers").hide(),$("#directory-content-map #close-layers-panel").hide()},s);function s(){this.listenerLayerChangeHasBeenCreated=!1}},"./src/js/components/map/map-feature.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{MapFeatureComponent:()=>i});var n=o("./src/js/gogocarto.ts"),i=(r.prototype.defaultStyle=function(){var e=this.element.geoJSONFeature.properties||{},t=n.App.taxonomyModule.getOptionById(this.element.colorOptionId).color||n.App.config.colors.textDark;return{fillColor:e.fill||t,fillOpacity:e["fill-opacity"]||.4,color:e.stroke||t,opacity:e["stroke-opacity"]||1,weight:e["stroke-width"]||2.5,dashArray:e["stroke-dasharray"]||0}},r.prototype.initialize=function(){var t=this;this.featureLayer_=L.geoJSON(this.element.geoJSONFeature,{style:function(){return t.defaultStyle()}}).addTo(n.App.map()),this.featureLayer_.on("click",function(e){n.App.mapManager.handleMarkerClick(t.element.marker)}),this.featureLayer_.on("mouseover",function(e){t.element.showBigSize()}),this.featureLayer_.on("mouseout",function(e){t.element.showNormalSize()})},r.prototype.update=function(){var e=this;this.featureLayer.setStyle(function(){return e.defaultStyle()})},r.prototype.showBigSize=function(){var e=this;this.featureLayer.setStyle(function(){return{weight:1.5*e.defaultStyle().weight}})},r.prototype.showNormalSize=function(){var t=this;this.featureLayer.setStyle(function(e){return{weight:t.defaultStyle().weight}})},Object.defineProperty(r.prototype,"featureLayer",{get:function(){return this.featureLayer_},enumerable:!1,configurable:!0}),r);function r(e){var t=this;this.element=e,n.App.map()?this.initialize():n.App.mapComponent.onMapReady.do(function(){return t.initialize()})}},"./src/js/components/map/map.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{MapComponent:()=>i});var s=o("./src/js/app.module.ts"),n=o("./src/js/classes/classes.ts"),a=o("./src/js/utils/cookies.ts"),l=o("./src/js/gogocarto.ts"),i=(r.prototype.getMap=function(){return this.map_},r.prototype.getCenter=function(){return this.viewport?L.latLng(this.viewport.lat,this.viewport.lng):null},r.prototype.getBounds=function(){return this.isMapLoaded?this.map_.getBounds():null},r.prototype.getZoom=function(){return this.map_.getZoom()},r.prototype.getOldZoom=function(){return this.oldZoom},r.prototype.show=function(){$("#directory-content-map").show()},r.prototype.hide=function(){$("#directory-content-map").hide()},r.prototype.initialize=function(){var o=this;if(this.isInitialized)this.resize();else{for(var e={},t=0,n=l.App.config.map.tileLayers;tGoGoCarto | Leaflet'}).addTo(this.map_),setTimeout(function(){$(".leaflet-control-zoom").addClass("gogo-section-controls"),$(".leaflet-control-zoom a").addClass("gogo-color-link"),$(".leaflet-control-layers").addClass("gogo-section-controls")},0),l.App.config.map.geojsonLayers&&Array.isArray(l.App.config.map.geojsonLayers)&&l.App.config.map.geojsonLayers.forEach(function(e){void 0===e.type?o.loadRemoteGeoJSON(o.map_,e.url):o.loadInlineGeoJSON(o.map_,e)}),l.App.config.map.useClusters?this.markersGroup=L.markerClusterGroup({showCoverageOnHover:!1,zoomToBoundsOnClick:!0,spiderfyOnMaxZoom:!0,spiderfyDistanceMultiplier:1.1,chunkedLoading:!0,animate:!1,iconCreateFunction:function(e){var t=e.getChildCount(),e=" marker-cluster-";return e+=t<10?"small":t<100?"medium":t<1e3?"large":"large xl",new L.DivIcon({html:"
      "+t+"
      ",className:"marker-cluster"+e,iconSize:new L.Point(40,40)})},maxClusterRadius:function(e){return 10contains : map not loaded or element position undefined"),!1)},r.prototype.extendedContains=function(e){return!(!this.isMapLoaded||!e)&&l.App.boundsModule.extendedBounds.contains(e)},r.prototype.updateViewPort=function(){this.viewport||(this.viewport=new n.ViewPort),this.viewport.lat=this.map_.getCenter().lat,this.viewport.lng=this.map_.getCenter().lng,this.viewport.zoom=this.getZoom()},r.prototype.setViewPort=function(e,t){var o=this;void 0===t&&(t=!0),this.map_&&e&&t&&(t=l.App.state==s.AppStates.ShowElementAlone?500:0,setTimeout(function(){o.map_.setView(L.latLng(e.lat,e.lng),e.zoom)},t)),this.viewport=e},r.prototype.isMapBounds=function(){return this.getMap()&&this.getMap().getBounds()},r.prototype.hasZoomedIn=function(){var e=this.getZoom(),t=this.getOldZoom();return e!=t&&-1!=t&&t{"use strict";o.r(t),o.d(t,{Marker:()=>i});var n=o("./src/js/gogocarto.ts"),i=(r.prototype.update=function(){var e=n.App.templateModule.render("marker",{element:this.element,config:n.App.config,popup:n.App.templateModule.elementTemplate.renderMarkerPopup(this.element.toDisplay())}),t=this.leafletMarker._icon?this.leafletMarker._icon.className:"leaflet-marker-container";t.replace("leaflet-marker-icon",""),this.leafletMarker.setIcon(L.divIcon({className:t,html:e}))},r.prototype.animateDrop=function(){var e=this;this.isAnimating=!0,this.domMarker().animate({top:"-=25px"},300,"easeInOutCubic"),this.domMarker().animate({top:"+=25px"},250,"easeInOutCubic",function(){e.isAnimating=!1,e.domMarker().css("top","auto")})},r.prototype.showBigSize=function(){this.addClassToLeafletMarker_("big-size");var e=this.domMarker();e.parent().find(".marker-popup").show(),e.parent().find(".other-icons-wrapper").css("display","flex"),e.find(".gogo-icon-plus-circle").hide()},r.prototype.showNormalSize=function(){var e=this.domMarker();this.removeClassToLeafletMarker_("big-size"),n.App.config.marker.popupAlwaysVisible||e.parent().find(".marker-popup").hide(),e.parent().find(".other-icons-wrapper").hide(),e.find(".gogo-icon-plus-circle").show()},r.prototype.addClassToLeafletMarker_=function(e){this.domMarker().find(".marker-wrapper").addClass(e),this.domMarker().siblings(".marker-popup").addClass(e)},r.prototype.removeClassToLeafletMarker_=function(e){this.domMarker().find(".marker-wrapper").removeClass(e),this.domMarker().siblings(".marker-popup").removeClass(e)},r.prototype.domMarker=function(){return $("#marker-"+this.element.id)},r.prototype.getLeafletMarker=function(){return this.leafletMarker},r.prototype.getPosition=function(){return this.leafletMarker.getLatLng()},r);function r(e){var t=this;this.isAnimating=!1,this.element=e,this.leafletMarker=L.marker(this.element.position,{riseOnHover:!0}),this.leafletMarker.on("click",function(e){n.App.mapManager.handleMarkerClick(t)}),this.leafletMarker.on("mouseover",function(e){t.isAnimating||t.element.showBigSize()}),this.leafletMarker.on("mouseout",function(e){t.isAnimating||t.element.showNormalSize()}),this.leafletMarker.setIcon(L.divIcon({className:"leaflet-marker-container",html:''}))}},"./src/js/components/modals/abstract-modal.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{AbstractModalComponent:()=>i});var n=o("./src/js/gogocarto.ts"),i=(r.prototype.initialize=function(){},r.prototype.binds=function(){var t=this;this.dom.find("button[type=submit]").click(function(e){return t.handleSubmit(e)})},r.prototype.open=function(e){this.element=e,this.clearLoader(),this.dom.find(".generic-error-message").hide(),this.beforeOpen(e),this.dom.openModal()},r.prototype.beforeOpen=function(e){},r.prototype.handleSubmit=function(e){this.element&&(this.displayLoader(),this.submit(),e.stopPropagation(),e.stopImmediatePropagation(),e.preventDefault())},r.prototype.submit=function(){},r.prototype.sendRequest=function(e){var t=this;n.App.ajaxModule.sendRequest(this.ajaxUrl,"post",e,function(e){setTimeout(function(){return t.clearLoader()},500),t.onSuccess(e)},function(e){t.clearLoader(),t.onError(e)})},r.prototype.displayLoader=function(){this.dom.find(".cancel-btn").css("display","inline-block"),this.dom.find("button[type=submit]").hide(),this.dom.find(".loader-overlay").fadeIn(800)},r.prototype.clearLoader=function(){this.dom.find(".cancel-btn").hide(),this.dom.find("button[type=submit]").css("display","inline-block"),this.dom.find(".loader-overlay").hide()},r.prototype.onSuccess=function(e){e.success?(this.dom.closeModal(),this.element.component.addFlashMessage(e.message)):this.onError(e.message)},r.prototype.onError=function(e){this.dom.find("#message-error").text(e).show()},r);function r(e){this.ajaxUrl="",this.dom=$(e),this.initialize(),this.binds()}},"./src/js/components/modals/delete.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{DeleteComponent:()=>a});var n,i,r=o("./src/js/gogocarto.ts"),s=o("./src/js/utils/string-helpers.ts"),t=o("./src/js/components/modals/abstract-modal.component.ts"),o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),a=(i=t.AbstractModalComponent,o(l,i),l.prototype.beforeOpen=function(e){this.dom.find(".elementName").text((0,s.capitalize)(e.name)),this.dom.find(".input-comment").val(""),this.dom.find(".option-radio-btn:checked").prop("checked",!1),this.dom.find("#select-error").hide()},l.prototype.submit=function(){var e=this.dom.find(".input-comment").val(),e=(r.App.config.features.delete.url,{elementId:this.element.id,message:e});this.sendRequest(e)},l.prototype.onSuccess=function(e){var t=this,o=e.message;e.success?(this.dom.closeModal(),r.App.infoBarComponent.show(),this.element.update(!0),this.element.isFullyLoaded=!1,r.App.infoBarComponent.showElement(this.element.id,function(){t.element.component.addFlashMessage(o)}),this.element.component.addFlashMessage(o)):this.dom.find("#select-error").text(o).show()},l.prototype.onError=function(e){this.dom.find("#select-error").text(e).show()},l);function l(){var e=i.call(this,"#modal-delete")||this;return e.ajaxUrl=r.App.config.features.delete.url,e}},"./src/js/components/modals/report.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{ReportComponent:()=>a});var n,i,r=o("./src/js/gogocarto.ts"),s=o("./src/js/utils/string-helpers.ts"),t=o("./src/js/components/modals/abstract-modal.component.ts"),o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),a=(i=t.AbstractModalComponent,o(l,i),l.prototype.beforeOpen=function(){this.dom.find(".elementName").text((0,s.capitalize)(this.element.name)),this.dom.find(".input-comment").val(""),this.dom.find(".option-radio-btn:checked").prop("checked",!1),this.dom.find("#select-error").hide(),this.dom.find("#mail-error").hide(),r.App.loginModule.getUserEmail()?(this.dom.find(".input-mail").hide(),this.dom.find(".input-mail").val(r.App.loginModule.getUserEmail())):(this.dom.find(".input-mail").val(""),this.dom.find(".input-mail").show())},l.prototype.submit=function(){var e,t,o;this.element&&(e=this.dom.find(".option-radio-btn:checked").attr("value"),o=this.dom.find(".input-mail").val(),this.dom.find("#select-error").hide(),this.dom.find("#mail-error").hide(),t=!1,e||(this.dom.find("#select-error").show(),t=!0),o&&!this.dom.find(".input-mail").hasClass("invalid")||(this.dom.find("#mail-error").show(),t=!0),t?this.clearLoader():(t=this.dom.find(".input-comment").val(),r.App.config.features.report.url,o={elementId:this.element.id,value:e,comment:t,userEmail:o},this.sendRequest(o)))},l.prototype.onError=function(e){this.dom.find("#select-error").text(e).show()},l);function l(){var e=i.call(this,"#modal-report")||this;return e.ajaxUrl=r.App.config.features.report.url,e}},"./src/js/components/modals/send-email.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{SendEmailComponent:()=>a});var n,i,r=o("./src/js/gogocarto.ts"),t=o("./src/js/components/modals/abstract-modal.component.ts"),s=o("./src/js/utils/string-helpers.ts"),o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),a=(i=t.AbstractModalComponent,o(l,i),l.prototype.beforeOpen=function(e){this.dom.find(".elementName").text((0,s.capitalize)(this.element.name)),this.dom.find(".input-mail-content").val(""),this.dom.find(".input-mail-subject").val(""),this.dom.find("#content-error").hide(),this.dom.find("#mail-error").hide(),r.App.loginModule.getUserEmail()?(this.dom.find(".input-mail").hide(),this.dom.find(".input-mail").val(r.App.loginModule.getUserEmail())):(this.dom.find(".input-mail").val(""),this.dom.find(".input-mail").show())},l.prototype.submit=function(){var e=this.dom.find(".input-mail").val(),t=this.dom.find(".input-mail-subject").val(),o=this.dom.find(".input-mail-content").val();this.dom.find("#message-error").hide(),this.dom.find("#content-error").hide(),this.dom.find("#mail-error").hide();var n=!1;t&&o||(this.dom.find("#content-error").show(),n=!0),e&&!this.dom.find(".input-mail").hasClass("invalid")||(this.dom.find("#mail-error").show(),this.dom.find(".input-mail").show(),n=!0),n?this.clearLoader():(this.dom.find(".input-comment").val(),e={elementId:this.element.id,subject:t,content:o,userEmail:e},this.sendRequest(e))},l);function l(){var e=i.call(this,"#modal-send-email")||this;return e.ajaxUrl=r.App.config.features.sendMail.url,e}},"./src/js/components/modals/subscribe.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{SubscribeComponent:()=>a});var n,i,r=o("./src/js/gogocarto.ts"),s=o("./src/js/utils/string-helpers.ts"),t=o("./src/js/components/modals/abstract-modal.component.ts"),o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),a=(i=t.AbstractModalComponent,o(l,i),l.prototype.beforeOpen=function(){this.dom.find(".elementName").text((0,s.capitalize)(this.element.name)),this.dom.find("#message-error").hide(),this.dom.find("#mail-error").hide(),this.dom.find(".input-mail").val("")},l.prototype.submit=function(){var e,t;this.element&&(t=this.dom.find(".input-mail").val(),this.dom.find("#mail-error").hide(),this.dom.find("#message-error").hide(),e=!1,t&&!this.dom.find(".input-mail").hasClass("invalid")||(this.dom.find("#mail-error").show(),e=!0),e?this.clearLoader():(r.App.config.features.subscribe.url,t={elementId:this.element.id,userEmail:t},this.sendRequest(t)))},l);function l(){var e=i.call(this,"#modal-subscribe-element")||this;return e.ajaxUrl=r.App.config.features.subscribe.url,e}},"./src/js/components/modals/unsubscribe.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{UnsubscribeComponent:()=>a});var n,i,r=o("./src/js/gogocarto.ts"),s=o("./src/js/utils/string-helpers.ts"),t=o("./src/js/components/modals/abstract-modal.component.ts"),o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),a=(i=t.AbstractModalComponent,o(l,i),l.prototype.beforeOpen=function(){this.dom.find(".elementName").text((0,s.capitalize)(this.element.name)),this.dom.find("#message-error").hide(),this.dom.find("#mail-error").hide(),this.dom.find(".input-mail").val("")},l.prototype.submit=function(){var e,t;this.element&&(t=this.dom.find(".input-mail").val(),this.dom.find("#mail-error").hide(),this.dom.find("#message-error").hide(),e=!1,t&&!this.dom.find(".input-mail").hasClass("invalid")||(this.dom.find("#mail-error").show(),e=!0),e?this.clearLoader():(r.App.config.features.subscribe.url.replace("subscribe","unsubscribe"),t={elementId:this.element.id,userEmail:t},this.sendRequest(t)))},l);function l(){var e=i.call(this,"#modal-unsubscribe-element")||this;return e.ajaxUrl=r.App.config.features.subscribe.url.replace("subscribe","unsubscribe"),e}},"./src/js/components/modals/vote.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{VoteComponent:()=>l});var n,i,r=o("./src/js/classes/classes.ts"),s=o("./src/js/gogocarto.ts"),a=o("./src/js/app.module.ts"),t=o("./src/js/components/modals/abstract-modal.component.ts"),o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),l=(i=t.AbstractModalComponent,o(u,i),u.prototype.beforeOpen=function(e){this.dom.find(".specific-content").html(s.App.templateModule.render("vote-modal-content",{element:this.element,ElementStatus:r.ElementStatus,isAdmin:s.App.config.isFeatureAvailable("directModeration"),eldisplayName:s.App.config.translate("element.definite")}))},u.prototype.submit=function(){var e,t=this.dom.find(".option-radio-btn:checked").attr("value");this.dom.find("#select-error").hide(),t?(e=this.dom.find(".input-comment").val(),s.App.config.features.vote.url,e={elementId:this.element.id,value:t,comment:e},this.sendRequest(e)):(this.clearLoader(),this.dom.find("#select-error").show())},u.prototype.onSuccess=function(e){var t=this,o=e.message,n=e.data;e.success?($("#modal-vote").closeModal(),this.element.status!=n?(this.element.status=n,this.element.update(!0),this.element.isFullyLoaded=!1,s.App.mode==a.AppModes.Map?s.App.infoBarComponent.showElement(this.element.id,function(){t.element.component.addFlashMessage(o)}):this.element.component.addFlashMessage(o)):this.element.component.addFlashMessage(o)):this.onError(o)},u.prototype.onError=function(e){e&&0!=e.length||(e="Oups, une erreur s'est produite ! Veuillez réessayer plus tard ou nous signaler le problème"),this.dom.find(".generic-error-message").html(e).show()},u);function u(){var e=i.call(this,"#modal-vote")||this;return e.ajaxUrl=s.App.config.features.vote.url,e.dom.find("#select-vote").material_select(),e}},"./src/js/components/search-bar/search-bar.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{SearchBarComponent:()=>n});var s=o("./src/js/gogocarto.ts"),i=o("./src/js/app.module.ts"),a=function(){for(var e=0,t=0,o=arguments.length;t").addClass("search-bar-autocomplete-result-item "+t.type),n=$("
      ").addClass("search-bar-autocomplete-result-item-wrapper");return t.icon&&n.append('
      '),"element"===t.type&&n.addClass("nested"),n.append('
      '+t.label+"
      "),t.subLabel&&n.append('
      '+t.subLabel+"
      "),o.append(n).appendTo(e)}}),this.searchInput().gogoAutocomplete({appendTo:".autocomplete-container",classes:{"ui-autocomplete":"search-bar-autocomplete-results-container gogo-section-content"},position:{at:"left bottom+5"},source:function(e,n){var i=e.term;r.beforeSearch(),s.App.search.searchTerm(i,function(e,t,o){r.searchLoading(!0),r.setAutocompleteItems(i,e,t,o,n)})},focus:function(e){return e.preventDefault()},select:function(e,t){switch(r.beforeSearch(),t.item.type){case"search_geocoded":r.searchGeocoded(t.item.value);break;case"geocoded":r.showGeocoded(t.item.value);break;case"option":r.searchOption(t.item.value);break;case"search_elements":r.searchElements(t.item.value.term,t.item.value.results);break;case"element":r.searchElement(t.item.value)}e.preventDefault()}}),this.searchInput().keypress(function(e){13===e.keyCode&&r.handleSearchAction()}),this.searchInput().click(function(){return r.searchInput().gogoAutocomplete("search")}),$(".search-bar-icon, .search-bar-btn").click(function(){return r.handleSearchAction()}),$("#btn-close-search-result").click(function(){return r.resetElementsSearchResult()}),$(".search-geolocalize").tooltip(),$(".search-geolocalize").click(function(){return r.geolocateUser()}),$("#search-overlay-mobile .overlay").click(function(){return r.hideMobileSearchBar()})},r.prototype.setAutocompleteItems=function(e,t,o,n,i){var r=[];s.App.config.isFeatureAvailable("searchPlace")&&!s.App.config.search.canAutocomplete&&(r=a(r,[{label:s.App.config.translate("geographic.location"),type:"search_geocoded",value:e,icon:"gogo-icon-marker-symbol"}])),0'+(e.getFormattedAddress()||e.getStreetName()||e.getSubLocality()||e.getLocality()||e.getRegion()||e.getCountry())+"",icon:"gogo-icon-marker-symbol"}}))),0'+s.App.config.translate("category")+'\n '+e.name+"",icon:e.icon||"gogo-icon-stamp-2"}}))),0'+e+" ("+t.length+")",type:"search_elements",value:{term:e,results:{data:t.map(function(e){return e.value})}},icon:"gogo-icon-database"}),r=a(r,t.slice(0,4).map(function(e){var t=e.type,o=e.value,e={type:t,value:o,label:''+o.name+""};return o.address&&(t="",o.address.postalCode&&(t+=o.address.postalCode),o.address.addressLocality&&(t+=(t?" ":"")+o.address.addressLocality),t&&(e.subLabel=t)),e}))),i(r)},r.prototype.searchGeocoded=function(e){var t=this;if(s.App.config.mode.autocompleteOnly){var o=s.App.routerModule.generate("normal",{mode:"carte",addressAndViewport:e});return this.searchInput().trigger("searchRoute",o),void this.searchInput().trigger("searchGeocoder",{value:e})}s.App.geocoder.geocodeAddress(e,function(e){t.showGeocoded(e[0])},function(){t.searchLoading(!0),$(".search-no-result").show()})},r.prototype.showGeocoded=function(e){var t,o;s.App.config.mode.autocompleteOnly?(o=e.getDisplayName(),t=s.App.routerModule.generate("normal",{mode:"carte",addressAndViewport:o}),this.searchInput().trigger("searchRoute",t),this.searchInput().trigger("searchGeocoder",{value:o})):(this.searchLoading(!0),this.resetOptionSearchResult(),this.resetElementsSearchResult(!1),this.hideMobileSearchBar(),(o=e.shape)&&"Polygon"==o.type?(console.log("geojson",o),this.locationShape=L.geoJSON(o,{style:function(e){return{color:s.App.config.colors.primary,fillOpacity:.05,opacity:.7}}}).addTo(s.App.map())):this.displaySearchResultMarkerOnMap(L.latLng(e.getCoordinates().latitude,e.getCoordinates().longitude)),s.App.mapComponent.fitBounds(s.App.geocoder.latLngBoundsFromRawBounds(e.getBounds()),!0))},r.prototype.searchOption=function(e){if(s.App.config.mode.autocompleteOnly){var t=s.App.routerModule.generate("search_option",{name:e.name,id:e.id});return this.searchInput().trigger("searchRoute",t),void this.searchInput().trigger("searchCategory",{name:e.name,id:e.id})}var o;this.searchLoading(!0),this.resetOptionSearchResult(!1),this.resetElementsSearchResult(!1),this.hideMobileSearchBar(),s.App.config.menu.showOnePanePerMainOption?e.parentCategoryIds.forEach(function(e){e=s.App.taxonomyModule.getCategoryById(e.id);e.isRootCategory||e.toggle(!1,!1)}):(s.App.taxonomyModule.categories.forEach(function(e){return e.toggle(!1,!1)}),o=e.parentCategoryIds.map(function(e){return e.id}),s.App.taxonomyModule.categories.filter(function(e){return e.isRootCategory&&!o.includes(e.id)}).forEach(function(e){return e.toggle(!0,!1)})),e.parentCategoryIds.forEach(function(e){s.App.taxonomyModule.getCategoryById(e.id).toggleChildrenDetail(!0),e.mandatorySiblingIds.forEach(function(e){return s.App.taxonomyModule.getCategoryById(e).toggle(!0,!1)})}),e.parentOptionIds.forEach(function(e){return s.App.filtersComponent.setOption(e,!1,!1,!0)}),s.App.filtersComponent.setOption(e.id,!1,!0,!1,!0)},r.prototype.searchElements=function(e,t,o){if(void 0===o&&(o=!1),s.App.config.mode.autocompleteOnly){var n=s.App.routerModule.generate("search",{mode:"liste",text:e});return this.searchInput().trigger("searchRoute",n),void this.searchInput().trigger("searchElements",{value:e})}this.searchLoading(!0),this.resetOptionSearchResult(),this.hideMobileSearchBar(),this.hideSearchBarAutocomplete(),this.currSearchText=e,s.App.setDataType(i.AppDataType.SearchResults,o,t),this.showSearchResultLabel(t.data.length),s.App.gogoControlComponent.updatePosition()},r.prototype.searchElement=function(e){if(s.App.config.mode.autocompleteOnly){var t=s.App.routerModule.generate("show_element",{name:e.name,id:e.id});return this.searchInput().trigger("searchRoute",t),void this.searchInput().trigger("searchElement",{name:e.name,id:e.id})}this.searchLoading(!0),this.resetOptionSearchResult(),this.resetSearchResult(!1),this.hideMobileSearchBar(),this.hideSearchBarAutocomplete(),e.isFullyLoaded||s.App.elementsJsonModule.convertJsonElements([e],!0,!0),s.App.setState(i.AppStates.ShowElement,{id:e.id,mapPan:!0})},r.prototype.handleSearchAction=function(){var n=this,i=this.searchInput().val();this.beforeSearch(),s.App.search.searchTerm(i,function(e,t,o){if((n.searchLoading(!0),0{"use strict";o.r(t),o.d(t,{App:()=>s,GoGoCartoModule:()=>r,default:()=>function(e,t,o){void 0===o&&(o={});return new r(e,t,o)}});var s,a=o("./src/js/app.module.ts"),l=o("./src/js/utils/params.ts"),u=o("./src/js/themes.ts"),n=o("./src/js/utils/array.ts"),i=o("./src/js/utils/string-helpers.ts"),t=o("./node_modules/tinycolor2/tinycolor.js"),c=o.n(t)(),r=(p.prototype.setUserRole=function(e){this.app.loginModule.setRoles(e)},p.prototype.setUserRoles=function(e){this.app.loginModule.setRoles(e)},p.prototype.setUserEmail=function(e){this.app.loginModule.setUserEmail(e)},p.prototype.getElementRouteHash=function(e,t){return this.app.routerModule.generate("show_element",{id:e,name:t=void 0===t?"find":t})},p.prototype.showDirectoryMenu=function(){this.app.directoryMenuComponent.show()},p.prototype.hideDirectoryMenu=function(){this.app.directoryMenuComponent.hide()},p.prototype.slugify=function(e){return(0,i.slugify)(e)},p.prototype.checkForDistantConfiguration=function(e,t){var o=this;void 0===t&&(t={}),"object"==typeof e?this.checkForDistantTaxonomy(e):$.ajax({url:e,success:function(e){"string"==typeof e&&(e=JSON.parse(e)),e=(0,n.mergeDeep)(e,t),o.checkForDistantTaxonomy(e)},error:function(){console.error("Error while getting the configuration at url ",e)}})},p.prototype.checkForDistantTaxonomy=function(t){var o=this,e=t.data.taxonomy;e&&(t.data.elements||t.data.elementsApiUrl)?"object"==typeof e?this.init(e,t):$.getJSON(e,function(e){o.init(e,t)}):console.warn("[GoGoCarto] You must provide a taxonomy and elements dataset (both url or Json object)")},p.prototype.init=function(e,t){var o=this,n=(0,l.getQueryParams)(window.location.search),i=!!n.iframe&&1==n.iframe,r=!n.fullTaxonomy||1==n.fullTaxonomy;if(s=new a.AppModule(t,i,r,n),(this.app=s).taxonomyModule.createTaxonomyFromJson(e),s.taxonomyModule.options.length&&(n=s.templateModule.render("gogo-styles",{optionList:s.taxonomyModule.options,config:s.config,tinycolor:c}),(e=$("head").length?$("head"):$("html")).length?e.append(n):console.warn("[GoGoCarto] Cannot find Dom 'head' or 'html' to add styles")),s.config.mode.autocompleteOnly)return s.searchBarComponent.initialize(),void s.geocoder.initialize();r=s.templateModule.render("layout",{rootCategories:s.taxonomyModule.rootCategories,mainCategory:s.taxonomyModule.mainCategory,isIframe:i,fullTaxonomy:r,config:s.config,allowedStamps:s.stampModule.allowedStamps});0==$(this.container).length?console.warn('[GoGoCarto] The container "'+this.container+'" was not found'):$(this.container).append(r),$(this.container).trigger("templateLoaded"),(0,u.afterTemplateLoaded)(),setTimeout(function(){s.initialize(),s.directoryMenuComponent.initialize(),s.elementsModule.initialize(),s.filtersComponent.initialize(),s.boundsModule.initialize(),s.elementListComponent.initialize(),s.searchBarComponent.initialize(),s.gogoControlComponent.initialize(),s.mapControlsComponent.initialize(),s.customPopupComponent.initialize(),s.geocoder.initialize(),s.component.initialize(),s.templateModule.elementTemplate.onReady.do(function(){var e;s.elementsJsonModule.loadLocalElements(),1==s.elementsModule.allElements().length&&(e=s.elementsModule.allElements()[0],e=s.routerModule.generate("show_element",{name:e.name,id:e.id}),window.location.hash||(window.location.hash=e)),s.routerModule.loadInitialState()}),s.templateModule.initialize(),o.bindEvents()},0)},p.prototype.bindEvents=function(){var t=this;this.app.mapManager.onMarkerClick.do(function(e){return t.fireEvent("markerClick",{id:e})})},p.prototype.fireEvent=function(e,t){$(this.container).trigger(e,t)},p);function p(e,t,o){void 0===t&&(t={}),void 0===o&&(o={}),this.container="",this.container=e,this.checkForDistantConfiguration(t,o)}},"./src/js/managers/data-type.manager.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{AppDataType:()=>n,DataTypeManager:()=>s});var n,i=o("./src/js/gogocarto.ts"),r=o("./src/js/app.module.ts");(o=n=n||{})[o.All=0]="All",o[o.SearchResults=1]="SearchResults";var s=(a.prototype.setDataType=function(e,t,o){void 0===t&&(t=!1),void 0===o&&(o=null),(this.dataType_=e)==n.SearchResults&&o&&(i.App.stateManager.setState(r.AppStates.Normal),e=o.data.every(function(e){return e.isFullyLoaded})?o.data:i.App.elementsJsonModule.convertJsonElements(o.data,!0,!0).elementsConverted,i.App.elementsModule.setSearchResultElement(e),i.App.filtersComponent.setMainOption("all"),0{"use strict";o.r(t),o.d(t,{ElementsManager:()=>r});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/app.module.ts"),r=(s.prototype.checkForNewElementsToRetrieve=function(e){void 0===e&&(e=!1),n.App.dataType==i.AppDataType.All&&n.App.config.data.elementsApiUrl&&this.retrieveMissingElementsViaApi(e)},s.prototype.retrieveMissingElementsViaApi=function(e){var t=n.App.boundsModule.calculateFreeBounds(e);if("allRetrieved"!=t.status){if("included"==t.status)return n.App.boundsModule.updateFilledBoundsWithBoundsReceived(t.expectedFillBounds,n.App.currMainId,e),void this.handleNewElementsReceivedFromServer({data:[],fullRepresentation:e});var o=t.freeBounds,t=t.expectedFillBounds;o&&0e.elementsToDisplay.length?(n.App.mapComponent.clearMarkers(),n.App.mapComponent.addMarkers(e.elementsToDisplay.map(function(e){return e.marker.getLeafletMarker()}))):(n.App.mapComponent.removeMarkers(e.elementsToRemove.map(function(e){return e.marker.getLeafletMarker()})),n.App.mapComponent.addMarkers(e.newElements.map(function(e){return e.marker.getLeafletMarker()}))),n.App.mapComponent.addFeatures(e.newElements.filter(function(e){return e.feature}).map(function(e){return e.feature})),n.App.mapComponent.removeFeatures(e.elementsToRemove.filter(function(e){return e.feature}).map(function(e){return e.feature})),n.App.config.map.useClusters&&n.App.mapComponent.markersGroup.checkForUnclestering(n.App.map().getBounds())}(new Date).getTime()},s);function s(){var t=this;n.App.ajaxModule.onNewElements.do(function(e){t.handleNewElementsReceivedFromServer(e)}),n.App.elementsJsonModule.onNewsElementsConverted.do(function(e){n.App.elementsModule.addElements(e)}),n.App.elementsModule.onElementsToDisplayChanged.do(function(e){t.handleElementsToDisplayChanged(e)})}},"./src/js/managers/geocoding.manager.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{GeocodingManager:()=>s});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/app.module.ts"),r=o("./src/js/utils/string-helpers.ts"),s=(a.prototype.handleGeocodeResult=function(){var e;$("#directory-spinner-loader").hide(),n.App.mode==i.AppModes.Map&&n.App.state!=i.AppStates.ShowElementAlone?n.App.setState(i.AppStates.Normal):(e=n.App.geocoder.getLocation()?n.App.geocoder.getLocation():n.App.boundsModule.defaultCenter,n.App.boundsModule.createBoundsFromLocation(e),n.App.elementsModule.clearCurrentsElement(),n.App.elementsModule.updateElementsToDisplay(!0),e=n.App.geocoder.getLocationAddress(),n.App.geocoder.getLocation()&&n.App.elementListComponent.setTitle(" "+n.App.config.translate("around")+" "+(0,r.capitalize)((0,r.unslugify)(e))+"")),n.App.documentTitleModule.updateDocumentTitle()},a.prototype.handleGeolocalizationResult=function(e){n.App.mode==i.AppModes.Map?(n.App.setState(i.AppStates.Normal),n.App.mapComponent.panToLocation(e.toLocation(),e.zoom,!1)):(n.App.boundsModule.createBoundsFromLocation(e.toLocation()),n.App.elementsModule.clearCurrentsElement(),n.App.elementsModule.updateElementsToDisplay(!0),n.App.elementListComponent.setTitle(" "+n.App.config.translate("around")+" "+n.App.config.translate("my.position")+""),n.App.mapComponent.setViewPort(e))},a);function a(){var t=this;n.App.geocoder.onGeocodeResult.do(function(){t.handleGeocodeResult(),n.App.searchBarComponent.handleGeocodeResult()}),n.App.geocoder.onGeolocalizationResult.do(function(e){t.handleGeolocalizationResult(e)})}},"./src/js/managers/history-state.manager.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{HistoryStateManager:()=>a});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/app.module.ts"),r=o("./src/js/classes/classes.ts"),s=o("./src/js/utils/cookies.ts"),a=(l.prototype.load=function(t,e){void 0===e&&(e=!1),null!==t&&(this.lastHistoryState=t,console.log("loadHistorystate",t),t.dataType==i.AppDataType.SearchResults?(n.App.setDataType(t.dataType,!0),n.App.searchBarComponent.loadSearchElements(t.text,e),$("#directory-spinner-loader").hide()):!n.App.config.map.saveViewportInCookies||t.viewport||t.address||t.state!=i.AppStates.Normal||(console.log("no viewport nor address provided, using cookies values",s.readCookie("viewport"),s.readCookie("address")),s.readCookie("viewport")&&(t.viewport=(new r.ViewPort).fromString(s.readCookie("viewport"))),s.readCookie("address")&&(t.address=s.readCookie("address")),t.address&&$(".search-bar").val(t.address)),t.filters?n.App.filterRoutingModule.loadFiltersFromString(t.filters):n.App.filtersComponent.setMainOption("all"),n.App.taxonomyModule.taxonomy.recursivelyUpdateStates(!1),t.dataType==i.AppDataType.All&&t.viewport&&t.state!=i.AppStates.ShowElementAlone&&(n.App.mapComponent.setViewPort(t.viewport,n.App.mapComponent.isMapLoaded),t.mode==i.AppModes.List&&n.App.boundsModule.createBoundsFromLocation(L.latLng(t.viewport.lat,t.viewport.lng)),$("#directory-spinner-loader").hide(),t.mode==i.AppModes.List&&L.latLng(t.viewport.lat,t.viewport.lng)),n.App.setMode(t.mode,e,!1),t.dataType==i.AppDataType.All&&t.address&&!t.id&&("geolocalize"==t.address?n.App.searchBarComponent.geolocateUser():n.App.geocoder.geocodeAddress(t.address,function(e){t.viewport&&t.mode==i.AppModes.Map||n.App.mapComponent.fitBounds(n.App.geocoder.getBounds())},function(){n.App.searchBarComponent.setValue(""),t.viewport||(n.App.mapComponent.fitDefaultBounds(),n.App.component.toastMessage("Erreur, cette adresse n'a pas pu être localisée : "+t.address))})),t.viewport||t.address||!n.App.config.data.elementsApiUrl&&!n.App.config.map.defaultBoundsProvided||t.state==i.AppStates.ShowElementAlone||(console.log("fit default bounds no viewport no address"),n.App.mapComponent.fitDefaultBounds()),t.id?setTimeout(function(){n.App.setState(t.state,{id:t.id,panToLocation:null===t.viewport},e),$("#directory-spinner-loader").hide()},0):n.App.setState(t.state,null,e))},l);function l(){this.lastHistoryState=null}},"./src/js/managers/map.manager.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{MapManager:()=>s});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/app.module.ts"),r=o("./src/js/classes/classes.ts"),s=(a.prototype.handleInfoBarHide=function(){n.App.setState(i.AppStates.Normal)},a.prototype.setTimeoutClicking=function(){this.isClicking=!0;var e=this;setTimeout(function(){e.isClicking=!1},400)},a.prototype.handleMarkerClick=function(e){n.App.mode==i.AppModes.Map&&(this.setTimeoutClicking(),this.onMarkerClick.emit(e.element.id),n.App.setState(i.AppStates.ShowElement,{id:e.element.id}))},a.prototype.handleMapIdle=function(){var e,t=this;n.App.mode==i.AppModes.Map&&(n.App.mapComponent.isMapLoaded?(e=!n.App.mapComponent.hasZoomedIn(),n.App.elementsModule.updateElementsToDisplay(e),n.App.state!=i.AppStates.Normal&&n.App.state!=i.AppStates.ShowElement||n.App.elementsManager.checkForNewElementsToRetrieve(),n.App.dataType==i.AppDataType.All&&n.App.historyModule.updateCurrState()):n.App.mapComponent.onMapLoaded.do(function(){t.handleMapIdle()}))},a.prototype.handleMapClick=function(){this.isClicking||(n.App.state!=i.AppStates.ShowElement&&n.App.state!=i.AppStates.ShowElementAlone||(n.App.infoBarComponent.hide(),n.App.setState(i.AppStates.Normal)),n.App.mapControlsComponent.hideControlLayers())},a);function a(){var e=this;this.isClicking=!1,this.onMarkerClick=new r.Event,n.App.mapComponent.onIdle.do(function(){e.handleMapIdle()}),n.App.mapComponent.onClick.do(function(){e.handleMapClick()}),n.App.infoBarComponent.onHide.do(function(){e.handleInfoBarHide()})}},"./src/js/managers/mode.manager.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{AppModes:()=>i,ModeManager:()=>a});var i,r=o("./src/js/gogocarto.ts"),n=o("./src/js/app.module.ts"),s=o("./src/js/utils/string-helpers.ts");(o=i=i||{})[o.Map=1]="Map",o[o.List=2]="List";var a=(l.prototype.setMode=function(e,t,o){void 0===t&&(t=!1),void 0===o&&(o=!0),r.App.elementsModule.clearCurrentsElement(),r.App.elementListComponent.clear(),e==i.Map?this.setMapMode():this.setListMode();var n=this.mode_;this.mode_=e,null==n||t||r.App.historyModule.pushNewState(),r.App.gogoControlComponent.updatePosition(),setTimeout(function(){return r.App.elementsModule.updateElementsToDisplay(!0)},300),o&&(r.App.documentTitleModule.updateDocumentTitle(),e==i.Map&&r.App.setState(r.App.state,{id:r.App.stateManager.stateElementId}))},l.prototype.setMapMode=function(){r.App.mapComponent.show(),r.App.elementListComponent.hide(),r.App.mapComponent.initialize(),r.App.mapComponent.isMapLoaded&&(r.App.config.infobar.displayDateField&&r.App.elementListComponent.locRangeChanged?r.App.mapComponent.fitBounds(r.App.boundsModule.extendedBounds):r.App.boundsModule.extendBounds(0,r.App.mapComponent.getBounds()))},l.prototype.setListMode=function(){var e;r.App.mapComponent.hide(),r.App.elementListComponent.show(),r.App.elementListComponent.updateLocRangeSliderFromCurrBounds(),r.App.dataType==n.AppDataType.All?(e=r.App.geocoder.getLocationAddress(),r.App.geocoder.getLocation()?(r.App.geocoder.getLocation(),r.App.elementListComponent.setTitle(" "+r.App.config.translate("around")+" "+(0,s.capitalize)((0,s.unslugify)(e))+"")):r.App.mapComponent.isInitialized?(r.App.mapComponent.getCenter(),r.App.elementListComponent.setTitle(r.App.config.translate("around.map.center"))):(r.App.boundsModule.defaultCenter,r.App.elementListComponent.setTitle("")),r.App.elementsManager.checkForNewElementsToRetrieve(!0)):r.App.dataType==n.AppDataType.SearchResults&&(r.App.elementsModule.updateElementsToDisplay(!0,!1),r.App.elementListComponent.setTitle(""))},Object.defineProperty(l.prototype,"mode",{get:function(){return this.mode_},enumerable:!1,configurable:!0}),l);function l(){this.mode_=null}},"./src/js/managers/state.manager.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{AppStates:()=>r,StateManager:()=>n});var r,s=o("./src/js/gogocarto.ts"),a=o("./src/js/app.module.ts");(o=r=r||{})[o.Normal=0]="Normal",o[o.ShowElement=1]="ShowElement",o[o.ShowElementAlone=2]="ShowElementAlone";var n=(Object.defineProperty(i.prototype,"state",{get:function(){return this.state_},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"stateElementId",{get:function(){return this.stateElementId_},enumerable:!1,configurable:!0}),i.prototype.setState=function(e,t,o){void 0===o&&(o=!1);var n=(t=void 0===t?{}:t)&&t.id?s.App.elementById(t.id):null,i=this.state_;switch(this.state_=e,i==r.ShowElementAlone&&(s.App.elementsModule.clearCurrentsElement(),s.App.displayElementAloneModule.end()),this.stateElementId_=t?t.id:null,e){case r.Normal:this.setNormalState();break;case r.ShowElement:this.setShowElementState(n,t);break;case r.ShowElementAlone:this.setShowElementAloneState(n,t)}o||i===e&&e!=r.ShowElement&&e!=r.ShowElementAlone||(s.App.dataType==a.AppDataType.All?s.App.historyModule.pushNewState(t):s.App.historyModule.updateCurrState(t)),s.App.documentTitleModule.updateDocumentTitle(t)},i.prototype.setNormalState=function(){s.App.infoBarComponent.hide(!1)},i.prototype.setShowElementState=function(e,t){s.App.mode==a.AppModes.List?(s.App.mapComponent.isInitialized?(s.App.mapComponent.panToLocation(e.position,14,!1),s.App.infoBarComponent.showElement(e.id)):s.App.mapComponent.onMapReady.do(function(){s.App.mapComponent.panToLocation(e.position,14,!1),s.App.infoBarComponent.showElement(e.id)}),s.App.setMode(a.AppModes.Map,!1,!1)):(s.App.infoBarComponent.showElement(e.id),!0===t.mapPan&&s.App.mapComponent.panToLocation(e.position,14,!1))},i.prototype.setShowElementAloneState=function(e,t){s.App.infoBarComponent.show(),e?s.App.DEAModule.begin(e.id,!0):s.App.ajaxModule.getElementById(t.id,function(e){s.App.elementsJsonModule.convertJsonElements([e],!0,!0),s.App.DEAModule.begin(e.id,!0),s.App.documentTitleModule.updateDocumentTitle(t),s.App.historyModule.updateCurrState(t)},function(e){var t=s.App.historyStateManager.lastHistoryState;s.App.component.toastMessage("Erreur pendant le chargement de cet élement"),s.App.setState(r.Normal),t.viewport?s.App.mapComponent.setViewPort(t.viewport):s.App.mapComponent.fitDefaultBounds(),s.App.infoBarComponent.hide()})},i);function i(){this.state_=null,this.stateElementId_=null}},"./src/js/modules/ajax.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{Request:()=>r,AjaxModule:()=>s});var n=o("./src/js/classes/event.class.ts"),i=o("./src/js/gogocarto.ts"),r=function(e,t){this.route=e,this.data=t},s=(a.prototype.sendRequest=function(e,t,o,n,i){$.ajax({url:e,method:t,data:o,success:function(e){e&&n&&n(e)},error:function(e){0==e.status&&n?n(e):i&&i(e.data)}})},a.prototype.getElementById=function(e,o,n){var i=this;e!=this.currElementIdRetrieving&&(this.currElementIdRetrieving=e,$.ajax({url:this.getSingleElementApiUrl(e),method:"get",data:{},success:function(e){var t;e?(t=void 0,t=e.data?Array.isArray(e.data)?e.data[0]:e.data:e,o&&o(t)):n&&n(e),i.currElementIdRetrieving=null},error:function(e){n&&n(e),i.currElementIdRetrieving=null}}))},a.prototype.getElementsInBounds=function(e,t,o){void 0===t&&(t=!1),this.currBoundsRetrieving&&e[0]&&e[0].equals(this.currBoundsRetrieving[0])||(this.currBoundsRetrieving=e)&&0!=e.length&&e[0]&&((e=this.convertBoundsIntoParams(e)).boundsJson,e={bounds:e.boundsString,boundsJson:JSON.stringify(e.boundsJson),categories:"all"!=i.App.currMainId?[i.App.currMainId]:null,fullRepresentation:t,ontology:t?"gogofull":"gogocompact",stampsIds:i.App.request.stampsIds},t=!t&&i.App.config.data.elementsCompactApiUrl||i.App.config.data.elementsApiUrl,this.sendAjaxElementRequest(new r(t,e),o))},a.prototype.convertBoundsIntoParams=function(e){for(var t="",o=[],n=0,i=e;n{"use strict";o.r(t),o.d(t,{BoundsModule:()=>n});var i=o("./src/js/gogocarto.ts"),n=(r.prototype.initialize=function(){for(var e=0,t=i.App.taxonomyModule.getMainOptionsIdsWithAll();es.getWest()&&this.extendedBounds.getEast()s.getSouth()&&this.extendedBounds.getNorth()s.getSouth()&&this.extendedBounds.getNorth(){"use strict";o.r(t),o.d(t,{DocumentTitleModule:()=>s});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/app.module.ts"),r=o("./src/js/utils/string-helpers.ts"),s=(a.prototype.updateDocumentTitle=function(e){var t,o;if((e=void 0===e?{}:e)&&e.id||n.App.stateManager.stateElementId){e=n.App.elementById(n.App.stateManager.stateElementId);if(!e)return;o=(0,r.capitalize)(e?e.name:"")}if(n.App.dataType==i.AppDataType.SearchResults)t=n.App.config.translate("search.for")+" : "+n.App.searchBarComponent.getCurrSearchText();else if(n.App.mode==i.AppModes.List)t=n.App.config.translate("list.of")+" "+n.App.config.translate("element.plural")+this.getLocationAddressForTitle();else switch(n.App.state){case i.AppStates.ShowElement:case i.AppStates.ShowElementAlone:t=o;break;case i.AppStates.Normal:t=n.App.config.translate("map.of")+" "+n.App.config.translate("element.plural")+this.getLocationAddressForTitle()}document.title.includes("-")&&(t=document.title.split("-")[0]+"- "+t),document.title=t},a.prototype.getLocationAddressForTitle=function(){return n.App.geocoder.getLocationAddress()?", "+(0,r.capitalize)(n.App.geocoder.getLocationAddress()):""},a);function a(){}},"./src/js/modules/core/history.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{HistoryModule:()=>r});var a=o("./src/js/utils/string-helpers.ts"),l=o("./src/js/app.module.ts"),n=o("./src/js/classes/classes.ts"),i=o("./src/js/utils/cookies.ts"),u=o("./src/js/gogocarto.ts");$(document).ready(function(){window.onpopstate=function(e){var t=e.state;t&&(t.viewport=$.extend(new n.ViewPort,e.state.viewport),u.App.historyStateManager.load(e.state,!0))}});var r=(s.prototype.updateCurrState=function(e){history.state?this.updateHistory(!1,e):this.pushNewState()},s.prototype.pushNewState=function(e){null===history.state?this.updateHistory(!1,e):this.updateHistory(!0,e)},s.prototype.updateHistory=function(e,t){var o;u.App.config.general.activateHistoryStateAndRouting&&null!=u.App.mode&&(t=t||{},(o=new n.HistoryState).mode=u.App.mode,o.state=u.App.state,o.dataType=u.App.dataType,o.address=u.App.geocoder.getLocationSlug(),o.viewport=u.App.mapComponent.viewport,o.id=u.App.stateManager.stateElementId||t.id,o.filters=u.App.filterRoutingModule.getFiltersToString(),o.text=u.App.searchBarComponent.getCurrSearchText(),(t=this.generateRoute(o))&&(e?history.pushState(o,"",t):history.replaceState(o,"",t),u.App.config.map.saveViewportInCookies&&(i.createCookie("viewport",o.viewport,.04),i.createCookie("address",o.address,.04))))},s.prototype.generateRoute=function(e){var t,o=u.App.mode==l.AppModes.Map?"carte":"liste",n=e.address,i=e.viewport,r="";if(n&&(r+=n),!i||u.App.mode!=l.AppModes.Map&&n||(r+=i.toString()),u.App.dataType==l.AppDataType.SearchResults&&u.App.state==l.AppStates.Normal)t=u.App.routerModule.generate("search",{mode:o,text:e.text});else if(u.App.mode==l.AppModes.List)t=u.App.routerModule.generate("normal",{mode:o,addressAndViewport:r});else switch(u.App.state){case l.AppStates.Normal:t=u.App.routerModule.generate("normal",{mode:o,addressAndViewport:r});break;case l.AppStates.ShowElement:case l.AppStates.ShowElementAlone:if(!e.id)return;var s=u.App.elementById(e.id);if(!s)return;t=u.App.routerModule.generate("show_element",{name:(0,a.capitalize)((0,a.slugify)(s.name))||"id",id:s.id,addressAndViewport:r})}return t&&e.filters&&(t+="?cat="+e.filters),t},s);function s(){}},"./src/js/modules/core/router.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{RouterModule:()=>i});var r=o("./src/js/app.module.ts"),s=o("./src/js/classes/classes.ts"),n=o("./src/js/gogocarto.ts"),i=(a.prototype.loadInitialState=function(){var e,t;n.App.config.general.activateHistoryStateAndRouting?(1<(e=window.location.hash.split("?cat=")).length&&(this.filtersSerializedParam=e[1]),(e=e[0])&&"#/"!=e&&"#"!=e||(e="/carte"),routie.navigate(e),setTimeout(function(){return routie.reload()},10)):(t=window.location.hash,routie.navigate("/carte"),setTimeout(function(){return routie.reload()},10),setTimeout(function(){return window.location.hash=t},100))},a.prototype.generate=function(e,t){return"#"+routie.lookup(e,t)},a.prototype.parseAddressViewport=function(e){var t=(e=e.split("?")[0]).split("@");return 1==t.length?[e,""]:t},a.prototype.startState=function(e){n.App.historyStateManager.load(e)},a);function a(){var i=this;this.filtersSerializedParam="",routie({"geolocalize /:mode/autour-de-moi":function(e){var t=new s.HistoryState;t.dataType=r.AppDataType.All,t.mode="carte"==e?r.AppModes.Map:r.AppModes.List,t.state=r.AppStates.Normal,t.address="geolocalize",t.filters=i.filtersSerializedParam,i.startState(t)},"normal /:mode/:addressAndViewport?":function(e,t){void 0===t&&(t="");var o=new s.HistoryState,t=i.parseAddressViewport(t);o.dataType=r.AppDataType.All,o.mode="carte"==e?r.AppModes.Map:r.AppModes.List,o.state=r.AppStates.Normal,o.address=t[0],o.viewport=(new s.ViewPort).fromString(t[1]),o.filters=i.filtersSerializedParam,i.startState(o)},"show_element /fiche/:name/:id/:addressAndViewport?":function(e,t,o){void 0===o&&(o="");var n=new s.HistoryState,o=i.parseAddressViewport(o);n.dataType=r.AppDataType.All,n.mode=r.AppModes.Map,n.state=r.AppStates.ShowElementAlone,n.address=o[0],n.viewport=(new s.ViewPort).fromString(o[1]),n.id=t,n.filters=i.filtersSerializedParam,i.startState(n)},"search /:mode/rechercher/:text":function(e,t){var o=new s.HistoryState;o.dataType=r.AppDataType.SearchResults,o.mode=r.AppModes.List,o.state=r.AppStates.Normal,o.text=t,o.filters=i.filtersSerializedParam,i.startState(o)},"search_option /category/:name/:id":function(e,t){var o=new s.HistoryState;o.dataType=r.AppDataType.All,o.mode=r.AppModes.Map,o.state=r.AppStates.Normal,o.filters=i.filtersSerializedParam,i.startState(o),n.App.searchBarComponent.searchOption(n.App.taxonomyModule.getOptionById(t))}})}},"./src/js/modules/core/template.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{TemplateModule:()=>s});var l=o("./src/js/gogocarto.ts"),n=o("./src/js/modules/element/template-element.module.ts"),i=o("./src/js/modules/element/template-element-filters.module.ts"),r=o("./src/js/utils/color.ts"),u=o("./node_modules/nunjucks/browser/nunjucks.js"),s=(a.prototype.initialize=function(){this.elementTemplate.initialize()},a.prototype.render=function(e,t){void 0===t&&(t={});var o="";switch(e){case"layout":o="layout.html.njk";break;case"marker":o="components/map/marker.html.njk";break;case"marker-popup-default":o="components/map/marker-popup-default.html.njk";break;case"gogo-styles":o="gogo-styles.html.njk";break;case"element":o="components/element/element.html.njk";break;case"element-body-default":o="components/element/default-body-content.html.njk";break;case"element-header-default":o="components/element/default-header-content.html.njk";break;case"vote-modal-content":o="components/modals/element/vote-content.html.njk";break;default:console.warn("[GoGoCarto] No template associated to templateName",e)}return this.nunjucksEnvironment.render(o,t)},a.prototype.compile=function(e){return u.compile(e,this.nunjucksEnvironment)},a);function a(){this.elementTemplate=new n.TemplateElementModule,this.elementFilters=new i.TemplateElementFiltersModule,this.nunjucksEnvironment=u.configure("../src/views",{autoescape:!0}),this.nunjucksEnvironment=this.elementFilters.addGoGoFilters(this.nunjucksEnvironment),this.nunjucksEnvironment.addFilter("i18n",function(e){return l.App.config.translate(e)}),this.nunjucksEnvironment.addFilter("is_string",function(e){return"string"==typeof e}),this.nunjucksEnvironment.addFilter("is_array",function(e){return Array.isArray(e)}),this.nunjucksEnvironment.addFilter("is_object",function(e){return"object"==typeof e}),this.nunjucksEnvironment.addFilter("to_css",function(e){return(0,r.default)(e)}),this.nunjucksEnvironment.addFilter("remove_first",function(e){e=e.slice();return e.shift(),e}),this.nunjucksEnvironment.addFilter("is_image_url",function(e){if(!e||"string"!=typeof e)return!1;var t=new RegExp(".*.(svg|png|jpg|jpeg|gif)"),o=new RegExp("https?://");return t.test(e.toLowerCase())||o.test(e.toLowerCase())}),this.nunjucksEnvironment.addFilter("file_extension",function(e){return!(!e||"string"!=typeof e)&&e.split(".").pop().toLowerCase()}),this.nunjucksEnvironment.addFilter("name_from_url",function(e){e=e.split("/");return e[e.length-1].replace(/[a-z0-9]{13}_/,"")}),this.nunjucksEnvironment.addFilter("add_protocol_if_need",function(e){return e.startsWith("http")?e:"http://"+e});function s(e,t){return moment(e).format(t).replace(o,"$1.m.")}function a(e,t){return moment(e).format(t)}var o=new RegExp("(a{1,2}|p).?m{1}?.?","i");this.nunjucksEnvironment.addFilter("date",function(e){for(var t=[],o=1;o{"use strict";o.r(t),o.d(t,{ElementDiffModule:()=>n});var c=o("./src/js/utils/string-helpers.ts"),p=o("./node_modules/diff/dist/diff.js"),n=(i.prototype.getDiffValue=function(e,t){var o,n=null,e=(0,p.diffSentences)(e,t),t=document.createElement("div"),i=document.createDocumentFragment();return e.forEach(function(e){o=e.added?"added":e.removed?"removed":"equals",n=document.createElement("span"),o&&(n.className=o),n.appendChild(document.createTextNode(e.value)),i.appendChild(n)}),t.appendChild(i),t.innerHTML},i.prototype.getDiffOptionValues=function(s,e){for(var a=[],t=e.map(function(e){return e.optionId}),l=s.map(function(e){return e.optionId}),o=0,n=s;o{"use strict";o.r(t),o.d(t,{ElementJsonParserModule:()=>n});var s=o("./src/js/classes/classes.ts"),a=o("./src/js/utils/string-helpers.ts"),l=o("./src/js/gogocarto.ts"),u=function(){return(u=Object.assign||function(e){for(var t,o=1,n=arguments.length;o{"use strict";o.r(t),o.d(t,{ElementFormaterModule:()=>r});var n=o("./src/js/classes/classes.ts"),i=o("./src/js/gogocarto.ts"),r=(s.prototype.calculateFormatedOpenHours=function(e){var t,o,n;for(n in e.formatedOpenHours={},e.openHours)t=this.translateDayKey(n),(o=this.formateDailyTimeSlot(e.openHours[n]))&&(e.formatedOpenHours[t]=o)},s.prototype.getProperty=function(e,t){var o=this.getValue(e,t)||"";if(e.status!=n.ElementStatus.PendingModification||!i.App.config.isFeatureAvailable("pending")||!e.modifiedElement)return o;if($.isArray(o)||"object"==typeof o)return o;e=this.getValue(e.modifiedElement,t);return o||e?(o=""+o||"",e=""+e||"","updatedAt"==t&&(t=o,o=e,e=t),i.App.elementDiffModule.getDiffValue(o,e)):""},s.prototype.translateDayKey=function(e){switch(e){case"Mo":return"lundi";case"Tu":return"mardi";case"We":return"mercredi";case"Th":return"jeudi";case"Fr":return"vendredi";case"Sa":return"samedi";case"Su":return"dimanche"}return""},s.prototype.formateDailyTimeSlot=function(e){return null===e?null:e.replace(/-/g,'-').replace(/,/g,' ')},s.prototype.getValue=function(e,t){t="address"==t?e.address?e.address.getFormatedAddress():"":(t in e?e:e.data)[t];return t},s);function s(){}},"./src/js/modules/element/option-values.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{ElementOptionValuesModule:()=>i});var d=o("./src/js/classes/classes.ts"),n=o("./src/js/gogocarto.ts"),i=(r.prototype.createOptionValues=function(e,t){if(t.optionsValues=[],t.mainOptionOwnerIds=[],e){for(var o=0;o{"use strict";o.r(t),o.d(t,{TemplateElementFiltersModule:()=>i});var s=o("./src/js/gogocarto.ts"),n=o("./src/js/utils/string-helpers.ts"),i=(r.prototype.addGoGoFilters=function(i){for(var r=this,e=0,t=this.filters;e{"use strict";o.r(t),o.d(t,{TemplateElementModule:()=>l});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/classes/classes.ts"),r=o("./src/js/classes/config/template-config.class.ts"),s=o("./node_modules/commonmark/lib/index.js"),a=function(){return(a=Object.assign||function(e){for(var t,o=1,n=arguments.length;o").replace(/</g,"<").replace(/"/g,'"')).replace(/
      |
      /g,'
      ')},u.prototype.compile=function(e,t){e.isMarkdown&&(t=this.parseMarkdownSyntax(t));var o=n.App.templateModule.compile(this.fixTemplate(t));switch(e.name){case r.TemplateNames.ElementBody:this.bodyTemplate=o;break;case r.TemplateNames.ElementHeader:this.headerTemplate=o;break;case r.TemplateNames.MarkerPopup:this.markerPopupTemplate=o}this.checkTemplatesReady()},u.prototype.checkTemplatesReady=function(){this.isReady||this.bodyConfig.isUrl()&&!this.bodyTemplate||!this.headerTemplate&&this.headerConfig.isUrl()||!this.markerPopupTemplate&&this.markerPopupConfig.isUrl()||(this.isReady=!0,this.onReady.emit())},u.prototype.parseMarkdownSyntax=function(e){var t=new s.Parser;return(new s.HtmlRenderer).render(t.parse(e))},u);function u(){this.onReady=new i.Event,this.isReady=!1,this.bodyTemplate=null,this.headerTemplate=null,this.markerPopupTemplate=null}},"./src/js/modules/elements/elements-json.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{ElementsJsonModule:()=>r});var p=o("./src/js/classes/classes.ts"),d=o("./src/js/gogocarto.ts"),n=o("./src/js/classes/event.class.ts"),i=o("./src/js/utils/string-helpers.ts"),r=(s.prototype.convertJsonElements=function(e,t,o){if(void 0===t&&(t=!0),void 0===o&&(o=!0),!e)return{newElementsLength:[],elementsUpdatedLength:0,newElements:[],elementsConverted:[]};var n,i,r=[],s=[];(new Date).getTime();this.cheksIdsAndCreateOnesIfNeeded(e);var a=e.filter(function(e){return d.App.elementsModule.everyElementsId.indexOf(e.id)<0}),l=[];if(o)for(var u=(l=e.filter(function(e){return 0<=d.App.elementsModule.everyElementsId.indexOf(e.id)})).length;u--;)i=l[u],(n=d.App.elementById(i.id)).updateWithJson(i),s.push(n);for(var c=a.length;c--;)i=a[c],(n=new p.Element(i)).initialize(),r.push(n);s=s.concat(r),(new Date).getTime();return this.onNewsElementsConverted.emit(r),{newElementsLength:a.length,elementsUpdatedLength:l.length,newElements:r,elementsConverted:s}},s.prototype.loadLocalElements=function(){var e;Array.isArray(d.App.config.data.elements)&&(e=d.App.config.data.elements,e=this.convertJsonElements(e,!0,!0),d.App.config.data.elementsApiUrl||(d.App.ajaxModule.allElementsReceived=!0),d.App.config.map.defaultBoundsProvided||d.App.historyStateManager.lastHistoryState&&d.App.historyStateManager.lastHistoryState.viewport||(console.log("fit to elements bounds"),d.App.mapComponent.fitElementsBounds(e.elementsConverted)))},s.prototype.cheksIdsAndCreateOnesIfNeeded=function(e){var n=this;e.forEach(function(e,t){var o=(o=!(o=e[0]||e.id||e["@id"])&&e.compactJson?e.compactJson[0]:o)&&"string"==typeof o?(0,i.parseUriId)(o):"generated"+n.elementsCreatedCount++;e.id=o})},s);function s(){this.elementsCreatedCount=0,this.onNewsElementsConverted=new n.Event}},"./src/js/modules/elements/elements.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{ElementsModule:()=>i});var p=o("./src/js/app.module.ts"),d=o("./src/js/gogocarto.ts"),n=o("./src/js/classes/event.class.ts"),i=(r.prototype.initialize=function(){this.everyElements_.all=[],this.visibleElements_.all=[];for(var e=0,t=d.App.taxonomyModule.getMainOptions();e{"use strict";o.r(t),o.d(t,{FavoriteModule:()=>r});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/utils/cookies.ts"),r=(s.prototype.checkCookies=function(){if(n.App.config.isFeatureActivated("favorite"))for(var e=0;e{"use strict";o.r(t),o.d(t,{StampModule:()=>n});var i=o("./src/js/classes/classes.ts"),n=(r.prototype.checkForAddingStamps=function(n){n.map(function(e){return e.id});for(var e=0,t=this.allowedStamps;e{"use strict";o.r(t),o.d(t,{GeocoderModule:()=>l});var a=o("./src/js/gogocarto.ts"),i=o("./src/js/classes/classes.ts"),n=o("./src/js/utils/string-helpers.ts"),r=o("./src/js/classes/config/gogo-config.class.ts"),s=function(){return(s=Object.assign||function(e){for(var t,o=1,n=arguments.length;o{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{LoginModule:()=>LoginModule});var _gogocarto__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/js/gogocarto.ts"),LoginModule=function(){function LoginModule(e,t){void 0===t&&(t=""),this.userEmail="",this.setRoles(e),this.setUserEmail(t)}return LoginModule.prototype.setRoles=function(e){this.roles_="string"==typeof e?[e]:e},LoginModule.prototype.setUserEmail=function(e){this.userEmail=e},LoginModule.prototype.getUserEmail=function(){return this.userEmail},LoginModule.prototype.getRoles=function(){return this.roles_},LoginModule.prototype.loginAction=function(){"function"==typeof _gogocarto__WEBPACK_IMPORTED_MODULE_0__.App.config.security.loginAction?_gogocarto__WEBPACK_IMPORTED_MODULE_0__.App.config.security.loginAction():eval(_gogocarto__WEBPACK_IMPORTED_MODULE_0__.App.config.security.loginAction)},LoginModule}()},"./src/js/modules/map/display-element-alone.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{DisplayElementAloneModule:()=>i});var n=o("./src/js/gogocarto.ts"),i=(r.prototype.getElement=function(){return this.elementShownAlone_},r.prototype.begin=function(e,t){void 0===t&&(t=!0),null!==this.elementShownAlone_&&(this.elementShownAlone_.hide(),this.elementShownAlone_.isShownAlone=!1);var o=n.App.elementById(e);this.elementShownAlone_=o,n.App.elementsModule.clearCurrentsElement(),n.App.mapComponent.panToLocation(o.position,12,!1),setTimeout(function(){n.App.infoBarComponent.showElement(o.id),t&&setTimeout(function(){n.App.mapComponent.panToLocation(o.position,12,!1)},350)},500)},r.prototype.end=function(){null!==this.elementShownAlone_&&(n.App.elementsModule.updateElementsToDisplay(!0),this.elementShownAlone_.isShownAlone=!1,this.elementShownAlone_=null)},r);function r(){this.elementShownAlone_=null}},"./src/js/modules/search.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{SearchModule:()=>i});var u=o("./src/js/gogocarto.ts"),n=o("./src/js/utils/string-helpers.ts"),i=(r.prototype.searchTerm=function(e,n,t){void 0===t&&(t=!1);function o(e){var t=void 0!==(o=e.elements)&&o,o=void 0!==(o=e.options)&&o,e=e.locations;r=o||r,l=(e=void 0!==e&&e)||l,(i=t||i)&&r&&l&&n(i,r,l)}var i,r,s=u.App.config.isFeatureAvailable("searchElements"),a=u.App.config.isFeatureAvailable("searchCategories"),t=u.App.config.isFeatureAvailable("searchPlace")&&(u.App.config.search.canAutocomplete||t),l=!1;s?(s=u.App.config.features.searchElements.url)?u.App.ajaxModule.sendRequest(s,"get",{text:e},function(e){e=e.data;o({elements:e.map(function(e){return{type:"element",value:e}})})}):o({elements:this.searchInResults(e,u.App.elementsModule.allElements(),function(e){return e.name}).map(function(e){return{type:"element",value:e}})}):o({elements:[]}),o(a?{options:this.searchInResults(e,u.App.taxonomyModule.options,function(e){return e.name}).filter(function(e){return e.displayInMenu}).map(function(e){return{type:"option",value:e}})}:{options:[]}),t?u.App.geocoder.geocodeAddress(e,function(e){o({locations:e.map(function(e){return{type:"geocoded",value:e}})})}):o({locations:[]})},r.prototype.searchInResults=function(t,e,o){return e.filter(function(e){return(0,n.removeDiactrics)(o(e)).toLowerCase().includes((0,n.removeDiactrics)(t).toLowerCase())})},r.prototype.compareResult=function(e,t){return(0,n.removeDiactrics)(e).toLowerCase()===(0,n.removeDiactrics)(t).toLowerCase()},r);function r(){}},"./src/js/modules/taxonomy/filter-routing.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{FilterRoutingModule:()=>n});var l=o("./src/js/gogocarto.ts"),u=o("./src/js/utils/parser-string-number.ts"),i=o("./src/js/utils/string-helpers.ts"),n=(r.prototype.loadFiltersFromString=function(e){var t,o=e.split("@"),n=o[0],e="all"!=n&&(t=l.App.taxonomyModule.getMainOptionBySlug(n))?t.id:"all";l.App.filtersComponent.setMainOption(e),2==o.length?r=(r=o[1]).split("+")[0]:2{"use strict";o.r(t),o.d(t,{FilterModule:()=>n});var i=o("./src/js/classes/classes.ts"),s=o("./src/js/gogocarto.ts");window["moment-range"].extendMoment(moment);var n=(r.prototype.showOnlyFavorite=function(e){this.showOnlyFavorite_=e},r.prototype.showOnlyPending=function(e){this.showOnlyPending_=e},r.prototype.showOnlyModeration=function(e){this.showOnlyModeration_=e},r.prototype.checkIfElementPassFilters=function(e){if(0==e.optionsValues.length)return!1;if(e.status<-1&&s.App.infoBarComponent.elementVisible!=e)return!1;if(this.showOnlyFavorite_)return e.isFavorite;if(this.showOnlyModeration_&&(!e.needsModeration()||e.moderationState==i.ElementModerationState.PossibleDuplicate))return!1;if(s.App.config.isFeatureAvailable("pending")){if(this.showOnlyPending_&&!e.isPending())return!1}else if(e.isPending())return!1;for(var t=0,o=s.App.config.menu.filters;t=o.min)},r.prototype.filterTaxonomy=function(t){var o=this;if(s.App.config.menu.showOnePanePerMainOption){if("all"==s.App.currMainId){var e=s.App.taxonomyModule.getMainOptions().filter(function(e){return e.isActive}).some(function(e){return t.haveOption(e)}),n=s.App.taxonomyModule.otherRootCategories.every(function(e){return o.recursivelyCheckInCategory(e,t)});return e&&n}e=s.App.taxonomyModule.getCurrMainOption(),e=this.recursivelyCheckInOption(e,t),n=s.App.taxonomyModule.otherRootCategories.every(function(e){return o.recursivelyCheckInCategory(e,t)});return e&&n}return s.App.taxonomyModule.taxonomy.nonDisabledOptions.some(function(e){return t.haveOption(e)&&o.recursivelyCheckInOption(e,t)})},r.prototype.recursivelyCheckInOption=function(e,t){var o=this;return this.log&&console.log(t.name,"Check for option ",e.name),e=0==e.subcategories.length||e.isDisabled&&!e.isMainOption?(this.log&&console.log("No subcategories "),!e.isDisabled&&t.haveOption(e)):e.subcategories.every(function(e){return o.recursivelyCheckInCategory(e,t)}),this.log&&console.log("Return ",e),e},r.prototype.recursivelyCheckInCategory=function(e,t){var o=this;if(this.log&&console.log("--Category",e.name),!e.useForFiltering)return!0;var n=e.activeOptions,i=t.getOptionValueByCategoryId(e.id);if(0==(i=s.App.config.menu.showOnePanePerMainOption?i.filter(function(e){return e.optionId!=s.App.currMainId}):i).length)return this.log&&console.log("--Element don't have options in this category. Category checked ? ",e.isChecked),e.isChecked;var r=i.some(function(e){return-1{"use strict";o.r(t),o.d(t,{TaxonomySkosModule:()=>i});var n=o("./src/js/utils/string-helpers.ts"),i=(r.prototype.convertSkosIntoGoGoTaxonomy=function(e){this.concepts=e["@graph"];for(var t=[],o=0,n=this.concepts.filter(function(e){return!e.broader});o{"use strict";o.r(t),o.d(t,{Option:()=>a.Option,Category:()=>a.Category,TaxonomyModule:()=>i});var a=o("./src/js/classes/classes.ts"),n=o("./src/js/utils/string-helpers.ts"),s=o("./src/js/gogocarto.ts"),i=(r.prototype.createTaxonomyFromJson=function(e){var t=(e=s.App.config.data.transformTaxonomy?s.App.config.data.transformTaxonomy(e):e)["@graph"];if(t&&(e=s.App.taxonomySkosModule.convertSkosIntoGoGoTaxonomy(e)),Array.isArray(e)&&1==e.length&&(e=e[0]),Array.isArray(e)&&1{"use strict";o.r(t),o.d(t,{afterTemplateLoaded:()=>function(){"transiscope"==n.App.config.theme&&($("#main-option-all > .category-wrapper:first-child .subcategorie-option-item .icon-wrapper").addClass("gogo-bg-color-as"),$(".category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon").addClass("subcategory-icon").closest(".icon-wrapper").removeClass("gogo-bg-color-as"))}});var n=o("./src/js/gogocarto.ts")},"./src/js/utils/array.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{arraysEqual:()=>function(t,o){return t===o||null!=t&&null!=o&&(t.length==o.length&&(!!t.every(function(e){return-1l});var s=function(){for(var e=0,t=0,o=arguments.length;t{"use strict";o.r(t),o.d(t,{default:()=>function(e){e=e.toRgb();return new n(e.r,e.g,e.b).toCss()}});var n=(i.prototype.toString=function(){return"rgb("+Math.round(this.r)+", "+Math.round(this.g)+", "+Math.round(this.b)+")"},i.prototype.set=function(e,t,o){this.r=this.clamp(e),this.g=this.clamp(t),this.b=this.clamp(o)},i.prototype.hueRotate=function(e){e=(e=void 0===e?0:e)/180*Math.PI;var t=Math.sin(e),e=Math.cos(e);this.multiply([.213+.787*e-.213*t,.715-.715*e-.715*t,.072-.072*e+.928*t,.213-.213*e+.143*t,.715+.285*e+.14*t,.072-.072*e-.283*t,.213-.213*e-.787*t,.715-.715*e+.715*t,.072+.928*e+.072*t])},i.prototype.grayscale=function(e){this.multiply([.2126+.7874*(1-(e=void 0===e?1:e)),.7152-.7152*(1-e),.0722-.0722*(1-e),.2126-.2126*(1-e),.7152+.2848*(1-e),.0722-.0722*(1-e),.2126-.2126*(1-e),.7152-.7152*(1-e),.0722+.9278*(1-e)])},i.prototype.sepia=function(e){this.multiply([.393+.607*(1-(e=void 0===e?1:e)),.769-.769*(1-e),.189-.189*(1-e),.349-.349*(1-e),.686+.314*(1-e),.168-.168*(1-e),.272-.272*(1-e),.534-.534*(1-e),.131+.869*(1-e)])},i.prototype.saturate=function(e){this.multiply([.213+.787*(e=void 0===e?1:e),.715-.715*e,.072-.072*e,.213-.213*e,.715+.285*e,.072-.072*e,.213-.213*e,.715-.715*e,.072+.928*e])},i.prototype.multiply=function(e){var t=this.clamp(this.r*e[0]+this.g*e[1]+this.b*e[2]),o=this.clamp(this.r*e[3]+this.g*e[4]+this.b*e[5]),e=this.clamp(this.r*e[6]+this.g*e[7]+this.b*e[8]);this.r=t,this.g=o,this.b=e},i.prototype.brightness=function(e){this.linear(e=void 0===e?1:e)},i.prototype.contrast=function(e){this.linear(e=void 0===e?1:e,-.5*e+.5)},i.prototype.linear=function(e,t){this.r=this.clamp(this.r*(e=void 0===e?1:e)+255*(t=void 0===t?0:t)),this.g=this.clamp(this.g*e+255*t),this.b=this.clamp(this.b*e+255*t)},i.prototype.invert=function(e){this.r=this.clamp(255*((e=void 0===e?1:e)+this.r/255*(1-2*e))),this.g=this.clamp(255*(e+this.g/255*(1-2*e))),this.b=this.clamp(255*(e+this.b/255*(1-2*e)))},i.prototype.hsl=function(){var e,t=this.r/255,o=this.g/255,n=this.b/255,i=Math.max(t,o,n),r=Math.min(t,o,n),s=(i+r)/2;if(i===r)e=l=0;else{var a=i-r,l=.5{"use strict";function n(e,t,o){void 0===o&&(o=100);var n=new Date;n.setTime(n.getTime()+24*o*60*60*1e3);n="; expires="+n.toUTCString();document.cookie=e+"="+t+n+"; path=/"}o.r(t),o.d(t,{createCookie:()=>n,readCookie:()=>function(e){for(var t=e+"=",o=document.cookie.split(";"),n=0;nfunction(e){n(e,"")}})},"./src/js/utils/params.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{getQueryParams:()=>function(e){e=e.split("+").join(" ");var t,o={},n=/[?&]?([^=]+)=([^&]*)/g;for(;t=n.exec(e);)o[decodeURIComponent(t[1])]=decodeURIComponent(t[2]);return o}})},"./src/js/utils/parser-string-number.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{parseArrayNumberIntoString:()=>function(e){for(var t="",o=0,n=0,i=e;nfunction(e){var t=[];if(!e)return t;for(var e=e.match(/[a-z]+|[0-9]+/g),o=0,n=e;o{"use strict";function n(e){if(null==e||""==e)return e;for(var t="",o=e.split(""),n=0;nfunction(e){if(!e)return"";for(var t="ãàáäâẽèéëêìíïîõòóöôùúüûñç·/_,:;",o=0,n=t.length;ofunction(e){return e?e.toString().replace(/\-+/g," "):""},capitalize:()=>function(e){return e?1function(e){if(!e)return"";e=e.toString().split("/");return e[e.length-1]},splitLongText:()=>function(e,t,o){void 0===o&&(o=50);e.lengthfunction(e){return e?10==e.length?e.replace(/(.{2})(?!$)/g,"$1 "):e:""},camelToProper:()=>n,snakeToProper:()=>i,formatLabel:()=>function(e){return i(n(e)).replace(" "," ")},removeDiactrics:()=>r,applyGlossary:()=>function(e,t){for(var o in t){var n=new RegExp("("+o+")","i");e=e.replace(n,'$1')}return e}});var r=function(e){return e?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):""}},"./node_modules/entities/maps/decode.json":e=>{"use strict";e.exports=JSON.parse('{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}')},"./node_modules/entities/maps/entities.json":e=>{"use strict";e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},"./node_modules/entities/maps/legacy.json":e=>{"use strict";e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Acirc":"Â","acirc":"â","acute":"´","AElig":"Æ","aelig":"æ","Agrave":"À","agrave":"à","amp":"&","AMP":"&","Aring":"Å","aring":"å","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","brvbar":"¦","Ccedil":"Ç","ccedil":"ç","cedil":"¸","cent":"¢","copy":"©","COPY":"©","curren":"¤","deg":"°","divide":"÷","Eacute":"É","eacute":"é","Ecirc":"Ê","ecirc":"ê","Egrave":"È","egrave":"è","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","frac12":"½","frac14":"¼","frac34":"¾","gt":">","GT":">","Iacute":"Í","iacute":"í","Icirc":"Î","icirc":"î","iexcl":"¡","Igrave":"Ì","igrave":"ì","iquest":"¿","Iuml":"Ï","iuml":"ï","laquo":"«","lt":"<","LT":"<","macr":"¯","micro":"µ","middot":"·","nbsp":" ","not":"¬","Ntilde":"Ñ","ntilde":"ñ","Oacute":"Ó","oacute":"ó","Ocirc":"Ô","ocirc":"ô","Ograve":"Ò","ograve":"ò","ordf":"ª","ordm":"º","Oslash":"Ø","oslash":"ø","Otilde":"Õ","otilde":"õ","Ouml":"Ö","ouml":"ö","para":"¶","plusmn":"±","pound":"£","quot":"\\"","QUOT":"\\"","raquo":"»","reg":"®","REG":"®","sect":"§","shy":"­","sup1":"¹","sup2":"²","sup3":"³","szlig":"ß","THORN":"Þ","thorn":"þ","times":"×","Uacute":"Ú","uacute":"ú","Ucirc":"Û","ucirc":"û","Ugrave":"Ù","ugrave":"ù","uml":"¨","Uuml":"Ü","uuml":"ü","Yacute":"Ý","yacute":"ý","yen":"¥","yuml":"ÿ"}')},"./node_modules/entities/maps/xml.json":e=>{"use strict";e.exports=JSON.parse('{"amp":"&","apos":"\'","gt":">","lt":"<","quot":"\\""}')},"./src/locales/br.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Asantiñ","add":"Ouzhpennañ","added.admin":"Ouzhpennet gant ar merour","admin":"Merour","all":"An holl","all.the":"An holl","anonymous":"Dianv","anonymous.email":"Dianv gant ur postel","anonymous.link":"Dianv gant ul liamm","around":"war-dro","around.map.center":"tro-dro kreiz ar gartenn","back.to.map":"Distreiñ d\'ar gartenn","cancel":"Nullañ","change.tiles":"Cheñchit kartenn","check.uncheck.all":"Askañ/diaskañ pep tra","clear.filter":"Diverkañ ar sil","close":"Serriñ","collaborative.moderation":"Al luskañ dre genlabour","collaborative.moderation.second.paragraph":"Pa vo bet mouezhiet evit ${element.definite} gant meur a zen e c\'hallo bezañ degemeret pe nac\'het war-eeun. Ma vefe ur gudenn (lakomp e vefe rampo niver ar mouezhioù a-du pe a-enep) e raio ar merour war-dro, ar buanañ ar gwellañ. Kontañ a reomp warnoc\'h !","comment.for.moderation":"Evezhiadenn evit ar moderiñ","copy.html.code":"Kopiañ ar c\'hod HTML-mañ en ho lec\'hienn web !","date.defaultFormat":"D MMMM YYYY à HH:mm","date.defaultFormatShort":"dd/mm/bbbb","decide":"Divizout","decide.for":"Divizit evit","delete":"Dilemel","does.not.respect.charter.should.not.be.listed.here":"Ne zouj ket ouzh ar garta, N\'en deus netra d\'ober amañ","duplicate.on.map":"zo meneget meur a wech war ar gartenn (doublenn)","edit":"Cheñch","element.definite":"an elfenn ","element.undefinite":"un elfenn","element.plural":"elfennoù","element.no.longer.exists":"N\'eus ket eus ${element.definite} ken","element.no.respect.charter":"${element.definite} na zouj ket ouzh ar garta","element.referenced.several.times":"${element.definite} zo menegeret meur a wech","email.content":"E-barzh ar gemennadenn","error.occured":"Digarezit, ur fazi zo bet","errors.reported":"Fazioù lakaet war wel","exists.but.i.do.not.know.anything.else.about.it":"Bez \'z eus, met ne ouzon netra ouzhpenn diwar e benn","exists.and.i.validate.the.accuracy.of.the.given.informations":"Bez \'z eus ha kadarnaat a ran eo gwir an titouroù kinniget","exists.but.incorrect.informations":"Bez \'z eus met faos eo an titouroù","export.iframe":"Ezporzhiañ un Iframe","fill.fields.below":"Ret eo deoc\'h leuniañ pep takad dindan","filter.date.view.range":"Lajad","filter.date.view.week":"Sizhun","filter.date.view.year":"Bloavezh","find.route":"Dibab an hent","found.one.or.several":" bet kavet","general.infos":"Titouroù hollek","geographic.location":"Lec\'h","geojson.layers":"Follennoù treuzwelus","geolocalize":"Resisaat al lec\'h m\'emaoc\'h","geolocalized":"Lec\'hiet","geolocation.error.refused":"Lec\'hiañ nac\'het","geolocation.error.failed":"C\'hwitet eo al lec\'hiañ","height":"Uhelder","hide.header":"Kuzhat roll ar penn uhelañ","historical":"Roll-istor","i.do.not.agree.with.the.proposed.modifications":"N\'on ket a-du gant ar cheñchamantoù kinniget","imported":"Enporzhiet","modified.owner":"Cheñchet gant ar perc\'henn","ok":"Mat eo !","share.url":"Rannañ an URL","share.your.knowledge.about":"Rannit hoc\'h anaoudegezh diwar-benn","show.as.list":"Lakaat war wel e stumm ul listenn","show.hide.detail":"Lakaat war wel/Kuzhat","show.more":"Diskouez muioc\'h","informations.incorrect":"N\'eo ket mat an titouroù","label":"Tikedenniñ","laozi":"Lao Tseu","laozi.quotation":"« Evit dont a-benn e ranker faziañ. »","list.of":"Listenn an","logged.user":"Implijer enrollet","map.of":"Kartenn an","mark.as.resolved":"Merket evel renket","menu":"Roll","modification":"Cheñchamant","modification.plural":"Cheñchamantoù","modified.direct.link":"Cheñchet gant ul liamm eeun","modified.pending":"O c\'hortoz ar cheñchamant","my.position":"ma lec\'hiadur","new":"Nevezenti","no.category.provided":"Rummad ebet leuniet","no.result.found":"Disoc\'h ebet kavet","non.consensual.votes":"Mouezhiañ kontrol","not.correct.informations":"N\'eo ket mat an titouroù","openhours":"Digor etre","other.infos":"Titouroù all","pending.add":"War c\'hortoz (tra ouzhpenn)","pending.for.too.long":"War c\'hortoz abaoe re bell","pending.modifications":"War c\'hortoz (cheñchamantoù)","pending.validation":"Da vezañ kadarnaet","place":"Ul lec\'h","placeholder.input.comment.administration":"Displegadenn ouzhpenn evit ar moderiñ","placeholder.input.subject.email":"Danvez ar gemennadenn","potential.duplicate":"Doublenn bosupl","propose.changes":"Kinnig cheñchamantoù","proposed.by":"Kinniget gant","refused.admin":"Nac\'het (merour)","reject":"Nac\'hañ","rejected.or.deleted.element":"(${element.definite} bet nac\'het pe dilamet)","remove.from.favorites":"Tennañ diouzh ar pennroll","report":"Disklêriañ","report.error":"Disklêriañ ur fazi","report.error.regarding":"Disklêriañ ur fazi diwar-benn","reporting":"Disklêriadenn","results":"Disoc\'hoù","route":"Hent","route.calculation":"Sevel un hent","search.for":"Klask","search.radius":"Tachenn dibabet","see.on.map":"Sellet ouzh ar gartenn","select.type.error":"Ret eo deoc\'h dibab ur fazi skouer !","send":"Kas","send.email":"Kas ur postel","send.email.to":"Kas ur postel da ","share.link":"Rannañ al liamm-mañ gant tud all","show.on.map":"Diskouez ar gartenn","show.only":"Diskouez nemet","show.only.actors.with.label":"Diskouez nemet ar berzhidi gant an dikedenn","show.only.elements.to.moderate":"Diskouez nemet an ${element.plural} da voderiñ","show.only.elements.validation.process":"Diskouez nemet an ${element.plural} a zo war-nes bezañ kadarnaet","source":"Mammenn","starting.address":"Chomlec\'h loc\'hañ","subscribe":"Koumanantiñ","subscribed":"Koumanantet","the.addition":"An dra ouzhpennet","the.modification":"ar cheñchamant","to.moderate":"Da voderiñ","type.message.here":"Skrivit ho kemennadenn amañ","updated.at":"Nevezentioù diwezhañ","validated.admin":"Kadarnaet (merour)","validated.votes":"Kadarnaet (mouezhiañ)","video":"Video","vote":"Mouezhiañ","waiting":"War c\'hortoz","what.error.to.report":"Peseurt doare fazi ho peus c\'hoant da lakaat war wel ?","width":"Ledander","back.to.default.view":"Distreiñ d\'ar gwel dre ziouer","by":"dre","can.not.locate.address":"Dibosupl eo lec\'hiañ ar chomlec\'h-mañ !","card":"Fichenn","category":"Rummadoù","close.menu":"Serriñ ar roll","collaborative.moderation.first.paragraph":"Pa ouzhpenner pe cheñcher${element.undefinite} ne vez ket nevesaet diouzhtu : e griz e vo${element.definite} war ar gartenn da gentañ penn. An holl implijerien a c\'hello en em lugañ evit votiñ ur wech hepken. Mouezhiañ ne dalv ket reiñ e soñj, met rannañ ar pezh a ouzer. Ma anavezit ${element.definite}, pe ma ouzit n\'eus ket eus ${element.definite} ken, kasit keloù deomp !","deleted":"Dilamet","does.not.exist":"N\'eus ket","does.not.respect.charter":"Ne zouj ket ouzh ar garta","element":"Elfenn","elements.containing":"${element.plural} enni","email.will.be.sent.to":"Kaset e vo ar postel da ","enter.valid.email":"Dibabit ur postel hag a ya en-dro, mar plij","error.occurend.route.calculation":"Digarezit, ur fazi zo bet e-pad m\'edod o tibab an hent !","exists":"Bez \'z eus","exists.and.correct.informations":"Bez \'z eus ha mat eo an titouroù","exists.but.given.informations.are.incorrect":"Bez \'z eus met n\'eo ket mat an titouroù roet","files":"Fichennaouegoù","filter.date.view.day":"Deiz","filter.date.view.month":"Miz","loading":"O kargañ emañ…","i.validate.the.proposed.modifications":"Kadarnaat a ran ar cheñchamantoù kinniget","no.moderation.necessary":"N\'eo ket dav moderiñ","iframe.initialized.position.map":"An ifram a vo savet war ar gartenn evel m\'emañ. Diblasit ar gartenn evel m\'ho peus c\'hoant a-raok he digeriñ !","info.less":"Nebeutoc\'h a ditouroù","info.more":"Titouroù ouzhpenn","modified.admin":"Cheñchet gant ar merour","refused.votes":"Nac\'het (mouezhiañ)","placeholder.input.comment":"Prouenn kenkas ma vefe nac\'het (kaset e vo er gemennadenn)","route.to.element":"Hent war-zu ${element.definite}","save.as.favorites":"Enrollet er pennroll","search":"Klask","save":"Enrollañ","show.only.favorites":"Diskouez nemet ar pennroll","starting.address.title":"Leuniit ur chomlec\'h loc\'hañ","saved":"Enrollet","subscribe.changes":"Komanantiñ evit resev ar cheñchamantoù","show.only.selected.categories":"Diskouez nemet ar rummadoù bet dibabet","the":"Ar","unsubscribe":"Digoumanantiñ","unsubscribe.changes":"Digoumanantiñ evit chom hep resev ar cheñchamantoù","you.must.select.your.vote":"Ret eo deoc\'h reiñ ho tibab","your.email":"Ho postel","your.favorites":"Ho pennroll"}')},"./src/locales/de.json":e=>{"use strict";e.exports=JSON.parse('{"decide.for":"Entscheiden für","fill.fields.below":"Nachfolgendes Feld ist erforderlich","element.referenced.several.times":"${element.definite} ist mehrfach referenziert","elements.containing":"${element.plural} enthalten","decide":"Entscheiden","collaborative.moderation.second.paragraph":"Ab einer gewissen Stimmenzahl kann ${element.definite} automatisch akzeptiert oder zurückgewiesen werden. In unklaren Fällen (wenn es negative wie positive Stimmen gibt), wird sich ein Moderator so schnell wie möglich darum kümmern. Wir zählen auf dich !","collaborative.moderation.first.paragraph":"Wenn ${element.undefinite} hinzugefügt oder geändert wird, ist das Update nicht sofort aktiv: ${element.definite} erscheint zunächst nur ausgegraut in der Karte. Alle angemeldeten Benutzer:innen können dann ihre Stimme abgeben. Das soll keine Meinungsumfrage sein, es geht um das Wissen der Crowd. Wenn du ${element.definite} kennst, oder weißt, dass ${element.definite} nicht existiert, dann sind wir auf dein Wissen angewiesen !","check.uncheck.all":"Alles aktivieren/deaktivieren","to.moderate":"Zu moderieren","the":"der/die/das","show.only.elements.validation.process":"Nur ${element.plural} in Validierung anzeigen","show.only.elements.to.moderate":"Nur ${element.plural} zur Moderation anzeigen","show.only.actors.with.label":"Nur Akteure mit Label anzeigen","pending.validation":"In Validierung","pending.modifications":"In Bearbeitung (Änderung)","pending.for.too.long":"Zu lange in Bearbeitung","modified.pending":"Änderung in Bearbeitung","pending.add":"In Bearbeitung (Hinzufügung)","my.position":"meine Position","modified.owner":"Vom Besitzer geändert","mark.as.resolved":"Als gelöst markieren","loading":"Lädt…","geolocation.error.failed":"Geolokalisierung fehlgeschlagen","geolocation.error.refused":"Geolokalisierung abgelehnt","geolocalized":"Geolokalisiert","geolocalize":"Eigene Position geolokalisieren","element.no.respect.charter":"${element.definite} hält sich nicht an die Charta","duplicate.on.map":"ist mehrfach auf der Karte eingetragen (Duplikat)","does.not.respect.charter.should.not.be.listed.here":"Hält sich nicht an die Charta, gehört hier nicht hin","does.not.respect.charter":"Hält sich nicht an die Charta","all.the":"Alle","collaborative.moderation":"Kollaborative Moderation","change.tiles":"Kartenhintergrund wechseln","accept":"Annehmen","comment.for.moderation":"Kommentar für die Moderation","close.menu":"Menu schließen","close":"Schließen","clear.filter":"Filter zurücksetzen","category":"Kategorie","can.not.locate.address":"Kann diese Adresse nicht finden!","cancel":"Abbrechen","back.to.map":"Zurück zur Karte","back.to.default.view":"Zurück zur Standardansicht","add":"Hinzufügen","exists.but.incorrect.informations":"Existiert mit falschen Informationen","exists.and.i.validate.the.accuracy.of.the.given.informations":"existiert und ich bestätige, dass die angegebenen Informationen korrekt sind","files":"Dateien","export.iframe":"Ein IFrame exportieren","found.one.or.several":" gefunden","find.route":"Reiseroute berechnen","filter.date.view.year":"Jahr","filter.date.view.week":"Woche","filter.date.view.range":"Datumsbereich","filter.date.view.month":"Monat","filter.date.view.day":"Tag","geographic.location":"Geografische Position","general.infos":"Allgemeine Informationen","hide.header":"Kopfzeile ausblenden","height":"Höhe","i.do.not.agree.with.the.proposed.modifications":"Ich stimme den vorgeschlagenen Änderungen nicht zu","i.validate.the.proposed.modifications":"Ich stimme den vorgeschlagenen Änderungen zu","historical":"Verlauf","imported":"Importiert","iframe.initialized.position.map":"Der iframe wird an der aktuellen Position in der Karte initialisiert. Bewegen Sie die Karte an die gewünschte Position, bevor Sie dieses Fenster öffnen!","laozi":"Laozi","label":"Bezeichnen","informations.incorrect":"Ungültige Info","list.of":"Liste von","laozi.quotation":"„Scheitern ist die Grundlage des Erfolgs.“","map.of":"Karte von","logged.user":"Angemeldeter Benutzer","modified.direct.link":"Geändert mit einem direkten Link","modified.admin":"Geändert von Admin","modification.plural":"Änderungen","modification":"Änderung","menu":"Menü","new":"Neue(r)","non.consensual.votes":"Nicht eindeutige Stimmen","no.result.found":"Keine Ergebnisse","no.moderation.necessary":"Keine Moderation erforderlich","no.category.provided":"Keine vorgesehene Kategorie","not.correct.informations":"Die Informationen sind nicht richtig (wenn Sie sie korrigieren können, tun Sie dies bitte über die „Änderungen vorschlagen“-Schaltfläche)","anonymous":"Anonym","placeholder.input.comment.administration":"Optionaler Kommentar für die Moderation","other.infos":"Andere Informationen","openhours":"Öffnungszeit","ok":"OK!","placeholder.input.comment":"Begründung im Falle einer Ablehnung (wird automatisch in die E-Mail eingefügt)","place":"Ein Ort","placeholder.input.subject.email":"E-Mail-Betreff","propose.changes":"Änderungen vorschlagen","potential.duplicate":"Potenzielles Duplikat","refused.votes":"Abgelehnt (Stimmen)","refused.admin":"Abgelehnt (Admin)","proposed.by":"Vorgeschlagen von","rejected.or.deleted.element":"(${element.definite} ist abgelehnt oder gelöscht worden)","reject":"Ablehnen","remove.from.favorites":"Aus Favoriten entfernen","delete":"Entfernen","report.error":"Einen Fehler melden","report":"Melden","report.error.regarding":"Einen Fehler melden bezüglich","route.calculation":"Berechnung der Reiseroute","route":"Reiseroute","results":"Ergebnisse","reporting":"Meldung","route.to.element":"Reiseroute nach ${element.definite}","search":"Suchen","save.as.favorites":"Als Favoriten gespeichert","saved":"Gespeichert","save":"Speichern","send":"Senden","select.type.error":"Bitte wählen Sie einen Fehlertyp aus!","see.on.map":"Auf Karte sehen","search.radius":"Suchradius","search.for":"Suche nach","share.your.knowledge.about":"Teilen Sie Ihr Wissen über","share.url":"Diese URL teilen","share.link":"Diesen Link teilen","send.email.to":"Senden Sie eine E-Mail an ","send.email":"Eine E-Mail senden","show.only":"Anzeigen nur","show.on.map":"auf der Karte anzeigen","show.more":"Mehr anzeigen","show.hide.detail":"Detail ein-/ausblenden","show.as.list":"Als Liste anzeigen","show.only.selected.categories":"Nur ausgewählte Kategorien anzeigen","starting.address.title":"Geben Sie die Startadresse ein","starting.address":"Startadresse","source":"Quelle","show.only.favorites":"Nur Favoriten anzeigen","type.message.here":"Geben Sie hier Ihre Nachricht ein","the.modification":"die Änderung","the.addition":"der Zusatz","waiting":"Ausstehend","vote":"Abstimmen","video":"Video","validated.votes":"Validiert (Stimmen)","validated.admin":"Validiert (admin)","updated.at":"Letzte Aktualisierungen","your.favorites":"Ihre Favoriten","your.email":"Ihre E-Mail-Adresse","you.must.select.your.vote":"Sie müssen Ihre Stimme auswählen","width":"Breite","what.error.to.report":"Welchen Fehler möchten Sie melden?","exists.but.i.do.not.know.anything.else.about.it":"existiert, aber ich weiß nichts darüber","exists.but.given.informations.are.incorrect":"existiert, aber die angegebenen Informationen sind falsch","exists.and.correct.informations":"Existiert und die angegebenen Informationen sind korrekt","exists":"Existiert","errors.reported":"Gemeldete Fehler","error.occurend.route.calculation":"Bei der Routenberechnung ist leider ein Fehler aufgetreten!","enter.valid.email":"Bitte geben Sie eine gültige E-Mail-Adresse ein","error.occured":"Entschuldigung, ein Fehler ist aufgetreten","email.content":"Inhalt der Nachricht","email.will.be.sent.to":"Eine E-Mail wird gesendet an ","element.no.longer.exists":"${element.definite} existiert nicht mehr","element.plural":"Elemente","element.undefinite":"ein Element","element.definite":"das Element ","element":"Element","edit":"Bearbeiten","does.not.exist":"Existiert nicht","date.defaultFormatShort":"dd.mm.yyyy","date.defaultFormat":"D MMMM YYYY LT","copy.html.code":"Kopieren Sie diesen HTML-Code in Ihre Website!","card":"Datensatz","by":"von","around.map.center":"um den Mittelpunkt der Karte","around":"um","anonymous.link":"Anonym mit einem Link","anonymous.email":"Anonym mit einer E-Mail","all":"Alle","admin":"Admin","added.admin":"Hinzugefügt von Admin","unsubscribe":"Abbestellen","subscribe.changes":"Änderungen abonnieren","subscribed":"Abonniert","unsubscribe.changes":"Änderungen abbestellen","deleted":"Gelöscht","subscribe":"Abonnieren","info.more":"Mehr Info","info.less":"Weniger Info","geojson.layers":"Ebenen"}')},"./src/locales/en.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Accept","add":"Add","added.admin":"Added by admin","admin":"Admin","all":"All","all.the":"Every","anonymous":"Anonymous","anonymous.email":"Anonymous with an email","anonymous.link":"Anonymous with a link","around":"around","around.map.center":"around the centre of the map","back.to.default.view":"Back to the default view","back.to.map":"Back to the map","by":"by","cancel":"Cancel","can.not.locate.address":"Cannot locate this address!","card":"Card","category":"Category","change.tiles":"Change the map tile","check.uncheck.all":"Check/Uncheck Everything","clear.filter":"Clear the filter","close":"Close","close.menu":"Close the Menu","collaborative.moderation":"Collaborative Moderation","collaborative.moderation.first.paragraph":"When ${element.undefinite} is added or modified, the update is not instantaneous: ${element.definite} will first appear greyed out on the map. It will then be possible for all logged users to vote once and once only. That vote is not an opinion, but a share of knowledge. If you know ${element.definite} or know that ${element.definite} does not exist, we want your knowledge!","collaborative.moderation.second.paragraph":"After a given number of votes, ${element.definite} can then be auto-validated or rejected. In case of a dispute (presence of negative and positive votes), a moderator will handle things as fast as possible. We count on you!","comment.for.moderation":"Comment for the moderation","copy.html.code":"Copy this HTML code to your website!","date.defaultFormat":"D MMMM YYYY LT","date.defaultFormatShort":"dd/mm/yyyy","decide":"Decide","decide.for":"Decide for","delete":"Delete","deleted":"Deleted","does.not.exist":"Does not exist","does.not.respect.charter":"Doesn\'t respect the charter","does.not.respect.charter.should.not.be.listed.here":"Does not respect the charter, shouldn\'t be listed here","duplicate.on.map":"is referenced multiple times on the map (duplicate)","edit":"Edit","element":"Element","element.definite":"the element ","element.undefinite":"an element","element.plural":"elements","elements.containing":"${element.plural} containing","element.no.longer.exists":"${element.definite} no longer exists","element.no.respect.charter":"${element.definite} does not respect the charter","element.referenced.several.times":"${element.definite} is referenced multiple times","email.will.be.sent.to":"An email will be sent to ","email.content":"Content of the message","error.occured":"Sorry, an error occurred","enter.valid.email":"Please enter a valid email address","error.occurend.route.calculation":"Sorry, an error occurred while calculating the route!","errors.reported":"Reported errors","exists":"Exists","exists.and.correct.informations":"Existe and the given information is correct","exists.but.given.informations.are.incorrect":"exists but the given information is incorrect","exists.but.i.do.not.know.anything.else.about.it":"exists, but I do no know anything about it","exists.and.i.validate.the.accuracy.of.the.given.informations":"exists and I confirm that the given information is accurate","exists.but.incorrect.informations":"Exists with incorrect information","export.iframe":"Export an IFrame","files":"Files","fill.fields.below":"You need to fill in the fields below","filter.date.view.day":"Day","filter.date.view.month":"Month","filter.date.view.range":"Date range","filter.date.view.week":"Week","filter.date.view.year":"Year","find.route":"Compute a route","found.one.or.several":" found","general.infos":"General information","geographic.location":"Geographical location","geojson.layers":"Layers","geolocalize":"Geolocate your position","geolocalized":"Geolocated","geolocation.error.refused":"Geolocation refused","geolocation.error.failed":"Geolocation failed","height":"Height","hide.header":"Hide the header","historical":"History","i.do.not.agree.with.the.proposed.modifications":"I do not agree with the suggested changes","i.validate.the.proposed.modifications":"I agree with the suggested changes","iframe.initialized.position.map":"The iframe will be initialized at the current position in the map. Move the map to the desired position before opening this window!","imported":"Imported","info.more":"More info","info.less":"Less info","informations.incorrect":"Invalid info","label":"Label","laozi":"Laozi","laozi.quotation":"‘Failure is the foundation of success.’","list.of":"List of","loading":"Loading…","logged.user":"Logged user","map.of":"Map of","mark.as.resolved":"Marked as resolved","menu":"Menu","modification":"Change","modification.plural":"Changes","modified.admin":"Changed by admin","modified.direct.link":"Changed with a direct link","modified.owner":"Changed by the owner","modified.pending":"Change pending","my.position":"my position","new":"New","no.category.provided":"No provided category","no.moderation.necessary":"No moderation needed","no.result.found":"No results","non.consensual.votes":"Inconclusive votes","not.correct.informations":"The information isn\'t up to date","ok":"OK!","openhours":"Opening hours","other.infos":"Other information","pending.add":"Pending (addition)","pending.for.too.long":"Pending for too long","pending.modifications":"Pending (updates)","pending.validation":"Pending validation","place":"A place","placeholder.input.comment":"Justification in case of refusal (will be automatically inserted in the e-mail)","placeholder.input.comment.administration":"Optional comment for the moderation","placeholder.input.subject.email":"Email subject","potential.duplicate":"Potential duplicate","propose.changes":"Suggest changes","proposed.by":"Proposed by","refused.admin":"Refused (admin)","refused.votes":"Refused (votes)","reject":"Reject","rejected.or.deleted.element":"(${element.definite} has been refused or deleted)","remove.from.favorites":"Remove from favourites","report":"Report","report.error":"Report an error","report.error.regarding":"Report an error regarding","reporting":"Report","results":"Results","route":"Itinerary","route.calculation":"Itinerary calculation","route.to.element":"Itinerary to ${element.definite}","save":"Save","saved":"Saved","save.as.favorites":"Saved as favourites","search":"Search","search.for":"Search for","search.radius":"Search radius","see.on.map":"See on map","select.type.error":"Please select an error type!","send":"Send","send.email":"Send an e-mail","send.email.to":"Send an e-mail to ","share.link":"Share this link","share.url":"Share this URL","share.your.knowledge.about":"Share your knowledge about","show.as.list":"Show as list","show.hide.detail":"Show/Hide the detail","show.more":"Show more","show.on.map":"show on the map","show.only":"Show only","show.only.actors.with.label":"Show only actors with labels","show.only.elements.to.moderate":"Only show the ${element.plural} to moderate","show.only.elements.validation.process":"Only show the ${element.plural} pending validation","show.only.favorites":"Only show favourites","show.only.selected.categories":"Only show selected categories","source":"Source","starting.address":"Starting address","starting.address.title":"Enter the starting address","subscribe":"Subscribe","subscribe.changes":"Subscribe to changes","subscribed":"Subscribed","the":"the","the.addition":"the addition","the.modification":"the change","to.moderate":"To moderate","type.message.here":"Type your message here","unsubscribe":"Unsubscribe","unsubscribe.changes":"Unsubscribe to changes","updated.at":"Latest updates","validated.admin":"Validated (admin)","validated.votes":"Validated (votes)","video":"Video","vote":"Vote","waiting":"Pending","what.error.to.report":"What error would you like to report?","width":"Width","you.must.select.your.vote":"You must select your vote","your.email":"Your email address","your.favorites":"Your favourites"}')},"./src/locales/es.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Aceptar","added.admin":"Añadido por el administrador","all":"Todo","all.the":"Cada","anonymous.link":"Anónimo con un enlace","around":"alrededor de","around.map.center":"alrededor del centro del mapa","back.to.default.view":"Volver a la vista por defecto","back.to.map":"Volver al mapa","by":"por","cancel":"Cancelar","can.not.locate.address":"¡Esta dirección no puede ser localizada!","card":"Tarjeta","category":"Categoría","change.tiles":"Modificar el fondo del mapa","check.uncheck.all":"Marcar/desmarcar todo","clear.filter":"Borrar el filtro","close":"Cerrar","comment.for.moderation":"Comentario para la moderación","collaborative.moderation":"Moderación colaborativa","collaborative.moderation.first.paragraph":"Cuando se añade o se modifica ${element.undefinite}, la actualización no es instantánea: ${element.definite} aparecerá primero como no habilitado (de color gris) en el mapa. Luego todos los usuarios conectados podrán votar, solamente una vez. El voto no es una opinión sino un intercambio de conocimiento. ¡Si conoces ${element.definite} o sabes que ${element.definite} no existe, queremos que lo compartas!","collaborative.moderation.second.paragraph":"Después de haber logrado un cierto número de votos, ${element.definite} puede ser automáticamente validado o rechazado. En caso de conflicto (votos negativos y positivos), un moderador lo arreglará lo antes posible. ¡Contamos contigo!","copy.html.code":"¡Copia este código HTML en tu página web!","date.defaultFormat":"D MMMM YYYY LT","date.defaultFormatShort":"dd/mm/aaaa","decide":"Decidir","decide.for":"Decidir para","delete":"Suprimir","deleted":"Suprimido","does.not.exist":"No existe","does.not.respect.charter":"No respeta el reglamento","does.not.respect.charter.should.not.be.listed.here":"No respeta el reglamento, no debería aparecer aquí","duplicate.on.map":"se menciona varias veces en el mapa (duplicado)","edit":"Modificar","element":"Elemento","element.definite":"el elemento ","element.undefinite":"un elemento","element.plural":"elementos","elements.containing":"${element.plural} conteniendo","element.no.longer.exists":"${element.definite} ya no existe","element.no.respect.charter":"${element.definite} no respeta el reglamento","element.referenced.several.times":"${element.definite} está indexado varias veces","email.will.be.sent.to":"Un correo electrónico será enviado a ","email.content":"Contenido del mensaje","error.occured":"Lo sentimos, se ha producido un error","enter.valid.email":"Introduce una dirección de correo electrónico válida","error.occurend.route.calculation":"¡Lo sentimos, se ha producido un error al calcular el itinerario!","errors.reported":"Errores señalados","exists":"Existe","exists.and.correct.informations":"Existe y la información proporcionada es correcta","exists.but.i.do.not.know.anything.else.about.it":"existe, pero no sé nada sobre él","export.iframe":"Exportar un IFrame","files":"Archivos","fill.fields.below":"Debes completar los campos abajo","filter.date.view.day":"Día","anonymous":"Anónimo","add":"Añadir","admin":"Administrador","anonymous.email":"Anónimo con un correo electrónico","close.menu":"Cerrar el menú","exists.but.given.informations.are.incorrect":"existe pero la información proporcionada es incorrecta","exists.and.i.validate.the.accuracy.of.the.given.informations":"existe y confirmo que la información proporcionada es exacta","exists.but.incorrect.informations":"Existe con información incorrecta","filter.date.view.month":"Mes","filter.date.view.range":"Rango de fechas","filter.date.view.week":"Semana","filter.date.view.year":"Año","find.route":"Calcular una ruta","geolocalize":"Geolocalizar tu posición","found.one.or.several":" encontrado","general.infos":"Información general","geographic.location":"Localización geográfica","geojson.layers":"Capas","geolocalized":"Geolocalizado","geolocation.error.refused":"Geolocalización denegada","geolocation.error.failed":"Geolocalización fallida","height":"Altura","hide.header":"Ocultar el título","historical":"Historial","i.do.not.agree.with.the.proposed.modifications":"No estoy de acuerdo con los cambios sugeridos","i.validate.the.proposed.modifications":"Estoy de acuerdo con los cambios sugeridos","iframe.initialized.position.map":"El iframe se inicializará en la posición actual en el mapa. ¡Mueve el mapa hasta la posición deseada antes de abrir esta ventana!","imported":"Importado","info.less":"Menos información","info.more":"Más información","informations.incorrect":"Información inválida","label":"Etiqueta","laozi":"Lao-Tse","laozi.quotation":"«El fracaso es la clave del éxito.»","list.of":"Lista de","loading":"Cargando…","logged.user":"Usuario conectado","map.of":"Mapa de","mark.as.resolved":"Marcado como resuelto","menu":"Menú","modification":"Cambio","modification.plural":"Cambios","modified.direct.link":"Cambiado con un enlace directo","modified.owner":"Cambiado por el propietario","my.position":"mi posición","new":"Nuevo","no.category.provided":"Ninguna categoría proporcionada","no.moderation.necessary":"Sin necesidad de moderar","no.result.found":"Sin resultados","not.correct.informations":"La información no está actualizada","ok":"¡Vale!","openhours":"Horarios de apertura","other.infos":"Otras informaciones","pending.add":"Pendiente (adición)","pending.for.too.long":"Pendiente durante demasiado tiempo","pending.modifications":"Pendiente (actualizaciones)","pending.validation":"Validación pendiente","place":"Un sitio","placeholder.input.comment":"Justificación en caso de rechazo (será automáticamente añadida al correo electrónico)","potential.duplicate":"Posible duplicado","propose.changes":"Sugerir cambios","proposed.by":"Propuesto por","refused.admin":"Rechazado (administrador)","reject":"Rechazar","rejected.or.deleted.element":"(${element.definite} ha sido rechazado o suprimido)","remove.from.favorites":"Suprimir de los favoritos","report":"Señalar","report.error":"Señalar un error","report.error.regarding":"Señalar un error sobre","reporting":"Señalar","results":"Resultados","route":"Itinerario","route.calculation":"Cálculo del itinerario","route.to.element":"Itinerario hasta ${element.definite}","save":"Guardar","save.as.favorites":"Guardados como favoritos","search.for":"Buscar para","search.radius":"Radio de búsqueda","see.on.map":"Ver en el mapa","select.type.error":"¡Selecciona un tipo de error!","send":"Enviar","send.email":"Enviar un correo electrónico","send.email.to":"Enviar un correo electrónico a ","share.url":"Compartir esta URL","share.your.knowledge.about":"Compartir tu conocimiento sobre","show.as.list":"Mostrar como lista","show.hide.detail":"Mostrar/Ocultar los detalles","show.more":"Mostrar más","show.on.map":"mostrar en el mapa","show.only":"Mostrar sólo","show.only.actors.with.label":"Mostrar sólo los actores con etiquetas","show.only.elements.to.moderate":"Mostrar sólo el ${element.plural} para moderar","show.only.elements.validation.process":"Mostrar sólo el ${element.plural} con validación pendiente","show.only.favorites":"Mostrar sólo los favoritos","show.only.selected.categories":"Mostrar sólo las categorías seleccionadas","source":"Fuente","starting.address":"Dirección de inicio","starting.address.title":"Indicar la dirección de inicio","subscribe":"Abonarse","subscribe.changes":"Abonarse a los cambios","subscribed":"Abonado","the":"el","the.addition":"la adición","the.modification":"el cambio","to.moderate":"Para moderar","type.message.here":"Escribe tu mensaje aquí","unsubscribe":"Cancelar el abono","unsubscribe.changes":"Cancelar el abono a los cambios","updated.at":"Últimas actualizaciones","validated.admin":"Validado (administrador)","validated.votes":"Validado (votos)","what.error.to.report":"¿Cúal es el error que quieres señalar?","width":"Ancho","you.must.select.your.vote":"Debe elegir su voto","your.email":"Tu dirección de correo electrónico","your.favorites":"Tus favoritos","modified.admin":"Cambiado por el administrador","refused.votes":"Rechazado (votos)","modified.pending":"Cambio pendiente","non.consensual.votes":"Votos no concluyentes","placeholder.input.comment.administration":"Comentario opcional para la moderación","placeholder.input.subject.email":"Asunto del correo electrónico","saved":"Guardado","search":"Buscar","share.link":"Compartir este link","video":"Vídeo","vote":"Voto","waiting":"Pendiente"}')},"./src/locales/fr.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Accepter","add":"Ajout","added.admin":"Ajouté par admin","admin":"Admin","all":"Tous","all.the":"Tous les","anonymous":"Anonyme","anonymous.email":"Anonyme avec courriel","anonymous.link":"Anonyme avec lien","around":"autour de","around.map.center":"autour du centre de la carte","back.to.default.view":"Retourner à la vue par défaut","back.to.map":"Retour à la carte","by":"par","cancel":"Annuler","can.not.locate.address":"Impossible de localiser cette adresse !","card":"Fiche","category":"Catégorie","change.tiles":"Changer le fond de carte","check.uncheck.all":"Cocher/décocher tout","clear.filter":"Effacer le filtre","close":"Fermer","close.menu":"Fermer le Menu","collaborative.moderation":"Modération collaborative","collaborative.moderation.first.paragraph":"Lorsqu\'${element.undefinite} est ajouté(e) ou modifié(e), la mise à jour des données n\'est pas instantanée : ${element.definite} va d\'abord apparaître grisé sur la carte, et il sera alors possible à toustes les utilisateur.ice.s loguées de voter une et une seule fois. Ce vote n\'est pas une opinion, mais un partage de connaissance. Si vous connaissez ${element.definite}, ou savez que ${element.definite} n\'existe pas, alors votre savoir nous intéresse !","collaborative.moderation.second.paragraph":"Au bout d\'un certain nombre de votes, ${element.definite} pourra alors être automatiquement validé ou refusé. En cas de litige (des votes à la fois positifs et négatifs), un modérateur interviendra au plus vite. On compte sur vous !","comment.for.moderation":"Commentaire pour la modération","copy.html.code":"Copiez ce code HTML dans votre site web !","date.defaultFormat":"D MMMM YYYY à HH:mm","date.defaultFormatShort":"dd/mm/yyyy","decide":"Décider","decide.for":"Décidez pour","delete":"Supprimer","deleted":"Supprimé","does.not.exist":"N\'existe pas","does.not.respect.charter":"Ne respecte pas la charte","does.not.respect.charter.should.not.be.listed.here":"Ne respecte pas la charte, il n\'a rien à faire ici","duplicate.on.map":"est référencé(e) plusieurs fois sur la carte (doublon)","edit":"Modifier","element":"Élément","element.definite":"l\'élément ","element.undefinite":"un élément","element.plural":"éléments","elements.containing":"${element.plural} contenant","element.no.longer.exists":"${element.definite} n\'existe plus","element.no.respect.charter":"${element.definite} ne respecte pas la charte","element.referenced.several.times":"${element.definite} est référencé(e) plusieurs fois","email.will.be.sent.to":"Un courriel sera envoyé à ","email.content":"Contenu du message","error.occured":"Désolé, une erreur s\'est produite","enter.valid.email":"Veuillez renseigner une adresse électronique valide","error.occurend.route.calculation":"Une erreur est survenue pendant le calcul de l\'itinéraire, désolé !","errors.reported":"Erreurs signalées","exists":"Existe","exists.and.correct.informations":"Existe et les informations sont correctes","exists.but.given.informations.are.incorrect":"existe mais les informations indiquées ne sont pas correctes","exists.but.i.do.not.know.anything.else.about.it":"existe, mais je n\'en sais pas plus sur lui","exists.and.i.validate.the.accuracy.of.the.given.informations":"existe et je valide l\'exactitude des informations fournies","exists.but.incorrect.informations":"Existe mais les informations sont incorrectes","export.iframe":"Exporter une Iframe","files":"Fichiers","fill.fields.below":"Vous devez remplir les champs ci-dessous","filter.date.view.day":"Jour","filter.date.view.month":"Mois","filter.date.view.range":"Plage","filter.date.view.week":"Semaine","filter.date.view.year":"Année","find.route":"Calculer l\'itinéraire","found.one.or.several":" (s) trouvé-e(s)","general.infos":"Informations générales","geographic.location":"Lieu géographique","geojson.layers":"Calques","geolocalize":"Géolocaliser votre position","geolocalized":"Géolocalisé","geolocation.error.refused":"Géolocalisation refusée","geolocation.error.failed":"La géolocalisation a échoué","height":"Hauteur","hide.header":"Masquer le menu d\'en-tête","historical":"Historique","i.do.not.agree.with.the.proposed.modifications":"Je ne suis pas d\'accord avec les modifications proposées","i.validate.the.proposed.modifications":"Je valide les modifications proposées","iframe.initialized.position.map":"L\'iframe sera initialisée dans la position actuelle de la carte. Déplacez la carte dans la position voulue avant d\'ouvrir cette fenêtre !","imported":"Importé","info.more":"Plus d\'infos","info.less":"Moins d\'infos","informations.incorrect":"Infos invalides","label":"Étiqueter","laozi":"Lao Tseu","laozi.quotation":"« L’échec est le fondement de la réussite. »","list.of":"Liste des","loading":"Chargement…","logged.user":"Utilisateur enregistré","map.of":"Carte des","mark.as.resolved":"Marqué comme résolu","menu":"Menu","modification":"Modification","modification.plural":"Modifications","modified.admin":"Modifié par admin","modified.direct.link":"Modifié avec lien direct","modified.owner":"Modifié par propriétaire","modified.pending":"en attente de modification","my.position":"ma position","new":"Nouvel(le)","no.category.provided":"Aucune catégorie renseignée","no.moderation.necessary":"Pas de modération nécessaire","no.result.found":"Aucun résultat trouvé","non.consensual.votes":"Votes non consensuels","not.correct.informations":"Les informations sont incorrectes","ok":"OK !","openhours":"Horaires d\'ouverture","other.infos":"Autres informations","pending.add":"En attente (ajout)","pending.for.too.long":"En attente depuis trop longtemps","pending.modifications":"En attente (modifications)","pending.validation":"En cours de validation","place":"Un lieu","placeholder.input.comment":"Justificatif en cas de refus (qui sera inséré dans le message automatique)","placeholder.input.comment.administration":"Commentaire optionnel pour la modération","placeholder.input.subject.email":"Objet du message","potential.duplicate":"Doublon potentiel","propose.changes":"Proposer des modifications","proposed.by":"Proposé par","refused.admin":"Refusé (admin)","refused.votes":"Refusé (votes)","reject":"Refuser","rejected.or.deleted.element":"(${element.definite} a été refusé ou supprimé)","remove.from.favorites":"Retirer des favoris","report":"Signaler","report.error":"Signaler une erreur","report.error.regarding":"Signaler une erreur concernant","reporting":"Signalement","results":"Résultats","route":"Itinéraire","route.calculation":"Calcul d\'itinéraire","route.to.element":"Itinéraire vers ${element.definite}","save":"Enregistrer","saved":"Enregistré","save.as.favorites":"Enregistrés comme favoris","search":"Chercher","search.for":"Recherche de","search.radius":"Rayon","see.on.map":"Voir sur la carte","select.type.error":"Vous devez sélectionner un type d\'erreur !","send":"Envoyer","send.email":"Envoyer un courriel","send.email.to":"Envoyer un courriel à ","share.link":"Partager ce lien avec d\'autres","share.url":"Partager l\'URL","subscribe":"S\'abonner","subscribe.changes":"S\'abonner aux modifications","subscribed":"Abonné","share.your.knowledge.about":"Partagez votre connaissance concernant","show.as.list":"Afficher sous forme de liste","show.hide.detail":"Afficher/Masquer le détail","show.more":"Afficher plus","show.on.map":"Afficher sur la carte","show.only":"Afficher uniquement","show.only.actors.with.label":"Afficher uniquement les acteurs avec l\'étiquette","show.only.elements.to.moderate":"Afficher uniquement les ${element.plural} à modérer","show.only.elements.validation.process":"Afficher uniquement les ${element.plural} en cours de validation","show.only.favorites":"Afficher uniquement les favoris","show.only.selected.categories":"Afficher uniquement les catégories sélectionnées","source":"Origine","starting.address":"L\'adresse de départ","starting.address.title":"Entrez une adresse de départ","the":"le(a)","the.addition":"l\'ajout","the.modification":"la modification","to.moderate":"À modérer","type.message.here":"Tapez votre message ici","unsubscribe":"Se désabonner","unsubscribe.changes":"Se désabonner des modifications","updated.at":"Dernières mise à jour","validated.admin":"Validé (admin)","validated.votes":"Validé (votes)","video":"Vidéo","vote":"Voter","waiting":"En attente","what.error.to.report":"Quelle erreur voulez-vous signaler ?","width":"Largeur","you.must.select.your.vote":"Vous devez choisir votre vote","your.email":"Votre adresse courriel","your.favorites":"Vos favoris"}')},"./src/locales/nb_NO.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Accepter","add":"Ajout","added.admin":"Ajouté par admin","admin":"Admin","all":"Tous","all.the":"Tous les","anonymous":"Anonyme","anonymous.email":"Anonyme avec email","anonymous.link":"Anonyme avec lien","around":"autour de","around.map.center":"autour du centre de la carte","back.to.default.view":"Tilbake til forvalgt visning","back.to.map":"Tilbake til kartet","by":"av","date.defaultFormat":"D MMMM YYYY klokken HH:mm","date.defaultFormatShort":"dd/mm/yyyy","decide":"Avgjør","decide.for":"Avgjør for","delete":"Fjern","does.not.exist":"Finnes ikke","does.not.respect.charter":"Respekterer ikke charteret","does.not.respect.charter.should.not.be.listed.here":"Respekterer ikke charteret, skal ikke listes opp her","duplicate.on.map":"finnes flere steder på kartet (duplikat)","edit":"Endre","element":"element","element.definite":"elementet ","element.undefinite":"et element","element.plural":"elementene","elements.containing":"${element.plural} som inneholder","element.no.longer.exists":"${element.definite} som ikke lenger finnes","element.no.respect.charter":"${element.definite} som ikke respekterer charteret","element.referenced.several.times":"${element.definite} som det finnes flere referanser til","email.will.be.sent.to":"En e-post vil bli sendt til ","email.content":"Meldingsinnhold","error.occured":"En feil inntraff","enter.valid.email":"Skriv inn en gyldig e-postadresse","error.occurend.route.calculation":"En feil oppstod under ruteberegning.","errors.reported":"Innrapporterte feil","exists":"Finnes","exists.and.correct.informations":"Finnes og har rett info","exists.but.given.informations.are.incorrect":"eksisterende angitt info er ikke riktig","exists.but.i.do.not.know.anything.else.about.it":"finnes, men det er også alt som er kjent","exists.and.i.validate.the.accuracy.of.the.given.informations":"finnes og jeg bekrefter nøyaktigheten av angitt info","exists.but.incorrect.informations":"finnes, men informasjonen er uriktig","export.iframe":"Eksporter en visning","height":"Høyde","hide.header":"Skjul tittelmenyen","historical":"Historikk","i.do.not.agree.with.the.proposed.modifications":"Jeg er ikke enig med foreslått endring","i.validate.the.proposed.modifications":"Jeg bekrefter foreslått endring","iframe.initialized.position.map":"Visningen vil begynne i denne posisjonen. Flytt kartet til ønsket posisjon før du åpner det.","imported":"Importer","informations.incorrect":"Informasjonen stemmer","label":"Etikett","laozi":"Laozi","list.of":"Liste over","loading":"Laster inn …","logged.user":"Innlogget","map.of":"Kart over","mark.as.resolved":"Marker som løst","menu":"Meny","modification":"Endring","modification.plural":"Endringer","modified.admin":"Endret av administrator","modified.direct.link":"Endre direkte lenke","modified.owner":"Endret av eier","modified.pending":"endring venter","my.position":"min posisjon","ok":"OK","openhours":"Åpningstider","other.infos":"Annen info","pending.add":"Venter (tillegg)","pending.for.too.long":"For lang ventetid","pending.modifications":"Venter (endringer)","pending.validation":"Venter på bekreftelse","place":"Et sted","placeholder.input.comment":"Bevis i tilfelle avvisning (som vil bli sendt i den automatiserte e-posten).)","placeholder.input.comment.administration":"Valgfri kommentar for moderering","placeholder.input.subject.email":"Meldingsemne","potential.duplicate":"Mulig duplikat","propose.changes":"Foreslå endringer","proposed.by":"Foreslått av","refused.admin":"Avslått (admin)","refused.votes":"Avslått (stemmegivning)","reject":"Avslå","rejected.or.deleted.element":"(${element.definite} er et avslått eller slettet element)","remove.from.favorites":"Fjern fra favoritter","report":"Rapporter","report.error":"Innrapporter feil","report.error.regarding":"Innrapporter feil om","reporting":"Innraportering","results":"Resultater","route":"Veivisning","route.calculation":"Ruteutregning","route.to.element":"Veivisning til ${element.definite}","save":"Lagre","saved":"Lagret","save.as.favorites":"Lagre som favoritt","search":"Søk","search.for":"Søk etter","search.radius":"Søkeradius","see.on.map":"Vis på kart","select.type.error":"Velg feiltype.","send":"Send","send.email":"Send e-post","send.email.to":"Send e-post til ","share.link":"Del denne lenken med andre","share.url":"Del nettadresse","share.your.knowledge.about":"Del hva du vet om","show.as.list":"Vis som liste","show.hide.detail":"Vis/skjul detaljer","show.more":"Vis mer","show.on.map":"Vis på kartet","show.only":"Kun vis","show.only.actors.with.label":"Kun vis dem med etiketten","show.only.elements.to.moderate":"Vis kun ${element.plural} å moderere","show.only.elements.validation.process":"Vis kun ${element.plural} til bekreftelse","show.only.favorites":"Vis kun favoritter","show.only.selected.categories":"Vis kun valgte kategorier","source":"Kilde","starting.address":"Startadresse","starting.address.title":"Sluttadresse","updated.at":"Oppdatert","waiting":"Venter","what.error.to.report":"Hva ønsker du å rapportere?","width":"Bredde","deleted":"Slettet","the.modification":"endringen","to.moderate":"Til moderering","your.favorites":"Dine favoritter","your.email":"Din e-postadresse","video":"Video","you.must.select.your.vote":"Du må velge din stemme","vote":"Stemme","validated.votes":"Bekreftet (stemmer)","validated.admin":"Bekreftet (administrator)","check.uncheck.all":"Huk av alt/fjern avhuking","clear.filter":"Tøm filteret","comment.for.moderation":"Kommentar til moderasjon","collaborative.moderation":"Samarbeidsmoderasjon","cancel":"Avbryt","collaborative.moderation.second.paragraph":"Etter et gitt antall stemmer, vil ${element.definite} kunne bekreftes automatisk, eller avslås. I fall en disputt oppstår (der det finnes negative og positive stemmer), vil en moderator håndtere ting så raskt som mulig. Vi regner med deg.","close.menu":"Lukk menyen","category":"Kategori","close":"Lukk","copy.html.code":"Kopier denne HTML-koden til nettsiden din.","can.not.locate.address":"Finner ikke denne adressen.","collaborative.moderation.first.paragraph":"Når ${element.undefinite} legges til eller endres, er ikke oppdateringen umiddelbar: ${element.definite} vises først utgrået på kartet. Det vil være mulig for alle innloggede brukere å stemme kun én gang. Den stemmer er ikke en mening, men en andel kunnskap. Hvis du vet ${element.definite} eller vet at ${element.definite} ikke finnes, vil vi ha din kunnskap.","card":"Kort","change.tiles":"Endre kartbakgrunn","files":"Filer","fill.fields.below":"Du må fylle inn feltene ovenfor","filter.date.view.day":"Dag","filter.date.view.month":"Måned","filter.date.view.week":"Uke","filter.date.view.year":"År","find.route":"Beregn rute","found.one.or.several":" funnet","general.infos":"Generell info","geographic.location":"Geografisk posisjon","geolocalized":"Geoposisjonert","geolocation.error.refused":"Geoposisjonering nektet","geolocation.error.failed":"Geoposisjonering mislyktes","new":"Ny","no.category.provided":"Ingen angitt kategori","no.result.found":"Resultatløst","no.moderation.necessary":"Ingen moderasjon behøves","filter.date.view.range":"Datoområde","not.correct.informations":"Informasjonen er ikke oppdatert","geolocalize":"Geoposisjoner deg selv","type.message.here":"Skriv meldingen din her","non.consensual.votes":"Ufullstendige stemmer","the.addition":"tillegget","laozi.quotation":"«Mislykkethet er grunnsteinen i suksess»","info.more":"Mer info","info.less":"Mindre info","geojson.layers":"Lag","subscribe.changes":"Abonner på endringer","subscribe":"Abonner","subscribed":"Abonnert","unsubscribe":"Opphev abonnement","unsubscribe.changes":"Opphev abonnement på endringer"}')},"./src/locales/pt.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Aceitar","add":"Adicionar","added.admin":"Adicionado pelo administrador","admin":"Administrador","all":"Todos","anonymous":"Anónimo","all.the":"Cada","anonymous.link":"Anónimo com um link","around.map.center":"à volta do centro do mapa","back.to.map":"Voltar ao mapa","by":"por","card":"Carta","change.tiles":"Mudar o fundo do mapa","check.uncheck.all":"(Des)seleccionar tudo","clear.filter":"Limpar o filtro","close":"Fechar","close.menu":"Fechar o menu","collaborative.moderation":"Moderação colaborativa","collaborative.moderation.second.paragraph":"Depois de um número de votos, a entrada pode ser então automaticamente validada ou rejeitada. Em caso de disputa (votos positivos e negativos), um moderador irá verificar o caso o mais cedo possível. Contamos contigo!","comment.for.moderation":"Comentário para a moderação","date.defaultFormatShort":"dd/mm/yyyy","decide":"Decidir","decide.for":"Decidir por","delete":"Eliminar","deleted":"Eliminado","does.not.exist":"Não existe","duplicate.on.map":"é referenciado várias vezes no mapa (duplicado)","edit":"Editar","element":"Entrada","element.undefinite":"uma entrada","elements.containing":"${element.plural} que contêm","element.no.longer.exists":"${element.definite} já não existe","element.no.respect.charter":"${element.definite} não respeita as regras","element.referenced.several.times":"${element.definite} é referenciado várias vezes","error.occured":"As nossas desculpas mas ocorreu um erro","errors.reported":"Erros relatados","exists":"Existe","exists.and.correct.informations":"Existe e a informação indicada está correta","exists.and.i.validate.the.accuracy.of.the.given.informations":"existe e confirma-se que a informação indicada está correta","export.iframe":"Exportar um IFrame","fill.fields.below":"É necessário preencher os campos em baixo","filter.date.view.month":"Mês","filter.date.view.range":"Período de interesse","find.route":"Calcular uma rota","files":"Ficheiros","found.one.or.several":" encontrado","general.infos":"Informação geral","geolocalize":"Localiza a tua posição","geolocalized":"Localizado","geolocation.error.refused":"Localização recusada","geolocation.error.failed":"A localização falhou","height":"Altura","historical":"Histórico","iframe.initialized.position.map":"O IFrame vai ser inicializado na posição atual do mapa. Mova o mapa para a posição desejada antes de abrir esta janela!","informations.incorrect":"Informação inválida","label":"Etiqueta","list.of":"Lista de","loading":"A carregar…","logged.user":"Utilizador conectado","map.of":"Mapa de","mark.as.resolved":"Registado como resolvido","menu":"Menu","modified.owner":"Modificado pelo proprietário","modification.plural":"Modificações","modified.pending":"Modificação pendente","my.position":"a minha posição","new":"Novo","no.moderation.necessary":"Não pede moderação","no.result.found":"Sem resultados","non.consensual.votes":"Votação inconclusiva","not.correct.informations":"A informação está desatualizada","other.infos":"Outra informação","pending.add":"Pendente (adição)","placeholder.input.comment":"Justificação em caso de recusa (será automaticamente incluída no e-mail)","placeholder.input.comment.administration":"Comentário opcional para a moderação","propose.changes":"Sugerir modificações","proposed.by":"Proposto por","refused.votes":"Recusado (votos)","reject":"Recusar","report":"Reportar","report.error":"Reportar um erro","report.error.regarding":"Reportar um erro relativo a","reporting":"Reportar","results":"Resultados","route":"Itinerário","route.calculation":"Cálculo do itinerário","save":"Guardar","saved":"Guardado","save.as.favorites":"Guardado nos favoritos","search":"Procurar","select.type.error":"Por favor escolher um tipo de erro!","send":"Enviar","send.email":"Enviar um e-mail","send.email.to":"Enviar um e-mail a ","share.link":"Partilhar","share.url":"Partilhar","share.your.knowledge.about":"Partilha o teu conhecimento sobre","show.hide.detail":"Mostrar/esconder detalhes","show.on.map":"mostrar no mapa","show.only":"Mostrar apenas","show.only.actors.with.label":"Mostrar apenas atores com etiquetas","show.only.elements.validation.process":"Apenas mostrar ${element.plural} a aguardar validação","source":"Fonte","starting.address.title":"Inserir a morada de começo","subscribe":"Ser notificado","subscribed":"A receber notificações","the":"o","to.moderate":"Por moderar","type.message.here":"Escreva a sua mensagem aqui","unsubscribe.changes":"Cancelar subscrição sobre modificações","updated.at":"Últimas atualizações","validated.admin":"Validado (administrador)","validated.votes":"Validado (votos)","video":"Vídeo","vote":"Votar","waiting":"Pendente","what.error.to.report":"Que erro gostaria de reportar?","you.must.select.your.vote":"Tens de seleccionar o teu voto","anonymous.email":"Anónimo com endereço de e-mail","around":"à volta","back.to.default.view":"Voltar à vista original","can.not.locate.address":"Não é possível localizar esta morada!","category":"Categoria","collaborative.moderation.first.paragraph":"Quando ${element.undefinite} é adicionado ou modificado, a atualização não é instantânea: ${element.definite} irá primeiro aparecer com cor cinzenta no mapa. Depois os utilizadores poderam votar (uma vez apenas). Este voto não se trata de uma opinião mas de partilha de conhecimento. Se conheces ${element.definite} ou sabes que ${element.definite} não existe, então queremos beneficiar do teu conhecimento!","copy.html.code":"Copia este código HTML para o teu site!","date.defaultFormat":"D MMMM YYYY LT","cancel":"Cancelar","does.not.respect.charter":"Não respeita as regras","element.plural":"entradas","exists.but.incorrect.informations":"Existe com informação incorreta","geographic.location":"Localização geográfica","email.will.be.sent.to":"Um e-mail será enviado para ","email.content":"Conteúdo da mensagem","does.not.respect.charter.should.not.be.listed.here":"Não respeita as regras, não deveria estar listado aqui","element.definite":"a entrada ","filter.date.view.day":"Dia","enter.valid.email":"Por favor inserir um endereço de e-mail válido","error.occurend.route.calculation":"As nossas desculpas, ocorreu um erro no cálculo do trajeto!","filter.date.view.week":"Semana","filter.date.view.year":"Ano","exists.but.i.do.not.know.anything.else.about.it":"existe, mas não tem nenhuma informação associada","exists.but.given.informations.are.incorrect":"existe mas a informação indicada está incorreta","geojson.layers":"Camadas","i.validate.the.proposed.modifications":"Concordo com as alterações propostas","i.do.not.agree.with.the.proposed.modifications":"Não concordo com as alterações sugeridas","hide.header":"Esconder o cabeçalho","no.category.provided":"Nenhuma categoria indicada","imported":"Importado","laozi.quotation":"\\"Falhar é a base do sucesso.\\"","modification":"Modificar","modified.admin":"Modificado pelo administrador","modified.direct.link":"Modificado com um link direto","ok":"OK!","place":"Um local","remove.from.favorites":"Remover dos favoritos","openhours":"Hora de abertura","pending.for.too.long":"Pendente há demasiado tempo","pending.modifications":"Pendente (atualizações)","pending.validation":"A aguardar validação","placeholder.input.subject.email":"Assunto do e-mail","rejected.or.deleted.element":"(${element.definite} foi recusado ou eliminado)","potential.duplicate":"Entrada potencialmente duplicada","refused.admin":"Recusado (administrador)","route.to.element":"Itinerário até ${element.definite}","show.only.selected.categories":"Apenas mostrar categorias seleccionadas","width":"Largura","search.for":"Procurar por","see.on.map":"Ver no mapa","your.email":"O teu endereço de e-mail","search.radius":"Raio de procura","show.as.list":"Ver como lista","starting.address":"Morada de começo","show.only.elements.to.moderate":"Mostrar apenas ${element.plural} para moderar","show.only.favorites":"Apenas mostrar favoritos","subscribe.changes":"Ser notificado de modificações","the.addition":"a adição","the.modification":"a modificação","unsubscribe":"Deixar de receber notificações","your.favorites":"Os teus favoritos","info.more":"Ver detalhes","info.less":"Ocultar detalhes"}')},"./src/locales/tr.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Kabul et","add":"Ekle","added.admin":"Yönetici tarafından eklendi","admin":"Yönetici","all":"Herkes","all.the":"Her","anonymous":"Anonim","anonymous.email":"Email ile anonim","anonymous.link":"Link ile anonim","around":"yaklaşık","around.map.center":"haritanın merkezinin civarında","back.to.default.view":"Default görünüme geri dön","back.to.map":"Haritaya geri dön","cancel":"İptal","can.not.locate.address":"Bu adresi saptayamadık!","card":"Kart","category":"Kategori","change.tiles":"Harita döşemesini değiştir","check.uncheck.all":"Her Şeyi İşaretle/İşaretini Kaldır","clear.filter":"Filtreyi temizle","copy.html.code":"Bu HTML kodunu web sitenize kopyala!","delete":"Sil","does.not.respect.charter":"Tüzüğe uygun davranmıyor","does.not.respect.charter.should.not.be.listed.here":"Tüzüğe uygun davranmıyor, burada listelenmemeli","duplicate.on.map":"haritada birden çok kez referanslandırıldı (yinelenme)","element.definite":"öğe ","element.plural":"öğeler","by":"tarafından","element.referenced.several.times":"${element.definite} e birden çok kez başvuruda bulundu","email.will.be.sent.to":"adresine bir e-posta gönderilecek ","email.content":"Mesajın içeriği","error.occurend.route.calculation":"Üzgünüz, rota oluşturulurken bir hata oluştu!","errors.reported":"Bildirilen hatalar","exists":"bulunuyor","exists.and.correct.informations":"Mevcut ve verilen bilgiler doğrudur","exists.but.given.informations.are.incorrect":"Mevcut ama verilen bilgiler yanlış","exists.but.i.do.not.know.anything.else.about.it":"Mevcut ama hakkında bilgim yok","exists.and.i.validate.the.accuracy.of.the.given.informations":"mevcut olduğunu ve verilen bilgilerin doğru olduğunu teyit ederim","exists.but.incorrect.informations":"Birtakım yanlış bilgiler ile mevcut","export.iframe":"IFrame\'i dışa aktar","files":"Dosyalar","filter.date.view.week":"Hafta","height":"Yükseklik","hide.header":"Başlığı gizle","historical":"Tarihçe","i.do.not.agree.with.the.proposed.modifications":"Önerilen değişiklikleri kabul etmiyorum","i.validate.the.proposed.modifications":"Önerilen değişiklikleri kabul ediyorum","iframe.initialized.position.map":"İframe haritadaki geçerli konumda başlatılacaktır. Bu pencereyi açmadan önce haritayı istediğiniz konuma taşıyın!","imported":"Alınan","informations.incorrect":"Geçersiz bilgi","label":"Etiket","laozi":"Laozi dili","laozi.quotation":"\\"Başarısızlık, başarının temelidir.\\"","list.of":"Listesi","loading":"Yükleniyor…","logged.user":"Oturum açmış kullanıcı","map.of":"Haritası","mark.as.resolved":"Çözümlendi olarak işaretlendi","no.moderation.necessary":"Moderasyona ihtiyaç duyulmuyor","no.result.found":"Sonuç yok","non.consensual.votes":"Kesin olmayan oylar","not.correct.informations":"Bilgiler güncel değil","openhours":"Çalışma saatleri","other.infos":"Diğer bilgiler","pending.add":"Beklemede (ekleme)","pending.for.too.long":"Çok uzun süredir beklemede","pending.modifications":"Beklemede (güncellemeler)","pending.validation":"Doğrulama bekleniyor","place":"Bir yer","placeholder.input.comment":"Reddetme durumunda gerekçe (e-postaya otomatik olarak eklenecektir)","placeholder.input.comment.administration":"Moderasyon için isteğe bağlı yorum","placeholder.input.subject.email":"E-posta konusu","potential.duplicate":"potansiyel yineleme","propose.changes":"Değişiklik önerin","proposed.by":"Tarafından önerildi","refused.admin":"Reddedildi (yönetici)","refused.votes":"Reddedildi (oylar tarafından)","reject":"Reddet","remove.from.favorites":"Sık kullanılanlardan kaldır","report":"Raporla","report.error":"Hata bildir","report.error.regarding":"ile ilgili bir hata bildirin","reporting":"Rapor","results":"Sonuçlar","route":"güzergah","route.calculation":"güzergah hesaplama","route.to.element":"${element.definite}\'ın güzergahı","save":"Kaydet","saved":"kaydedildi","save.as.favorites":"Sık kullanılanlara kaydedildi","search":"Arama","search.for":"için arama","search.radius":"Yarıçapı araştır","see.on.map":"Haritada göster","select.type.error":"Lütfen bir hata türü seçin!","send":"Gönder","send.email.to":"Şu adrese bir e-posta gönderin ","share.link":"Bu bağlantıyı paylaş","share.your.knowledge.about":"ile ilgili bilginizi paylaşın","ok":"Tamam!","show.hide.detail":"Ayrıntıları Göster/Gizle","show.more":"Daha fazla göster","show.on.map":"harita üzerinde göster","show.only":"Yalnızca şunu göster","show.only.actors.with.label":"Sadece etiketli aktörleri göster","show.only.elements.to.moderate":"denetlemek için sadece ${element.plural} öğesini göster","show.only.elements.validation.process":"Yalnızca ${element.plural} bekleyen doğrulamayı göster","show.only.favorites":"Yalnızca sık kullanılanları göster","show.only.selected.categories":"Yalnızca seçili kategorileri göster","source":"Kaynak","starting.address":"Başlangıç adresi","starting.address.title":"Başlama adresini girin","subscribe":"Abone Olun","subscribe.changes":"Değişikliklere abone ol","subscribed":"Abone olundu","the.addition":"eklenti","the.modification":"değişiklik","to.moderate":"Denetleme","type.message.here":"Mesajınızı buraya yazın","unsubscribe":"Aboneliği iptal et","unsubscribe.changes":"Değişiklik aboneliğini iptal et","updated.at":"Son güncellemeler","video":"Video","the":" ","your.email":"E-posta adresiniz","your.favorites":"Sık kullanılanlarınız","close":"Kapat","close.menu":"Menüyü Kapat","collaborative.moderation.first.paragraph":"${element.undefinite} eklendiğinde veya değiştirildiğinde, güncelleme anında olmaz: ${element.definite} önce haritada gri renkte görünür. Daha sonra, oturum açmış tüm kullanıcıların yalnızca bir kez oy kullanması mümkün olacaktır. Bu oy bir fikir değil, bir bilgi paylaşımıdır. ${element.definite} öğesini tanıyorsanız veya ${element.definite} öğesinin olup olmadığını biliyorsanız, bilginizi bizimle paylaşın!","decide.for":"Şunun için karar verin","element.no.respect.charter":"${element.definite} tüzüğe uymuyor","filter.date.view.range":"Tarih aralığı","geographic.location":"Coğrafi konum","geolocation.error.refused":"Coğrafi konum reddedildi","no.category.provided":"Belirtilen bir kategori yok","deleted":"silindi","does.not.exist":"Mevcut değil","elements.containing":"${element.plural} içeriyor","error.occured":"Üzgünüz, bir hata oluştu","find.route":"Bir rota hesaplayın","geolocation.error.failed":"konum belirleme başarısız","element.no.longer.exists":"${element.definite} artık mevcut değil","enter.valid.email":"Lütfen geçerli bir e-posta adresi girin","fill.fields.below":"Aşağıdaki alanları doldurmanız gerekmektedir","filter.date.view.day":"Gün","filter.date.view.month":"Ay","found.one.or.several":" bulundu","general.infos":"Genel bilgiler","geojson.layers":"Katmanlar","geolocalize":"Konumunuzu coğrafi olarak belirleyin","geolocalized":"Coğrafi olarak konumlandırılmış","filter.date.view.year":"Yıl","menu":"Menü","modification":"Değiştir","modified.owner":"Sahibi tarafından değiştirildi","modified.pending":"Değişiklik beklemede","modification.plural":"Değişiklikler","modified.admin":"Yönetici tarafından değiştirildi","modified.direct.link":"Doğrudan bağlantı ile değiştirildi","my.position":"Pozisyonum","new":"Yeni","share.url":"Bu URL\'yi paylaş","rejected.or.deleted.element":"(${element.definite} reddedildi veya silindi)","send.email":"E-posta gönder","show.as.list":"Liste olarak göster","element":"Öğe","validated.votes":"Onaylandı (oylar tarafından)","what.error.to.report":"Hangi hatayı bildirmek istiyorsunuz?","width":"Genişlik","element.undefinite":"bir öğe","validated.admin":"Onaylandı (admin)","waiting":"Beklemede","collaborative.moderation":"İşbirliğine Dayalı Denetleme","collaborative.moderation.second.paragraph":"Belirli sayıda oylamadan sonra, ${element.definite} otomatik olarak doğrulanabilir veya reddedilebilir. Bir anlaşmazlık durumunda (olumsuz ve olumlu oyların varlığı), bir moderatör işleri mümkün olduğunca çabuk ele alacaktır. Size güveniyoruz!","date.defaultFormat":"D MMMM YYYY LT","date.defaultFormatShort":"gg/aa/yyyy","edit":"Düzenle","vote":"Oyla","you.must.select.your.vote":"Oyunuzu seçmelisiniz","comment.for.moderation":"moderasyon için yorum","decide":"Karar verin"}')}},__webpack_module_cache__={},Xuc,Wuc;function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;t=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},Wuc=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,__webpack_require__.t=function(t,e){if(1&e&&(t=this(t)),8&e)return t;if("object"==typeof t&&t){if(4&e&&t.__esModule)return t;if(16&e&&"function"==typeof t.then)return t}var o=Object.create(null);__webpack_require__.r(o);var n={};Xuc=Xuc||[null,Wuc({}),Wuc([]),Wuc(Wuc)];for(var i=2&e&&t;"object"==typeof i&&!~Xuc.indexOf(i);i=Wuc(i))Object.getOwnPropertyNames(i).forEach(e=>n[e]=()=>t[e]);return n.default=()=>t,__webpack_require__.d(o,n),o},__webpack_require__.d=(e,t)=>{for(var o in t)__webpack_require__.o(t,o)&&!__webpack_require__.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./src/js/gogocarto.ts");window.goGoCarto=__webpack_exports__.default})(); \ No newline at end of file +var Vel;!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(k,e){"use strict";function f(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item}function g(e){return null!=e&&e===e.window}var t=[],o=Object.getPrototypeOf,a=t.slice,v=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},l=t.push,i=t.indexOf,n={},r=n.toString,y=n.hasOwnProperty,s=y.toString,u=s.call(Object),b={},x=k.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function _(e,t,o){var n,i,r=(o=o||x).createElement("script");if(r.text=e,t)for(n in c)(i=t[n]||t.getAttribute&&t.getAttribute(n))&&r.setAttribute(n,i);o.head.appendChild(r).parentNode.removeChild(r)}function m(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[r.call(e)]||"object":typeof e}var p="3.6.0",L=function(e,t){return new L.fn.init(e,t)};function d(e){var t=!!e&&"length"in e&&e.length,o=m(e);return!f(e)&&!g(e)&&("array"===o||0===t||"number"==typeof t&&0>10|55296,1023&e|56320))}function d(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}function n(){k()}var e,h,_,r,i,m,f,g,w,l,u,k,x,s,L,v,a,c,y,C="sizzle"+ +new Date,b=o.document,O=0,A=0,E=le(),S=le(),T=le(),M=le(),F=function(e,t){return e===t&&(u=!0),0},P={}.hasOwnProperty,t=[],j=t.pop,D=t.push,I=t.push,V=t.slice,N=function(e,t){for(var o=0,n=e.length;o+~]|"+R+")"+R+"*"),Y=new RegExp(R+"|>"),Z=new RegExp(H),K=new RegExp("^"+z+"$"),J={ID:new RegExp("^#("+z+")"),CLASS:new RegExp("^\\.("+z+")"),TAG:new RegExp("^("+z+"|[*])"),ATTR:new RegExp("^"+q),PSEUDO:new RegExp("^"+H),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+R+"*(even|odd|(([+-]|)(\\d*)n|)"+R+"*(?:([+-]|)"+R+"*(\\d+)|))"+R+"*\\)|)","i"),bool:new RegExp("^(?:"+B+")$","i"),needsContext:new RegExp("^"+R+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+R+"*((?:-\\d)?\\d*)"+R+"*\\)|)(?=[^-]|$)","i")},X=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,ee=/^h\d$/i,te=/^[^{]+\{\s*\[native \w/,oe=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ne=/[+~]/,ie=new RegExp("\\\\[\\da-fA-F]{1,6}"+R+"?|\\\\([^\\r\\n\\f])","g"),re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,se=ye(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{I.apply(t=V.call(b.childNodes),b.childNodes),t[b.childNodes.length].nodeType}catch(e){I={apply:t.length?function(e,t){D.apply(e,V.call(t))}:function(e,t){for(var o=e.length,n=0;e[o++]=t[n++];);e.length=o-1}}}function ae(e,t,o,n){var i,r,s,a,l,u,c=t&&t.ownerDocument,p=t?t.nodeType:9;if(o=o||[],"string"!=typeof e||!e||1!==p&&9!==p&&11!==p)return o;if(!n&&(k(t),t=t||x,L)){if(11!==p&&(a=oe.exec(e)))if(u=a[1]){if(9===p){if(!(r=t.getElementById(u)))return o;if(r.id===u)return o.push(r),o}else if(c&&(r=c.getElementById(u))&&y(t,r)&&r.id===u)return o.push(r),o}else{if(a[2])return I.apply(o,t.getElementsByTagName(e)),o;if((u=a[3])&&h.getElementsByClassName&&t.getElementsByClassName)return I.apply(o,t.getElementsByClassName(u)),o}if(h.qsa&&!M[e+" "]&&(!v||!v.test(e))&&(1!==p||"object"!==t.nodeName.toLowerCase())){if(u=e,c=t,1===p&&(Y.test(e)||$.test(e))){for((c=ne.test(e)&&fe(t.parentNode)||t)===t&&h.scope||((s=t.getAttribute("id"))?s=s.replace(re,d):t.setAttribute("id",s=C)),i=(l=m(e)).length;i--;)l[i]=(s?"#"+s:":scope")+" "+ve(l[i]);u=l.join(",")}try{return I.apply(o,c.querySelectorAll(u)),o}catch(t){M(e,!0)}finally{s===C&&t.removeAttribute("id")}}}return g(e.replace(U,"$1"),t,o,n)}function le(){var n=[];return function e(t,o){return n.push(t+" ")>_.cacheLength&&delete e[n.shift()],e[t+" "]=o}}function ue(e){return e[C]=!0,e}function ce(e){var t=x.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function pe(e,t){for(var o=e.split("|"),n=o.length;n--;)_.attrHandle[o[n]]=t}function de(e,t){var o=t&&e,n=o&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(n)return n;if(o)for(;o=o.nextSibling;)if(o===t)return-1;return e?1:-1}function he(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&se(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function me(s){return ue(function(r){return r=+r,ue(function(e,t){for(var o,n=s([],e.length,r),i=n.length;i--;)e[o=n[i]]&&(e[o]=!(t[o]=e[o]))})})}function fe(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in h=ae.support={},i=ae.isXML=function(e){var t=e&&e.namespaceURI,e=e&&(e.ownerDocument||e).documentElement;return!X.test(t||e&&e.nodeName||"HTML")},k=ae.setDocument=function(e){var t,e=e?e.ownerDocument||e:b;return e!=x&&9===e.nodeType&&e.documentElement&&(s=(x=e).documentElement,L=!i(x),b!=x&&(t=x.defaultView)&&t.top!==t&&(t.addEventListener?t.addEventListener("unload",n,!1):t.attachEvent&&t.attachEvent("onunload",n)),h.scope=ce(function(e){return s.appendChild(e).appendChild(x.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),h.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),h.getElementsByTagName=ce(function(e){return e.appendChild(x.createComment("")),!e.getElementsByTagName("*").length}),h.getElementsByClassName=te.test(x.getElementsByClassName),h.getById=ce(function(e){return s.appendChild(e).id=C,!x.getElementsByName||!x.getElementsByName(C).length}),h.getById?(_.filter.ID=function(e){var t=e.replace(ie,p);return function(e){return e.getAttribute("id")===t}},_.find.ID=function(e,t){if(void 0!==t.getElementById&&L){e=t.getElementById(e);return e?[e]:[]}}):(_.filter.ID=function(e){var t=e.replace(ie,p);return function(e){e=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}},_.find.ID=function(e,t){if(void 0!==t.getElementById&&L){var o,n,i,r=t.getElementById(e);if(r){if((o=r.getAttributeNode("id"))&&o.value===e)return[r];for(i=t.getElementsByName(e),n=0;r=i[n++];)if((o=r.getAttributeNode("id"))&&o.value===e)return[r]}return[]}}),_.find.TAG=h.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):h.qsa?t.querySelectorAll(e):void 0}:function(e,t){var o,n=[],i=0,r=t.getElementsByTagName(e);if("*"!==e)return r;for(;o=r[i++];)1===o.nodeType&&n.push(o);return n},_.find.CLASS=h.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&L)return t.getElementsByClassName(e)},a=[],v=[],(h.qsa=te.test(x.querySelectorAll))&&(ce(function(e){var t;s.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+R+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+R+"*(?:value|"+B+")"),e.querySelectorAll("[id~="+C+"-]").length||v.push("~="),(t=x.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+R+"*name"+R+"*="+R+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+C+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=x.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+R+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),s.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(h.matchesSelector=te.test(c=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.oMatchesSelector||s.msMatchesSelector))&&ce(function(e){h.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),a.push("!=",H)}),v=v.length&&new RegExp(v.join("|")),a=a.length&&new RegExp(a.join("|")),t=te.test(s.compareDocumentPosition),y=t||te.test(s.contains)?function(e,t){var o=9===e.nodeType?e.documentElement:e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(o.contains?o.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},F=t?function(e,t){return e===t?(u=!0,0):(o=!e.compareDocumentPosition-!t.compareDocumentPosition)||(1&(o=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!h.sortDetached&&t.compareDocumentPosition(e)===o?e==x||e.ownerDocument==b&&y(b,e)?-1:t==x||t.ownerDocument==b&&y(b,t)?1:l?N(l,e)-N(l,t):0:4&o?-1:1);var o}:function(e,t){if(e===t)return u=!0,0;var o,n=0,i=e.parentNode,r=t.parentNode,s=[e],a=[t];if(!i||!r)return e==x?-1:t==x?1:i?-1:r?1:l?N(l,e)-N(l,t):0;if(i===r)return de(e,t);for(o=e;o=o.parentNode;)s.unshift(o);for(o=t;o=o.parentNode;)a.unshift(o);for(;s[n]===a[n];)n++;return n?de(s[n],a[n]):s[n]==b?-1:a[n]==b?1:0}),x},ae.matches=function(e,t){return ae(e,null,null,t)},ae.matchesSelector=function(e,t){if(k(e),h.matchesSelector&&L&&!M[t+" "]&&(!a||!a.test(t))&&(!v||!v.test(t)))try{var o=c.call(e,t);if(o||h.disconnectedMatch||e.document&&11!==e.document.nodeType)return o}catch(e){M(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ie,p),e[3]=(e[3]||e[4]||e[5]||"").replace(ie,p),"~="===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]||ae.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]&&ae.error(e[0]),e},PSEUDO:function(e){var t,o=!e[6]&&e[2];return J.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":o&&Z.test(o)&&(t=m(o,!0))&&(t=o.indexOf(")",o.length-t)-o.length)&&(e[0]=e[0].slice(0,t),e[2]=o.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ie,p).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+R+")"+e+"("+R+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,o,n){return function(e){e=ae.attr(e,t);return null==e?"!="===o:!o||(e+="","="===o?e===n:"!="===o?e!==n:"^="===o?n&&0===e.indexOf(n):"*="===o?n&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function S(e,o,n){return f(o)?L.grep(e,function(e,t){return!!o.call(e,t,e)!==n}):o.nodeType?L.grep(e,function(e){return e===o!==n}):"string"!=typeof o?L.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(L.fn.init=function(e,t,o){if(!e)return this;if(o=o||M,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):f(e)?void 0!==o.ready?o.ready(e):e(L):L.makeArray(e,this);if(!(n="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:T.exec(e))||!n[1]&&t)return(!t||t.jquery?t||o:this.constructor(t)).find(e);if(n[1]){if(t=t instanceof L?t[0]:t,L.merge(this,L.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:x,!0)),E.test(n[1])&&L.isPlainObject(t))for(var n in t)f(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}return(e=x.getElementById(n[2]))&&(this[0]=e,this.length=1),this}).prototype=L.fn;var M=L(x),F=/^(?:parents|prev(?:Until|All))/,P={children:!0,contents:!0,next:!0,prev:!0};function j(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}L.fn.extend({has:function(e){var t=L(e,this),o=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,de=/^$|^module$|\/(?:java|ecma)script/i,p=x.createDocumentFragment().appendChild(x.createElement("div"));(h=x.createElement("input")).setAttribute("type","radio"),h.setAttribute("checked","checked"),h.setAttribute("name","t"),p.appendChild(h),b.checkClone=p.cloneNode(!0).cloneNode(!0).lastChild.checked,p.innerHTML="",b.noCloneChecked=!!p.cloneNode(!0).lastChild.defaultValue,p.innerHTML="",b.option=!!p.lastChild;var he={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function me(e,t){var o=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&A(e,t)?L.merge([e],o):o}function fe(e,t){for(var o=0,n=e.length;o",""]);var ge=/<|&#?\w+;/;function ve(e,t,o,n,i){for(var r,s,a,l,u,c=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Ae(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&L(e).children("tbody")[0]||e}function Ee(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Se(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Te(e,t){var o,n,i,r;if(1===t.nodeType){if(Z.hasData(e)&&(r=Z.get(e).events))for(i in Z.remove(t,"handle events"),r)for(o=0,n=r[i].length;o").attr(o.scriptAttrs||{}).prop({charset:o.scriptCharset,src:o.url}).on("load error",i=function(e){n.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),x.head.appendChild(n[0])},abort:function(){i&&i()}}});var Yt=[],Zt=/(=)\?(?=&|$)|\?\?/;L.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||L.expando+"_"+At.guid++;return this[e]=!0,e}}),L.ajaxPrefilter("json jsonp",function(e,t,o){var n,i,r,s=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(s||"jsonp"===e.dataTypes[0])return n=e.jsonpCallback=f(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(Zt,"$1"+n):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+n),e.converters["script json"]=function(){return r||L.error(n+" was not called"),r[0]},e.dataTypes[0]="json",i=k[n],k[n]=function(){r=arguments},o.always(function(){void 0===i?L(k).removeProp(n):k[n]=i,e[n]&&(e.jsonpCallback=t.jsonpCallback,Yt.push(n)),r&&f(i)&&i(r[0]),r=i=void 0}),"script"}),b.createHTMLDocument=((p=x.implementation.createHTMLDocument("").body).innerHTML="
      ",2===p.childNodes.length),L.parseHTML=function(e,t,o){return"string"!=typeof e?[]:("boolean"==typeof t&&(o=t,t=!1),t||(b.createHTMLDocument?((n=(t=x.implementation.createHTMLDocument("")).createElement("base")).href=x.location.href,t.head.appendChild(n)):t=x),n=!o&&[],(o=E.exec(e))?[t.createElement(o[1])]:(o=ve([e],t,n),n&&n.length&&L(n).remove(),L.merge([],o.childNodes)));var n},L.fn.load=function(e,t,o){var n,i,r,s=this,a=e.indexOf(" ");return-1").append(L.parseHTML(e)).find(n):e)}).always(o&&function(e,t){s.each(function(){o.apply(this,r||[e.responseText,t,e])})}),this},L.expr.pseudos.animated=function(t){return L.grep(L.timers,function(e){return t===e.elem}).length},L.offset={setOffset:function(e,t,o){var n,i,r,s,a=L.css(e,"position"),l=L(e),u={};"static"===a&&(e.style.position="relative"),r=l.offset(),n=L.css(e,"top"),s=L.css(e,"left"),s=("absolute"===a||"fixed"===a)&&-1<(n+s).indexOf("auto")?(i=(a=l.position()).top,a.left):(i=parseFloat(n)||0,parseFloat(s)||0),null!=(t=f(t)?t.call(e,o,L.extend({},r)):t).top&&(u.top=t.top-r.top+i),null!=t.left&&(u.left=t.left-r.left+s),"using"in t?t.using.call(e,u):l.css(u)}},L.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){L.offset.setOffset(this,t,e)});var e,o=this[0];return o?o.getClientRects().length?(e=o.getBoundingClientRect(),o=o.ownerDocument.defaultView,{top:e.top+o.pageYOffset,left:e.left+o.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,o,n=this[0],i={top:0,left:0};if("fixed"===L.css(n,"position"))t=n.getBoundingClientRect();else{for(t=this.offset(),o=n.ownerDocument,e=n.offsetParent||o.documentElement;e&&(e===o.body||e===o.documentElement)&&"static"===L.css(e,"position");)e=e.parentNode;e&&e!==n&&1===e.nodeType&&((i=L(e).offset()).top+=L.css(e,"borderTopWidth",!0),i.left+=L.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-L.css(n,"marginTop",!0),left:t.left-i.left-L.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===L.css(e,"position");)e=e.offsetParent;return e||ne})}}),L.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var r="pageYOffset"===i;L.fn[t]=function(e){return q(this,function(e,t,o){var n;return g(e)?n=e:9===e.nodeType&&(n=e.defaultView),void 0===o?n?n[i]:e[t]:void(n?n.scrollTo(r?n.pageXOffset:o,r?o:n.pageYOffset):e[t]=o)},t,e,arguments.length)}}),L.each(["top","left"],function(e,o){L.cssHooks[o]=Ge(b.pixelPosition,function(e,t){if(t)return t=Ue(e,o),He.test(t)?L(e).position()[o]+"px":t})}),L.each({Height:"height",Width:"width"},function(s,a){L.each({padding:"inner"+s,content:a,"":"outer"+s},function(n,r){L.fn[r]=function(e,t){var o=arguments.length&&(n||"boolean"!=typeof e),i=n||(!0===e||!0===t?"margin":"border");return q(this,function(e,t,o){var n;return g(e)?0===r.indexOf("outer")?e["inner"+s]:e.document.documentElement["client"+s]:9===e.nodeType?(n=e.documentElement,Math.max(e.body["scroll"+s],n["scroll"+s],e.body["offset"+s],n["offset"+s],n["client"+s])):void 0===o?L.css(e,t,i):L.style(e,t,o,i)},a,o?e:void 0,o)}})}),L.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){L.fn[t]=function(e){return this.on(t,e)}}),L.fn.extend({bind:function(e,t,o){return this.on(e,null,t,o)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,o,n){return this.on(t,e,o,n)},undelegate:function(e,t,o){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",o)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),L.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,o){L.fn[o]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,t){t=k(t||this.defaultElement||this)[0],this.element=k(t),this.uuid=o++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=k(),this.hoverable=k(),this.focusable=k(),this.classesElementLookup={},t!==this&&(k.data(t,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===t&&this.destroy()}}),this.document=k(t.style?t.ownerDocument:t.document||t),this.window=k(this.document[0].defaultView||this.document[0].parentWindow)),this.options=k.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:k.noop,_create:k.noop,_init:k.noop,destroy:function(){var o=this;this._destroy(),k.each(this.classesElementLookup,function(e,t){o._removeClass(t,e)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:k.noop,widget:function(){return this.element},option:function(e,t){var o,n,i,r=e;if(0===arguments.length)return k.widget.extend({},this.options);if("string"==typeof e)if(r={},e=(o=e.split(".")).shift(),o.length){for(n=r[e]=k.widget.extend({},this.options[e]),i=0;i
      "),o=t.children()[0];return k("body").append(t),e=o.offsetWidth,t.css("overflow","scroll"),e===(o=o.offsetWidth)&&(o=t[0].clientWidth),t.remove(),n=e-o},getScrollInfo:function(e){var t=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),o=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),t="scroll"===t||"auto"===t&&e.widthx(L(n),L(i))?r.important="horizontal":r.important="vertical",p.using.call(this,e,r)}),s.offset(k.extend(u,{using:e}))})},k.ui.position={fit:{left:function(e,t){var o=t.within,n=o.isWindow?o.scrollLeft:o.offset.left,i=o.width,r=e.left-t.collisionPosition.marginLeft,s=n-r,a=r+t.collisionWidth-i-n;t.collisionWidth>i?0i?0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault(),this._activateItem(e)},"click .ui-menu-item":function(e){var t=k(e.target),o=k(k.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&t.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),t.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&o.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var o=this.active||this._menuItems().first();t||this.focus(e,o)},blur:function(e){this._delay(function(){k.contains(this.element[0],k.ui.safeActiveElement(this.document[0]))||this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e,!0),this.mouseHandled=!1}})},_activateItem:function(e){var t,o;this.previousFilter||e.clientX===this.lastMousePosition.x&&e.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:e.clientX,y:e.clientY},t=k(e.target).closest(".ui-menu-item"),o=k(e.currentTarget),t[0]===o[0]&&(o.is(".ui-state-active")||(this._removeClass(o.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,o))))},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),e.children().each(function(){var e=k(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var t,o,n,i=!0;switch(e.keyCode){case k.ui.keyCode.PAGE_UP:this.previousPage(e);break;case k.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case k.ui.keyCode.HOME:this._move("first","first",e);break;case k.ui.keyCode.END:this._move("last","last",e);break;case k.ui.keyCode.UP:this.previous(e);break;case k.ui.keyCode.DOWN:this.next(e);break;case k.ui.keyCode.LEFT:this.collapse(e);break;case k.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case k.ui.keyCode.ENTER:case k.ui.keyCode.SPACE:this._activate(e);break;case k.ui.keyCode.ESCAPE:this.collapse(e);break;default:t=this.previousFilter||"",n=i=!1,o=96<=e.keyCode&&e.keyCode<=105?(e.keyCode-96).toString():String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),o===t?n=!0:o=t+o,t=this._filterMenuItems(o),(t=n&&-1!==t.index(this.active.next())?this.active.nextAll(".ui-menu-item"):t).length||(o=String.fromCharCode(e.keyCode),t=this._filterMenuItems(o)),t.length?(this.focus(e,t),this.previousFilter=o,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}i&&e.preventDefault()},_activate:function(e){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var e,t,n=this,i=this.options.icons.submenu,o=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),t=o.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=k(this),t=e.prev(),o=k("").data("ui-menu-submenu-caret",!0);n._addClass(o,"ui-menu-icon","ui-icon "+i),t.attr("aria-haspopup","true").prepend(o),e.attr("aria-labelledby",t.attr("id"))}),this._addClass(t,"ui-menu","ui-widget ui-widget-content ui-front"),(e=o.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var e=k(this);n._isDivider(e)&&n._addClass(e,"ui-menu-divider","ui-widget-content")}),o=(t=e.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(t,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),e.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!k.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){var o;"icons"===e&&(o=this.element.find(".ui-menu-icon"),this._removeClass(o,null,this.options.icons.submenu)._addClass(o,null,t.submenu)),this._super(e,t)},_setOptionDisabled:function(e){this._super(e),this.element.attr("aria-disabled",String(e)),this._toggleClass(null,"ui-state-disabled",!!e)},focus:function(e,t){var o;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),o=this.active.children(".ui-menu-item-wrapper"),this._addClass(o,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",o.attr("id")),o=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(o,null,"ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(o=t.children(".ui-menu")).length&&e&&/^mouse/.test(e.type)&&this._startOpening(o),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(e){var t,o,n;this._hasScroll()&&(o=parseFloat(k.css(this.activeMenu[0],"borderTopWidth"))||0,n=parseFloat(k.css(this.activeMenu[0],"paddingTop"))||0,t=e.offset().top-this.activeMenu.offset().top-o-n,o=this.activeMenu.scrollTop(),n=this.activeMenu.height(),e=e.outerHeight(),t<0?this.activeMenu.scrollTop(o+t):n",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var o,n,i,e=this.element[0].nodeName.toLowerCase(),t="textarea"===e,e="input"===e;this.isMultiLine=t||!e&&this._isContentEditable(this.element),this.valueMethod=this.element[t||e?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(e){if(this.element.prop("readOnly"))n=i=o=!0;else{n=i=o=!1;var t=k.ui.keyCode;switch(e.keyCode){case t.PAGE_UP:o=!0,this._move("previousPage",e);break;case t.PAGE_DOWN:o=!0,this._move("nextPage",e);break;case t.UP:o=!0,this._keyEvent("previous",e);break;case t.DOWN:o=!0,this._keyEvent("next",e);break;case t.ENTER:this.menu.active&&(o=!0,e.preventDefault(),this.menu.select(e));break;case t.TAB:this.menu.active&&this.menu.select(e);break;case t.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(e),e.preventDefault());break;default:n=!0,this._searchTimeout(e)}}},keypress:function(e){if(o)return o=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||e.preventDefault());if(!n){var t=k.ui.keyCode;switch(e.keyCode){case t.PAGE_UP:this._move("previousPage",e);break;case t.PAGE_DOWN:this._move("nextPage",e);break;case t.UP:this._keyEvent("previous",e);break;case t.DOWN:this._keyEvent("next",e)}}},input:function(e){if(i)return i=!1,void e.preventDefault();this._searchTimeout(e)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){clearTimeout(this.searching),this.close(e),this._change(e)}}),this._initSource(),this.menu=k("
        ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault()},menufocus:function(e,t){var o;if(this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){k(e.target).trigger(e.originalEvent)});o=t.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:o})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(o.value),(o=t.item.attr("aria-label")||o.value)&&String.prototype.trim.call(o).length&&(this.liveRegion.children().hide(),k("
        ").text(o).appendTo(this.liveRegion))},menuselect:function(e,t){var o=t.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==k.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=o})),!1!==this._trigger("select",e,{item:o})&&this._value(o.value),this.term=this._value(),this.close(e),this.selectedItem=o}}),this.liveRegion=k("
        ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var t=this.menu.element[0];return e.target===this.element[0]||e.target===t||k.contains(t,e.target)},_closeOnClickOutside:function(e){this._isEventTargetInWidget(e)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e=!(e=!(e=e&&(e.jquery||e.nodeType?k(e):this.document.find(e).eq(0)))||!e[0]?this.element.closest(".ui-front, dialog"):e).length?this.document[0].body:e},_initSource:function(){var o,n,i=this;Array.isArray(this.options.source)?(o=this.options.source,this.source=function(e,t){t(k.ui.autocomplete.filter(o,e.term))}):"string"==typeof this.options.source?(n=this.options.source,this.source=function(e,t){i.xhr&&i.xhr.abort(),i.xhr=k.ajax({url:n,data:e,dataType:"json",success:function(e){t(e)},error:function(){t([])}})}):this.source=this.options.source},_searchTimeout:function(n){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),t=this.menu.element.is(":visible"),o=n.altKey||n.ctrlKey||n.metaKey||n.shiftKey;e&&(t||o)||(this.selectedItem=null,this.search(null,n))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length").append(k("
        ").text(t.label)).appendTo(e)},_move:function(e,t){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[e](t);this.search(null,t)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(e,t),t.preventDefault())},_isContentEditable:function(e){if(!e.length)return!1;var t=e.prop("contentEditable");return"inherit"===t?this._isContentEditable(e.parent()):"true"===t}}),k.extend(k.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,t){var o=new RegExp(k.ui.autocomplete.escapeRegex(t),"i");return k.grep(e,function(e){return o.test(e.label||e.value||e)})}}),k.widget("ui.autocomplete",k.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(1").text(e).appendTo(this.liveRegion))}});k.ui.autocomplete}),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.L={})}(this,function(e){"use strict";function l(e){for(var t,o,n=1,i=arguments.length;n=this.min.x&&o.x<=this.max.x&&t.y>=this.min.y&&o.y<=this.max.y},intersects:function(e){e=I(e);var t=this.min,o=this.max,n=e.min,i=e.max,e=i.x>=t.x&&n.x<=o.x,o=i.y>=t.y&&n.y<=o.y;return e&&o},overlaps:function(e){e=I(e);var t=this.min,o=this.max,n=e.min,i=e.max,e=i.x>t.x&&n.xt.y&&n.y=n.lat&&o.lat<=i.lat&&t.lng>=n.lng&&o.lng<=i.lng},intersects:function(e){e=N(e);var t=this._southWest,o=this._northEast,n=e.getSouthWest(),i=e.getNorthEast(),e=i.lat>=t.lat&&n.lat<=o.lat,o=i.lng>=t.lng&&n.lng<=o.lng;return e&&o},overlaps:function(e){e=N(e);var t=this._southWest,o=this._northEast,n=e.getSouthWest(),i=e.getNorthEast(),e=i.lat>t.lat&&n.latt.lng&&n.lng';var t=e.firstChild;return t.style.behavior="url(#default#VML)",t&&"object"==typeof t.adj}catch(e){return!1}}();function Ae(e){return 0<=navigator.userAgent.toLowerCase().indexOf(e)}var ue={ie:J,ielt9:X,edge:Q,webkit:ee,android:te,android23:oe,androidStock:ie,opera:re,chrome:se,gecko:ae,safari:le,phantom:ue,opera12:ce,win:pe,ie3d:de,webkit3d:he,gecko3d:me,any3d:fe,mobile:ge,mobileWebkit:ve,mobileWebkit3d:ye,msPointer:ne,pointer:be,touch:_e,mobileOpera:we,mobileGecko:K,retina:ke,passiveEvents:xe,canvas:Le,svg:Ce,vml:Oe},Ee=ne?"MSPointerDown":"pointerdown",Se=ne?"MSPointerMove":"pointermove",Te=ne?"MSPointerUp":"pointerup",Me=ne?"MSPointerCancel":"pointercancel",Fe={},Pe=!1;function je(e){Fe[e.pointerId]=e}function De(e){Fe[e.pointerId]&&(Fe[e.pointerId]=e)}function Ie(e){delete Fe[e.pointerId]}function Ve(e,t){for(var o in e.touches=[],Fe)e.touches.push(Fe[o]);e.changedTouches=[e],t(e)}var Ne,Be,Re,ze,qe,He=ne?"MSPointerDown":be?"pointerdown":"touchstart",We=ne?"MSPointerUp":be?"pointerup":"touchend",Ue="_leaflet_",Ge=lt(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),$e=lt(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),Ye="webkitTransition"===$e||"OTransition"===$e?$e+"End":"transitionend";function Ze(e){return"string"==typeof e?document.getElementById(e):e}function Ke(e,t){var o=e.style[t]||e.currentStyle&&e.currentStyle[t];return"auto"===(o=(!o||"auto"===o)&&document.defaultView?(e=document.defaultView.getComputedStyle(e,null))?e[t]:null:o)?null:o}function Je(e,t,o){e=document.createElement(e);return e.className=t||"",o&&o.appendChild(e),e}function Xe(e){var t=e.parentNode;t&&t.removeChild(e)}function Qe(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function et(e){var t=e.parentNode;t&&t.lastChild!==e&&t.appendChild(e)}function tt(e){var t=e.parentNode;t&&t.firstChild!==e&&t.insertBefore(e,t.firstChild)}function ot(e,t){if(void 0!==e.classList)return e.classList.contains(t);e=st(e);return 0this.options.maxZoom)?this.setZoom(e):this},panInsideBounds:function(e,t){this._enforcingBounds=!0;var o=this.getCenter(),e=this._limitCenter(o,this._zoom,N(e));return o.equals(e)||this.panTo(e,t),this._enforcingBounds=!1,this},panInside:function(e,t){var o=j((t=t||{}).paddingTopLeft||t.padding||[0,0]),n=j(t.paddingBottomRight||t.padding||[0,0]),i=this.getCenter(),r=this.project(i),s=this.project(e),a=this.getPixelBounds(),l=a.getSize().divideBy(2),i=I([a.min.add(o),a.max.subtract(n)]);return i.contains(s)||(this._enforcingBounds=!0,e=r.subtract(s),a=j(s.x+e.x,s.y+e.y),(s.xi.max.x)&&(a.x=r.x-e.x,0i.max.y)&&(a.y=r.y-e.y,0=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(e,t){for(var o,n=[],i="mouseout"===t||"mouseover"===t,r=e.target||e.srcElement,s=!1;r;){if((o=this._targets[O(r)])&&("click"===t||"preclick"===t)&&!e._simulated&&this._draggableMoved(o)){s=!0;break}if(o&&o.listens(t,!0)){if(i&&!Vt(r,e))break;if(n.push(o),i)break}if(r===this._container)break;r=r.parentNode}return n=!(n.length||s||i)&&Vt(r,e)?[this]:n},_handleDOMEvent:function(e){var t;this._loaded&&!It(e)&&("mousedown"!==(t=e.type)&&"keypress"!==t&&"keyup"!==t&&"keydown"!==t||mt(e.target||e.srcElement),this._fireDOMEvent(e,t))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(e,t,o){if("click"===e.type&&((i=l({},e)).type="preclick",this._fireDOMEvent(i,i.type,o)),!e._stopped&&(o=(o||[]).concat(this._findEventTargets(e,t))).length){var n=o[0];"contextmenu"===t&&n.listens(t,!0)&&St(e);var i,r={originalEvent:e};"keypress"!==e.type&&"keydown"!==e.type&&"keyup"!==e.type&&(i=n.getLatLng&&(!n._radius||n._radius<=10),r.containerPoint=i?this.latLngToContainerPoint(n.getLatLng()):this.mouseEventToContainerPoint(e),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=i?n.getLatLng():this.layerPointToLatLng(r.layerPoint));for(var s=0;sthis.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(t),n=this._getCenterOffset(e)._divideBy(1-1/n);return!(!0!==o.animate&&!this.getSize().contains(n)||(x(function(){this._moveStart(!0,!1)._animateZoom(e,t,!0)},this),0))},_animateZoom:function(e,t,o,n){this._mapPane&&(o&&(this._animatingZoom=!0,this._animateToCenter=e,this._animateToZoom=t,nt(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:e,zoom:t,noUpdate:n}),setTimeout(C(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&it(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),x(function(){this._moveEnd(!0)},this))}});function Rt(e){return new zt(e)}var zt=S.extend({options:{position:"topright"},initialize:function(e){p(this,e)},getPosition:function(){return this.options.position},setPosition:function(e){var t=this._map;return t&&t.removeControl(this),this.options.position=e,t&&t.addControl(this),this},getContainer:function(){return this._container},addTo:function(e){this.remove(),this._map=e;var t=this._container=this.onAdd(e),o=this.getPosition(),e=e._controlCorners[o];return nt(t,"leaflet-control"),-1!==o.indexOf("bottom")?e.insertBefore(t,e.firstChild):e.appendChild(t),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(Xe(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(e){this._map&&e&&0",t=document.createElement("div");return t.innerHTML=e,t.firstChild},_addItem:function(e){var t,o=document.createElement("label"),n=this._map.hasLayer(e.layer);e.overlay?((t=document.createElement("input")).type="checkbox",t.className="leaflet-control-layers-selector",t.defaultChecked=n):t=this._createRadioElement("leaflet-base-layers_"+O(this),n),this._layerControlInputs.push(t),t.layerId=O(e.layer),bt(t,"click",this._onInputClick,this);var i=document.createElement("span");i.innerHTML=" "+e.name;n=document.createElement("div");return o.appendChild(n),n.appendChild(t),n.appendChild(i),(e.overlay?this._overlaysList:this._baseLayersList).appendChild(o),this._checkDisabledLayers(),o},_onInputClick:function(){var e,t,o=this._layerControlInputs,n=[],i=[];this._handlingClick=!0;for(var r=o.length-1;0<=r;r--)e=o[r],t=this._getLayer(e.layerId).layer,e.checked?n.push(t):e.checked||i.push(t);for(r=0;rt.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),Ht=zt.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(e){var t="leaflet-control-zoom",o=Je("div",t+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,t+"-in",o,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,t+"-out",o,this._zoomOut),this._updateDisabled(),e.on("zoomend zoomlevelschange",this._updateDisabled,this),o},onRemove:function(e){e.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(e){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(e.shiftKey?3:1))},_createButton:function(e,t,o,n,i){n=Je("a",o,n);return n.innerHTML=e,n.href="#",n.title=t,n.setAttribute("role","button"),n.setAttribute("aria-label",t),Et(n),bt(n,"click",Tt),bt(n,"click",i,this),bt(n,"click",this._refocusOnMap,this),n},_updateDisabled:function(){var e=this._map,t="leaflet-disabled";it(this._zoomInButton,t),it(this._zoomOutButton,t),!this._disabled&&e._zoom!==e.getMinZoom()||nt(this._zoomOutButton,t),!this._disabled&&e._zoom!==e.getMaxZoom()||nt(this._zoomInButton,t)}});Bt.mergeOptions({zoomControl:!0}),Bt.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Ht,this.addControl(this.zoomControl))});var Wt=zt.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(e){var t="leaflet-control-scale",o=Je("div",t),n=this.options;return this._addScales(n,t+"-line",o),e.on(n.updateWhenIdle?"moveend":"move",this._update,this),e.whenReady(this._update,this),o},onRemove:function(e){e.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(e,t,o){e.metric&&(this._mScale=Je("div",t,o)),e.imperial&&(this._iScale=Je("div",t,o))},_update:function(){var e=this._map,t=e.getSize().y/2,t=e.distance(e.containerPointToLatLng([0,t]),e.containerPointToLatLng([this.options.maxWidth,t]));this._updateScales(t)},_updateScales:function(e){this.options.metric&&e&&this._updateMetric(e),this.options.imperial&&e&&this._updateImperial(e)},_updateMetric:function(e){var t=this._getRoundNum(e);this._updateScale(this._mScale,t<1e3?t+" m":t/1e3+" km",t/e)},_updateImperial:function(e){var t,o=3.2808399*e;5280Leaflet'},initialize:function(e){p(this,e),this._attributions={}},onAdd:function(e){for(var t in(e.attributionControl=this)._container=Je("div","leaflet-control-attribution"),Et(this._container),e._layers)e._layers[t].getAttribution&&this.addAttribution(e._layers[t].getAttribution());return this._update(),this._container},setPrefix:function(e){return this.options.prefix=e,this._update(),this},addAttribution:function(e){return e&&(this._attributions[e]||(this._attributions[e]=0),this._attributions[e]++,this._update()),this},removeAttribution:function(e){return e&&this._attributions[e]&&(this._attributions[e]--,this._update()),this},_update:function(){if(this._map){var e,t=[];for(e in this._attributions)this._attributions[e]&&t.push(e);var o=[];this.options.prefix&&o.push(this.options.prefix),t.length&&o.push(t.join(", ")),this._container.innerHTML=o.join(" | ")}}});Bt.mergeOptions({attributionControl:!0}),Bt.addInitHook(function(){this.options.attributionControl&&(new Ut).addTo(this)}),zt.Layers=qt,zt.Zoom=Ht,zt.Scale=Wt,zt.Attribution=Ut,Rt.layers=function(e,t,o){return new qt(e,t,o)},Rt.zoom=function(e){return new Ht(e)},Rt.scale=function(e){return new Wt(e)},Rt.attribution=function(e){return new Ut(e)};me=S.extend({initialize:function(e){this._map=e},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}});me.addTo=function(e,t){return e.addHandler(t,this),this};var Gt,ve={Events:T},$t=_e?"touchstart mousedown":"mousedown",Yt={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},Zt={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},Kt=M.extend({options:{clickTolerance:3},initialize:function(e,t,o,n){p(this,n),this._element=e,this._dragStartTarget=t||e,this._preventOutline=o},enable:function(){this._enabled||(bt(this._dragStartTarget,$t,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Kt._dragging===this&&this.finishDrag(),wt(this._dragStartTarget,$t,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(e){var t,o;!e._simulated&&this._enabled&&(this._moved=!1,ot(this._element,"leaflet-zoom-anim")||Kt._dragging||e.shiftKey||1!==e.which&&1!==e.button&&!e.touches||((Kt._dragging=this)._preventOutline&&mt(this._element),dt(),Re(),this._moving||(this.fire("down"),t=e.touches?e.touches[0]:e,o=gt(this._element),this._startPoint=new F(t.clientX,t.clientY),this._parentScale=vt(o),bt(document,Zt[e.type],this._onMove,this),bt(document,Yt[e.type],this._onUp,this))))},_onMove:function(e){var t;!e._simulated&&this._enabled&&(e.touches&&1t.max.x&&(o|=2),e.yt.max.y&&(o|=8),o}function oo(e,t,o,n){var i=t.x,r=t.y,s=o.x-i,a=o.y-r,t=s*s+a*a;return 0this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()e.y!=n.y>e.y&&e.x<(n.x-o.x)*(e.y-o.y)/(n.y-o.y)+o.x&&(u=!u);return u||yo.prototype._containsPoint.call(this,e,!0)}}),_o=uo.extend({initialize:function(e,t){p(this,t),this._layers={},e&&this.addData(e)},addData:function(e){var t,o,n,i=f(e)?e:e.features;if(i){for(t=0,o=i.length;ts.x&&(a=n.x+o-s.x+r.x),n.x-a-i.x<0&&(a=n.x-i.x),n.y+t+r.y>s.y&&(l=n.y+t-s.y+r.y),n.y-l-i.y<0&&(l=n.y-i.y),(a||l)&&e.fire("autopanstart").panBy([a,l]))},_onCloseButtonClick:function(e){this._close(),Tt(e)},_getAnchor:function(){return j(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Bt.mergeOptions({closePopupOnClick:!0}),Bt.include({openPopup:function(e,t,o){return e instanceof jo||(e=new jo(o).setContent(e)),t&&e.setLatLng(t),this.hasLayer(e)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=e,this.addLayer(e))},closePopup:function(e){return e&&e!==this._popup||(e=this._popup,this._popup=null),e&&this.removeLayer(e),this}}),ao.include({bindPopup:function(e,t){return e instanceof jo?(p(e,t),(this._popup=e)._source=this):(this._popup&&!t||(this._popup=new jo(t,this)),this._popup.setContent(e)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(e,t){return this._popup&&this._map&&(t=this._popup._prepareOpen(this,e,t),this._map.openPopup(this._popup,t)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(e){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(e)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(e){return this._popup&&this._popup.setContent(e),this},getPopup:function(){return this._popup},_openPopup:function(e){var t=e.layer||e.target;this._popup&&this._map&&(Tt(e),t instanceof fo?this.openPopup(e.layer||e.target,e.latlng):this._map.hasLayer(this._popup)&&this._popup._source===t?this.closePopup():this.openPopup(t,e.latlng))},_movePopup:function(e){this._popup.setLatLng(e.latlng)},_onKeyPress:function(e){13===e.originalEvent.keyCode&&this._openPopup(e)}});var Do=Po.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(e){Po.prototype.onAdd.call(this,e),this.setOpacity(this.options.opacity),e.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(e){Po.prototype.onRemove.call(this,e),e.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var e=Po.prototype.getEvents.call(this);return _e&&!this.options.permanent&&(e.preclick=this._close),e},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var e="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=Je("div",e)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(e){var t,o=this._map,n=this._container,i=o.latLngToContainerPoint(o.getCenter()),r=o.layerPointToContainerPoint(e),s=this.options.direction,a=n.offsetWidth,l=n.offsetHeight,u=j(this.options.offset),o=this._getAnchor(),l="top"===s?(t=a/2,l):"bottom"===s?(t=a/2,0):(t="center"===s?a/2:"right"===s?0:"left"===s?a:r.xthis.options.maxZoom||nthis.options.maxZoom||void 0!==this.options.minZoom&&io.max.x)||!t.wrapLat&&(e.yo.max.y))return!1}if(!this.options.bounds)return!0;e=this._tileCoordsToBounds(e);return N(this.options.bounds).overlaps(e)},_keyToBounds:function(e){return this._tileCoordsToBounds(this._keyToTileCoords(e))},_tileCoordsToNwSe:function(e){var t=this._map,o=this.getTileSize(),n=e.scaleBy(o),o=n.add(o);return[t.unproject(n,e.z),t.unproject(o,e.z)]},_tileCoordsToBounds:function(e){e=this._tileCoordsToNwSe(e),e=new V(e[0],e[1]);return e=!this.options.noWrap?this._map.wrapLatLngBounds(e):e},_tileCoordsToKey:function(e){return e.x+":"+e.y+":"+e.z},_keyToTileCoords:function(e){var t=e.split(":"),e=new F(+t[0],+t[1]);return e.z=+t[2],e},_removeTile:function(e){var t=this._tiles[e];t&&(Xe(t.el),delete this._tiles[e],this.fire("tileunload",{tile:t.el,coords:this._keyToTileCoords(e)}))},_initTile:function(e){nt(e,"leaflet-tile");var t=this.getTileSize();e.style.width=t.x+"px",e.style.height=t.y+"px",e.onselectstart=a,e.onmousemove=a,X&&this.options.opacity<1&&at(e,this.options.opacity),te&&!oe&&(e.style.WebkitBackfaceVisibility="hidden")},_addTile:function(e,t){var o=this._getTilePos(e),n=this._tileCoordsToKey(e),i=this.createTile(this._wrapCoords(e),C(this._tileReady,this,e));this._initTile(i),this.createTile.length<2&&x(C(this._tileReady,this,e,null,i)),ct(i,o),this._tiles[n]={el:i,coords:e,current:!0},t.appendChild(i),this.fire("tileloadstart",{tile:i,coords:e})},_tileReady:function(e,t,o){t&&this.fire("tileerror",{error:t,tile:o,coords:e});var n=this._tileCoordsToKey(e);(o=this._tiles[n])&&(o.loaded=+new Date,this._map._fadeAnimated?(at(o.el,0),A(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(o.active=!0,this._pruneTiles()),t||(nt(o.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:o.el,coords:e})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),X||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(C(this._pruneTiles,this),250)))},_getTilePos:function(e){return e.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(e){var t=new F(this._wrapX?i(e.x,this._wrapX):e.x,this._wrapY?i(e.y,this._wrapY):e.y);return t.z=e.z,t},_pxBoundsToTileRange:function(e){var t=this.getTileSize();return new D(e.min.unscaleBy(t).floor(),e.max.unscaleBy(t).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var e in this._tiles)if(!this._tiles[e].loaded)return!1;return!0}}),No=Vo.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(e,t){this._url=e,(t=p(this,t)).detectRetina&&ke&&0')}}catch(e){return function(e){return document.createElement("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),ne={_initContainer:function(){this._container=Je("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(zo.prototype._update.call(this),this.fire("update"))},_initPath:function(e){var t=e._container=Wo("shape");nt(t,"leaflet-vml-shape "+(this.options.className||"")),t.coordsize="1 1",e._path=Wo("path"),t.appendChild(e._path),this._updateStyle(e),this._layers[O(e)]=e},_addPath:function(e){var t=e._container;this._container.appendChild(t),e.options.interactive&&e.addInteractiveTarget(t)},_removePath:function(e){var t=e._container;Xe(t),e.removeInteractiveTarget(t),delete this._layers[O(e)]},_updateStyle:function(e){var t=e._stroke,o=e._fill,n=e.options,i=e._container;i.stroked=!!n.stroke,i.filled=!!n.fill,n.stroke?(t=t||(e._stroke=Wo("stroke")),i.appendChild(t),t.weight=n.weight+"px",t.color=n.color,t.opacity=n.opacity,n.dashArray?t.dashStyle=f(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):t.dashStyle="",t.endcap=n.lineCap.replace("butt","flat"),t.joinstyle=n.lineJoin):t&&(i.removeChild(t),e._stroke=null),n.fill?(o=o||(e._fill=Wo("fill")),i.appendChild(o),o.color=n.fillColor||n.color,o.opacity=n.fillOpacity):o&&(i.removeChild(o),e._fill=null)},_updateCircle:function(e){var t=e._point.round(),o=Math.round(e._radius),n=Math.round(e._radiusY||o);this._setPath(e,e._empty()?"M0 0":"AL "+t.x+","+t.y+" "+o+","+n+" 0,23592600")},_setPath:function(e,t){e._path.v=t},_bringToFront:function(e){et(e._container)},_bringToBack:function(e){tt(e._container)}},Uo=Oe?Wo:Y,Go=zo.extend({getEvents:function(){var e=zo.prototype.getEvents.call(this);return e.zoomstart=this._onZoomStart,e},_initContainer:function(){this._container=Uo("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Uo("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){Xe(this._container),wt(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){var e,t,o;this._map._animatingZoom&&this._bounds||(zo.prototype._update.call(this),t=(e=this._bounds).getSize(),o=this._container,this._svgSize&&this._svgSize.equals(t)||(this._svgSize=t,o.setAttribute("width",t.x),o.setAttribute("height",t.y)),ct(o,e.min),o.setAttribute("viewBox",[e.min.x,e.min.y,t.x,t.y].join(" ")),this.fire("update"))},_initPath:function(e){var t=e._path=Uo("path");e.options.className&&nt(t,e.options.className),e.options.interactive&&nt(t,"leaflet-interactive"),this._updateStyle(e),this._layers[O(e)]=e},_addPath:function(e){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(e._path),e.addInteractiveTarget(e._path)},_removePath:function(e){Xe(e._path),e.removeInteractiveTarget(e._path),delete this._layers[O(e)]},_updatePath:function(e){e._project(),e._update()},_updateStyle:function(e){var t=e._path,e=e.options;t&&(e.stroke?(t.setAttribute("stroke",e.color),t.setAttribute("stroke-opacity",e.opacity),t.setAttribute("stroke-width",e.weight),t.setAttribute("stroke-linecap",e.lineCap),t.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?t.setAttribute("stroke-dasharray",e.dashArray):t.removeAttribute("stroke-dasharray"),e.dashOffset?t.setAttribute("stroke-dashoffset",e.dashOffset):t.removeAttribute("stroke-dashoffset")):t.setAttribute("stroke","none"),e.fill?(t.setAttribute("fill",e.fillColor||e.color),t.setAttribute("fill-opacity",e.fillOpacity),t.setAttribute("fill-rule",e.fillRule||"evenodd")):t.setAttribute("fill","none"))},_updatePoly:function(e,t){this._setPath(e,Z(e._parts,t))},_updateCircle:function(e){var t=e._point,o=Math.max(Math.round(e._radius),1),n="a"+o+","+(Math.max(Math.round(e._radiusY),1)||o)+" 0 1,0 ",o=e._empty()?"M0 0":"M"+(t.x-o)+","+t.y+n+2*o+",0 "+n+2*-o+",0 ";this._setPath(e,o)},_setPath:function(e,t){e._path.setAttribute("d",t)},_bringToFront:function(e){et(e._path)},_bringToBack:function(e){tt(e._path)}});function $o(e){return Ce||Oe?new Go(e):null}Oe&&Go.include(ne),Bt.include({getRenderer:function(e){e=(e=e.options.renderer||this._getPaneRenderer(e.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(e){if("overlayPane"===e||void 0===e)return!1;var t=this._paneRenderers[e];return void 0===t&&(t=this._createRenderer({pane:e}),this._paneRenderers[e]=t),t},_createRenderer:function(e){return this.options.preferCanvas&&Ho(e)||$o(e)}});var Yo=bo.extend({initialize:function(e,t){bo.prototype.initialize.call(this,this._boundsToLatLngs(e),t)},setBounds:function(e){return this.setLatLngs(this._boundsToLatLngs(e))},_boundsToLatLngs:function(e){return[(e=N(e)).getSouthWest(),e.getNorthWest(),e.getNorthEast(),e.getSouthEast()]}});Go.create=Uo,Go.pointsToPath=Z,_o.geometryToLayer=wo,_o.coordsToLatLng=xo,_o.coordsToLatLngs=Lo,_o.latLngToCoords=Co,_o.latLngsToCoords=Oo,_o.getFeature=Ao,_o.asFeature=Eo,Bt.mergeOptions({boxZoom:!0});T=me.extend({initialize:function(e){this._map=e,this._container=e._container,this._pane=e._panes.overlayPane,this._resetStateTimeout=0,e.on("unload",this._destroy,this)},addHooks:function(){bt(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){wt(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){Xe(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(e){if(!e.shiftKey||1!==e.which&&1!==e.button)return!1;this._clearDeferredResetState(),this._resetState(),Re(),dt(),this._startPoint=this._map.mouseEventToContainerPoint(e),bt(document,{contextmenu:Tt,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(e){this._moved||(this._moved=!0,this._box=Je("div","leaflet-zoom-box",this._container),nt(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(e);var t=new D(this._point,this._startPoint),e=t.getSize();ct(this._box,t.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(Xe(this._box),it(this._container,"leaflet-crosshair")),yt(),ht(),wt(document,{contextmenu:Tt,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(e){1!==e.which&&1!==e.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(C(this._resetState,this),0),e=new V(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})))},_onKeyDown:function(e){27===e.keyCode&&this._finish()}});Bt.addInitHook("addHandler","boxZoom",T),Bt.mergeOptions({doubleClickZoom:!0});G=me.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(e){var t=this._map,o=t.getZoom(),n=t.options.zoomDelta,n=e.originalEvent.shiftKey?o-n:o+n;"center"===t.options.doubleClickZoom?t.setZoom(n):t.setZoomAround(e.containerPoint,n)}});Bt.addInitHook("addHandler","doubleClickZoom",G),Bt.mergeOptions({dragging:!0,inertia:!oe,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});$=me.extend({addHooks:function(){var e;this._draggable||(e=this._map,this._draggable=new Kt(e._mapPane,e._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),e.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),e.on("zoomend",this._onZoomEnd,this),e.whenReady(this._onZoomEnd,this))),nt(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){it(this._map._container,"leaflet-grab"),it(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var e,t=this._map;t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(e=N(this._map.options.maxBounds),this._offsetLimit=I(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(e){var t,o;this._map.options.inertia&&(t=this._lastTime=+new Date,o=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(o),this._times.push(t),this._prunePositions(t)),this._map.fire("move",e).fire("drag",e)},_prunePositions:function(e){for(;1t.max.x&&(e.x=this._viscousLimit(e.x,t.max.x)),e.y>t.max.y&&(e.y=this._viscousLimit(e.y,t.max.y)),this._draggable._newPos=this._draggable._startPos.add(e))},_onPreDragWrap:function(){var e=this._worldWidth,t=Math.round(e/2),o=this._initialWorldOffset,n=this._draggable._newPos.x,i=(n-t+o)%e+t-o,t=(n+t+o)%e-t-o,t=Math.abs(i+o)t.getMaxZoom()&&1=o;)t=t.__parent;return this._currentShownBounds.contains(t.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,t):this._animationAddLayerNonAnimated(e,t)),this},getClusters:function(){var t=[];return this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&t.push(e)}),t},removeLayer:function(e){return e instanceof L.LayerGroup?this.removeLayers([e]):(e.getLatLng?this._map?e.__parent&&(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this.fire("layerremove",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),e.off(this._childMarkerEventHandlers,this),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow())):(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push({layer:e,latlng:e._latlng}),this.fire("layerremove",{layer:e})):(this._nonPointGroup.removeLayer(e),this.fire("layerremove",{layer:e})),this)},addLayers:function(o,n){if(!L.Util.isArray(o))return this.addLayer(o);var i,r=this._featureGroup,s=this._nonPointGroup,a=this.options.chunkedLoading,l=this.options.chunkInterval,u=this.options.chunkProgress,c=o.length,p=0,d=!0;if(this._map){var h=(new Date).getTime(),m=L.bind(function(){var e=(new Date).getTime();for(this._map&&this._unspiderfy&&this._unspiderfy();p"+t+"
        ",className:"marker-cluster"+e,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,o=this.options.showCoverageOnHover,n=this.options.zoomToBoundsOnClick,i=this.options.spiderfyOnEveryZoom;(t||n||i)&&this.on("clusterclick clusterkeypress",this._zoomOrSpiderfy,this),o&&(this.on("clustermouseover",this._showCoverage,this),this.on("clustermouseout",this._hideCoverage,this),e.on("zoomend",this._hideCoverage,this))},_zoomOrSpiderfy:function(e){var t=e.layer,o=t;if("clusterkeypress"!==e.type||!e.originalEvent||13===e.originalEvent.keyCode){for(;1===o._childClusters.length;)o=o._childClusters[0];o._zoom===this._maxZoom&&o._childCount===t._childCount&&this.options.spiderfyOnMaxZoom?t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),this.options.spiderfyOnEveryZoom&&t.spiderfy(),e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus()}},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),2a._zoom;c--)u=new this._markerCluster(this,c,u),o[c].addObject(u,this._map.project(s.getLatLng(),c));return a._addChild(u),void this._removeFromGridUnclustered(s,t)}n[t].addObject(e,r)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})},_enqueue:function(e){this._queue.push(e),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var e=0;ee?(this._animationStart(),this._animationZoomOut(this._zoom,e)):this._moveEnd()},restoreUnclusters:function(e){e=e||!1;for(var t=this._unclusters.length-1;0<=t;t--)this._unclusters[t].restoreCluster(!e);this._unclusters=[]},checkForUnclestering:function(t){t=t||this._map.getBounds();var o,n=this._map.getZoom(),i=this;this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&!e._isUnclustered&&e._zoom===n&&t.contains(e._latlng)&&e.uncluster()&&0<=(o=i._clustersWaitingToBeShown.indexOf(e))&&i._clustersWaitingToBeShown.splice(o,1)});for(var e=this._clustersWaitingToBeShown.length-1;0<=e;e--)this._clustersWaitingToBeShown[e].clusterShow();this._clustersWaitingToBeShown=[]},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return void 0!==t&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){t===e?this._featureGroup.addLayer(e):2===t._childCount?(t._addToMap(),e=t.getAllChildMarkers(),this._featureGroup.removeLayer(e[0]),this._featureGroup.removeLayer(e[1])):t._updateIcon()},_extractNonGroupLayers:function(e,t){var o,n=e.getLayers(),i=0;for(t=t||[];io)&&(o=(s=d).lat),(!1===n||d.lati)&&(i=(l=d).lng),(!1===r||d.lng=this._circleSpiralSwitchover?this._generatePointsSpiral(e.length,t):(t.y+=10,this._generatePointsCircle(e.length,t)),this._animationSpiderfy(e,t))},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var o,n,i=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e)/this._2PI,r=this._2PI/e,s=[],i=Math.max(i,35);for(s.length=e,o=0;o>>0,n=0;nVe(e)?(r=e+1,i-Ve(e)):(r=e,i);return{year:r,dayOfYear:i}}function He(e,t,o){var n,i,r=ze(e.year(),t,o),r=Math.floor((e.dayOfYear()-r-1)/7)+1;return r<1?n=r+We(i=e.year()-1,t,o):r>We(e.year(),t,o)?(n=r-We(e.year(),t,o),i=e.year()+1):(i=e.year(),n=r),{week:n,year:i}}function We(e,t,o){var n=ze(e,t,o),o=ze(e+1,t,o);return(Ve(e)-n+o)/7}j("w",["ww",2],"wo","week"),j("W",["WW",2],"Wo","isoWeek"),N("week","w"),N("isoWeek","W"),q("week",5),q("isoWeek",5),pe("w",ee),pe("ww",ee,K),pe("W",ee),pe("WW",ee,K),ve(["w","ww","W","WW"],function(e,t,o,n){t[n.substr(0,1)]=U(e)});function Ue(e,t){return e.slice(t,7).concat(e.slice(0,t))}j("d",0,"do","day"),j("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),j("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),j("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),j("e",0,0,"weekday"),j("E",0,0,"isoWeekday"),N("day","d"),N("weekday","e"),N("isoWeekday","E"),q("day",11),q("weekday",11),q("isoWeekday",11),pe("d",ee),pe("e",ee),pe("E",ee),pe("dd",function(e,t){return t.weekdaysMinRegex(e)}),pe("ddd",function(e,t){return t.weekdaysShortRegex(e)}),pe("dddd",function(e,t){return t.weekdaysRegex(e)}),ve(["dd","ddd","dddd"],function(e,t,o,n){n=o._locale.weekdaysParse(e,n,o._strict);null!=n?t.d=n:m(o).invalidWeekday=e}),ve(["d","e","E"],function(e,t,o,n){t[n]=U(e)});var Ge="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),$e="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ye="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ze=ce,Ke=ce,Je=ce;function Xe(){function e(e,t){return t.length-e.length}for(var t,o,n,i=[],r=[],s=[],a=[],l=0;l<7;l++)n=h([2e3,1]).day(l),t=he(this.weekdaysMin(n,"")),o=he(this.weekdaysShort(n,"")),n=he(this.weekdays(n,"")),i.push(t),r.push(o),s.push(n),a.push(t),a.push(o),a.push(n);i.sort(e),r.sort(e),s.sort(e),a.sort(e),this._weekdaysRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Qe(){return this.hours()%12||12}function et(e,t){j(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function tt(e,t){return t._meridiemParse}j("H",["HH",2],0,"hour"),j("h",["hh",2],0,Qe),j("k",["kk",2],0,function(){return this.hours()||24}),j("hmm",0,0,function(){return""+Qe.apply(this)+S(this.minutes(),2)}),j("hmmss",0,0,function(){return""+Qe.apply(this)+S(this.minutes(),2)+S(this.seconds(),2)}),j("Hmm",0,0,function(){return""+this.hours()+S(this.minutes(),2)}),j("Hmmss",0,0,function(){return""+this.hours()+S(this.minutes(),2)+S(this.seconds(),2)}),et("a",!0),et("A",!1),N("hour","h"),q("hour",13),pe("a",tt),pe("A",tt),pe("H",ee),pe("h",ee),pe("k",ee),pe("HH",ee,K),pe("hh",ee,K),pe("kk",ee,K),pe("hmm",te),pe("hmmss",oe),pe("Hmm",te),pe("Hmmss",oe),ge(["H","HH"],ke),ge(["k","kk"],function(e,t,o){e=U(e);t[ke]=24===e?0:e}),ge(["a","A"],function(e,t,o){o._isPm=o._locale.isPM(e),o._meridiem=e}),ge(["h","hh"],function(e,t,o){t[ke]=U(e),m(o).bigHour=!0}),ge("hmm",function(e,t,o){var n=e.length-2;t[ke]=U(e.substr(0,n)),t[xe]=U(e.substr(n)),m(o).bigHour=!0}),ge("hmmss",function(e,t,o){var n=e.length-4,i=e.length-2;t[ke]=U(e.substr(0,n)),t[xe]=U(e.substr(n,2)),t[Le]=U(e.substr(i)),m(o).bigHour=!0}),ge("Hmm",function(e,t,o){var n=e.length-2;t[ke]=U(e.substr(0,n)),t[xe]=U(e.substr(n))}),ge("Hmmss",function(e,t,o){var n=e.length-4,i=e.length-2;t[ke]=U(e.substr(0,n)),t[xe]=U(e.substr(n,2)),t[Le]=U(e.substr(i))});var ot=G("Hours",!0);var nt,it={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Se,monthsShort:Te,week:{dow:0,doy:6},weekdays:Ge,weekdaysMin:Ye,weekdaysShort:$e,meridiemParse:/[ap]\.?m?\.?/i},rt={},st={};function at(e){return e&&e.toLowerCase().replace("_","-")}function lt(e){for(var t,o,n,i,r=0;r=t&&function(e,t){for(var o=Math.min(e.length,t.length),n=0;n=t-1)break;t--}r++}return nt}function ut(t){var e;if(void 0===rt[t]&&"undefined"!=typeof module&&module&&module.exports)try{e=nt._abbr,require("./locale/"+t),ct(e)}catch(e){rt[t]=null}return rt[t]}function ct(e,t){return e&&((t=r(t)?dt(e):pt(e,t))?nt=t:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),nt._abbr}function pt(e,t){if(null===t)return delete rt[e],null;var o,n=it;if(t.abbr=e,null!=rt[e])L("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=rt[e]._config;else if(null!=t.parentLocale)if(null!=rt[t.parentLocale])n=rt[t.parentLocale]._config;else{if(null==(o=ut(t.parentLocale)))return st[t.parentLocale]||(st[t.parentLocale]=[]),st[t.parentLocale].push({name:e,config:t}),null;n=o._config}return rt[e]=new A(O(n,t)),st[e]&&st[e].forEach(function(e){pt(e.name,e.config)}),ct(e),rt[e]}function dt(e){var t;if(!(e=e&&e._locale&&e._locale._abbr?e._locale._abbr:e))return nt;if(!s(e)){if(t=ut(e))return t;e=[e]}return lt(e)}function ht(e){var t=e._a;return t&&-2===m(e).overflow&&(t=t[_e]<0||11Ee(t[be],t[_e])?we:t[ke]<0||24We(o,r,s)?m(e)._overflowWeeks=!0:null!=a?m(e)._overflowWeekday=!0:(s=qe(o,n,i,r,s),e._a[be]=s.year,e._dayOfYear=s.dayOfYear)}(e),null!=e._dayOfYear&&(n=Ct(e._a[be],o[be]),(e._dayOfYear>Ve(n)||0===e._dayOfYear)&&(m(e)._overflowDayOfYear=!0),n=Re(n,0,e._dayOfYear),e._a[_e]=n.getUTCMonth(),e._a[we]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=o[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ke]&&0===e._a[xe]&&0===e._a[Le]&&0===e._a[Ce]&&(e._nextDay=!0,e._a[ke]=0),e._d=(e._useUTC?Re:Be).apply(null,s),n=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ke]=24),e._w&&void 0!==e._w.d&&e._w.d!==n&&(m(e).weekdayMismatch=!0)}}function At(e){if(e._f!==p.ISO_8601)if(e._f!==p.RFC_2822){e._a=[],m(e).empty=!0;for(var t,o,n,i,r,s=""+e._i,a=s.length,l=0,u=I(e._f,e._locale).match(T)||[],c=0;ce.valueOf():e.valueOf()"}),ie.toJSON=function(){return this.isValid()?this.toISOString():null},ie.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},ie.unix=function(){return Math.floor(this.valueOf()/1e3)},ie.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},ie.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},ie.eraName=function(){for(var e,t=this.localeData().eras(),o=0,n=t.length;othis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ie.isLocal=function(){return!!this.isValid()&&!this._isUTC},ie.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ie.isUtc=Ht,ie.isUTC=Ht,ie.zoneAbbr=function(){return this._isUTC?"UTC":""},ie.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ie.dates=o("dates accessor is deprecated. Use date instead.",oe),ie.months=o("months accessor is deprecated. Use month instead",De),ie.years=o("years accessor is deprecated. Use year instead",Ne),ie.zone=o("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?(this.utcOffset(e="string"!=typeof e?-e:e,t),this):-this.utcOffset()}),ie.isDSTShifted=o("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!r(this._isDSTShifted))return this._isDSTShifted;var e,t={};return b(t,this),(t=Et(t))._a?(e=(t._isUTC?h:Tt)(t._a),this._isDSTShifted=this.isValid()&&0=this.end.valueOf()}},{key:"add",value:function(e){return this.overlaps(e,1{var o={98:function(e,t){var x,o="undefined"!=typeof self?self:this,n=(i.prototype=o,new i);function i(){this.fetch=!1,this.DOMException=o.DOMException}x=n,function(a){var t,o,n="URLSearchParams"in x,i="Symbol"in x&&"iterator"in Symbol,l="FileReader"in x&&"Blob"in x&&function(){try{return new Blob,!0}catch(e){return!1}}(),r="FormData"in x,s="ArrayBuffer"in x;function u(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function c(e){return e="string"!=typeof e?String(e):e}function e(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return i&&(e[Symbol.iterator]=function(){return e}),e}function p(t){this.map={},t instanceof p?t.forEach(function(e,t){this.append(t,e)},this):Array.isArray(t)?t.forEach(function(e){this.append(e[0],e[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function d(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function h(o){return new Promise(function(e,t){o.onload=function(){e(o.result)},o.onerror=function(){t(o.error)}})}function m(e){var t=new FileReader,o=h(t);return t.readAsArrayBuffer(e),o}function f(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function g(){return this.bodyUsed=!1,this._initBody=function(e){var t;(this._bodyInit=e)?"string"==typeof e?this._bodyText=e:l&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:r&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:n&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():s&&l&&(t=e)&&DataView.prototype.isPrototypeOf(t)?(this._bodyArrayBuffer=f(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(e)||o(e))?this._bodyArrayBuffer=f(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},l&&(this.blob=function(){var e=d(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?d(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(m)}),this.text=function(){var e,t,o=d(this);if(o)return o;if(this._bodyBlob)return e=this._bodyBlob,o=h(t=new FileReader),t.readAsText(e),o;if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),o=new Array(t.length),n=0;n{function t(e){e=new Error("Cannot find module '"+e+"'");throw e.code="MODULE_NOT_FOUND",e}t.keys=()=>[],(t.resolve=t).id=875,e.exports=t}},n={};function xo(e){var t=n[e];if(void 0!==t)return t.exports;t=n[e]={exports:{}};return o[e].call(t.exports,t,t.exports,xo),t.exports}xo.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return xo.d(t,{a:t}),t},xo.d=(e,t)=>{for(var o in t)xo.o(t,o)&&!xo.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},xo.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";var i={useSsl:!1,useJsonp:!1},t=function(){return(t=Object.assign||function(e){for(var t,o=1,n=arguments.length;o]/g)||[]).length<=0||0this.o.endDate?this.viewDate=new Date(this.o.endDate):this.viewDate=this.o.defaultViewDate),t?(this.setValue(),this.element.change()):this.dates.length&&String(e)!==String(this.dates)&&t&&(this._trigger("changeDate"),this.element.change()),!this.dates.length&&e.length&&(this._trigger("clearDate"),this.element.change()),this.fill(),this},fillDow:function(){if(this.o.showWeekDays){var e=this.o.weekStart,t="";for(this.o.calendarWeeks&&(t+=' ');e";t+="",this.picker.find(".datepicker-days thead").append(t)}},fillMonths:function(){for(var e=this._utc_to_local(this.viewDate),t="",o=0;o<12;o++)t+=''+O[this.o.language].monthsShort[o]+"";this.picker.find(".datepicker-months td").html(t)},setRange:function(e){e&&e.length?this.range=w.map(e,function(e){return e.valueOf()}):delete this.range,this.fill()},getClassNames:function(e){var t=[],o=this.viewDate.getUTCFullYear(),n=this.viewDate.getUTCMonth(),i=L();return e.getUTCFullYear()o||e.getUTCFullYear()===o&&e.getUTCMonth()>n)&&t.push("new"),this.focusDate&&e.valueOf()===this.focusDate.valueOf()&&t.push("focused"),this.o.todayHighlight&&r(e,i)&&t.push("today"),-1!==this.dates.contains(e)&&t.push("active"),this.dateWithinRange(e)||t.push("disabled"),this.dateIsDisabled(e)&&t.push("disabled","disabled-date"),-1!==w.inArray(e.getUTCDay(),this.o.daysOfWeekHighlighted)&&t.push("highlighted"),this.range&&(e>this.range[0]&&e"+g+"";e.find(".datepicker-switch").text(d+"-"+h),e.find("td").html(c)},fill:function(){var e,t=new Date(this.viewDate),o=t.getUTCFullYear(),n=t.getUTCMonth(),i=this.o.startDate!==-1/0?this.o.startDate.getUTCFullYear():-1/0,r=this.o.startDate!==-1/0?this.o.startDate.getUTCMonth():-1/0,s=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,a=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,l=O[this.o.language].today||O.en.today||"",u=O[this.o.language].clear||O.en.clear||"",c=O[this.o.language].titleFormat||O.en.titleFormat,p=L(),p=(!0===this.o.todayBtn||"linked"===this.o.todayBtn)&&p>=this.o.startDate&&p<=this.o.endDate&&!this.weekOfDateIsDisabled(p);if(!isNaN(o)&&!isNaN(n)){this.picker.find(".datepicker-days .datepicker-switch").text(A.formatDate(t,c,this.o.language)),this.picker.find("tfoot .today").text(l).css("display",p?"table-cell":"none"),this.picker.find("tfoot .clear").text(u).css("display",!0===this.o.clearBtn?"table-cell":"none"),this.picker.find("thead .datepicker-title").text(this.o.title).css("display","string"==typeof this.o.title&&""!==this.o.title?"table-cell":"none"),this.updateNavArrows(),this.fillMonths();var d=x(o,n,0),n=d.getUTCDate();d.setUTCDate(n-(d.getUTCDay()-this.o.weekStart+7)%7);var h=new Date(d);d.getUTCFullYear()<100&&h.setUTCFullYear(d.getUTCFullYear()),h.setUTCDate(h.getUTCDate()+42);for(var m,f,g,h=h.valueOf(),v=[];d.valueOf()"),this.o.calendarWeeks&&(m=new Date(+d+(this.o.weekStart-g-7)%7*864e5),y=new Date(Number(m)+(11-m.getUTCDay())%7*864e5),f=new Date(Number(f=x(y.getUTCFullYear(),0,1))+(11-f.getUTCDay())%7*864e5),v.push(''+((y-f)/864e5/7+1)+""))),(m=this.getClassNames(d)).push("day");var y=d.getUTCDate();this.o.beforeShowDay!==w.noop&&((f=this.o.beforeShowDay(this._utc_to_local(d)))===k?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),!1===f.enabled&&m.push("disabled"),f.classes&&(m=m.concat(f.classes.split(/\s+/))),f.tooltip&&(e=f.tooltip),f.content&&(y=f.content)),m=w.isFunction(w.uniqueSort)?w.uniqueSort(m):w.unique(m),v.push(''+y+""),e=null,g===this.o.weekEnd&&v.push(""),d.setUTCDate(d.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").html(v.join(""));var b,n=O[this.o.language].monthsTitle||O.en.monthsTitle||"Months",_=this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode<2?n:o).end().find("tbody span").removeClass("active");w.each(this.dates,function(e,t){t.getUTCFullYear()===o&&_.eq(t.getUTCMonth()).addClass("active")}),(oa;break;case 0:e=n<=r&&i<=s,t=a<=n&&l<=i}this.picker.find(".prev").toggleClass("disabled",e),this.picker.find(".next").toggleClass("disabled",t)}},click:function(e){var t,o;e.preventDefault(),e.stopPropagation(),(e=w(e.target)).hasClass("datepicker-switch")&&this.viewMode!==this.o.maxViewMode&&this.setViewMode(this.viewMode+1),e.hasClass("today")&&!e.hasClass("day")&&(this.setViewMode(0),this._setDate(L(),"linked"===this.o.todayBtn?null:"view")),e.hasClass("clear")&&this.clearDates(),e.hasClass("disabled")||(e.hasClass("month")||e.hasClass("year")||e.hasClass("decade")||e.hasClass("century"))&&(this.viewDate.setUTCDate(1),1===this.viewMode?(o=e.parent().find("span").index(e),t=this.viewDate.getUTCFullYear(),this.viewDate.setUTCMonth(o)):(o=0,t=Number(e.text()),this.viewDate.setUTCFullYear(t)),this._trigger(A.viewModes[this.viewMode-1].e,this.viewDate),this.viewMode===this.o.minViewMode?this._setDate(x(t,o,1)):(this.setViewMode(this.viewMode-1),this.fill())),this.picker.is(":visible")&&this._focused_from&&this._focused_from.focus(),delete this._focused_from},dayCellClick:function(e){e=w(e.currentTarget).data("date"),e=new Date(e);this.o.updateViewDate&&(e.getUTCFullYear()!==this.viewDate.getUTCFullYear()&&this._trigger("changeYear",this.viewDate),e.getUTCMonth()!==this.viewDate.getUTCMonth()&&this._trigger("changeMonth",this.viewDate)),this._setDate(e)},navArrowsClick:function(e){e=w(e.currentTarget).hasClass("prev")?-1:1;0!==this.viewMode&&(e*=12*A.viewModes[this.viewMode].navStep),this.viewDate=this.moveMonth(this.viewDate,e),this._trigger(A.viewModes[this.viewMode].e,this.viewDate),this.fill()},_toggle_multidate:function(e){var t=this.dates.contains(e);if(e||this.dates.clear(),-1!==t?(!0===this.o.multidate||1this.o.multidate;)this.dates.remove(0)},_setDate:function(e,t){t&&"date"!==t||this._toggle_multidate(e&&new Date(e)),(!t&&this.o.updateViewDate||"view"===t)&&(this.viewDate=e&&new Date(e)),this.fill(),this.setValue(),t&&"view"===t||this._trigger("changeDate"),this.inputField.trigger("change"),!this.o.autoclose||t&&"date"!==t||this.hide()},moveDay:function(e,t){var o=new Date(e);return o.setUTCDate(e.getUTCDate()+t),o},moveWeek:function(e,t){return this.moveDay(e,7*t)},moveMonth:function(e,t){if(!(o=e)||isNaN(o.getTime()))return this.o.defaultViewDate;var o;if(!t)return e;var n,i,r=new Date(e.valueOf()),s=r.getUTCDate(),a=r.getUTCMonth(),l=Math.abs(t);if(t=0=this.o.startDate&&e<=this.o.endDate},keydown:function(e){if(this.picker.is(":visible")){var t,o,n=!1,i=this.focusDate||this.viewDate;switch(e.keyCode){case 27:this.focusDate?(this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill()):this.hide(),e.preventDefault(),e.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||7===this.o.daysOfWeekDisabled.length)break;t=37===e.keyCode||38===e.keyCode?-1:1,0===this.viewMode?e.ctrlKey?(o=this.moveAvailableDate(i,t,"moveYear"))&&this._trigger("changeYear",this.viewDate):e.shiftKey?(o=this.moveAvailableDate(i,t,"moveMonth"))&&this._trigger("changeMonth",this.viewDate):37===e.keyCode||39===e.keyCode?o=this.moveAvailableDate(i,t,"moveDay"):this.weekOfDateIsDisabled(i)||(o=this.moveAvailableDate(i,t,"moveWeek")):1===this.viewMode?(38!==e.keyCode&&40!==e.keyCode||(t*=4),o=this.moveAvailableDate(i,t,"moveMonth")):2===this.viewMode&&(38!==e.keyCode&&40!==e.keyCode||(t*=4),o=this.moveAvailableDate(i,t,"moveYear")),o&&(this.focusDate=this.viewDate=o,this.setValue(),this.fill(),e.preventDefault());break;case 13:if(!this.o.forceParse)break;i=this.focusDate||this.dates.get(-1)||this.viewDate,this.o.keyboardNavigation&&(this._toggle_multidate(i),n=!0),this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.setValue(),this.fill(),this.picker.is(":visible")&&(e.preventDefault(),e.stopPropagation(),this.o.autoclose&&this.hide());break;case 9:this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill(),this.hide()}n&&(this.dates.length?this._trigger("changeDate"):this._trigger("clearDate"),this.inputField.trigger("change"))}else 40!==e.keyCode&&27!==e.keyCode||(this.show(),e.stopPropagation())},setViewMode:function(e){this.viewMode=e,this.picker.children("div").hide().filter(".datepicker-"+A.viewModes[this.viewMode].clsName).show(),this.updateNavArrows(),this._trigger("changeViewMode",new Date(this.viewDate))}};function l(e,t){w.data(e,"datepicker",this),this.element=w(e),this.inputs=w.map(t.inputs,function(e){return e.jquery?e[0]:e}),delete t.inputs,this.keepEmptyValues=t.keepEmptyValues,delete t.keepEmptyValues,i.call(w(this.inputs),t).on("changeDate",w.proxy(this.dateUpdated,this)),this.pickers=w.map(this.inputs,function(e){return w.data(e,"datepicker")}),this.updateDates()}l.prototype={updateDates:function(){this.dates=w.map(this.pickers,function(e){return e.getUTCDate()}),this.updateRanges()},updateRanges:function(){var o=w.map(this.dates,function(e){return e.valueOf()});w.each(this.pickers,function(e,t){t.setRange(o)})},clearDates:function(){w.each(this.pickers,function(e,t){t.clearDates()})},dateUpdated:function(e){if(!this.updating){this.updating=!0;var o=w.data(e.target,"datepicker");if(o!==k){var n=o.getUTCDate(),i=this.keepEmptyValues,e=w.inArray(e.target,this.inputs),t=e-1,r=e+1,s=this.inputs.length;if(-1!==e){if(w.each(this.pickers,function(e,t){t.getUTCDate()||t!==o&&i||t.setUTCDate(n)}),nthis.dates[r])for(;rthis.dates[r];)this.pickers[r++].setUTCDate(n);this.updateDates(),delete this.updating}}}},destroy:function(){w.map(this.pickers,function(e){e.destroy()}),w(this.inputs).off("changeDate",this.dateUpdated),delete this.element.data().datepicker},remove:e("destroy","Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead")};var n=w.fn.datepicker,i=function(r){var s,a=Array.apply(null,arguments);if(a.shift(),this.each(function(){var e,t,o=w(this),n=o.data("datepicker"),i="object"==typeof r&&r;n||(e=function(e,t){var o,n=w(e).data(),i={},r=new RegExp("^"+t.toLowerCase()+"([A-Z])");function s(e,t){return t.toLowerCase()}for(o in t=new RegExp("^"+t.toLowerCase()),n)t.test(o)&&(i[o.replace(r,s)]=n[o]);return i}(this,"date"),t=function(e){var o={};if(O[e]||(e=e.split("-")[0],O[e])){var n=O[e];return w.each(c,function(e,t){t in n&&(o[t]=n[t])}),o}}(w.extend({},u,e,i).language),i=w.extend({},u,t,e,i),n=o.hasClass("input-daterange")||i.inputs?(w.extend(i,{inputs:i.inputs||o.find("input").toArray()}),new l(this,i)):new C(this,i),o.data("datepicker",n)),"string"==typeof r&&"function"==typeof n[r]&&(s=n[r].apply(n,a))}),s===k||s instanceof C||s instanceof l)return this;if(1(new Date).getFullYear()+o&&(e-=100),e):t);var o},m:function(e,t){if(isNaN(e))return e;for(--t;t<0;)t+=12;for(e.setUTCMonth(t%=12);e.getUTCMonth()!==t;)e.setUTCDate(e.getUTCDate()-1);return e},d:function(e,t){return e.setUTCDate(t)}};m.yy=m.yyyy,m.M=m.MM=m.mm=m.m,m.dd=m.d,e=L();var f=t.parts.slice();function g(){var e=this.slice(0,p[b].length),t=p[b].slice(0,e.length);return e.toLowerCase()===t.toLowerCase()}if(p.length!==f.length&&(f=w(f).filter(function(e,t){return-1!==w.inArray(t,h)}).toArray()),p.length===f.length){for(var v,y,b=0,_=f.length;b<_;b++){if(u=parseInt(p[b],10),i=f[b],isNaN(u))switch(i){case"MM":c=w(O[o].months).filter(g),u=w.inArray(c[0],O[o].months)+1;break;case"M":c=w(O[o].monthsShort).filter(g),u=w.inArray(c[0],O[o].monthsShort)+1}d[i]=u}for(b=0;b'+u.templates.leftArrow+''+u.templates.rightArrow+"",contTemplate:'',footTemplate:''};A.template='
        '+A.headTemplate+""+A.footTemplate+'
        '+A.headTemplate+A.contTemplate+A.footTemplate+'
        '+A.headTemplate+A.contTemplate+A.footTemplate+'
        '+A.headTemplate+A.contTemplate+A.footTemplate+'
        '+A.headTemplate+A.contTemplate+A.footTemplate+"
        ",w.fn.datepicker.DPGlobal=A,w.fn.datepicker.noConflict=function(){return w.fn.datepicker=n,this},w.fn.datepicker.version="1.9.0",w.fn.datepicker.deprecated=function(e){var t=window.console;t&&t.warn&&t.warn("DEPRECATED: "+e)},w(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(e){var t=w(this);t.data("datepicker")||(e.preventDefault(),i.call(t,"show"))}),w(function(){i.call(w('[data-provide="datepicker-inline"]'))})}),jQuery.fn.datepicker.dates["en-GB"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"dd/mm/yyyy"},jQuery.fn.datepicker.dates.fr={days:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],daysShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],daysMin:["d","l","ma","me","j","v","s"],months:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthsShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],today:"Aujourd'hui",monthsTitle:"Mois",clear:"Effacer",weekStart:1,format:"dd/mm/yyyy"},jQuery.fn.datepicker.dates.de={days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],daysShort:["Son","Mon","Die","Mit","Don","Fre","Sam"],daysMin:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],today:"Heute",monthsTitle:"Monate",clear:"Löschen",weekStart:1,format:"dd.mm.yyyy"},jQuery.extend(jQuery.easing,{easeInOutMaterial:function(e,t,o,n,i){return(t/=i/2)<1?n/2*t*t+o:n/4*((t-=2)*t*t+2)+o}}),function(n){function o(){var e=+n(this).attr("length"),t=+n(this).val().length,o=t<=e;n(this).parent().find('span[class="character-counter"]').html(t+"/"+e),t=o,e=n(this),o=e.hasClass("invalid"),t&&o?e.removeClass("invalid"):t||o||(e.removeClass("valid"),e.addClass("invalid"))}function i(){n(this).parent().find('span[class="character-counter"]').html("")}n.fn.characterCounter=function(){return this.each(function(){var e,t;void 0!==n(this).attr("length")&&(n(this).on("input",o),n(this).on("focus",o),n(this).on("blur",i),e=n(this),t=n("").addClass("character-counter").css("float","right").css("font-size","12px").css("height",1),e.parent().append(t))})},n(document).ready(function(){n("input, textarea").characterCounter()})}(jQuery),function(l){l.fn.collapsible=function(a){return a=l.extend({accordion:void 0},a),this.each(function(){var t=l(this),o=l(this).find("> li > .collapsible-header"),e=t.data("collapsible");function n(e){o=t.find("> li > .collapsible-header"),e.hasClass("active")?e.parent().addClass("active"):e.parent().removeClass("active"),e.parent().hasClass("active")?e.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){l(this).css("height","")}}):e.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){l(this).css("height","")}}),o.not(e).removeClass("active").parent().removeClass("active"),o.not(e).parent().children(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){l(this).css("height","")}})}function i(e){e.hasClass("active")?e.parent().addClass("active"):e.parent().removeClass("active"),e.parent().hasClass("active")?e.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){l(this).css("height","")}}):e.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){l(this).css("height","")}})}function r(e){return 0 .collapsible-header")}t.off("click.collapse",".collapsible-header"),o.off("click.collapse"),a.accordion||"accordion"===e||void 0===e?((o=t.find("> li > .collapsible-header")).on("click.collapse",function(e){e=l(e.target);(e=r(e)?s(e):e).toggleClass("active"),e.trigger("activationChanged"),n(e)}),n(o.filter(".active").first())):o.each(function(){l(this).on("click.collapse",function(e){e=l(e.target);(e=r(e)?s(e):e).toggleClass("active"),e.trigger("activationChanged"),i(e)}),l(this).hasClass("active")&&i(l(this))})})},l(document).ready(function(){l(".collapsible").collapsible()})}(jQuery),function(u){u.fn.scrollTo=function(e){return u(this).scrollTop(u(this).scrollTop()-u(this).offset().top+u(e).offset().top),this},u.fn.dropdown=function(e){var i={inDuration:300,outDuration:225,constrain_width:!0,hover:!1,gutter:0,belowOrigin:!1,alignment:"left"};this.each(function(){var t,r=u(this),s=u.extend({},i,e),a=u("#"+r.attr("data-activates"));function l(){void 0!==r.data("induration")&&(s.inDuration=r.data("inDuration")),void 0!==r.data("outduration")&&(s.outDuration=r.data("outDuration")),void 0!==r.data("constrainwidth")&&(s.constrain_width=r.data("constrainwidth")),void 0!==r.data("hover")&&(s.hover=r.data("hover")),void 0!==r.data("gutter")&&(s.gutter=r.data("gutter")),void 0!==r.data("beloworigin")&&(s.belowOrigin=r.data("beloworigin")),void 0!==r.data("alignment")&&(s.alignment=r.data("alignment"))}function o(){l(),a.addClass("active"),!0===s.constrain_width?a.css("width",r.outerWidth()):a.css("white-space","nowrap");var e=0;!0===s.belowOrigin&&(e=r.height());var t,o,n,i=r.offset().left;i+a.innerWidth()>u(window).width()?s.alignment="right":i-a.innerWidth()+r.innerWidth()<0&&(s.alignment="left"),"left"===s.alignment?(t=0,o=s.gutter,n=r.position().left+t+o,a.css({left:n})):"right"===s.alignment&&(u(window).width(),r.innerWidth(),t=0,o=s.gutter,n=u(window).width()-r.position().left-r.innerWidth()+o,a.css({right:n})),a.css({position:"absolute",top:r.position().top+e}),a.stop(!0,!0).css("opacity",0).slideDown({queue:!1,duration:s.inDuration,easing:"easeOutCubic",complete:function(){u(this).css("height","")}}).animate({opacity:1},{queue:!1,duration:s.inDuration,easing:"easeOutSine"})}function n(){a.fadeOut(s.outDuration),a.removeClass("active")}l(),r.after(a),s.hover?(t=!1,r.unbind("click."+r.attr("id")),r.on("mouseenter",function(e){!1===t&&(o(),t=!0)}),r.on("mouseleave",function(e){e=e.toElement||e.relatedTarget;u(e).closest(".dropdown-content").is(a)||(a.stop(!0,!0),n(),t=!1)}),a.on("mouseleave",function(e){e=e.toElement||e.relatedTarget;u(e).closest(".dropdown-button").is(r)||(a.stop(!0,!0),n(),t=!1)})):(r.unbind("click."+r.attr("id")),r.bind("click."+r.attr("id"),function(e){r[0]==e.currentTarget&&0===u(e.target).closest(".dropdown-content").length?(e.preventDefault(),o()):r.hasClass("active")&&(n(),u(document).unbind("click."+a.attr("id"))),a.hasClass("active")&&u(document).bind("click."+a.attr("id"),function(e){!a.is(e.target)&&!r.is(e.target)&&0
        '),a("body").append(n));var e=".materialize-textarea";function t(e){var t=e.css("font-family"),o=e.css("font-size");o&&n.css("font-size",o),t&&n.css("font-family",t),"off"===e.attr("wrap")&&n.css("overflow-wrap","normal").css("white-space","pre"),n.text(e.val()+"\n");t=n.html().replace(/\n/g,"
        ");n.html(t),e.is(":visible")?n.css("width",e.width()):n.css("width",a(window).width()/2),e.css("height",n.height())}a(e).each(function(){var e=a(this);e.val().length&&t(e)}),a("body").on("keyup keydown autoresize",e,function(){t(a(this))}),a(document).on("change",'.file-field input[type="file"]',function(){for(var e=a(this).closest(".file-field").find("input.file-path"),t=a(this)[0].files,o=[],n=0;n');a(this).after(e)});e=".range-field";a(document).on("change",r,function(e){a(this).siblings(".thumb").find(".value").html(a(this).val())}),a(document).on("input mousedown touchstart",r,function(e){var t=a(this).siblings(".thumb");t.length<=0&&(t=a(''),a(this).append(t)),t.find(".value").html(a(this).val()),s=!0,a(this).addClass("active"),t.hasClass("active")||t.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),i=void 0===e.pageX||null===e.pageX?e.originalEvent.touches[0].pageX-a(this).offset().left:e.pageX-a(this).offset().left;e=a(this).outerWidth();i<0?i=0:e
        ')).addClass($select.attr("class")),t=a(''),n=$select.children("option"),o=void 0!==$select.find("option:selected")?$select.find("option:selected"):t.first(),n.each(function(){t.append(a('
      • '+a(this).html()+"
      • "))}),t.find("li").each(function(e){var t=$select;a(this).click(function(){a(this).hasClass("disabled")||(t.find("option").eq(e).prop("selected",!0),t.trigger("change"),t.hasClass("keep-title-option")||t.siblings("input.select-dropdown").val(a(this).text()),void 0!==s&&s())})}),$select.wrap(i),n=a(''),$select.is(":disabled")&&n.addClass("disabled"),i=o.html().replace(/"/g,"""),r=a(''),$select.before(r),r.before(n),a("body").append(t),$select.is(":disabled")||r.dropdown({hover:!1}),$select.attr("tabindex")&&a(r[0]).attr("tabindex",$select.attr("tabindex")),$select.addClass("initialized"),r.on("focus",function(){a(this).trigger("open"),o=a(this).val(),selectedOption=t.find("li").filter(function(){return a(this).text().toLowerCase()===o.toLowerCase()})[0],activateOption(t,selectedOption)}),r.on("blur",function(){a(this).trigger("close")}),activateOption=function(e,t){e.find("li.active").removeClass("active"),a(t).addClass("active"),e.scrollTo(t)},filterQuery=[],onKeyDown=function(e){9!=e.which?40!=e.which||t.is(":visible")?13==e.which&&!t.is(":visible")||(e.preventDefault(),letter=String.fromCharCode(e.which).toLowerCase(),letter&&-1===[9,13,27,38,40].indexOf(e.which)&&(filterQuery.push(letter),string=filterQuery.join(""),newOption=t.find("li").filter(function(){return 0===a(this).text().toLowerCase().indexOf(string)})[0],newOption&&activateOption(t,newOption)),13==e.which&&(activeOption=t.find("li.active:not(.disabled)")[0],activeOption&&(a(activeOption).trigger("click"),r.trigger("close"))),40==e.which&&(newOption=t.find("li.active").next("li:not(.disabled)")[0],newOption&&activateOption(t,newOption)),27==e.which&&r.trigger("close"),38==e.which&&(newOption=t.find("li.active").prev("li:not(.disabled)")[0],newOption&&activateOption(t,newOption)),setTimeout(function(){filterQuery=[]},1e3)):r.trigger("open"):r.trigger("close")},r.on("keydown",onKeyDown)):$select.data("select-id",null).removeClass("initialized"))})}}(jQuery),window.Materialize={},Materialize.guid=function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}}(),Materialize.elementOrParentIsFixed=function(e){var e=$(e),e=e.add(e.parents()),t=!1;return e.each(function(){if("fixed"===$(this).css("position"))return!(t=!0)}),t},Vel=$?$.Velocity:Velocity,function(e,a,u){"use strict";function r(e,t,o){return setTimeout(l(e,o),t)}function o(e,t,o){return Array.isArray(e)&&(i(e,o[t],o),1)}function i(e,t,o){if(e)if(e.forEach)e.forEach(t,o);else if(e.length!==u)for(n=0;nt[o]}):n.sort():n}function _(e,t){for(var o,n=t[0].toUpperCase()+t.slice(1),i=0;iX(l.y)?l.x:l.y,a=O(s,a),e.lastInterval=t):(l=i.velocity,o=i.velocityX,n=i.velocityY,a=i.direction)}t.velocity=l,t.velocityX=o,t.velocityY=n,t.direction=a}(o,t);e=e.element;m(t.srcEvent.target,e)&&(e=t.srcEvent.target),t.target=e}(e,o),e.emit("hammer.input",o),e.recognize(o),e.session.prevInput=o}function L(e){for(var t=[],o=0;o=X(t)?0t.threshold&&i&t.direction},attrTest:function(e){return N.prototype.attrTest.call(this,e)&&(this.state&Fe||!(this.state&Fe)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=I(e.direction);t&&this.manager.emit(this.options.event+t,e),this._super.emit.call(this,e)}}),t(R,N,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Se]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||this.state&Fe)},emit:function(e){var t;this._super.emit.call(this,e),1!==e.scale&&(t=e.scale<1?"in":"out",this.manager.emit(this.options.event+t,e))}}),t(z,D,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return["auto"]},process:function(e){var t=this.options,o=e.pointers.length===t.pointers,n=e.distancet.time;if(this._input=e,!n||!o||e.eventType&(ae|le)&&!i)this.reset();else if(e.eventType&se)this.reset(),this._timer=r(function(){this.state=De,this.tryEmit()},t.time,this);else if(e.eventType&ae)return De;return 32},reset:function(){clearTimeout(this._timer)},emit:function(e){this.state===De&&(e&&e.eventType&ae?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=Q(),this.manager.emit(this.options.event,this._input)))}}),t(q,N,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Se]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||this.state&Fe)}}),t(H,N,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:me|fe,pointers:1},getTouchAction:function(){return B.prototype.getTouchAction.call(this)},attrTest:function(e){var t,o=this.options.direction;return o&(me|fe)?t=e.velocity:o&me?t=e.velocityX:o&fe&&(t=e.velocityY),this._super.attrTest.call(this,e)&&o&e.direction&&e.distance>this.options.threshold&&X(t)>this.options.velocity&&e.eventType&ae},emit:function(e){var t=I(e.direction);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),t(W,D,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Ee]},process:function(e){var t=this.options,o=e.pointers.length===t.pointers,n=e.distance
      '),r=++a;i.attr("id",o).css("z-index",6e3+2*r),n.data("overlay-id",o).css("z-index",6e3+2*r+1),s("body").append(i),(t=s.extend(e,t)).dismissible&&(i.click(function(){n.closeModal(t)}),s(document).on("keyup.leanModal"+o,function(e){27===e.keyCode&&n.closeModal(t)})),n.find(".modal-close").on("click.close",function(e){n.closeModal(t)}),i.css({display:"block",opacity:0}),n.css({display:"block",opacity:0}),i.velocity({opacity:t.opacity},{duration:t.in_duration,queue:!1,ease:"easeOutCubic"}),n.data("associated-overlay",i[0]),n.hasClass("bottom-sheet")?n.velocity({bottom:"0",opacity:1},{duration:t.in_duration,queue:!1,ease:"easeOutCubic",complete:function(){"function"==typeof t.ready&&t.ready()}}):(s.Velocity.hook(n,"scaleX",.7),n.css({top:t.starting_top}),n.velocity({top:"10%",opacity:1,scaleX:"1"},{duration:t.in_duration,queue:!1,ease:"easeOutCubic",complete:function(){"function"==typeof t.ready&&t.ready()}}))}}),s.fn.extend({closeModal:function(e){var t={out_duration:250,complete:void 0},o=s(this),n=o.data("overlay-id"),i=s("#"+n);e=s.extend(t,e),s("body").css("overflow",""),o.find(".modal-close").off("click.close"),s(document).off("keyup.leanModal"+n),i.velocity({opacity:0},{duration:e.out_duration,queue:!1,ease:"easeOutQuart"}),o.hasClass("bottom-sheet")?o.velocity({bottom:"-100%",opacity:0},{duration:e.out_duration,queue:!1,ease:"easeOutCubic",complete:function(){i.css({display:"none"}),"function"==typeof e.complete&&e.complete(),i.remove(),a--}}):o.velocity({top:e.starting_top,opacity:0,scaleX:.7},{duration:e.out_duration,complete:function(){s(this).css("display","none"),"function"==typeof e.complete&&e.complete(),i.remove(),a--}})}}),s.fn.extend({leanModal:function(e){return this.each(function(){var o=s.extend({starting_top:"4%"},e);s(this).click(function(e){o.starting_top=(s(this).offset().top-s(window).scrollTop())/1.15;var t=s(this).attr("href")||"#"+s(this).data("target");s(t).openModal(o),e.preventDefault()})})}})}(jQuery),function(f){f(document).ready(function(){}),f.fn.material_select2=function(h){function m(e,t,o){var n=e.indexOf(t),i=-1===n;return i?e.push(t):e.splice(n,1),o.siblings("ul.dropdown-content").find("li:not(.optgroup)").eq(t).toggleClass("active"),o.find("option").eq(t).prop("selected",i),function(e,t){for(var o="",n=0,i=e.length;n');o.addClass(n.attr("class")),n.is(":disabled")&&o.addClass("disabled");function i(e,t,o){var n=t.is(":disabled")?"disabled ":"",i="optgroup-option"===o?"optgroup-option ":"",r=a?'":"",s=t.data("icon"),o=t.attr("class");if(s){o=o?' class="'+o+'"':"";return l.append(f('
    • "+r+t.html()+"
    • ")),!0}l.append(f('
    • '+r+t.html()+"
    • "))}var l=f(''),r=n.children("option, optgroup"),s=[],u=!1,e=n.find("option:selected").html()||n.find("option:first").html()||"";r.length&&r.each(function(){var e;f(this).is("option")?a?i(0,f(this),"multiple"):i(0,f(this)):f(this).is("optgroup")&&(e=f(this).children("option"),l.append(f('
    • '+f(this).attr("label")+"
    • ")),e.each(function(){i(0,f(this),"optgroup-option")}))}),l.find("li:not(.optgroup)").each(function(o){f(this).click(function(e){var t;f(this).hasClass("disabled")||f(this).hasClass("optgroup")||(t=!0,a?(f('input[type="checkbox"]',this).prop("checked",function(e,t){return!t}),t=m(s,o,n),c.trigger("focus")):(l.find("li").removeClass("active"),f(this).toggleClass("active"),c.val(f(this).text())),p(l,f(this)),n.find("option").eq(o).prop("selected",t),n.trigger("change"),void 0!==h&&h()),e.stopPropagation()})}),n.wrap(o);var o=f(''),e=e.replace(/"/g,"""),c=f('');n.before(c),c.before(o),c.after(l),n.is(":disabled")||c.dropdown({hover:!1}),n.attr("tabindex")&&f(c[0]).attr("tabindex",n.attr("tabindex")),n.addClass("initialized"),c.on({focus:function(){var e,t;f("ul.select-dropdown").not(l[0]).is(":visible")&&(f("input.select-dropdown").trigger("close"),f(window).off("click.select")),l.is(":visible")||(f(this).trigger("open",["focus"]),e=f(this).val(),a&&0<=e.indexOf(",")&&(e=e.split(",")[0]),t=l.find("li").filter(function(){return f(this).text().toLowerCase()===e.toLowerCase()})[0],p(l,t,!0),f(window).off("click.select").on("click.select",function(){a&&(u||c.trigger("close")),f(window).off("click.select")}))},click:function(e){e.stopPropagation()}}),c.on("blur",function(){a||(f(this).trigger("close"),f(window).off("click.select")),l.find("li.selected").removeClass("selected")}),l.hover(function(){u=!0},function(){u=!1}),a&&n.find("option:selected:not(:disabled)").each(function(){var e=this.index;m(s,e,n),l.find("li:not(.optgroup)").eq(e).find(":checkbox").prop("checked",!0)});var p=function(e,t,o){t&&(e.find("li.selected").removeClass("selected"),(t=f(t)).addClass("selected"),a&&!o||l.scrollTo(t))},d=[];c.on("keydown",function(e){var t,o,n;9!=e.which?40!=e.which||l.is(":visible")?13==e.which&&!l.is(":visible")||(e.preventDefault(),(n=String.fromCharCode(e.which).toLowerCase())&&-1===[9,13,27,38,40].indexOf(e.which)&&(d.push(n),t=d.join(""),(o=l.find("li").filter(function(){return 0===f(this).text().toLowerCase().indexOf(t)})[0])&&p(l,o)),13!=e.which||(n=l.find("li.selected:not(.disabled)")[0])&&(f(n).trigger("click"),a||c.trigger("close")),40==e.which&&(o=(l.find("li.selected").length?l.find("li.selected").next("li:not(.disabled)"):l.find("li:not(.disabled)"))[0],p(l,o)),27==e.which&&c.trigger("close"),38==e.which&&(o=l.find("li.selected").prev("li:not(.disabled)")[0])&&p(l,o),setTimeout(function(){d=[]},1e3)):c.trigger("open"):c.trigger("close")})}})}}(jQuery),function(t){var o={init:function(e){e=t.extend({menuWidth:240,edge:"left",closeOnClick:!1},e),console.log("sideNive init",e);t(this),t(".directory-menu-drag-target")},show:function(){this.trigger("click")},hide:function(){t("#directory-menu-overlay").trigger("click")}};t.fn.sideNav=function(e){return o[e]?o[e].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof e&&e?void t.error("Method "+e+" does not exist on jQuery.sideNav"):o.init.apply(this,arguments)}}(jQuery),function(c){var t={init:function(){return this.each(function(){var o=c(this);c(window).width();o.width("100%");var n,i=o.find("li.tab a"),r=o.width(),s=o.find("li").first().outerWidth(),a=0,l=c(i.filter('[href="'+location.hash+'"]'));(l=0===(l=0===l.length?c(this).find("li.tab a.active").first():l).length?c(this).find("li.tab a").first():l).addClass("active"),(a=i.index(l))<0&&(a=0),n=p(l[0]),o.append('
      ');var u=o.find(".indicator");o.is(":visible")&&(u.css({right:Math.max(r-(a+1)*s,0)}),u.css({left:a*s})),c(window).resize(function(){r=o.width(),s=o.find("li").first().outerWidth(),a<0&&(a=0),0!==s&&0!==r&&(u.css({right:Math.max(r-(a+1)*s,0)}),u.css({left:a*s}))}),i.not(l).each(function(){p(this).hide()}),o.on("click","a",function(e){var t;c(this).parent().hasClass("disabled")||(r=o.width(),s=o.find("li").first().outerWidth(),l.removeClass("active"),n.hide(),l=c(this),n=p(this),i=o.find("li.tab a"),l.addClass("active"),t=a,(a=i.index(c(this)))<0&&(a=0),n.show(),0<=a-t?(u.velocity({right:Math.max(r-(a+1)*s,0)},{duration:300,queue:!1,easing:"easeOutQuad"}),u.velocity({left:a*s},{duration:300,queue:!1,easing:"easeOutQuad",delay:90})):(u.velocity({left:a*s},{duration:300,queue:!1,easing:"easeOutQuad"}),u.velocity({right:Math.max(r-(a+1)*s,0)},{duration:300,queue:!1,easing:"easeOutQuad",delay:90}))),e.preventDefault()})})},select_tab:function(e){this.find('a[href="#'+e+'"]').trigger("click")}};function p(e){e.hash;return e.hash||!c(e).data("href")?c(e.hash):c(e).parents("ul.tabs").siblings(".tabs-content").find(c(e).data("href"))}c.fn.tabs=function(e){return t[e]?t[e].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof e&&e?void c.error("Method "+e+" does not exist on jQuery.tooltip"):t.init.apply(this,arguments)},c(document).ready(function(){c("ul.tabs").tabs()})}(jQuery),Materialize.toast=function(e,t,r,s){r=r||"";var o=document.getElementById("toast-container");null===o&&((o=document.createElement("div")).id="toast-container",document.body.appendChild(o));var n=function(e){var o=document.createElement("div");if(o.classList.add("toast"),r)for(var t=r.split(" "),n=0,i=t.length;n").text(l.attr("data-tooltip")),u=i("
      ");u.addClass("material-tooltip gogo-section-content-opposite").append(t).appendTo(i("body")).attr("id",e),l.off("mouseenter.tooltip mouseleave.tooltip"),l.on({"mouseenter.tooltip":function(e){var a=void 0===(a=l.data("delay"))||""===a?o.delay:a;c=0,n=setInterval(function(){var e,t,o,n,i,r,s;a<=(c+=10)&&!1===p&&(p=!0,u.css({display:"block",left:"0px",top:"0px"}),u.children("span").text(l.attr("data-tooltip")),e=l.outerWidth(!0),t=l.outerHeight(!0),o=l.attr("data-position"),n=u.outerHeight(),i=u.outerWidth(),s=r="0px",u.addClass("position-"+o),"top"===o?(u.css({top:l.offset().top-n-5,left:l.offset().left+e/2-i/2}),r="-5px"):"left"===o?(u.css({top:l.offset().top+t/2-n/2,left:l.offset().left-i-5}),s="-5px"):"right"===o?(u.css({top:l.offset().top+t/2-n/2,left:l.offset().left+e+5}),s="+5px"):(u.css({top:l.offset().top+l.outerHeight()+5,left:l.offset().left+e/2-i/2}),r="+5px"),u.css("opacity",1),u.css("marginTop",r),u.css("marginLeft",s))},10)},"mouseleave.tooltip":function(){clearInterval(n),c=0,u.css("display","none"),u.css("opacity",.5),u.css("marginTop",0),u.css("marginLeft",0),p=!1}})}))},i(document).ready(function(){i(".tooltipped").tooltip()})}(jQuery),function(s){Materialize.fadeInImage=function(e){e=s(e);e.css({opacity:0}),s(e).velocity({opacity:1},{duration:650,queue:!1,easing:"easeOutSine"}),s(e).velocity({opacity:1},{duration:1300,queue:!1,easing:"swing",step:function(e,t){var o=e/(t.start=100),t=150-(100-e)/1.75;t<100&&(t=100),0<=e&&s(this).css({"-webkit-filter":"grayscale("+o+")brightness("+t+"%)",filter:"grayscale("+o+")brightness("+t+"%)"})}})},Materialize.showStaggeredList=function(e){var t=0;s(e).find("li").velocity({translateX:"-100px"},{duration:0}),s(e).find("li").each(function(){s(this).velocity({opacity:"1",translateX:"0"},{duration:800,delay:t,easing:[60,10]}),t+=120})},s(document).ready(function(){var i=!1,r=!1;s(".dismissable").each(function(){s(this).hammer({prevent_default:!1}).bind("pan",function(e){var t,o,n;"touch"===e.gesture.pointerType&&(t=s(this),o=e.gesture.direction,n=e.gesture.deltaX,e=e.gesture.velocityX,t.velocity({translateX:n},{duration:50,queue:!1,easing:"easeOutQuad"}),4===o&&(n>t.innerWidth()/2||e<-.75)&&(i=!0),2===o&&(n<-1*t.innerWidth()/2||.75d&&++r img.svg { ",o+=l.suppressValue(r.getFilter("to_css").call(s,l.contextOrFrameLookup(s,a,"textColor")),r.opts.autoescape),o+=" }\n .gogo-load-css .gogo-",o+=l.suppressValue(e,r.opts.autoescape),o+=".gogo-color-soft { color: ",o+=l.suppressValue(l.contextOrFrameLookup(s,a,"textSoftColor"),r.opts.autoescape),o+=" }\n .gogo-load-css .gogo-",o+=l.suppressValue(e,r.opts.autoescape),o+=" .gogo-color-soft { color: ",o+=l.suppressValue(l.contextOrFrameLookup(s,a,"textSoftColor"),r.opts.autoescape),o+=" }\n .gogo-load-css .gogo-",o+=l.suppressValue(e,r.opts.autoescape),o+=" .gogo-color-link { color: ",o+=l.suppressValue(l.contextOrFrameLookup(s,a,"textSoftColor"),r.opts.autoescape),o+=" }\n .gogo-load-css .gogo-",o+=l.suppressValue(e,r.opts.autoescape),o+=" .gogo-color-link.active { color: ",o+=l.suppressValue(l.contextOrFrameLookup(s,a,"textColor"),r.opts.autoescape),o+=" }\n .gogo-load-css .gogo-",o+=l.suppressValue(e,r.opts.autoescape),o+=" .gogo-color-link.hover { color: ",o+=l.suppressValue(l.contextOrFrameLookup(s,a,"textColor"),r.opts.autoescape),o+=" }\n @media (max-width: 1100px) { .gogo-load-css .gogo-",o+=l.suppressValue(e,r.opts.autoescape),o+=" .gogo-color-link { color: ",o+=l.suppressValue(l.contextOrFrameLookup(s,a,"textColor"),r.opts.autoescape),o+=" } }\n .gogo-load-css .gogo-",o+=l.suppressValue(e,r.opts.autoescape),o+=" .gogo-color-link:hover { color: ",o+=l.suppressValue(l.contextOrFrameLookup(s,a,"textColor"),r.opts.autoescape),o+="; cursor: pointer; }\n "),a=n,new l.SafeString(o+="\n")});s.addExport("createBackgroung"),s.setVariable("createBackgroung",E),o+="\n\n",o+="\n\n",t=l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"textDark"),a.set("textDark",t,!0),a.topLevel&&s.setVariable("textDark",t),a.topLevel&&s.addExport("textDark",t),o+="\n",i=l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"textDarkSoft"),a.set("textDarkSoft",i,!0),a.topLevel&&s.setVariable("textDarkSoft",i),a.topLevel&&s.addExport("textDarkSoft",i),o+="\n",p=l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"textLight"),a.set("textLight",p,!0),a.topLevel&&s.setVariable("textLight",p),a.topLevel&&s.addExport("textLight",p),o+="\n",d=l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"textLightSoft"),a.set("textLightSoft",d,!0),a.topLevel&&s.setVariable("textLightSoft",d),a.topLevel&&s.addExport("textLightSoft",d),o+="\n\n",h=l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"contentBackground"),a.set("contentBgd",h,!0),a.topLevel&&s.setVariable("contentBgd",h),a.topLevel&&s.addExport("contentBgd",h),o+="\n",u=34,c=40,m=l.callWrap(l.memberLookup(l.contextOrFrameLookup(s,a,"tinycolor"),"mostReadable"),'tinycolor["mostReadable"]',s,[l.contextOrFrameLookup(s,a,"contentBgd"),[l.contextOrFrameLookup(s,a,"textDark"),l.contextOrFrameLookup(s,a,"textLight")]]),a.set("text",m,!0),a.topLevel&&s.setVariable("text",m),a.topLevel&&s.addExport("text",m),o+="\n",u=35,c=40,f=l.callWrap(l.memberLookup(l.contextOrFrameLookup(s,a,"tinycolor"),"mostReadable"),'tinycolor["mostReadable"]',s,[l.contextOrFrameLookup(s,a,"contentBgd"),[l.contextOrFrameLookup(s,a,"textDarkSoft"),l.contextOrFrameLookup(s,a,"textLightSoft")]]),a.set("textSoft",f,!0),a.topLevel&&s.setVariable("textSoft",f),a.topLevel&&s.addExport("textSoft",f),o+="\n\n",g=l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"primary"),a.set("primary",g,!0),a.topLevel&&s.setVariable("primary",g),a.topLevel&&s.addExport("primary",g),o+="\n",v=r.getFilter("default").call(s,l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"secondary"),l.contextOrFrameLookup(s,a,"primary")),a.set("secondary",v,!0),a.topLevel&&s.setVariable("secondary",v),a.topLevel&&s.addExport("secondary",v),o+="\n",y=l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"background"),a.set("background",y,!0),a.topLevel&&s.setVariable("background",y),a.topLevel&&s.addExport("background",y),o+="\n\n",b=l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"fonts"),"mainFont"),a.set("mainFont",b,!0),a.topLevel&&s.setVariable("mainFont",b),a.topLevel&&s.addExport("mainFont",b),o+="\n",_=r.getFilter("default").call(s,l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"fonts"),"titleFont"),l.contextOrFrameLookup(s,a,"mainFont")),a.set("titleFont",_,!0),a.topLevel&&s.setVariable("titleFont",_),a.topLevel&&s.addExport("titleFont",_),o+="\n\n",w=l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"contentBackgroundElementBody"),a.set("contentBackgroundElementBody",w,!0),a.topLevel&&s.setVariable("contentBackgroundElementBody",w),a.topLevel&&s.addExport("contentBackgroundElementBody",w),o+="\n",k=l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"menuOptionHover"),a.set("menuOptionHover",k,!0),a.topLevel&&s.setVariable("menuOptionHover",k),a.topLevel&&s.addExport("menuOptionHover",k),o+="\n",x=l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"disabled"),a.set("disabled",x,!0),a.topLevel&&s.setVariable("disabled",x),a.topLevel&&s.addExport("disabled",x),o+="\n",L=l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"lineBorder"),a.set("lineBorder",L,!0),a.topLevel&&s.setVariable("lineBorder",L),a.topLevel&&s.addExport("lineBorder",L),o+="\n",C=r.getFilter("default").call(s,l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"searchBar"),l.contextOrFrameLookup(s,a,"primary")),a.set("searchBar",C,!0),a.topLevel&&s.setVariable("searchBar",C),a.topLevel&&s.addExport("searchBar",C),o+="\n",O=r.getFilter("default").call(s,l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"interactiveSection"),l.contextOrFrameLookup(s,a,"primary")),a.set("interactiveColor",O,!0),a.topLevel&&s.setVariable("interactiveColor",O),a.topLevel&&s.addExport("interactiveColor",O),o+="\n",A=l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"colors"),"pending"),a.set("pending",A,!0),a.topLevel&&s.setVariable("pending",A),a.topLevel&&s.addExport("pending",A),o+="\n\n\n\n";var I=[];I.push(function(o){r.getTemplate("styles/general.html.njk",!1,"gogo-styles.html.njk",!1,function(e,t){e?n(e):o(null,t)})}),I.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?n(e):o(null,t)})}),I.push(function(e,t){o+=e,t(null)}),r.waterfall(I,function(){o+="\n";var e=[];e.push(function(o){r.getTemplate("styles/element-info-bar.html.njk",!1,"gogo-styles.html.njk",!1,function(e,t){e?n(e):o(null,t)})}),e.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?n(e):o(null,t)})}),e.push(function(e,t){o+=e,t(null)}),r.waterfall(e,function(){o+="\n";var e=[];e.push(function(o){r.getTemplate("styles/list.html.njk",!1,"gogo-styles.html.njk",!1,function(e,t){e?n(e):o(null,t)})}),e.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?n(e):o(null,t)})}),e.push(function(e,t){o+=e,t(null)}),r.waterfall(e,function(){o+="\n";var e=[];e.push(function(o){r.getTemplate("styles/menu-filters.html.njk",!1,"gogo-styles.html.njk",!1,function(e,t){e?n(e):o(null,t)})}),e.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?n(e):o(null,t)})}),e.push(function(e,t){o+=e,t(null)}),r.waterfall(e,function(){o+="\n";var e=[];e.push(function(o){r.getTemplate("styles/search-bar.html.njk",!1,"gogo-styles.html.njk",!1,function(e,t){e?n(e):o(null,t)})}),e.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?n(e):o(null,t)})}),e.push(function(e,t){o+=e,t(null)}),r.waterfall(e,function(){o+="\n";var e=[];e.push(function(o){r.getTemplate("styles/map.html.njk",!1,"gogo-styles.html.njk",!1,function(e,t){e?n(e):o(null,t)})}),e.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?n(e):o(null,t)})}),e.push(function(e,t){o+=e,t(null)}),r.waterfall(e,function(){o+="\n\n",o+="\n";var e=[];e.push(function(o){r.getTemplate("styles/themes/"+l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"theme")+".html.njk",!1,"gogo-styles.html.njk",!0,function(e,t){e?n(e):o(null,t)})}),e.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?n(e):o(null,t)})}),e.push(function(e,t){o+=e,t(null)}),r.waterfall(e,function(){n(null,o+="\n\n")})})})})})})})}catch(e){n(l.handleError(e,u,c))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["layout.html.njk"]={root:function(n,i,r,o,s){var a=0,l=0,u="";try{u+='
      \n
      \n\n ",u+='\n
      \n ',u+='\n
      \n\n ',u+='\n
      \n\n ';var e=[];e.push(function(o){n.getTemplate("modals.html.njk",!1,"layout.html.njk",!1,function(e,t){e?s(e):o(null,t)})}),e.push(function(e,o){e.render(i.getVariables(),r,function(e,t){e?s(e):o(null,t)})}),e.push(function(e,t){u+=e,t(null)}),n.waterfall(e,function(){u+="\n\n ",n.getTemplate("components/spinner-loader.html.njk",!1,"layout.html.njk",!1,function(e,t){e?s(e):t.getExported(function(e,t){e?s(e):(i.setVariable("spinnerLoader",t),u+="\n ",u+=o.suppressValue((a=19,l=29,o.callWrap(o.memberLookup(t,"create"),'spinnerLoader["create"]',i,["directory-spinner-loader"])),n.opts.autoescape),u+="\n\n ",(t=[]).push(function(o){n.getTemplate("components/search-bar/search-results-header.html.njk",!1,"layout.html.njk",!1,function(e,t){e?s(e):o(null,t)})}),t.push(function(e,o){e.render(i.getVariables(),r,function(e,t){e?s(e):o(null,t)})}),t.push(function(e,t){u+=e,t(null)}),n.waterfall(t,function(){u+='\n\n \n\n ",u+="\n ";var e=[];e.push(function(o){n.getTemplate("components/map/info-bar.html.njk",!1,"layout.html.njk",!1,function(e,t){e?s(e):o(null,t)})}),e.push(function(e,o){e.render(i.getVariables(),r,function(e,t){e?s(e):o(null,t)})}),e.push(function(e,t){u+=e,t(null)}),n.waterfall(e,function(){u+='\n\n \n\n ";var e=[];e.push(function(o){n.getTemplate("components/gogo-controls.html.njk",!1,"layout.html.njk",!1,function(e,t){e?s(e):o(null,t)})}),e.push(function(e,o){e.render(i.getVariables(),r,function(e,t){e?s(e):o(null,t)})}),e.push(function(e,t){u+=e,t(null)}),n.waterfall(e,function(){u+="\n\n ";var e=[];e.push(function(o){n.getTemplate("components/custom-popup.html.njk",!1,"layout.html.njk",!1,function(e,t){e?s(e):o(null,t)})}),e.push(function(e,o){e.render(i.getVariables(),r,function(e,t){e?s(e):o(null,t)})}),e.push(function(e,t){u+=e,t(null)}),n.waterfall(e,function(){u+="\n\n ",s(null,u+='\n
      \n
      \n
      \n\n
      \n\n
      \n
      ')})})})})})}))})})})})}catch(e){s(o.handleError(e,a,l))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["modals.html.njk"]={root:function(t,n,i,o,r){var s="";try{var e=[];e.push(function(o){t.getTemplate("components/modals/image.html.njk",!1,"modals.html.njk",!1,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,o){e.render(n.getVariables(),i,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,t){s+=e,t(null)}),t.waterfall(e,function(){s+="\n";var e=[];e.push(function(o){t.getTemplate("components/modals/element/report.html.njk",!1,"modals.html.njk",!1,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,o){e.render(n.getVariables(),i,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,t){s+=e,t(null)}),t.waterfall(e,function(){s+="\n";var e=[];e.push(function(o){t.getTemplate("components/modals/element/delete.html.njk",!1,"modals.html.njk",!1,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,o){e.render(n.getVariables(),i,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,t){s+=e,t(null)}),t.waterfall(e,function(){s+="\n";var e=[];e.push(function(o){t.getTemplate("components/modals/element/share.html.njk",!1,"modals.html.njk",!1,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,o){e.render(n.getVariables(),i,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,t){s+=e,t(null)}),t.waterfall(e,function(){s+="\n";var e=[];e.push(function(o){t.getTemplate("components/modals/element/subscribe.html.njk",!1,"modals.html.njk",!1,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,o){e.render(n.getVariables(),i,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,t){s+=e,t(null)}),t.waterfall(e,function(){s+="\n";var e=[];e.push(function(o){t.getTemplate("components/modals/element/unsubscribe.html.njk",!1,"modals.html.njk",!1,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,o){e.render(n.getVariables(),i,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,t){s+=e,t(null)}),t.waterfall(e,function(){s+="\n";var e=[];e.push(function(o){t.getTemplate("components/modals/element/vote.html.njk",!1,"modals.html.njk",!1,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,o){e.render(n.getVariables(),i,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,t){s+=e,t(null)}),t.waterfall(e,function(){s+=" \n";var e=[];e.push(function(o){t.getTemplate("components/modals/contribution-information.html.njk",!1,"modals.html.njk",!1,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,o){e.render(n.getVariables(),i,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,t){s+=e,t(null)}),t.waterfall(e,function(){s+="\n";var e=[];e.push(function(o){t.getTemplate("components/modals/element/send-email.html.njk",!1,"modals.html.njk",!1,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,o){e.render(n.getVariables(),i,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,t){s+=e,t(null)}),t.waterfall(e,function(){s+="\n";var e=[];e.push(function(o){t.getTemplate("components/modals/export-iframe.html.njk",!1,"modals.html.njk",!1,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,o){e.render(n.getVariables(),i,function(e,t){e?r(e):o(null,t)})}),e.push(function(e,t){s+=e,t(null)}),t.waterfall(e,function(){r(null,s)})})})})})})})})})})}catch(e){r(o.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/custom-popup.html.njk"]={root:function(e,t,o,n,i){var r=0,s=0,a="";try{r=0,s=31;n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',t,["customPopup"])&&(a+='\n \n'),i(null,a)}catch(e){i(n.handleError(e,r,s))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/gogo-controls.html.njk"]={root:function(e,t,o,n,i){var r=0,s=0,a="";try{a+='
      \n ',r=1,s=33,(n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',t,["searchPlace"])||(r=1,s=77,n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',t,["searchElements"]))||(r=1,s=124,n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',t,["searchCategories"])))&&(a+='\n
      \n '),a+='\n
      \n '),a+='\n \n
      \n ',r=10,s=33,n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',t,["listMode"])&&(a+='\n
      \n \n
      \n '),i(null,a+='\n
      \n
      ')}catch(e){i(n.handleError(e,r,s))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/spinner-loader.html.njk"]={root:function(n,e,i,r,t){try{var o=r.makeMacro(["id"],[],function(e,t){var o=i;i=new r.Frame,t=t||{},Object.prototype.hasOwnProperty.call(t,"caller")&&i.set("caller",t.caller),i.set("id",e);t="";return t+='\n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n')});e.addExport("create"),e.setVariable("create",o),t(null,"")}catch(e){t(r.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/element-info-bar.html.njk"]={root:function(e,t,o,n,i){var r,s=0,a=0,l="";try{l+="")}catch(e){i(n.handleError(e,s,a))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/general.html.njk"]={root:function(e,t,o,n,i){var r,s=0,a=0,l="";try{l+="")}catch(e){i(n.handleError(e,s,a))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/list.html.njk"]={root:function(e,t,o,n,i){var r=0,s=0,a="";try{a+="")}catch(e){i(n.handleError(e,r,s))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/map.html.njk"]={root:function(e,t,o,n,i){var r,s=0,a=0,l="";try{l+="")}catch(e){i(n.handleError(e,s,a))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/menu-filters.html.njk"]={root:function(e,t,o,n,i){var r,s,a=0,l=0,u="";try{u+="")}catch(e){i(n.handleError(e,a,l))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/search-bar.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+="")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/buttons/show-directory-menu-button.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+=' ')}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/directory-menu/category-item.html.njk"]={root:function(g,v,y,b,o){var _=0,w=0,n="";try{g.getTemplate("components/map/marker-shape.html.njk",!1,"components/directory-menu/category-item.html.njk",!1,function(e,t){e?o(e):t.getExported(function(e,t){e?o(e):Object.prototype.hasOwnProperty.call(t,"markerShape")?(e=t.markerShape,v.setVariable("markerShape",e),Object.prototype.hasOwnProperty.call(t,"icon")?(t=t.icon,v.setVariable("icon",t),n+="\n",t=b.makeMacro(["category","recursive","displayCheckbox","config"],["topSeparator"],function(e,t,o,n,i){var r=y;y=new b.Frame,i=i||{},Object.prototype.hasOwnProperty.call(i,"caller")&&y.set("caller",i.caller),y.set("category",e),y.set("recursive",t),y.set("displayCheckbox",o),y.set("config",n),y.set("topSeparator",!!Object.prototype.hasOwnProperty.call(i,"topSeparator")&&i.topSeparator);var s="";s+="\n",i=b.memberLookup(e,"useForFiltering"),y.set("isCheckable",i,!0),y.topLevel&&v.setVariable("isCheckable",i),y.topLevel&&v.addExport("isCheckable",i),s+='\n\n
      \n\n\t',s+="\n\t",b.memberLookup(e,"displayInMenu")&&(s+='\n\t
    • \n\t\t\t",b.memberLookup(e,"unexpandable")||(s+='
      \t'),s+="\n\t\t
    • \n\n\t\t",!o&&"transiscope"!=b.memberLookup(n,"theme")||(s+="\n\t\t\t",s+='\n\t\t\t
      \n\t\t\t\t
      \n\t\t\t \n\t\t\t \n\t\t\t\t
      \n\t\t\t
      \n\t\t'),s+="\n\t\n\t"),s+="\n\n\t",s+='\n\t
      \n\n\t\t\t\t\t\t",s+='\n\t\t\t\t\t\t
      ",s+="\n\t\t\t\t\t\t",b.memberLookup(p,"icon")?(s+="\n\t\t\t\t\t\t\t",s+=b.suppressValue((_=50,w=14,b.callWrap(b.contextOrFrameLookup(v,y,"icon"),"icon",v,[b.memberLookup(p,"icon"),"icon gogo-color-as",b.memberLookup(p,"id")])),g.opts.autoescape),s+="\n\t\t\t\t\t\t"):(b.memberLookup(p,"useColorForMarker")||b.memberLookup(p,"markerShape"))&&(s+="\n\t\t\t\t\t\t\t",c=b.memberLookup(p,"markerShape")?b.memberLookup(p,"markerShape"):b.memberLookup(b.memberLookup(n,"marker"),"defaultShape"),y.set("shape",c,!0),y.topLevel&&v.setVariable("shape",c),y.topLevel&&v.addExport("shape",c),s+="\n\t\t\t\t\t\t\t",s+=b.suppressValue((_=53,w=21,b.callWrap(b.contextOrFrameLookup(v,y,"markerShape"),"markerShape",v,[b.contextOrFrameLookup(v,y,"shape"),"icon gogo-color-as",b.memberLookup(p,"id")])),g.opts.autoescape),s+="\n\t\t\t\t\t\t"),s+="\n\t\t\t\t\t\t
      \n\n\t\t\t\t\t\t",s+='\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t',s+=b.suppressValue(b.memberLookup(p,"nameShort")?b.memberLookup(p,"nameShort"):b.memberLookup(p,"name"),g.opts.autoescape),s+="\n\t\t\t\t\t\t\t",s+="\n\t\t\t\t\t\t\t",b.contextOrFrameLookup(v,y,"isSubcategories")&&!b.memberLookup(p,"unexpandable")&&(s+='
      '),s+="\n\t\t\t\t\t\t\t",b.memberLookup(b.memberLookup(n,"menu"),"displayNumberOfElementForEachCategory")&&(s+='\n\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t"),s+="\n\t\t\t\t\t\t
      \n\n\t\t\t\t\t
      \n\n\t\t\t\t\t",o&&(s+="\n\t\t\t\t\t\t",s+='\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t
      \n\n
      \n")}),v.addExport("renderItem"),v.setVariable("renderItem",t),o(null,n)):o(new Error("cannot import 'icon'"))):o(new Error("cannot import 'markerShape'"))})})}catch(e){o(b.handleError(e,_,w))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/directory-menu/directory-menu.html.njk"]={root:function(p,d,h,m,f){var g=0,v=0,y="";try{y+='
      \n\t',m.memberLookup(m.memberLookup(m.contextOrFrameLookup(d,h,"config"),"images"),"menuTopImage")&&(y+='\n\t\t
      \n\t\t\t\n\n\t\t\t',y+="\n\t\t\t",m.memberLookup(m.memberLookup(m.contextOrFrameLookup(d,h,"config"),"menu"),"showOnePanePerMainOption")){y+='\n\t\t\t\t
      \n\n\t\t\t\t\t
      \n\n\t\t\t\t\t
      \n\t\t\t\t\t\t
      ',y+=m.suppressValue(p.getFilter("i18n").call(d,"all"),p.opts.autoescape),y+='
      \n\t\t\t\t\t\t
      ',y+=m.suppressValue(p.getFilter("i18n").call(d,"all.the"),p.opts.autoescape),y+=" ",y+=m.suppressValue(p.getFilter("i18n").call(d,"element.plural"),p.opts.autoescape),y+="
      \n\t\t\t\t\t
      \n\n\t\t\t\t\t",y+="\n\t\t\t\t\t",h=h.push();var o=m.memberLookup(m.contextOrFrameLookup(d,h,"mainCategory"),"options");if(o)for(var n=(o=m.fromIterator(o)).length,i=0;i\n\t\t\t\t\t\t
      \n\t\t\t\t\t"}h=h.pop(),y+="\n\n\t\t\t\t
      \n\t\t\t"}y+='\n\n\t\t\t
      \n\t\t\t\t\t
        \n\n\t\t\t\t\t\t',y+="\n\t\t\t\t\t\t",h=h.push();var s=m.memberLookup(m.memberLookup(m.contextOrFrameLookup(d,h,"config"),"menu"),"filters");if(s)for(var a=(s=m.fromIterator(s)).length,l=0;l\n\t \t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t ",y+='\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t',y+='\n\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t"),y+="\n\t\t\t\t\t \t"})}h=h.pop(),y+="\n\n\t\t\t\t\t \t",(u=[]).push(function(o){p.getTemplate("components/directory-menu/show-only-favorite-pending-moderation.html.njk",!1,"components/directory-menu/directory-menu.html.njk",!1,function(e,t){e?f(e):o(null,t)})}),u.push(function(e,o){e.render(d.getVariables(),h,function(e,t){e?f(e):o(null,t)})}),u.push(function(e,t){y+=e,t(null)}),p.waterfall(u,function(){var e;y+="\n\t\t\t\t\t\t\t",0\n\t\t\t\t
        \n\n\t\t\t
      \n\t\t
      \n\n\t\n\n")})}})})})}catch(e){f(m.handleError(e,g,v))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/directory-menu/filter-date.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+='
      ',r+=n.suppressValue(e.getFilter("i18n").call(t,"filter.date.view."+u),e.opts.autoescape),r+="\n "}o=o.pop(),r+='\n
      \n\n
      \n ',o=o.push();var c=n.memberLookup(n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"options"),"views");if(c)for(var p=(c=n.fromIterator(c)).length,d=0;d\n ',"range"==h&&(r+='\n
      \n \n to\n \n
      \n '),r+="\n
      \n "}o=o.pop(),i(null,r+="\n\n")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/directory-menu/filter-header.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+='
    • \n ',r+=n.suppressValue(e.getFilter("safe").call(t,"<"+n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"subtype")+">"+n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"label")+""),e.opts.autoescape),i(null,r+="\n
    • ")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/directory-menu/filter-number.html.njk"]={root:function(e,t,o,n,i){var r="";try{"value"==n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"subtype")?r+='\n \n':"slider"==n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"subtype")&&(r+='\n
      \n'),i(null,r+="\n")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/directory-menu/filter-paragraph.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+='
    • \n ',r+=n.suppressValue(e.getFilter("safe").call(t,"<"+n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"subtype")+">"+n.memberLookup(n.contextOrFrameLookup(t,o,"filter"),"label")+""),e.opts.autoescape),i(null,r+="\n
    • ")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/directory-menu/filter-taxonomy.html.njk"]={root:function(y,b,_,w,k){var x=0,L=0,C="";try{y.getTemplate("components/directory-menu/category-item.html.njk",!1,"components/directory-menu/filter-taxonomy.html.njk",!1,function(e,t){e?k(e):t.getExported(function(e,t){if(e)k(e);else{if(b.setVariable("categoryRenderer",t),C+="\n\n",w.memberLookup(w.memberLookup(w.contextOrFrameLookup(b,_,"config"),"menu"),"showOnePanePerMainOption")){C+="\n ",C+='\n \n ",C+="\n ",_=_.push();var o=w.memberLookup(w.contextOrFrameLookup(b,_,"mainCategory"),"options");if(o)for(var n=(o=w.fromIterator(o)).length,i=0;i\n "}_=_.pop(),C+="\n\n ",C+="\n ",x=17,L=47,e=w.callWrap(w.memberLookup(w.contextOrFrameLookup(b,_,"rootCategories"),"slice"),'rootCategories["slice"]',b,[1]),_.set("otherCategories",e,!0),_.topLevel&&b.setVariable("otherCategories",e),_.topLevel&&b.addExport("otherCategories",e),C+='\n
      \n ',_=_.push();var c=w.contextOrFrameLookup(b,_,"otherCategories");if(c)for(var p=(c=w.fromIterator(c)).length,d=0;d\n"}else{C+="\n ",C+='\n \n\t"),i+="\n"),i+="\n\n",L=L.push();var u=C.memberLookup(e,"children");if(u)for(var c=(u=C.fromIterator(u)).length,p=0;p",i+=C.suppressValue(C.memberLookup(C.memberLookup(h,"option"),"name"),k.opts.autoescape),i+=" : ",i+=C.suppressValue(C.memberLookup(C.memberLookup(h,"children"),"length"),k.opts.autoescape),i+=", ",i+=C.suppressValue(C.memberLookup(C.memberLookup(C.memberLookup(h,"children"),0),"isLastCategoryDepth"),k.opts.autoescape),i+="
      --\x3e\n\t\t",d=C.memberLookup(C.contextOrFrameLookup(x,L,"option"),"enableDescription")||C.memberLookup(C.memberLookup(e,"category"),"enableDescription")?"s6 m5":"s12",L.set("colWidth",d,!0),L.topLevel&&x.setVariable("colWidth",d),L.topLevel&&x.addExport("colWidth",d),i+="\n\t\t
      \n\t\t\t\n\n\t\t\t\t',d=C.memberLookup(C.memberLookup(h,"option"),"icon")?C.memberLookup(C.memberLookup(h,"option"),"icon"):"gogo-icon-angle-right",L.set("iconClass",d,!0),L.topLevel&&x.setVariable("iconClass",d),L.topLevel&&x.addExport("iconClass",d),i+="\t\n\t\t\t\t",d=C.memberLookup(C.memberLookup(h,"option"),"icon")?C.memberLookup(C.memberLookup(h,"option"),"id"):"",L.set("iconColorId",d,!0),L.topLevel&&x.setVariable("iconColorId",d),L.topLevel&&x.addExport("iconColorId",d),i+="\t\n\t\t\t\t",C.contextOrFrameLookup(x,L,"iconClass")&&(i+=' \n\t\t\t\t\t\n\t\t\t\t"),i+='\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t",i+=C.suppressValue(C.memberLookup(C.memberLookup(h,"option"),"nameShort"),k.opts.autoescape),i+="\n\t\t\t\t \n\n\t\t\t\t",C.contextOrFrameLookup(x,L,"displayFirstCategoryInline")){i+='\n\t\t\t\t\t(\n\t\t\t\t\t\t',L=L.push();var m=C.memberLookup(C.memberLookup(C.memberLookup(h,"children"),0),"children");if(m)for(var f=(m=C.fromIterator(m)).length,g=0;g\n\t\t\t\t"}i+="\n\n\t\t\t\n\t\t\t",(C.memberLookup(C.contextOrFrameLookup(x,L,"option"),"enableDescription")||C.memberLookup(C.memberLookup(e,"category"),"enableDescription"))&&(i+='\n\t\t\t\t\n\t\t\t"),i+="\n\t\t
      \n \t"}i+="\n\n\t",t=C.memberLookup(C.memberLookup(h,"children"),"length"),L.set("subcategoriesCount",t,!0),L.topLevel&&x.setVariable("subcategoriesCount",t),L.topLevel&&x.addExport("subcategoriesCount",t),i+="\n\t",C.contextOrFrameLookup(x,L,"displayFirstCategoryInline")&&(t-=1,L.set("subcategoriesCount",t,!0),L.topLevel&&x.setVariable("subcategoriesCount",t),L.topLevel&&x.addExport("subcategoriesCount",t)),i+="\n\n\t",L=L.push();var y=C.memberLookup(h,"children");if(y)for(var b=(y=C.fromIterator(y)).length,_=0;_\t\n'),n+="\n\n",w.memberLookup(w.memberLookup(e,"category"),"displayInInfoBar")&&(n+='\n\t

      ',n+=w.suppressValue(w.memberLookup(w.memberLookup(e,"category"),"name"),y.opts.autoescape),n+="

      \n"),n+="\n\n",w.memberLookup(w.memberLookup(e,"category"),"displaySuboptionsInline")&&(n+='
      '),n+="\n",_=_.push();var l=w.memberLookup(e,"children");if(l)for(var u=(l=w.fromIterator(l)).length,c=0;c'),n+='\n\t\t\n\t\t\t",w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"icon")?(n+="\n\t\t\t\t",n+=w.suppressValue((k=38,x=11,w.callWrap(w.contextOrFrameLookup(b,_,"icon"),"icon",b,[w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"icon"),"icon gogo-color-as",w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"id")])),y.opts.autoescape),n+="\n\t\t\t"):(w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"useColorForMarker")||w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"markerShape"))&&(n+="\n\t\t\t\t",d=w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"markerShape")?w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"markerShape"):w.memberLookup(w.memberLookup(w.contextOrFrameLookup(b,_,"config"),"marker"),"defaultShape"),_.set("shape",d,!0),_.topLevel&&b.setVariable("shape",d),_.topLevel&&b.addExport("shape",d),n+="\n\t\t\t\t",n+=w.suppressValue((k=41,x=18,w.callWrap(w.contextOrFrameLookup(b,_,"markerShape"),"markerShape",b,[w.contextOrFrameLookup(b,_,"shape"),"icon gogo-color-as",w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"id")])),y.opts.autoescape),n+="\n\t\t\t"),n+='\n\t\t\t",n+=w.suppressValue(w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"name"),y.opts.autoescape),n+="\n\t\t\t",w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"url")&&(n+=''),n+="\n\t\t\n\t\t",w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"url")&&(n+=""),n+="\n\n\t\t",n+="\n\t\t",!w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"enableDescription")&&!w.memberLookup(w.memberLookup(e,"category"),"enableDescription")||w.memberLookup(w.memberLookup(e,"category"),"displaySuboptionsInline")||(n+='\n\t\t\t\n\t\t"),n+="\n\t \n\t\t",w.memberLookup(w.memberLookup(e,"category"),"displaySuboptionsInline")||(n+="
      "),n+="\n "),n+="\n\n ",n+="\n ",w.memberLookup(w.memberLookup(h,"option"),"displayChildrenInInfoBar")&&!w.memberLookup(w.contextOrFrameLookup(b,_,"option"),"isHidden")){n+="\n\t\t",_=_.push();var m=w.memberLookup(h,"children");if(m)for(var f=(m=w.fromIterator(m)).length,g=0;gOpenStreetMap\n\n'),r+="\n\n",r+=n.suppressValue(e.getFilter("gogo_textarea").call(t,n.contextOrFrameLookup(t,o,"descriptionMore"),n.makeKeywordArgs({truncate:400})),e.opts.autoescape),r+="\n\n",n.contextOrFrameLookup(t,o,"address")||n.contextOrFrameLookup(t,o,"telephone")||n.contextOrFrameLookup(t,o,"email")||n.contextOrFrameLookup(t,o,"website")||n.contextOrFrameLookup(t,o,"urls")){if(r+="\n ",r+="\n ",r+=n.suppressValue(e.getFilter("gogo_title").call(t,e.getFilter("i18n").call(t,"general.infos")),e.opts.autoescape),r+="\n\n ",r+="\n ",r+=n.suppressValue(e.getFilter("gogo_text").call(t,n.contextOrFrameLookup(t,o,"address")),e.opts.autoescape),r+="\n\n ",r+="\n ",r+=n.suppressValue(e.getFilter("gogo_tel").call(t,n.contextOrFrameLookup(t,o,"telephone")),e.opts.autoescape),r+="\n\n ",r+="\n ",r+=n.suppressValue(e.getFilter("gogo_email").call(t,n.contextOrFrameLookup(t,o,"email")),e.opts.autoescape),r+="\n\n ",r+="\n ",r+=n.suppressValue(e.getFilter("gogo_url").call(t,n.contextOrFrameLookup(t,o,"website")),e.opts.autoescape),r+="\n\n ",n.contextOrFrameLookup(t,o,"urls")){r+="\n ",o=o.push();var s=n.contextOrFrameLookup(t,o,"urls");if(s)for(var a=(s=n.fromIterator(s)).length,l=0;l",r+=n.suppressValue(e.getFilter("i18n").call(t,"other.infos"),e.opts.autoescape),r+='\n
      \n ',o=o.push();var c=n.contextOrFrameLookup(t,o,"customData");if(c)for(var p=(c=n.fromIterator(c)).length,d=0;d\n"}r+="\n\n",e.getFilter("length").call(t,n.contextOrFrameLookup(t,o,"files"))&&(r+="\n ",r+=n.suppressValue(e.getFilter("gogo_separator").call(t,""),e.opts.autoescape),r+="\n

      ",r+=n.suppressValue(e.getFilter("i18n").call(t,"files"),e.opts.autoescape),r+="

      \n ",r+=n.suppressValue(e.getFilter("gogo_files").call(t,n.contextOrFrameLookup(t,o,"files")),e.opts.autoescape),r+="\n"),r+="\n\n",n.contextOrFrameLookup(t,o,"updatedAt")&&(r+="\n ",r+=n.suppressValue(e.getFilter("gogo_separator").call(t,""),e.opts.autoescape),r+='\n
      ',r+=n.suppressValue(e.getFilter("i18n").call(t,"updated.at"),e.opts.autoescape),r+=" : ",r+=n.suppressValue(e.getFilter("date").call(t,n.contextOrFrameLookup(t,o,"updatedAt")),e.opts.autoescape),r+="
      \n"),i(null,r+="\n\n\n\n")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/default-header-content.html.njk"]={root:function(e,t,o,n,i){var r="";try{i(null,r+=n.suppressValue(e.getFilter("gogo_textarea").call(t,n.contextOrFrameLookup(t,o,"description"),n.makeKeywordArgs({truncate:500})),e.opts.autoescape))}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element.html.njk"]={root:function(r,s,a,l,u){var c=0,p=0,d="";try{var e,t,o="components/element/";a.set("here",o,!0),a.topLevel&&s.setVariable("here",o),a.topLevel&&s.addExport("here",o),d+="\n",d+="\n",d+="\n",d+='\n
    • \n\n',e=(l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"isPending")||l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"isDeleted"))&&(c=8,p=105,l.callWrap(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',s,["pending"]))?"pending":"",a.set("pendingClass",e,!0),a.topLevel&&s.setVariable("pendingClass",e),a.topLevel&&s.addExport("pendingClass",e),d+="\n",c=9,p=53,t=l.callWrap(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',s,["elementHistory"])&&l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"contributions")&&0\n ";var n=[];n.push(function(o){r.getTemplate(l.contextOrFrameLookup(s,a,"here")+"header.html.njk",!1,"components/element/element.html.njk",!1,function(e,t){e?u(e):o(null,t)})}),n.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?u(e):o(null,t)})}),n.push(function(e,t){d+=e,t(null)}),r.waterfall(n,function(){d+="\n
    • \n\n",d+="\n";var e=[];e.push(function(o){r.getTemplate(l.contextOrFrameLookup(s,a,"here")+"interactive-section.html.njk",!1,"components/element/element.html.njk",!1,function(e,t){e?u(e):o(null,t)})}),e.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?u(e):o(null,t)})}),e.push(function(e,t){d+=e,t(null)}),r.waterfall(e,function(){d+="\n\n",d+="\n";var e=[];e.push(function(o){r.getTemplate(l.contextOrFrameLookup(s,a,"here")+"menu.html.njk",!1,"components/element/element.html.njk",!1,function(e,t){e?u(e):o(null,t)})}),e.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?u(e):o(null,t)})}),e.push(function(e,t){d+=e,t(null)}),r.waterfall(e,function(){if(d+="\n\n",d+="\n",l.contextOrFrameLookup(s,a,"isHistoryAvailable")&&(d+='\n \n"),d+="\n\n",d+='\n\n
      \n\n ',l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"images"),"length")){d+='\n
      \n
      \n "}var i;d+='\n
      \n ',l.memberLookup(l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"images"),"length")&&(d+="\n ",d+='\n
      \n \n \n \n
      \n '),d+='\n
      \n
      \n\n ',d+="\n ",c=56,p=39,l.callWrap(l.memberLookup(l.contextOrFrameLookup(s,a,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',s,["directModeration"])&&(d+="\n ",(i=[]).push(function(o){r.getTemplate(l.contextOrFrameLookup(s,a,"here")+"admin/pending-contribution.html.njk",!1,"components/element/element.html.njk",!1,function(e,t){e?u(e):o(null,t)})}),i.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?u(e):o(null,t)})}),i.push(function(e,t){d+=e,t(null)}),r.waterfall(i,function(){d+="\n ",r.getTemplate(l.contextOrFrameLookup(s,a,"here")+"admin/votes-reports.html.njk",!1,"components/element/element.html.njk",!1,function(e,t){e?u(e):t.getExported(function(e,t){e?u(e):(s.setVariable("VotesReportsRenderer",t),d+="\n ",d+=l.suppressValue((c=59,p=40,l.callWrap(l.memberLookup(t,"render"),'VotesReportsRenderer["render"]',s,["Votes",l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"votes"),l.contextOrFrameLookup(s,a,"smallWidth")])),r.opts.autoescape),d+="\n ",d+=l.suppressValue((c=60,p=40,l.callWrap(l.memberLookup(t,"render"),'VotesReportsRenderer["render"]',s,["Erreurs signalées",l.memberLookup(l.contextOrFrameLookup(s,a,"element"),"reports"),l.contextOrFrameLookup(s,a,"smallWidth")])),r.opts.autoescape),d+="\n ")})})})),d+="\n\n ",d+="\n ",d+=l.suppressValue(r.getFilter("safe").call(s,l.contextOrFrameLookup(s,a,"customBody")),r.opts.autoescape),d+="\n
      \n\n ",d+="\n ",l.contextOrFrameLookup(s,a,"isHistoryAvailable")&&(d+='\n
      \n ',(i=[]).push(function(o){r.getTemplate(l.contextOrFrameLookup(s,a,"here")+"admin/contributions.html.njk",!1,"components/element/element.html.njk",!1,function(e,t){e?u(e):o(null,t)})}),i.push(function(e,o){e.render(s.getVariables(),a,function(e,t){e?u(e):o(null,t)})}),i.push(function(e,t){d+=e,t(null)}),r.waterfall(i,function(){d+="\n
      \n "})),u(null,d+="\n
      \n
      \n
      \n\n\n\n")})})})}catch(e){u(l.handleError(e,c,p))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/header.html.njk"]={root:function(e,t,o,n,i){var r,s=0,a=0,l="";try{l+="\n",n.memberLookup(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"infobar"),"displayDateField")&&(l+="\n
      \n ',l+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"dateToDisplay"),"dddd"),e.opts.autoescape),l+='\n ',l+=n.suppressValue((s=5,a=74,n.callWrap(n.memberLookup(n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"dateToDisplay"),"date"),'element["dateToDisplay"]["date"]',t,[])),e.opts.autoescape),l+='\n ',l+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"dateToDisplay"),"MMM"),e.opts.autoescape),l+='\n ',l+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"dateToDisplay"),"MMMM"),e.opts.autoescape),l+='\n ',l+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"dateToDisplay"),"YYYY"),e.opts.autoescape),l+="\n
      \n"),l+='\n\n
      \n\n ',l+="\n
      \n\n \n\n ",l+='\n \n\n ',l+='\n

      ',l+=n.suppressValue(e.getFilter("safe").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"name")),e.opts.autoescape),l+="

      \n ",n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"isDeleted")&&(l+="
      ",l+=n.suppressValue(e.getFilter("i18n").call(t,"rejected.or.deleted.element"),e.opts.autoescape),l+=""),l+="\n\n ",l+="\n ",n.contextOrFrameLookup(t,o,"showDistance")&&(l+='\n ~ ',l+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"distance"),e.opts.autoescape),l+=" km\n "),l+="\n\n ",l+="\n ",r=n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"originalAddress"),o.set("address",r,!0),o.topLevel&&t.setVariable("address",r),o.topLevel&&t.addExport("address",r),l+="\n ",n.contextOrFrameLookup(t,o,"address")&&(l+='\n \n ',l+="\n ",n.memberLookup(n.contextOrFrameLookup(t,o,"address"),"postalCode")&&(l+='',l+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"address"),"postalCode"),e.opts.autoescape),l+=""),l+="\n ",n.memberLookup(n.contextOrFrameLookup(t,o,"address"),"addressLocality")&&(l+=' ',l+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"address"),"addressLocality"),e.opts.autoescape),l+=""),l+="\n \n "),l+="\n\n
      \n\n
      \n\n ",l+="\n
      \n\n
      ",l+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"customHeader")),e.opts.autoescape),l+="
      \n\n ",l+='\n \n\n ',o.set("lastIconToDisplay","",!0),o.topLevel&&t.setVariable("lastIconToDisplay",""),o.topLevel&&t.addExport("lastIconToDisplay",""),l+="\n ",o=o.push();var u=n.contextOrFrameLookup(t,o,"currOptionsValues");if(u)for(var c=(u=n.fromIterator(u)).length,p=0;p\n ',h=n.memberLookup(b,"isFilledByFilters")?"":"disabled",o.set("isDisabled",h,!0),o.topLevel&&t.setVariable("isDisabled",h),o.topLevel&&t.addExport("isDisabled",h),l+="\n ",m=n.memberLookup(n.contextOrFrameLookup(t,o,"option"),"icon"),o.set("icon",m,!0),o.topLevel&&t.setVariable("icon",m),o.topLevel&&t.addExport("icon",m),l+="\n ",s=63,a=82,f=n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"option"),"getOwner"),'option["getOwner"]',t,[])?n.memberLookup((s=63,a=56,n.callWrap(n.memberLookup((s=63,a=45,n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"option"),"getOwner"),'option["getOwner"]',t,[])),"getOwner"),'the return value of (option["getOwner"])["getOwner"]',t,[])),"icon"):"",o.set("parentIcon",f,!0),o.topLevel&&t.setVariable("parentIcon",f),o.topLevel&&t.addExport("parentIcon",f),l+="\n ",g=n.contextOrFrameLookup(t,o,"parentIcon")&&!n.memberLookup(n.contextOrFrameLookup(t,o,"option"),"useIconForMarker")?n.contextOrFrameLookup(t,o,"parentIcon"):n.contextOrFrameLookup(t,o,"icon"),o.set("iconToDisplay",g,!0),o.topLevel&&t.setVariable("iconToDisplay",g),o.topLevel&&t.addExport("iconToDisplay",g),l+="\n\n ",v=n.contextOrFrameLookup(t,o,"iconToDisplay")==n.contextOrFrameLookup(t,o,"lastIconToDisplay"),o.set("sameIcon",v,!0),o.topLevel&&t.setVariable("sameIcon",v),o.topLevel&&t.addExport("sameIcon",v),l+="\n ",n.contextOrFrameLookup(t,o,"iconToDisplay")&&!n.contextOrFrameLookup(t,o,"sameIcon")&&(l+='\n \n "),l+="\n ",y=n.contextOrFrameLookup(t,o,"iconToDisplay"),o.set("lastIconToDisplay",y,!0),o.topLevel&&t.setVariable("lastIconToDisplay",y),o.topLevel&&t.addExport("lastIconToDisplay",y),l+='\n\n ",l+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"option"),"nameShort"),e.opts.autoescape),l+="\n \n "}o=o.pop(),l+="\n\n ",e.getFilter("length").call(t,n.contextOrFrameLookup(t,o,"currOptionsValues"))||(l+='\n ',l+=n.suppressValue(n.memberLookup(n.memberLookup(n.contextOrFrameLookup(t,o,"mainOptionToDisplay"),"option"),"name"),e.opts.autoescape),l+="\n "),l+="\n\n \n\n ",l+='\n \n ',n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"isPending")&&(p+='\n
      \n \n \n ',u=5,c=54,r=n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',t,["vote"])||(u=5,c=91,n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',t,["vote"])&&(u=5,c=132,n.callWrap(n.memberLookup(n.memberLookup(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"features"),"vote"),"hasRole"),'config["features"]["vote"]["hasRole"]',t,["user"]))),o.set("voteEnabled",r,!0),o.topLevel&&t.setVariable("voteEnabled",r),o.topLevel&&t.addExport("voteEnabled",r),p+="\n ",s=n.contextOrFrameLookup(t,o,"voteEnabled")?"validation-process-info":"",o.set("class",s,!0),o.topLevel&&t.setVariable("class",s),o.topLevel&&t.addExport("class",s),p+='\n \n ",u=11,c=50,a=n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',t,["directModeration"]),o.set("isAdmin",a,!0),o.topLevel&&t.setVariable("isAdmin",a),o.topLevel&&t.addExport("isAdmin",a),p+="\n ",p+="\n ",(n.contextOrFrameLookup(t,o,"voteEnabled")||n.contextOrFrameLookup(t,o,"isAdmin"))&&(p+='\n ',p+=n.suppressValue(n.contextOrFrameLookup(t,o,"isAdmin")?e.getFilter("i18n").call(t,"decide"):e.getFilter("i18n").call(t,"vote"),e.opts.autoescape),p+="\n "),p+="\n \n
      \n "),p+="\n\n ",l={"-2":"geolocation.error","-1":"no.category.provided",0:"no.moderation.necessary",1:"errors.reported",2:"non.consensual.votes",3:"pending.for.too.long",4:"potential.duplicate"},o.set("moderationStates",l,!0),o.topLevel&&t.setVariable("moderationStates",l),o.topLevel&&t.addExport("moderationStates",l),p+="\n\n ",n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"needsModeration")&&(u=31,c=61,n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',t,["moderation"]))&&(p+='\n
      \n \n \n ',p+=n.suppressValue(e.getFilter("i18n").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"moderationStates"),n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"moderationState"))),e.opts.autoescape),p+="\n ",u=36,c=39,n.callWrap(n.memberLookup(n.contextOrFrameLookup(t,o,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',t,["directModeration"])&&(p+="\n ",n.inOperator(n.memberLookup(n.contextOrFrameLookup(t,o,"element"),"moderationState"),[n.memberLookup(n.contextOrFrameLookup(t,o,"ElementModerationState"),"ReportsSubmitted"),n.memberLookup(n.contextOrFrameLookup(t,o,"ElementModerationState"),"PossibleDuplicate")])&&(p+='\n ',p+=n.suppressValue(e.getFilter("i18n").call(t,"mark.as.resolved"),e.opts.autoescape),p+='\n \n \n ",a=3,l=33,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["favorite"])&&(u+=' \n \n \n "),u+="\n\n ",a=16,l=33,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["stamp"])){u+="\n ",i=i.push();var e=r.contextOrFrameLookup(n,i,"allowedStamps");if(e)for(var t=(e=r.fromIterator(e)).length,c=0;c\n \n ',u+=r.suppressValue(r.memberLookup(p,"name"),o.opts.autoescape),u+="\n
      \n "}i=i.pop(),u+="\n "}u+="\n\n ",r.contextOrFrameLookup(n,i,"isMapMode")||(u+='\n \n "),u+="\n\n ",a=34,l=33,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["share"])&&(u+=' \n \n "),u+="\n \n ";var d,h,a=42,l=33;r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["subscribe"])&&(u+=" \n ",i.set("subscribed",!1,!0),i.topLevel&&n.setVariable("subscribed",!1),i.topLevel&&n.addExport("subscribed",!1),u+="\n ",0
      \n ',u+=r.suppressValue((a=51,l=29,r.callWrap(r.memberLookup(t,"create"),'spinnerLoader["create"]',n,["subscriber-loader"])),o.opts.autoescape),u+='\n ',u+=r.suppressValue(o.getFilter("i18n").call(n,"subscribe.changes"),o.opts.autoescape),u+='\n
      \n \n ")})})),u+="\n\n ",d=r.memberLookup(r.memberLookup(r.memberLookup(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"features"),"edit"),"options"),"readonlySources"),i.set("readonlySources",d,!0),i.topLevel&&n.setVariable("readonlySources",d),i.topLevel&&n.addExport("readonlySources",d),u+="\n ",a=63,l=33,!r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["edit"])||r.memberLookup(r.contextOrFrameLookup(n,i,"element"),"isPending")&&(a=64,l=63,!r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["directModeration"]))||r.contextOrFrameLookup(n,i,"readonlySources")&&r.inOperator(r.memberLookup(r.contextOrFrameLookup(n,i,"element"),"sourceKey"),r.contextOrFrameLookup(n,i,"readonlySources"))||(u+=' \n \n "),u+="\n\n ",a=75,l=33,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["report"])&&!r.memberLookup(r.contextOrFrameLookup(n,i,"element"),"isPending")&&(u+=' \n \n "),u+=" \n\n ",a=83,l=33,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',n,["delete"])&&r.memberLookup(r.contextOrFrameLookup(n,i,"element"),"status")!=r.memberLookup(r.contextOrFrameLookup(n,i,"ElementStatus"),"PendingAdd")&&(u+=' \n \n "),s(null,u+=" \n
      ")}catch(e){s(r.handleError(e,a,l))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/list/list.html.njk"]={root:function(e,t,n,o,i){var r=0,s=0,a="";try{a+='
      \n\n ';var l=[];l.push(function(o){e.getTemplate("components/buttons/show-directory-menu-button.html.njk",!1,"components/list/list.html.njk",!1,function(e,t){e?i(e):o(null,t)})}),l.push(function(e,o){e.render(t.getVariables(),n,function(e,t){e?i(e):o(null,t)})}),l.push(function(e,t){a+=e,t(null)}),e.waterfall(l,function(){a+='\n\n \n \n ',a+=o.suppressValue(e.getFilter("i18n").call(t,"back.to.map"),e.opts.autoescape),a+='\n \n\n
      \n ',a+=o.suppressValue(e.getFilter("i18n").call(t,"search.radius"),e.opts.autoescape),a+='\n 0\n
      \n 500\n
      \n\n \n\n
      \n
      \n\n
      \n
        \n
        \n
        ',a+=o.suppressValue((r=29,s=61,o.callWrap(o.memberLookup(o.contextOrFrameLookup(t,n,"spinnerLoader"),"create"),'spinnerLoader["create"]',t,["directory-list-spinner-loader"])),e.opts.autoescape),a+='
        \n \n
        ')})}catch(e){i(o.handleError(e,r,s))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/map/info-bar.html.njk"]={root:function(e,t,o,n,i){var r=0,s=0,a="";try{a+=' ')}catch(e){i(n.handleError(e,r,s))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/map/map.html.njk"]={root:function(e,t,n,o,i){var r=0,s=0,a="";try{a+='\n\n
        \n ';var l=[];l.push(function(o){e.getTemplate("components/buttons/show-directory-menu-button.html.njk",!1,"components/map/map.html.njk",!1,function(e,t){e?i(e):o(null,t)})}),l.push(function(e,o){e.render(t.getVariables(),n,function(e,t){e?i(e):o(null,t)})}),l.push(function(e,t){a+=e,t(null)}),e.waterfall(l,function(){a+="\n\n ",r=7,s=33,o.callWrap(o.memberLookup(o.contextOrFrameLookup(t,n,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',t,["listMode"])&&(a+='\n
        \n \n ',a+=o.suppressValue(e.getFilter("i18n").call(t,"show.as.list"),e.opts.autoescape),a+="\n
        \n "),a+='\n
        \n\n
        \n ',r=16,s=33,o.callWrap(o.memberLookup(o.contextOrFrameLookup(t,n,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',t,["layers"])&&(a+='\n
        \n '):!0===r.getTest("defined").call(s,l.memberLookup(e,"url"))?(n+='\n \n '):(n+="\n ",n+='\n
        \n '),a=i,new l.SafeString(n+="\n\n")});s.addExport("markerShape"),s.setVariable("markerShape",e),0;var o=l.makeMacro(["icon","class"],["colorOptionId"],function(e,t,o){var n=a;a=new l.Frame,o=o||{},Object.prototype.hasOwnProperty.call(o,"caller")&&a.set("caller",o.caller),a.set("icon",e),a.set("class",t),a.set("colorOptionId",Object.prototype.hasOwnProperty.call(o,"colorOptionId")?o.colorOptionId:"");o="";return o+="\n\n ",r.getFilter("is_image_url").call(s,e)?(o+='\n \n\t\t\t',b+=f.suppressValue(d.getFilter("safe").call(h,f.contextOrFrameLookup(h,m,"popup")),d.opts.autoescape),b+="\n\t\t
        \n\t"),b+='\n\n\t
        \n\n\t\t',b+="\n\t\t",b+=f.suppressValue((v=34,y=16,f.callWrap(e,"markerShape",h,[f.memberLookup(f.contextOrFrameLookup(h,m,"element"),"markerShape"),"marker-shape gogo-color-as "+f.contextOrFrameLookup(h,m,"pendingClass"),f.memberLookup(f.contextOrFrameLookup(h,m,"element"),"colorOptionId")])),d.opts.autoescape),b+="\n\n\t\t",f.contextOrFrameLookup(h,m,"mainIconInMarkerShape")){if(b+="\n\t\t\t",b+='\n\t\t\t
        \n\t\t\t\t",b+=f.suppressValue((v=40,y=11,f.callWrap(o,"icon",h,[f.memberLookup(f.contextOrFrameLookup(h,m,"element"),"mainIcon"),"marker-icon rotate-reverse "+(f.contextOrFrameLookup(h,m,"circle")?f.contextOrFrameLookup(h,m,"pendingClass"):"")])),d.opts.autoescape),b+="\n\t\t\t
        \n\n\t\t\t",b+="\n\t\t\t",f.contextOrFrameLookup(h,m,"showOtherIcons")&&(b+='\n\t\t\t\t
        \n\t\t\t\t'),b+="\n\n\t\t\t\t",v=57,y=35,f.callWrap(f.memberLookup(f.contextOrFrameLookup(h,m,"config"),"isFeatureAvailable"),'config["isFeatureAvailable"]',h,["stamp"])){b+="\n\t\t\t\t\t",m=m.push();var n=f.contextOrFrameLookup(h,m,"displayStamps");if(n)for(var i=(n=f.fromIterator(n)).length,r=0;r\n\t\t"}if(b+="\n\t
        \n\n\t",b+="\n\t",f.contextOrFrameLookup(h,m,"showOtherIcons")){b+='\n\t\t
        \n\t"}g(null,b+="\n\n
        \n\n\n\n")}else g(new Error("cannot import 'icon'"))}else g(new Error("cannot import 'markerShape'"))})})}catch(e){g(f.handleError(e,v,y))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/modals/abstract-modal.html.njk"]={b_id:function(e,t,o,n,i){try{o=o.push(!0);i(null,"default")}catch(e){i(n.handleError(e,0,18))}},b_modalClass:function(e,t,o,n,i){try{o=o.push(!0);i(null,"action-modal")}catch(e){i(n.handleError(e,0,89))}},b_content:function(e,t,o,n,i){try{o=o.push(!0);i(null,"\n\t \t\t")}catch(e){i(n.handleError(e,4,8))}},b_cancelText:function(e,t,o,n,i){var r="";try{o=o.push(!0);i(null,r+=n.suppressValue(e.getFilter("i18n").call(t,"cancel"),e.opts.autoescape))}catch(e){i(n.handleError(e,14,7))}},b_submitText:function(e,t,o,n,i){var r="";try{o=o.push(!0);i(null,r+=n.suppressValue(e.getFilter("i18n").call(t,"send"),e.opts.autoescape))}catch(e){i(n.handleError(e,17,7))}},root:function(o,n,i,r,s){var a=0,l=0,u="";try{u+=''))})}))}))}))}))}))})}catch(e){s(r.handleError(e,a,l))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/modals/contribution-information.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+='")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/modals/export-iframe.html.njk"]={root:function(e,t,o,n,i){var r=0,s=0,a="";try{if(a+='\x3c!-- Pop up message alerte--\x3e\n")}catch(e){i(n.handleError(e,r,s))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/modals/image.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+='\n\n")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/search-bar/search-bar.html.njk"]={root:function(o,n,i,r,s){var a=0,l=0,u="";try{a=0,l=31;(r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',n,["searchPlace"])||(a=0,l=75,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',n,["searchElements"]))||(a=0,l=122,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',n,["searchCategories"])))&&(u+="\n\n",o.getTemplate("components/spinner-loader.html.njk",!1,"components/search-bar/search-bar.html.njk",!1,function(e,t){e?s(e):t.getExported(function(e,t){e?s(e):(n.setVariable("spinnerLoader",t),u+='\n
        \n\n ',u+='\n
        \n \n ',u+=r.suppressValue((a=8,l=35,r.callWrap(r.memberLookup(t,"create"),'spinnerLoader["create"]',n,["search-spinner-loader"])),o.opts.autoescape),u+="\n \n\n ",a=11,l=39,r.callWrap(r.memberLookup(r.contextOrFrameLookup(n,i,"config"),"isFeatureActivated"),'config["isFeatureActivated"]',n,["searchGeolocate"])&&(u+='\n ",u+=r.suppressValue(o.getFilter("i18n").call(n,"no.result.found"),o.opts.autoescape),u+="
        \n\n
        \n\n",u+="\n\n")})})),s(null,u)}catch(e){s(r.handleError(e,a,l))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/search-bar/search-results-header.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+='\n')}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/themes/default.html.njk"]={root:function(e,t,o,n,i){try{i(null,"")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/themes/flat.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+="")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/themes/presdecheznous.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+="")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["styles/themes/transiscope.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+="")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/admin/contribution-item.html.njk"]={root:function(e,t,o,n,i){var r="";try{var s,a,l,u,c,p={0:"add",1:"modification",2:"vote",3:"reporting",4:"imported"};o.set("contributionType",p,!0),o.topLevel&&t.setVariable("contributionType",p),o.topLevel&&t.addExport("contributionType",p),r+=" \n\n",s={"":"waiting","-5":"modified.pending","-4":"deleted","-3":"refused.votes","-2":"refused.admin","-1":"pending.modifications",0:"pending.add",1:"validated.admin",2:"validated.votes",3:"added.admin",4:"modified.admin",5:"modified.owner",6:"modified.direct.link",9:"modified.other.project"},o.set("elementStatus",s,!0),o.topLevel&&t.setVariable("elementStatus",s),o.topLevel&&t.addExport("elementStatus",s),r+=" \n\n",a={0:"anonymous",1:"anonymous.email",2:"logged.user",3:"admin",4:"anonymous.link"},o.set("userRoles",a,!0),o.topLevel&&t.setVariable("userRoles",a),o.topLevel&&t.addExport("userRoles",a),r+=" \n\n",r+='\n\n
        ',r+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"updatedAt")),e.opts.autoescape),r+="
        \n "):(r+=" \n ",n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"status")&&(r+=" ",r+="\n
        \n ",r+=n.suppressValue(e.getFilter("upper").call(t,e.getFilter("i18n").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"contributionType"),n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"type")))),e.opts.autoescape),r+=' \n \n ",n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"resolvedMessage")&&(r+=' ',r+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"resolvedMessage"),e.opts.autoescape),r+=""),r+="\n ",n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"resolvedBy")&&(r+="(",r+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"resolvedBy"),e.opts.autoescape),r+=")"),r+=' \n \n
        \n
        ',r+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"updatedAt")),e.opts.autoescape),r+="
        \n "),r+="\n\n
        \n ",r+=n.suppressValue(e.getFilter("i18n").call(t,"proposed.by"),e.opts.autoescape),r+=" ",r+=n.suppressValue(n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"user"),e.opts.autoescape),r+=' \n ',r+=n.suppressValue(e.getFilter("i18n").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"userRoles"),n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"userRole"))),e.opts.autoescape),r+=" \n ",r+=n.suppressValue(e.getFilter("i18n").call(t,"the"),e.opts.autoescape),r+=" ",r+=n.suppressValue(e.getFilter("date").call(t,n.memberLookup(n.contextOrFrameLookup(t,o,"item"),"createdAt")),e.opts.autoescape),r+=" \n
        \n "),r+="\n\n\n",r+="\n",i(null,r+="\n")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/admin/contributions.html.njk"]={root:function(n,i,r,s,a){var o=0,l=0,u="";try{var e,t=s.contextOrFrameLookup(i,r,"here")+"admin/";r.set("here",t,!0),r.topLevel&&i.setVariable("here",t),r.topLevel&&i.addExport("here",t),u+="\n\n",e="label-danger",r.set("labelClass",e,!0),r.topLevel&&i.setVariable("labelClass",e),r.topLevel&&i.addExport("labelClass",e),u+='\n\n
          \n ',r=r.push();var c=s.memberLookup(s.contextOrFrameLookup(i,r,"element"),"contributions");if(c)for(var p=(c=s.fromIterator(c)).length,d=0;d
          \n ',n.getTemplate(s.contextOrFrameLookup(i,r,"here")+"vote-report-item.html.njk",!1,"components/element/admin/contributions.html.njk",!1,function(e,t){e?a(e):t.getExported(function(e,t){e?a(e):(r.set("VoteReportRenderer",t),u+="\n ",u+=s.suppressValue((o=9,l=38,s.callWrap(s.memberLookup(t,"render"),'VoteReportRenderer["render"]',i,[m,!0,s.contextOrFrameLookup(i,r,"smallWidth")])),n.opts.autoescape),u+="\n
          \n ")})})):(u+="\n ",u+="\n
        • \n ",(h=[]).push(function(o){n.getTemplate(s.contextOrFrameLookup(i,r,"here")+"contribution-item.html.njk",!1,"components/element/admin/contributions.html.njk",!1,function(e,t){e?a(e):o(null,t)})}),h.push(function(e,o){e.render(i.getVariables(),r,function(e,t){e?a(e):o(null,t)})}),h.push(function(e,t){u+=e,t(null)}),n.waterfall(h,function(){u+="\n
        • \n "})),u+="\n "}r=r.pop(),a(null,u+=" \n
        \n\n\n")}catch(e){a(s.handleError(e,o,l))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/admin/pending-contribution.html.njk"]={root:function(e,t,n,i,r){var o,s,a="";try{i.memberLookup(i.contextOrFrameLookup(t,n,"element"),"isPending")&&i.memberLookup(i.contextOrFrameLookup(t,n,"element"),"pendingContribution")&&(a+='\n
        \n ',o=i.memberLookup(i.contextOrFrameLookup(t,n,"element"),"pendingContribution"),n.set("item",o,!0),n.topLevel&&t.setVariable("item",o),n.topLevel&&t.addExport("item",o),a+="\n ",(s=[]).push(function(o){e.getTemplate(i.contextOrFrameLookup(t,n,"here")+"admin/contribution-item.html.njk",!1,"components/element/admin/pending-contribution.html.njk",!1,function(e,t){e?r(e):o(null,t)})}),s.push(function(e,o){e.render(t.getVariables(),n,function(e,t){e?r(e):o(null,t)})}),s.push(function(e,t){a+=e,t(null)}),e.waterfall(s,function(){a+='\n
        \n
        \n'})),r(null,a)}catch(e){r(i.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/admin/vote-report-item.html.njk"]={root:function(s,a,l,u,t){try{var e=u.makeMacro(["item","lastElement","smallWidth"],[],function(e,t,o,n){var i=l;l=new u.Frame,n=n||{},Object.prototype.hasOwnProperty.call(n,"caller")&&l.set("caller",n.caller),l.set("item",e),l.set("lastElement",t),l.set("smallWidth",o);var r="";return r+="\n\n",l.set("userRoles",n={0:"anonymous",1:"anonymous.email",2:"logged.user",3:"admin"},!0),l.topLevel&&a.setVariable("userRoles",n),l.topLevel&&a.addExport("userRoles",n),r+="\n\n",l.set("reportValues",n={0:"element.no.longer.exists",1:"informations.incorrect",2:"element.no.respect.charter",4:"element.referenced.several.times"},!0),l.topLevel&&a.setVariable("reportValues",n),l.topLevel&&a.addExport("reportValues",n),r+="\n\n",l.set("voteValues",n={"-2":"does.not.respect.charter","-1":"does.not.exist",0:"exists.but.incorrect.informations",1:"exists",2:"exists.and.correct.informations"},!0),l.topLevel&&a.setVariable("voteValues",n),l.topLevel&&a.addExport("voteValues",n),r+="\n\n",r+="\n\n",n=3==u.memberLookup(e,"type")?u.contextOrFrameLookup(a,l,"reportValues"):u.contextOrFrameLookup(a,l,"voteValues"),l.set("itemValues",n,!0),l.topLevel&&a.setVariable("itemValues",n),l.topLevel&&a.addExport("itemValues",n),r+='\n\n
        \n
        ',r+=u.suppressValue(s.getFilter("date").call(a,u.memberLookup(e,"createdAt")),s.opts.autoescape),r+="
        \n ",s.getFilter("default").call(a,o,!1)?r+='\n
        \n \n ':r+='\n \n ',r+="\n ",r+=u.suppressValue(s.getFilter("i18n").call(a,"by"),s.opts.autoescape),r+=" : ",r+=u.suppressValue(u.memberLookup(e,"userEmail")?u.memberLookup(e,"userEmail"):s.getFilter("i18n").call(a,"anonymous"),s.opts.autoescape),r+='\n ',r+=u.suppressValue(s.getFilter("i18n").call(a,u.memberLookup(u.contextOrFrameLookup(a,l,"userRoles"),u.memberLookup(e,"userRole"))),s.opts.autoescape),r+='\n \n
        \n\n
        ',r+=u.suppressValue(s.getFilter("capitalize").call(a,u.memberLookup(e,"comment")),s.opts.autoescape),l=i,new u.SafeString(r+="
        \n\n\n")});a.addExport("render"),a.setVariable("render",e),t(null,"")}catch(e){t(u.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/admin/votes-reports.html.njk"]={root:function(u,c,p,d,h){var m=0,f=0;try{var e=d.makeMacro(["label","array","smallWidth"],[],function(e,s,a,t){var o=p;p=new d.Frame,t=t||{},Object.prototype.hasOwnProperty.call(t,"caller")&&p.set("caller",t.caller),p.set("label",e),p.set("array",s),p.set("smallWidth",a);var l="";return l+="\n\n ",0",l+=d.suppressValue(e,u.opts.autoescape),l+=' \n
        \n ',u.getTemplate("components/element/admin/vote-report-item.html.njk",!1,"components/element/admin/votes-reports.html.njk",!1,function(e,t){e?h(e):t.getExported(function(e,t){if(e)h(e);else{c.setVariable("VoteReportItemRenderer",t),l+=" \n ",p=p.push();var o=s;if(s)for(var n=(o=d.fromIterator(s)).length,i=0;i
        \n '}p=p.pop(),l+=" \n \n "}})})),l+="\n\n",p=o,new d.SafeString(l)});c.addExport("render"),c.setVariable("render",e),h(null,"")}catch(e){h(d.handleError(e,m,f))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_date.html.njk"]={root:function(e,t,o,n,i){var r,s="";try{n.contextOrFrameLookup(t,o,"value")&&(s+='\n
        \n ',n.contextOrFrameLookup(t,o,"label")&&(s+='',s+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"label")),e.opts.autoescape),s+=""),s+="\n ",r=e.getFilter("default").call(t,n.contextOrFrameLookup(t,o,"format"),null),o.set("format",r,!0),o.topLevel&&t.setVariable("format",r),o.topLevel&&t.addExport("format",r),s+='\n ',s+=n.suppressValue(e.getFilter("date").call(t,n.contextOrFrameLookup(t,o,"value"),n.contextOrFrameLookup(t,o,"format")),e.opts.autoescape),s+="
        \n"),i(null,s)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_elements.html.njk"]={root:function(e,t,o,n,i){var r="";try{if(n.contextOrFrameLookup(t,o,"value")&&0\n ',r+="\n ",o=o.push(),s=n.contextOrFrameLookup(t,o,"value")){var s=n.fromIterator(s);if(n.isArray(s))for(var a=s.length,l=0;l',r+=n.suppressValue(c,e.opts.autoescape),r+="\n "}else{l=-1;var p,a=n.keys(s).length;for(p in s){l++;var d=s[p];o.set("id",p),o.set("name",d),o.set("loop.index",l+1),o.set("loop.index0",l),o.set("loop.revindex",a-l),o.set("loop.revindex0",a-l-1),o.set("loop.first",0===l),o.set("loop.last",l===a-1),o.set("loop.length",a),r+='\n
        ',r+=n.suppressValue(d,e.opts.autoescape),r+="
        \n "}}}o=o.pop(),r+="\n \n"}i(null,r)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_email.html.njk"]={root:function(e,t,o,n,i){var r="";try{n.contextOrFrameLookup(t,o,"value")&&(r+='\n
        \n ',"private"==n.contextOrFrameLookup(t,o,"value")?(r+='\n \n "):(r+="\n ",n.contextOrFrameLookup(t,o,"label")&&(r+='',r+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"label")),e.opts.autoescape),r+=""),r+='\n ',r+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"value")),e.opts.autoescape),r+="\n "),r+="\n
        \n"),i(null,r)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_files.html.njk"]={root:function(e,t,o,n,i){var r="";try{if(n.contextOrFrameLookup(t,o,"value")&&0\n ',o=o.push();var s=n.contextOrFrameLookup(t,o,"value");if(s)for(var a=(s=n.fromIterator(s)).length,l=0;l\n
        \n \n "}o=o.pop(),r+="\n \n"}i(null,r)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_openhours.html.njk"]={root:function(e,t,o,n,i){var r="";try{if(n.contextOrFrameLookup(t,o,"value")){if(r+='\n
        \n ',o=o.push(),s=n.contextOrFrameLookup(t,o,"value")){var s=n.fromIterator(s);if(n.isArray(s))for(var a=s.length,l=0;l\n ',r+=n.suppressValue(e.getFilter("capitalize").call(t,u),e.opts.autoescape),r+='\n ',r+=n.suppressValue(c,e.opts.autoescape),r+=" \n
        \n "),r+="\n "}else{l=-1;var p,a=n.keys(s).length;for(p in s){l++;var d=s[p];o.set("key",p),o.set("horaire",d),o.set("loop.index",l+1),o.set("loop.index0",l),o.set("loop.revindex",a-l),o.set("loop.revindex0",a-l-1),o.set("loop.first",0===l),o.set("loop.last",l===a-1),o.set("loop.length",a),r+=" \n ",null!=d&&(r+='\n
        \n ',r+=n.suppressValue(e.getFilter("capitalize").call(t,p),e.opts.autoescape),r+='\n ',r+=n.suppressValue(d,e.opts.autoescape),r+=" \n
        \n "),r+="\n "}}}o=o.pop(),r+=" \n\n"}i(null,r)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_separator.html.njk"]={root:function(e,t,o,n,i){try{i(null,'
        ')}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_tags.html.njk"]={root:function(e,t,o,n,i){var r="";try{if(n.contextOrFrameLookup(t,o,"value")){r+='\n
        \n ',o=o.push();var s=n.contextOrFrameLookup(t,o,"value");if(s)for(var a=(s=n.fromIterator(s)).length,l=0;l',r+=n.suppressValue(e.getFilter("capitalize").call(t,e.getFilter("trim").call(t,u)),e.opts.autoescape),r+=" \n "}o=o.pop(),r+="\n
        \n"}i(null,r)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_taxonomy.html.njk"]={root:function(s,a,l,u,c){var p=0,d=0,h="";try{h+='
        \n ',s.getTemplate("components/element/category-value.html.njk",!1,"components/element/element-filters/gogo_taxonomy.html.njk",!1,function(e,t){e?c(e):t.getExported(function(e,t){if(e)c(e);else{if(a.setVariable("categoryRenderer",t),h+="\n ",s.getFilter("is_array").call(a,u.contextOrFrameLookup(a,l,"value"))){h+="\n ",l=l.push();var o=u.contextOrFrameLookup(a,l,"value");if(o)for(var n=(o=u.fromIterator(o)).length,i=0;i\n ',n.contextOrFrameLookup(t,o,"label")&&(a+='',a+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"label")),e.opts.autoescape),a+=""),a+='\n ',a+=n.suppressValue(e.getFilter("safe").call(t,(r=3,s=44,n.callWrap(n.contextOrFrameLookup(t,o,"formatPhoneNumber"),"formatPhoneNumber",t,[n.contextOrFrameLookup(t,o,"value")]))),e.opts.autoescape),a+="
        \n"),i(null,a)}catch(e){i(n.handleError(e,r,s))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_text.html.njk"]={root:function(e,t,o,n,i){var r="";try{n.contextOrFrameLookup(t,o,"value")&&(r+='\n
        \n ',n.contextOrFrameLookup(t,o,"label")&&(r+='',r+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"label")),e.opts.autoescape),r+=""),r+='\n ',r+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"value")),e.opts.autoescape),r+="\n
        \n"),i(null,r)}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_textarea.html.njk"]={root:function(e,t,o,n,i){var r,s,a,l=0,u=0,c="";try{n.contextOrFrameLookup(t,o,"value")&&(c+="\n ",l=1,u=33,r=n.callWrap(n.contextOrFrameLookup(t,o,"splitLongText"),"splitLongText",t,[n.contextOrFrameLookup(t,o,"value"),e.getFilter("default").call(t,n.contextOrFrameLookup(t,o,"truncate"),1e3),e.getFilter("default").call(t,n.contextOrFrameLookup(t,o,"tolerance"),50)]),o.set("longText",r,!0),o.topLevel&&t.setVariable("longText",r),o.topLevel&&t.addExport("longText",r),c+="\n ",l=2,u=36,s=n.callWrap(n.contextOrFrameLookup(t,o,"applyGlossary"),"applyGlossary",t,[n.memberLookup(n.contextOrFrameLookup(t,o,"longText"),"first"),e.getFilter("default").call(t,n.contextOrFrameLookup(t,o,"glossary"),{})]),o.set("visibleText",s,!0),o.topLevel&&t.setVariable("visibleText",s),o.topLevel&&t.addExport("visibleText",s),c+='\n
        \n"),i(null,c)}catch(e){i(n.handleError(e,l,u))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_title.html.njk"]={root:function(e,t,o,n,i){var r="";try{r+="

        ",r+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"value")),e.opts.autoescape),i(null,r+="

        ")}catch(e){i(n.handleError(e,0,0))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_url.html.njk"]={root:function(e,t,o,n,i){var r,s=0,a=0,l="";try{n.contextOrFrameLookup(t,o,"value")&&(l+='\n
        \n ',n.contextOrFrameLookup(t,o,"label")&&(l+='',l+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"label")),e.opts.autoescape),l+=""),l+="\n\n ",s=4,a=32,r=0',l+=n.suppressValue(e.getFilter("safe").call(t,n.contextOrFrameLookup(t,o,"value")),e.opts.autoescape),l+="\n "),l+="\n
        \n"),i(null,l)}catch(e){i(n.handleError(e,s,a))}}},(window.nunjucksPrecompiled=window.nunjucksPrecompiled||{})["components/element/element-filters/gogo_vimeo.html.njk"]={root:function(e,t,o,n,i){var r="";try{n.contextOrFrameLookup(t,o,"value")&&(r+='\n
        \n ';$("#modal-iframe #iframe-code").val(e)},s.prototype.createListenerForLayers=function(){this.listenerLayerChangeHasBeenCreated||(n.App.config.map.saveTileLayerInCookies&&$("#directory-content-map .leaflet-control-layers-selector").change(function(e){i.createCookie("defaultBaseLayer",$(this).siblings("span").text(),100)}),this.listenerLayerChangeHasBeenCreated=!0)},s.prototype.showControlLayers=function(){$("#directory-content-map .leaflet-control-layers").show(),$("#directory-content-map #close-layers-panel").show(),this.createListenerForLayers()},s.prototype.hideControlLayers=function(){$("#directory-content-map .leaflet-control-layers").hide(),$("#directory-content-map #close-layers-panel").hide()},s);function s(){this.listenerLayerChangeHasBeenCreated=!1}},"./src/js/components/map/map-feature.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{MapFeatureComponent:()=>i});var n=o("./src/js/gogocarto.ts"),i=(r.prototype.defaultStyle=function(){var e=this.element.geoJSONFeature.properties||{},t=n.App.taxonomyModule.getOptionById(this.element.colorOptionId).color||n.App.config.colors.textDark;return{fillColor:e.fill||t,fillOpacity:e["fill-opacity"]||.4,color:e.stroke||t,opacity:e["stroke-opacity"]||1,weight:e["stroke-width"]||2.5,dashArray:e["stroke-dasharray"]||0}},r.prototype.initialize=function(){var t=this;this.featureLayer_=L.geoJSON(this.element.geoJSONFeature,{style:function(){return t.defaultStyle()}}).addTo(n.App.map()),this.featureLayer_.on("click",function(e){n.App.mapManager.handleMarkerClick(t.element.marker)}),this.featureLayer_.on("mouseover",function(e){t.element.showBigSize()}),this.featureLayer_.on("mouseout",function(e){t.element.showNormalSize()})},r.prototype.update=function(){var e=this;this.featureLayer.setStyle(function(){return e.defaultStyle()})},r.prototype.showBigSize=function(){var e=this;this.featureLayer.setStyle(function(){return{weight:1.5*e.defaultStyle().weight}})},r.prototype.showNormalSize=function(){var t=this;this.featureLayer.setStyle(function(e){return{weight:t.defaultStyle().weight}})},Object.defineProperty(r.prototype,"featureLayer",{get:function(){return this.featureLayer_},enumerable:!1,configurable:!0}),r);function r(e){var t=this;this.element=e,n.App.map()?this.initialize():n.App.mapComponent.onMapReady.do(function(){return t.initialize()})}},"./src/js/components/map/map.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{MapComponent:()=>i});var s=o("./src/js/app.module.ts"),n=o("./src/js/classes/classes.ts"),a=o("./src/js/utils/cookies.ts"),l=o("./src/js/gogocarto.ts"),i=(r.prototype.getMap=function(){return this.map_},r.prototype.getCenter=function(){return this.viewport?L.latLng(this.viewport.lat,this.viewport.lng):null},r.prototype.getBounds=function(){return this.isMapLoaded?this.map_.getBounds():null},r.prototype.getZoom=function(){return this.map_.getZoom()},r.prototype.getOldZoom=function(){return this.oldZoom},r.prototype.show=function(){$("#directory-content-map").show()},r.prototype.hide=function(){$("#directory-content-map").hide()},r.prototype.initialize=function(){var o=this;if(this.isInitialized)this.resize();else{for(var e={},t=0,n=l.App.config.map.tileLayers;tGoGoCarto | Leaflet'}).addTo(this.map_),setTimeout(function(){$(".leaflet-control-zoom").addClass("gogo-section-controls"),$(".leaflet-control-zoom a").addClass("gogo-color-link"),$(".leaflet-control-layers").addClass("gogo-section-controls")},0),l.App.config.map.geojsonLayers&&Array.isArray(l.App.config.map.geojsonLayers)&&l.App.config.map.geojsonLayers.forEach(function(e){void 0===e.type?o.loadRemoteGeoJSON(o.map_,e.url):o.loadInlineGeoJSON(o.map_,e)}),l.App.config.map.useClusters?this.markersGroup=L.markerClusterGroup({showCoverageOnHover:!1,zoomToBoundsOnClick:!0,spiderfyOnMaxZoom:!0,spiderfyDistanceMultiplier:1.1,chunkedLoading:!0,animate:!1,iconCreateFunction:function(e){var t=e.getChildCount(),e=" marker-cluster-";return e+=t<10?"small":t<100?"medium":t<1e3?"large":"large xl",new L.DivIcon({html:"
        "+t+"
        ",className:"marker-cluster"+e,iconSize:new L.Point(40,40)})},maxClusterRadius:function(e){return 10contains : map not loaded or element position undefined"),!1)},r.prototype.extendedContains=function(e){return!(!this.isMapLoaded||!e)&&l.App.boundsModule.extendedBounds.contains(e)},r.prototype.updateViewPort=function(){this.viewport||(this.viewport=new n.ViewPort),this.viewport.lat=this.map_.getCenter().lat,this.viewport.lng=this.map_.getCenter().lng,this.viewport.zoom=this.getZoom()},r.prototype.setViewPort=function(e,t){var o=this;void 0===t&&(t=!0),this.map_&&e&&t&&(t=l.App.state==s.AppStates.ShowElementAlone?500:0,setTimeout(function(){o.map_.setView(L.latLng(e.lat,e.lng),e.zoom)},t)),this.viewport=e},r.prototype.isMapBounds=function(){return this.getMap()&&this.getMap().getBounds()},r.prototype.hasZoomedIn=function(){var e=this.getZoom(),t=this.getOldZoom();return e!=t&&-1!=t&&t{"use strict";o.r(t),o.d(t,{Marker:()=>i});var n=o("./src/js/gogocarto.ts"),i=(r.prototype.update=function(){var e=n.App.templateModule.render("marker",{element:this.element,config:n.App.config,popup:n.App.templateModule.elementTemplate.renderMarkerPopup(this.element.toDisplay())}),t=this.leafletMarker._icon?this.leafletMarker._icon.className:"leaflet-marker-container";t.replace("leaflet-marker-icon",""),this.leafletMarker.setIcon(L.divIcon({className:t,html:e}))},r.prototype.animateDrop=function(){var e=this;this.isAnimating=!0,this.domMarker().animate({top:"-=25px"},300,"easeInOutCubic"),this.domMarker().animate({top:"+=25px"},250,"easeInOutCubic",function(){e.isAnimating=!1,e.domMarker().css("top","auto")})},r.prototype.showBigSize=function(){this.addClassToLeafletMarker_("big-size");var e=this.domMarker();e.parent().find(".marker-popup").show(),e.parent().find(".other-icons-wrapper").css("display","flex"),e.find(".gogo-icon-plus-circle").hide()},r.prototype.showNormalSize=function(){var e=this.domMarker();this.removeClassToLeafletMarker_("big-size"),n.App.config.marker.popupAlwaysVisible||e.parent().find(".marker-popup").hide(),e.parent().find(".other-icons-wrapper").hide(),e.find(".gogo-icon-plus-circle").show()},r.prototype.addClassToLeafletMarker_=function(e){this.domMarker().find(".marker-wrapper").addClass(e),this.domMarker().siblings(".marker-popup").addClass(e)},r.prototype.removeClassToLeafletMarker_=function(e){this.domMarker().find(".marker-wrapper").removeClass(e),this.domMarker().siblings(".marker-popup").removeClass(e)},r.prototype.domMarker=function(){return $("#marker-"+this.element.id)},r.prototype.getLeafletMarker=function(){return this.leafletMarker},r.prototype.getPosition=function(){return this.leafletMarker.getLatLng()},r);function r(e){var t=this;this.isAnimating=!1,this.element=e,this.leafletMarker=L.marker(this.element.position,{riseOnHover:!0}),this.leafletMarker.on("click",function(e){n.App.mapManager.handleMarkerClick(t)}),this.leafletMarker.on("mouseover",function(e){t.isAnimating||t.element.showBigSize()}),this.leafletMarker.on("mouseout",function(e){t.isAnimating||t.element.showNormalSize()}),this.leafletMarker.setIcon(L.divIcon({className:"leaflet-marker-container",html:''}))}},"./src/js/components/modals/abstract-modal.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{AbstractModalComponent:()=>i});var n=o("./src/js/gogocarto.ts"),i=(r.prototype.initialize=function(){},r.prototype.binds=function(){var t=this;this.dom.find("button[type=submit]").click(function(e){return t.handleSubmit(e)})},r.prototype.open=function(e){this.element=e,this.clearLoader(),this.dom.find(".generic-error-message").hide(),this.beforeOpen(e),this.dom.openModal()},r.prototype.beforeOpen=function(e){},r.prototype.handleSubmit=function(e){this.element&&(this.displayLoader(),this.submit(),e.stopPropagation(),e.stopImmediatePropagation(),e.preventDefault())},r.prototype.submit=function(){},r.prototype.sendRequest=function(e){var t=this;n.App.ajaxModule.sendRequest(this.ajaxUrl,"post",e,function(e){setTimeout(function(){return t.clearLoader()},500),t.onSuccess(e)},function(e){t.clearLoader(),t.onError(e)})},r.prototype.displayLoader=function(){this.dom.find(".cancel-btn").css("display","inline-block"),this.dom.find("button[type=submit]").hide(),this.dom.find(".loader-overlay").fadeIn(800)},r.prototype.clearLoader=function(){this.dom.find(".cancel-btn").hide(),this.dom.find("button[type=submit]").css("display","inline-block"),this.dom.find(".loader-overlay").hide()},r.prototype.onSuccess=function(e){e.success?(this.dom.closeModal(),this.element.component.addFlashMessage(e.message)):this.onError(e.message)},r.prototype.onError=function(e){this.dom.find("#message-error").text(e).show()},r);function r(e){this.ajaxUrl="",this.dom=$(e),this.initialize(),this.binds()}},"./src/js/components/modals/delete.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{DeleteComponent:()=>a});var n,i,r=o("./src/js/gogocarto.ts"),s=o("./src/js/utils/string-helpers.ts"),t=o("./src/js/components/modals/abstract-modal.component.ts"),o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),a=(i=t.AbstractModalComponent,o(l,i),l.prototype.beforeOpen=function(e){this.dom.find(".elementName").text((0,s.capitalize)(e.name)),this.dom.find(".input-comment").val(""),this.dom.find(".option-radio-btn:checked").prop("checked",!1),this.dom.find("#select-error").hide()},l.prototype.submit=function(){var e=this.dom.find(".input-comment").val(),e=(r.App.config.features.delete.url,{elementId:this.element.id,message:e});this.sendRequest(e)},l.prototype.onSuccess=function(e){var t=this,o=e.message;e.success?(this.dom.closeModal(),r.App.infoBarComponent.show(),this.element.update(!0),this.element.isFullyLoaded=!1,r.App.infoBarComponent.showElement(this.element.id,function(){t.element.component.addFlashMessage(o)}),this.element.component.addFlashMessage(o)):this.dom.find("#select-error").text(o).show()},l.prototype.onError=function(e){this.dom.find("#select-error").text(e).show()},l);function l(){var e=i.call(this,"#modal-delete")||this;return e.ajaxUrl=r.App.config.features.delete.url,e}},"./src/js/components/modals/report.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{ReportComponent:()=>a});var n,i,r=o("./src/js/gogocarto.ts"),s=o("./src/js/utils/string-helpers.ts"),t=o("./src/js/components/modals/abstract-modal.component.ts"),o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),a=(i=t.AbstractModalComponent,o(l,i),l.prototype.beforeOpen=function(){this.dom.find(".elementName").text((0,s.capitalize)(this.element.name)),this.dom.find(".input-comment").val(""),this.dom.find(".option-radio-btn:checked").prop("checked",!1),this.dom.find("#select-error").hide(),this.dom.find("#mail-error").hide(),r.App.loginModule.getUserEmail()?(this.dom.find(".input-mail").hide(),this.dom.find(".input-mail").val(r.App.loginModule.getUserEmail())):(this.dom.find(".input-mail").val(""),this.dom.find(".input-mail").show())},l.prototype.submit=function(){var e,t,o;this.element&&(e=this.dom.find(".option-radio-btn:checked").attr("value"),o=this.dom.find(".input-mail").val(),this.dom.find("#select-error").hide(),this.dom.find("#mail-error").hide(),t=!1,e||(this.dom.find("#select-error").show(),t=!0),o&&!this.dom.find(".input-mail").hasClass("invalid")||(this.dom.find("#mail-error").show(),t=!0),t?this.clearLoader():(t=this.dom.find(".input-comment").val(),r.App.config.features.report.url,o={elementId:this.element.id,value:e,comment:t,userEmail:o},this.sendRequest(o)))},l.prototype.onError=function(e){this.dom.find("#select-error").text(e).show()},l);function l(){var e=i.call(this,"#modal-report")||this;return e.ajaxUrl=r.App.config.features.report.url,e}},"./src/js/components/modals/send-email.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{SendEmailComponent:()=>a});var n,i,r=o("./src/js/gogocarto.ts"),t=o("./src/js/components/modals/abstract-modal.component.ts"),s=o("./src/js/utils/string-helpers.ts"),o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),a=(i=t.AbstractModalComponent,o(l,i),l.prototype.beforeOpen=function(e){this.dom.find(".elementName").text((0,s.capitalize)(this.element.name)),this.dom.find(".input-mail-content").val(""),this.dom.find(".input-mail-subject").val(""),this.dom.find("#content-error").hide(),this.dom.find("#mail-error").hide(),r.App.loginModule.getUserEmail()?(this.dom.find(".input-mail").hide(),this.dom.find(".input-mail").val(r.App.loginModule.getUserEmail())):(this.dom.find(".input-mail").val(""),this.dom.find(".input-mail").show())},l.prototype.submit=function(){var e=this.dom.find(".input-mail").val(),t=this.dom.find(".input-mail-subject").val(),o=this.dom.find(".input-mail-content").val();this.dom.find("#message-error").hide(),this.dom.find("#content-error").hide(),this.dom.find("#mail-error").hide();var n=!1;t&&o||(this.dom.find("#content-error").show(),n=!0),e&&!this.dom.find(".input-mail").hasClass("invalid")||(this.dom.find("#mail-error").show(),this.dom.find(".input-mail").show(),n=!0),n?this.clearLoader():(this.dom.find(".input-comment").val(),e={elementId:this.element.id,subject:t,content:o,userEmail:e},this.sendRequest(e))},l);function l(){var e=i.call(this,"#modal-send-email")||this;return e.ajaxUrl=r.App.config.features.sendMail.url,e}},"./src/js/components/modals/subscribe.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{SubscribeComponent:()=>a});var n,i,r=o("./src/js/gogocarto.ts"),s=o("./src/js/utils/string-helpers.ts"),t=o("./src/js/components/modals/abstract-modal.component.ts"),o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),a=(i=t.AbstractModalComponent,o(l,i),l.prototype.beforeOpen=function(){this.dom.find(".elementName").text((0,s.capitalize)(this.element.name)),this.dom.find("#message-error").hide(),this.dom.find("#mail-error").hide(),this.dom.find(".input-mail").val("")},l.prototype.submit=function(){var e,t;this.element&&(t=this.dom.find(".input-mail").val(),this.dom.find("#mail-error").hide(),this.dom.find("#message-error").hide(),e=!1,t&&!this.dom.find(".input-mail").hasClass("invalid")||(this.dom.find("#mail-error").show(),e=!0),e?this.clearLoader():(r.App.config.features.subscribe.url,t={elementId:this.element.id,userEmail:t},this.sendRequest(t)))},l);function l(){var e=i.call(this,"#modal-subscribe-element")||this;return e.ajaxUrl=r.App.config.features.subscribe.url,e}},"./src/js/components/modals/unsubscribe.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{UnsubscribeComponent:()=>a});var n,i,r=o("./src/js/gogocarto.ts"),s=o("./src/js/utils/string-helpers.ts"),t=o("./src/js/components/modals/abstract-modal.component.ts"),o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),a=(i=t.AbstractModalComponent,o(l,i),l.prototype.beforeOpen=function(){this.dom.find(".elementName").text((0,s.capitalize)(this.element.name)),this.dom.find("#message-error").hide(),this.dom.find("#mail-error").hide(),this.dom.find(".input-mail").val("")},l.prototype.submit=function(){var e,t;this.element&&(t=this.dom.find(".input-mail").val(),this.dom.find("#mail-error").hide(),this.dom.find("#message-error").hide(),e=!1,t&&!this.dom.find(".input-mail").hasClass("invalid")||(this.dom.find("#mail-error").show(),e=!0),e?this.clearLoader():(r.App.config.features.subscribe.url.replace("subscribe","unsubscribe"),t={elementId:this.element.id,userEmail:t},this.sendRequest(t)))},l);function l(){var e=i.call(this,"#modal-unsubscribe-element")||this;return e.ajaxUrl=r.App.config.features.subscribe.url.replace("subscribe","unsubscribe"),e}},"./src/js/components/modals/vote.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{VoteComponent:()=>l});var n,i,r=o("./src/js/classes/classes.ts"),s=o("./src/js/gogocarto.ts"),a=o("./src/js/app.module.ts"),t=o("./src/js/components/modals/abstract-modal.component.ts"),o=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),l=(i=t.AbstractModalComponent,o(u,i),u.prototype.beforeOpen=function(e){this.dom.find(".specific-content").html(s.App.templateModule.render("vote-modal-content",{element:this.element,ElementStatus:r.ElementStatus,isAdmin:s.App.config.isFeatureAvailable("directModeration"),eldisplayName:s.App.config.translate("element.definite")}))},u.prototype.submit=function(){var e,t=this.dom.find(".option-radio-btn:checked").attr("value");this.dom.find("#select-error").hide(),t?(e=this.dom.find(".input-comment").val(),s.App.config.features.vote.url,e={elementId:this.element.id,value:t,comment:e},this.sendRequest(e)):(this.clearLoader(),this.dom.find("#select-error").show())},u.prototype.onSuccess=function(e){var t=this,o=e.message,n=e.data;e.success?($("#modal-vote").closeModal(),this.element.status!=n?(this.element.status=n,this.element.update(!0),this.element.isFullyLoaded=!1,s.App.mode==a.AppModes.Map?s.App.infoBarComponent.showElement(this.element.id,function(){t.element.component.addFlashMessage(o)}):this.element.component.addFlashMessage(o)):this.element.component.addFlashMessage(o)):this.onError(o)},u.prototype.onError=function(e){e&&0!=e.length||(e="Oups, une erreur s'est produite ! Veuillez réessayer plus tard ou nous signaler le problème"),this.dom.find(".generic-error-message").html(e).show()},u);function u(){var e=i.call(this,"#modal-vote")||this;return e.ajaxUrl=s.App.config.features.vote.url,e.dom.find("#select-vote").material_select(),e}},"./src/js/components/search-bar/search-bar.component.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{SearchBarComponent:()=>n});var s=o("./src/js/gogocarto.ts"),i=o("./src/js/app.module.ts"),a=function(){for(var e=0,t=0,o=arguments.length;t").addClass("search-bar-autocomplete-result-item "+t.type),n=$("
        ").addClass("search-bar-autocomplete-result-item-wrapper");return t.icon&&n.append('
        '),"element"===t.type&&n.addClass("nested"),n.append('
        '+t.label+"
        "),t.subLabel&&n.append('
        '+t.subLabel+"
        "),o.append(n).appendTo(e)}}),this.searchInput().gogoAutocomplete({appendTo:".autocomplete-container",classes:{"ui-autocomplete":"search-bar-autocomplete-results-container gogo-section-content"},position:{at:"left bottom+5"},source:function(e,n){var i=e.term;r.beforeSearch(),s.App.search.searchTerm(i,function(e,t,o){r.searchLoading(!0),r.setAutocompleteItems(i,e,t,o,n)})},focus:function(e){return e.preventDefault()},select:function(e,t){switch(r.beforeSearch(),t.item.type){case"search_geocoded":r.searchGeocoded(t.item.value);break;case"geocoded":r.showGeocoded(t.item.value);break;case"option":r.searchOption(t.item.value);break;case"search_elements":r.searchElements(t.item.value.term,t.item.value.results);break;case"element":r.searchElement(t.item.value)}e.preventDefault()}}),this.searchInput().keypress(function(e){13===e.keyCode&&r.handleSearchAction()}),this.searchInput().click(function(){return r.searchInput().gogoAutocomplete("search")}),$(".search-bar-icon, .search-bar-btn").click(function(){return r.handleSearchAction()}),$("#btn-close-search-result").click(function(){return r.resetElementsSearchResult()}),$(".search-geolocalize").tooltip(),$(".search-geolocalize").click(function(){return r.geolocateUser()}),$("#search-overlay-mobile .overlay").click(function(){return r.hideMobileSearchBar()})},r.prototype.setAutocompleteItems=function(e,t,o,n,i){var r=[];s.App.config.isFeatureAvailable("searchPlace")&&!s.App.config.search.canAutocomplete&&(r=a(r,[{label:s.App.config.translate("geographic.location"),type:"search_geocoded",value:e,icon:"gogo-icon-marker-symbol"}])),0'+(e.getFormattedAddress()||e.getStreetName()||e.getSubLocality()||e.getLocality()||e.getRegion()||e.getCountry())+"",icon:"gogo-icon-marker-symbol"}}))),0'+s.App.config.translate("category")+'\n '+e.name+"",icon:e.icon||"gogo-icon-stamp-2"}}))),0'+e+" ("+t.length+")",type:"search_elements",value:{term:e,results:{data:t.map(function(e){return e.value})}},icon:"gogo-icon-database"}),r=a(r,t.slice(0,4).map(function(e){var t=e.type,o=e.value,e={type:t,value:o,label:''+o.name+""};return o.address&&(t="",o.address.postalCode&&(t+=o.address.postalCode),o.address.addressLocality&&(t+=(t?" ":"")+o.address.addressLocality),t&&(e.subLabel=t)),e}))),i(r)},r.prototype.searchGeocoded=function(e){var t=this;if(s.App.config.mode.autocompleteOnly){var o=s.App.routerModule.generate("normal",{mode:"carte",addressAndViewport:e});return this.searchInput().trigger("searchRoute",o),void this.searchInput().trigger("searchGeocoder",{value:e})}s.App.geocoder.geocodeAddress(e,function(e){t.showGeocoded(e[0])},function(){t.searchLoading(!0),$(".search-no-result").show()})},r.prototype.showGeocoded=function(e){var t,o;s.App.config.mode.autocompleteOnly?(o=e.getDisplayName(),t=s.App.routerModule.generate("normal",{mode:"carte",addressAndViewport:o}),this.searchInput().trigger("searchRoute",t),this.searchInput().trigger("searchGeocoder",{value:o})):(this.searchLoading(!0),this.resetOptionSearchResult(),this.resetElementsSearchResult(!1),this.hideMobileSearchBar(),(o=e.shape)&&"Polygon"==o.type?(console.log("geojson",o),this.locationShape=L.geoJSON(o,{style:function(e){return{color:s.App.config.colors.primary,fillOpacity:.05,opacity:.7}}}).addTo(s.App.map())):this.displaySearchResultMarkerOnMap(L.latLng(e.getCoordinates().latitude,e.getCoordinates().longitude)),s.App.mapComponent.fitBounds(s.App.geocoder.latLngBoundsFromRawBounds(e.getBounds()),!0))},r.prototype.searchOption=function(e){if(s.App.config.mode.autocompleteOnly){var t=s.App.routerModule.generate("search_option",{name:e.name,id:e.id});return this.searchInput().trigger("searchRoute",t),void this.searchInput().trigger("searchCategory",{name:e.name,id:e.id})}var o;this.searchLoading(!0),this.resetOptionSearchResult(!1),this.resetElementsSearchResult(!1),this.hideMobileSearchBar(),s.App.config.menu.showOnePanePerMainOption?e.parentCategoryIds.forEach(function(e){e=s.App.taxonomyModule.getCategoryById(e.id);e.isRootCategory||e.toggle(!1,!1)}):(s.App.taxonomyModule.categories.forEach(function(e){return e.toggle(!1,!1)}),o=e.parentCategoryIds.map(function(e){return e.id}),s.App.taxonomyModule.categories.filter(function(e){return e.isRootCategory&&!o.includes(e.id)}).forEach(function(e){return e.toggle(!0,!1)})),e.parentCategoryIds.forEach(function(e){s.App.taxonomyModule.getCategoryById(e.id).toggleChildrenDetail(!0),e.mandatorySiblingIds.forEach(function(e){return s.App.taxonomyModule.getCategoryById(e).toggle(!0,!1)})}),e.parentOptionIds.forEach(function(e){return s.App.filtersComponent.setOption(e,!1,!1,!0)}),s.App.filtersComponent.setOption(e.id,!1,!0,!1,!0)},r.prototype.searchElements=function(e,t,o){if(void 0===o&&(o=!1),s.App.config.mode.autocompleteOnly){var n=s.App.routerModule.generate("search",{mode:"liste",text:e});return this.searchInput().trigger("searchRoute",n),void this.searchInput().trigger("searchElements",{value:e})}this.searchLoading(!0),this.resetOptionSearchResult(),this.hideMobileSearchBar(),this.hideSearchBarAutocomplete(),this.currSearchText=e,s.App.setDataType(i.AppDataType.SearchResults,o,t),this.showSearchResultLabel(t.data.length),s.App.gogoControlComponent.updatePosition()},r.prototype.searchElement=function(e){if(s.App.config.mode.autocompleteOnly){var t=s.App.routerModule.generate("show_element",{name:e.name,id:e.id});return this.searchInput().trigger("searchRoute",t),void this.searchInput().trigger("searchElement",{name:e.name,id:e.id})}this.searchLoading(!0),this.resetOptionSearchResult(),this.resetSearchResult(!1),this.hideMobileSearchBar(),this.hideSearchBarAutocomplete(),e.isFullyLoaded||s.App.elementsJsonModule.convertJsonElements([e],!0,!0),s.App.setState(i.AppStates.ShowElement,{id:e.id,mapPan:!0})},r.prototype.handleSearchAction=function(){var n=this,i=this.searchInput().val();this.beforeSearch(),s.App.search.searchTerm(i,function(e,t,o){if((n.searchLoading(!0),0{"use strict";o.r(t),o.d(t,{App:()=>s,GoGoCartoModule:()=>r,default:()=>function(e,t,o){void 0===o&&(o={});return new r(e,t,o)}});var s,a=o("./src/js/app.module.ts"),l=o("./src/js/utils/params.ts"),u=o("./src/js/themes.ts"),n=o("./src/js/utils/array.ts"),i=o("./src/js/utils/string-helpers.ts"),t=o("./node_modules/tinycolor2/tinycolor.js"),c=o.n(t)(),r=(p.prototype.setUserRole=function(e){this.app.loginModule.setRoles(e)},p.prototype.setUserRoles=function(e){this.app.loginModule.setRoles(e)},p.prototype.setUserEmail=function(e){this.app.loginModule.setUserEmail(e)},p.prototype.setUserGroups=function(e){this.app.loginModule.setUserGroups(e)},p.prototype.getElementRouteHash=function(e,t){return this.app.routerModule.generate("show_element",{id:e,name:t=void 0===t?"find":t})},p.prototype.showDirectoryMenu=function(){this.app.directoryMenuComponent.show()},p.prototype.hideDirectoryMenu=function(){this.app.directoryMenuComponent.hide()},p.prototype.slugify=function(e){return(0,i.slugify)(e)},p.prototype.checkForDistantConfiguration=function(e,t){var o=this;void 0===t&&(t={}),"object"==typeof e?this.checkForDistantTaxonomy(e):$.ajax({url:e,success:function(e){"string"==typeof e&&(e=JSON.parse(e)),e=(0,n.mergeDeep)(e,t),o.checkForDistantTaxonomy(e)},error:function(){console.error("Error while getting the configuration at url ",e)}})},p.prototype.checkForDistantTaxonomy=function(t){var o=this,e=t.data.taxonomy;e&&(t.data.elements||t.data.elementsApiUrl)?"object"==typeof e?this.init(e,t):$.getJSON(e,function(e){o.init(e,t)}):console.warn("[GoGoCarto] You must provide a taxonomy and elements dataset (both url or Json object)")},p.prototype.init=function(e,t){var o=this,n=(0,l.getQueryParams)(window.location.search),i=!!n.iframe&&1==n.iframe,r=!n.fullTaxonomy||1==n.fullTaxonomy;if(s=new a.AppModule(t,i,r,n),(this.app=s).taxonomyModule.createTaxonomyFromJson(e),s.taxonomyModule.options.length&&(n=s.templateModule.render("gogo-styles",{optionList:s.taxonomyModule.options,config:s.config,tinycolor:c}),(e=$("head").length?$("head"):$("html")).length?e.append(n):console.warn("[GoGoCarto] Cannot find Dom 'head' or 'html' to add styles")),s.config.mode.autocompleteOnly)return s.searchBarComponent.initialize(),void s.geocoder.initialize();r=s.templateModule.render("layout",{rootCategories:s.taxonomyModule.rootCategories,mainCategory:s.taxonomyModule.mainCategory,isIframe:i,fullTaxonomy:r,config:s.config,allowedStamps:s.stampModule.allowedStamps});0==$(this.container).length?console.warn('[GoGoCarto] The container "'+this.container+'" was not found'):$(this.container).append(r),$(this.container).trigger("templateLoaded"),(0,u.afterTemplateLoaded)(),setTimeout(function(){s.initialize(),s.directoryMenuComponent.initialize(),s.elementsModule.initialize(),s.filtersComponent.initialize(),s.boundsModule.initialize(),s.elementListComponent.initialize(),s.searchBarComponent.initialize(),s.gogoControlComponent.initialize(),s.mapControlsComponent.initialize(),s.customPopupComponent.initialize(),s.geocoder.initialize(),s.component.initialize(),s.templateModule.elementTemplate.onReady.do(function(){var e;s.elementsJsonModule.loadLocalElements(),1==s.elementsModule.allElements().length&&(e=s.elementsModule.allElements()[0],e=s.routerModule.generate("show_element",{name:e.name,id:e.id}),window.location.hash||(window.location.hash=e)),s.routerModule.loadInitialState()}),s.templateModule.initialize(),o.bindEvents()},0)},p.prototype.bindEvents=function(){var t=this;this.app.mapManager.onMarkerClick.do(function(e){return t.fireEvent("markerClick",{id:e})})},p.prototype.fireEvent=function(e,t){$(this.container).trigger(e,t)},p);function p(e,t,o){void 0===t&&(t={}),void 0===o&&(o={}),this.container="",this.container=e,this.checkForDistantConfiguration(t,o)}},"./src/js/managers/data-type.manager.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{AppDataType:()=>n,DataTypeManager:()=>s});var n,i=o("./src/js/gogocarto.ts"),r=o("./src/js/app.module.ts");(o=n=n||{})[o.All=0]="All",o[o.SearchResults=1]="SearchResults";var s=(a.prototype.setDataType=function(e,t,o){void 0===t&&(t=!1),void 0===o&&(o=null),(this.dataType_=e)==n.SearchResults&&o&&(i.App.stateManager.setState(r.AppStates.Normal),e=o.data.every(function(e){return e.isFullyLoaded})?o.data:i.App.elementsJsonModule.convertJsonElements(o.data,!0,!0).elementsConverted,i.App.elementsModule.setSearchResultElement(e),i.App.filtersComponent.setMainOption("all"),0{"use strict";o.r(t),o.d(t,{ElementsManager:()=>r});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/app.module.ts"),r=(s.prototype.checkForNewElementsToRetrieve=function(e){void 0===e&&(e=!1),n.App.dataType==i.AppDataType.All&&n.App.config.data.elementsApiUrl&&this.retrieveMissingElementsViaApi(e)},s.prototype.retrieveMissingElementsViaApi=function(e){var t=n.App.boundsModule.calculateFreeBounds(e);if("allRetrieved"!=t.status){if("included"==t.status)return n.App.boundsModule.updateFilledBoundsWithBoundsReceived(t.expectedFillBounds,n.App.currMainId,e),void this.handleNewElementsReceivedFromServer({data:[],fullRepresentation:e});var o=t.freeBounds,t=t.expectedFillBounds;o&&0e.elementsToDisplay.length?(n.App.mapComponent.clearMarkers(),n.App.mapComponent.addMarkers(e.elementsToDisplay.map(function(e){return e.marker.getLeafletMarker()}))):(n.App.mapComponent.removeMarkers(e.elementsToRemove.map(function(e){return e.marker.getLeafletMarker()})),n.App.mapComponent.addMarkers(e.newElements.map(function(e){return e.marker.getLeafletMarker()}))),n.App.mapComponent.addFeatures(e.newElements.filter(function(e){return e.feature}).map(function(e){return e.feature})),n.App.mapComponent.removeFeatures(e.elementsToRemove.filter(function(e){return e.feature}).map(function(e){return e.feature})),n.App.config.map.useClusters&&n.App.mapComponent.markersGroup.checkForUnclestering(n.App.map().getBounds())}(new Date).getTime()},s);function s(){var t=this;n.App.ajaxModule.onNewElements.do(function(e){t.handleNewElementsReceivedFromServer(e)}),n.App.elementsJsonModule.onNewsElementsConverted.do(function(e){n.App.elementsModule.addElements(e)}),n.App.elementsModule.onElementsToDisplayChanged.do(function(e){t.handleElementsToDisplayChanged(e)})}},"./src/js/managers/geocoding.manager.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{GeocodingManager:()=>s});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/app.module.ts"),r=o("./src/js/utils/string-helpers.ts"),s=(a.prototype.handleGeocodeResult=function(){var e;$("#directory-spinner-loader").hide(),n.App.mode==i.AppModes.Map&&n.App.state!=i.AppStates.ShowElementAlone?n.App.setState(i.AppStates.Normal):(e=n.App.geocoder.getLocation()?n.App.geocoder.getLocation():n.App.boundsModule.defaultCenter,n.App.boundsModule.createBoundsFromLocation(e),n.App.elementsModule.clearCurrentsElement(),n.App.elementsModule.updateElementsToDisplay(!0),e=n.App.geocoder.getLocationAddress(),n.App.geocoder.getLocation()&&n.App.elementListComponent.setTitle(" "+n.App.config.translate("around")+" "+(0,r.capitalize)((0,r.unslugify)(e))+"")),n.App.documentTitleModule.updateDocumentTitle()},a.prototype.handleGeolocalizationResult=function(e){n.App.mode==i.AppModes.Map?(n.App.setState(i.AppStates.Normal),n.App.mapComponent.panToLocation(e.toLocation(),e.zoom,!1)):(n.App.boundsModule.createBoundsFromLocation(e.toLocation()),n.App.elementsModule.clearCurrentsElement(),n.App.elementsModule.updateElementsToDisplay(!0),n.App.elementListComponent.setTitle(" "+n.App.config.translate("around")+" "+n.App.config.translate("my.position")+""),n.App.mapComponent.setViewPort(e))},a);function a(){var t=this;n.App.geocoder.onGeocodeResult.do(function(){t.handleGeocodeResult(),n.App.searchBarComponent.handleGeocodeResult()}),n.App.geocoder.onGeolocalizationResult.do(function(e){t.handleGeolocalizationResult(e)})}},"./src/js/managers/history-state.manager.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{HistoryStateManager:()=>a});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/app.module.ts"),r=o("./src/js/classes/classes.ts"),s=o("./src/js/utils/cookies.ts"),a=(l.prototype.load=function(t,e){void 0===e&&(e=!1),null!==t&&(this.lastHistoryState=t,console.log("loadHistorystate",t),t.dataType==i.AppDataType.SearchResults?(n.App.setDataType(t.dataType,!0),n.App.searchBarComponent.loadSearchElements(t.text,e),$("#directory-spinner-loader").hide()):!n.App.config.map.saveViewportInCookies||t.viewport||t.address||t.state!=i.AppStates.Normal||(console.log("no viewport nor address provided, using cookies values",s.readCookie("viewport"),s.readCookie("address")),s.readCookie("viewport")&&(t.viewport=(new r.ViewPort).fromString(s.readCookie("viewport"))),s.readCookie("address")&&(t.address=s.readCookie("address")),t.address&&$(".search-bar").val(t.address)),t.filters?n.App.filterRoutingModule.loadFiltersFromString(t.filters):n.App.filtersComponent.setMainOption("all"),n.App.taxonomyModule.taxonomy.recursivelyUpdateStates(!1),t.dataType==i.AppDataType.All&&t.viewport&&t.state!=i.AppStates.ShowElementAlone&&(n.App.mapComponent.setViewPort(t.viewport,n.App.mapComponent.isMapLoaded),t.mode==i.AppModes.List&&n.App.boundsModule.createBoundsFromLocation(L.latLng(t.viewport.lat,t.viewport.lng)),$("#directory-spinner-loader").hide(),t.mode==i.AppModes.List&&L.latLng(t.viewport.lat,t.viewport.lng)),n.App.setMode(t.mode,e,!1),t.dataType==i.AppDataType.All&&t.address&&!t.id&&("geolocalize"==t.address?n.App.searchBarComponent.geolocateUser():n.App.geocoder.geocodeAddress(t.address,function(e){t.viewport&&t.mode==i.AppModes.Map||n.App.mapComponent.fitBounds(n.App.geocoder.getBounds())},function(){n.App.searchBarComponent.setValue(""),t.viewport||(n.App.mapComponent.fitDefaultBounds(),n.App.component.toastMessage("Erreur, cette adresse n'a pas pu être localisée : "+t.address))})),t.viewport||t.address||!n.App.config.data.elementsApiUrl&&!n.App.config.map.defaultBoundsProvided||t.state==i.AppStates.ShowElementAlone||(console.log("fit default bounds no viewport no address"),n.App.mapComponent.fitDefaultBounds()),t.id?setTimeout(function(){n.App.setState(t.state,{id:t.id,panToLocation:null===t.viewport},e),$("#directory-spinner-loader").hide()},0):n.App.setState(t.state,null,e))},l);function l(){this.lastHistoryState=null}},"./src/js/managers/map.manager.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{MapManager:()=>s});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/app.module.ts"),r=o("./src/js/classes/classes.ts"),s=(a.prototype.handleInfoBarHide=function(){n.App.setState(i.AppStates.Normal)},a.prototype.setTimeoutClicking=function(){this.isClicking=!0;var e=this;setTimeout(function(){e.isClicking=!1},400)},a.prototype.handleMarkerClick=function(e){n.App.mode==i.AppModes.Map&&(this.setTimeoutClicking(),this.onMarkerClick.emit(e.element.id),n.App.setState(i.AppStates.ShowElement,{id:e.element.id}))},a.prototype.handleMapIdle=function(){var e,t=this;n.App.mode==i.AppModes.Map&&(n.App.mapComponent.isMapLoaded?(e=!n.App.mapComponent.hasZoomedIn(),n.App.elementsModule.updateElementsToDisplay(e),n.App.state!=i.AppStates.Normal&&n.App.state!=i.AppStates.ShowElement||n.App.elementsManager.checkForNewElementsToRetrieve(),n.App.dataType==i.AppDataType.All&&n.App.historyModule.updateCurrState()):n.App.mapComponent.onMapLoaded.do(function(){t.handleMapIdle()}))},a.prototype.handleMapClick=function(){this.isClicking||(n.App.state!=i.AppStates.ShowElement&&n.App.state!=i.AppStates.ShowElementAlone||(n.App.infoBarComponent.hide(),n.App.setState(i.AppStates.Normal)),n.App.mapControlsComponent.hideControlLayers())},a);function a(){var e=this;this.isClicking=!1,this.onMarkerClick=new r.Event,n.App.mapComponent.onIdle.do(function(){e.handleMapIdle()}),n.App.mapComponent.onClick.do(function(){e.handleMapClick()}),n.App.infoBarComponent.onHide.do(function(){e.handleInfoBarHide()})}},"./src/js/managers/mode.manager.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{AppModes:()=>i,ModeManager:()=>a});var i,r=o("./src/js/gogocarto.ts"),n=o("./src/js/app.module.ts"),s=o("./src/js/utils/string-helpers.ts");(o=i=i||{})[o.Map=1]="Map",o[o.List=2]="List";var a=(l.prototype.setMode=function(e,t,o){void 0===t&&(t=!1),void 0===o&&(o=!0),r.App.elementsModule.clearCurrentsElement(),r.App.elementListComponent.clear(),e==i.Map?this.setMapMode():this.setListMode();var n=this.mode_;this.mode_=e,null==n||t||r.App.historyModule.pushNewState(),r.App.gogoControlComponent.updatePosition(),setTimeout(function(){return r.App.elementsModule.updateElementsToDisplay(!0)},300),o&&(r.App.documentTitleModule.updateDocumentTitle(),e==i.Map&&r.App.setState(r.App.state,{id:r.App.stateManager.stateElementId}))},l.prototype.setMapMode=function(){r.App.mapComponent.show(),r.App.elementListComponent.hide(),r.App.mapComponent.initialize(),r.App.mapComponent.isMapLoaded&&(r.App.config.infobar.displayDateField&&r.App.elementListComponent.locRangeChanged?r.App.mapComponent.fitBounds(r.App.boundsModule.extendedBounds):r.App.boundsModule.extendBounds(0,r.App.mapComponent.getBounds()))},l.prototype.setListMode=function(){var e;r.App.mapComponent.hide(),r.App.elementListComponent.show(),r.App.elementListComponent.updateLocRangeSliderFromCurrBounds(),r.App.dataType==n.AppDataType.All?(e=r.App.geocoder.getLocationAddress(),r.App.geocoder.getLocation()?(r.App.geocoder.getLocation(),r.App.elementListComponent.setTitle(" "+r.App.config.translate("around")+" "+(0,s.capitalize)((0,s.unslugify)(e))+"")):r.App.mapComponent.isInitialized?(r.App.mapComponent.getCenter(),r.App.elementListComponent.setTitle(r.App.config.translate("around.map.center"))):(r.App.boundsModule.defaultCenter,r.App.elementListComponent.setTitle("")),r.App.elementsManager.checkForNewElementsToRetrieve(!0)):r.App.dataType==n.AppDataType.SearchResults&&(r.App.elementsModule.updateElementsToDisplay(!0,!1),r.App.elementListComponent.setTitle(""))},Object.defineProperty(l.prototype,"mode",{get:function(){return this.mode_},enumerable:!1,configurable:!0}),l);function l(){this.mode_=null}},"./src/js/managers/state.manager.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{AppStates:()=>r,StateManager:()=>n});var r,s=o("./src/js/gogocarto.ts"),a=o("./src/js/app.module.ts");(o=r=r||{})[o.Normal=0]="Normal",o[o.ShowElement=1]="ShowElement",o[o.ShowElementAlone=2]="ShowElementAlone";var n=(Object.defineProperty(i.prototype,"state",{get:function(){return this.state_},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"stateElementId",{get:function(){return this.stateElementId_},enumerable:!1,configurable:!0}),i.prototype.setState=function(e,t,o){void 0===o&&(o=!1);var n=(t=void 0===t?{}:t)&&t.id?s.App.elementById(t.id):null,i=this.state_;switch(this.state_=e,i==r.ShowElementAlone&&(s.App.elementsModule.clearCurrentsElement(),s.App.displayElementAloneModule.end()),this.stateElementId_=t?t.id:null,e){case r.Normal:this.setNormalState();break;case r.ShowElement:this.setShowElementState(n,t);break;case r.ShowElementAlone:this.setShowElementAloneState(n,t)}o||i===e&&e!=r.ShowElement&&e!=r.ShowElementAlone||(s.App.dataType==a.AppDataType.All?s.App.historyModule.pushNewState(t):s.App.historyModule.updateCurrState(t)),s.App.documentTitleModule.updateDocumentTitle(t)},i.prototype.setNormalState=function(){s.App.infoBarComponent.hide(!1)},i.prototype.setShowElementState=function(e,t){s.App.mode==a.AppModes.List?(s.App.mapComponent.isInitialized?(s.App.mapComponent.panToLocation(e.position,14,!1),s.App.infoBarComponent.showElement(e.id)):s.App.mapComponent.onMapReady.do(function(){s.App.mapComponent.panToLocation(e.position,14,!1),s.App.infoBarComponent.showElement(e.id)}),s.App.setMode(a.AppModes.Map,!1,!1)):(s.App.infoBarComponent.showElement(e.id),!0===t.mapPan&&s.App.mapComponent.panToLocation(e.position,14,!1))},i.prototype.setShowElementAloneState=function(e,t){s.App.infoBarComponent.show(),e?s.App.DEAModule.begin(e.id,!0):s.App.ajaxModule.getElementById(t.id,function(e){s.App.elementsJsonModule.convertJsonElements([e],!0,!0),s.App.DEAModule.begin(e.id,!0),s.App.documentTitleModule.updateDocumentTitle(t),s.App.historyModule.updateCurrState(t)},function(e){var t=s.App.historyStateManager.lastHistoryState;s.App.component.toastMessage("Erreur pendant le chargement de cet élement"),s.App.setState(r.Normal),t.viewport?s.App.mapComponent.setViewPort(t.viewport):s.App.mapComponent.fitDefaultBounds(),s.App.infoBarComponent.hide()})},i);function i(){this.state_=null,this.stateElementId_=null}},"./src/js/modules/ajax.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{Request:()=>r,AjaxModule:()=>s});var n=o("./src/js/classes/event.class.ts"),i=o("./src/js/gogocarto.ts"),r=function(e,t){this.route=e,this.data=t},s=(a.prototype.sendRequest=function(e,t,o,n,i){$.ajax({url:e,method:t,data:o,success:function(e){e&&n&&n(e)},error:function(e){0==e.status&&n?n(e):i&&i(e.data)}})},a.prototype.getElementById=function(e,o,n){var i=this;e!=this.currElementIdRetrieving&&(this.currElementIdRetrieving=e,$.ajax({url:this.getSingleElementApiUrl(e),method:"get",data:{},success:function(e){var t;e?(t=void 0,t=e.data?Array.isArray(e.data)?e.data[0]:e.data:e,o&&o(t)):n&&n(e),i.currElementIdRetrieving=null},error:function(e){n&&n(e),i.currElementIdRetrieving=null}}))},a.prototype.getElementsInBounds=function(e,t,o){void 0===t&&(t=!1),this.currBoundsRetrieving&&e[0]&&e[0].equals(this.currBoundsRetrieving[0])||(this.currBoundsRetrieving=e)&&0!=e.length&&e[0]&&((e=this.convertBoundsIntoParams(e)).boundsJson,e={bounds:e.boundsString,boundsJson:JSON.stringify(e.boundsJson),categories:"all"!=i.App.currMainId?[i.App.currMainId]:null,fullRepresentation:t,ontology:t?"gogofull":"gogocompact",stampsIds:i.App.request.stampsIds},t=!t&&i.App.config.data.elementsCompactApiUrl||i.App.config.data.elementsApiUrl,this.sendAjaxElementRequest(new r(t,e),o))},a.prototype.convertBoundsIntoParams=function(e){for(var t="",o=[],n=0,i=e;n{"use strict";o.r(t),o.d(t,{BoundsModule:()=>n});var i=o("./src/js/gogocarto.ts"),n=(r.prototype.initialize=function(){for(var e=0,t=i.App.taxonomyModule.getMainOptionsIdsWithAll();es.getWest()&&this.extendedBounds.getEast()s.getSouth()&&this.extendedBounds.getNorth()s.getSouth()&&this.extendedBounds.getNorth(){"use strict";o.r(t),o.d(t,{DocumentTitleModule:()=>s});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/app.module.ts"),r=o("./src/js/utils/string-helpers.ts"),s=(a.prototype.updateDocumentTitle=function(e){var t,o;if((e=void 0===e?{}:e)&&e.id||n.App.stateManager.stateElementId){e=n.App.elementById(n.App.stateManager.stateElementId);if(!e)return;o=(0,r.capitalize)(e?e.name:"")}if(n.App.dataType==i.AppDataType.SearchResults)t=n.App.config.translate("search.for")+" : "+n.App.searchBarComponent.getCurrSearchText();else if(n.App.mode==i.AppModes.List)t=n.App.config.translate("list.of")+" "+n.App.config.translate("element.plural")+this.getLocationAddressForTitle();else switch(n.App.state){case i.AppStates.ShowElement:case i.AppStates.ShowElementAlone:t=o;break;case i.AppStates.Normal:t=n.App.config.translate("map.of")+" "+n.App.config.translate("element.plural")+this.getLocationAddressForTitle()}document.title.includes("-")&&(t=document.title.split("-")[0]+"- "+t),document.title=t},a.prototype.getLocationAddressForTitle=function(){return n.App.geocoder.getLocationAddress()?", "+(0,r.capitalize)(n.App.geocoder.getLocationAddress()):""},a);function a(){}},"./src/js/modules/core/history.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{HistoryModule:()=>r});var a=o("./src/js/utils/string-helpers.ts"),l=o("./src/js/app.module.ts"),n=o("./src/js/classes/classes.ts"),i=o("./src/js/utils/cookies.ts"),u=o("./src/js/gogocarto.ts");$(document).ready(function(){window.onpopstate=function(e){var t=e.state;t&&(t.viewport=$.extend(new n.ViewPort,e.state.viewport),u.App.historyStateManager.load(e.state,!0))}});var r=(s.prototype.updateCurrState=function(e){history.state?this.updateHistory(!1,e):this.pushNewState()},s.prototype.pushNewState=function(e){null===history.state?this.updateHistory(!1,e):this.updateHistory(!0,e)},s.prototype.updateHistory=function(e,t){var o;u.App.config.general.activateHistoryStateAndRouting&&null!=u.App.mode&&(t=t||{},(o=new n.HistoryState).mode=u.App.mode,o.state=u.App.state,o.dataType=u.App.dataType,o.address=u.App.geocoder.getLocationSlug(),o.viewport=u.App.mapComponent.viewport,o.id=u.App.stateManager.stateElementId||t.id,o.filters=u.App.filterRoutingModule.getFiltersToString(),o.text=u.App.searchBarComponent.getCurrSearchText(),(t=this.generateRoute(o))&&(e?history.pushState(o,"",t):history.replaceState(o,"",t),u.App.config.map.saveViewportInCookies&&(i.createCookie("viewport",o.viewport,.04),i.createCookie("address",o.address,.04))))},s.prototype.generateRoute=function(e){var t,o=u.App.mode==l.AppModes.Map?"carte":"liste",n=e.address,i=e.viewport,r="";if(n&&(r+=n),!i||u.App.mode!=l.AppModes.Map&&n||(r+=i.toString()),u.App.dataType==l.AppDataType.SearchResults&&u.App.state==l.AppStates.Normal)t=u.App.routerModule.generate("search",{mode:o,text:e.text});else if(u.App.mode==l.AppModes.List)t=u.App.routerModule.generate("normal",{mode:o,addressAndViewport:r});else switch(u.App.state){case l.AppStates.Normal:t=u.App.routerModule.generate("normal",{mode:o,addressAndViewport:r});break;case l.AppStates.ShowElement:case l.AppStates.ShowElementAlone:if(!e.id)return;var s=u.App.elementById(e.id);if(!s)return;t=u.App.routerModule.generate("show_element",{name:(0,a.capitalize)((0,a.slugify)(s.name))||"id",id:s.id,addressAndViewport:r})}return t&&e.filters&&(t+="?cat="+e.filters),t},s);function s(){}},"./src/js/modules/core/router.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{RouterModule:()=>i});var r=o("./src/js/app.module.ts"),s=o("./src/js/classes/classes.ts"),n=o("./src/js/gogocarto.ts"),i=(a.prototype.loadInitialState=function(){var e,t;n.App.config.general.activateHistoryStateAndRouting?(1<(e=window.location.hash.split("?cat=")).length&&(this.filtersSerializedParam=e[1]),(e=e[0])&&"#/"!=e&&"#"!=e||(e="/carte"),routie.navigate(e),setTimeout(function(){return routie.reload()},10)):(t=window.location.hash,routie.navigate("/carte"),setTimeout(function(){return routie.reload()},10),setTimeout(function(){return window.location.hash=t},100))},a.prototype.generate=function(e,t){return"#"+routie.lookup(e,t)},a.prototype.parseAddressViewport=function(e){var t=(e=e.split("?")[0]).split("@");return 1==t.length?[e,""]:t},a.prototype.startState=function(e){n.App.historyStateManager.load(e)},a);function a(){var i=this;this.filtersSerializedParam="",routie({"geolocalize /:mode/autour-de-moi":function(e){var t=new s.HistoryState;t.dataType=r.AppDataType.All,t.mode="carte"==e?r.AppModes.Map:r.AppModes.List,t.state=r.AppStates.Normal,t.address="geolocalize",t.filters=i.filtersSerializedParam,i.startState(t)},"normal /:mode/:addressAndViewport?":function(e,t){void 0===t&&(t="");var o=new s.HistoryState,t=i.parseAddressViewport(t);o.dataType=r.AppDataType.All,o.mode="carte"==e?r.AppModes.Map:r.AppModes.List,o.state=r.AppStates.Normal,o.address=t[0],o.viewport=(new s.ViewPort).fromString(t[1]),o.filters=i.filtersSerializedParam,i.startState(o)},"show_element /fiche/:name/:id/:addressAndViewport?":function(e,t,o){void 0===o&&(o="");var n=new s.HistoryState,o=i.parseAddressViewport(o);n.dataType=r.AppDataType.All,n.mode=r.AppModes.Map,n.state=r.AppStates.ShowElementAlone,n.address=o[0],n.viewport=(new s.ViewPort).fromString(o[1]),n.id=t,n.filters=i.filtersSerializedParam,i.startState(n)},"search /:mode/rechercher/:text":function(e,t){var o=new s.HistoryState;o.dataType=r.AppDataType.SearchResults,o.mode=r.AppModes.List,o.state=r.AppStates.Normal,o.text=t,o.filters=i.filtersSerializedParam,i.startState(o)},"search_option /category/:name/:id":function(e,t){var o=new s.HistoryState;o.dataType=r.AppDataType.All,o.mode=r.AppModes.Map,o.state=r.AppStates.Normal,o.filters=i.filtersSerializedParam,i.startState(o),n.App.searchBarComponent.searchOption(n.App.taxonomyModule.getOptionById(t))}})}},"./src/js/modules/core/template.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{TemplateModule:()=>s});var l=o("./src/js/gogocarto.ts"),n=o("./src/js/modules/element/template-element.module.ts"),i=o("./src/js/modules/element/template-element-filters.module.ts"),r=o("./src/js/utils/color.ts"),u=o("./node_modules/nunjucks/browser/nunjucks.js"),s=(a.prototype.initialize=function(){this.elementTemplate.initialize()},a.prototype.render=function(e,t){void 0===t&&(t={});var o="";switch(e){case"layout":o="layout.html.njk";break;case"marker":o="components/map/marker.html.njk";break;case"marker-popup-default":o="components/map/marker-popup-default.html.njk";break;case"gogo-styles":o="gogo-styles.html.njk";break;case"element":o="components/element/element.html.njk";break;case"element-body-default":o="components/element/default-body-content.html.njk";break;case"element-header-default":o="components/element/default-header-content.html.njk";break;case"vote-modal-content":o="components/modals/element/vote-content.html.njk";break;default:console.warn("[GoGoCarto] No template associated to templateName",e)}return this.nunjucksEnvironment.render(o,t)},a.prototype.compile=function(e){return u.compile(e,this.nunjucksEnvironment)},a);function a(){this.elementTemplate=new n.TemplateElementModule,this.elementFilters=new i.TemplateElementFiltersModule,this.nunjucksEnvironment=u.configure("../src/views",{autoescape:!0}),this.nunjucksEnvironment=this.elementFilters.addGoGoFilters(this.nunjucksEnvironment),this.nunjucksEnvironment.addFilter("i18n",function(e){return l.App.config.translate(e)}),this.nunjucksEnvironment.addFilter("is_string",function(e){return"string"==typeof e}),this.nunjucksEnvironment.addFilter("is_array",function(e){return Array.isArray(e)}),this.nunjucksEnvironment.addFilter("is_object",function(e){return"object"==typeof e}),this.nunjucksEnvironment.addFilter("to_css",function(e){return(0,r.default)(e)}),this.nunjucksEnvironment.addFilter("remove_first",function(e){e=e.slice();return e.shift(),e}),this.nunjucksEnvironment.addFilter("is_image_url",function(e){if(!e||"string"!=typeof e)return!1;var t=new RegExp(".*.(svg|png|jpg|jpeg|gif)"),o=new RegExp("https?://");return t.test(e.toLowerCase())||o.test(e.toLowerCase())}),this.nunjucksEnvironment.addFilter("file_extension",function(e){return!(!e||"string"!=typeof e)&&e.split(".").pop().toLowerCase()}),this.nunjucksEnvironment.addFilter("name_from_url",function(e){e=e.split("/");return e[e.length-1].replace(/[a-z0-9]{13}_/,"")}),this.nunjucksEnvironment.addFilter("add_protocol_if_need",function(e){return e.startsWith("http")?e:"http://"+e});function s(e,t){return moment(e).format(t).replace(o,"$1.m.")}function a(e,t){return moment(e).format(t)}var o=new RegExp("(a{1,2}|p).?m{1}?.?","i");this.nunjucksEnvironment.addFilter("date",function(e){for(var t=[],o=1;o{"use strict";o.r(t),o.d(t,{ElementDiffModule:()=>n});var c=o("./src/js/utils/string-helpers.ts"),p=o("./node_modules/diff/dist/diff.js"),n=(i.prototype.getDiffValue=function(e,t){var o,n=null,e=(0,p.diffSentences)(e,t),t=document.createElement("div"),i=document.createDocumentFragment();return e.forEach(function(e){o=e.added?"added":e.removed?"removed":"equals",n=document.createElement("span"),o&&(n.className=o),n.appendChild(document.createTextNode(e.value)),i.appendChild(n)}),t.appendChild(i),t.innerHTML},i.prototype.getDiffOptionValues=function(s,e){for(var a=[],t=e.map(function(e){return e.optionId}),l=s.map(function(e){return e.optionId}),o=0,n=s;o{"use strict";o.r(t),o.d(t,{ElementJsonParserModule:()=>n});var s=o("./src/js/classes/classes.ts"),a=o("./src/js/utils/string-helpers.ts"),l=o("./src/js/gogocarto.ts"),u=function(){return(u=Object.assign||function(e){for(var t,o=1,n=arguments.length;o{"use strict";o.r(t),o.d(t,{ElementFormaterModule:()=>r});var n=o("./src/js/classes/classes.ts"),i=o("./src/js/gogocarto.ts"),r=(s.prototype.calculateFormatedOpenHours=function(e){var t,o,n;for(n in e.formatedOpenHours={},e.openHours)t=this.translateDayKey(n),(o=this.formateDailyTimeSlot(e.openHours[n]))&&(e.formatedOpenHours[t]=o)},s.prototype.getProperty=function(e,t){var o=this.getValue(e,t)||"";if(e.status!=n.ElementStatus.PendingModification||!i.App.config.isFeatureAvailable("pending")||!e.modifiedElement)return o;if($.isArray(o)||"object"==typeof o)return o;e=this.getValue(e.modifiedElement,t);return o||e?(o=""+o||"",e=""+e||"","updatedAt"==t&&(t=o,o=e,e=t),i.App.elementDiffModule.getDiffValue(o,e)):""},s.prototype.translateDayKey=function(e){switch(e){case"Mo":return"lundi";case"Tu":return"mardi";case"We":return"mercredi";case"Th":return"jeudi";case"Fr":return"vendredi";case"Sa":return"samedi";case"Su":return"dimanche"}return""},s.prototype.formateDailyTimeSlot=function(e){return null===e?null:e.replace(/-/g,'-').replace(/,/g,' ')},s.prototype.getValue=function(e,t){t="address"==t?e.address?e.address.getFormatedAddress():"":(t in e?e:e.data)[t];return t},s);function s(){}},"./src/js/modules/element/option-values.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{ElementOptionValuesModule:()=>i});var d=o("./src/js/classes/classes.ts"),n=o("./src/js/gogocarto.ts"),i=(r.prototype.createOptionValues=function(e,t){if(t.optionsValues=[],t.mainOptionOwnerIds=[],e){for(var o=0;o{"use strict";o.r(t),o.d(t,{TemplateElementFiltersModule:()=>i});var s=o("./src/js/gogocarto.ts"),n=o("./src/js/utils/string-helpers.ts"),i=(r.prototype.addGoGoFilters=function(i){for(var r=this,e=0,t=this.filters;e{"use strict";o.r(t),o.d(t,{TemplateElementModule:()=>l});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/classes/classes.ts"),r=o("./src/js/classes/config/template-config.class.ts"),s=o("./node_modules/commonmark/lib/index.js"),a=function(){return(a=Object.assign||function(e){for(var t,o=1,n=arguments.length;o").replace(/</g,"<").replace(/"/g,'"')).replace(/
        |
        /g,'
        ')},u.prototype.compile=function(e,t){e.isMarkdown&&(t=this.parseMarkdownSyntax(t));var o=n.App.templateModule.compile(this.fixTemplate(t));switch(e.name){case r.TemplateNames.ElementBody:this.bodyTemplate=o;break;case r.TemplateNames.ElementHeader:this.headerTemplate=o;break;case r.TemplateNames.MarkerPopup:this.markerPopupTemplate=o}this.checkTemplatesReady()},u.prototype.checkTemplatesReady=function(){this.isReady||this.bodyConfig.isUrl()&&!this.bodyTemplate||!this.headerTemplate&&this.headerConfig.isUrl()||!this.markerPopupTemplate&&this.markerPopupConfig.isUrl()||(this.isReady=!0,this.onReady.emit())},u.prototype.parseMarkdownSyntax=function(e){var t=new s.Parser;return(new s.HtmlRenderer).render(t.parse(e))},u);function u(){this.onReady=new i.Event,this.isReady=!1,this.bodyTemplate=null,this.headerTemplate=null,this.markerPopupTemplate=null}},"./src/js/modules/elements/elements-json.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{ElementsJsonModule:()=>r});var p=o("./src/js/classes/classes.ts"),d=o("./src/js/gogocarto.ts"),n=o("./src/js/classes/event.class.ts"),i=o("./src/js/utils/string-helpers.ts"),r=(s.prototype.convertJsonElements=function(e,t,o){if(void 0===t&&(t=!0),void 0===o&&(o=!0),!e)return{newElementsLength:[],elementsUpdatedLength:0,newElements:[],elementsConverted:[]};var n,i,r=[],s=[];(new Date).getTime();this.cheksIdsAndCreateOnesIfNeeded(e);var a=e.filter(function(e){return d.App.elementsModule.everyElementsId.indexOf(e.id)<0}),l=[];if(o)for(var u=(l=e.filter(function(e){return 0<=d.App.elementsModule.everyElementsId.indexOf(e.id)})).length;u--;)i=l[u],(n=d.App.elementById(i.id)).updateWithJson(i),s.push(n);for(var c=a.length;c--;)i=a[c],(n=new p.Element(i)).initialize(),r.push(n);s=s.concat(r),(new Date).getTime();return this.onNewsElementsConverted.emit(r),{newElementsLength:a.length,elementsUpdatedLength:l.length,newElements:r,elementsConverted:s}},s.prototype.loadLocalElements=function(){var e;Array.isArray(d.App.config.data.elements)&&(e=d.App.config.data.elements,e=this.convertJsonElements(e,!0,!0),d.App.config.data.elementsApiUrl||(d.App.ajaxModule.allElementsReceived=!0),d.App.config.map.defaultBoundsProvided||d.App.historyStateManager.lastHistoryState&&d.App.historyStateManager.lastHistoryState.viewport||(console.log("fit to elements bounds"),d.App.mapComponent.fitElementsBounds(e.elementsConverted)))},s.prototype.cheksIdsAndCreateOnesIfNeeded=function(e){var n=this;e.forEach(function(e,t){var o=(o=!(o=e[0]||e.id||e["@id"])&&e.compactJson?e.compactJson[0]:o)&&"string"==typeof o?(0,i.parseUriId)(o):"generated"+n.elementsCreatedCount++;e.id=o})},s);function s(){this.elementsCreatedCount=0,this.onNewsElementsConverted=new n.Event}},"./src/js/modules/elements/elements.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{ElementsModule:()=>i});var p=o("./src/js/app.module.ts"),d=o("./src/js/gogocarto.ts"),n=o("./src/js/classes/event.class.ts"),i=(r.prototype.initialize=function(){this.everyElements_.all=[],this.visibleElements_.all=[];for(var e=0,t=d.App.taxonomyModule.getMainOptions();e{"use strict";o.r(t),o.d(t,{FavoriteModule:()=>r});var n=o("./src/js/gogocarto.ts"),i=o("./src/js/utils/cookies.ts"),r=(s.prototype.checkCookies=function(){if(n.App.config.isFeatureActivated("favorite"))for(var e=0;e{"use strict";o.r(t),o.d(t,{StampModule:()=>n});var i=o("./src/js/classes/classes.ts"),n=(r.prototype.checkForAddingStamps=function(n){n.map(function(e){return e.id});for(var e=0,t=this.allowedStamps;e{"use strict";o.r(t),o.d(t,{GeocoderModule:()=>l});var a=o("./src/js/gogocarto.ts"),i=o("./src/js/classes/classes.ts"),n=o("./src/js/utils/string-helpers.ts"),r=o("./src/js/classes/config/gogo-config.class.ts"),s=function(){return(s=Object.assign||function(e){for(var t,o=1,n=arguments.length;o{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{LoginModule:()=>LoginModule});var _gogocarto__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/js/gogocarto.ts"),LoginModule=function(){function LoginModule(e,t,o){void 0===t&&(t=""),this.userEmail="",this.setRoles(e),this.setUserEmail(t),this.setUserGroups(o)}return LoginModule.prototype.setRoles=function(e){this.roles_="string"==typeof e?[e]:e,_gogocarto__WEBPACK_IMPORTED_MODULE_0__.App&&(_gogocarto__WEBPACK_IMPORTED_MODULE_0__.App.config.security.userRoles=this.roles_)},LoginModule.prototype.setUserEmail=function(e){this.userEmail=e,_gogocarto__WEBPACK_IMPORTED_MODULE_0__.App&&(_gogocarto__WEBPACK_IMPORTED_MODULE_0__.App.config.security.userEmail=this.userEmail)},LoginModule.prototype.setUserGroups=function(e){this.userGroups=e,_gogocarto__WEBPACK_IMPORTED_MODULE_0__.App&&(_gogocarto__WEBPACK_IMPORTED_MODULE_0__.App.config.security.userGroups=this.userGroups)},LoginModule.prototype.getUserEmail=function(){return this.userEmail},LoginModule.prototype.getRoles=function(){return this.roles_},LoginModule.prototype.loginAction=function(){"function"==typeof _gogocarto__WEBPACK_IMPORTED_MODULE_0__.App.config.security.loginAction?_gogocarto__WEBPACK_IMPORTED_MODULE_0__.App.config.security.loginAction():eval(_gogocarto__WEBPACK_IMPORTED_MODULE_0__.App.config.security.loginAction)},LoginModule}()},"./src/js/modules/map/display-element-alone.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{DisplayElementAloneModule:()=>i});var n=o("./src/js/gogocarto.ts"),i=(r.prototype.getElement=function(){return this.elementShownAlone_},r.prototype.begin=function(e,t){void 0===t&&(t=!0),null!==this.elementShownAlone_&&(this.elementShownAlone_.hide(),this.elementShownAlone_.isShownAlone=!1);var o=n.App.elementById(e);this.elementShownAlone_=o,n.App.elementsModule.clearCurrentsElement(),n.App.mapComponent.panToLocation(o.position,12,!1),setTimeout(function(){n.App.infoBarComponent.showElement(o.id),t&&setTimeout(function(){n.App.mapComponent.panToLocation(o.position,12,!1)},350)},500)},r.prototype.end=function(){null!==this.elementShownAlone_&&(n.App.elementsModule.updateElementsToDisplay(!0),this.elementShownAlone_.isShownAlone=!1,this.elementShownAlone_=null)},r);function r(){this.elementShownAlone_=null}},"./src/js/modules/search.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{SearchModule:()=>i});var u=o("./src/js/gogocarto.ts"),n=o("./src/js/utils/string-helpers.ts"),i=(r.prototype.searchTerm=function(e,n,t){void 0===t&&(t=!1);function o(e){var t=void 0!==(o=e.elements)&&o,o=void 0!==(o=e.options)&&o,e=e.locations;r=o||r,l=(e=void 0!==e&&e)||l,(i=t||i)&&r&&l&&n(i,r,l)}var i,r,s=u.App.config.isFeatureAvailable("searchElements"),a=u.App.config.isFeatureAvailable("searchCategories"),t=u.App.config.isFeatureAvailable("searchPlace")&&(u.App.config.search.canAutocomplete||t),l=!1;s?(s=u.App.config.features.searchElements.url)?u.App.ajaxModule.sendRequest(s,"get",{text:e},function(e){e=e.data;o({elements:e.map(function(e){return{type:"element",value:e}})})}):o({elements:this.searchInResults(e,u.App.elementsModule.allElements(),function(e){return e.name}).map(function(e){return{type:"element",value:e}})}):o({elements:[]}),o(a?{options:this.searchInResults(e,u.App.taxonomyModule.options,function(e){return e.name}).filter(function(e){return e.displayInMenu}).map(function(e){return{type:"option",value:e}})}:{options:[]}),t?u.App.geocoder.geocodeAddress(e,function(e){o({locations:e.map(function(e){return{type:"geocoded",value:e}})})}):o({locations:[]})},r.prototype.searchInResults=function(t,e,o){return e.filter(function(e){return(0,n.removeDiactrics)(o(e)).toLowerCase().includes((0,n.removeDiactrics)(t).toLowerCase())})},r.prototype.compareResult=function(e,t){return(0,n.removeDiactrics)(e).toLowerCase()===(0,n.removeDiactrics)(t).toLowerCase()},r);function r(){}},"./src/js/modules/taxonomy/filter-routing.module.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{FilterRoutingModule:()=>n});var l=o("./src/js/gogocarto.ts"),u=o("./src/js/utils/parser-string-number.ts"),i=o("./src/js/utils/string-helpers.ts"),n=(r.prototype.loadFiltersFromString=function(e){var t,o=e.split("@"),n=o[0],e="all"!=n&&(t=l.App.taxonomyModule.getMainOptionBySlug(n))?t.id:"all";l.App.filtersComponent.setMainOption(e),2==o.length?r=(r=o[1]).split("+")[0]:2{"use strict";o.r(t),o.d(t,{FilterModule:()=>n});var i=o("./src/js/classes/classes.ts"),s=o("./src/js/gogocarto.ts");window["moment-range"].extendMoment(moment);var n=(r.prototype.showOnlyFavorite=function(e){this.showOnlyFavorite_=e},r.prototype.showOnlyPending=function(e){this.showOnlyPending_=e},r.prototype.showOnlyModeration=function(e){this.showOnlyModeration_=e},r.prototype.checkIfElementPassFilters=function(e){if(0==e.optionsValues.length)return!1;if(e.status<-1&&s.App.infoBarComponent.elementVisible!=e)return!1;if(this.showOnlyFavorite_)return e.isFavorite;if(this.showOnlyModeration_&&(!e.needsModeration()||e.moderationState==i.ElementModerationState.PossibleDuplicate))return!1;if(s.App.config.isFeatureAvailable("pending")){if(this.showOnlyPending_&&!e.isPending())return!1}else if(e.isPending())return!1;for(var t=0,o=s.App.config.menu.filters;t=o.min)},r.prototype.filterTaxonomy=function(t){var o=this;if(s.App.config.menu.showOnePanePerMainOption){if("all"==s.App.currMainId){var e=s.App.taxonomyModule.getMainOptions().filter(function(e){return e.isActive}).some(function(e){return t.haveOption(e)}),n=s.App.taxonomyModule.otherRootCategories.every(function(e){return o.recursivelyCheckInCategory(e,t)});return e&&n}e=s.App.taxonomyModule.getCurrMainOption(),e=this.recursivelyCheckInOption(e,t),n=s.App.taxonomyModule.otherRootCategories.every(function(e){return o.recursivelyCheckInCategory(e,t)});return e&&n}return s.App.taxonomyModule.taxonomy.nonDisabledOptions.some(function(e){return t.haveOption(e)&&o.recursivelyCheckInOption(e,t)})},r.prototype.recursivelyCheckInOption=function(e,t){var o=this;return this.log&&console.log(t.name,"Check for option ",e.name),e=0==e.subcategories.length||e.isDisabled&&!e.isMainOption?(this.log&&console.log("No subcategories "),!e.isDisabled&&t.haveOption(e)):e.subcategories.every(function(e){return o.recursivelyCheckInCategory(e,t)}),this.log&&console.log("Return ",e),e},r.prototype.recursivelyCheckInCategory=function(e,t){var o=this;if(this.log&&console.log("--Category",e.name),!e.useForFiltering)return!0;var n=e.activeOptions,i=t.getOptionValueByCategoryId(e.id);if(0==(i=s.App.config.menu.showOnePanePerMainOption?i.filter(function(e){return e.optionId!=s.App.currMainId}):i).length)return this.log&&console.log("--Element don't have options in this category. Category checked ? ",e.isChecked),e.isChecked;var r=i.some(function(e){return-1{"use strict";o.r(t),o.d(t,{TaxonomySkosModule:()=>i});var n=o("./src/js/utils/string-helpers.ts"),i=(r.prototype.convertSkosIntoGoGoTaxonomy=function(e){this.concepts=e["@graph"];for(var t=[],o=0,n=this.concepts.filter(function(e){return!e.broader});o{"use strict";o.r(t),o.d(t,{Option:()=>a.Option,Category:()=>a.Category,TaxonomyModule:()=>i});var a=o("./src/js/classes/classes.ts"),n=o("./src/js/utils/string-helpers.ts"),s=o("./src/js/gogocarto.ts"),i=(r.prototype.createTaxonomyFromJson=function(e){var t=(e=s.App.config.data.transformTaxonomy?s.App.config.data.transformTaxonomy(e):e)["@graph"];if(t&&(e=s.App.taxonomySkosModule.convertSkosIntoGoGoTaxonomy(e)),Array.isArray(e)&&1==e.length&&(e=e[0]),Array.isArray(e)&&1{"use strict";o.r(t),o.d(t,{afterTemplateLoaded:()=>function(){"transiscope"==n.App.config.theme&&($("#main-option-all > .category-wrapper:first-child .subcategorie-option-item .icon-wrapper").addClass("gogo-bg-color-as"),$(".category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon").addClass("subcategory-icon").closest(".icon-wrapper").removeClass("gogo-bg-color-as"))}});var n=o("./src/js/gogocarto.ts")},"./src/js/utils/array.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{arraysEqual:()=>function(t,o){return t===o||null!=t&&null!=o&&(t.length==o.length&&(!!t.every(function(e){return-1l});var s=function(){for(var e=0,t=0,o=arguments.length;t{"use strict";o.r(t),o.d(t,{default:()=>function(e){e=e.toRgb();return new n(e.r,e.g,e.b).toCss()}});var n=(i.prototype.toString=function(){return"rgb("+Math.round(this.r)+", "+Math.round(this.g)+", "+Math.round(this.b)+")"},i.prototype.set=function(e,t,o){this.r=this.clamp(e),this.g=this.clamp(t),this.b=this.clamp(o)},i.prototype.hueRotate=function(e){e=(e=void 0===e?0:e)/180*Math.PI;var t=Math.sin(e),e=Math.cos(e);this.multiply([.213+.787*e-.213*t,.715-.715*e-.715*t,.072-.072*e+.928*t,.213-.213*e+.143*t,.715+.285*e+.14*t,.072-.072*e-.283*t,.213-.213*e-.787*t,.715-.715*e+.715*t,.072+.928*e+.072*t])},i.prototype.grayscale=function(e){this.multiply([.2126+.7874*(1-(e=void 0===e?1:e)),.7152-.7152*(1-e),.0722-.0722*(1-e),.2126-.2126*(1-e),.7152+.2848*(1-e),.0722-.0722*(1-e),.2126-.2126*(1-e),.7152-.7152*(1-e),.0722+.9278*(1-e)])},i.prototype.sepia=function(e){this.multiply([.393+.607*(1-(e=void 0===e?1:e)),.769-.769*(1-e),.189-.189*(1-e),.349-.349*(1-e),.686+.314*(1-e),.168-.168*(1-e),.272-.272*(1-e),.534-.534*(1-e),.131+.869*(1-e)])},i.prototype.saturate=function(e){this.multiply([.213+.787*(e=void 0===e?1:e),.715-.715*e,.072-.072*e,.213-.213*e,.715+.285*e,.072-.072*e,.213-.213*e,.715-.715*e,.072+.928*e])},i.prototype.multiply=function(e){var t=this.clamp(this.r*e[0]+this.g*e[1]+this.b*e[2]),o=this.clamp(this.r*e[3]+this.g*e[4]+this.b*e[5]),e=this.clamp(this.r*e[6]+this.g*e[7]+this.b*e[8]);this.r=t,this.g=o,this.b=e},i.prototype.brightness=function(e){this.linear(e=void 0===e?1:e)},i.prototype.contrast=function(e){this.linear(e=void 0===e?1:e,-.5*e+.5)},i.prototype.linear=function(e,t){this.r=this.clamp(this.r*(e=void 0===e?1:e)+255*(t=void 0===t?0:t)),this.g=this.clamp(this.g*e+255*t),this.b=this.clamp(this.b*e+255*t)},i.prototype.invert=function(e){this.r=this.clamp(255*((e=void 0===e?1:e)+this.r/255*(1-2*e))),this.g=this.clamp(255*(e+this.g/255*(1-2*e))),this.b=this.clamp(255*(e+this.b/255*(1-2*e)))},i.prototype.hsl=function(){var e,t=this.r/255,o=this.g/255,n=this.b/255,i=Math.max(t,o,n),r=Math.min(t,o,n),s=(i+r)/2;if(i===r)e=l=0;else{var a=i-r,l=.5{"use strict";function n(e,t,o){void 0===o&&(o=100);var n=new Date;n.setTime(n.getTime()+24*o*60*60*1e3);n="; expires="+n.toUTCString();document.cookie=e+"="+t+n+"; path=/"}o.r(t),o.d(t,{createCookie:()=>n,readCookie:()=>function(e){for(var t=e+"=",o=document.cookie.split(";"),n=0;nfunction(e){n(e,"")}})},"./src/js/utils/params.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{getQueryParams:()=>function(e){e=e.split("+").join(" ");var t,o={},n=/[?&]?([^=]+)=([^&]*)/g;for(;t=n.exec(e);)o[decodeURIComponent(t[1])]=decodeURIComponent(t[2]);return o}})},"./src/js/utils/parser-string-number.ts":(e,t,o)=>{"use strict";o.r(t),o.d(t,{parseArrayNumberIntoString:()=>function(e){for(var t="",o=0,n=0,i=e;nfunction(e){var t=[];if(!e)return t;for(var e=e.match(/[a-z]+|[0-9]+/g),o=0,n=e;o{"use strict";function n(e){if(null==e||""==e)return e;for(var t="",o=e.split(""),n=0;nfunction(e){if(!e)return"";for(var t="ãàáäâẽèéëêìíïîõòóöôùúüûñç·/_,:;",o=0,n=t.length;ofunction(e){return e?e.toString().replace(/\-+/g," "):""},capitalize:()=>function(e){return e?1function(e){if(!e)return"";e=e.toString().split("/");return e[e.length-1]},splitLongText:()=>function(e,t,o){void 0===o&&(o=50);e.lengthfunction(e){return e?10==e.length?e.replace(/(.{2})(?!$)/g,"$1 "):e:""},camelToProper:()=>n,snakeToProper:()=>i,formatLabel:()=>function(e){return i(n(e)).replace(" "," ")},removeDiactrics:()=>r,applyGlossary:()=>function(e,t){for(var o in t){var n=new RegExp("("+o+")","i");e=e.replace(n,'$1')}return e}});var r=function(e){return e?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):""}},"./node_modules/entities/maps/decode.json":e=>{"use strict";e.exports=JSON.parse('{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}')},"./node_modules/entities/maps/entities.json":e=>{"use strict";e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},"./node_modules/entities/maps/legacy.json":e=>{"use strict";e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Acirc":"Â","acirc":"â","acute":"´","AElig":"Æ","aelig":"æ","Agrave":"À","agrave":"à","amp":"&","AMP":"&","Aring":"Å","aring":"å","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","brvbar":"¦","Ccedil":"Ç","ccedil":"ç","cedil":"¸","cent":"¢","copy":"©","COPY":"©","curren":"¤","deg":"°","divide":"÷","Eacute":"É","eacute":"é","Ecirc":"Ê","ecirc":"ê","Egrave":"È","egrave":"è","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","frac12":"½","frac14":"¼","frac34":"¾","gt":">","GT":">","Iacute":"Í","iacute":"í","Icirc":"Î","icirc":"î","iexcl":"¡","Igrave":"Ì","igrave":"ì","iquest":"¿","Iuml":"Ï","iuml":"ï","laquo":"«","lt":"<","LT":"<","macr":"¯","micro":"µ","middot":"·","nbsp":" ","not":"¬","Ntilde":"Ñ","ntilde":"ñ","Oacute":"Ó","oacute":"ó","Ocirc":"Ô","ocirc":"ô","Ograve":"Ò","ograve":"ò","ordf":"ª","ordm":"º","Oslash":"Ø","oslash":"ø","Otilde":"Õ","otilde":"õ","Ouml":"Ö","ouml":"ö","para":"¶","plusmn":"±","pound":"£","quot":"\\"","QUOT":"\\"","raquo":"»","reg":"®","REG":"®","sect":"§","shy":"­","sup1":"¹","sup2":"²","sup3":"³","szlig":"ß","THORN":"Þ","thorn":"þ","times":"×","Uacute":"Ú","uacute":"ú","Ucirc":"Û","ucirc":"û","Ugrave":"Ù","ugrave":"ù","uml":"¨","Uuml":"Ü","uuml":"ü","Yacute":"Ý","yacute":"ý","yen":"¥","yuml":"ÿ"}')},"./node_modules/entities/maps/xml.json":e=>{"use strict";e.exports=JSON.parse('{"amp":"&","apos":"\'","gt":">","lt":"<","quot":"\\""}')},"./src/locales/br.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Asantiñ","add":"Ouzhpennañ","added.admin":"Ouzhpennet gant ar merour","admin":"Merour","all":"An holl","all.the":"An holl","anonymous":"Dianv","anonymous.email":"Dianv gant ur postel","anonymous.link":"Dianv gant ul liamm","around":"war-dro","around.map.center":"tro-dro kreiz ar gartenn","back.to.map":"Distreiñ d\'ar gartenn","cancel":"Nullañ","change.tiles":"Cheñchit kartenn","check.uncheck.all":"Askañ/diaskañ pep tra","clear.filter":"Diverkañ ar sil","close":"Serriñ","collaborative.moderation":"Al luskañ dre genlabour","collaborative.moderation.second.paragraph":"Pa vo bet mouezhiet evit ${element.definite} gant meur a zen e c\'hallo bezañ degemeret pe nac\'het war-eeun. Ma vefe ur gudenn (lakomp e vefe rampo niver ar mouezhioù a-du pe a-enep) e raio ar merour war-dro, ar buanañ ar gwellañ. Kontañ a reomp warnoc\'h !","comment.for.moderation":"Evezhiadenn evit ar moderiñ","copy.html.code":"Kopiañ ar c\'hod HTML-mañ en ho lec\'hienn web !","date.defaultFormat":"D MMMM YYYY à HH:mm","date.defaultFormatShort":"dd/mm/bbbb","decide":"Divizout","decide.for":"Divizit evit","delete":"Dilemel","does.not.respect.charter.should.not.be.listed.here":"Ne zouj ket ouzh ar garta, N\'en deus netra d\'ober amañ","duplicate.on.map":"zo meneget meur a wech war ar gartenn (doublenn)","edit":"Cheñch","element.definite":"an elfenn ","element.undefinite":"un elfenn","element.plural":"elfennoù","element.no.longer.exists":"N\'eus ket eus ${element.definite} ken","element.no.respect.charter":"${element.definite} na zouj ket ouzh ar garta","element.referenced.several.times":"${element.definite} zo menegeret meur a wech","email.content":"E-barzh ar gemennadenn","error.occured":"Digarezit, ur fazi zo bet","errors.reported":"Fazioù lakaet war wel","exists.but.i.do.not.know.anything.else.about.it":"Bez \'z eus, met ne ouzon netra ouzhpenn diwar e benn","exists.and.i.validate.the.accuracy.of.the.given.informations":"Bez \'z eus ha kadarnaat a ran eo gwir an titouroù kinniget","exists.but.incorrect.informations":"Bez \'z eus met faos eo an titouroù","export.iframe":"Ezporzhiañ un Iframe","fill.fields.below":"Ret eo deoc\'h leuniañ pep takad dindan","filter.date.view.range":"Lajad","filter.date.view.week":"Sizhun","filter.date.view.year":"Bloavezh","find.route":"Dibab an hent","found.one.or.several":" bet kavet","general.infos":"Titouroù hollek","geographic.location":"Lec\'h","geojson.layers":"Follennoù treuzwelus","geolocalize":"Resisaat al lec\'h m\'emaoc\'h","geolocalized":"Lec\'hiet","geolocation.error.refused":"Lec\'hiañ nac\'het","geolocation.error.failed":"C\'hwitet eo al lec\'hiañ","height":"Uhelder","hide.header":"Kuzhat roll ar penn uhelañ","historical":"Roll-istor","i.do.not.agree.with.the.proposed.modifications":"N\'on ket a-du gant ar cheñchamantoù kinniget","imported":"Enporzhiet","modified.owner":"Cheñchet gant ar perc\'henn","ok":"Mat eo !","share.url":"Rannañ an URL","share.your.knowledge.about":"Rannit hoc\'h anaoudegezh diwar-benn","show.as.list":"Lakaat war wel e stumm ul listenn","show.hide.detail":"Lakaat war wel/Kuzhat","show.more":"Diskouez muioc\'h","informations.incorrect":"N\'eo ket mat an titouroù","label":"Tikedenniñ","laozi":"Lao Tseu","laozi.quotation":"« Evit dont a-benn e ranker faziañ. »","list.of":"Listenn an","logged.user":"Implijer enrollet","map.of":"Kartenn an","mark.as.resolved":"Merket evel renket","menu":"Roll","modification":"Cheñchamant","modification.plural":"Cheñchamantoù","modified.direct.link":"Cheñchet gant ul liamm eeun","modified.pending":"O c\'hortoz ar cheñchamant","my.position":"ma lec\'hiadur","new":"Nevezenti","no.category.provided":"Rummad ebet leuniet","no.result.found":"Disoc\'h ebet kavet","non.consensual.votes":"Mouezhiañ kontrol","not.correct.informations":"N\'eo ket mat an titouroù","openhours":"Digor etre","other.infos":"Titouroù all","pending.add":"War c\'hortoz (tra ouzhpenn)","pending.for.too.long":"War c\'hortoz abaoe re bell","pending.modifications":"War c\'hortoz (cheñchamantoù)","pending.validation":"Da vezañ kadarnaet","place":"Ul lec\'h","placeholder.input.comment.administration":"Displegadenn ouzhpenn evit ar moderiñ","placeholder.input.subject.email":"Danvez ar gemennadenn","potential.duplicate":"Doublenn bosupl","propose.changes":"Kinnig cheñchamantoù","proposed.by":"Kinniget gant","refused.admin":"Nac\'het (merour)","reject":"Nac\'hañ","rejected.or.deleted.element":"(${element.definite} bet nac\'het pe dilamet)","remove.from.favorites":"Tennañ diouzh ar pennroll","report":"Disklêriañ","report.error":"Disklêriañ ur fazi","report.error.regarding":"Disklêriañ ur fazi diwar-benn","reporting":"Disklêriadenn","results":"Disoc\'hoù","route":"Hent","route.calculation":"Sevel un hent","search.for":"Klask","search.radius":"Tachenn dibabet","see.on.map":"Sellet ouzh ar gartenn","select.type.error":"Ret eo deoc\'h dibab ur fazi skouer !","send":"Kas","send.email":"Kas ur postel","send.email.to":"Kas ur postel da ","share.link":"Rannañ al liamm-mañ gant tud all","show.on.map":"Diskouez ar gartenn","show.only":"Diskouez nemet","show.only.actors.with.label":"Diskouez nemet ar berzhidi gant an dikedenn","show.only.elements.to.moderate":"Diskouez nemet an ${element.plural} da voderiñ","show.only.elements.validation.process":"Diskouez nemet an ${element.plural} a zo war-nes bezañ kadarnaet","source":"Mammenn","starting.address":"Chomlec\'h loc\'hañ","subscribe":"Koumanantiñ","subscribed":"Koumanantet","the.addition":"An dra ouzhpennet","the.modification":"ar cheñchamant","to.moderate":"Da voderiñ","type.message.here":"Skrivit ho kemennadenn amañ","updated.at":"Nevezentioù diwezhañ","validated.admin":"Kadarnaet (merour)","validated.votes":"Kadarnaet (mouezhiañ)","video":"Video","vote":"Mouezhiañ","waiting":"War c\'hortoz","what.error.to.report":"Peseurt doare fazi ho peus c\'hoant da lakaat war wel ?","width":"Ledander","back.to.default.view":"Distreiñ d\'ar gwel dre ziouer","by":"dre","can.not.locate.address":"Dibosupl eo lec\'hiañ ar chomlec\'h-mañ !","card":"Fichenn","category":"Rummadoù","close.menu":"Serriñ ar roll","collaborative.moderation.first.paragraph":"Pa ouzhpenner pe cheñcher${element.undefinite} ne vez ket nevesaet diouzhtu : e griz e vo${element.definite} war ar gartenn da gentañ penn. An holl implijerien a c\'hello en em lugañ evit votiñ ur wech hepken. Mouezhiañ ne dalv ket reiñ e soñj, met rannañ ar pezh a ouzer. Ma anavezit ${element.definite}, pe ma ouzit n\'eus ket eus ${element.definite} ken, kasit keloù deomp !","deleted":"Dilamet","does.not.exist":"N\'eus ket","does.not.respect.charter":"Ne zouj ket ouzh ar garta","element":"Elfenn","elements.containing":"${element.plural} enni","email.will.be.sent.to":"Kaset e vo ar postel da ","enter.valid.email":"Dibabit ur postel hag a ya en-dro, mar plij","error.occurend.route.calculation":"Digarezit, ur fazi zo bet e-pad m\'edod o tibab an hent !","exists":"Bez \'z eus","exists.and.correct.informations":"Bez \'z eus ha mat eo an titouroù","exists.but.given.informations.are.incorrect":"Bez \'z eus met n\'eo ket mat an titouroù roet","files":"Fichennaouegoù","filter.date.view.day":"Deiz","filter.date.view.month":"Miz","loading":"O kargañ emañ…","i.validate.the.proposed.modifications":"Kadarnaat a ran ar cheñchamantoù kinniget","no.moderation.necessary":"N\'eo ket dav moderiñ","iframe.initialized.position.map":"An ifram a vo savet war ar gartenn evel m\'emañ. Diblasit ar gartenn evel m\'ho peus c\'hoant a-raok he digeriñ !","info.less":"Nebeutoc\'h a ditouroù","info.more":"Titouroù ouzhpenn","modified.admin":"Cheñchet gant ar merour","refused.votes":"Nac\'het (mouezhiañ)","placeholder.input.comment":"Prouenn kenkas ma vefe nac\'het (kaset e vo er gemennadenn)","route.to.element":"Hent war-zu ${element.definite}","save.as.favorites":"Enrollet er pennroll","search":"Klask","save":"Enrollañ","show.only.favorites":"Diskouez nemet ar pennroll","starting.address.title":"Leuniit ur chomlec\'h loc\'hañ","saved":"Enrollet","subscribe.changes":"Komanantiñ evit resev ar cheñchamantoù","show.only.selected.categories":"Diskouez nemet ar rummadoù bet dibabet","the":"Ar","unsubscribe":"Digoumanantiñ","unsubscribe.changes":"Digoumanantiñ evit chom hep resev ar cheñchamantoù","you.must.select.your.vote":"Ret eo deoc\'h reiñ ho tibab","your.email":"Ho postel","your.favorites":"Ho pennroll"}')},"./src/locales/de.json":e=>{"use strict";e.exports=JSON.parse('{"decide.for":"Entscheiden für","fill.fields.below":"Nachfolgendes Feld ist erforderlich","element.referenced.several.times":"${element.definite} ist mehrfach referenziert","elements.containing":"${element.plural} enthalten","decide":"Entscheiden","collaborative.moderation.second.paragraph":"Ab einer gewissen Stimmenzahl kann ${element.definite} automatisch akzeptiert oder zurückgewiesen werden. In unklaren Fällen (wenn es negative wie positive Stimmen gibt), wird sich ein Moderator so schnell wie möglich darum kümmern. Wir zählen auf dich !","collaborative.moderation.first.paragraph":"Wenn ${element.undefinite} hinzugefügt oder geändert wird, ist das Update nicht sofort aktiv: ${element.definite} erscheint zunächst nur ausgegraut in der Karte. Alle angemeldeten Benutzer:innen können dann ihre Stimme abgeben. Das soll keine Meinungsumfrage sein, es geht um das Wissen der Crowd. Wenn du ${element.definite} kennst, oder weißt, dass ${element.definite} nicht existiert, dann sind wir auf dein Wissen angewiesen !","check.uncheck.all":"Alles aktivieren/deaktivieren","to.moderate":"Zu moderieren","the":"der/die/das","show.only.elements.validation.process":"Nur ${element.plural} in Validierung anzeigen","show.only.elements.to.moderate":"Nur ${element.plural} zur Moderation anzeigen","show.only.actors.with.label":"Nur Akteure mit Label anzeigen","pending.validation":"In Validierung","pending.modifications":"In Bearbeitung (Änderung)","pending.for.too.long":"Zu lange in Bearbeitung","modified.pending":"Änderung in Bearbeitung","pending.add":"In Bearbeitung (Hinzufügung)","my.position":"meine Position","modified.owner":"Vom Besitzer geändert","mark.as.resolved":"Als gelöst markieren","loading":"Lädt…","geolocation.error.failed":"Geolokalisierung fehlgeschlagen","geolocation.error.refused":"Geolokalisierung abgelehnt","geolocalized":"Geolokalisiert","geolocalize":"Eigene Position geolokalisieren","element.no.respect.charter":"${element.definite} hält sich nicht an die Charta","duplicate.on.map":"ist mehrfach auf der Karte eingetragen (Duplikat)","does.not.respect.charter.should.not.be.listed.here":"Hält sich nicht an die Charta, gehört hier nicht hin","does.not.respect.charter":"Hält sich nicht an die Charta","all.the":"Alle","collaborative.moderation":"Kollaborative Moderation","change.tiles":"Kartenhintergrund wechseln","accept":"Annehmen","comment.for.moderation":"Kommentar für die Moderation","close.menu":"Menu schließen","close":"Schließen","clear.filter":"Filter zurücksetzen","category":"Kategorie","can.not.locate.address":"Kann diese Adresse nicht finden!","cancel":"Abbrechen","back.to.map":"Zurück zur Karte","back.to.default.view":"Zurück zur Standardansicht","add":"Hinzufügen","exists.but.incorrect.informations":"Existiert mit falschen Informationen","exists.and.i.validate.the.accuracy.of.the.given.informations":"existiert und ich bestätige, dass die angegebenen Informationen korrekt sind","files":"Dateien","export.iframe":"Ein IFrame exportieren","found.one.or.several":" gefunden","find.route":"Reiseroute berechnen","filter.date.view.year":"Jahr","filter.date.view.week":"Woche","filter.date.view.range":"Datumsbereich","filter.date.view.month":"Monat","filter.date.view.day":"Tag","geographic.location":"Geografische Position","general.infos":"Allgemeine Informationen","hide.header":"Kopfzeile ausblenden","height":"Höhe","i.do.not.agree.with.the.proposed.modifications":"Ich stimme den vorgeschlagenen Änderungen nicht zu","i.validate.the.proposed.modifications":"Ich stimme den vorgeschlagenen Änderungen zu","historical":"Verlauf","imported":"Importiert","iframe.initialized.position.map":"Der iframe wird an der aktuellen Position in der Karte initialisiert. Bewegen Sie die Karte an die gewünschte Position, bevor Sie dieses Fenster öffnen!","laozi":"Laozi","label":"Bezeichnen","informations.incorrect":"Ungültige Info","list.of":"Liste von","laozi.quotation":"„Scheitern ist die Grundlage des Erfolgs.“","map.of":"Karte von","logged.user":"Angemeldeter Benutzer","modified.direct.link":"Geändert mit einem direkten Link","modified.admin":"Geändert von Admin","modification.plural":"Änderungen","modification":"Änderung","menu":"Menü","new":"Neue(r)","non.consensual.votes":"Nicht eindeutige Stimmen","no.result.found":"Keine Ergebnisse","no.moderation.necessary":"Keine Moderation erforderlich","no.category.provided":"Keine vorgesehene Kategorie","not.correct.informations":"Die Informationen sind nicht richtig (wenn Sie sie korrigieren können, tun Sie dies bitte über die „Änderungen vorschlagen“-Schaltfläche)","anonymous":"Anonym","placeholder.input.comment.administration":"Optionaler Kommentar für die Moderation","other.infos":"Andere Informationen","openhours":"Öffnungszeit","ok":"OK!","placeholder.input.comment":"Begründung im Falle einer Ablehnung (wird automatisch in die E-Mail eingefügt)","place":"Ein Ort","placeholder.input.subject.email":"E-Mail-Betreff","propose.changes":"Änderungen vorschlagen","potential.duplicate":"Potenzielles Duplikat","refused.votes":"Abgelehnt (Stimmen)","refused.admin":"Abgelehnt (Admin)","proposed.by":"Vorgeschlagen von","rejected.or.deleted.element":"(${element.definite} ist abgelehnt oder gelöscht worden)","reject":"Ablehnen","remove.from.favorites":"Aus Favoriten entfernen","delete":"Entfernen","report.error":"Einen Fehler melden","report":"Melden","report.error.regarding":"Einen Fehler melden bezüglich","route.calculation":"Berechnung der Reiseroute","route":"Reiseroute","results":"Ergebnisse","reporting":"Meldung","route.to.element":"Reiseroute nach ${element.definite}","search":"Suchen","save.as.favorites":"Als Favoriten gespeichert","saved":"Gespeichert","save":"Speichern","send":"Senden","select.type.error":"Bitte wählen Sie einen Fehlertyp aus!","see.on.map":"Auf Karte sehen","search.radius":"Suchradius","search.for":"Suche nach","share.your.knowledge.about":"Teilen Sie Ihr Wissen über","share.url":"Diese URL teilen","share.link":"Diesen Link teilen","send.email.to":"Senden Sie eine E-Mail an ","send.email":"Eine E-Mail senden","show.only":"Anzeigen nur","show.on.map":"auf der Karte anzeigen","show.more":"Mehr anzeigen","show.hide.detail":"Detail ein-/ausblenden","show.as.list":"Als Liste anzeigen","show.only.selected.categories":"Nur ausgewählte Kategorien anzeigen","starting.address.title":"Geben Sie die Startadresse ein","starting.address":"Startadresse","source":"Quelle","show.only.favorites":"Nur Favoriten anzeigen","type.message.here":"Geben Sie hier Ihre Nachricht ein","the.modification":"die Änderung","the.addition":"der Zusatz","waiting":"Ausstehend","vote":"Abstimmen","video":"Video","validated.votes":"Validiert (Stimmen)","validated.admin":"Validiert (admin)","updated.at":"Letzte Aktualisierungen","your.favorites":"Ihre Favoriten","your.email":"Ihre E-Mail-Adresse","you.must.select.your.vote":"Sie müssen Ihre Stimme auswählen","width":"Breite","what.error.to.report":"Welchen Fehler möchten Sie melden?","exists.but.i.do.not.know.anything.else.about.it":"existiert, aber ich weiß nichts darüber","exists.but.given.informations.are.incorrect":"existiert, aber die angegebenen Informationen sind falsch","exists.and.correct.informations":"Existiert und die angegebenen Informationen sind korrekt","exists":"Existiert","errors.reported":"Gemeldete Fehler","error.occurend.route.calculation":"Bei der Routenberechnung ist leider ein Fehler aufgetreten!","enter.valid.email":"Bitte geben Sie eine gültige E-Mail-Adresse ein","error.occured":"Entschuldigung, ein Fehler ist aufgetreten","email.content":"Inhalt der Nachricht","email.will.be.sent.to":"Eine E-Mail wird gesendet an ","element.no.longer.exists":"${element.definite} existiert nicht mehr","element.plural":"Elemente","element.undefinite":"ein Element","element.definite":"das Element ","element":"Element","edit":"Bearbeiten","does.not.exist":"Existiert nicht","date.defaultFormatShort":"dd.mm.yyyy","date.defaultFormat":"D MMMM YYYY LT","copy.html.code":"Kopieren Sie diesen HTML-Code in Ihre Website!","card":"Datensatz","by":"von","around.map.center":"um den Mittelpunkt der Karte","around":"um","anonymous.link":"Anonym mit einem Link","anonymous.email":"Anonym mit einer E-Mail","all":"Alle","admin":"Admin","added.admin":"Hinzugefügt von Admin","unsubscribe":"Abbestellen","subscribe.changes":"Änderungen abonnieren","subscribed":"Abonniert","unsubscribe.changes":"Änderungen abbestellen","deleted":"Gelöscht","subscribe":"Abonnieren","info.more":"Mehr Info","info.less":"Weniger Info","geojson.layers":"Ebenen"}')},"./src/locales/en.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Accept","add":"Add","added.admin":"Added by admin","admin":"Admin","all":"All","all.the":"Every","anonymous":"Anonymous","anonymous.email":"Anonymous with an email","anonymous.link":"Anonymous with a link","around":"around","around.map.center":"around the centre of the map","back.to.default.view":"Back to the default view","back.to.map":"Back to the map","by":"by","cancel":"Cancel","can.not.locate.address":"Cannot locate this address!","card":"Card","category":"Category","change.tiles":"Change the map tile","check.uncheck.all":"Check/Uncheck Everything","clear.filter":"Clear the filter","close":"Close","close.menu":"Close the Menu","collaborative.moderation":"Collaborative Moderation","collaborative.moderation.first.paragraph":"When ${element.undefinite} is added or modified, the update is not instantaneous: ${element.definite} will first appear greyed out on the map. It will then be possible for all logged users to vote once and once only. That vote is not an opinion, but a share of knowledge. If you know ${element.definite} or know that ${element.definite} does not exist, we want your knowledge!","collaborative.moderation.second.paragraph":"After a given number of votes, ${element.definite} can then be auto-validated or rejected. In case of a dispute (presence of negative and positive votes), a moderator will handle things as fast as possible. We count on you!","comment.for.moderation":"Comment for the moderation","copy.html.code":"Copy this HTML code to your website!","date.defaultFormat":"D MMMM YYYY LT","date.defaultFormatShort":"dd/mm/yyyy","decide":"Decide","decide.for":"Decide for","delete":"Delete","deleted":"Deleted","does.not.exist":"Does not exist","does.not.respect.charter":"Doesn\'t respect the charter","does.not.respect.charter.should.not.be.listed.here":"Does not respect the charter, shouldn\'t be listed here","duplicate.on.map":"is referenced multiple times on the map (duplicate)","edit":"Edit","element":"Element","element.definite":"the element ","element.undefinite":"an element","element.plural":"elements","elements.containing":"${element.plural} containing","element.no.longer.exists":"${element.definite} no longer exists","element.no.respect.charter":"${element.definite} does not respect the charter","element.referenced.several.times":"${element.definite} is referenced multiple times","email.will.be.sent.to":"An email will be sent to ","email.content":"Content of the message","error.occured":"Sorry, an error occurred","enter.valid.email":"Please enter a valid email address","error.occurend.route.calculation":"Sorry, an error occurred while calculating the route!","errors.reported":"Reported errors","exists":"Exists","exists.and.correct.informations":"Existe and the given information is correct","exists.but.given.informations.are.incorrect":"exists but the given information is incorrect","exists.but.i.do.not.know.anything.else.about.it":"exists, but I do no know anything about it","exists.and.i.validate.the.accuracy.of.the.given.informations":"exists and I confirm that the given information is accurate","exists.but.incorrect.informations":"Exists with incorrect information","export.iframe":"Export an IFrame","files":"Files","fill.fields.below":"You need to fill in the fields below","filter.date.view.day":"Day","filter.date.view.month":"Month","filter.date.view.range":"Date range","filter.date.view.week":"Week","filter.date.view.year":"Year","find.route":"Compute a route","found.one.or.several":" found","general.infos":"General information","geographic.location":"Geographical location","geojson.layers":"Layers","geolocalize":"Geolocate your position","geolocalized":"Geolocated","geolocation.error.refused":"Geolocation refused","geolocation.error.failed":"Geolocation failed","height":"Height","hide.header":"Hide the header","historical":"History","i.do.not.agree.with.the.proposed.modifications":"I do not agree with the suggested changes","i.validate.the.proposed.modifications":"I agree with the suggested changes","iframe.initialized.position.map":"The iframe will be initialized at the current position in the map. Move the map to the desired position before opening this window!","imported":"Imported","info.more":"More info","info.less":"Less info","informations.incorrect":"Invalid info","label":"Label","laozi":"Laozi","laozi.quotation":"‘Failure is the foundation of success.’","list.of":"List of","loading":"Loading…","logged.user":"Logged user","map.of":"Map of","mark.as.resolved":"Marked as resolved","menu":"Menu","modification":"Change","modification.plural":"Changes","modified.admin":"Changed by admin","modified.other.project":"Changed by other project","modified.direct.link":"Changed with a direct link","modified.owner":"Changed by the owner","modified.pending":"Change pending","my.position":"my position","new":"New","no.category.provided":"No provided category","no.moderation.necessary":"No moderation needed","no.result.found":"No results","non.consensual.votes":"Inconclusive votes","not.correct.informations":"The information isn\'t up to date","ok":"OK!","openhours":"Opening hours","other.infos":"Other information","pending.add":"Pending (addition)","pending.for.too.long":"Pending for too long","pending.modifications":"Pending (updates)","pending.validation":"Pending validation","place":"A place","placeholder.input.comment":"Justification in case of refusal (will be automatically inserted in the e-mail)","placeholder.input.comment.administration":"Optional comment for the moderation","placeholder.input.subject.email":"Email subject","potential.duplicate":"Potential duplicate","propose.changes":"Suggest changes","proposed.by":"Proposed by","refused.admin":"Refused (admin)","refused.votes":"Refused (votes)","reject":"Reject","rejected.or.deleted.element":"(${element.definite} has been refused or deleted)","remove.from.favorites":"Remove from favourites","report":"Report","report.error":"Report an error","report.error.regarding":"Report an error regarding","reporting":"Report","results":"Results","route":"Itinerary","route.calculation":"Itinerary calculation","route.to.element":"Itinerary to ${element.definite}","save":"Save","saved":"Saved","save.as.favorites":"Saved as favourites","search":"Search","search.for":"Search for","search.radius":"Search radius","see.on.map":"See on map","select.type.error":"Please select an error type!","send":"Send","send.email":"Send an e-mail","send.email.to":"Send an e-mail to ","share.link":"Share this link","share.url":"Share this URL","share.your.knowledge.about":"Share your knowledge about","show.as.list":"Show as list","show.hide.detail":"Show/Hide the detail","show.more":"Show more","show.on.map":"show on the map","show.only":"Show only","show.only.actors.with.label":"Show only actors with labels","show.only.elements.to.moderate":"Only show the ${element.plural} to moderate","show.only.elements.validation.process":"Only show the ${element.plural} pending validation","show.only.favorites":"Only show favourites","show.only.selected.categories":"Only show selected categories","source":"Source","starting.address":"Starting address","starting.address.title":"Enter the starting address","subscribe":"Subscribe","subscribe.changes":"Subscribe to changes","subscribed":"Subscribed","the":"the","the.addition":"the addition","the.modification":"the change","to.moderate":"To moderate","type.message.here":"Type your message here","unsubscribe":"Unsubscribe","unsubscribe.changes":"Unsubscribe to changes","updated.at":"Latest updates","validated.admin":"Validated (admin)","validated.votes":"Validated (votes)","video":"Video","vote":"Vote","waiting":"Pending","what.error.to.report":"What error would you like to report?","width":"Width","you.must.select.your.vote":"You must select your vote","your.email":"Your email address","your.favorites":"Your favourites"}')},"./src/locales/es.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Aceptar","added.admin":"Añadido por el administrador","all":"Todo","all.the":"Cada","anonymous.link":"Anónimo con un enlace","around":"alrededor de","around.map.center":"alrededor del centro del mapa","back.to.default.view":"Volver a la vista por defecto","back.to.map":"Volver al mapa","by":"por","cancel":"Cancelar","can.not.locate.address":"¡Esta dirección no puede ser localizada!","card":"Tarjeta","category":"Categoría","change.tiles":"Modificar el fondo del mapa","check.uncheck.all":"Marcar/desmarcar todo","clear.filter":"Borrar el filtro","close":"Cerrar","comment.for.moderation":"Comentario para la moderación","collaborative.moderation":"Moderación colaborativa","collaborative.moderation.first.paragraph":"Cuando se añade o se modifica ${element.undefinite}, la actualización no es instantánea: ${element.definite} aparecerá primero como no habilitado (de color gris) en el mapa. Luego todos los usuarios conectados podrán votar, solamente una vez. El voto no es una opinión sino un intercambio de conocimiento. ¡Si conoces ${element.definite} o sabes que ${element.definite} no existe, queremos que lo compartas!","collaborative.moderation.second.paragraph":"Después de haber logrado un cierto número de votos, ${element.definite} puede ser automáticamente validado o rechazado. En caso de conflicto (votos negativos y positivos), un moderador lo arreglará lo antes posible. ¡Contamos contigo!","copy.html.code":"¡Copia este código HTML en tu página web!","date.defaultFormat":"D MMMM YYYY LT","date.defaultFormatShort":"dd/mm/aaaa","decide":"Decidir","decide.for":"Decidir para","delete":"Suprimir","deleted":"Suprimido","does.not.exist":"No existe","does.not.respect.charter":"No respeta el reglamento","does.not.respect.charter.should.not.be.listed.here":"No respeta el reglamento, no debería aparecer aquí","duplicate.on.map":"se menciona varias veces en el mapa (duplicado)","edit":"Modificar","element":"Elemento","element.definite":"el elemento ","element.undefinite":"un elemento","element.plural":"elementos","elements.containing":"${element.plural} conteniendo","element.no.longer.exists":"${element.definite} ya no existe","element.no.respect.charter":"${element.definite} no respeta el reglamento","element.referenced.several.times":"${element.definite} está indexado varias veces","email.will.be.sent.to":"Un correo electrónico será enviado a ","email.content":"Contenido del mensaje","error.occured":"Lo sentimos, se ha producido un error","enter.valid.email":"Introduce una dirección de correo electrónico válida","error.occurend.route.calculation":"¡Lo sentimos, se ha producido un error al calcular el itinerario!","errors.reported":"Errores señalados","exists":"Existe","exists.and.correct.informations":"Existe y la información proporcionada es correcta","exists.but.i.do.not.know.anything.else.about.it":"existe, pero no sé nada sobre él","export.iframe":"Exportar un IFrame","files":"Archivos","fill.fields.below":"Debes completar los campos abajo","filter.date.view.day":"Día","anonymous":"Anónimo","add":"Añadir","admin":"Administrador","anonymous.email":"Anónimo con un correo electrónico","close.menu":"Cerrar el menú","exists.but.given.informations.are.incorrect":"existe pero la información proporcionada es incorrecta","exists.and.i.validate.the.accuracy.of.the.given.informations":"existe y confirmo que la información proporcionada es exacta","exists.but.incorrect.informations":"Existe con información incorrecta","filter.date.view.month":"Mes","filter.date.view.range":"Rango de fechas","filter.date.view.week":"Semana","filter.date.view.year":"Año","find.route":"Calcular una ruta","geolocalize":"Geolocalizar tu posición","found.one.or.several":" encontrado","general.infos":"Información general","geographic.location":"Localización geográfica","geojson.layers":"Capas","geolocalized":"Geolocalizado","geolocation.error.refused":"Geolocalización denegada","geolocation.error.failed":"Geolocalización fallida","height":"Altura","hide.header":"Ocultar el título","historical":"Historial","i.do.not.agree.with.the.proposed.modifications":"No estoy de acuerdo con los cambios sugeridos","i.validate.the.proposed.modifications":"Estoy de acuerdo con los cambios sugeridos","iframe.initialized.position.map":"El iframe se inicializará en la posición actual en el mapa. ¡Mueve el mapa hasta la posición deseada antes de abrir esta ventana!","imported":"Importado","info.less":"Menos información","info.more":"Más información","informations.incorrect":"Información inválida","label":"Etiqueta","laozi":"Lao-Tse","laozi.quotation":"«El fracaso es la clave del éxito.»","list.of":"Lista de","loading":"Cargando…","logged.user":"Usuario conectado","map.of":"Mapa de","mark.as.resolved":"Marcado como resuelto","menu":"Menú","modification":"Cambio","modification.plural":"Cambios","modified.direct.link":"Cambiado con un enlace directo","modified.owner":"Cambiado por el propietario","my.position":"mi posición","new":"Nuevo","no.category.provided":"Ninguna categoría proporcionada","no.moderation.necessary":"Sin necesidad de moderar","no.result.found":"Sin resultados","not.correct.informations":"La información no está actualizada","ok":"¡Vale!","openhours":"Horarios de apertura","other.infos":"Otras informaciones","pending.add":"Pendiente (adición)","pending.for.too.long":"Pendiente durante demasiado tiempo","pending.modifications":"Pendiente (actualizaciones)","pending.validation":"Validación pendiente","place":"Un sitio","placeholder.input.comment":"Justificación en caso de rechazo (será automáticamente añadida al correo electrónico)","potential.duplicate":"Posible duplicado","propose.changes":"Sugerir cambios","proposed.by":"Propuesto por","refused.admin":"Rechazado (administrador)","reject":"Rechazar","rejected.or.deleted.element":"(${element.definite} ha sido rechazado o suprimido)","remove.from.favorites":"Suprimir de los favoritos","report":"Señalar","report.error":"Señalar un error","report.error.regarding":"Señalar un error sobre","reporting":"Señalar","results":"Resultados","route":"Itinerario","route.calculation":"Cálculo del itinerario","route.to.element":"Itinerario hasta ${element.definite}","save":"Guardar","save.as.favorites":"Guardados como favoritos","search.for":"Buscar para","search.radius":"Radio de búsqueda","see.on.map":"Ver en el mapa","select.type.error":"¡Selecciona un tipo de error!","send":"Enviar","send.email":"Enviar un correo electrónico","send.email.to":"Enviar un correo electrónico a ","share.url":"Compartir esta URL","share.your.knowledge.about":"Compartir tu conocimiento sobre","show.as.list":"Mostrar como lista","show.hide.detail":"Mostrar/Ocultar los detalles","show.more":"Mostrar más","show.on.map":"mostrar en el mapa","show.only":"Mostrar sólo","show.only.actors.with.label":"Mostrar sólo los actores con etiquetas","show.only.elements.to.moderate":"Mostrar sólo el ${element.plural} para moderar","show.only.elements.validation.process":"Mostrar sólo el ${element.plural} con validación pendiente","show.only.favorites":"Mostrar sólo los favoritos","show.only.selected.categories":"Mostrar sólo las categorías seleccionadas","source":"Fuente","starting.address":"Dirección de inicio","starting.address.title":"Indicar la dirección de inicio","subscribe":"Abonarse","subscribe.changes":"Abonarse a los cambios","subscribed":"Abonado","the":"el","the.addition":"la adición","the.modification":"el cambio","to.moderate":"Para moderar","type.message.here":"Escribe tu mensaje aquí","unsubscribe":"Cancelar el abono","unsubscribe.changes":"Cancelar el abono a los cambios","updated.at":"Últimas actualizaciones","validated.admin":"Validado (administrador)","validated.votes":"Validado (votos)","what.error.to.report":"¿Cúal es el error que quieres señalar?","width":"Ancho","you.must.select.your.vote":"Debe elegir su voto","your.email":"Tu dirección de correo electrónico","your.favorites":"Tus favoritos","modified.admin":"Cambiado por el administrador","refused.votes":"Rechazado (votos)","modified.pending":"Cambio pendiente","non.consensual.votes":"Votos no concluyentes","placeholder.input.comment.administration":"Comentario opcional para la moderación","placeholder.input.subject.email":"Asunto del correo electrónico","saved":"Guardado","search":"Buscar","share.link":"Compartir este link","video":"Vídeo","vote":"Voto","waiting":"Pendiente"}')},"./src/locales/fr.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Accepter","add":"Ajout","added.admin":"Ajouté par admin","admin":"Admin","all":"Tous","all.the":"Tous les","anonymous":"Anonyme","anonymous.email":"Anonyme avec courriel","anonymous.link":"Anonyme avec lien","around":"autour de","around.map.center":"autour du centre de la carte","back.to.default.view":"Retourner à la vue par défaut","back.to.map":"Retour à la carte","by":"par","cancel":"Annuler","can.not.locate.address":"Impossible de localiser cette adresse !","card":"Fiche","category":"Catégorie","change.tiles":"Changer le fond de carte","check.uncheck.all":"Cocher/décocher tout","clear.filter":"Effacer le filtre","close":"Fermer","close.menu":"Fermer le Menu","collaborative.moderation":"Modération collaborative","collaborative.moderation.first.paragraph":"Lorsqu\'${element.undefinite} est ajouté(e) ou modifié(e), la mise à jour des données n\'est pas instantanée : ${element.definite} va d\'abord apparaître grisé sur la carte, et il sera alors possible à toustes les utilisateur.ice.s loguées de voter une et une seule fois. Ce vote n\'est pas une opinion, mais un partage de connaissance. Si vous connaissez ${element.definite}, ou savez que ${element.definite} n\'existe pas, alors votre savoir nous intéresse !","collaborative.moderation.second.paragraph":"Au bout d\'un certain nombre de votes, ${element.definite} pourra alors être automatiquement validé ou refusé. En cas de litige (des votes à la fois positifs et négatifs), un modérateur interviendra au plus vite. On compte sur vous !","comment.for.moderation":"Commentaire pour la modération","copy.html.code":"Copiez ce code HTML dans votre site web !","date.defaultFormat":"D MMMM YYYY à HH:mm","date.defaultFormatShort":"dd/mm/yyyy","decide":"Décider","decide.for":"Décidez pour","delete":"Supprimer","deleted":"Supprimé","does.not.exist":"N\'existe pas","does.not.respect.charter":"Ne respecte pas la charte","does.not.respect.charter.should.not.be.listed.here":"Ne respecte pas la charte, il n\'a rien à faire ici","duplicate.on.map":"est référencé(e) plusieurs fois sur la carte (doublon)","edit":"Modifier","element":"Élément","element.definite":"l\'élément ","element.undefinite":"un élément","element.plural":"éléments","elements.containing":"${element.plural} contenant","element.no.longer.exists":"${element.definite} n\'existe plus","element.no.respect.charter":"${element.definite} ne respecte pas la charte","element.referenced.several.times":"${element.definite} est référencé(e) plusieurs fois","email.will.be.sent.to":"Un courriel sera envoyé à ","email.content":"Contenu du message","error.occured":"Désolé, une erreur s\'est produite","enter.valid.email":"Veuillez renseigner une adresse électronique valide","error.occurend.route.calculation":"Une erreur est survenue pendant le calcul de l\'itinéraire, désolé !","errors.reported":"Erreurs signalées","exists":"Existe","exists.and.correct.informations":"Existe et les informations sont correctes","exists.but.given.informations.are.incorrect":"existe mais les informations indiquées ne sont pas correctes","exists.but.i.do.not.know.anything.else.about.it":"existe, mais je n\'en sais pas plus sur lui","exists.and.i.validate.the.accuracy.of.the.given.informations":"existe et je valide l\'exactitude des informations fournies","exists.but.incorrect.informations":"Existe mais les informations sont incorrectes","export.iframe":"Exporter une Iframe","files":"Fichiers","fill.fields.below":"Vous devez remplir les champs ci-dessous","filter.date.view.day":"Jour","filter.date.view.month":"Mois","filter.date.view.range":"Plage","filter.date.view.week":"Semaine","filter.date.view.year":"Année","find.route":"Calculer l\'itinéraire","found.one.or.several":" (s) trouvé-e(s)","general.infos":"Informations générales","geographic.location":"Lieu géographique","geojson.layers":"Calques","geolocalize":"Géolocaliser votre position","geolocalized":"Géolocalisé","geolocation.error.refused":"Géolocalisation refusée","geolocation.error.failed":"La géolocalisation a échoué","height":"Hauteur","hide.header":"Masquer le menu d\'en-tête","historical":"Historique","i.do.not.agree.with.the.proposed.modifications":"Je ne suis pas d\'accord avec les modifications proposées","i.validate.the.proposed.modifications":"Je valide les modifications proposées","iframe.initialized.position.map":"L\'iframe sera initialisée dans la position actuelle de la carte. Déplacez la carte dans la position voulue avant d\'ouvrir cette fenêtre !","imported":"Importé","info.more":"Plus d\'infos","info.less":"Moins d\'infos","informations.incorrect":"Infos invalides","label":"Étiqueter","laozi":"Lao Tseu","laozi.quotation":"« L’échec est le fondement de la réussite. »","list.of":"Liste des","loading":"Chargement…","logged.user":"Utilisateur enregistré","map.of":"Carte des","mark.as.resolved":"Marqué comme résolu","menu":"Menu","modification":"Modification","modification.plural":"Modifications","modified.admin":"Modifié par admin","modified.other.project":"Modifié par un autre projet","modified.direct.link":"Modifié avec lien direct","modified.owner":"Modifié par propriétaire","modified.pending":"en attente de modification","my.position":"ma position","new":"Nouvel(le)","no.category.provided":"Aucune catégorie renseignée","no.moderation.necessary":"Pas de modération nécessaire","no.result.found":"Aucun résultat trouvé","non.consensual.votes":"Votes non consensuels","not.correct.informations":"Les informations sont incorrectes","ok":"OK !","openhours":"Horaires d\'ouverture","other.infos":"Autres informations","pending.add":"En attente (ajout)","pending.for.too.long":"En attente depuis trop longtemps","pending.modifications":"En attente (modifications)","pending.validation":"En cours de validation","place":"Un lieu","placeholder.input.comment":"Justificatif en cas de refus (qui sera inséré dans le message automatique)","placeholder.input.comment.administration":"Commentaire optionnel pour la modération","placeholder.input.subject.email":"Objet du message","potential.duplicate":"Doublon potentiel","propose.changes":"Proposer des modifications","proposed.by":"Proposé par","refused.admin":"Refusé (admin)","refused.votes":"Refusé (votes)","reject":"Refuser","rejected.or.deleted.element":"(${element.definite} a été refusé ou supprimé)","remove.from.favorites":"Retirer des favoris","report":"Signaler","report.error":"Signaler une erreur","report.error.regarding":"Signaler une erreur concernant","reporting":"Signalement","results":"Résultats","route":"Itinéraire","route.calculation":"Calcul d\'itinéraire","route.to.element":"Itinéraire vers ${element.definite}","save":"Enregistrer","saved":"Enregistré","save.as.favorites":"Enregistrés comme favoris","search":"Chercher","search.for":"Recherche de","search.radius":"Rayon","see.on.map":"Voir sur la carte","select.type.error":"Vous devez sélectionner un type d\'erreur !","send":"Envoyer","send.email":"Envoyer un courriel","send.email.to":"Envoyer un courriel à ","share.link":"Partager ce lien avec d\'autres","share.url":"Partager l\'URL","subscribe":"S\'abonner","subscribe.changes":"S\'abonner aux modifications","subscribed":"Abonné","share.your.knowledge.about":"Partagez votre connaissance concernant","show.as.list":"Afficher sous forme de liste","show.hide.detail":"Afficher/Masquer le détail","show.more":"Afficher plus","show.on.map":"Afficher sur la carte","show.only":"Afficher uniquement","show.only.actors.with.label":"Afficher uniquement les acteurs avec l\'étiquette","show.only.elements.to.moderate":"Afficher uniquement les ${element.plural} à modérer","show.only.elements.validation.process":"Afficher uniquement les ${element.plural} en cours de validation","show.only.favorites":"Afficher uniquement les favoris","show.only.selected.categories":"Afficher uniquement les catégories sélectionnées","source":"Origine","starting.address":"L\'adresse de départ","starting.address.title":"Entrez une adresse de départ","the":"le(a)","the.addition":"l\'ajout","the.modification":"la modification","to.moderate":"À modérer","type.message.here":"Tapez votre message ici","unsubscribe":"Se désabonner","unsubscribe.changes":"Se désabonner des modifications","updated.at":"Dernières mise à jour","validated.admin":"Validé (admin)","validated.votes":"Validé (votes)","video":"Vidéo","vote":"Voter","waiting":"En attente","what.error.to.report":"Quelle erreur voulez-vous signaler ?","width":"Largeur","you.must.select.your.vote":"Vous devez choisir votre vote","your.email":"Votre adresse courriel","your.favorites":"Vos favoris"}')},"./src/locales/nb_NO.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Accepter","add":"Ajout","added.admin":"Ajouté par admin","admin":"Admin","all":"Tous","all.the":"Tous les","anonymous":"Anonyme","anonymous.email":"Anonyme avec email","anonymous.link":"Anonyme avec lien","around":"autour de","around.map.center":"autour du centre de la carte","back.to.default.view":"Tilbake til forvalgt visning","back.to.map":"Tilbake til kartet","by":"av","date.defaultFormat":"D MMMM YYYY klokken HH:mm","date.defaultFormatShort":"dd/mm/yyyy","decide":"Avgjør","decide.for":"Avgjør for","delete":"Fjern","does.not.exist":"Finnes ikke","does.not.respect.charter":"Respekterer ikke charteret","does.not.respect.charter.should.not.be.listed.here":"Respekterer ikke charteret, skal ikke listes opp her","duplicate.on.map":"finnes flere steder på kartet (duplikat)","edit":"Endre","element":"element","element.definite":"elementet ","element.undefinite":"et element","element.plural":"elementene","elements.containing":"${element.plural} som inneholder","element.no.longer.exists":"${element.definite} som ikke lenger finnes","element.no.respect.charter":"${element.definite} som ikke respekterer charteret","element.referenced.several.times":"${element.definite} som det finnes flere referanser til","email.will.be.sent.to":"En e-post vil bli sendt til ","email.content":"Meldingsinnhold","error.occured":"En feil inntraff","enter.valid.email":"Skriv inn en gyldig e-postadresse","error.occurend.route.calculation":"En feil oppstod under ruteberegning.","errors.reported":"Innrapporterte feil","exists":"Finnes","exists.and.correct.informations":"Finnes og har rett info","exists.but.given.informations.are.incorrect":"eksisterende angitt info er ikke riktig","exists.but.i.do.not.know.anything.else.about.it":"finnes, men det er også alt som er kjent","exists.and.i.validate.the.accuracy.of.the.given.informations":"finnes og jeg bekrefter nøyaktigheten av angitt info","exists.but.incorrect.informations":"finnes, men informasjonen er uriktig","export.iframe":"Eksporter en visning","height":"Høyde","hide.header":"Skjul tittelmenyen","historical":"Historikk","i.do.not.agree.with.the.proposed.modifications":"Jeg er ikke enig med foreslått endring","i.validate.the.proposed.modifications":"Jeg bekrefter foreslått endring","iframe.initialized.position.map":"Visningen vil begynne i denne posisjonen. Flytt kartet til ønsket posisjon før du åpner det.","imported":"Importer","informations.incorrect":"Informasjonen stemmer","label":"Etikett","laozi":"Laozi","list.of":"Liste over","loading":"Laster inn …","logged.user":"Innlogget","map.of":"Kart over","mark.as.resolved":"Marker som løst","menu":"Meny","modification":"Endring","modification.plural":"Endringer","modified.admin":"Endret av administrator","modified.direct.link":"Endre direkte lenke","modified.owner":"Endret av eier","modified.pending":"endring venter","my.position":"min posisjon","ok":"OK","openhours":"Åpningstider","other.infos":"Annen info","pending.add":"Venter (tillegg)","pending.for.too.long":"For lang ventetid","pending.modifications":"Venter (endringer)","pending.validation":"Venter på bekreftelse","place":"Et sted","placeholder.input.comment":"Bevis i tilfelle avvisning (som vil bli sendt i den automatiserte e-posten).)","placeholder.input.comment.administration":"Valgfri kommentar for moderering","placeholder.input.subject.email":"Meldingsemne","potential.duplicate":"Mulig duplikat","propose.changes":"Foreslå endringer","proposed.by":"Foreslått av","refused.admin":"Avslått (admin)","refused.votes":"Avslått (stemmegivning)","reject":"Avslå","rejected.or.deleted.element":"(${element.definite} er et avslått eller slettet element)","remove.from.favorites":"Fjern fra favoritter","report":"Rapporter","report.error":"Innrapporter feil","report.error.regarding":"Innrapporter feil om","reporting":"Innraportering","results":"Resultater","route":"Veivisning","route.calculation":"Ruteutregning","route.to.element":"Veivisning til ${element.definite}","save":"Lagre","saved":"Lagret","save.as.favorites":"Lagre som favoritt","search":"Søk","search.for":"Søk etter","search.radius":"Søkeradius","see.on.map":"Vis på kart","select.type.error":"Velg feiltype.","send":"Send","send.email":"Send e-post","send.email.to":"Send e-post til ","share.link":"Del denne lenken med andre","share.url":"Del nettadresse","share.your.knowledge.about":"Del hva du vet om","show.as.list":"Vis som liste","show.hide.detail":"Vis/skjul detaljer","show.more":"Vis mer","show.on.map":"Vis på kartet","show.only":"Kun vis","show.only.actors.with.label":"Kun vis dem med etiketten","show.only.elements.to.moderate":"Vis kun ${element.plural} å moderere","show.only.elements.validation.process":"Vis kun ${element.plural} til bekreftelse","show.only.favorites":"Vis kun favoritter","show.only.selected.categories":"Vis kun valgte kategorier","source":"Kilde","starting.address":"Startadresse","starting.address.title":"Sluttadresse","updated.at":"Oppdatert","waiting":"Venter","what.error.to.report":"Hva ønsker du å rapportere?","width":"Bredde","deleted":"Slettet","the.modification":"endringen","to.moderate":"Til moderering","your.favorites":"Dine favoritter","your.email":"Din e-postadresse","video":"Video","you.must.select.your.vote":"Du må velge din stemme","vote":"Stemme","validated.votes":"Bekreftet (stemmer)","validated.admin":"Bekreftet (administrator)","check.uncheck.all":"Huk av alt/fjern avhuking","clear.filter":"Tøm filteret","comment.for.moderation":"Kommentar til moderasjon","collaborative.moderation":"Samarbeidsmoderasjon","cancel":"Avbryt","collaborative.moderation.second.paragraph":"Etter et gitt antall stemmer, vil ${element.definite} kunne bekreftes automatisk, eller avslås. I fall en disputt oppstår (der det finnes negative og positive stemmer), vil en moderator håndtere ting så raskt som mulig. Vi regner med deg.","close.menu":"Lukk menyen","category":"Kategori","close":"Lukk","copy.html.code":"Kopier denne HTML-koden til nettsiden din.","can.not.locate.address":"Finner ikke denne adressen.","collaborative.moderation.first.paragraph":"Når ${element.undefinite} legges til eller endres, er ikke oppdateringen umiddelbar: ${element.definite} vises først utgrået på kartet. Det vil være mulig for alle innloggede brukere å stemme kun én gang. Den stemmer er ikke en mening, men en andel kunnskap. Hvis du vet ${element.definite} eller vet at ${element.definite} ikke finnes, vil vi ha din kunnskap.","card":"Kort","change.tiles":"Endre kartbakgrunn","files":"Filer","fill.fields.below":"Du må fylle inn feltene ovenfor","filter.date.view.day":"Dag","filter.date.view.month":"Måned","filter.date.view.week":"Uke","filter.date.view.year":"År","find.route":"Beregn rute","found.one.or.several":" funnet","general.infos":"Generell info","geographic.location":"Geografisk posisjon","geolocalized":"Geoposisjonert","geolocation.error.refused":"Geoposisjonering nektet","geolocation.error.failed":"Geoposisjonering mislyktes","new":"Ny","no.category.provided":"Ingen angitt kategori","no.result.found":"Resultatløst","no.moderation.necessary":"Ingen moderasjon behøves","filter.date.view.range":"Datoområde","not.correct.informations":"Informasjonen er ikke oppdatert","geolocalize":"Geoposisjoner deg selv","type.message.here":"Skriv meldingen din her","non.consensual.votes":"Ufullstendige stemmer","the.addition":"tillegget","laozi.quotation":"«Mislykkethet er grunnsteinen i suksess»","info.more":"Mer info","info.less":"Mindre info","geojson.layers":"Lag","subscribe.changes":"Abonner på endringer","subscribe":"Abonner","subscribed":"Abonnert","unsubscribe":"Opphev abonnement","unsubscribe.changes":"Opphev abonnement på endringer"}')},"./src/locales/pt.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Aceitar","add":"Adicionar","added.admin":"Adicionado pelo administrador","admin":"Administrador","all":"Todos","anonymous":"Anónimo","all.the":"Cada","anonymous.link":"Anónimo com um link","around.map.center":"à volta do centro do mapa","back.to.map":"Voltar ao mapa","by":"por","card":"Carta","change.tiles":"Mudar o fundo do mapa","check.uncheck.all":"(Des)seleccionar tudo","clear.filter":"Limpar o filtro","close":"Fechar","close.menu":"Fechar o menu","collaborative.moderation":"Moderação colaborativa","collaborative.moderation.second.paragraph":"Depois de um número de votos, a entrada pode ser então automaticamente validada ou rejeitada. Em caso de disputa (votos positivos e negativos), um moderador irá verificar o caso o mais cedo possível. Contamos contigo!","comment.for.moderation":"Comentário para a moderação","date.defaultFormatShort":"dd/mm/yyyy","decide":"Decidir","decide.for":"Decidir por","delete":"Eliminar","deleted":"Eliminado","does.not.exist":"Não existe","duplicate.on.map":"é referenciado várias vezes no mapa (duplicado)","edit":"Editar","element":"Entrada","element.undefinite":"uma entrada","elements.containing":"${element.plural} que contêm","element.no.longer.exists":"${element.definite} já não existe","element.no.respect.charter":"${element.definite} não respeita as regras","element.referenced.several.times":"${element.definite} é referenciado várias vezes","error.occured":"As nossas desculpas mas ocorreu um erro","errors.reported":"Erros relatados","exists":"Existe","exists.and.correct.informations":"Existe e a informação indicada está correta","exists.and.i.validate.the.accuracy.of.the.given.informations":"existe e confirma-se que a informação indicada está correta","export.iframe":"Exportar um IFrame","fill.fields.below":"É necessário preencher os campos em baixo","filter.date.view.month":"Mês","filter.date.view.range":"Período de interesse","find.route":"Calcular uma rota","files":"Ficheiros","found.one.or.several":" encontrado","general.infos":"Informação geral","geolocalize":"Localiza a tua posição","geolocalized":"Localizado","geolocation.error.refused":"Localização recusada","geolocation.error.failed":"A localização falhou","height":"Altura","historical":"Histórico","iframe.initialized.position.map":"O IFrame vai ser inicializado na posição atual do mapa. Mova o mapa para a posição desejada antes de abrir esta janela!","informations.incorrect":"Informação inválida","label":"Etiqueta","list.of":"Lista de","loading":"A carregar…","logged.user":"Utilizador conectado","map.of":"Mapa de","mark.as.resolved":"Registado como resolvido","menu":"Menu","modified.owner":"Modificado pelo proprietário","modification.plural":"Modificações","modified.pending":"Modificação pendente","my.position":"a minha posição","new":"Novo","no.moderation.necessary":"Não pede moderação","no.result.found":"Sem resultados","non.consensual.votes":"Votação inconclusiva","not.correct.informations":"A informação está desatualizada","other.infos":"Outra informação","pending.add":"Pendente (adição)","placeholder.input.comment":"Justificação em caso de recusa (será automaticamente incluída no e-mail)","placeholder.input.comment.administration":"Comentário opcional para a moderação","propose.changes":"Sugerir modificações","proposed.by":"Proposto por","refused.votes":"Recusado (votos)","reject":"Recusar","report":"Reportar","report.error":"Reportar um erro","report.error.regarding":"Reportar um erro relativo a","reporting":"Reportar","results":"Resultados","route":"Itinerário","route.calculation":"Cálculo do itinerário","save":"Guardar","saved":"Guardado","save.as.favorites":"Guardado nos favoritos","search":"Procurar","select.type.error":"Por favor escolher um tipo de erro!","send":"Enviar","send.email":"Enviar um e-mail","send.email.to":"Enviar um e-mail a ","share.link":"Partilhar","share.url":"Partilhar","share.your.knowledge.about":"Partilha o teu conhecimento sobre","show.hide.detail":"Mostrar/esconder detalhes","show.on.map":"mostrar no mapa","show.only":"Mostrar apenas","show.only.actors.with.label":"Mostrar apenas atores com etiquetas","show.only.elements.validation.process":"Apenas mostrar ${element.plural} a aguardar validação","source":"Fonte","starting.address.title":"Inserir a morada de começo","subscribe":"Ser notificado","subscribed":"A receber notificações","the":"o","to.moderate":"Por moderar","type.message.here":"Escreva a sua mensagem aqui","unsubscribe.changes":"Cancelar subscrição sobre modificações","updated.at":"Últimas atualizações","validated.admin":"Validado (administrador)","validated.votes":"Validado (votos)","video":"Vídeo","vote":"Votar","waiting":"Pendente","what.error.to.report":"Que erro gostaria de reportar?","you.must.select.your.vote":"Tens de seleccionar o teu voto","anonymous.email":"Anónimo com endereço de e-mail","around":"à volta","back.to.default.view":"Voltar à vista original","can.not.locate.address":"Não é possível localizar esta morada!","category":"Categoria","collaborative.moderation.first.paragraph":"Quando ${element.undefinite} é adicionado ou modificado, a atualização não é instantânea: ${element.definite} irá primeiro aparecer com cor cinzenta no mapa. Depois os utilizadores poderam votar (uma vez apenas). Este voto não se trata de uma opinião mas de partilha de conhecimento. Se conheces ${element.definite} ou sabes que ${element.definite} não existe, então queremos beneficiar do teu conhecimento!","copy.html.code":"Copia este código HTML para o teu site!","date.defaultFormat":"D MMMM YYYY LT","cancel":"Cancelar","does.not.respect.charter":"Não respeita as regras","element.plural":"entradas","exists.but.incorrect.informations":"Existe com informação incorreta","geographic.location":"Localização geográfica","email.will.be.sent.to":"Um e-mail será enviado para ","email.content":"Conteúdo da mensagem","does.not.respect.charter.should.not.be.listed.here":"Não respeita as regras, não deveria estar listado aqui","element.definite":"a entrada ","filter.date.view.day":"Dia","enter.valid.email":"Por favor inserir um endereço de e-mail válido","error.occurend.route.calculation":"As nossas desculpas, ocorreu um erro no cálculo do trajeto!","filter.date.view.week":"Semana","filter.date.view.year":"Ano","exists.but.i.do.not.know.anything.else.about.it":"existe, mas não tem nenhuma informação associada","exists.but.given.informations.are.incorrect":"existe mas a informação indicada está incorreta","geojson.layers":"Camadas","i.validate.the.proposed.modifications":"Concordo com as alterações propostas","i.do.not.agree.with.the.proposed.modifications":"Não concordo com as alterações sugeridas","hide.header":"Esconder o cabeçalho","no.category.provided":"Nenhuma categoria indicada","imported":"Importado","laozi.quotation":"\\"Falhar é a base do sucesso.\\"","modification":"Modificar","modified.admin":"Modificado pelo administrador","modified.direct.link":"Modificado com um link direto","ok":"OK!","place":"Um local","remove.from.favorites":"Remover dos favoritos","openhours":"Hora de abertura","pending.for.too.long":"Pendente há demasiado tempo","pending.modifications":"Pendente (atualizações)","pending.validation":"A aguardar validação","placeholder.input.subject.email":"Assunto do e-mail","rejected.or.deleted.element":"(${element.definite} foi recusado ou eliminado)","potential.duplicate":"Entrada potencialmente duplicada","refused.admin":"Recusado (administrador)","route.to.element":"Itinerário até ${element.definite}","show.only.selected.categories":"Apenas mostrar categorias seleccionadas","width":"Largura","search.for":"Procurar por","see.on.map":"Ver no mapa","your.email":"O teu endereço de e-mail","search.radius":"Raio de procura","show.as.list":"Ver como lista","starting.address":"Morada de começo","show.only.elements.to.moderate":"Mostrar apenas ${element.plural} para moderar","show.only.favorites":"Apenas mostrar favoritos","subscribe.changes":"Ser notificado de modificações","the.addition":"a adição","the.modification":"a modificação","unsubscribe":"Deixar de receber notificações","your.favorites":"Os teus favoritos","info.more":"Ver detalhes","info.less":"Ocultar detalhes"}')},"./src/locales/tr.json":e=>{"use strict";e.exports=JSON.parse('{"accept":"Kabul et","add":"Ekle","added.admin":"Yönetici tarafından eklendi","admin":"Yönetici","all":"Herkes","all.the":"Her","anonymous":"Anonim","anonymous.email":"Email ile anonim","anonymous.link":"Link ile anonim","around":"yaklaşık","around.map.center":"haritanın merkezinin civarında","back.to.default.view":"Default görünüme geri dön","back.to.map":"Haritaya geri dön","cancel":"İptal","can.not.locate.address":"Bu adresi saptayamadık!","card":"Kart","category":"Kategori","change.tiles":"Harita döşemesini değiştir","check.uncheck.all":"Her Şeyi İşaretle/İşaretini Kaldır","clear.filter":"Filtreyi temizle","copy.html.code":"Bu HTML kodunu web sitenize kopyala!","delete":"Sil","does.not.respect.charter":"Tüzüğe uygun davranmıyor","does.not.respect.charter.should.not.be.listed.here":"Tüzüğe uygun davranmıyor, burada listelenmemeli","duplicate.on.map":"haritada birden çok kez referanslandırıldı (yinelenme)","element.definite":"öğe ","element.plural":"öğeler","by":"tarafından","element.referenced.several.times":"${element.definite} e birden çok kez başvuruda bulundu","email.will.be.sent.to":"adresine bir e-posta gönderilecek ","email.content":"Mesajın içeriği","error.occurend.route.calculation":"Üzgünüz, rota oluşturulurken bir hata oluştu!","errors.reported":"Bildirilen hatalar","exists":"bulunuyor","exists.and.correct.informations":"Mevcut ve verilen bilgiler doğrudur","exists.but.given.informations.are.incorrect":"Mevcut ama verilen bilgiler yanlış","exists.but.i.do.not.know.anything.else.about.it":"Mevcut ama hakkında bilgim yok","exists.and.i.validate.the.accuracy.of.the.given.informations":"mevcut olduğunu ve verilen bilgilerin doğru olduğunu teyit ederim","exists.but.incorrect.informations":"Birtakım yanlış bilgiler ile mevcut","export.iframe":"IFrame\'i dışa aktar","files":"Dosyalar","filter.date.view.week":"Hafta","height":"Yükseklik","hide.header":"Başlığı gizle","historical":"Tarihçe","i.do.not.agree.with.the.proposed.modifications":"Önerilen değişiklikleri kabul etmiyorum","i.validate.the.proposed.modifications":"Önerilen değişiklikleri kabul ediyorum","iframe.initialized.position.map":"İframe haritadaki geçerli konumda başlatılacaktır. Bu pencereyi açmadan önce haritayı istediğiniz konuma taşıyın!","imported":"Alınan","informations.incorrect":"Geçersiz bilgi","label":"Etiket","laozi":"Laozi dili","laozi.quotation":"\\"Başarısızlık, başarının temelidir.\\"","list.of":"Listesi","loading":"Yükleniyor…","logged.user":"Oturum açmış kullanıcı","map.of":"Haritası","mark.as.resolved":"Çözümlendi olarak işaretlendi","no.moderation.necessary":"Moderasyona ihtiyaç duyulmuyor","no.result.found":"Sonuç yok","non.consensual.votes":"Kesin olmayan oylar","not.correct.informations":"Bilgiler güncel değil","openhours":"Çalışma saatleri","other.infos":"Diğer bilgiler","pending.add":"Beklemede (ekleme)","pending.for.too.long":"Çok uzun süredir beklemede","pending.modifications":"Beklemede (güncellemeler)","pending.validation":"Doğrulama bekleniyor","place":"Bir yer","placeholder.input.comment":"Reddetme durumunda gerekçe (e-postaya otomatik olarak eklenecektir)","placeholder.input.comment.administration":"Moderasyon için isteğe bağlı yorum","placeholder.input.subject.email":"E-posta konusu","potential.duplicate":"potansiyel yineleme","propose.changes":"Değişiklik önerin","proposed.by":"Tarafından önerildi","refused.admin":"Reddedildi (yönetici)","refused.votes":"Reddedildi (oylar tarafından)","reject":"Reddet","remove.from.favorites":"Sık kullanılanlardan kaldır","report":"Raporla","report.error":"Hata bildir","report.error.regarding":"ile ilgili bir hata bildirin","reporting":"Rapor","results":"Sonuçlar","route":"güzergah","route.calculation":"güzergah hesaplama","route.to.element":"${element.definite}\'ın güzergahı","save":"Kaydet","saved":"kaydedildi","save.as.favorites":"Sık kullanılanlara kaydedildi","search":"Arama","search.for":"için arama","search.radius":"Yarıçapı araştır","see.on.map":"Haritada göster","select.type.error":"Lütfen bir hata türü seçin!","send":"Gönder","send.email.to":"Şu adrese bir e-posta gönderin ","share.link":"Bu bağlantıyı paylaş","share.your.knowledge.about":"ile ilgili bilginizi paylaşın","ok":"Tamam!","show.hide.detail":"Ayrıntıları Göster/Gizle","show.more":"Daha fazla göster","show.on.map":"harita üzerinde göster","show.only":"Yalnızca şunu göster","show.only.actors.with.label":"Sadece etiketli aktörleri göster","show.only.elements.to.moderate":"denetlemek için sadece ${element.plural} öğesini göster","show.only.elements.validation.process":"Yalnızca ${element.plural} bekleyen doğrulamayı göster","show.only.favorites":"Yalnızca sık kullanılanları göster","show.only.selected.categories":"Yalnızca seçili kategorileri göster","source":"Kaynak","starting.address":"Başlangıç adresi","starting.address.title":"Başlama adresini girin","subscribe":"Abone Olun","subscribe.changes":"Değişikliklere abone ol","subscribed":"Abone olundu","the.addition":"eklenti","the.modification":"değişiklik","to.moderate":"Denetleme","type.message.here":"Mesajınızı buraya yazın","unsubscribe":"Aboneliği iptal et","unsubscribe.changes":"Değişiklik aboneliğini iptal et","updated.at":"Son güncellemeler","video":"Video","the":" ","your.email":"E-posta adresiniz","your.favorites":"Sık kullanılanlarınız","close":"Kapat","close.menu":"Menüyü Kapat","collaborative.moderation.first.paragraph":"${element.undefinite} eklendiğinde veya değiştirildiğinde, güncelleme anında olmaz: ${element.definite} önce haritada gri renkte görünür. Daha sonra, oturum açmış tüm kullanıcıların yalnızca bir kez oy kullanması mümkün olacaktır. Bu oy bir fikir değil, bir bilgi paylaşımıdır. ${element.definite} öğesini tanıyorsanız veya ${element.definite} öğesinin olup olmadığını biliyorsanız, bilginizi bizimle paylaşın!","decide.for":"Şunun için karar verin","element.no.respect.charter":"${element.definite} tüzüğe uymuyor","filter.date.view.range":"Tarih aralığı","geographic.location":"Coğrafi konum","geolocation.error.refused":"Coğrafi konum reddedildi","no.category.provided":"Belirtilen bir kategori yok","deleted":"silindi","does.not.exist":"Mevcut değil","elements.containing":"${element.plural} içeriyor","error.occured":"Üzgünüz, bir hata oluştu","find.route":"Bir rota hesaplayın","geolocation.error.failed":"konum belirleme başarısız","element.no.longer.exists":"${element.definite} artık mevcut değil","enter.valid.email":"Lütfen geçerli bir e-posta adresi girin","fill.fields.below":"Aşağıdaki alanları doldurmanız gerekmektedir","filter.date.view.day":"Gün","filter.date.view.month":"Ay","found.one.or.several":" bulundu","general.infos":"Genel bilgiler","geojson.layers":"Katmanlar","geolocalize":"Konumunuzu coğrafi olarak belirleyin","geolocalized":"Coğrafi olarak konumlandırılmış","filter.date.view.year":"Yıl","menu":"Menü","modification":"Değiştir","modified.owner":"Sahibi tarafından değiştirildi","modified.pending":"Değişiklik beklemede","modification.plural":"Değişiklikler","modified.admin":"Yönetici tarafından değiştirildi","modified.direct.link":"Doğrudan bağlantı ile değiştirildi","my.position":"Pozisyonum","new":"Yeni","share.url":"Bu URL\'yi paylaş","rejected.or.deleted.element":"(${element.definite} reddedildi veya silindi)","send.email":"E-posta gönder","show.as.list":"Liste olarak göster","element":"Öğe","validated.votes":"Onaylandı (oylar tarafından)","what.error.to.report":"Hangi hatayı bildirmek istiyorsunuz?","width":"Genişlik","element.undefinite":"bir öğe","validated.admin":"Onaylandı (admin)","waiting":"Beklemede","collaborative.moderation":"İşbirliğine Dayalı Denetleme","collaborative.moderation.second.paragraph":"Belirli sayıda oylamadan sonra, ${element.definite} otomatik olarak doğrulanabilir veya reddedilebilir. Bir anlaşmazlık durumunda (olumsuz ve olumlu oyların varlığı), bir moderatör işleri mümkün olduğunca çabuk ele alacaktır. Size güveniyoruz!","date.defaultFormat":"D MMMM YYYY LT","date.defaultFormatShort":"gg/aa/yyyy","edit":"Düzenle","vote":"Oyla","you.must.select.your.vote":"Oyunuzu seçmelisiniz","comment.for.moderation":"moderasyon için yorum","decide":"Karar verin"}')}},__webpack_module_cache__={},$uc,Zuc;function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;t=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},Zuc=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,__webpack_require__.t=function(t,e){if(1&e&&(t=this(t)),8&e)return t;if("object"==typeof t&&t){if(4&e&&t.__esModule)return t;if(16&e&&"function"==typeof t.then)return t}var o=Object.create(null);__webpack_require__.r(o);var n={};$uc=$uc||[null,Zuc({}),Zuc([]),Zuc(Zuc)];for(var i=2&e&&t;"object"==typeof i&&!~$uc.indexOf(i);i=Zuc(i))Object.getOwnPropertyNames(i).forEach(e=>n[e]=()=>t[e]);return n.default=()=>t,__webpack_require__.d(o,n),o},__webpack_require__.d=(e,t)=>{for(var o in t)__webpack_require__.o(t,o)&&!__webpack_require__.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./src/js/gogocarto.ts");window.goGoCarto=__webpack_exports__.default})(); \ No newline at end of file diff --git a/javascripts/vendor/jquery/jquery.min.js b/javascripts/vendor/jquery/jquery.min.js index 0de648ed3..e7e29d5b2 100644 --- a/javascripts/vendor/jquery/jquery.min.js +++ b/javascripts/vendor/jquery/jquery.min.js @@ -1,2 +1,2 @@ -/*! jQuery v3.6.4 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.4",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.cssHas=ce(function(){try{return C.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),d.cssHas||y.push(":has"),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?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)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(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){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
        "],col:[2,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
        ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({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)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},R=function(){V()},M=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&z(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function X(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&M(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function U(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function z(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",R),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===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]||I.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]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(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){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
        "],col:[2,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Me(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
        ",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return R(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return R(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({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)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>=e.x&&n.x<=i.x,t=t.y>=e.y&&n.y<=i.y;return o&&t},overlaps:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>=e.lat&&n.lat<=i.lat,t=t.lng>=e.lng&&n.lng<=i.lng;return o&&t},overlaps:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>e.lat&&n.late.lng&&n.lng","http://www.w3.org/2000/svg"===(Ft.firstChild&&Ft.firstChild.namespaceURI));function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var b={ie:pt,ielt9:mt,edge:n,webkit:ft,android:gt,android23:vt,androidStock:yt,opera:xt,chrome:wt,gecko:bt,safari:Pt,phantom:Lt,opera12:o,win:Tt,ie3d:Mt,webkit3d:zt,gecko3d:_t,any3d:Ct,mobile:Zt,mobileWebkit:St,mobileWebkit3d:Et,msPointer:kt,pointer:Ot,touch:Bt,touchNative:At,mobileOpera:It,mobileGecko:Rt,retina:Nt,passiveEvents:Dt,canvas:jt,svg:Ht,vml:!Ht&&function(){try{var t=document.createElement("div"),e=(t.innerHTML='',t.firstChild);return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),inlineSvg:Ft,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},Wt=b.msPointer?"MSPointerDown":"pointerdown",Ut=b.msPointer?"MSPointerMove":"pointermove",Vt=b.msPointer?"MSPointerUp":"pointerup",qt=b.msPointer?"MSPointerCancel":"pointercancel",Gt={touchstart:Wt,touchmove:Ut,touchend:Vt,touchcancel:qt},Kt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&O(e);ee(t,e)},touchmove:ee,touchend:ee,touchcancel:ee},Yt={},Xt=!1;function Jt(t,e,i){return"touchstart"!==e||Xt||(document.addEventListener(Wt,$t,!0),document.addEventListener(Ut,Qt,!0),document.addEventListener(Vt,te,!0),document.addEventListener(qt,te,!0),Xt=!0),Kt[e]?(i=Kt[e].bind(this,i),t.addEventListener(Gt[e],i,!1),i):(console.warn("wrong event specified:",e),u)}function $t(t){Yt[t.pointerId]=t}function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}function te(t){delete Yt[t.pointerId]}function ee(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Yt)e.touches.push(Yt[i]);e.changedTouches=[e],t(e)}}var ie=200;function ne(t,i){t.addEventListener("dblclick",i);var n,o=0;function e(t){var e;1!==t.detail?n=t.detail:"mouse"===t.pointerType||t.sourceCapabilities&&!t.sourceCapabilities.firesTouchEvents||((e=Ne(t)).some(function(t){return t instanceof HTMLLabelElement&&t.attributes.for})&&!e.some(function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement})||((e=Date.now())-o<=ie?2===++n&&i(function(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return(t=n).type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}(t)):n=1,o=e))}return t.addEventListener("click",e),{dblclick:i,simDblclick:e}}var oe,se,re,ae,he,le,ue=we(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ce=we(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===ce||"OTransition"===ce?ce+"End":"transitionend";function _e(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];return"auto"===(i=i&&"auto"!==i||!document.defaultView?i:(t=document.defaultView.getComputedStyle(t,null))?t[e]:null)?null:i}function P(t,e,i){t=document.createElement(t);return t.className=e||"",i&&i.appendChild(t),t}function T(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function fe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){return void 0!==t.classList?t.classList.contains(e):0<(t=xe(t)).length&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(t)}function M(t,e){var i;if(void 0!==t.classList)for(var n=W(e),o=0,s=n.length;othis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),t=this._limitCenter(i,this._zoom,g(t));return i.equals(t)||this.panTo(t,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=m((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),t=this.project(t),s=this.getPixelBounds(),i=_([s.min.add(i),s.max.subtract(n)]),s=i.getSize();return i.contains(t)||(this._enforcingBounds=!0,n=t.subtract(i.getCenter()),i=i.extend(t).getSize().subtract(s),o.x+=n.x<0?-i.x:i.x,o.y+=n.y<0?-i.y:i.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=l({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize(),i=(this._sizeChanged=!0,this._lastCenter=null,this.getSize()),n=e.divideBy(2).round(),o=i.divideBy(2).round(),n=n.subtract(o);return n.x||n.y?(t.animate&&t.pan?this.panBy(n):(t.pan&&this._rawPanBy(n),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){var e,i;return t=this._locateOptions=l({timeout:1e4,watch:!1},t),"geolocation"in navigator?(e=a(this._handleGeolocationResponse,this),i=a(this._handleGeolocationError,this),t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t)):this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e;this._container._leaflet_id&&(e=t.code,t=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout"),this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+t+"."}))},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e,i,n=new v(t.coords.latitude,t.coords.longitude),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions,r=(s.setView&&(e=this.getBoundsZoom(o),this.setView(n,s.maxZoom?Math.min(e,s.maxZoom):e)),{latlng:n,bounds:o,timestamp:t.timestamp});for(i in t.coords)"number"==typeof t.coords[i]&&(r[i]=t.coords[i]);this.fire("locationfound",r)}},addHandler:function(t,e){return e&&(e=this[t]=new e(this),this._handlers.push(e),this.options[t]&&e.enable()),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(var t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),T(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(r(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)T(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){e=P("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new s(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=g(t),i=m(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),t=t.getSouthEast(),i=this.getSize().subtract(i),t=_(this.project(t,n),this.project(r,n)).getSize(),r=b.any3d?this.options.zoomSnap:1,a=i.x/t.x,i=i.y/t.y,t=e?Math.max(a,i):Math.min(a,i),n=this.getScaleZoom(t,n);return r&&(n=Math.round(n/(r/100))*(r/100),n=e?Math.ceil(n/r)*r:Math.floor(n/r)*r),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new p(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){t=this._getTopLeftPoint(t,e);return new f(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs,t=(e=void 0===e?this._zoom:e,i.zoom(t*i.scale(e)));return isNaN(t)?1/0:t},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(w(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(m(t),e)},layerPointToLatLng:function(t){t=m(t).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(t){return this.project(w(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(w(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(g(t))},distance:function(t,e){return this.options.crs.distance(w(t),w(e))},containerPointToLayerPoint:function(t){return m(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return m(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){t=this.containerPointToLayerPoint(m(t));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)))},mouseEventToContainerPoint:function(t){return De(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){t=this._container=_e(t);if(!t)throw new Error("Map container not found.");if(t._leaflet_id)throw new Error("Map container is already initialized.");S(t,"scroll",this._onScroll,this),this._containerId=h(t)},_initLayout:function(){var t=this._container,e=(this._fadeAnimated=this.options.fadeAnimation&&b.any3d,M(t,"leaflet-container"+(b.touch?" leaflet-touch":"")+(b.retina?" leaflet-retina":"")+(b.ielt9?" leaflet-oldie":"")+(b.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":"")),pe(t,"position"));"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Z(this._mapPane,new p(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(M(t.markerPane,"leaflet-zoom-hide"),M(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){Z(this._mapPane,new p(0,0));var n=!this._loaded,o=(this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset"),this._zoom!==e);this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return r(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Z(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={};var e=t?k:S;e((this._targets[h(this._container)]=this)._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),b.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){r(this._resizeRequest),this._resizeRequest=x(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[h(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!Fe(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n=n.length||r||o||!this.listens(e,!0)?n:[this]},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e,i=t.target||t.srcElement;!this._loaded||i._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(i)||("mousedown"===(e=t.type)&&Me(i),this._fireDOMEvent(t,e))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){"click"===t.type&&((a=l({},t)).type="preclick",this._fireDOMEvent(a,a.type,i));var n=this._findEventTargets(t,e);if(i){for(var o=[],s=0;sthis.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/n);if(!0!==i.animate&&!this.getSize().contains(n))return!1;x(function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)},this)}return!0},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,M(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&z(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Ue(t){return new B(t)}var Ve,B=et.extend({options:{position:"topright"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),t=t._controlCorners[i];return M(e,"leaflet-control"),-1!==i.indexOf("bottom")?t.insertBefore(e,t.firstChild):t.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(T(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0",e=document.createElement("div");return e.innerHTML=t,e.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer),n=(t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+h(this),n),this._layerControlInputs.push(e),e.layerId=h(t.layer),S(e,"click",this._onInputClick,this),document.createElement("span")),o=(n.innerHTML=" "+t.name,document.createElement("span"));return i.appendChild(o),o.appendChild(e),o.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;0<=s;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;se.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section;S(t,"click",O),this.expand(),setTimeout(function(){k(t,"click",O)})}})),Ge=B.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=P("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){i=P("a",i,n);return i.innerHTML=t,i.href="#",i.title=e,i.setAttribute("role","button"),i.setAttribute("aria-label",e),Ie(i),S(i,"click",Re),S(i,"click",o,this),S(i,"click",this._refocusOnMap,this),i},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";z(this._zoomInButton,e),z(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),!this._disabled&&t._zoom!==t.getMinZoom()||(M(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),!this._disabled&&t._zoom!==t.getMaxZoom()||(M(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}}),Ke=(A.mergeOptions({zoomControl:!0}),A.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Ge,this.addControl(this.zoomControl))}),B.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=P("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=P("div",e,i)),t.imperial&&(this._iScale=P("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,t=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(t)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t);this._updateScale(this._mScale,e<1e3?e+" m":e/1e3+" km",e/t)},_updateImperial:function(t){var e,i,t=3.2808399*t;5280'+(b.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var e in(t.attributionControl=this)._container=P("div","leaflet-control-attribution"),Ie(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t,e=[];for(t in this._attributions)this._attributions[t]&&e.push(t);var i=[];this.options.prefix&&i.push(this.options.prefix),e.length&&i.push(e.join(", ")),this._container.innerHTML=i.join(' ')}}}),n=(A.mergeOptions({attributionControl:!0}),A.addInitHook(function(){this.options.attributionControl&&(new Ye).addTo(this)}),B.Layers=qe,B.Zoom=Ge,B.Scale=Ke,B.Attribution=Ye,Ue.layers=function(t,e,i){return new qe(t,e,i)},Ue.zoom=function(t){return new Ge(t)},Ue.scale=function(t){return new Ke(t)},Ue.attribution=function(t){return new Ye(t)},et.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}})),ft=(n.addTo=function(t,e){return t.addHandler(e,this),this},{Events:e}),Xe=b.touch?"touchstart mousedown":"mousedown",Je=it.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){c(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(S(this._dragStartTarget,Xe,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Je._dragging===this&&this.finishDrag(!0),k(this._dragStartTarget,Xe,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var e,i;this._enabled&&(this._moved=!1,ve(this._element,"leaflet-zoom-anim")||(t.touches&&1!==t.touches.length?Je._dragging===this&&this.finishDrag():Je._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Je._dragging=this)._preventOutline&&Me(this._element),Le(),re(),this._moving||(this.fire("down"),i=t.touches?t.touches[0]:t,e=Ce(this._element),this._startPoint=new p(i.clientX,i.clientY),this._startPos=Pe(this._element),this._parentScale=Ze(e),i="mousedown"===t.type,S(document,i?"mousemove":"touchmove",this._onMove,this),S(document,i?"mouseup":"touchend touchcancel",this._onUp,this)))))},_onMove:function(t){var e;this._enabled&&(t.touches&&1e&&(i.push(t[n]),o=n);oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function ni(t,e,i,n){var o=e.x,e=e.y,s=i.x-o,r=i.y-e,a=s*s+r*r;return 0this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||vi.prototype._containsPoint.call(this,t,!0)}});var xi=ui.extend({initialize:function(t,e){c(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=d(t)?t:t.features;if(o){for(e=0,i=o.length;es.x&&(r=i.x+a-s.x+o.x),i.x-r-n.x<(a=0)&&(r=i.x-n.x),i.y+e+o.y>s.y&&(a=i.y+e-s.y+o.y),i.y-a-n.y<0&&(a=i.y-n.y),(r||a)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([r,a]))))},_getAnchor:function(){return m(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}})),Bi=(A.mergeOptions({closePopupOnClick:!0}),A.include({openPopup:function(t,e,i){return this._initOverlay(Ai,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),o.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Ai,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof ui||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e;this._popup&&this._map&&(Re(t),e=t.layer||t.target,this._popup._source!==e||e instanceof mi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}}),Oi.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Oi.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Oi.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Oi.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=P("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+h(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i=this._map,n=this._container,o=i.latLngToContainerPoint(i.getCenter()),i=i.layerPointToContainerPoint(t),s=this.options.direction,r=n.offsetWidth,a=n.offsetHeight,h=m(this.options.offset),l=this._getAnchor(),i="top"===s?(e=r/2,a):"bottom"===s?(e=r/2,0):(e="center"===s?r/2:"right"===s?0:"left"===s?r:i.xthis.options.maxZoom||nthis.options.maxZoom||void 0!==this.options.minZoom&&oi.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}return!this.options.bounds||(e=this._tileCoordsToBounds(t),g(this.options.bounds).overlaps(e))},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),i=n.add(i);return[e.unproject(n,t.z),e.unproject(i,t.z)]},_tileCoordsToBounds:function(t){t=this._tileCoordsToNwSe(t),t=new s(t[0],t[1]);return t=this.options.noWrap?t:this._map.wrapLatLngBounds(t)},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var t=t.split(":"),e=new p(+t[0],+t[1]);return e.z=+t[2],e},_removeTile:function(t){var e=this._tiles[t];e&&(T(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){M(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,b.ielt9&&this.options.opacity<1&&C(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&x(a(this._tileReady,this,t,null,o)),Z(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(C(i.el,0),r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(M(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),b.ielt9||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new p(this._wrapX?H(t.x,this._wrapX):t.x,this._wrapY?H(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new f(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Ni=Ri.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=c(this,e)).detectRetina&&b.retina&&0')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),zt={_initContainer:function(){this._container=P("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Hi.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Ui("shape");M(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Ui("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;T(e),t.removeInteractiveTarget(e),delete this._layers[h(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e=e||(t._stroke=Ui("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=d(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i=i||(t._fill=Ui("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){fe(t._container)},_bringToBack:function(t){ge(t._container)}},Vi=b.vml?Ui:ct,qi=Hi.extend({_initContainer:function(){this._container=Vi("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Vi("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){T(this._container),k(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){var t,e,i;this._map._animatingZoom&&this._bounds||(Hi.prototype._update.call(this),e=(t=this._bounds).getSize(),i=this._container,this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Z(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update"))},_initPath:function(t){var e=t._path=Vi("path");t.options.className&&M(e,t.options.className),t.options.interactive&&M(e,"leaflet-interactive"),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){T(t._path),t.removeInteractiveTarget(t._path),delete this._layers[h(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,t=t.options;e&&(t.stroke?(e.setAttribute("stroke",t.color),e.setAttribute("stroke-opacity",t.opacity),e.setAttribute("stroke-width",t.weight),e.setAttribute("stroke-linecap",t.lineCap),e.setAttribute("stroke-linejoin",t.lineJoin),t.dashArray?e.setAttribute("stroke-dasharray",t.dashArray):e.removeAttribute("stroke-dasharray"),t.dashOffset?e.setAttribute("stroke-dashoffset",t.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),t.fill?(e.setAttribute("fill",t.fillColor||t.color),e.setAttribute("fill-opacity",t.fillOpacity),e.setAttribute("fill-rule",t.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,dt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",e=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,e)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){fe(t._path)},_bringToBack:function(t){ge(t._path)}});function Gi(t){return b.svg||b.vml?new qi(t):null}b.vml&&qi.include(zt),A.include({getRenderer:function(t){t=(t=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(t){var e;return"overlayPane"!==t&&void 0!==t&&(void 0===(e=this._paneRenderers[t])&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e)},_createRenderer:function(t){return this.options.preferCanvas&&Wi(t)||Gi(t)}});var Ki=yi.extend({initialize:function(t,e){yi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=g(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});qi.create=Vi,qi.pointsToPath=dt,xi.geometryToLayer=wi,xi.coordsToLatLng=Pi,xi.coordsToLatLngs=Li,xi.latLngToCoords=Ti,xi.latLngsToCoords=Mi,xi.getFeature=zi,xi.asFeature=Ci,A.mergeOptions({boxZoom:!0});var _t=n.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){S(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){k(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){T(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),re(),Le(),this._startPoint=this._map.mouseEventToContainerPoint(t),S(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=P("div","leaflet-zoom-box",this._container),M(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var t=new f(this._point,this._startPoint),e=t.getSize();Z(this._box,t.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(T(this._box),z(this._container,"leaflet-crosshair")),ae(),Te(),k(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0),t=new s(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(t).fire("boxzoomend",{boxZoomBounds:t})))},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}}),Ct=(A.addInitHook("addHandler","boxZoom",_t),A.mergeOptions({doubleClickZoom:!0}),n.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,i=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}})),Zt=(A.addInitHook("addHandler","doubleClickZoom",Ct),A.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),n.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Je(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),M(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){z(this._map._container,"leaflet-grab"),z(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,e=this._map;e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=g(this._map.options.maxBounds),this._offsetLimit=_(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var e,i;this._map.options.inertia&&(e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(i),this._times.push(e),this._prunePositions(e)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,n=(n+e+i)%t-e-i,t=Math.abs(o+i)e.getMaxZoom()&&1=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>=e.x&&n.x<=i.x,t=t.y>=e.y&&n.y<=i.y;return o&&t},overlaps:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>=e.lat&&n.lat<=i.lat,t=t.lng>=e.lng&&n.lng<=i.lng;return o&&t},overlaps:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>e.lat&&n.late.lng&&n.lng","http://www.w3.org/2000/svg"===(Wt.firstChild&&Wt.firstChild.namespaceURI));function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var b={ie:pt,ielt9:mt,edge:n,webkit:ft,android:gt,android23:vt,androidStock:yt,opera:xt,chrome:wt,gecko:bt,safari:Pt,phantom:Lt,opera12:o,win:Tt,ie3d:Mt,webkit3d:zt,gecko3d:_t,any3d:Ct,mobile:Zt,mobileWebkit:St,mobileWebkit3d:Et,msPointer:kt,pointer:Ot,touch:Bt,touchNative:At,mobileOpera:It,mobileGecko:Rt,retina:Nt,passiveEvents:Dt,canvas:jt,svg:Ht,vml:!Ht&&function(){try{var t=document.createElement("div"),e=(t.innerHTML='',t.firstChild);return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),inlineSvg:Wt,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},Ft=b.msPointer?"MSPointerDown":"pointerdown",Ut=b.msPointer?"MSPointerMove":"pointermove",Vt=b.msPointer?"MSPointerUp":"pointerup",qt=b.msPointer?"MSPointerCancel":"pointercancel",Gt={touchstart:Ft,touchmove:Ut,touchend:Vt,touchcancel:qt},Kt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&O(e);ee(t,e)},touchmove:ee,touchend:ee,touchcancel:ee},Yt={},Xt=!1;function Jt(t,e,i){return"touchstart"!==e||Xt||(document.addEventListener(Ft,$t,!0),document.addEventListener(Ut,Qt,!0),document.addEventListener(Vt,te,!0),document.addEventListener(qt,te,!0),Xt=!0),Kt[e]?(i=Kt[e].bind(this,i),t.addEventListener(Gt[e],i,!1),i):(console.warn("wrong event specified:",e),u)}function $t(t){Yt[t.pointerId]=t}function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}function te(t){delete Yt[t.pointerId]}function ee(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Yt)e.touches.push(Yt[i]);e.changedTouches=[e],t(e)}}var ie=200;function ne(t,i){t.addEventListener("dblclick",i);var n,o=0;function e(t){var e;1!==t.detail?n=t.detail:"mouse"===t.pointerType||t.sourceCapabilities&&!t.sourceCapabilities.firesTouchEvents||((e=Ne(t)).some(function(t){return t instanceof HTMLLabelElement&&t.attributes.for})&&!e.some(function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement})||((e=Date.now())-o<=ie?2===++n&&i(function(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return(t=n).type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}(t)):n=1,o=e))}return t.addEventListener("click",e),{dblclick:i,simDblclick:e}}var oe,se,re,ae,he,le,ue=we(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ce=we(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===ce||"OTransition"===ce?ce+"End":"transitionend";function _e(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];return"auto"===(i=i&&"auto"!==i||!document.defaultView?i:(t=document.defaultView.getComputedStyle(t,null))?t[e]:null)?null:i}function P(t,e,i){t=document.createElement(t);return t.className=e||"",i&&i.appendChild(t),t}function T(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function fe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){return void 0!==t.classList?t.classList.contains(e):0<(t=xe(t)).length&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(t)}function M(t,e){var i;if(void 0!==t.classList)for(var n=F(e),o=0,s=n.length;othis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),t=this._limitCenter(i,this._zoom,g(t));return i.equals(t)||this.panTo(t,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=m((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),t=this.project(t),s=this.getPixelBounds(),i=_([s.min.add(i),s.max.subtract(n)]),s=i.getSize();return i.contains(t)||(this._enforcingBounds=!0,n=t.subtract(i.getCenter()),i=i.extend(t).getSize().subtract(s),o.x+=n.x<0?-i.x:i.x,o.y+=n.y<0?-i.y:i.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=l({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize(),i=(this._sizeChanged=!0,this._lastCenter=null,this.getSize()),n=e.divideBy(2).round(),o=i.divideBy(2).round(),n=n.subtract(o);return n.x||n.y?(t.animate&&t.pan?this.panBy(n):(t.pan&&this._rawPanBy(n),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){var e,i;return t=this._locateOptions=l({timeout:1e4,watch:!1},t),"geolocation"in navigator?(e=a(this._handleGeolocationResponse,this),i=a(this._handleGeolocationError,this),t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t)):this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e;this._container._leaflet_id&&(e=t.code,t=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout"),this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+t+"."}))},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e,i,n=new v(t.coords.latitude,t.coords.longitude),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions,r=(s.setView&&(e=this.getBoundsZoom(o),this.setView(n,s.maxZoom?Math.min(e,s.maxZoom):e)),{latlng:n,bounds:o,timestamp:t.timestamp});for(i in t.coords)"number"==typeof t.coords[i]&&(r[i]=t.coords[i]);this.fire("locationfound",r)}},addHandler:function(t,e){return e&&(e=this[t]=new e(this),this._handlers.push(e),this.options[t]&&e.enable()),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(var t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),T(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(r(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)T(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){e=P("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new s(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=g(t),i=m(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),t=t.getSouthEast(),i=this.getSize().subtract(i),t=_(this.project(t,n),this.project(r,n)).getSize(),r=b.any3d?this.options.zoomSnap:1,a=i.x/t.x,i=i.y/t.y,t=e?Math.max(a,i):Math.min(a,i),n=this.getScaleZoom(t,n);return r&&(n=Math.round(n/(r/100))*(r/100),n=e?Math.ceil(n/r)*r:Math.floor(n/r)*r),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new p(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){t=this._getTopLeftPoint(t,e);return new f(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs,t=(e=void 0===e?this._zoom:e,i.zoom(t*i.scale(e)));return isNaN(t)?1/0:t},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(w(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(m(t),e)},layerPointToLatLng:function(t){t=m(t).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(t){return this.project(w(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(w(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(g(t))},distance:function(t,e){return this.options.crs.distance(w(t),w(e))},containerPointToLayerPoint:function(t){return m(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return m(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){t=this.containerPointToLayerPoint(m(t));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)))},mouseEventToContainerPoint:function(t){return De(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){t=this._container=_e(t);if(!t)throw new Error("Map container not found.");if(t._leaflet_id)throw new Error("Map container is already initialized.");S(t,"scroll",this._onScroll,this),this._containerId=h(t)},_initLayout:function(){var t=this._container,e=(this._fadeAnimated=this.options.fadeAnimation&&b.any3d,M(t,"leaflet-container"+(b.touch?" leaflet-touch":"")+(b.retina?" leaflet-retina":"")+(b.ielt9?" leaflet-oldie":"")+(b.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":"")),pe(t,"position"));"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Z(this._mapPane,new p(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(M(t.markerPane,"leaflet-zoom-hide"),M(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){Z(this._mapPane,new p(0,0));var n=!this._loaded,o=(this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset"),this._zoom!==e);this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return r(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Z(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={};var e=t?k:S;e((this._targets[h(this._container)]=this)._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),b.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){r(this._resizeRequest),this._resizeRequest=x(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[h(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!We(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n=n.length||r||o||!this.listens(e,!0)?n:[this]},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e,i=t.target||t.srcElement;!this._loaded||i._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(i)||("mousedown"===(e=t.type)&&Me(i),this._fireDOMEvent(t,e))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){"click"===t.type&&((a=l({},t)).type="preclick",this._fireDOMEvent(a,a.type,i));var n=this._findEventTargets(t,e);if(i){for(var o=[],s=0;sthis.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/n);if(!0!==i.animate&&!this.getSize().contains(n))return!1;x(function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)},this)}return!0},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,M(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&z(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Ue(t){return new B(t)}var B=et.extend({options:{position:"topright"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),t=t._controlCorners[i];return M(e,"leaflet-control"),-1!==i.indexOf("bottom")?t.insertBefore(e,t.firstChild):t.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(T(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0",e=document.createElement("div");return e.innerHTML=t,e.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer),n=(t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+h(this),n),this._layerControlInputs.push(e),e.layerId=h(t.layer),S(e,"click",this._onInputClick,this),document.createElement("span")),o=(n.innerHTML=" "+t.name,document.createElement("span"));return i.appendChild(o),o.appendChild(e),o.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;0<=s;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;se.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section,e=(this._preventClick=!0,S(t,"click",O),this.expand(),this);setTimeout(function(){k(t,"click",O),e._preventClick=!1})}})),qe=B.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=P("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){i=P("a",i,n);return i.innerHTML=t,i.href="#",i.title=e,i.setAttribute("role","button"),i.setAttribute("aria-label",e),Ie(i),S(i,"click",Re),S(i,"click",o,this),S(i,"click",this._refocusOnMap,this),i},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";z(this._zoomInButton,e),z(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),!this._disabled&&t._zoom!==t.getMinZoom()||(M(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),!this._disabled&&t._zoom!==t.getMaxZoom()||(M(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}}),Ge=(A.mergeOptions({zoomControl:!0}),A.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new qe,this.addControl(this.zoomControl))}),B.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=P("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=P("div",e,i)),t.imperial&&(this._iScale=P("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,t=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(t)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t);this._updateScale(this._mScale,e<1e3?e+" m":e/1e3+" km",e/t)},_updateImperial:function(t){var e,i,t=3.2808399*t;5280'+(b.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var e in(t.attributionControl=this)._container=P("div","leaflet-control-attribution"),Ie(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t,e=[];for(t in this._attributions)this._attributions[t]&&e.push(t);var i=[];this.options.prefix&&i.push(this.options.prefix),e.length&&i.push(e.join(", ")),this._container.innerHTML=i.join(' ')}}}),n=(A.mergeOptions({attributionControl:!0}),A.addInitHook(function(){this.options.attributionControl&&(new Ke).addTo(this)}),B.Layers=Ve,B.Zoom=qe,B.Scale=Ge,B.Attribution=Ke,Ue.layers=function(t,e,i){return new Ve(t,e,i)},Ue.zoom=function(t){return new qe(t)},Ue.scale=function(t){return new Ge(t)},Ue.attribution=function(t){return new Ke(t)},et.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}})),ft=(n.addTo=function(t,e){return t.addHandler(e,this),this},{Events:e}),Ye=b.touch?"touchstart mousedown":"mousedown",Xe=it.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){c(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(S(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Xe._dragging===this&&this.finishDrag(!0),k(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var e,i;this._enabled&&(this._moved=!1,ve(this._element,"leaflet-zoom-anim")||(t.touches&&1!==t.touches.length?Xe._dragging===this&&this.finishDrag():Xe._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Xe._dragging=this)._preventOutline&&Me(this._element),Le(),re(),this._moving||(this.fire("down"),i=t.touches?t.touches[0]:t,e=Ce(this._element),this._startPoint=new p(i.clientX,i.clientY),this._startPos=Pe(this._element),this._parentScale=Ze(e),i="mousedown"===t.type,S(document,i?"mousemove":"touchmove",this._onMove,this),S(document,i?"mouseup":"touchend touchcancel",this._onUp,this)))))},_onMove:function(t){var e;this._enabled&&(t.touches&&1e&&(i.push(t[n]),o=n);oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function ri(t,e,i,n){var o=e.x,e=e.y,s=i.x-o,r=i.y-e,a=s*s+r*r;return 0this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||yi.prototype._containsPoint.call(this,t,!0)}});var wi=ci.extend({initialize:function(t,e){c(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=d(t)?t:t.features;if(o){for(e=0,i=o.length;es.x&&(r=i.x+a-s.x+o.x),i.x-r-n.x<(a=0)&&(r=i.x-n.x),i.y+e+o.y>s.y&&(a=i.y+e-s.y+o.y),i.y-a-n.y<0&&(a=i.y-n.y),(r||a)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([r,a]))))},_getAnchor:function(){return m(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}})),Ii=(A.mergeOptions({closePopupOnClick:!0}),A.include({openPopup:function(t,e,i){return this._initOverlay(Bi,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),o.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Bi,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof ci||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e;this._popup&&this._map&&(Re(t),e=t.layer||t.target,this._popup._source!==e||e instanceof fi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}}),Ai.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Ai.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Ai.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Ai.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=P("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+h(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i=this._map,n=this._container,o=i.latLngToContainerPoint(i.getCenter()),i=i.layerPointToContainerPoint(t),s=this.options.direction,r=n.offsetWidth,a=n.offsetHeight,h=m(this.options.offset),l=this._getAnchor(),i="top"===s?(e=r/2,a):"bottom"===s?(e=r/2,0):(e="center"===s?r/2:"right"===s?0:"left"===s?r:i.xthis.options.maxZoom||nthis.options.maxZoom||void 0!==this.options.minZoom&&oi.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}return!this.options.bounds||(e=this._tileCoordsToBounds(t),g(this.options.bounds).overlaps(e))},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),i=n.add(i);return[e.unproject(n,t.z),e.unproject(i,t.z)]},_tileCoordsToBounds:function(t){t=this._tileCoordsToNwSe(t),t=new s(t[0],t[1]);return t=this.options.noWrap?t:this._map.wrapLatLngBounds(t)},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var t=t.split(":"),e=new p(+t[0],+t[1]);return e.z=+t[2],e},_removeTile:function(t){var e=this._tiles[t];e&&(T(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){M(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,b.ielt9&&this.options.opacity<1&&C(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&x(a(this._tileReady,this,t,null,o)),Z(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(C(i.el,0),r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(M(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),b.ielt9||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new p(this._wrapX?H(t.x,this._wrapX):t.x,this._wrapY?H(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new f(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Di=Ni.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=c(this,e)).detectRetina&&b.retina&&0')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),zt={_initContainer:function(){this._container=P("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Wi.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Vi("shape");M(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Vi("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;T(e),t.removeInteractiveTarget(e),delete this._layers[h(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e=e||(t._stroke=Vi("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=d(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i=i||(t._fill=Vi("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){fe(t._container)},_bringToBack:function(t){ge(t._container)}},qi=b.vml?Vi:ct,Gi=Wi.extend({_initContainer:function(){this._container=qi("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=qi("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){T(this._container),k(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){var t,e,i;this._map._animatingZoom&&this._bounds||(Wi.prototype._update.call(this),e=(t=this._bounds).getSize(),i=this._container,this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Z(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update"))},_initPath:function(t){var e=t._path=qi("path");t.options.className&&M(e,t.options.className),t.options.interactive&&M(e,"leaflet-interactive"),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){T(t._path),t.removeInteractiveTarget(t._path),delete this._layers[h(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,t=t.options;e&&(t.stroke?(e.setAttribute("stroke",t.color),e.setAttribute("stroke-opacity",t.opacity),e.setAttribute("stroke-width",t.weight),e.setAttribute("stroke-linecap",t.lineCap),e.setAttribute("stroke-linejoin",t.lineJoin),t.dashArray?e.setAttribute("stroke-dasharray",t.dashArray):e.removeAttribute("stroke-dasharray"),t.dashOffset?e.setAttribute("stroke-dashoffset",t.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),t.fill?(e.setAttribute("fill",t.fillColor||t.color),e.setAttribute("fill-opacity",t.fillOpacity),e.setAttribute("fill-rule",t.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,dt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",e=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,e)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){fe(t._path)},_bringToBack:function(t){ge(t._path)}});function Ki(t){return b.svg||b.vml?new Gi(t):null}b.vml&&Gi.include(zt),A.include({getRenderer:function(t){t=(t=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(t){var e;return"overlayPane"!==t&&void 0!==t&&(void 0===(e=this._paneRenderers[t])&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e)},_createRenderer:function(t){return this.options.preferCanvas&&Ui(t)||Ki(t)}});var Yi=xi.extend({initialize:function(t,e){xi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=g(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Gi.create=qi,Gi.pointsToPath=dt,wi.geometryToLayer=bi,wi.coordsToLatLng=Li,wi.coordsToLatLngs=Ti,wi.latLngToCoords=Mi,wi.latLngsToCoords=zi,wi.getFeature=Ci,wi.asFeature=Zi,A.mergeOptions({boxZoom:!0});var _t=n.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){S(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){k(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){T(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),re(),Le(),this._startPoint=this._map.mouseEventToContainerPoint(t),S(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=P("div","leaflet-zoom-box",this._container),M(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var t=new f(this._point,this._startPoint),e=t.getSize();Z(this._box,t.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(T(this._box),z(this._container,"leaflet-crosshair")),ae(),Te(),k(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0),t=new s(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(t).fire("boxzoomend",{boxZoomBounds:t})))},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}}),Ct=(A.addInitHook("addHandler","boxZoom",_t),A.mergeOptions({doubleClickZoom:!0}),n.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,i=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}})),Zt=(A.addInitHook("addHandler","doubleClickZoom",Ct),A.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),n.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Xe(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),M(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){z(this._map._container,"leaflet-grab"),z(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,e=this._map;e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=g(this._map.options.maxBounds),this._offsetLimit=_(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var e,i;this._map.options.inertia&&(e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(i),this._times.push(e),this._prunePositions(e)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,n=(n+e+i)%t-e-i,t=Math.abs(o+i)e.getMaxZoom()&&1` - + '' - + '
        ' + const yesWikiModalHtml = ` + ` + if ($modal.length == 0) { - $('body').append( - `` - ) + $('body').append(``) $modal = $('#YesWikiModal') } else { $modal.html(yesWikiModalHtml) @@ -275,57 +271,6 @@ function toastMessage( // Remove hidden div by ACL $('.remove-this-div-on-page-load').remove() - // Pour l'apercu des themes, on recharge la page avec le theme selectionne - $('#form_theme_selector select').on('change', function() { - if ($(this).attr('id') === 'changetheme') { - // On change le theme dynamiquement - const val = $(this).val() - - // pour vider la liste - const squelette = $('#changesquelette')[0] - squelette.options.length = 0 - let i - for (i = 0; i < themeSquelettes[val].length; i++) { - o = new Option(themeSquelettes[val][i], themeSquelettes[val][i]) - squelette.options[squelette.options.length] = o - } - - const style = $('#changestyle')[0] - style.options.length = 0 - for (i = 0; i < themeStyles[val].length; i++) { - o = new Option(themeStyles[val][i], themeStyles[val][i]) - style.options[style.options.length] = o - } - } - let presetValue = '' - if (typeof getActivePreset == 'function') { - const key = getActivePreset() - if (key) { - presetValue = `&preset=${key}` - } - } - - const url = window.location.toString() - let separator = '&' - if ( - wiki - && typeof wiki.baseUrl == 'string' - && !wiki.baseUrl.includes('?') - ) { - // rewrite mode - separator = '?' - } - const urlAux = url.split(`${separator}theme=`) - window.location = `${urlAux[0] - + separator - }theme=${ - $('#changetheme').val() - }&squelette=${ - $('#changesquelette').val() - }&style=${ - $('#changestyle').val() - }${presetValue}` - }) /* tooltips */ $("[data-toggle='tooltip']").tooltip() @@ -849,7 +794,6 @@ $('#commentsTableDeleteModal.modal').on('shown.bs.modal',function(event){ let csrfToken = $(button).closest('tr').find(`td > label > input[data-itemId="${name}"][data-csrfToken]`).first().data('csrftoken'); $(this).find('#commentToDelete').text(name); $(deleteButton).data('name',name); - $(deleteButton).data('csrfToken',csrfToken); $(deleteButton).data('targetNode',button); $(deleteButton).data('modal',this); if (!$(deleteButton).hasClass('eventSet')){ @@ -858,13 +802,12 @@ $('#commentsTableDeleteModal.modal').on('shown.bs.modal',function(event){ $(this).attr('disabled','disabled'); $(this).tooltip('hide'); let name = $(this).data('name'); - let csrfToken = $(this).data('csrfToken'); let targetNode = $(this).data('targetNode'); let modal = $(this).data('modal'); $.ajax({ - method: 'get', - url: wiki.url(`api/comments/${name}/delete`,{csrfToken:csrfToken}), + method: 'post', + url: wiki.url(`api/comments/${name}/delete`), timeout: 30000, // 30 seconds error: function (e) { multiDeleteService.addErrorMessage($(modal), diff --git a/lang/yeswiki_ca.php b/lang/yeswiki_ca.php index 7fb9fd619..b5fd88ef7 100755 --- a/lang/yeswiki_ca.php +++ b/lang/yeswiki_ca.php @@ -115,6 +115,8 @@ 'ONLY_ALPHANUM_FOR_GROUP_NAME' => 'Els noms dels grups només poden contenir caràcters alfanumèrics', // 'LIST_GROUP_MEMBERS' => 'Liste des membres du groupe {groupName}', // 'ONE_NAME_BY_LINE' => 'un nom d\'utilisateur par ligne', + // 'ONLY_EMPTY_GROUP_FOR_DELETION' => 'Seul un groupe vide peut être supprimé', + // 'ONLY_NO_PAGES_GROUP_FOR_DELETION' => 'Seuls les groupes non rattaché à une page peuvent être supprimé. Pages associées :', // actions/edithandlersacls.class.php 'HANDLER_RIGHTS' => 'Drets del handler', @@ -537,7 +539,8 @@ 'EDIT_CONFIG_HINT_ALLOWED_METHODS_IN_IFRAME' => 'Mètodes permesos per ser mostrats en iframes (iframe,editiframe,bazariframe,render,all = allow all)', // 'EDIT_CONFIG_HINT_REVISIONSCOUNT' => 'Nombre maximum de versions d\'une page affichées par le handler `/revisions`.', 'EDIT_CONFIG_HINT_HTMLPURIFIERACTIVATED' => 'Habilita la neteja HTML abans de fer la còpia de seguretat. Aneu amb compte, modifiqueu el contingut a la còpia de seguretat! (vertader o fals)', - 'EDIT_CONFIG_HINT_FAVORITES_ACTIVATED' => 'Activer les favoris (true ou false)', + 'EDIT_CONFIG_HINT_FAVORITES_ACTIVATED' => 'Habilitar favorits (vertader o fals)', + 'EDIT_CONFIG_HINT_PREVIEW_BEFORE_SAVE' => 'Activar la previsualització de desament previ (true o false)', 'EDIT_CONFIG_GROUP_CORE' => 'Paràmetres principals', 'EDIT_CONFIG_GROUP_ACCESS' => 'Dret d\'accés', 'EDIT_CONFIG_GROUP_EMAIL' => 'Correus electrònics', diff --git a/lang/yeswiki_en.php b/lang/yeswiki_en.php index 89d88d2c9..8816cdba2 100755 --- a/lang/yeswiki_en.php +++ b/lang/yeswiki_en.php @@ -126,6 +126,8 @@ 'ONLY_ALPHANUM_FOR_GROUP_NAME' => 'The group names can only contain alphanumerical characters', // 'LIST_GROUP_MEMBERS' => 'Liste des membres du groupe {groupName}', // 'ONE_NAME_BY_LINE' => 'un nom d\'utilisateur par ligne', + 'ONLY_EMPTY_GROUP_FOR_DELETION' => 'Only empty group can be deleted', + 'ONLY_NO_PAGES_GROUP_FOR_DELETION' => 'Only groups not linked to a page can be deleted. Associated pages:', // actions/edithandlersacls.class.php 'HANDLER_RIGHTS' => 'Handler\'s rights', @@ -540,6 +542,7 @@ 'EDIT_CONFIG_HINT_REVISIONSCOUNT' => 'Maximum number of page\'s revisions displayed by the handler `/revisions`.', 'EDIT_CONFIG_HINT_HTMLPURIFIERACTIVATED' => 'Enable HTML purifier before backup. Be careful, modify the content to backup! (true or false)', 'EDIT_CONFIG_HINT_FAVORITES_ACTIVATED' => 'Enable favorites (true or false)', + 'EDIT_CONFIG_HINT_PREVIEW_BEFORE_SAVE' => 'Enable pre-save preview (true or false)', 'EDIT_CONFIG_GROUP_CORE' => 'Main parameters', 'EDIT_CONFIG_GROUP_ACCESS' => "Access rights", 'EDIT_CONFIG_GROUP_EMAIL' => 'Emails', diff --git a/lang/yeswiki_es.php b/lang/yeswiki_es.php index 57fda0f49..df788756d 100755 --- a/lang/yeswiki_es.php +++ b/lang/yeswiki_es.php @@ -117,6 +117,8 @@ 'ONLY_ALPHANUM_FOR_GROUP_NAME' => 'Los nombres de los grupos solo pueden componerse de caracteres alfanuméricas', // 'LIST_GROUP_MEMBERS' => 'Liste des membres du groupe {groupName}', // 'ONE_NAME_BY_LINE' => 'un nom d\'utilisateur par ligne', + // 'ONLY_EMPTY_GROUP_FOR_DELETION' => 'Seul un groupe vide peut être supprimé', + // 'ONLY_NO_PAGES_GROUP_FOR_DELETION' => 'Seuls les groupes non rattaché à une page peuvent être supprimé. Pages associées :', // actions/edithandlersacls.class.php 'HANDLER_RIGHTS' => 'Derechos del handler', @@ -540,6 +542,7 @@ // 'EDIT_CONFIG_HINT_REVISIONSCOUNT' => 'Nombre maximum de versions d\'une page affichées par le handler `/revisions`.', // 'EDIT_CONFIG_HINT_HTMLPURIFIERACTIVATED' => 'Activer le nettoyage HTML avant sauvegarde. Attention, modifie le contenu à la sauvegarde ! (true ou false)', // 'EDIT_CONFIG_HINT_FAVORITES_ACTIVATED' => 'Activer les favoris (true ou false)', + 'EDIT_CONFIG_HINT_PREVIEW_BEFORE_SAVE' => 'Habilitar la vista previa previa al guardado (true o false)', // 'EDIT_CONFIG_GROUP_CORE' => 'Paramètres Principaux', // 'EDIT_CONFIG_GROUP_ACCESS' => 'Droit d\'accès', // 'EDIT_CONFIG_GROUP_EMAIL' => 'Emails', diff --git a/lang/yeswiki_fr.php b/lang/yeswiki_fr.php index 883093565..a4e7a3444 100755 --- a/lang/yeswiki_fr.php +++ b/lang/yeswiki_fr.php @@ -132,6 +132,8 @@ 'ONLY_ALPHANUM_FOR_GROUP_NAME' => 'Les noms de groupes ne peuvent contenir que des caractères alphanumériques', 'LIST_GROUP_MEMBERS' => 'Liste des membres du groupe {groupName}', 'ONE_NAME_BY_LINE' => 'un nom d\'utilisateur par ligne', + 'ONLY_EMPTY_GROUP_FOR_DELETION' => 'Seul un groupe vide peut être supprimé', + 'ONLY_NO_PAGES_GROUP_FOR_DELETION' => 'Seuls les groupes non rattaché à une page peuvent être supprimé. Pages associées :', // actions/edithandlersacls.class.php 'HANDLER_RIGHTS' => 'Droits du handler', @@ -557,6 +559,7 @@ 'EDIT_CONFIG_HINT_DEFAULT_COMMENT_AVATAR' => 'Image d\'avatar par défaut pour les commentaires (URL vers une image)', 'EDIT_CONFIG_HINT_HTMLPURIFIERACTIVATED' => 'Activer le nettoyage HTML avant sauvegarde. Attention, modifie le contenu à la sauvegarde ! (true ou false)', 'EDIT_CONFIG_HINT_FAVORITES_ACTIVATED' => 'Activer les favoris (true ou false)', + 'EDIT_CONFIG_HINT_PREVIEW_BEFORE_SAVE' => 'Activer la prévisualisation avant sauvegarde (true ou false)', 'EDIT_CONFIG_GROUP_CORE' => 'Paramètres Principaux', 'EDIT_CONFIG_GROUP_ACCESS' => 'Droit d\'accès', 'EDIT_CONFIG_GROUP_EMAIL' => 'Emails', diff --git a/lang/yeswiki_nl.php b/lang/yeswiki_nl.php index 3137c7db4..48aace229 100755 --- a/lang/yeswiki_nl.php +++ b/lang/yeswiki_nl.php @@ -114,6 +114,8 @@ 'ONLY_ALPHANUM_FOR_GROUP_NAME' => 'De namen van groepen mogen enkel alfanumerieke karakters bevatten', // 'LIST_GROUP_MEMBERS' => 'Liste des membres du groupe {groupName}', // 'ONE_NAME_BY_LINE' => 'un nom d\'utilisateur par ligne', + // 'ONLY_EMPTY_GROUP_FOR_DELETION' => 'Seul un groupe vide peut être supprimé', + // 'ONLY_NO_PAGES_GROUP_FOR_DELETION' => 'Seuls les groupes non rattaché à une page peuvent être supprimé. Pages associées :', // actions/edithandlersacls.class.php 'HANDLER_RIGHTS' => 'Rechten van de handler', @@ -537,6 +539,7 @@ // 'EDIT_CONFIG_HINT_REVISIONSCOUNT' => 'Nombre maximum de versions d\'une page affichées par le handler `/revisions`.', // 'EDIT_CONFIG_HINT_HTMLPURIFIERACTIVATED' => 'Activer le nettoyage HTML avant sauvegarde. Attention, modifie le contenu à la sauvegarde ! (true ou false)', // 'EDIT_CONFIG_HINT_FAVORITES_ACTIVATED' => 'Activer les favoris (true ou false)', + 'EDIT_CONFIG_HINT_PREVIEW_BEFORE_SAVE' => 'Voorvertoning vooraf opslaan inschakelen (true of false)', // 'EDIT_CONFIG_GROUP_CORE' => 'Paramètres Principaux', // 'EDIT_CONFIG_GROUP_ACCESS' => 'Droit d\'accès', // 'EDIT_CONFIG_GROUP_EMAIL' => 'Emails', diff --git a/lang/yeswiki_pt.php b/lang/yeswiki_pt.php index eb939da74..15ab8c5bc 100755 --- a/lang/yeswiki_pt.php +++ b/lang/yeswiki_pt.php @@ -113,6 +113,8 @@ 'ONLY_ALPHANUM_FOR_GROUP_NAME' => 'Os nomes dos grupos só pode conter caracteres alfanuméricos', // 'LIST_GROUP_MEMBERS' => 'Liste des membres du groupe {groupName}', // 'ONE_NAME_BY_LINE' => 'un nom d\'utilisateur par ligne', + // 'ONLY_EMPTY_GROUP_FOR_DELETION' => 'Seul un groupe vide peut être supprimé', + // 'ONLY_NO_PAGES_GROUP_FOR_DELETION' => 'Seuls les groupes non rattaché à une page peuvent être supprimé. Pages associées :', // actions/edithandlersacls.class.php 'HANDLER_RIGHTS' => 'Direitos do handler', @@ -537,6 +539,7 @@ // 'EDIT_CONFIG_HINT_REVISIONSCOUNT' => 'Nombre maximum de versions d\'une page affichées par le handler `/revisions`.', // 'EDIT_CONFIG_HINT_HTMLPURIFIERACTIVATED' => 'Activer le nettoyage HTML avant sauvegarde. Attention, modifie le contenu à la sauvegarde ! (true ou false)', // 'EDIT_CONFIG_HINT_FAVORITES_ACTIVATED' => 'Activer les favoris (true ou false)', + 'EDIT_CONFIG_HINT_PREVIEW_BEFORE_SAVE' => 'Ativar a pré-visualização de pré-salvamento (true ou false)', // 'EDIT_CONFIG_GROUP_CORE' => 'Paramètres Principaux', // 'EDIT_CONFIG_GROUP_ACCESS' => 'Droit d\'accès', // 'EDIT_CONFIG_GROUP_EMAIL' => 'Emails', diff --git a/lang/yeswikijs_en.php b/lang/yeswikijs_en.php index b74acaccc..a4d9decd8 100644 --- a/lang/yeswikijs_en.php +++ b/lang/yeswikijs_en.php @@ -100,6 +100,12 @@ 'FAVORITES_ADDED' => 'Favorite added', 'FAVORITES_REMOVED' => 'Favorite deleted', + // javascripts/list-form-id-attribute.js + 'LIST_CREATE_TITLE' => 'New List', + 'LIST_UPDATE_TITLE' => 'Update the List', + 'LIST_CREATED' => 'List successfully created', + 'LIST_UPDATED' => 'List successfully updated', + // javascripts/multidelete.js "MULTIDELETE_END" => "Deletions finished", "MULTIDELETE_ERROR" => "Item {itemId} has not been deleted! {error}", diff --git a/lang/yeswikijs_fr.php b/lang/yeswikijs_fr.php index 56ef61ebf..a8da3facd 100644 --- a/lang/yeswikijs_fr.php +++ b/lang/yeswikijs_fr.php @@ -101,6 +101,12 @@ 'FAVORITES_ADDED' => 'Favori ajouté', 'FAVORITES_REMOVED' => 'Favori supprimé', + // javascripts/list-form-id-attribute.js + 'LIST_CREATE_TITLE' => 'Nouvelle Liste', + 'LIST_UPDATE_TITLE' => 'Modifier la Liste', + 'LIST_CREATED' => 'La liste a bien été crée', + 'LIST_UPDATED' => 'La liste a été mise à jour avec succès', + // javascripts/multidelete.js "MULTIDELETE_END" => "Suppressions réalisées", "MULTIDELETE_ERROR" => "L'élément {itemId} n'a pas été supprimé ! {error}", diff --git a/styles/vendor/datatables-full/dataTables.bootstrap.min.css b/styles/vendor/datatables-full/dataTables.bootstrap.min.css index 463b11b99..46bbf2002 100644 --- a/styles/vendor/datatables-full/dataTables.bootstrap.min.css +++ b/styles/vendor/datatables-full/dataTables.bootstrap.min.css @@ -1,4 +1,4 @@ -:root{--dt-row-selected: 0, 136, 204;--dt-row-selected-text: 255, 255, 255;--dt-row-selected-link: 9, 10, 11}table.dataTable td.dt-control{text-align:center;cursor:pointer}table.dataTable td.dt-control:before{height:1em;width:1em;margin-top:-9px;display:inline-block;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#31b131}table.dataTable tr.dt-hasChild td.dt-control:before{content:"-";background-color:#d33333}table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting_asc_disabled,table.dataTable thead>tr>th.sorting_desc_disabled,table.dataTable thead>tr>td.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting_asc_disabled,table.dataTable thead>tr>td.sorting_desc_disabled{cursor:pointer;position:relative;padding-right:26px}table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_desc_disabled:before,table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_desc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:after{position:absolute;display:block;opacity:.125;right:10px;line-height:9px;font-size:.8em}table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_desc_disabled:before,table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:before{bottom:50%;content:"▲"}table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_desc_disabled:after{top:50%;content:"▼"}table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_desc:after{opacity:.6}table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting_asc_disabled:before{display:none}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}div.dataTables_scrollBody>table.dataTable>thead>tr>th:before,div.dataTables_scrollBody>table.dataTable>thead>tr>th:after,div.dataTables_scrollBody>table.dataTable>thead>tr>td:before,div.dataTables_scrollBody>table.dataTable>thead>tr>td:after{display:none}div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:2px}div.dataTables_processing>div:last-child{position:relative;width:80px;height:15px;margin:1em auto}div.dataTables_processing>div:last-child>div{position:absolute;top:0;width:13px;height:13px;border-radius:50%;background:#08c;background:rgb(var(--dt-row-selected));animation-timing-function:cubic-bezier(0, 1, 1, 0)}div.dataTables_processing>div:last-child>div:nth-child(1){left:8px;animation:datatables-loader-1 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(2){left:8px;animation:datatables-loader-2 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(3){left:32px;animation:datatables-loader-2 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(4){left:56px;animation:datatables-loader-3 .6s infinite}@keyframes datatables-loader-1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes datatables-loader-3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes datatables-loader-2{0%{transform:translate(0, 0)}100%{transform:translate(24px, 0)}}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th,table.dataTable thead td,table.dataTable tfoot th,table.dataTable tfoot td{text-align:left}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important;border-collapse:separate !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.table-striped>tbody>tr:nth-of-type(2n+1){background-color:transparent}table.dataTable>tbody>tr{background-color:transparent}table.dataTable>tbody>tr.selected>*{box-shadow:inset 0 0 0 9999px #08c;box-shadow:inset 0 0 0 9999px rgb(var(--dt-row-selected));color:white;color:rgb(var(--dt-row-selected-text))}table.dataTable>tbody>tr.selected a{color:#090a0b;color:rgb(var(--dt-row-selected-link))}table.dataTable.table-striped>tbody>tr.odd>*{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.023)}table.dataTable.table-striped>tbody>tr.odd.selected>*{box-shadow:inset 0 0 0 9999px rgba(0, 136, 204, 0.923);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.923)}table.dataTable.table-hover>tbody>tr:hover>*{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.075)}table.dataTable.table-hover>tbody>tr.selected:hover>*{box-shadow:inset 0 0 0 9999px rgba(0, 136, 204, 0.975);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.975)}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody>table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody>table>thead .sorting:after,div.dataTables_scrollBody>table>thead .sorting_asc:after,div.dataTables_scrollBody>table>thead .sorting_desc:after{display:none}div.dataTables_scrollBody>table>tbody>tr:first-child>th,div.dataTables_scrollBody>table>tbody>tr:first-child>td{border-top:none}div.dataTables_scrollFoot>.dataTables_scrollFootInner{box-sizing:content-box}div.dataTables_scrollFoot>.dataTables_scrollFootInner>table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.table-bordered.dataTable{border-right-width:0}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:1px}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:last-child{padding-right:0} -@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dataTables_wrapper{position:relative}div.dt-buttons{position:initial}div.dt-buttons .dt-button{overflow:hidden;text-overflow:ellipsis}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 4px 10px 1px rgba(0, 0, 0, 0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}div.dtb-popover-close{position:absolute;top:10px;right:10px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:2003}button.dtb-hide-drop{display:none !important}div.dt-button-collection-title{text-align:center;padding:.3em 0 .5em;margin-left:.5em;margin-right:.5em;font-size:.9em}div.dt-button-collection-title:empty{display:none}span.dt-button-spacer{display:inline-block;margin:.5em;white-space:nowrap}span.dt-button-spacer.bar{border-left:1px solid rgba(0, 0, 0, 0.3);vertical-align:middle;padding-left:.5em}span.dt-button-spacer.bar:empty{height:1em;width:1px;padding-left:0}div.dt-button-collection span.dt-button-spacer{width:100%;font-size:.9em;text-align:center;margin:.5em 0}div.dt-button-collection span.dt-button-spacer:empty{height:0;width:100%}div.dt-button-collection span.dt-button-spacer.bar{border-left:none;border-bottom:1px solid rgba(0, 0, 0, 0.3);padding-left:0}div.dt-button-collection{position:absolute;z-index:2001;background-color:white;border:1px solid rgba(0, 0, 0, 0.15);border-radius:4px;box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);padding:.5rem;min-width:200px}div.dt-button-collection div.dropdown-menu,div.dt-button-collection ul.dropdown-menu{position:relative;display:block;z-index:2002;min-width:100%;background-color:transparent;border:none;box-shadow:none;margin:2px 0;padding:0;border-radius:0}div.dt-button-collection div.dt-btn-split-wrapper{width:100%;display:inline-flex;padding-left:5px;padding-right:5px}div.dt-button-collection button.dt-btn-split-drop-button{width:100%;border:none;border-radius:0px;margin-left:0px !important}div.dt-button-collection button.dt-btn-split-drop-button:focus{border:none;border-radius:0px;outline:none}div.dt-button-collection.fixed{position:fixed;display:block;top:50%;left:50%;margin-left:-75px;border-radius:5px;background-color:white}div.dt-button-collection.fixed.two-column{margin-left:-200px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection.fixed.columns{margin-left:-409px}@media screen and (max-width: 1024px){div.dt-button-collection.fixed.columns{margin-left:-308px}}@media screen and (max-width: 640px){div.dt-button-collection.fixed.columns{margin-left:-203px}}@media screen and (max-width: 460px){div.dt-button-collection.fixed.columns{margin-left:-100px}}div.dt-button-collection.fixed>:last-child{max-height:100vh;overflow:auto}div.dt-button-collection.two-column>:last-child,div.dt-button-collection.three-column>:last-child,div.dt-button-collection.four-column>:last-child{display:block !important;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection.two-column>:last-child>*,div.dt-button-collection.three-column>:last-child>*,div.dt-button-collection.four-column>:last-child>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:400px}div.dt-button-collection.two-column>:last-child{padding-bottom:1px;column-count:2}div.dt-button-collection.three-column{width:450px}div.dt-button-collection.three-column>:last-child{padding-bottom:1px;column-count:3}div.dt-button-collection.four-column{width:600px}div.dt-button-collection.four-column>:last-child{padding-bottom:1px;column-count:4}div.dt-button-collection .dt-button{border-radius:0}div.dt-button-collection.columns{width:auto}div.dt-button-collection.columns>:last-child{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:6px;width:818px;padding-bottom:1px}div.dt-button-collection.columns>:last-child .dt-button{min-width:200px;flex:0 1;margin:0}div.dt-button-collection.columns.dtb-b3>:last-child,div.dt-button-collection.columns.dtb-b2>:last-child,div.dt-button-collection.columns.dtb-b1>:last-child{justify-content:space-between}div.dt-button-collection.columns.dtb-b3 .dt-button{flex:1 1 32%}div.dt-button-collection.columns.dtb-b2 .dt-button{flex:1 1 48%}div.dt-button-collection.columns.dtb-b1 .dt-button{flex:1 1 100%}@media screen and (max-width: 1024px){div.dt-button-collection.columns>:last-child{width:612px}}@media screen and (max-width: 640px){div.dt-button-collection.columns>:last-child{width:406px}div.dt-button-collection.columns.dtb-b3 .dt-button{flex:0 1 32%}}@media screen and (max-width: 460px){div.dt-button-collection.columns>:last-child{width:200px}}div.dt-button-collection .dt-button{min-width:200px}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2001}@media screen and (max-width: 767px){div.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:.5em}div.dt-buttons a.btn{float:none}}div.dt-buttons button.btn.processing,div.dt-buttons div.btn.processing,div.dt-buttons a.btn.processing{color:rgba(0, 0, 0, 0.2)}div.dt-buttons button.btn.processing:after,div.dt-buttons div.btn.processing:after,div.dt-buttons a.btn.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:" ";border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear}div.dt-btn-split-wrapper button.dt-btn-split-drop{border-top-right-radius:4px !important;border-bottom-right-radius:4px !important}div.dt-btn-split-wrapper:active:not(.disabled) button,div.dt-btn-split-wrapper.active:not(.disabled) button{background-color:#e6e6e6;border-color:#adadad}div.dt-btn-split-wrapper:active:not(.disabled) button.dt-btn-split-drop,div.dt-btn-split-wrapper.active:not(.disabled) button.dt-btn-split-drop{box-shadow:none;background-color:#fff;border-color:#adadad}div.dt-btn-split-wrapper:active:not(.disabled) button:hover,div.dt-btn-split-wrapper.active:not(.disabled) button:hover{background-color:#e6e6e6;border-color:#adadad}span.dt-down-arrow{color:rgba(70, 70, 70, 0.9);font-size:10px;padding-left:10px}div.dataTables_wrapper div.dt-buttons.btn-group button.btn:last-of-type:first-of-type{border-radius:4px !important}span.dt-down-arrow{display:none}span.dt-button-spacer{float:left}span.dt-button-spacer.bar:empty{height:inherit}div.dt-button-collection span.dt-button-spacer{padding-left:1rem !important;text-align:left} +:root{--dt-row-selected: 0, 136, 204;--dt-row-selected-text: 255, 255, 255;--dt-row-selected-link: 9, 10, 11;--dt-row-stripe: 0, 0, 0;--dt-row-hover: 0, 0, 0;--dt-column-ordering: 0, 0, 0;--dt-html-background: white}:root.dark{--dt-html-background: rgb(33, 37, 41)}table.dataTable td.dt-control{text-align:center;cursor:pointer}table.dataTable td.dt-control:before{display:inline-block;color:rgba(0, 0, 0, 0.5);content:"►"}table.dataTable tr.dt-hasChild td.dt-control:before{content:"▼"}html.dark table.dataTable td.dt-control:before{color:rgba(255, 255, 255, 0.5)}html.dark table.dataTable tr.dt-hasChild td.dt-control:before{color:rgba(255, 255, 255, 0.5)}table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting_asc_disabled,table.dataTable thead>tr>th.sorting_desc_disabled,table.dataTable thead>tr>td.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting_asc_disabled,table.dataTable thead>tr>td.sorting_desc_disabled{cursor:pointer;position:relative;padding-right:26px}table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_desc_disabled:before,table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_desc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:after{position:absolute;display:block;opacity:.125;right:10px;line-height:9px;font-size:.8em}table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_desc_disabled:before,table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:before{bottom:50%;content:"▲";content:"▲"/""}table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_desc_disabled:after{top:50%;content:"▼";content:"▼"/""}table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_desc:after{opacity:.6}table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting_asc_disabled:before{display:none}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}div.dataTables_scrollBody>table.dataTable>thead>tr>th:before,div.dataTables_scrollBody>table.dataTable>thead>tr>th:after,div.dataTables_scrollBody>table.dataTable>thead>tr>td:before,div.dataTables_scrollBody>table.dataTable>thead>tr>td:after{display:none}div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:2px}div.dataTables_processing>div:last-child{position:relative;width:80px;height:15px;margin:1em auto}div.dataTables_processing>div:last-child>div{position:absolute;top:0;width:13px;height:13px;border-radius:50%;background:#08c;background:rgb(var(--dt-row-selected));animation-timing-function:cubic-bezier(0, 1, 1, 0)}div.dataTables_processing>div:last-child>div:nth-child(1){left:8px;animation:datatables-loader-1 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(2){left:8px;animation:datatables-loader-2 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(3){left:32px;animation:datatables-loader-2 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(4){left:56px;animation:datatables-loader-3 .6s infinite}@keyframes datatables-loader-1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes datatables-loader-3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes datatables-loader-2{0%{transform:translate(0, 0)}100%{transform:translate(24px, 0)}}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th,table.dataTable thead td,table.dataTable tfoot th,table.dataTable tfoot td{text-align:left}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important;border-collapse:separate !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.table-striped>tbody>tr:nth-of-type(2n+1){background-color:transparent}table.dataTable>tbody>tr{background-color:transparent}table.dataTable>tbody>tr.selected>*{box-shadow:inset 0 0 0 9999px #08c;box-shadow:inset 0 0 0 9999px rgb(var(--dt-row-selected));color:white;color:rgb(var(--dt-row-selected-text))}table.dataTable>tbody>tr.selected a{color:#090a0b;color:rgb(var(--dt-row-selected-link))}table.dataTable.table-striped>tbody>tr.odd>*{box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-stripe), 0.023)}table.dataTable.table-striped>tbody>tr.odd.selected>*{box-shadow:inset 0 0 0 9999px rgba(0, 136, 204, 0.923);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.923)}table.dataTable.table-hover>tbody>tr:hover>*{box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.075)}table.dataTable.table-hover>tbody>tr.selected:hover>*{box-shadow:inset 0 0 0 9999px rgba(0, 136, 204, 0.975);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.975)}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody>table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody>table>thead .sorting:after,div.dataTables_scrollBody>table>thead .sorting_asc:after,div.dataTables_scrollBody>table>thead .sorting_desc:after{display:none}div.dataTables_scrollBody>table>tbody>tr:first-child>th,div.dataTables_scrollBody>table>tbody>tr:first-child>td{border-top:none}div.dataTables_scrollFoot>.dataTables_scrollFootInner{box-sizing:content-box}div.dataTables_scrollFoot>.dataTables_scrollFootInner>table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.table-bordered.dataTable{border-right-width:0}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:1px}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:last-child{padding-right:0} +@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dataTables_wrapper{position:relative}div.dt-buttons{position:initial}div.dt-buttons .dt-button{overflow:hidden;text-overflow:ellipsis}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border-radius:.75em;box-shadow:3px 4px 10px 1px rgba(0, 0, 0, 0.8);text-align:center;z-index:2003;overflow:hidden}div.dt-button-info h2{padding:2rem 2rem 1rem 2rem;margin:0;font-weight:normal}div.dt-button-info>div{padding:1em 2em 2em 2em}div.dtb-popover-close{position:absolute;top:6px;right:6px;width:22px;height:22px;text-align:center;border-radius:3px;cursor:pointer;z-index:2003}button.dtb-hide-drop{display:none !important}div.dt-button-collection-title{text-align:center;padding:.3em 0 .5em;margin-left:.5em;margin-right:.5em;font-size:.9em}div.dt-button-collection-title:empty{display:none}span.dt-button-spacer{display:inline-block;margin:.5em;white-space:nowrap}span.dt-button-spacer.bar{border-left:1px solid rgba(0, 0, 0, 0.3);vertical-align:middle;padding-left:.5em}span.dt-button-spacer.bar:empty{height:1em;width:1px;padding-left:0}div.dt-button-collection .dt-button-active{padding-right:3em}div.dt-button-collection .dt-button-active:after{position:absolute;top:50%;margin-top:-10px;right:1em;display:inline-block;content:"✓";color:inherit}div.dt-button-collection .dt-button-active.dt-button-split{padding-right:0}div.dt-button-collection .dt-button-active.dt-button-split:after{display:none}div.dt-button-collection .dt-button-active.dt-button-split>*:first-child{padding-right:3em}div.dt-button-collection .dt-button-active.dt-button-split>*:first-child:after{position:absolute;top:50%;margin-top:-10px;right:1em;display:inline-block;content:"✓";color:inherit}div.dt-button-collection .dt-button-active-a a{padding-right:3em}div.dt-button-collection .dt-button-active-a a:after{position:absolute;right:1em;display:inline-block;content:"✓";color:inherit}div.dt-button-collection span.dt-button-spacer{width:100%;font-size:.9em;text-align:center;margin:.5em 0}div.dt-button-collection span.dt-button-spacer:empty{height:0;width:100%}div.dt-button-collection span.dt-button-spacer.bar{border-left:none;border-bottom:1px solid rgba(0, 0, 0, 0.1);padding-left:0}html.dark div.dt-button-info{background-color:var(--dt-html-background);border:1px solid rgba(255, 255, 255, 0.15)}div.dt-buttons div.btn-group{position:initial}div.dt-buttons div.dt-button-collection{position:absolute !important;min-width:200px;margin-top:3px !important;z-index:2002}div.dt-buttons div.dt-button-collection .dropdown-menu{margin-top:4px;display:block}div.dt-buttons div.dt-button-collection .dropdown-menu li{position:relative}div.dt-buttons div.dt-button-collection .dropdown-menu div.dt-button-split{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:stretch}div.dt-buttons div.dt-button-collection .dropdown-menu div.dt-button-split>*:first-child{min-width:auto;flex:1 0 50px;padding:3px 5px 3px 20px}div.dt-buttons div.dt-button-collection .dropdown-menu div.dt-button-split>*:first-child a{color:#333;text-decoration:none}div.dt-buttons div.dt-button-collection .dropdown-menu div.dt-button-split>*:first-child:hover{color:#262626;background-color:#f5f5f5}div.dt-buttons div.dt-button-collection .dropdown-menu div.dt-button-split button:last-child{min-width:33px;flex:0;background:transparent;border:none;line-height:1rem;color:#212529;padding:0 16px}div.dt-buttons div.dt-button-collection .dropdown-menu div.dt-button-split button:last-child:hover{color:#16181b;background-color:#f8f9fa}div.dt-buttons span.caret{margin-left:.5em}div.dt-buttons span.dt-button-spacer.empty{margin:2px}div.dt-buttons span.dt-button-spacer.bar:empty{height:inherit}div.dt-buttons .btn.processing{color:rgba(0, 0, 0, 0.2)}div.dt-buttons .btn.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:" ";border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear}div.dt-buttons div.dt-button-split button:last-child span{margin-left:0 !important}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:999}@media screen and (max-width: 767px){div.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:.5em}div.dt-buttons a.btn{float:none}} table.dataTable.fixedHeader-floating,table.dataTable.fixedHeader-locked{background-color:white;margin-top:0 !important;margin-bottom:0 !important}table.dataTable.fixedHeader-locked{position:absolute !important}@media print{table.fixedHeader-floating{display:none}} -table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control:before{top:50%;left:5px;height:1em;width:1em;margin-top:-9px;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#337ab7}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th.dtr-control:before{content:"-";background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control:before{left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.dtr-control,table.dataTable.dtr-column>tbody>tr>th.dtr-control,table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.dtr-control:before,table.dataTable.dtr-column>tbody>tr>th.dtr-control:before,table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:.8em;width:.8em;margin-top:-0.5em;margin-left:-0.5em;display:block;position:absolute;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#337ab7}table.dataTable.dtr-column>tbody>tr.parent td.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent th.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:"-";background-color:#d33333}table.dataTable>tbody>tr.child{padding:.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:.5em;box-shadow:0 12px 30px rgba(0, 0, 0, 0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0, 0, 0, 0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}div.dtr-bs-modal table.table tr:first-child td{border-top:none} +table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control{cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control:before{margin-right:.5em;display:inline-block;color:rgba(0, 0, 0, 0.5);content:"►"}table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control.arrow-right::before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control.arrow-right::before{content:"◄"}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td.dtr-control:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th.dtr-control:before{content:"▼"}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td.dtr-control,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th.dtr-control{padding-left:.333em}table.dataTable.dtr-column>tbody>tr>td.dtr-control,table.dataTable.dtr-column>tbody>tr>th.dtr-control,table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.dtr-control:before,table.dataTable.dtr-column>tbody>tr>th.dtr-control:before,table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{display:inline-block;color:rgba(0, 0, 0, 0.5);content:"►"}table.dataTable.dtr-column>tbody>tr>td.dtr-control.arrow-right::before,table.dataTable.dtr-column>tbody>tr>th.dtr-control.arrow-right::before,table.dataTable.dtr-column>tbody>tr>td.control.arrow-right::before,table.dataTable.dtr-column>tbody>tr>th.control.arrow-right::before{content:"◄"}table.dataTable.dtr-column>tbody>tr.parent td.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent th.dtr-control:before,table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:"▼"}table.dataTable>tbody>tr.child{padding:.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{padding-bottom:0;border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:fit-content;max-height:75%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:.5em;box-shadow:0 12px 30px rgba(0, 0, 0, 0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:2.5em}div.dtr-modal div.dtr-modal-content h2{margin-top:0}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0, 0, 0, 0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}html.dark table.dataTable>tbody>tr>td.dtr-control:before{color:rgba(255, 255, 255, 0.5) !important}html.dark table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom-color:#404346}html.dark div.dtr-modal div.dtr-modal-display{background-color:#212529;border:1px solid rgba(255, 255, 255, 0.15)}div.dtr-bs-modal table.table tr:first-child td{border-top:none} diff --git a/styles/vendor/gogocarto/gogocarto.min.css b/styles/vendor/gogocarto/gogocarto.min.css index 8e51a9239..5fc450127 100755 --- a/styles/vendor/gogocarto/gogocarto.min.css +++ b/styles/vendor/gogocarto/gogocarto.min.css @@ -9,4 +9,4 @@ * Copyright 2014 Alfiana E. Sibuea and other contributors * Released under the MIT license * https://github.com/fians/Waves/blob/master/LICENSE - */height:100%;width:100%}.gogo-load-css ul{list-style-type:none;padding:0}.gogo-load-css a{color:#26A69A;-webkit-tap-highlight-color:transparent;text-decoration:none}.gogo-load-css .valign-wrapper{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.gogo-load-css .valign-wrapper .valign{display:block}.gogo-load-css ul li{list-style-type:none}.gogo-load-css .clearfix{clear:both}.gogo-load-css .z-depth-0{box-shadow:none!important}.gogo-load-css .btn,.gogo-load-css .btn-floating,.gogo-load-css .btn-large,.gogo-load-css .collapsible,.gogo-load-css .dropdown-content,.gogo-load-css .gogocarto-container #element-info-bar .element-item.active .expand-label.transform-big,.gogo-load-css .toast,.gogo-load-css .z-depth-1{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.gogo-load-css .btn-floating:hover,.gogo-load-css .btn-large:hover,.gogo-load-css .btn:hover,.gogo-load-css .z-depth-1-half{box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15)}.gogo-load-css .z-depth-2{box-shadow:0 8px 17px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19)}.gogo-load-css .z-depth-3{box-shadow:0 12px 15px 0 rgba(0,0,0,.24),0 17px 50px 0 rgba(0,0,0,.19)}.gogo-load-css .modal,.gogo-load-css .z-depth-4{box-shadow:0 16px 28px 0 rgba(0,0,0,.22),0 25px 55px 0 rgba(0,0,0,.21)}.gogo-load-css .z-depth-5{box-shadow:0 27px 24px 0 rgba(0,0,0,.2),0 40px 77px 0 rgba(0,0,0,.22)}.gogo-load-css .hoverable:hover{transition:box-shadow .25s;box-shadow:0 8px 17px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19)}.gogo-load-css .divider{height:1px;overflow:hidden;background-color:#CCC}.gogo-load-css blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #de5a5f}.gogo-load-css i{line-height:inherit}.gogo-load-css i.left{float:left;margin-right:15px}.gogo-load-css i.right{float:right;margin-left:15px}.gogo-load-css i.tiny{font-size:1rem}.gogo-load-css i.small{font-size:2rem}.gogo-load-css i.medium{font-size:4rem}.gogo-load-css i.large{font-size:6rem}.gogo-load-css img.responsive-img,.gogo-load-css video.responsive-video{max-width:100%;height:auto}.gogo-load-css .pagination li{display:inline-block;font-size:1.2rem;padding:0 10px;line-height:30px;border-radius:2px;text-align:center}.gogo-load-css .pagination li a{color:#444}.gogo-load-css .pagination li.active a{color:#fff}.gogo-load-css .pagination li.active{background-color:#de5a5f}.gogo-load-css .pagination li.disabled a{cursor:default;color:#999}.gogo-load-css .pagination li i{font-size:2rem}.gogo-load-css .pagination li.pages ul li{display:inline-block;float:none}.gogo-load-css .parallax-container{position:relative;overflow:hidden;height:500px}.gogo-load-css .parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.gogo-load-css .parallax img{display:none;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);transform:translateX(-50%)}.gogo-load-css .pin-bottom,.gogo-load-css .pin-top{position:relative}.gogo-load-css .pinned{position:fixed!important}.gogo-load-css ul.staggered-list li{opacity:0}.gogo-load-css .fade-in{opacity:0;transform-origin:0 50%}@media only screen and (max-width:600px){.gogo-load-css .hide-on-small-and-down,.gogo-load-css .hide-on-small-only{display:none!important}}@media only screen and (max-width:1200px){.gogo-load-css .pagination{width:100%}.gogo-load-css .pagination li.next,.gogo-load-css .pagination li.prev{width:10%}.gogo-load-css .pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}.gogo-load-css .hide-on-med-and-down{display:none!important}}@media only screen and (min-width:601px){.gogo-load-css .hide-on-med-and-up{display:none!important}}@media only screen and (min-width:600px) and (max-width:900px){.gogo-load-css .hide-on-med-only{display:none!important}}@media only screen and (min-width:1201px){.gogo-load-css .hide-on-large-only{display:none!important}.gogo-load-css .show-on-large{display:initial!important}}@media only screen and (min-width:600px) and (max-width:900px){.gogo-load-css .show-on-medium{display:initial!important}}@media only screen and (min-width:601px){.gogo-load-css .show-on-medium-and-up{display:initial!important}}@media only screen and (max-width:1200px){.gogo-load-css .show-on-medium-and-down{display:initial!important}}@media only screen and (max-width:600px){.gogo-load-css .show-on-small{display:initial!important}.gogo-load-css .center-on-small-only{text-align:center}}.gogo-load-css footer.page-footer{margin-top:20px;padding-top:20px;background-color:#de5a5f}.gogo-load-css footer.page-footer .footer-copyright{overflow:hidden;height:50px;line-height:50px;color:rgba(255,255,255,.8);background-color:rgba(51,51,51,.08)}.gogo-load-css table.highlight>tbody>tr:hover,.gogo-load-css table.striped>tbody>tr:nth-child(odd){background-color:#f2f2f2}.gogo-load-css table,.gogo-load-css td,.gogo-load-css th{border:none}.gogo-load-css table.bordered>tbody>tr,.gogo-load-css table.bordered>thead>tr,.gogo-load-css thead{border-bottom:1px solid #d0d0d0}.gogo-load-css table{width:100%;display:table}.gogo-load-css table.striped>tbody>tr>td{border-radius:0}.gogo-load-css table.highlight>tbody>tr{-webkit-transition:background-color .25s ease;-moz-transition:background-color .25s ease;-o-transition:background-color .25s ease;-ms-transition:background-color .25s ease;transition:background-color .25s ease}.gogo-load-css table.centered tbody tr td,.gogo-load-css table.centered thead tr th{text-align:center}.gogo-load-css td,.gogo-load-css th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width:1200px){.gogo-load-css table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}.gogo-load-css table.responsive-table td,.gogo-load-css table.responsive-table th{margin:0;vertical-align:top}.gogo-load-css table.responsive-table thead{display:block;float:left;border:0;border-right:1px solid #d0d0d0}.gogo-load-css table.responsive-table thead tr{display:block;padding:0 10px 0 0}.gogo-load-css table.responsive-table thead tr th::before{content:"\00a0"}.gogo-load-css table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}.gogo-load-css table.responsive-table tbody tr{display:inline-block;vertical-align:top}.gogo-load-css table.responsive-table th{display:block;text-align:right}.gogo-load-css table.responsive-table td{display:block;min-height:1.25em;text-align:left}.gogo-load-css table.responsive-table tr{padding:0 10px}.gogo-load-css table.responsive-table.bordered th{border-bottom:0;border-left:0}.gogo-load-css table.responsive-table.bordered td{border-left:0;border-right:0;border-bottom:0}.gogo-load-css table.responsive-table.bordered tr{border:0}.gogo-load-css table.responsive-table.bordered tbody tr{border-right:1px solid #d0d0d0}}.gogo-load-css .collection{margin:.5rem 0 1rem;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.gogo-load-css .collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.gogo-load-css .collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.gogo-load-css .collection .collection-item.avatar .circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.gogo-load-css .collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.gogo-load-css .collection .collection-item.avatar .title{font-size:16px}.gogo-load-css .collection .collection-item.avatar p{margin:0}.gogo-load-css .collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.gogo-load-css .collection .collection-item:last-child{border-bottom:none}.gogo-load-css .collection .collection-item.active{background-color:#4A7874;color:#e9f1f1}.gogo-load-css .collection .collection-item.active .secondary-content{color:#fff}.gogo-load-css .collection a.collection-item{display:block;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;-ms-transition:.25s;transition:.25s;color:#4A7874}.gogo-load-css .collection a.collection-item:not(.active):hover{background-color:#ddd}.gogo-load-css .collection.with-header .collection-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:10px 20px}.gogo-load-css .collection.with-header .collection-item{padding-left:30px}.gogo-load-css .collection.with-header .collection-item.avatar{padding-left:72px}.gogo-load-css .secondary-content{float:right;color:#4A7874}.gogo-load-css .collapsible .collection{margin:0;border:none}.gogo-load-css span.badge{min-width:3rem;padding:0 6px;text-align:center;font-size:1rem;line-height:inherit;color:color("grey","darken-1");position:absolute;right:15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.gogo-load-css span.badge.more{font-weight:300;font-size:.8rem;color:#fff;background-color:#4A7874;border-radius:2px}.gogo-load-css span.badge.new:after{content:" new"}.gogo-load-css span.badge.more:after{content:" more"}.gogo-load-css nav ul a span.badge{position:static;margin-left:4px;line-height:0}.gogo-load-css .video-container{position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden}.gogo-load-css .video-container.no-controls{padding-top:0}.gogo-load-css .video-container embed,.gogo-load-css .video-container iframe,.gogo-load-css .video-container object{position:absolute;top:0;left:0;width:100%;height:100%}.gogo-load-css .progress{position:relative;height:4px;display:block;width:100%;background-color:#bad4d2;border-radius:2px;margin:.5rem 0 1rem;overflow:hidden}.gogo-load-css .progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:#4A7874;-webkit-transition:width .3s linear;-moz-transition:width .3s linear;-o-transition:width .3s linear;-ms-transition:width .3s linear;transition:width .3s linear}.gogo-load-css .progress .indeterminate{background-color:#4A7874}.gogo-load-css .progress .indeterminate:after,.gogo-load-css .progress .indeterminate:before{content:'';position:absolute;background-color:inherit;bottom:0;will-change:left,right;top:0;left:0}.gogo-load-css .progress .indeterminate:before{-webkit-animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;-moz-animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;-ms-animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;-o-animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.gogo-load-css .progress .indeterminate:after{-webkit-animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;-moz-animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;-ms-animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;-o-animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;-webkit-animation-delay:1.15s;-moz-animation-delay:1.15s;-ms-animation-delay:1.15s;-o-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}100%,60%{left:100%;right:-90%}}@-moz-keyframes indeterminate{0%{left:-35%;right:100%}100%,60%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}100%,60%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}100%,60%{left:107%;right:-8%}}@-moz-keyframes indeterminate-short{0%{left:-200%;right:100%}100%,60%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}100%,60%{left:107%;right:-8%}}.gogo-load-css .hide{display:none!important}.gogo-load-css .left-align{text-align:left}.gogo-load-css .right-align{text-align:right}.gogo-load-css .center,.gogo-load-css .center-align{text-align:center}.gogo-load-css .left{float:left!important}.gogo-load-css .right{float:right!important}.gogo-load-css .no-select{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gogo-load-css .circle{border-radius:50%}.gogo-load-css .center-block{display:block;margin-left:auto;margin-right:auto}.gogo-load-css .truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gogo-load-css .no-padding{padding:0!important}.gogo-load-css .container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width:601px){.gogo-load-css .container{width:85%}}@media only screen and (min-width:1201px){.gogo-load-css .container{width:70%}}.gogo-load-css .container .row{margin-left:-.75rem;margin-right:-.75rem}.gogo-load-css .section{padding-top:1rem;padding-bottom:1rem}.gogo-load-css .section.no-pad{padding:0}.gogo-load-css .section.no-pad-bot{padding-bottom:0}.gogo-load-css .section.no-pad-top{padding-top:0}.gogo-load-css .row{margin-left:auto;margin-right:auto;margin-bottom:20px}.gogo-load-css .row:after{content:"";display:table;clear:both}.gogo-load-css .row .col{float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0 .75rem}.gogo-load-css .row .col.s1{width:8.33333%;margin-left:0}.gogo-load-css .row .col.s2{width:16.66667%;margin-left:0}.gogo-load-css .row .col.s3{width:25%;margin-left:0}.gogo-load-css .row .col.s4{width:33.33333%;margin-left:0}.gogo-load-css .row .col.s5{width:41.66667%;margin-left:0}.gogo-load-css .row .col.s6{width:50%;margin-left:0}.gogo-load-css .row .col.s7{width:58.33333%;margin-left:0}.gogo-load-css .row .col.s8{width:66.66667%;margin-left:0}.gogo-load-css .row .col.s9{width:75%;margin-left:0}.gogo-load-css .row .col.s10{width:83.33333%;margin-left:0}.gogo-load-css .row .col.s11{width:91.66667%;margin-left:0}.gogo-load-css .row .col.s12{width:100%;margin-left:0}.gogo-load-css .row .col.offset-s1{margin-left:8.33333%}.gogo-load-css .row .col.offset-s2{margin-left:16.66667%}.gogo-load-css .row .col.offset-s3{margin-left:25%}.gogo-load-css .row .col.offset-s4{margin-left:33.33333%}.gogo-load-css .row .col.offset-s5{margin-left:41.66667%}.gogo-load-css .row .col.offset-s6{margin-left:50%}.gogo-load-css .row .col.offset-s7{margin-left:58.33333%}.gogo-load-css .row .col.offset-s8{margin-left:66.66667%}.gogo-load-css .row .col.offset-s9{margin-left:75%}.gogo-load-css .row .col.offset-s10{margin-left:83.33333%}.gogo-load-css .row .col.offset-s11{margin-left:91.66667%}.gogo-load-css .row .col.offset-s12{margin-left:100%}@media only screen and (min-width:601px){.gogo-load-css .row .col.m1{width:8.33333%;margin-left:0}.gogo-load-css .row .col.m2{width:16.66667%;margin-left:0}.gogo-load-css .row .col.m3{width:25%;margin-left:0}.gogo-load-css .row .col.m4{width:33.33333%;margin-left:0}.gogo-load-css .row .col.m5{width:41.66667%;margin-left:0}.gogo-load-css .row .col.m6{width:50%;margin-left:0}.gogo-load-css .row .col.m7{width:58.33333%;margin-left:0}.gogo-load-css .row .col.m8{width:66.66667%;margin-left:0}.gogo-load-css .row .col.m9{width:75%;margin-left:0}.gogo-load-css .row .col.m10{width:83.33333%;margin-left:0}.gogo-load-css .row .col.m11{width:91.66667%;margin-left:0}.gogo-load-css .row .col.m12{width:100%;margin-left:0}.gogo-load-css .row .col.offset-m1{margin-left:8.33333%}.gogo-load-css .row .col.offset-m2{margin-left:16.66667%}.gogo-load-css .row .col.offset-m3{margin-left:25%}.gogo-load-css .row .col.offset-m4{margin-left:33.33333%}.gogo-load-css .row .col.offset-m5{margin-left:41.66667%}.gogo-load-css .row .col.offset-m6{margin-left:50%}.gogo-load-css .row .col.offset-m7{margin-left:58.33333%}.gogo-load-css .row .col.offset-m8{margin-left:66.66667%}.gogo-load-css .row .col.offset-m9{margin-left:75%}.gogo-load-css .row .col.offset-m10{margin-left:83.33333%}.gogo-load-css .row .col.offset-m11{margin-left:91.66667%}.gogo-load-css .row .col.offset-m12{margin-left:100%}}@media only screen and (min-width:1201px){.gogo-load-css .row .col.l1{width:8.33333%;margin-left:0}.gogo-load-css .row .col.l2{width:16.66667%;margin-left:0}.gogo-load-css .row .col.l3{width:25%;margin-left:0}.gogo-load-css .row .col.l4{width:33.33333%;margin-left:0}.gogo-load-css .row .col.l5{width:41.66667%;margin-left:0}.gogo-load-css .row .col.l6{width:50%;margin-left:0}.gogo-load-css .row .col.l7{width:58.33333%;margin-left:0}.gogo-load-css .row .col.l8{width:66.66667%;margin-left:0}.gogo-load-css .row .col.l9{width:75%;margin-left:0}.gogo-load-css .row .col.l10{width:83.33333%;margin-left:0}.gogo-load-css .row .col.l11{width:91.66667%;margin-left:0}.gogo-load-css .row .col.l12{width:100%;margin-left:0}.gogo-load-css .row .col.offset-l1{margin-left:8.33333%}.gogo-load-css .row .col.offset-l2{margin-left:16.66667%}.gogo-load-css .row .col.offset-l3{margin-left:25%}.gogo-load-css .row .col.offset-l4{margin-left:33.33333%}.gogo-load-css .row .col.offset-l5{margin-left:41.66667%}.gogo-load-css .row .col.offset-l6{margin-left:50%}.gogo-load-css .row .col.offset-l7{margin-left:58.33333%}.gogo-load-css .row .col.offset-l8{margin-left:66.66667%}.gogo-load-css .row .col.offset-l9{margin-left:75%}.gogo-load-css .row .col.offset-l10{margin-left:83.33333%}.gogo-load-css .row .col.offset-l11{margin-left:91.66667%}.gogo-load-css .row .col.offset-l12{margin-left:100%}}.gogo-load-css html{line-height:1.5;font-family:Roboto,sans-serif;font-weight:400;color:rgba(0,0,0,.87)}@media only screen and (min-width:0){.gogo-load-css html{font-size:14px}}@media only screen and (min-width:900px){.gogo-load-css html{font-size:14.5px}}@media only screen and (min-width:1200px){.gogo-load-css html{font-size:15px}}.gogo-load-css h1,.gogo-load-css h2,.gogo-load-css h3,.gogo-load-css h4,.gogo-load-css h5,.gogo-load-css h6{font-weight:400}.gogo-load-css h1 a,.gogo-load-css h2 a,.gogo-load-css h3 a,.gogo-load-css h4 a,.gogo-load-css h5 a,.gogo-load-css h6 a{font-weight:inherit}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element .menu-element-item,.gogo-load-css strong{font-weight:700}.gogo-load-css h1{font-size:4.2rem;line-height:110%;margin:2.1rem 0 1.68rem}.gogo-load-css h2{font-size:3.56rem;line-height:110%;margin:1.78rem 0 1.424rem}.gogo-load-css h3{font-size:2.92rem;line-height:110%;margin:1.46rem 0 1.168rem}.gogo-load-css h4{font-size:2.28rem;line-height:110%;margin:1.14rem 0 .912rem}.gogo-load-css h5{font-size:1.64rem;line-height:110%;margin:.82rem 0 .656rem}.gogo-load-css h6{font-size:1rem;line-height:110%;margin:.5rem 0 .4rem}.gogo-load-css em{font-style:italic}.gogo-load-css small{font-size:75%}.gogo-load-css .light,.gogo-load-css footer.page-footer .footer-copyright{font-weight:300}.gogo-load-css .thin{font-weight:200}.gogo-load-css .flow-text{font-weight:300}@media only screen and (min-width:360px){.gogo-load-css .flow-text{font-size:1.2rem}}@media only screen and (min-width:390px){.gogo-load-css .flow-text{font-size:1.224rem}}@media only screen and (min-width:420px){.gogo-load-css .flow-text{font-size:1.248rem}}@media only screen and (min-width:450px){.gogo-load-css .flow-text{font-size:1.272rem}}@media only screen and (min-width:480px){.gogo-load-css .flow-text{font-size:1.296rem}}@media only screen and (min-width:510px){.gogo-load-css .flow-text{font-size:1.32rem}}@media only screen and (min-width:540px){.gogo-load-css .flow-text{font-size:1.344rem}}@media only screen and (min-width:570px){.gogo-load-css .flow-text{font-size:1.368rem}}@media only screen and (min-width:600px){.gogo-load-css .flow-text{font-size:1.392rem}}@media only screen and (min-width:630px){.gogo-load-css .flow-text{font-size:1.416rem}}@media only screen and (min-width:660px){.gogo-load-css .flow-text{font-size:1.44rem}}@media only screen and (min-width:690px){.gogo-load-css .flow-text{font-size:1.464rem}}@media only screen and (min-width:720px){.gogo-load-css .flow-text{font-size:1.488rem}}@media only screen and (min-width:750px){.gogo-load-css .flow-text{font-size:1.512rem}}@media only screen and (min-width:780px){.gogo-load-css .flow-text{font-size:1.536rem}}@media only screen and (min-width:810px){.gogo-load-css .flow-text{font-size:1.56rem}}@media only screen and (min-width:840px){.gogo-load-css .flow-text{font-size:1.584rem}}@media only screen and (min-width:870px){.gogo-load-css .flow-text{font-size:1.608rem}}@media only screen and (min-width:900px){.gogo-load-css .flow-text{font-size:1.632rem}}@media only screen and (min-width:930px){.gogo-load-css .flow-text{font-size:1.656rem}}@media only screen and (min-width:960px){.gogo-load-css .flow-text{font-size:1.68rem}}@media only screen and (max-width:360px){.gogo-load-css .flow-text{font-size:1.2rem}}.gogo-load-css .tabs{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;position:relative;height:2.7rem;background-color:#3D3D3D;margin:0 auto;width:calc(100% - 1px);white-space:nowrap}.gogo-load-css .tabs .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;display:block;float:left;text-align:center;line-height:3rem;height:2.7rem;margin:0;text-transform:uppercase;letter-spacing:.8px;width:15%;padding:0}.gogo-load-css .tabs .tab a{color:#fff;display:block;width:100%;height:100%;-webkit-transition:color .28s ease;-moz-transition:color .28s ease;-o-transition:color .28s ease;-ms-transition:color .28s ease;transition:color .28s ease}.gogo-load-css .tabs .tab a:hover{color:#fff}.gogo-load-css .tabs .tab.disabled a{color:#fff;cursor:default}.gogo-load-css .tabs .indicator{position:absolute;top:0;height:3px;background-color:#fff;will-change:left,right}.gogo-load-css .btn,.gogo-load-css .btn-flat,.gogo-load-css .btn-large{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;outline:0;padding:0 2rem;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.gogo-load-css .btn-floating.disabled,.gogo-load-css .btn-floating:disabled,.gogo-load-css .btn-large.disabled,.gogo-load-css .btn-large:disabled,.gogo-load-css .btn.disabled,.gogo-load-css .btn:disabled,.gogo-load-css .disabled.btn-large{background-color:#DFDFDF!important;box-shadow:none;color:#9F9F9F!important;cursor:default}.gogo-load-css .btn-floating.disabled *,.gogo-load-css .btn-floating:disabled *,.gogo-load-css .btn-large.disabled *,.gogo-load-css .btn-large:disabled *,.gogo-load-css .btn.disabled *,.gogo-load-css .btn:disabled *,.gogo-load-css .disabled.btn-large *{pointer-events:none}.gogo-load-css .btn-floating.disabled:hover,.gogo-load-css .btn-floating:disabled:hover,.gogo-load-css .btn-large.disabled:hover,.gogo-load-css .btn-large:disabled:hover,.gogo-load-css .btn.disabled:hover,.gogo-load-css .btn:disabled:hover,.gogo-load-css .disabled.btn-large:hover{background-color:#DFDFDF;color:#9F9F9F}.gogo-load-css .btn i,.gogo-load-css .btn-flat i,.gogo-load-css .btn-floating i,.gogo-load-css .btn-large i{font-size:1.3rem;line-height:inherit}.gogo-load-css .btn,.gogo-load-css .btn-large{text-decoration:none;color:#fff;background-color:#26A69A;text-align:center;letter-spacing:.5px;-webkit-transition:.2s ease-out;-moz-transition:.2s ease-out;-o-transition:.2s ease-out;-ms-transition:.2s ease-out;transition:.2s ease-out;cursor:pointer}.gogo-load-css .btn-large:hover,.gogo-load-css .btn:hover{background-color:#2bbbad}.gogo-load-css .btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:37px;height:37px;line-height:37px;padding:0;background-color:#26A69A;border-radius:50%;transition:.3s;cursor:pointer;vertical-align:middle}.gogo-load-css .btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:37px}.gogo-load-css .btn-floating:before{border-radius:0}.gogo-load-css .btn-floating.btn-large{width:55.5px;height:55.5px}.gogo-load-css .btn-floating.btn-large i{line-height:55.5px}.gogo-load-css button.btn-floating{border:none}.gogo-load-css .fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:998}.gogo-load-css .fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0}.gogo-load-css .fixed-action-btn ul li{margin-bottom:15px}.gogo-load-css .fixed-action-btn ul a.btn-floating{opacity:0}.gogo-load-css .btn-flat{box-shadow:none;cursor:pointer}.gogo-load-css .btn-flat.disabled{color:#b3b3b3;cursor:default}.gogo-load-css .btn-large{height:54px;line-height:56px}.gogo-load-css .btn-large i{font-size:1.6rem}.gogo-load-css .btn-block{display:block}.gogo-load-css .dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;max-height:650px;overflow-y:auto;opacity:0;position:absolute;z-index:999;will-change:width,height}.gogo-load-css .dropdown-content li{clear:both;color:rgba(0,0,0,.87);cursor:pointer;line-height:1.5rem;width:100%;text-align:left;text-transform:none}.gogo-load-css .dropdown-content li.active,.gogo-load-css .dropdown-content li:hover{background-color:#eee}.gogo-load-css .dropdown-content li>a,.gogo-load-css .dropdown-content li>span{font-size:1.2rem;color:#4A7874;display:block;padding:1rem}.gogo-load-css .dropdown-content li>a>i{height:inherit;line-height:inherit}.gogo-load-css .waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;will-change:opacity,transform;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;-ms-transition:all .3s ease-out;transition:all .3s ease-out}.gogo-load-css .waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,.2);-webkit-transition:all .7s ease-out;-moz-transition:all .7s ease-out;-o-transition:all .7s ease-out;-ms-transition:all .7s ease-out;transition:all .7s ease-out;-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-o-transition-property:-o-transform,opacity;transition-property:transform,opacity;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);pointer-events:none}.gogo-load-css .waves-effect.waves-light .waves-ripple{background-color:rgba(255,255,255,.45)}.gogo-load-css .waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,.7)}.gogo-load-css .waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,.7)}.gogo-load-css .waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,.7)}.gogo-load-css .waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,.7)}.gogo-load-css .waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,.7)}.gogo-load-css .waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,.7)}.gogo-load-css .waves-notransition{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}.gogo-load-css .waves-input-wrapper{border-radius:.2em;vertical-align:bottom}.gogo-load-css .waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.gogo-load-css .waves-circle{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0);text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.gogo-load-css .waves-block{display:block}.gogo-load-css a.waves-effect .waves-ripple{z-index:-1}.gogo-load-css .modal{display:none;position:fixed;left:0;right:0;background-color:#fafafa;padding:0;max-height:70%;width:55%;margin:auto;overflow-y:auto;border-radius:2px;will-change:top,opacity}@media only screen and (max-width:1200px){.gogo-load-css .modal{width:80%}}@media only screen and (max-width:600px){.gogo-load-css .modal{width:100%;max-height:100%;height:100%;top:0!important}}.gogo-load-css .modal h1,.gogo-load-css .modal h2,.gogo-load-css .modal h3,.gogo-load-css .modal h4,.gogo-load-css .modal h5{margin-top:0}.gogo-load-css .modal h5{margin-bottom:1.5rem}.gogo-load-css .modal .footer{margin-top:1rem;text-align:right}.gogo-load-css .modal .modal-content{padding:24px}@media only screen and (min-width:601px){.gogo-load-css .modal .modal-content{padding:40px}}.gogo-load-css .modal .modal-close{cursor:pointer;color:#fff}.gogo-load-css .modal .modal-footer{border-radius:0 0 2px 2px;background-color:#fafafa;padding:4px 6px;height:56px;width:100%}.gogo-load-css .modal .modal-footer .btn,.gogo-load-css .modal .modal-footer .btn-flat,.gogo-load-css .modal .modal-footer .btn-large{float:right;margin:6px 0}.gogo-load-css .modal.modal-fixed-footer{padding:0;height:70%}.gogo-load-css .modal.modal-fixed-footer .modal-content{position:absolute;height:calc(100% - 58px);max-height:100%;width:100%;overflow-y:auto}.gogo-load-css .modal.modal-fixed-footer .modal-footer{border-top:1px solid rgba(0,0,0,.1);position:absolute;bottom:0}.gogo-load-css .modal.bottom-sheet{top:auto;bottom:-100%;margin:0;width:100%;max-height:45%;border-radius:0;will-change:bottom,opacity}.gogo-load-css .collapsible{border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;margin:.5rem 0 1rem}.gogo-load-css .collapsible-header{display:block;cursor:pointer;min-height:3rem;line-height:3rem;padding:0 1rem;background-color:#fff;border-bottom:1px solid #ddd}.gogo-load-css .collapsible-header i{width:2rem;font-size:1.6rem;line-height:3rem;display:block;float:left;text-align:center;margin-right:1rem}.gogo-load-css .collapsible-body{display:none;border-bottom:1px solid #ddd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.gogo-load-css .collapsible-body p{margin:0;padding:2rem}.gogo-load-css .side-nav .collapsible{border:none;box-shadow:none}.gogo-load-css .side-nav .collapsible li{padding:0}.gogo-load-css .side-nav .collapsible-header{background-color:transparent;border:none;line-height:inherit;height:inherit;margin:0 1rem}.gogo-load-css .side-nav .collapsible-header i{line-height:inherit}.gogo-load-css .side-nav .collapsible-body{border:0;background-color:#fff}.gogo-load-css .side-nav .collapsible-body li a{margin:0 1rem 0 2rem}.gogo-load-css .collapsible.popout{border:none;box-shadow:none}.gogo-load-css .collapsible.popout>li{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);margin:0 24px;transition:margin .35s cubic-bezier(.25,.46,.45,.94)}.gogo-load-css .collapsible.popout>li.active{box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15);margin:16px 0}.gogo-load-css select:focus{outline:#d0e2e0 solid 1px}.gogo-load-css label{font-size:.8rem}.gogo-load-css ::-webkit-input-placeholder{color:#707070}.gogo-load-css :-moz-placeholder{color:#707070}.gogo-load-css ::-moz-placeholder{color:#707070}.gogo-load-css :-ms-input-placeholder{color:#707070}.gogo-load-css input[type=date],.gogo-load-css input[type=datetime-local],.gogo-load-css input[type=email],.gogo-load-css input[type=number],.gogo-load-css input[type=password],.gogo-load-css input[type=search],.gogo-load-css input[type=tel],.gogo-load-css input[type=text],.gogo-load-css input[type=time],.gogo-load-css input[type=url],.gogo-load-css textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #3D3D3D;border-radius:0;outline:0;height:3rem;width:100%;font-size:1rem;margin:0 0 15px;padding:0;box-shadow:none;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;transition:all .3s}.gogo-load-css input[type=date]:disabled,.gogo-load-css input[type=date][readonly=readonly],.gogo-load-css input[type=datetime-local]:disabled,.gogo-load-css input[type=datetime-local][readonly=readonly],.gogo-load-css input[type=email]:disabled,.gogo-load-css input[type=email][readonly=readonly],.gogo-load-css input[type=number]:disabled,.gogo-load-css input[type=number][readonly=readonly],.gogo-load-css input[type=password]:disabled,.gogo-load-css input[type=password][readonly=readonly],.gogo-load-css input[type=search]:disabled,.gogo-load-css input[type=search][readonly=readonly],.gogo-load-css input[type=tel]:disabled,.gogo-load-css input[type=tel][readonly=readonly],.gogo-load-css input[type=text]:disabled,.gogo-load-css input[type=text][readonly=readonly],.gogo-load-css input[type=time]:disabled,.gogo-load-css input[type=time][readonly=readonly],.gogo-load-css input[type=url]:disabled,.gogo-load-css input[type=url][readonly=readonly],.gogo-load-css textarea.materialize-textarea:disabled,.gogo-load-css textarea.materialize-textarea[readonly=readonly]{color:rgba(0,0,0,.26);border-bottom:1px dotted rgba(0,0,0,.26)}.gogo-load-css input[type=date].valid,.gogo-load-css input[type=date]:focus.valid,.gogo-load-css input[type=date]:focus:not([readonly]),.gogo-load-css input[type=datetime-local].valid,.gogo-load-css input[type=datetime-local]:focus.valid,.gogo-load-css input[type=datetime-local]:focus:not([readonly]),.gogo-load-css input[type=email].valid,.gogo-load-css input[type=email]:focus.valid,.gogo-load-css input[type=email]:focus:not([readonly]),.gogo-load-css input[type=number].valid,.gogo-load-css input[type=number]:focus.valid,.gogo-load-css input[type=number]:focus:not([readonly]),.gogo-load-css input[type=password].valid,.gogo-load-css input[type=password]:focus.valid,.gogo-load-css input[type=password]:focus:not([readonly]),.gogo-load-css input[type=search].valid,.gogo-load-css input[type=search]:focus.valid,.gogo-load-css input[type=search]:focus:not([readonly]),.gogo-load-css input[type=tel].valid,.gogo-load-css input[type=tel]:focus.valid,.gogo-load-css input[type=tel]:focus:not([readonly]),.gogo-load-css input[type=text].valid,.gogo-load-css input[type=text]:focus.valid,.gogo-load-css input[type=text]:focus:not([readonly]),.gogo-load-css input[type=time].valid,.gogo-load-css input[type=time]:focus.valid,.gogo-load-css input[type=time]:focus:not([readonly]),.gogo-load-css input[type=url].valid,.gogo-load-css input[type=url]:focus.valid,.gogo-load-css input[type=url]:focus:not([readonly]),.gogo-load-css textarea.materialize-textarea.valid,.gogo-load-css textarea.materialize-textarea:focus.valid,.gogo-load-css textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #4A7874;box-shadow:0 1px 0 0 #4A7874}.gogo-load-css input[type=date]:disabled+label,.gogo-load-css input[type=date][readonly=readonly]+label,.gogo-load-css input[type=datetime-local]:disabled+label,.gogo-load-css input[type=datetime-local][readonly=readonly]+label,.gogo-load-css input[type=email]:disabled+label,.gogo-load-css input[type=email][readonly=readonly]+label,.gogo-load-css input[type=number]:disabled+label,.gogo-load-css input[type=number][readonly=readonly]+label,.gogo-load-css input[type=password]:disabled+label,.gogo-load-css input[type=password][readonly=readonly]+label,.gogo-load-css input[type=search]:disabled+label,.gogo-load-css input[type=search][readonly=readonly]+label,.gogo-load-css input[type=tel]:disabled+label,.gogo-load-css input[type=tel][readonly=readonly]+label,.gogo-load-css input[type=text]:disabled+label,.gogo-load-css input[type=text][readonly=readonly]+label,.gogo-load-css input[type=time]:disabled+label,.gogo-load-css input[type=time][readonly=readonly]+label,.gogo-load-css input[type=url]:disabled+label,.gogo-load-css input[type=url][readonly=readonly]+label,.gogo-load-css textarea.materialize-textarea:disabled+label,.gogo-load-css textarea.materialize-textarea[readonly=readonly]+label{color:rgba(0,0,0,.26)}.gogo-load-css input[type=date]:focus:not([readonly])+label,.gogo-load-css input[type=datetime-local]:focus:not([readonly])+label,.gogo-load-css input[type=email]:focus:not([readonly])+label,.gogo-load-css input[type=number]:focus:not([readonly])+label,.gogo-load-css input[type=password]:focus:not([readonly])+label,.gogo-load-css input[type=search]:focus:not([readonly])+label,.gogo-load-css input[type=tel]:focus:not([readonly])+label,.gogo-load-css input[type=text]:focus:not([readonly])+label,.gogo-load-css input[type=time]:focus:not([readonly])+label,.gogo-load-css input[type=url]:focus:not([readonly])+label,.gogo-load-css textarea.materialize-textarea:focus:not([readonly])+label{color:#4A7874}.gogo-load-css input[type=date].valid+label:after,.gogo-load-css input[type=date]:focus.valid+label:after,.gogo-load-css input[type=datetime-local].valid+label:after,.gogo-load-css input[type=datetime-local]:focus.valid+label:after,.gogo-load-css input[type=email].valid+label:after,.gogo-load-css input[type=email]:focus.valid+label:after,.gogo-load-css input[type=number].valid+label:after,.gogo-load-css input[type=number]:focus.valid+label:after,.gogo-load-css input[type=password].valid+label:after,.gogo-load-css input[type=password]:focus.valid+label:after,.gogo-load-css input[type=search].valid+label:after,.gogo-load-css input[type=search]:focus.valid+label:after,.gogo-load-css input[type=tel].valid+label:after,.gogo-load-css input[type=tel]:focus.valid+label:after,.gogo-load-css input[type=text].valid+label:after,.gogo-load-css input[type=text]:focus.valid+label:after,.gogo-load-css input[type=time].valid+label:after,.gogo-load-css input[type=time]:focus.valid+label:after,.gogo-load-css input[type=url].valid+label:after,.gogo-load-css input[type=url]:focus.valid+label:after,.gogo-load-css textarea.materialize-textarea.valid+label:after,.gogo-load-css textarea.materialize-textarea:focus.valid+label:after{content:attr(data-success);color:#4A7874;opacity:1}.gogo-load-css input[type=date].invalid,.gogo-load-css input[type=date]:focus.invalid,.gogo-load-css input[type=datetime-local].invalid,.gogo-load-css input[type=datetime-local]:focus.invalid,.gogo-load-css input[type=email].invalid,.gogo-load-css input[type=email]:focus.invalid,.gogo-load-css input[type=number].invalid,.gogo-load-css input[type=number]:focus.invalid,.gogo-load-css input[type=password].invalid,.gogo-load-css input[type=password]:focus.invalid,.gogo-load-css input[type=search].invalid,.gogo-load-css input[type=search]:focus.invalid,.gogo-load-css input[type=tel].invalid,.gogo-load-css input[type=tel]:focus.invalid,.gogo-load-css input[type=text].invalid,.gogo-load-css input[type=text]:focus.invalid,.gogo-load-css input[type=time].invalid,.gogo-load-css input[type=time]:focus.invalid,.gogo-load-css input[type=url].invalid,.gogo-load-css input[type=url]:focus.invalid,.gogo-load-css textarea.materialize-textarea.invalid,.gogo-load-css textarea.materialize-textarea:focus.invalid{border-bottom:1px solid #B90303;box-shadow:0 1px 0 0 #B90303}.gogo-load-css input[type=date].invalid+label:after,.gogo-load-css input[type=date]:focus.invalid+label:after,.gogo-load-css input[type=datetime-local].invalid+label:after,.gogo-load-css input[type=datetime-local]:focus.invalid+label:after,.gogo-load-css input[type=email].invalid+label:after,.gogo-load-css input[type=email]:focus.invalid+label:after,.gogo-load-css input[type=number].invalid+label:after,.gogo-load-css input[type=number]:focus.invalid+label:after,.gogo-load-css input[type=password].invalid+label:after,.gogo-load-css input[type=password]:focus.invalid+label:after,.gogo-load-css input[type=search].invalid+label:after,.gogo-load-css input[type=search]:focus.invalid+label:after,.gogo-load-css input[type=tel].invalid+label:after,.gogo-load-css input[type=tel]:focus.invalid+label:after,.gogo-load-css input[type=text].invalid+label:after,.gogo-load-css input[type=text]:focus.invalid+label:after,.gogo-load-css input[type=time].invalid+label:after,.gogo-load-css input[type=time]:focus.invalid+label:after,.gogo-load-css input[type=url].invalid+label:after,.gogo-load-css input[type=url]:focus.invalid+label:after,.gogo-load-css textarea.materialize-textarea.invalid+label:after,.gogo-load-css textarea.materialize-textarea:focus.invalid+label:after{content:attr(data-error);color:#B90303;opacity:1}.gogo-load-css input[type=date]+label:after,.gogo-load-css input[type=datetime-local]+label:after,.gogo-load-css input[type=email]+label:after,.gogo-load-css input[type=number]+label:after,.gogo-load-css input[type=password]+label:after,.gogo-load-css input[type=search]+label:after,.gogo-load-css input[type=tel]+label:after,.gogo-load-css input[type=text]+label:after,.gogo-load-css input[type=time]+label:after,.gogo-load-css input[type=url]+label:after,.gogo-load-css textarea.materialize-textarea+label:after{display:block;content:"";position:absolute;top:65px;opacity:0;transition:.2s opacity ease-out,.2s color ease-out}.gogo-load-css .input-field{position:relative;margin-top:1rem}.gogo-load-css .input-field label{color:#3D3D3D;position:absolute;top:.8rem;left:.75rem;font-size:1rem;cursor:text;-webkit-transition:.2s ease-out;-moz-transition:.2s ease-out;-o-transition:.2s ease-out;-ms-transition:.2s ease-out;transition:.2s ease-out}.gogo-load-css .input-field label.active{font-size:.8rem;-webkit-transform:translateY(-140%);-moz-transform:translateY(-140%);-ms-transform:translateY(-140%);-o-transform:translateY(-140%);transform:translateY(-140%)}.gogo-load-css .input-field .prefix{position:absolute;width:3rem;font-size:2rem;line-height:3rem;-webkit-transition:color .2s;-moz-transition:color .2s;-o-transition:color .2s;-ms-transition:color .2s;transition:color .2s}.gogo-load-css .input-field .prefix.active{color:#4A7874}.gogo-load-css .input-field .prefix~input,.gogo-load-css .input-field .prefix~textarea{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.gogo-load-css .input-field .prefix~textarea{padding-top:.8rem}.gogo-load-css .input-field .prefix~label{margin-left:3rem}@media only screen and (max-width:1200px){.gogo-load-css .input-field .prefix~input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width:600px){.gogo-load-css .input-field .prefix~input{width:80%;width:calc(100% - 3rem)}}.gogo-load-css .input-field input[type=search]{display:block;line-height:inherit;padding-left:4rem;width:calc(100% - 4rem)}.gogo-load-css .input-field input[type=search]:focus{background-color:#fff;border:0;box-shadow:none;color:#444}.gogo-load-css .input-field input[type=search]:focus+label i,.gogo-load-css .input-field input[type=search]:focus~.material-icons,.gogo-load-css .input-field input[type=search]:focus~.mdi-navigation-close{color:#444}.gogo-load-css .input-field input[type=search]+label{left:1rem}.gogo-load-css .input-field input[type=search]~.material-icons,.gogo-load-css .input-field input[type=search]~.mdi-navigation-close{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;transition:.3s color}.gogo-load-css textarea{width:100%;height:3rem;background-color:transparent}.gogo-load-css textarea.materialize-textarea{overflow-y:hidden;padding:1.6rem 0;resize:none;min-height:3rem}.gogo-load-css .hiddendiv{display:none;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem}.gogo-load-css [type=radio]:checked,.gogo-load-css [type=radio]:not(:checked){position:absolute;left:-9999px;visibility:hidden}.gogo-load-css [type=radio]:checked+label,.gogo-load-css [type=radio]:not(:checked)+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-transition:.28s ease;-moz-transition:.28s ease;-o-transition:.28s ease;-ms-transition:.28s ease;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.gogo-load-css [type=radio]+label:after,.gogo-load-css [type=radio]+label:before{content:'';position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;-webkit-transition:.28s ease;-moz-transition:.28s ease;-o-transition:.28s ease;-ms-transition:.28s ease;transition:.28s ease}.gogo-load-css [type=radio]:not(:checked)+label:before{border-radius:50%;border:2px solid #5a5a5a}.gogo-load-css [type=radio]:not(:checked)+label:after{border-radius:50%;border:2px solid #5a5a5a;z-index:-1;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0)}.gogo-load-css [type=radio]:checked+label:before{border-radius:50%;border:2px solid transparent}.gogo-load-css [type=radio]:checked+label:after{border-radius:50%;border:2px solid #4A7874;background-color:#4A7874;z-index:0;-webkit-transform:scale(1.02);-moz-transform:scale(1.02);-ms-transform:scale(1.02);-o-transform:scale(1.02);transform:scale(1.02)}.gogo-load-css [type=radio].with-gap:checked+label:before{border-radius:50%;border:2px solid #4A7874}.gogo-load-css [type=radio].with-gap:checked+label:after{border-radius:50%;border:2px solid #4A7874;background-color:#4A7874;z-index:0;-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);-o-transform:scale(.5);transform:scale(.5)}.gogo-load-css [type=radio].with-gap:disabled:checked+label:before{border:2px solid rgba(0,0,0,.26)}.gogo-load-css [type=radio].with-gap:disabled:checked+label:after{border:none;background-color:rgba(0,0,0,.26)}.gogo-load-css [type=radio]:disabled:checked+label:before,.gogo-load-css [type=radio]:disabled:not(:checked)+label:before{background-color:transparent;border-color:rgba(0,0,0,.26)}.gogo-load-css [type=radio]:disabled+label{color:rgba(0,0,0,.26)}.gogo-load-css [type=radio]:disabled:not(:checked)+label:before{border-color:rgba(0,0,0,.26)}.gogo-load-css [type=radio]:disabled:checked+label:after{background-color:rgba(0,0,0,.26);border-color:#BDBDBD}.gogo-load-css form p{margin-bottom:10px;text-align:left}.gogo-load-css form p:last-child{margin-bottom:0}.gogo-load-css [type=checkbox]:checked,.gogo-load-css [type=checkbox]:not(:checked){position:absolute;left:-9999px;visibility:hidden}.gogo-load-css [type=checkbox]+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;user-select:none;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.gogo-load-css [type=checkbox]+label:before{content:'';position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:2px;-webkit-transition:.1s;-moz-transition:.1s;-o-transition:.1s;-ms-transition:.1s;transition:.1s}.gogo-load-css [type=checkbox]:not(:checked):disabled+label:before{border:none;background-color:rgba(0,0,0,.26)}.gogo-load-css [type=checkbox]:checked+label:before{top:-4px;left:-3px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #4A7874;border-bottom:2px solid #4A7874;-webkit-transform:rotate(40deg);-moz-transform:rotate(40deg);-ms-transform:rotate(40deg);-o-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;-ms-transform-origin:100% 100%;-o-transform-origin:100% 100%;transform-origin:100% 100%}.gogo-load-css [type=checkbox]:checked:disabled+label:before{border-right:2px solid rgba(0,0,0,.26);border-bottom:2px solid rgba(0,0,0,.26)}.gogo-load-css [type=checkbox]:indeterminate+label:before{left:-10px;top:-11px;width:10px;height:22px;border-top:none;border-left:none;border-right:2px solid #4A7874;border-bottom:none;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);-webkit-backface-visibility:hidden;-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;-ms-transform-origin:100% 100%;-o-transform-origin:100% 100%;transform-origin:100% 100%}.gogo-load-css [type=checkbox]:indeterminate:disabled+label:before{border-right:2px solid rgba(0,0,0,.26);background-color:transparent}.gogo-load-css [type=checkbox].filled-in+label:after{border-radius:2px}.gogo-load-css [type=checkbox].filled-in+label:after,.gogo-load-css [type=checkbox].filled-in+label:before{content:'';left:0;position:absolute;transition:border .25s,background-color .25s,width .2s .1s,height .2s .1s,top .2s .1s,left .2s .1s;z-index:1}.gogo-load-css [type=checkbox].filled-in:not(:checked)+label:before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:20% 40%;transform-origin:100% 100%}.gogo-load-css [type=checkbox].filled-in:not(:checked)+label:after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0;z-index:0}.gogo-load-css [type=checkbox].filled-in:checked+label:before{top:0;left:1px;width:8px;height:13px;border-top:none;border-left:none;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.gogo-load-css [type=checkbox].filled-in:checked+label:after{top:0;width:20px;height:20px;border:2px solid #4A7874;background-color:#4A7874;z-index:0}.gogo-load-css [type=checkbox].filled-in:disabled:not(:checked)+label:before{background-color:transparent;border:2px solid transparent}.gogo-load-css [type=checkbox].filled-in:disabled:not(:checked)+label:after{border-color:transparent;background-color:#BDBDBD}.gogo-load-css [type=checkbox].filled-in:disabled:checked+label:before{background-color:transparent}.gogo-load-css [type=checkbox].filled-in:disabled:checked+label:after{background-color:#BDBDBD;border-color:#BDBDBD}.gogo-load-css .switch,.gogo-load-css .switch *{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.gogo-load-css .switch label{cursor:pointer}.gogo-load-css .switch label input[type=checkbox]{opacity:0;width:0;height:0}.gogo-load-css .switch label input[type=checkbox]:checked+.lever{background-color:#a1a1a1}.gogo-load-css .switch label input[type=checkbox]:checked+.lever:after{background-color:#4A7874}.gogo-load-css .switch label .lever{content:"";display:inline-block;position:relative;width:40px;height:15px;background-color:#818181;border-radius:15px;transition:background .3s ease;vertical-align:middle;margin:0 16px}.gogo-load-css .switch label .lever:after{content:"";position:absolute;display:inline-block;width:21px;height:21px;background-color:#F1F1F1;border-radius:21px;box-shadow:0 1px 3px 1px rgba(0,0,0,.4);left:-5px;top:-3px;transition:left .3s ease,background .3s ease,box-shadow .1s ease}.gogo-load-css input[type=checkbox]:checked:not(:disabled)~.lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,.4),0 0 0 15px rgba(74,120,116,.1)}.gogo-load-css input[type=checkbox]:not(:disabled)~.lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,.4),0 0 0 15px rgba(0,0,0,.08)}.gogo-load-css .switch label input[type=checkbox]:checked+.lever:after{left:24px}.gogo-load-css .switch input[type=checkbox][disabled]+.lever{cursor:default}.gogo-load-css .switch label input[type=checkbox][disabled]+.lever:after,.gogo-load-css .switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#BDBDBD}.gogo-load-css .select-label{position:absolute}.gogo-load-css .select-wrapper{position:relative}.gogo-load-css .select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:none;border-bottom:1px solid #3D3D3D;outline:0;height:3rem;line-height:3rem;width:100%;font-size:1rem;margin:0 0 15px;padding:0;display:block}.gogo-load-css .gogo-theme-default.gogocarto-container .directory-menu-header .shadow-bottom,.gogo-load-css .gogo-theme-default.gogocarto-container .element-item .collapsible-header-more .inline-option-values .icon,.gogo-load-css .gogo-theme-default.gogocarto-container .show-directory-menu-button .arrow-right,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .checkbox-wrapper,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategory-item .arrow-after,.gogo-load-css .leaflet-control-layers .leaflet-control-layers-list,.gogo-load-css .leaflet-control-layers-expanded .leaflet-control-layers-toggle,.gogo-load-css select{display:none}.gogo-load-css .select-wrapper span.caret{color:initial;position:absolute;right:0;top:16px;font-size:10px}.gogo-load-css .select-wrapper span.caret.disabled{color:rgba(0,0,0,.26)}.gogo-load-css .select-wrapper+label{position:absolute;top:-14px;font-size:.8rem}.gogo-load-css select.browser-default{display:block}.gogo-load-css select:disabled{color:rgba(0,0,0,.3)}.gogo-load-css .select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,.3);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;border-bottom:1px solid rgba(0,0,0,.3)}.gogo-load-css .select-wrapper i{color:rgba(0,0,0,.3)}.gogo-load-css .select-dropdown li.disabled{color:rgba(0,0,0,.3);background-color:transparent}.gogo-load-css .file-field{position:relative}.gogo-load-css .file-field .file-path-wrapper{overflow:hidden;padding-left:10px}.gogo-load-css .file-field input.file-path{width:100%}.gogo-load-css .file-field .btn,.gogo-load-css .file-field .btn-large{float:left;height:3rem;line-height:3rem}.gogo-load-css .file-field span{cursor:pointer}.gogo-load-css .file-field input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;width:100%;margin:0;padding:0;font-size:20px;cursor:pointer;opacity:0;filter:alpha(opacity=0)}.gogo-load-css select{background-color:rgba(255,255,255,.9);width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.gogo-load-css .preloader-wrapper{display:inline-block;position:relative;width:48px;height:48px}.gogo-load-css .preloader-wrapper.small{width:36px;height:36px}.gogo-load-css .preloader-wrapper.big{width:64px;height:64px}.gogo-load-css .preloader-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{transform:rotate(360deg)}}.gogo-load-css .spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:#4A7874}.gogo-load-css .spinner-blue,.gogo-load-css .spinner-blue-only{border-color:#4285f4}.gogo-load-css .spinner-red,.gogo-load-css .spinner-red-only{border-color:#db4437}.gogo-load-css .spinner-yellow,.gogo-load-css .spinner-yellow-only{border-color:#f4b400}.gogo-load-css .spinner-green,.gogo-load-css .spinner-green-only{border-color:#0f9d58}.gogo-load-css .active .spinner-layer.spinner-blue{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,blue-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,blue-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.gogo-load-css .active .spinner-layer.spinner-red{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,red-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,red-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.gogo-load-css .active .spinner-layer.spinner-yellow{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.gogo-load-css .active .spinner-layer.spinner-green{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,green-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,green-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.gogo-load-css .active .spinner-layer,.gogo-load-css .active .spinner-layer.spinner-blue-only,.gogo-load-css .active .spinner-layer.spinner-green-only,.gogo-load-css .active .spinner-layer.spinner-red-only,.gogo-load-css .active .spinner-layer.spinner-yellow-only{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{100%,25%,90%,from{opacity:1}26%,89%{opacity:0}}@keyframes blue-fade-in-out{100%,25%,90%,from{opacity:1}26%,89%{opacity:0}}@-webkit-keyframes red-fade-in-out{15%,51%,from{opacity:0}25%,50%{opacity:1}}@keyframes red-fade-in-out{15%,51%,from{opacity:0}25%,50%{opacity:1}}@-webkit-keyframes yellow-fade-in-out{40%,76%,from{opacity:0}50%,75%{opacity:1}}@keyframes yellow-fade-in-out{40%,76%,from{opacity:0}50%,75%{opacity:1}}@-webkit-keyframes green-fade-in-out{100%,65%,from{opacity:0}75%,90%{opacity:1}}@keyframes green-fade-in-out{100%,65%,from{opacity:0}75%,90%{opacity:1}}.gogo-load-css .gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gogo-load-css .gap-patch .circle{width:1000%;left:-450%}.gogo-load-css .circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.gogo-load-css .circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent!important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.gogo-load-css .circle-clipper.left .circle{left:0;border-right-color:transparent!important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.gogo-load-css .circle-clipper.right .circle{left:-100%;border-left-color:transparent!important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.gogo-load-css .active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.gogo-load-css .active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes left-spin{from,to{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}}@keyframes left-spin{from,to{transform:rotate(130deg)}50%{transform:rotate(-5deg)}}@-webkit-keyframes right-spin{from,to{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}}@keyframes right-spin{from,to{transform:rotate(-130deg)}50%{transform:rotate(5deg)}}.gogo-load-css #spinnerContainer.cooldown{-webkit-animation:container-rotate 1568ms linear infinite,fade-out .4s cubic-bezier(.4,0,.2,1);animation:container-rotate 1568ms linear infinite,fade-out .4s cubic-bezier(.4,0,.2,1)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.gogo-load-css .leaflet-image-layer,.gogo-load-css .leaflet-layer,.gogo-load-css .leaflet-marker-icon,.gogo-load-css .leaflet-marker-shadow,.gogo-load-css .leaflet-pane,.gogo-load-css .leaflet-pane>canvas,.gogo-load-css .leaflet-pane>svg,.gogo-load-css .leaflet-tile,.gogo-load-css .leaflet-tile-container,.gogo-load-css .leaflet-zoom-box{position:absolute;left:0;top:0}.gogo-load-css .leaflet-marker-icon,.gogo-load-css .leaflet-marker-shadow,.gogo-load-css .leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.gogo-load-css .leaflet-tile::selection{background:0 0}.gogo-load-css .leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.gogo-load-css .leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.gogo-load-css .leaflet-marker-icon,.gogo-load-css .leaflet-marker-shadow{display:block}.gogo-load-css .leaflet-container .leaflet-marker-pane img,.gogo-load-css .leaflet-container .leaflet-overlay-pane svg,.gogo-load-css .leaflet-container .leaflet-shadow-pane img,.gogo-load-css .leaflet-container .leaflet-tile,.gogo-load-css .leaflet-container .leaflet-tile-pane img,.gogo-load-css .leaflet-container img.leaflet-image-layer{max-width:none!important;max-height:none!important}.gogo-load-css .leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.gogo-load-css .leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.gogo-load-css .leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.gogo-load-css .leaflet-container{overflow:hidden;-webkit-tap-highlight-color:transparent;background:#ddd;outline:0;font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}.gogo-load-css .leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4);color:#0078A8}.gogo-load-css .leaflet-tile{filter:inherit;visibility:hidden}.gogo-load-css .leaflet-tile-loaded{visibility:inherit}.gogo-load-css .leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.gogo-load-css .leaflet-overlay-pane svg{-moz-user-select:none}.gogo-load-css .leaflet-pane{z-index:400}.gogo-load-css .leaflet-tile-pane{z-index:200}.gogo-load-css .leaflet-overlay-pane{z-index:400}.gogo-load-css .leaflet-shadow-pane{z-index:500}.gogo-load-css .leaflet-marker-pane{z-index:600}.gogo-load-css .leaflet-tooltip-pane{z-index:650}.gogo-load-css .leaflet-popup-pane{z-index:700}.gogo-load-css .leaflet-map-pane canvas{z-index:100}.gogo-load-css .leaflet-map-pane svg{z-index:200}.gogo-load-css .leaflet-vml-shape{width:1px;height:1px}.gogo-load-css .lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.gogo-load-css .leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto;float:left;clear:both}.gogo-load-css .leaflet-bottom,.gogo-load-css .leaflet-top{position:absolute;z-index:1000;pointer-events:none}.gogo-load-css .leaflet-top{top:0}.gogo-load-css .leaflet-right{right:0}.gogo-load-css .leaflet-bottom{bottom:0}.gogo-load-css .leaflet-left{left:0}.gogo-load-css .leaflet-right .leaflet-control{float:right;margin-right:10px}.gogo-load-css .leaflet-top .leaflet-control{margin-top:10px}.gogo-load-css .leaflet-bottom .leaflet-control{margin-bottom:10px}.gogo-load-css .leaflet-left .leaflet-control{margin-left:10px}.gogo-load-css .leaflet-fade-anim .leaflet-tile{will-change:opacity}.gogo-load-css .leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.gogo-load-css .leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.gogo-load-css .leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}.gogo-load-css .leaflet-zoom-anim .leaflet-zoom-animated{will-change:transform;-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.gogo-load-css .leaflet-pan-anim .leaflet-tile,.gogo-load-css .leaflet-zoom-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.gogo-load-css .leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.gogo-load-css .leaflet-interactive{cursor:pointer}.gogo-load-css .leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.gogo-load-css .leaflet-crosshair,.gogo-load-css .leaflet-crosshair .leaflet-interactive{cursor:crosshair}.gogo-load-css .leaflet-control,.gogo-load-css .leaflet-popup-pane{cursor:auto}.gogo-load-css .leaflet-dragging .leaflet-grab,.gogo-load-css .leaflet-dragging .leaflet-grab .leaflet-interactive,.gogo-load-css .leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.gogo-load-css .leaflet-image-layer,.gogo-load-css .leaflet-marker-icon,.gogo-load-css .leaflet-marker-shadow,.gogo-load-css .leaflet-pane>svg path,.gogo-load-css .leaflet-tile-container{pointer-events:none}.gogo-load-css .leaflet-image-layer.leaflet-interactive,.gogo-load-css .leaflet-marker-icon.leaflet-interactive,.gogo-load-css .leaflet-pane>svg path.leaflet-interactive,.gogo-load-css svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.gogo-load-css .leaflet-container a.leaflet-active{outline:orange solid 2px}.gogo-load-css .leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,.5)}.gogo-load-css .leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.gogo-load-css .leaflet-bar a,.gogo-load-css .leaflet-bar a:hover{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.gogo-load-css .leaflet-bar a,.gogo-load-css .leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.gogo-load-css .leaflet-bar a:hover{background-color:#f4f4f4}.gogo-load-css .leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.gogo-load-css .leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.gogo-load-css .leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.gogo-load-css .leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.gogo-load-css .leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.gogo-load-css .leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.gogo-load-css .leaflet-control-zoom-in,.gogo-load-css .leaflet-control-zoom-out{font:700 18px 'Lucida Console',Monaco,monospace;text-indent:1px}.gogo-load-css .leaflet-touch .leaflet-control-zoom-in,.gogo-load-css .leaflet-touch .leaflet-control-zoom-out{font-size:22px}.gogo-load-css .leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.gogo-load-css .leaflet-control-layers-toggle{background-image:url(images/layers.png);width:36px;height:36px}.gogo-load-css .leaflet-retina .leaflet-control-layers-toggle{background-image:url(images/layers-2x.png);background-size:26px 26px}.gogo-load-css .leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.gogo-load-css .leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.gogo-load-css .leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.gogo-load-css .leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.gogo-load-css .leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.gogo-load-css .leaflet-control-layers label{display:block}.gogo-load-css .leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.gogo-load-css .leaflet-default-icon-path{background-image:url(images/marker-icon.png)}.gogo-load-css .leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,.7);margin:0}.gogo-load-css .leaflet-control-attribution,.gogo-load-css .leaflet-control-scale-line{padding:0 5px;color:#333}.gogo-load-css .leaflet-control-attribution a{text-decoration:none}.gogo-load-css .leaflet-control-attribution a:hover{text-decoration:underline}.gogo-load-css .leaflet-container .leaflet-control-attribution,.gogo-load-css .leaflet-container .leaflet-control-scale{font-size:11px}.gogo-load-css .leaflet-left .leaflet-control-scale{margin-left:5px}.gogo-load-css .leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.gogo-load-css .leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;font-size:11px;white-space:nowrap;overflow:hidden;-moz-box-sizing:border-box;box-sizing:border-box;background:#fff;background:rgba(255,255,255,.5)}.gogo-load-css .leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.gogo-load-css .leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.gogo-load-css .leaflet-touch .leaflet-bar,.gogo-load-css .leaflet-touch .leaflet-control-attribution,.gogo-load-css .leaflet-touch .leaflet-control-layers{box-shadow:none}.gogo-load-css .leaflet-touch .leaflet-bar,.gogo-load-css .leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.gogo-load-css .leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.gogo-load-css .leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.gogo-load-css .leaflet-popup-content{margin:13px 19px;line-height:1.4}.gogo-load-css .leaflet-popup-content p{margin:18px 0}.gogo-load-css .leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none}.gogo-load-css .leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.gogo-load-css .leaflet-popup-content-wrapper,.gogo-load-css .leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px rgba(0,0,0,.4)}.gogo-load-css .leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;padding:4px 4px 0 0;border:none;text-align:center;width:18px;height:14px;font:16px/14px Tahoma,Verdana,sans-serif;color:#c3c3c3;text-decoration:none;font-weight:700;background:0 0}.gogo-load-css .leaflet-container a.leaflet-popup-close-button:hover{color:#999}.gogo-load-css .leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.gogo-load-css .leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.gogo-load-css .leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678, M12=.70710678, M21=-.70710678, M22=.70710678)}.gogo-load-css .leaflet-oldie .leaflet-popup-tip-container{margin-top:-1px}.gogo-load-css .leaflet-oldie .leaflet-control-layers,.gogo-load-css .leaflet-oldie .leaflet-control-zoom,.gogo-load-css .leaflet-oldie .leaflet-popup-content-wrapper,.gogo-load-css .leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.gogo-load-css .leaflet-div-icon{background:#fff;border:1px solid #666}.gogo-load-css .leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,.4)}.gogo-load-css .gogo-theme-default.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value,.gogo-load-css .gogo-theme-default.gogocarto-container .element-item .collapsible-header-more .inline-option-values .option-value{color:inherit}.gogo-load-css .leaflet-tooltip.leaflet-clickable{cursor:pointer;pointer-events:auto}.gogo-load-css .leaflet-tooltip-bottom:before,.gogo-load-css .leaflet-tooltip-left:before,.gogo-load-css .leaflet-tooltip-right:before,.gogo-load-css .leaflet-tooltip-top:before{position:absolute;pointer-events:none;border:6px solid transparent;background:0 0;content:""}.gogo-load-css .leaflet-tooltip-bottom{margin-top:6px}.gogo-load-css .leaflet-tooltip-top{margin-top:-6px}.gogo-load-css .leaflet-tooltip-bottom:before,.gogo-load-css .leaflet-tooltip-top:before{left:50%;margin-left:-6px}.gogo-load-css .leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.gogo-load-css .leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.gogo-load-css .leaflet-tooltip-left{margin-left:-6px}.gogo-load-css .leaflet-tooltip-right{margin-left:6px}.gogo-load-css .leaflet-tooltip-left:before,.gogo-load-css .leaflet-tooltip-right:before{top:50%;margin-top:-6px}.gogo-load-css .leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.gogo-load-css .leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}.gogo-load-css .leaflet-cluster-anim .leaflet-marker-icon,.gogo-load-css .leaflet-cluster-anim .leaflet-marker-shadow{-webkit-transition:-webkit-transform .3s ease-out,opacity .3s ease-in;-moz-transition:-moz-transform .3s ease-out,opacity .3s ease-in;-o-transition:-o-transform .3s ease-out,opacity .3s ease-in;transition:transform .3s ease-out,opacity .3s ease-in}.gogo-load-css .leaflet-cluster-spider-leg{-webkit-transition:-webkit-stroke-dashoffset .3s ease-out,-webkit-stroke-opacity .3s ease-in;-moz-transition:-moz-stroke-dashoffset .3s ease-out,-moz-stroke-opacity .3s ease-in;-o-transition:-o-stroke-dashoffset .3s ease-out,-o-stroke-opacity .3s ease-in;transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.gogo-load-css .gogo-theme-default.gogocarto-container .element-item .collapsible-header-more .inline-option-values .inline-option-value:not(:last-child):after{content:",";margin-right:5px}.gogo-load-css .gogo-theme-default.gogocarto-container .subcategorie-option-item .icon{background-color:transparent}.gogo-load-css .gogo-theme-transiscope.gogocarto-container{font-size:14px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .shadow-bottom{border-top:none;width:calc(100% - 15px)}@media (min-width:850px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header{width:calc(100% + 15px);border-radius:0 8px 8px 0}}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container{padding-left:.5rem;padding-right:.9rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container .search-icon{font-size:1.1rem;height:2.5rem;line-height:2.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container .search-icon:before{line-height:2.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container .search-icon.search-bar-icon{left:1.4rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container .search-icon.search-geolocalize{right:2.3rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container .search-bar{border-radius:0;height:2.5rem;padding:3px 3rem 0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container #search-spinner-loader{top:10px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories{border-left:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categorie-main-title{height:2.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content ul{padding-right:10px;padding-left:5px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item{margin-bottom:3px;padding-left:0;line-height:2.5rem;height:2.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item.expanded{margin-bottom:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item.disabled .icon{background-color:transparent;opacity:1}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .option-name{font-weight:500;font-size:13px;padding-left:.6rem;-webkit-transition:color .1s;-moz-transition:color .1s;-o-transition:color .1s;-ms-transition:color .1s;transition:color .1s}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .elements-by-category-count{position:initial;margin-left:10px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item.expanded .option-name .arrow-after,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item.expanded .option-name:hover .arrow-after{margin-bottom:-3px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon{padding-top:.2rem;font-size:17px;height:2.5rem;width:2.5rem;margin-right:0;-webkit-transition:color .3s;-moz-transition:color .3s;-o-transition:color .3s;-ms-transition:color .3s;transition:color .3s}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon.fa.fa-link,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon.fa.fa-recycle{padding-top:.8rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item img.icon{padding:7px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon.fa,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon.fab,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon.far,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon.fas{padding-top:.7rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item:not(.expanded) .option-name .arrow-after{opacity:1}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item.expanded .option-name .arrow-after{opacity:1;top:.9rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategory-item .name-wrapper{margin-left:2.5rem;margin-right:0;font-weight:900}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategory-item .checkbox-wrapper{left:-2px;top:0;right:initial}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategory-item .checkbox-wrapper [type=checkbox].filled-in+label:after{background-color:transparent;border:none;-webkit-transition:none;-moz-transition:none;-o-transition:none;-ms-transition:none;transition:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategory-item .checkbox-wrapper [type=checkbox].filled-in+label:before{top:7px;width:9px;height:15px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategory-item .checkbox-wrapper [type=checkbox].filled-in:not(:checked)+label:before{-webkit-transition:none;-moz-transition:none;-o-transition:none;-ms-transition:none;transition:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal){margin-left:0!important;margin-bottom:6px;border:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item{line-height:3rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .name-wrapper{font-size:.8rem;margin-left:2.4rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .checkbox-wrapper{left:-4px;top:7px;transform:scale(.9)}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item{margin-bottom:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .option-name{font-size:.8rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon{font-size:.85rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item img.icon{padding:12px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.fa,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.fab,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.far,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.fas{padding-top:.9rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .arrow-after{position:absolute;right:1rem;top:1.2rem;border-radius:1px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .option-name:hover .arrow-after{margin-right:-1px;margin-top:-1px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .show-only-container .subcategorie-option-item .icon{padding-top:3px;padding-left:10px;background-color:transparent}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .show-only-title{padding:0;margin-left:1rem;border:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .show-only-title .name-wrapper{margin-left:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-popup{opacity:1}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-cluster div{font-size:15px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-cluster.marker-cluster-small div{background-color:#f8ab00}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-cluster.marker-cluster-medium div{background-color:#f78b16}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-cluster.marker-cluster-large div{background-color:#f5701e}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element .menu-element-item .menu-icon.gogo-icon-star-full:before,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-wrapper .marker-mini-icon-container .marker-mini-icon:before{background-color:#f09b00}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-cluster.marker-cluster-large.xl div{width:54px;height:54px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-cluster.marker-cluster-large.xl div span{line-height:54px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-wrapper .marker-mini-icon-container{color:#fff}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-header .name{font-weight:900}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-header .collapsible-header-more{line-height:1.3rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-header .element-main-icon{display:none!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .expand-label,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .element-item.active .inline-option-values,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .option-value .icon:not(.gogo-icon-external-link),.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .info-bar-divider,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .show-directory-menu-button .text,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .show-directory-menu-button i{display:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-header .collapsible-header-title .gogo-icon-close:before{border-radius:3px;padding:2px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element-item-text{text-transform:uppercase;line-height:3rem;margin-left:10px;font-size:12px}@media (max-width:460px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element.full-text{padding:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element-item{margin:0 .5rem!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element-item .menu-element-item-text{font-size:11px;margin-left:5px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element-item .menu-icon{font-size:16px}}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .collapsible-body-main-content{padding:0 0 1rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field-textarea{line-height:1.3rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field{line-height:1.5rem;padding:.8rem 1rem .8rem 1.5rem}@media only screen and (max-width:600px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field{padding-left:.8rem}}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field.field-taxonomy{padding:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field.field-taxonomy h3.category-name{margin-left:0;margin-bottom:0;padding-bottom:1rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field.field-textarea.first-element-of-body-content{padding-top:1.3rem;padding-bottom:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field+.field{padding-top:0;margin-top:-.4rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body h3{font-weight:900;padding-left:1.5rem}@media only screen and (max-width:600px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body h3{padding-left:.8rem}}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body h3.first-element-of-body-content{padding-top:1.2rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body p{padding-left:1.5rem;padding-right:1rem;line-height:2rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .other-infos .field{margin-bottom:.4rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value{margin-bottom:0;border-left:10px solid;padding-left:1rem;line-height:2.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .option-name{line-height:2.5rem;flex-grow:1}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .icon:not(.gogo-icon-external-link){margin-right:10px;font-size:.9rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.inline:not(.first){border:none;padding-left:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .option-description{font-size:.8rem;padding:3px .5rem;line-height:1.7}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .row:last-child .option-description,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .row:last-child .option-value{min-height:1.8rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper{border:none;margin-left:0;padding-left:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .category-name{padding-left:1.5rem;padding-bottom:.5rem!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .option-value{padding-left:.9rem;margin-top:0;line-height:1.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .option-value .option-name{color:inherit;margin-left:4px;line-height:1.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .option-value .option-name:before{content:"➡";font-size:1.2rem;margin-right:6px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .category-wrapper{margin-left:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .category-wrapper .option-name{margin-left:15px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field-openhours .day:after{content:"➡";font-size:1.2rem;margin:0 8px 0 10px;float:right}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field-tags{margin-top:1rem!important;margin-bottom:-10px;text-align:center}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field-tags .gogo-tag{border-radius:0;padding:4px 14px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element .menu-element-item .menu-icon.gogo-icon-star-full{color:#fff}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values{width:calc(100% - 140px);font-weight:400}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value{margin-right:20px;display:inline-block}@media only screen and (min-width:601px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .icon{margin-right:5px;font-size:.9rem;padding-top:.6rem;background-color:transparent}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .icon.disabled{color:#bbb}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .option-value{line-height:2rem;font-style:normal;font-weight:400}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .option-value.same-icon-as-last-item{margin-left:-17px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .option-value.same-icon-as-last-item:before{content:"+";margin-right:5px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #map-features-buttons{top:140px}}@media only screen and (max-width:600px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value{margin-right:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .option-value,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value[main-category-owner-name=Sources]{display:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .icon{color:#fff;border-radius:50%;line-height:10px;font-size:.9rem;padding:10px 9px;margin-right:5px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .icon.disabled{color:#aba8a8;background-color:#eaeaea}}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .collapsible-header-more .inline-option-values .option-value,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .gogo-map-control .gogo-icon-list{color:inherit}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-header .custom-header{margin-bottom:.8rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .expand-label{width:auto;float:right;border:2px solid;padding:8px 15px!important;text-align:center;border-radius:20px;margin-top:-3px;margin-right:-.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .expand-label:before{margin-right:8px;border-radius:50%;padding:0 4px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item.active .expand-label:before{content:"-";padding:0 6px 1px;font-weight:900;font-size:16px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item:not(.active) .expand-label:before{content:"+"}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header{padding:.5rem 0 .5rem .5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .collapsible-header-title{padding-bottom:1rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .collapsible-header-title .gogo-icon-close{font-size:.8rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .name{font-size:1.4rem;line-height:1.8rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .gogo-icon-close{font-size:.9rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .collapsible-header .name{font-size:15px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .element-item.active .collapsible-header-title{padding-top:1.2rem;padding-bottom:1rem}@media (min-width:850px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .element-item.active .collapsible-header-title{padding-left:2rem}}@media only screen and (max-width:600px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .element-item .expand-label{margin-right:10px;font-size:13px;font-weight:900;padding:8px 10px!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .element-item.active .expand-label.transform-big{padding:8px 10px!important}}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .element-item.active .collapsible-header{padding-bottom:.4rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .leaflet-control-layers{margin-right:17px!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .gogo-map-control{text-transform:uppercase;font-weight:700;font-size:12px!important;line-height:22px;padding:5px 15px;-webkit-box-shadow:1px 2px 4px 1px rgba(0,0,0,.12);-moz-box-shadow:1px 2px 4px 1px rgba(0,0,0,.12);box-shadow:1px 2px 4px 1px rgba(0,0,0,.12)}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #map-gogo-controls{width:100%}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .leaflet-control-zoom.leaflet-bar.leaflet-control{margin-top:60px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .show-as-list-button{position:absolute;right:20px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .show-directory-menu-button{position:absolute;left:-20px;top:80px;padding:10px 5px 3px 10px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .show-directory-menu-button .arrow-right{margin:10px 0 10px 4px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-list-header{text-align:left}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-list-header .show-as-map-button{height:2rem;line-height:2rem;border-radius:5px;top:15px;padding:0 15px;left:initial!important;text-transform:uppercase;text-decoration:none;font-size:.8rem;font-weight:700;float:right;margin-top:12px;margin-right:-8px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-list-header .show-as-map-button .btn-back{font-size:1.2rem;margin-right:10px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-list-header .show-directory-menu-button{top:0;left:-40px;border-radius:0 0 5px;padding-bottom:0;padding-top:6px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}@media (min-width:1500px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-list-header .show-directory-menu-button{left:0}}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item:not(.active){-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .collapsible-body{border-bottom:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .section{margin-right:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .inline-option-values{width:100%;padding:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .inline-option-values .inline-option-value[main-category-owner-name=Sources]{float:right;margin-right:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .menu-element{padding:0 10px 5px 0;justify-content:flex-end;min-height:2.3rem!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .menu-element .menu-element-item .menu-icon{font-size:18px!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .menu-element .menu-element-item .menu-icon:before{line-height:2.3rem!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .menu-element .menu-element-item-text{font-size:11px;line-height:2.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .location{font-weight:400}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .location .postalCode{font-size:14px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .collapsible-body-main-content{padding-bottom:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .collapsible-body .tags-container{margin-bottom:0;padding-bottom:1rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .section-taxonomy .category-wrapper:last-child .option-value:last-child{margin-bottom:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .collapsible.popout>li{margin-bottom:3px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile .feature-button{margin-right:0;float:left}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile #mobile-search-icon{border-radius:8px 0 0 8px;margin-right:2px}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .collapsible-header-more .inline-option-values .inline-option-value:not(:last-child):after,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .collapsible-header-more .inline-option-values .inline-option-value:not(:last-child):after{margin-right:5px;content:","}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile #mobile-filters-icon{border-radius:0 8px 8px 0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile #mobile-filters-icon img{display:inline-block}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .collapsible-header-more .inline-option-values .icon,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.inline .icon,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .collapsible-header-more .inline-option-values .icon,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .show-directory-menu-button .arrow-right,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile #mobile-filters-icon.with-image i{display:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile .show-as-list-button,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile .show-as-map-button{border-radius:8px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .custom-scroll-bar-light::-webkit-scrollbar-track,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .dropdown-content::-webkit-scrollbar-track{background-color:transparent;border:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .custom-scroll-bar-light::-webkit-scrollbar,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .dropdown-content::-webkit-scrollbar{width:13px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .custom-scroll-bar-light::-webkit-scrollbar-thumb,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .dropdown-content::-webkit-scrollbar-thumb{border-radius:0;background-color:#fff}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .custom-scroll-bar::-webkit-scrollbar-track{border:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .custom-scroll-bar::-webkit-scrollbar{width:18px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .custom-scroll-bar::-webkit-scrollbar-thumb{border-radius:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .btn,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .btn-large{font-weight:700;box-shadow:none;border-radius:none;font-size:.9rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .subcategorie-option-item .icon{background-color:transparent}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .sub-categories{padding-left:7px;padding-right:4px;background-color:#eee}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.fa,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.fab,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.far,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.fas,.gogo-load-css .gogocarto-container #directory-menu.small-width .sub-categories .sub-categories-content{padding-right:0}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .sub-categories .sub-categorie-main-title{letter-spacing:1.5px;font-size:1.1rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .sub-categories .sub-categories-content{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.fa.active,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.fab.active,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.far.active,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.fas.active{padding-left:5px}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .search-bar-container .search-bar{height:2.5rem;padding-top:4px;padding-left:3.2rem;transition:padding .3s;-webkit-transition:padding .3s;-moz-transition:padding .3s;-o-transition:padding .3s}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .directory-menu-header .search-bar-container .search-icon.search-geolocalize{line-height:3rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .directory-menu-header .search-bar-container .search-icon.search-bar-icon{position:absolute;font-size:1.2rem;left:auto;color:#fff;height:2.5rem;padding:0 .6rem;border-radius:5px 0 0 5px;line-height:2.8rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .directory-menu-header .search-bar-container .search-icon.search-bar-icon.loading{padding:0 1.2rem}@media (min-width:850px){.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .search-bar-container{padding-left:6px}}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .directory-menu-header .search-bar-container #search-spinner-loader{top:10px;left:8px}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories{width:3.8rem;position:relative}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .main-gogo-icon-background{position:absolute;top:.6rem;border-radius:5px 0 0 5px;left:5px;height:3.3rem!important;margin-top:1px;width:auto!important;right:0}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu.small-width .main-categories .main-gogo-icon-background{left:0;height:3rem!important;margin-top:3px}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon:before{left:1.1rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.active:before{left:1.3rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu.small-width .main-categories .icon.active:before{left:.8rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu #main-option-gogo-icon-all{padding-right:0!important;padding-left:0}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu #main-option-gogo-icon-all.active{padding-left:7px}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu.small-width #main-option-gogo-icon-all{padding-right:2px!important;padding-left:0}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu.small-width #main-option-gogo-icon-all.active{padding-left:0}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .info-bar-divider{background-color:transparent!important;background-image:linear-gradient(to right,#6b7e9b 33%,rgba(255,255,255,0) 0);background-position:bottom;background-size:6px 2px;background-repeat:repeat-x;margin-top:1rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .sectionOpenHours .openHours{font-size:.95rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.inline{font-style:normal!important}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .gogo-load-css .marker-icon.icon-ruche{line-height:22px!important}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .gogo-load-css .icon-ruche{padding-top:0!important}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .gogo-load-css .icon.gogo-icon-star-full{padding-top:2px!important}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .gogo-load-css .icon.gogo-icon-star-full:before{color:#cc8901;background-color:transparent}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .gogo-load-css .gogo-map-control{border:1px dashed #a5a5a5}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value{color:inherit}.gogo-load-css .gogo-theme-flat.gogocarto-container .shadow-bottom,.gogo-load-css .gogocarto-container #directory-menu #main-option-all.show-one-pane-per-main-option .gogo-icon-name-wrapper:hover .elements-by-category-count{display:none!important}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .collapsible-header-more .inline-option-values .option-value{color:inherit}.gogo-load-css .gogo-theme-flat.gogocarto-container .subcategorie-option-item .icon{background-color:transparent}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-menu,.gogo-load-css .gogo-theme-flat.gogocarto-container #element-info-bar.display-aside{box-shadow:0 0 0 1px rgba(99,114,130,.16),0 8px 16px rgba(27,39,51,.08)}@media (min-width:850px){.gogo-load-css .gogo-theme-flat.gogocarto-container .search-bar-container .search-bar{text-transform:none!important;font-size:.9rem!important}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header{width:100%;border-radius:0}}.gogo-load-css .gogo-theme-flat.gogocarto-container .show-directory-menu-button .arrow-right{display:none}.gogo-load-css .gogo-theme-flat.gogocarto-container #map-gogo-controls .gogo-map-control{font-weight:600;padding-right:13px}.gogo-load-css .gogo-theme-flat.gogocarto-container .leaflet-control-layers-base label{border:none}.gogo-load-css .gogo-theme-flat.gogocarto-container .leaflet-control-layers-list{padding:8px 0}.gogo-load-css .gogo-theme-flat.gogocarto-container .leaflet-control-layers-base label:hover{background-color:rgba(123,123,123,.09)}.gogo-load-css .gogo-theme-flat.gogocarto-container .search-bar-container .search-bar{font-weight:600;box-shadow:none!important}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-content-list .collapsible.popout>li{margin-bottom:4px;box-shadow:none;border-radius:3px}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-content-list .collapsible.popout>li .collapsible-header{border:none;border-radius:3px;padding-bottom:1px}@media (min-width:850px){.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .menu-element.full-text{padding:0 0 6px}}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .menu-element.full-text .menu-element-item-text{text-transform:capitalize;font-weight:600}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item h3{font-size:1rem;text-transform:none}.gogo-load-css .gogo-theme-flat.gogocarto-container #element-info-bar .element-item.active .expand-label.transform-big{box-shadow:none;border-radius:5px}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .field b{font-weight:600}@media only screen and (min-width:601px){.gogo-load-css .gogo-theme-flat.gogocarto-container .gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item .menu-icon{font-size:1.2rem}}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-content-list .element-item .name{font-size:1rem}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-content-list .element-item .name .location{font-size:.95rem}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-content-list .element-item .name .location .postalCode{font-size:.85rem}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .collapsible-header .collapsible-header-more .inline-option-values{font-style:normal;font-weight:400}.gogo-load-css .gogo-theme-flat.gogocarto-container .icon{font-size:1.3rem}.gogo-load-css .gogo-theme-flat.gogocarto-container .icon.fa,.gogo-load-css .gogo-theme-flat.gogocarto-container .icon.fab,.gogo-load-css .gogo-theme-flat.gogocarto-container .icon.far,.gogo-load-css .gogo-theme-flat.gogocarto-container .icon.fas{font-size:1.2rem}.gogo-load-css .gogo-theme-flat .feature-button,.gogo-load-css .gogo-theme-flat .gogo-map-control,.gogo-load-css .gogo-theme-flat .leaflet-control-layers,.gogo-load-css .gogo-theme-flat .leaflet-control-zoom.leaflet-bar.leaflet-control{box-shadow:0 0 0 1px rgba(99,114,130,.16),0 8px 16px rgba(27,39,51,.04)!important;border:none!important}.gogo-load-css .gogo-theme-flat .btn,.gogo-load-css .gogo-theme-flat .btn-flat,.gogo-load-css .gogo-theme-flat .btn-large{box-shadow:none;font-weight:600;font-size:1rem;border-radius:5px;letter-spacing:initial;text-transform:capitalize;padding:0 1.5rem}.gogo-load-css .gogo-theme-flat .btn-large:hover,.gogo-load-css .gogo-theme-flat .btn:hover{box-shadow:none;opacity:.8}.gogo-load-css .gogo-theme-flat .modal{border-radius:10px!important;box-shadow:none!important}.gogo-load-css .gogo-theme-flat .modal .modal-footer .modal-action{color:inherit!important}.gogo-load-css .gogo-theme-flat .modal .footer{margin-bottom:-1rem}.gogo-load-css .gogo-theme-flat .custom-scroll-bar::-webkit-scrollbar-track{border:none}.gogo-load-css .gogo-theme-flat .custom-scroll-bar::-webkit-scrollbar{width:8px!important}.gogo-load-css .gogo-theme-flat .custom-scroll-bar::-webkit-scrollbar-thumb{border-radius:0;border:none}.gogo-load-css .gogocarto-container #directory-list-spinner-loader .spinner-layer,.gogo-load-css .gogocarto-container #directory-spinner-loader .spinner-layer,.gogo-load-css .gogocarto-container #info-bar-spinner-loader .spinner-layer{border-color:#fff}.gogo-load-css .gogocarto-container{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;height:100%;position:relative;overflow:hidden;font-size:.95rem}.gogo-load-css .gogocarto-container #directory-spinner-loader,.gogo-load-css .gogocarto-container #info-bar-spinner-loader{position:absolute;margin:auto;top:0;left:0;bottom:0;right:0;z-index:1}.gogo-load-css .gogocarto-container #directory-list-spinner-loader{position:relative;margin-top:40px;z-index:500}.gogo-load-css .gogocarto-container #directory-loading{position:absolute;width:200px;margin:auto;top:0;left:0;right:0;z-index:500;background-color:#f2b523;color:#272626;padding:.2rem 0;text-align:center}.gogo-load-css .gogocarto-container #filter-moderation,.gogo-load-css .gogocarto-container #filter-moderation .moderation-checkbox+label:before{color:#c53f36}.gogo-load-css .gogocarto-container #info-bar-overlay{background-color:rgba(0,0,0,.17);z-index:10;top:0;left:0;bottom:0;right:0;position:absolute}.gogo-load-css .gogocarto-container #filter-moderation .moderation-checkbox:not(:checked)+label:before{background-color:transparent;border-color:#c53f36}.gogo-load-css .gogocarto-container #filter-favorite{color:#ff8f00}.gogo-load-css .gogocarto-container #filter-favorite .gogo-icon-star-full{color:#fff;font-size:18px}.gogo-load-css .gogocarto-container #filter-favorite .gogo-icon-star-full:before{padding:2px 2px 3px;border:none;color:#ff8f00;background-color:transparent}.gogo-load-css .gogocarto-container #filter-favorite .favorite-checkbox:not(:checked)+label:before{background-color:transparent;border-color:#ff8f00}.gogo-load-css .gogocarto-container #filter-favorite .favorite-checkbox+label:before{color:#ff8f00}.gogo-load-css .gogocarto-container .sub-categories-content.no-top-divider>ul>.main-option-subcategories-container>.category-wrapper>.subcategory-item{border-top:none!important;margin-top:0!important}.gogo-load-css .gogocarto-container .category-wrapper{margin-top:.5rem}.gogo-load-css .gogocarto-container .subcategory-item{position:relative;line-height:3rem;padding-top:0;padding-left:.8rem;font-weight:700;font-size:90%;text-transform:uppercase}.gogo-load-css .gogocarto-container .subcategory-item.top-separator{border-top:2px dashed;margin-top:.3rem;padding-top:.5rem}.gogo-load-css .gogocarto-container .subcategory-item .name-wrapper{margin-right:3rem;height:3rem;overflow:hidden}.gogo-load-css .gogocarto-container .subcategory-item .name-wrapper .arrow-after{display:inline-block;margin-left:1rem;margin-bottom:1px;border:5px solid;border-radius:4px}.gogo-load-css .gogocarto-container .subcategory-item .name-wrapper:hover{cursor:pointer}.gogo-load-css .gogocarto-container .subcategory-item:not(.expanded) .arrow-after{margin-bottom:-3px!important}.gogo-load-css .gogocarto-container .subcategory-item.expanded:not(:hover) .arrow-after{display:none}.gogo-load-css .gogocarto-container .subcategory-item.unexpandable .name-wrapper:hover{cursor:default;color:inherit}.gogo-load-css .gogocarto-container .subcategory-item .checkbox-wrapper{width:3rem;position:absolute;right:0;top:2px;bottom:0}.gogo-load-css .gogocarto-container .subcategory-item .checkbox-wrapper:hover{cursor:pointer}.gogo-load-css .gogocarto-container .subcategory-item .checkbox-wrapper .checkbox-container{position:absolute;top:2px;right:0}.gogo-load-css .gogocarto-container .subcategory-item .checkbox-wrapper .checkbox-container .subcategorie-checkbox+label:after{top:9px!important;width:17px;height:17px;border:2px solid;-webkit-transition:all .3s;-moz-transition:all .3s;-o-transition:all .3s;-ms-transition:all .3s;transition:all .3s}.gogo-load-css .gogocarto-container .subcategory-item .checkbox-wrapper .checkbox-container .subcategorie-checkbox+label:before{top:9px;left:1px;width:6px;height:11px}.gogo-load-css .gogocarto-container .subcategory-item .checkbox-wrapper .checkbox-container .subcategorie-checkbox:not(:checked)+label:after{background-color:transparent}.gogo-load-css .gogocarto-container .subcategorie-option-item{position:relative;margin-bottom:0;line-height:2.8rem;padding:0 0 0 .8rem;height:2.8rem;overflow:hidden;text-overflow:ellipsis}.gogo-load-css .gogocarto-container .subcategorie-option-item:not(.expanded) .gogo-icon-name-wrapper .option-name:hover .arrow-after{margin-bottom:-5px}.gogo-load-css .gogocarto-container .subcategorie-option-item:not(.expanded) .gogo-icon-name-wrapper .option-name .arrow-after{margin-bottom:-4px}.gogo-load-css .gogocarto-container .subcategorie-option-item .gogo-icon-name-wrapper{margin-right:3rem;position:relative}.gogo-load-css .gogocarto-container .subcategorie-option-item .gogo-icon-name-wrapper:not(.with-icon){width:calc(100% - 1rem)}.gogo-load-css .gogocarto-container .subcategorie-option-item .gogo-icon-name-wrapper .option-name{position:absolute;width:100%}.gogo-load-css .gogocarto-container .subcategorie-option-item .gogo-icon-name-wrapper .option-name:hover .arrow-after{border:6px solid;margin-bottom:1px}.gogo-load-css .gogocarto-container .subcategorie-option-item .elements-by-category-count{display:none;padding:2px 8px;font-size:.8em;border-radius:5px;position:absolute;height:20px;line-height:18px;right:0;font-weight:700;top:12px;z-index:5;opacity:.9}.gogo-load-css .gogocarto-container .subcategorie-option-item .elements-by-category-count.with-checkbox{right:2rem}.gogo-load-css .gogocarto-container .subcategorie-option-item .icon-wrapper{float:left}.gogo-load-css .gogocarto-container .subcategorie-option-item .arrow-after{display:inline-block;margin-left:1rem;border:5px solid;margin-bottom:1px;border-radius:4px}.gogo-load-css .gogocarto-container .subcategorie-option-item .icon{font-size:1.3rem;width:1.5rem}.gogo-load-css .gogocarto-container .subcategorie-option-item .icon.fa,.gogo-load-css .gogocarto-container .subcategorie-option-item .icon.fab,.gogo-load-css .gogocarto-container .subcategorie-option-item .icon.far,.gogo-load-css .gogocarto-container .subcategorie-option-item .icon.fas{font-size:1.2rem}.gogo-load-css .gogocarto-container .subcategorie-option-item img.icon{height:2.1rem;padding-top:6px}.gogo-load-css .gogocarto-container .subcategorie-option-item .subcategorie-option-checkbox+label:before{width:13px;height:13px;left:2px;top:3px;z-index:0;border:2px solid;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;margin-top:2px}.gogo-load-css .gogocarto-container .subcategorie-option-item .subcategorie-option-checkbox:checked+label:before{top:2px;left:1px;width:7px;height:13px;border-color:#3D3D3D;border-top:none;border-left:none;border-right:2px solid;border-bottom:2px solid;border-radius:0;-webkit-transform:rotate(40deg);-moz-transform:rotate(40deg);-ms-transform:rotate(40deg);-o-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;-ms-transform-origin:100% 100%;-o-transform-origin:100% 100%;transform-origin:100% 100%}.gogo-load-css .gogocarto-container .subcategorie-option-item .checkbox-wrapper{width:3rem;position:absolute;right:0;top:0;bottom:0}.gogo-load-css .gogocarto-container .subcategorie-option-item .checkbox-wrapper .checkbox-container{position:absolute;top:.6rem;right:0}.gogo-load-css .gogocarto-container .subcategorie-option-item:hover{cursor:pointer}.gogo-load-css .gogocarto-container .subcategorie-option-item:hover .checkbox-wrapper{background:0 0}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal){margin-left:1.3rem;border-left:1px dotted #c3c3c3;margin-bottom:15px;margin-top:0}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .category-wrapper{margin-top:0}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item{font-size:85%;line-height:2.5rem;margin-top:0;padding-top:0;padding-left:.9rem;margin-bottom:0}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .subcategorie-checkbox+label:after{width:15px;height:15px}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .subcategorie-checkbox+label:before{width:5px;height:9px;top:9px;left:2px}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .name-wrapper{height:2.5rem}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .checkbox-wrapper{top:7px;right:-1px}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .checkbox-wrapper .checkbox-container{top:-4px}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item{font-size:95%;line-height:2.4rem;height:2.4rem;padding-left:1rem}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon{font-size:1.2rem;padding-top:1px;margin-right:.8rem}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.fa,.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.fab,.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.far,.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.fas{font-size:1.1rem;padding-top:.7rem}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item img.icon{padding-top:6px;height:1.9rem}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .elements-by-category-count{font-size:.7em;top:9px;opacity:.8}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .subcategorie-option-checkbox+label:before{width:10px;height:10px;left:3px}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .subcategorie-option-checkbox:checked+label:before{width:6px;height:10px;left:2px}.gogo-load-css .gogocarto-container #directory-menu.small-width{font-size:.95rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .subcategorie-option-item .arrow-after{margin-left:.5rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .icon{margin-right:.6rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .category-wrapper .subcategories-wrapper:not(.no-withdrawal){margin-left:1rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .main-categories{width:3rem;overflow:visible}.gogo-load-css .gogocarto-container #directory-menu.small-width .main-categories .icon{height:3.4rem;width:3rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .main-categories .icon:before{left:.6rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .sub-categories:not(.with-left-border) .sub-categories-content{padding-left:.2rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .subcategory-item{padding-left:.6rem;font-size:.9rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .subcategorie-option-item{padding-left:.5rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .category-wrapper .category-wrapper .subcategory-item{padding-left:.7rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .category-wrapper .category-wrapper .subcategorie-option-item{padding-left:.6rem}.gogo-load-css .gogocarto-container #directory-menu .filter-menu{width:100%;height:auto;position:relative;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row nowrap;-webkit-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #directory-menu .filter-menu{height:100%}}.gogo-load-css .gogocarto-container #directory-menu .main-categories{width:3.5rem;padding-top:.6rem;height:100%}.gogo-load-css .gogocarto-container #directory-menu .main-categories .main-icon{padding-top:0}.gogo-load-css .gogocarto-container #directory-menu .main-categories .main-icon:not(.active) .main-icon-text{transform:rotateZ(-45deg);opacity:.8}.gogo-load-css .gogocarto-container #directory-menu .main-categories .main-icon:hover .main-icon-text{opacity:1}.gogo-load-css .gogocarto-container #directory-menu .main-categories .main-icon .main-icon-text{text-transform:uppercase;-webkit-transition:transform .2s;-moz-transition:transform .2s;-o-transition:transform .2s;-ms-transition:transform .2s;transition:transform .2s;font-size:.85rem;font-weight:700;opacity:1}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon{width:3.5rem;height:3.5rem;line-height:3.5rem;margin:0;padding-right:8px;text-align:center;position:relative}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon .main-option-tooltip{display:none}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon:before{position:absolute;top:1rem;left:.8rem}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon:not(.active):hover{cursor:pointer}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon:not(.active):hover .main-option-tooltip{display:block;position:absolute;left:4rem;top:.5rem;height:2.5rem;line-height:2.5rem;z-index:100;width:14rem;color:#efefef;font-size:1rem;border-radius:5px}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.active{padding-right:8px}.gogo-load-css .gogocarto-container #directory-menu .main-categories .main-gogo-icon-background{position:absolute;top:.6rem;border-radius:0 50% 50% 0}.gogo-load-css .gogocarto-container #directory-menu #main-option-all.show-one-pane-per-main-option .gogo-icon-name-wrapper:hover:after{content:"+";font-size:1.4rem;font-weight:400;padding:3px 11px;border-radius:3px;margin-left:5px;line-height:1rem;position:absolute;right:-38px;z-index:10;top:11px}.gogo-load-css .gogocarto-container #directory-menu .secondary-filters{padding:.5rem 0 0;height:auto;border-top:2px dashed #eee;margin-top:1rem}.gogo-load-css .gogocarto-container #directory-menu .sub-categories{-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto}.gogo-load-css .gogocarto-container #directory-menu .sub-categories .sub-categorie-main-title{height:3rem;line-height:3rem;font-weight:700;text-align:center;overflow:hidden}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #directory-menu .sub-categories .sub-categorie-main-title{font-size:1.2rem}}.gogo-load-css .gogocarto-container #directory-menu .sub-categories .sub-categories-content{height:calc(100% - 3rem);padding-top:0}.gogo-load-css .gogocarto-container #directory-menu .sub-categories .sub-categories-content.full-height{height:100%}.gogo-load-css .gogocarto-container #directory-menu .sub-categories .sub-categories-content ul{height:100%;margin:0;border:0;box-shadow:none;padding-bottom:2rem;overflow-y:auto;overflow-x:hidden}.gogo-load-css .gogocarto-container .subcategory-item.filter .btn-clear-filter{display:none;position:absolute;right:1rem;font-size:.8rem;line-height:1rem;padding-top:1px;border-radius:2px;text-transform:capitalize;top:1rem;cursor:pointer;background-color:#f44336a6}.gogo-load-css .gogocarto-container .subcategory-item.filter .btn-clear-filter .gogo-icon-close{margin:2px 2px 0;float:right}.gogo-load-css .gogocarto-container .subcategory-item.filter .name p{margin:0;display:inline}.gogo-load-css .gogocarto-container .filter-wrapper input{height:2rem}.gogo-load-css .gogocarto-container .filter-header,.gogo-load-css .gogocarto-container .filter-paragraph{padding-left:.6rem;padding-right:.4rem}.gogo-load-css .gogocarto-container .filter-header h1{font-size:2rem;font-weight:700}.gogo-load-css .gogocarto-container .filter-header h2{font-size:1.8rem}.gogo-load-css .gogocarto-container .filter-header h3{font-size:1.5rem}.gogo-load-css .gogocarto-container .gogo-date-filter td,.gogo-load-css .gogocarto-container .gogo-date-filter th{padding:0}.gogo-load-css .gogocarto-container .gogo-date-filter thead{border:none}.gogo-load-css .gogocarto-container .gogo-date-filter .datepicker table tr td span.month,.gogo-load-css .gogocarto-container .gogo-date-filter .datepicker table tr td span.year{width:19%;height:auto;line-height:45px;margin:2% 3% 1%}.gogo-load-css .gogocarto-container .gogo-date-filter .datepicker-inline{width:100%;padding:0 15px 0 5px}.gogo-load-css .gogocarto-container .gogo-date-filter .input-daterange .range-container{display:flex;padding:0 15px 0 5px}.gogo-load-css .gogocarto-container .gogo-date-filter .input-group-addon{min-width:auto;padding:6px 12px;font-size:14px;font-weight:400;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px;margin:.3rem 10px 14px}.gogo-load-css .gogocarto-container .gogo-date-filter input{height:2rem}.gogo-load-css .gogocarto-container .gogo-date-filter .view-selection{display:flex;margin-bottom:8px;margin-right:.6rem;margin-left:.6rem}.gogo-load-css .gogocarto-container .gogo-date-filter .view-selection .view-type{border:1px solid #ddd;flex-grow:1;text-align:center;line-height:1.5rem;cursor:pointer;background-color:#fff}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=month] tbody:hover .day:not(.new):not(.old),.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=year] tbody:hover .day:not(.new):not(.old),.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=year] tbody:hover .month:not(.new):not(.old){background-color:#eee}.gogo-load-css .gogocarto-container .gogo-date-filter .view-selection .view-type:not(:last-child){border-right:none}.gogo-load-css .gogocarto-container .gogo-date-filter .view-selection .view-type:first-child{border-radius:3px 0 0 3px}.gogo-load-css .gogocarto-container .gogo-date-filter .view-selection .view-type:last-child{border-radius:0 3px 3px 0}.gogo-load-css .gogocarto-container .gogo-date-filter .view-selection .view-type.active{border:1px solid #ccc;border-right:none}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=month] .day,.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] .day,.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=year] .day,.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=year] .month{border-radius:0}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter{display:none}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=month] .datepicker-days,.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=year] .datepicker-days{opacity:0}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=year] .datepicker-months{opacity:0}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] .day:first-child{border-radius:3px 0 0 3px}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] .day:last-child{border-radius:0 3px 3px 0}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] .day:hover{background-color:transparent}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] .datepicker-days tbody tr:not(.selected-week):hover{background-color:#eee}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] td.active,.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] td.today{color:inherit!important;background-color:transparent!important}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter:not([data-name=range]){margin-bottom:.5rem}.gogo-load-css .gogocarto-container .gogo-number-filter{padding-right:1rem;padding-left:.5rem;margin-top:-10px}.gogo-load-css .gogocarto-container .gogo-number-filter .filter-number-slider{margin:20px 10px}.gogo-load-css .gogocarto-container #directory-menu{z-index:998;overflow-y:hidden;-webkit-transition:height .5s;-moz-transition:height .5s;-o-transition:height .5s;-ms-transition:height .5s;transition:height .5s;-webkit-box-shadow:4px 0 2px rgba(0,0,0,.2),-1px 0 2px rgba(0,0,0,.2);-moz-box-shadow:4px 0 2px rgba(0,0,0,.2),-1px 0 2px rgba(0,0,0,.2);box-shadow:4px 0 2px rgba(0,0,0,.2),-1px 0 2px rgba(0,0,0,.2)}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #directory-menu{overflow:visible}}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:column;-webkit-flex-flow:column;flex-flow:column;width:100%;height:100%}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .menu-top-image{width:100%}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header{width:100%;z-index:50;position:relative;-webkit-transition:all .5s;-moz-transition:all .5s;-o-transition:all .5s;-ms-transition:all .5s;transition:all .5s}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container{overflow:scroll}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-container{display:none}}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .btn-close-menu.large-screen{position:absolute;right:0;top:0;width:24px;bottom:0;-webkit-flex-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:none}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .btn-close-menu.large-screen .arrow-left{font-size:12px;padding-left:5px;transform:scaleY(1.8)}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .subheader{position:relative}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .subheader .btn-close{position:absolute;margin:0;right:0;top:7px;padding:0 1rem;z-index:50}@media (min-width:850px){.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header{width:calc(100% + 12px);border-radius:0 0 5px;padding-right:15px}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .btn-close-menu.large-screen{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .btn-close-menu.small-screen{display:none}}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .shadow-bottom{bottom:-8px;border-top:none;width:calc(100% - 12px)}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-content{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;position:relative;height:100px}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-content #directory-menu-spinner-loader{top:40%;left:40%;position:absolute;display:none}.gogo-load-css .gogocarto-container #directory-menu .btn-close-menu.small-screen{text-transform:uppercase;width:100%;border-radius:0;text-align:center;line-height:2.5rem;z-index:10;box-shadow:1px -2px 11px 2px rgba(0,0,0,.25)}@media (min-width:850px){.gogo-load-css .gogocarto-container #directory-menu .btn-close-menu.small-screen{display:none}.gogo-load-css .gogocarto-container .directory-menu-drag-target{display:none!important}}.gogo-load-css .gogocarto-container #directory-menu-overlay{display:none;position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);z-index:997;will-change:opacity}@media (min-width:850px){.gogo-load-css .gogocarto-container #directory-menu-overlay{display:none!important}}.gogo-load-css .gogocarto-container .directory-menu-drag-target{height:100%;width:20px;position:fixed;top:0;z-index:999}.gogo-load-css .gogocarto-container .cluster{z-index:2}.gogo-load-css .gogocarto-container .icon{font-size:1.4rem;padding-top:3px;float:left;margin-right:1rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container .icon{padding-top:2px}}.gogo-load-css .gogocarto-container .icon.disabled{color:#DFDFDF}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.fa,.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.fab,.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.far,.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.fas{font-size:1.2rem}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.fa:before,.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.fab:before,.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.far:before,.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.fas:before{position:relative;left:0;top:0}.gogo-load-css .gogocarto-container .icon.fa,.gogo-load-css .gogocarto-container .icon.fab,.gogo-load-css .gogocarto-container .icon.far,.gogo-load-css .gogocarto-container .icon.fas{padding-top:.5rem;font-size:1.3rem}.gogo-load-css .gogocarto-container .element-main-icon.icon.fa,.gogo-load-css .gogocarto-container .element-main-icon.icon.fab,.gogo-load-css .gogocarto-container .element-main-icon.icon.far,.gogo-load-css .gogocarto-container .element-main-icon.icon.fas{padding-top:4px}.gogo-load-css .gogocarto-container .marker-icon.fa,.gogo-load-css .gogocarto-container .marker-icon.fab,.gogo-load-css .gogocarto-container .marker-icon.far,.gogo-load-css .gogocarto-container .marker-icon.fas{padding-top:0}.gogo-load-css .gogocarto-container .filter-menu .icon.fa,.gogo-load-css .gogocarto-container .filter-menu .icon.fab,.gogo-load-css .gogocarto-container .filter-menu .icon.far,.gogo-load-css .gogocarto-container .filter-menu .icon.fas{padding-top:.7rem;width:1.5rem;font-size:1.2rem}.gogo-load-css .gogocarto-container .filter-menu .icon{text-align:center}.gogo-load-css .gogocarto-container .marker-location-position.leaflet-marker-icon{border-radius:50%;border:1px solid #fff;width:14px;height:14px}.gogo-load-css .gogocarto-container .leaflet-marker-container{width:0!important;height:0!important;margin:0!important;--angle:0}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-container{transform-origin:bottom;transform:scale(var(--size))}.gogo-load-css .gogocarto-container .leaflet-marker-container:hover{z-index:10000000!important}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-popup{--factor:clamp(0.9, 1 / var(--size), 1.5);position:absolute;white-space:nowrap;height:auto;line-height:calc(1.5rem * var(--factor));font-size:calc(1rem * var(--factor));border-radius:calc(5px * var(--factor));padding:calc(5px * var(--factor)) calc(10px * var(--factor));bottom:50px;margin-bottom:6px;left:-25px}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-popup p{margin:0}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper{position:absolute;z-index:1;height:50px;width:50px;bottom:0;left:-25px;font-size:50px;line-height:50px;transform:scale(.8) rotate(var(--angle));transform-origin:bottom;opacity:.99}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper.disabled{color:grey!important}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper:hover{cursor:pointer}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper.big-size{transform:scale(1) rotate(var(--angle))}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper .marker-shape{position:absolute;top:0;left:0;height:100%;width:100%;text-align:center;transform-origin:bottom;transform:scale(var(--shape-size))}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper .marker-shape.fa-heart{top:2px}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper .marker-shape.fa-bolt{left:3px}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper .marker-shadow{position:absolute;background-image:url(images/marker-shadow.png);background-position:12px 8px;background-repeat:no-repeat;width:60px;height:50px}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper .marker-shadow.for-url{background-position:14px 8px}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper .main-icon-wrapper{transform:translateY(4px);margin:0 auto;background:0 0}.gogo-load-css .gogocarto-container .leaflet-marker-container .main-icon-wrapper,.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icon-wrapper{text-align:center;width:32px;height:32px;font-size:22px;line-height:34px;border-radius:50%;display:flex;justify-content:center;align-items:center}.gogo-load-css .gogocarto-container .leaflet-marker-container .main-icon-wrapper.gogo-color-as,.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icon-wrapper.gogo-color-as{background-color:#efededf2;font-size:22px}.gogo-load-css .gogocarto-container .leaflet-marker-container .main-icon-wrapper .marker-icon,.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icon-wrapper .marker-icon{display:flex;justify-content:center;align-items:center;width:100%;height:100%}.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icons-wrapper{display:none;align-items:center;position:absolute;bottom:8px;left:25px}.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icons-wrapper .other-icon-wrapper{display:inline-flex;box-sizing:content-box;margin-left:-3px;padding:1px;border-width:5px;border-style:solid;transform:scale(.8)}.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icons-wrapper .other-icon-wrapper.gogo-color-as.disabled{border-color:#abaaaa;color:#abaaaa;background-color:#e0e0e0}.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icons-wrapper .other-icon-wrapper.gogo-bg-color-as{filter:drop-shadow(7px -2px 10px #aaa)}.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icons-wrapper .other-icon-wrapper.gogo-bg-color-as.disabled{border-color:#d0c8c8;background-color:#d0c8c8}.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icons-wrapper .other-icon-wrapper.gogo-bg-color-as.disabled .marker-icon{color:#949494}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=heart] .other-icons-wrapper{margin-left:4px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-egg] .other-icons-wrapper,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-flower] .other-icons-wrapper{margin-left:8px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-animal] .gogo-icon-plus-circle{top:-18px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-animal] .marker-popup{bottom:53px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-egg] .marker-popup,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-flower] .marker-popup{bottom:55px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-egg] .gogo-icon-plus-circle{top:-18px;right:-5px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hair] .other-icons-wrapper,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hair-2] .other-icons-wrapper,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-flower] .other-icons-wrapper,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-heart] .other-icons-wrapper{margin-left:5px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hair] .gogo-icon-plus-circle{top:-12px;right:-6px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hair] .marker-popup{bottom:54px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hair-2] .marker-popup,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hat-2] .marker-popup{bottom:58px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hair-2] .gogo-icon-plus-circle{top:-6px;right:-7px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hat] .gogo-icon-plus-circle{top:-4px;right:-6px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hat-2] .gogo-icon-plus-circle{top:-8px;right:-5px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-flower] .gogo-icon-plus-circle{top:-16px;right:-8px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-flower] .marker-popup{bottom:60px;left:-32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-hand] .gogo-icon-plus-circle{top:-30px;right:8px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-hand] .marker-popup{bottom:57px;left:-30px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-heart] .gogo-icon-plus-circle{top:-18px;right:-9px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-heart] .marker-popup{bottom:58px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-hotairballoon] .gogo-icon-plus-circle{top:-25px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-hotairballoon] .marker-popup{bottom:60px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-hotairballoon] .other-icons-wrapper{bottom:18px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-lollipop] .gogo-icon-plus-circle{top:-14px;right:-3px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-mushroom] .gogo-icon-plus-circle{top:-24px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-mushroom] .marker-popup{bottom:58px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-mushroom] .other-icons-wrapper{bottom:16px;left:28px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-tree] .marker-popup{bottom:60px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-crest] .other-icons-wrapper{bottom:4px;left:28px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-diamond] .gogo-icon-plus-circle{top:-10px;right:-6px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-diamond] .marker-popup{bottom:60px;left:-30px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-diamond] .other-icons-wrapper{bottom:15px;left:30px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-eye] .gogo-icon-plus-circle{top:3px;right:-16px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-eye] .marker-popup{bottom:42px;left:-35px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-eye] .other-icons-wrapper{margin-left:15px;bottom:3px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-flower] .gogo-icon-plus-circle{top:-32px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-flower] .marker-popup{bottom:67px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-flower] .other-icons-wrapper{bottom:28px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-flower-2] .gogo-icon-plus-circle{top:-16px;right:-1px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-hotairballoon] .marker-shadow{opacity:.5}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-leaf] .gogo-icon-plus-circle{top:-6px;right:-3px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-leaf] .marker-popup{bottom:44px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-leaf] .other-icons-wrapper{left:35px;bottom:2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-mushroom] .gogo-icon-plus-circle{top:-20px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-mushroom] .marker-popup{bottom:55px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-mushroom] .other-icons-wrapper{bottom:15px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-panel] .gogo-icon-plus-circle{top:-25px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-panel] .marker-popup{bottom:60px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-panel] .other-icons-wrapper{bottom:17px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round] .gogo-icon-plus-circle{top:-17px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round] .marker-popup{bottom:55px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round] .other-icons-wrapper{bottom:14px;left:23px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round] .marker-shadow{opacity:.5}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round-2] .gogo-icon-plus-circle{top:-17px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-square-2] .gogo-icon-plus-circle,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-star] .gogo-icon-plus-circle{top:-16px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round-2] .marker-popup{bottom:55px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round-2] .other-icons-wrapper{bottom:14px;left:23px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round-2] .marker-shadow{opacity:.5}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-square] .other-icons-wrapper{bottom:4px;margin-left:5px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-square-2] .marker-popup{bottom:55px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-square-2] .other-icons-wrapper{bottom:10px;margin-left:8px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-star] .marker-popup{bottom:55px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-star] .other-icons-wrapper{bottom:14px;left:32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-triangle] .gogo-icon-plus-circle{top:-6px;right:-7px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-triangle] .marker-popup{bottom:45px;left:-32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-triangle] .other-icons-wrapper{bottom:6px;left:32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-triangleball] .gogo-icon-plus-circle{top:-18px;right:-8px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-triangleball] .marker-popup{bottom:57px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-triangleball] .other-icons-wrapper{bottom:18px;left:28px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-star] .gogo-icon-plus-circle{top:-14px;right:-8px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-star] .marker-popup{bottom:60px;left:-32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-star] .other-icons-wrapper{left:32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-cloud] .gogo-icon-plus-circle{top:-14px;right:-5px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-cloud] .marker-popup{bottom:54px;left:-32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-cloud] .other-icons-wrapper{left:36px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-mountain] .gogo-icon-plus-circle{right:-10px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-mountain] .marker-popup{bottom:57px;left:-32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-mountain] .other-icons-wrapper{left:34px}.gogo-load-css .gogocarto-container .leaflet-marker-container .gogo-icon-plus-circle{position:absolute;z-index:3;font-size:20px;top:-12px;right:0}.gogo-load-css .gogocarto-container .leaflet-marker-container .gogo-icon-plus-circle:before{border-radius:50%;background-color:#efededf2}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-mini-icon-container{position:absolute;top:0;z-index:3;left:-5px;color:#efededf2;display:flex;flex-direction:column;justify-content:flex-start}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-mini-icon-container .marker-mini-icon{display:inline-flex;margin-bottom:1px}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-mini-icon-container .marker-mini-icon:before{border-radius:50%;background-color:#ff8f00;width:19px;height:19px;display:flex;align-items:center;justify-content:center;font-size:14px;border:1.5px solid}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-mini-icon-container .marker-mini-icon.gogo-icon-stamp-2:before{font-size:11px}.gogo-load-css .gogocarto-container .leaflet-marker-container .rotate{transform-origin:bottom}.gogo-load-css .gogocarto-container .leaflet-marker-container .rotate-reverse{transform:rotate(calc(-1 * var(--angle)))}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateLeft{--angle:-45deg}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateLeft .marker-popup{bottom:42px;left:-50px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateLeft .other-icons-wrapper{bottom:0;left:5px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateRight{--angle:45deg}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateRight .marker-popup{bottom:42px;left:-5px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateRight .other-icons-wrapper{bottom:0;left:45px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateSoftLeft{--angle:-25deg}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateSoftLeft .marker-popup{bottom:47px;left:-42px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateSoftLeft .other-icons-wrapper{bottom:4px;left:12px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateSoftRight{--angle:25deg}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateSoftRight .marker-popup{bottom:47px;left:-15px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateSoftRight .other-icons-wrapper{bottom:4px;left:37px}.gogo-load-css .gogocarto-container .marker-cluster div{margin-left:5px;margin-top:5px;text-align:center;border-radius:50%;font-size:13px;font-weight:600;color:#fff;box-shadow:4px -2px 5px 0 rgba(167,167,167,.56)}.gogo-load-css .gogocarto-container .marker-cluster.halfHidden{opacity:.6!important}.gogo-load-css .gogocarto-container .marker-cluster.marker-cluster-small div{background-color:rgba(243,165,48,.88);width:34px;height:34px}.gogo-load-css .gogocarto-container .marker-cluster.marker-cluster-small div span{line-height:34px}.gogo-load-css .gogocarto-container .marker-cluster.marker-cluster-medium div{background-color:rgba(235,123,45,.92);width:38px;height:38px}.gogo-load-css .gogocarto-container .marker-cluster.marker-cluster-medium div span{line-height:38px}.gogo-load-css .gogocarto-container .marker-cluster.marker-cluster-large div{background-color:rgba(210,77,26,.88);width:44px;height:44px}.gogo-load-css .gogocarto-container .marker-cluster.marker-cluster-large div span{line-height:44px}.gogo-load-css .gogocarto-container a.leaflet-control-zoom-in{font-size:18px!important}.gogo-load-css .gogocarto-container a.leaflet-control-zoom-out{font-size:25px!important;font-weight:400;text-indent:0}.gogo-load-css .gogocarto-container .leaflet-control-zoom.leaflet-bar.leaflet-control{margin-right:22px;margin-top:20px;border:none;-webkit-box-shadow:0 2px 6px rgba(0,0,0,.3);-moz-box-shadow:0 2px 6px rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.3)}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container .leaflet-control-zoom.leaflet-bar.leaflet-control{display:none}}.gogo-load-css .gogocarto-container .leaflet-control-zoom.leaflet-bar.leaflet-control a{background-color:inherit!important}.gogo-load-css .gogocarto-container #map-gogo-controls{display:none}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #map-gogo-controls{display:block;position:absolute;z-index:500;left:15px;top:12px}}.gogo-load-css .gogocarto-container .show-directory-menu-button{left:15px}.gogo-load-css .gogocarto-container .show-directory-menu-button .arrow-right{display:inline-block;border:8px solid;border-color:transparent transparent transparent #eee}.gogo-load-css .gogocarto-container .show-directory-menu-button img{height:35px;margin-right:5px;display:none}.gogo-load-css .gogocarto-container .show-directory-menu-button i{margin-right:5px!important}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container .show-as-list-button .button-text{display:none}}.gogo-load-css .gogocarto-container .gogo-map-control{margin-right:15px;display:inline-block;line-height:1.5;font-weight:400;font-size:14px!important;padding:5px 10px;-webkit-box-shadow:2px 3px 1px rgba(0,0,0,.25);-moz-box-shadow:2px 3px 1px rgba(0,0,0,.25);box-shadow:2px 3px 1px rgba(0,0,0,.25);text-align:center;border-radius:5px}.gogo-load-css .gogocarto-container .gogo-map-control:hover{cursor:pointer}.gogo-load-css .gogocarto-container .gogo-map-control i{font-size:1rem;float:left;line-height:0;padding-top:3px;margin-right:10px}.gogo-load-css .gogocarto-container .gogo-map-control i.gogo-icon-angle-right{padding-top:2px}.gogo-load-css .gogocarto-container #map-features-buttons{position:absolute;top:20px;z-index:500;right:20px;width:50px}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #map-features-buttons{width:33px;top:100px}}.gogo-load-css .gogocarto-container #mobile-filters-icon img{width:35px;height:35px;object-fit:contain;margin-top:7px;display:none}.gogo-load-css .gogocarto-container .feature-button{position:relative;margin-bottom:13px;text-align:center;width:50px;border-radius:50%;height:50px;border:none;-webkit-box-shadow:0 2px 6px rgba(0,0,0,.3);-moz-box-shadow:0 2px 6px rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.3)}.gogo-load-css .gogocarto-container .feature-button i{font-size:22px;line-height:55px}.gogo-load-css .gogocarto-container .feature-button i.gogo-icon-list{font-size:18px}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .feature-button{width:33px;height:33px;border-radius:4px}.gogo-load-css .gogocarto-container .feature-button i{font-size:18px;line-height:39px}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button{left:.5rem}}.gogo-load-css .gogocarto-container .feature-button#close-layers-panel{z-index:10000;background-color:transparent;color:#888}.gogo-load-css .gogocarto-container .feature-button#close-layers-panel:hover{background-color:transparent;color:#616161}.gogo-load-css .gogocarto-container .feature-button#close-layers-panel i{font-size:16px;line-height:44px;margin-left:2px}.gogo-load-css .gogocarto-container .feature-button#map-default-view-btn i{font-size:14px}@media screen and (max-width:600px){.gogo-load-css .gogocarto-container .feature-button#change-layers,.gogo-load-css .gogocarto-container .feature-button#export-iframe-btn,.gogo-load-css .gogocarto-container .feature-button#map-default-view-btn{display:none}}@media screen and (min-width:600px){.gogo-load-css .gogocarto-container .feature-button#geolocalize-btn{display:none}}.gogo-load-css .gogocarto-container .leaflet-control-layers-toggle{display:none}.gogo-load-css .gogocarto-container .leaflet-control-layers{padding:0!important;display:none;position:relative;z-index:600;margin-right:19px!important;margin-top:15px!important;border:none;-webkit-box-shadow:0 2px 6px rgba(0,0,0,.3);-moz-box-shadow:0 2px 6px rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.3)}.gogo-load-css .gogocarto-container .leaflet-control-layers-list{display:block!important;padding:3px 0;position:relative!important}.gogo-load-css .gogocarto-container .leaflet-control-layers-selector:checked+span{font-weight:700}.gogo-load-css .gogocarto-container .leaflet-control-layers-base label{text-transform:uppercase;line-height:1.4rem;border-bottom:1px dashed #ccc;padding:4px 15px 0}.gogo-load-css .gogocarto-container .leaflet-control-layers-base label:hover{cursor:pointer}.gogo-load-css .gogocarto-container .leaflet-control-layers-base label:last-child{border:none}.gogo-load-css .gogocarto-container #element-info-bar{height:0;z-index:600;position:absolute;will-change:height;-webkit-box-shadow:0 -8px 8px -5px rgba(173,173,173,.75);-moz-box-shadow:0 -8px 8px -5px rgba(173,173,173,.75);box-shadow:0 -8px 8px -5px rgba(173,173,173,.75)}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom{right:0!important;bottom:0!important;width:100%}.gogo-load-css .gogocarto-container #element-info-bar.display-aside{top:0;right:0;height:100%!important;-webkit-transition:top .5s;-moz-transition:top .5s;-o-transition:top .5s;-ms-transition:top .5s;transition:top .5s;overflow-y:visible;-webkit-box-shadow:0 6px 9px 2px rgba(119,119,119,.75);-moz-box-shadow:0 6px 9px 2px rgba(119,119,119,.75);box-shadow:0 6px 9px 2px rgba(119,119,119,.75)}.gogo-load-css .gogocarto-container #element-info-bar.display-aside.with-search-result-header{top:3rem;height:calc(100% - 3rem)!important}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-main-icon,.gogo-load-css .gogocarto-container #element-info-bar.display-aside .star-names-icons{display:none!important}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .gogo-icon-close{padding-left:1rem}.gogo-load-css .gogocarto-container #element-info-bar.display-aside #element-info .moreDetails{display:block!important}.gogo-load-css .gogocarto-container #element-info-bar.display-aside #element-info .moreDetails.tabs{display:flex!important}.gogo-load-css .gogocarto-container #element-info-bar.display-aside #element-info .hideOnLargeScreen{display:none!important}.gogo-load-css .gogocarto-container #element-info-bar .element-item .element-main-icon{display:none}.gogo-load-css .gogocarto-container #directory-content-list .element-item,.gogo-load-css .gogocarto-container #element-info-bar .element-item .star-names-icons,.gogo-load-css .gogocarto-container #element-info-bar.inside-normal-mode .element-main-icon{display:block}.gogo-load-css .gogocarto-container #element-info-bar #element-info .moreDetails,.gogo-load-css .gogocarto-container #element-info-bar.inside-normal-mode .star-names-icons{display:none}.gogo-load-css .gogocarto-container #element-info-bar .gogo-icon-close{float:right;margin:-.9rem -1.5rem -1rem 0;font-size:1.2rem;padding:1rem 1.5rem}.gogo-load-css .gogocarto-container #element-info-bar .gogo-icon-close:hover{cursor:pointer}.gogo-load-css .gogocarto-container #directory-content-map{position:relative;z-index:10;-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;-webkit-box-shadow:inset 0 5px 5px 0 rgba(119,119,119,.75);-moz-box-shadow:inset 0 5px 5px 0 rgba(119,119,119,.75);box-shadow:inset 0 5px 5px 0 rgba(119,119,119,.75)}.gogo-load-css .gogocarto-container .leaflet-container{font:inherit}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header{display:flex;position:relative;width:100%;line-height:3.5rem;text-align:right;padding:0 1rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #directory-content-list .element-list-header{display:none!important}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button .button-text{display:none}}@media (min-width:900px){.gogo-load-css .gogocarto-container #directory-content-list .element-list-header{padding-left:3rem;padding-right:calc(3rem + 20px)}}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header #list-title-shadow-bottom{display:none}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button{float:left;z-index:200;height:100%;text-decoration:underline}@media only screen and (min-width:1201px){.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button{left:9rem!important}}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button:hover{cursor:pointer}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button .btn-back{color:inherit!important;height:2rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-directory-menu-button{display:none!important}}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button{left:2rem}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-directory-menu-button{display:block;float:left;position:relative;margin-right:2rem;margin-left:-1rem;width:auto;top:.6rem}}@media (min-width:1500px){.gogo-load-css .gogocarto-container #directory-content-list .element-list-header{padding-left:10rem;padding-right:calc(10rem + 20px)}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-directory-menu-button{position:absolute;top:12px;left:15px;margin-left:0;bottom:initial;width:auto}}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .location-range{flex:1 auto;margin:0 1rem;align-self:center;display:flex}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .location-range .range-title{font-weight:700;margin-left:1rem}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .location-range .range-end,.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .location-range .range-start{display:none}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .location-range #location-slider{flex:1 auto;align-self:center;margin:0 1.5rem 0 1rem}.gogo-load-css .gogocarto-container .no-result-message img{margin-top:1rem;width:350px;padding:0 2rem;border-radius:100px}.gogo-load-css .gogocarto-container #directory-content-list{display:none;z-index:650;-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;width:100%;overflow:auto;border-left:none;height:100%}.gogo-load-css .gogocarto-container #directory-content-list .title-separator{text-align:center;text-transform:uppercase;font-size:1.1rem;font-weight:700;margin:1.5rem 0}.gogo-load-css .gogocarto-container #directory-content-list .elements-container{position:relative;padding-bottom:100px;height:100%;width:100%;overflow-y:scroll;margin:0;padding-left:0;padding-right:0}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #directory-content-list .elements-container{height:calc(100% - 3.5rem)}}@media only screen and (min-width:901px){.gogo-load-css .gogocarto-container #directory-content-list .elements-container{padding-left:3rem;padding-right:3rem}}@media (min-width:1500px){.gogo-load-css .gogocarto-container #directory-content-list .elements-container{padding-left:10rem;padding-right:10rem}}.gogo-load-css .gogocarto-container #directory-content-list .elements-container.custom-scroll-bar::-webkit-scrollbar{width:14px}.gogo-load-css .gogocarto-container #directory-content-list .elements-container .bottom-gradient{position:fixed;height:5rem;bottom:0;width:100%;z-index:700}.gogo-load-css .gogocarto-container #directory-content-list .elements-container .no-result-message{text-align:center;margin-top:3rem}.gogo-load-css .gogocarto-container #directory-content-list .element-item .gogo-icon-close{display:none}.gogo-load-css .gogocarto-container #directory-content-list .element-item .distance{margin-right:0;margin-left:6px}.gogo-load-css .gogocarto-container #directory-content-list .element-item .location{float:right;margin-left:1rem}.gogo-load-css .gogocarto-container #directory-content-list .element-item .location .icon-address{font-size:.8rem;margin-right:4px}.gogo-load-css .gogocarto-container #directory-content-list .element-item .location .postalCode{font-size:.95rem}.gogo-load-css .gogocarto-container #directory-content-list .element-item .expand-label{background-color:transparent!important}.gogo-load-css .gogocarto-container #directory-content-list .element-item .collapsible-header .header-content{padding-left:.5rem;padding-right:.5rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #directory-content-list .element-item .collapsible-header{padding-left:.8rem;padding-right:.8rem;padding-top:5px}}.gogo-load-css .gogocarto-container #directory-content-list .collapsible.popout,.gogo-load-css .gogocarto-container #directory-content-list .collapsible.popout>li{margin:0}.gogo-load-css .gogocarto-container #directory-content-list .collapsible.popout>li.active{margin:1rem 0}.gogo-load-css .gogocarto-container #directory-content-list .collapsible.popout>li.active .collapsible-header{border-bottom:0}.gogo-load-css .gogocarto-container #directory-content-list .spinner-loader{-webkit-box-ordinal-group:1000000;-moz-box-ordinal-group:1000000;-ms-flex-order:1000000;-webkit-order:1000000;order:1000000}.gogo-load-css .gogocarto-container #directory-content-list .info-bar-tabs,.gogo-load-css .gogocarto-container #directory-content-list .menu-element{position:relative;display:none}.gogo-load-css .gogocarto-container #directory-content-list .element-item.active .info-bar-tabs,.gogo-load-css .gogocarto-container #directory-content-list .element-item.active .menu-element{display:flex}.gogo-load-css .gogocarto-container #directory-content-list .img-overlay{max-height:20rem;overflow:hidden}.gogo-load-css .gogocarto-container #directory-content-list .img-container{max-height:20rem}.gogo-load-css .gogocarto-container #gogo-controls-mobile{position:absolute;z-index:900;left:15px;top:15px;right:0}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #gogo-controls-mobile{display:none!important}}.gogo-load-css .gogocarto-container #gogo-controls-mobile .feature-button{display:inline-block;margin-right:15px}.gogo-load-css .gogocarto-container #gogo-controls-mobile .feature-button.gogo-bg-primary{color:#fff}.gogo-load-css .gogocarto-container #gogo-controls-mobile .feature-button.show-as-list-button,.gogo-load-css .gogocarto-container #gogo-controls-mobile .feature-button.show-as-map-button{float:right;display:none}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #gogo-controls-mobile{display:none}}.gogo-load-css .gogocarto-container #gogo-controls-mobile.list .show-as-map-button,.gogo-load-css .gogocarto-container #gogo-controls-mobile.map .show-as-list-button{display:block}.gogo-load-css .gogocarto-container #gogo-controls-mobile.list .feature-button{-webkit-box-shadow:1px 2px 8px 1px rgba(0,0,0,.4);-moz-box-shadow:1px 2px 8px 1px rgba(0,0,0,.4);box-shadow:1px 2px 8px 1px rgba(0,0,0,.4)}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile{display:none;z-index:10;position:relative;margin:15px;border-radius:3px;padding:0;-webkit-box-shadow:0 2px 6px rgba(0,0,0,.3);-moz-box-shadow:0 2px 6px rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.3)}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-bar-container{height:52px;padding:0}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-bar{height:100%;padding:0 4rem}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-icon{font-size:22px;line-height:57px;height:56px;width:56px}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-icon.search-bar-icon{left:-2px}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-icon.search-geolocalize{right:0;font-size:24px!important}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-bar-icon{left:3px}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-geolocalize{right:5px;font-size:24px!important}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile #search-spinner-loader{margin-left:5px;top:17px;left:12px}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-no-result{color:inherit;font-size:13px;padding-top:1rem}.gogo-load-css .gogocarto-container #search-overlay-mobile{display:none;position:absolute;top:0;left:0;right:0;bottom:0;z-index:1000}.gogo-load-css .gogocarto-container #search-overlay-mobile .overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;background-color:rgba(0,0,0,.5)}.gogo-load-css .gogocarto-container .search-results{background-color:rgba(0,0,0,.4);position:relative;line-height:3rem;top:0;z-index:600;width:100%;padding:0 0 0 10px;-webkit-transition:background-color .5s;-moz-transition:background-color .5s;-o-transition:background-color .5s;-ms-transition:background-color .5s;transition:background-color .5s}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .search-results{position:relative;padding-left:28px}}.gogo-load-css .gogocarto-container .search-results .btn-close{position:absolute;margin:0;right:0;top:3px;padding:0 1rem;z-index:50;color:#fff}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .search-results .btn-close{right:12px}}.gogo-load-css .gogocarto-container .search-results .btn-close:hover{color:#fff;cursor:pointer}.gogo-load-css .gogocarto-container .search-results .search-result-label{color:#fff;font-weight:700}.gogo-load-css .gogocarto-container .search-results .search-result-value{font-style:italic}.gogo-load-css .gogocarto-container .search-bar-with-options-container{padding:.6rem 0 .7rem}.gogo-load-css .gogocarto-container .search-bar-with-options-container .search-no-result{color:#fff;padding-top:.7rem;text-decoration:underline;text-align:center;font-weight:700}.gogo-load-css .gogocarto-container .search-bar-container{padding:0 .7rem;text-align:center;margin:0}.gogo-load-css .gogocarto-container .search-bar-container .search-icon{position:absolute;font-size:1.2rem;height:2rem;line-height:2rem}.gogo-load-css .gogocarto-container .search-bar-container .search-icon:before{line-height:2rem}.gogo-load-css .gogocarto-container .search-bar-container .search-icon:hover{cursor:pointer}.gogo-load-css .gogocarto-container .search-bar-container .search-icon.search-bar-icon{left:1.2rem}.gogo-load-css .gogocarto-container .search-bar-container .search-icon.search-geolocalize{right:1.4rem}.gogo-load-css .gogocarto-container .search-bar-container .search-bar{font-size:16px;padding:0 2.2rem 0 2.3rem;box-shadow:none!important;margin:0;text-align:left;font-weight:700;height:2rem;width:100%;border:none!important;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (min-width:850px){.gogo-load-css .gogocarto-container .search-bar-container .search-bar{text-transform:uppercase;font-size:.8rem}}.gogo-load-css .gogocarto-container .search-bar-container .search-bar.invalid{border-color:#B90303!important}.gogo-load-css .gogocarto-container .search-bar-container .search-bar::-webkit-input-placeholder{color:#949494}.gogo-load-css .gogocarto-container .search-bar-container .search-bar::-moz-placeholder{color:#949494}.gogo-load-css .gogocarto-container .search-bar-container .search-bar:-ms-input-placeholder{color:#949494}.gogo-load-css .gogocarto-container .search-bar-container .search-bar:-moz-placeholder{color:#949494}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container{position:absolute;z-index:5;padding:.5rem 0;left:0!important;top:auto!important;margin-top:.5rem;width:400px;max-width:100vw;box-shadow:0 0 0 1px rgba(99,114,130,.16),0 8px 16px rgba(27,39,51,.08);border-radius:0 4px 4px;max-height:80vh;overflow:auto}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item{cursor:pointer}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.option .icon::before{float:left}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper{padding:.7rem 1rem;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-wrap:nowrap;-moz-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;text-align:left}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper.ui-state-active,.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper:hover{background-color:rgba(125,125,125,.08)}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper.nested{padding-left:1rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .label{-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .subLabel{text-align:right;opacity:.8;font-size:.85rem;width:7.5rem;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .icon{padding:0;margin-right:0!important;font-size:1.1rem;width:2rem;flex-shrink:0}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .category-label{opacity:.9;font-size:.9rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .category-name{font-style:italic;font-size:.9rem;font-weight:700;margin-left:.3rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .element-name{font-size:.9rem;font-weight:700;font-style:italic}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .search-term{margin:0 3px}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .search-term:after,.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .search-term:before{content:'"'}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item+.search_elements,.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.geocoded+.option,.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.search_geocoded+.option{border-top:1px solid #eee;padding-top:.3rem;margin-top:.3rem}.gogo-load-css .gogocarto-container #search-spinner-loader .circle-clipper .circle,.gogo-load-css .gogocarto-container .modal.action-modal .cancel-btn .preloader-wrapper .circle-clipper .circle{border-width:2px}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.search_elements .label,.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.search_geocoded .label{text-transform:uppercase;font-weight:700;font-size:.8rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.search_elements{padding-top:.6rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.search_elements .icon{line-height:1rem;opacity:.9;font-size:1rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.geocoded .label{font-size:.9rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.geocoded .icon{line-height:.9rem;opacity:.9}.gogo-load-css .gogocarto-container #search-spinner-loader{top:7px;height:18px;width:18px;display:none;position:absolute;left:0}.gogo-load-css .gogocarto-container #search-spinner-loader .spinner-layer{border-color:#5d5d5d}.gogo-load-css .gogocarto-container .search-bar-icon.loading:before{content:none}.gogo-load-css .gogocarto-container .search-bar-icon.loading #search-spinner-loader{display:block}.gogo-load-css .gogocarto-container .element-item{list-style-type:none;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:column nowrap;-webkit-flex-flow:column nowrap;flex-flow:column nowrap}.gogo-load-css .gogocarto-container .element-item #element-info-bar.display-aside .menu-element{height:auto}.gogo-load-css .gogocarto-container .element-item .menu-element{z-index:10;position:absolute;bottom:0;width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.gogo-load-css .gogocarto-container .element-item .menu-element .gogo-icon-star-full{color:#ff8f00}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item{margin:0 1rem;height:2.7rem;display:flex;align-items:center}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item a{color:inherit;display:flex;align-items:center}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item .menu-icon{font-size:20px;display:flex;margin-bottom:2px}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item .menu-icon.small-icon{font-size:18px}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item .menu-icon{font-size:22px}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item .menu-icon.small-icon{font-size:20px}}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-stamp.filled{color:#ff8f00;font-weight:700}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.hidden{display:none}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-subscribe-element #subscriber-loader,.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-unsubscribe-element #unsubscriber-loader{display:none;width:22px;height:22px}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-subscribe-element #subscriber-loader .spinner-layer,.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-unsubscribe-element #unsubscriber-loader .spinner-layer{opacity:.5;border-color:#fff}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-unsubscribe-element #unsubscriber-loader .spinner-layer{border-color:#ff8f00}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-unsubscribe-element:not(.hidden){color:#ff8f00}.gogo-load-css .gogocarto-container .element-item .menu-element:not(.full-text) .menu-element-item-text{display:none}.gogo-load-css .gogocarto-container .element-item .menu-element.full-text{padding:.4rem 0 .7rem}.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item{margin:0 10px -.5rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container .element-item .menu-element.full-text{padding-top:0}.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item{margin:0 6px -.9rem}}@media (min-width:1400px){.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item{margin:0 .8rem -.5rem}}.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item .menu-element-item-text{display:inline;text-transform:uppercase;font-size:.75rem;margin-left:.5rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item .menu-element-item-text{font-size:10px}}@media (min-width:1400px){.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item .menu-element-item-text{font-size:.8rem}}.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item .menu-element-item-text.favorite{color:#ff8f00;font-weight:700}.gogo-load-css .gogocarto-container .element-item .interactive-section{padding:0 1rem 0 .8rem;position:relative;line-height:3rem}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .element-item .interactive-section{padding:0 1rem 0 1.6rem}}.gogo-load-css .gogocarto-container .element-item .interactive-section>div{position:relative}.gogo-load-css .gogocarto-container .element-item .interactive-section .result-message{text-align:center;font-weight:700;color:#fff;line-height:1.7rem;padding:.6rem 0}.gogo-load-css .gogocarto-container .element-item #directory-content-list .interactive-section{display:none}.gogo-load-css .gogocarto-container .element-item #directory-content-list .element-item.active .interactive-section{display:block}.gogo-load-css .gogocarto-container .element-item .moderation-section .gogo-icon-attention,.gogo-load-css .gogocarto-container .element-item .moderation-section .gogo-icon-moderation,.gogo-load-css .gogocarto-container .element-item .vote-section .gogo-icon-attention,.gogo-load-css .gogocarto-container .element-item .vote-section .gogo-icon-moderation{color:#fff;font-size:20px;padding-top:3px;position:absolute}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container .element-item .moderation-section .gogo-icon-attention,.gogo-load-css .gogocarto-container .element-item .vote-section .gogo-icon-attention{display:none}.gogo-load-css .gogocarto-container .element-item .moderation-section .pending-text,.gogo-load-css .gogocarto-container .element-item .vote-section .pending-text{margin-left:0!important}}@media (max-width:460px){.gogo-load-css .gogocarto-container .element-item .moderation-section .long-text,.gogo-load-css .gogocarto-container .element-item .vote-section .long-text{display:none}}@media (max-width:360px){.gogo-load-css .gogocarto-container .element-item .moderation-section .pending-text,.gogo-load-css .gogocarto-container .element-item .vote-section .pending-text{opacity:0}}.gogo-load-css .gogocarto-container .element-item .moderation-section .text,.gogo-load-css .gogocarto-container .element-item .vote-section .text{margin-left:2.2rem;color:#fff}.gogo-load-css .gogocarto-container .element-item .moderation-section .btn-vote-more-info,.gogo-load-css .gogocarto-container .element-item .vote-section .btn-vote-more-info{line-height:1.2rem;position:absolute;top:14px;right:90px;padding:0;font-size:.85rem;color:#fff}.gogo-load-css .gogocarto-container .element-item .moderation-section .action-btn,.gogo-load-css .gogocarto-container .element-item .vote-section .action-btn{position:absolute;right:0;top:8px;margin:0;background-color:#dedede;color:#272626;font-size:.85rem}.gogo-load-css .gogocarto-container .element-item .moderation-section .moderation-input-comment,.gogo-load-css .gogocarto-container .element-item .vote-section .moderation-input-comment{color:#fff;border-color:#ccc!important;height:2.2rem}.gogo-load-css .gogocarto-container .element-item .moderation-section .moderation-input-comment::-webkit-input-placeholder,.gogo-load-css .gogocarto-container .element-item .vote-section .moderation-input-comment::-webkit-input-placeholder{color:#ccc}.gogo-load-css .gogocarto-container .element-item .moderation-section .moderation-input-comment::-moz-placeholder,.gogo-load-css .gogocarto-container .element-item .vote-section .moderation-input-comment::-moz-placeholder{color:#ccc}.gogo-load-css .gogocarto-container .element-item .moderation-section .moderation-input-comment:-ms-input-placeholder,.gogo-load-css .gogocarto-container .element-item .vote-section .moderation-input-comment:-ms-input-placeholder{color:#ccc}.gogo-load-css .gogocarto-container .element-item .moderation-section .moderation-input-comment:-moz-placeholder,.gogo-load-css .gogocarto-container .element-item .vote-section .moderation-input-comment:-moz-placeholder{color:#ccc}.gogo-load-css .gogocarto-container .element-item .validation-process-info:hover{cursor:help;border-bottom:1px dashed;border-color:inherit;text-decoration:none}.gogo-load-css .gogocarto-container .element-item #element-info-bar.small-width .btn-vote-more-info{display:none}.gogo-load-css .gogocarto-container .element-item .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.gogo-load-css .gogocarto-container .element-item .label-danger{background-color:#d9534f}.gogo-load-css .gogocarto-container .element-item .label-success{background-color:#00a65a}.gogo-load-css .gogocarto-container .element-item .label-default{background-color:#d2d6de;color:#444}.gogo-load-css .gogocarto-container .element-item .contributions{border:none;box-shadow:none;margin-top:0}.gogo-load-css .gogocarto-container .element-item .contributions .contribution-header{color:inherit;background-color:transparent;border:none;box-shadow:none;line-height:2rem;padding:15px 0;border-bottom:1px solid grey}.gogo-load-css .gogocarto-container .element-item .contributions .contribution-header .contribution-status{float:left}.gogo-load-css .gogocarto-container .element-item .contributions .contribution-header .contribution-updated-at{float:right}.gogo-load-css .gogocarto-container .element-item .contributions .contribution-body{color:inherit}.gogo-load-css .gogocarto-container .element-item .info-bar-tabs.tabs .tab a{cursor:pointer}.gogo-load-css .gogocarto-container .element-item .item-container{border-bottom:1px dashed grey;padding-bottom:5px;margin-bottom:5px}.gogo-load-css .gogocarto-container .element-item .vote-report-item{line-height:1.5rem!important}.gogo-load-css .gogocarto-container .element-item .pending-contribution{line-height:1.5rem!important;margin-bottom:0;padding:0}.gogo-load-css .gogocarto-container .element-item .vote-report-comment{font-style:italic}.gogo-load-css .gogocarto-container .element-item .body-admin-tab-content{display:none;padding-right:10px;font-size:.9em}.gogo-load-css .gogocarto-container .element-item .body-admin-tab-content .vote-report-item{padding:0!important}.gogo-load-css .gogocarto-container .element-item .collapsible-header{padding:0;position:relative}.gogo-load-css .gogocarto-container .element-item .collapsible-header i{margin-right:0;padding-left:.3rem}.gogo-load-css .gogocarto-container .element-item .collapsible-header a{text-decoration:underline}.gogo-load-css .gogocarto-container .element-item .collapsible-header .name h1{font-size:inherit;margin:.5rem 0;text-align:inherit;display:inline}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date{position:absolute;left:0;bottom:0;top:0;display:flex;align-items:center;width:100px;text-align:center;font-weight:700;flex-direction:column;justify-content:space-evenly;padding:10px 0}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-component{line-height:1}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-day,.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-month-short,.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-year{display:none}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-number{font-size:1.8rem}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-day-short{opacity:.8;font-size:.9rem}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-month{font-size:.8rem;text-transform:uppercase;opacity:.8}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date+.header-content{margin-left:100px}.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-title{position:relative;margin-bottom:0;overflow:hidden;text-overflow:ellipsis;line-height:2rem;padding:.5rem 0;font-weight:700}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-title{padding:1rem 1rem .5rem}}.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-title .distance{float:right;margin-left:1rem}.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-title .location{display:none}.gogo-load-css .gogocarto-container .element-item .collapsible-header .custom-header{margin-bottom:.5rem}.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-more{line-height:1.5rem;padding:0;margin-bottom:.5rem}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-more{padding:0 1rem}}.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-more .inline-option-values{font-weight:700;font-style:italic;padding-left:0;margin-bottom:.3rem}.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-more .inline-option-values .option-value.disabled{color:#9C9C9C;font-weight:400}.gogo-load-css .gogocarto-container .element-item .collapsible-body{background-color:transparent;padding:0;position:relative;border:none}.gogo-load-css .gogocarto-container .element-item .collapsible-body .collapsible-body-main-content{padding:.8rem;line-height:2rem}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .element-item .collapsible-body .collapsible-body-main-content{padding:1rem}}.gogo-load-css .gogocarto-container .element-item .collapsible-body .osm-url-container{padding:.5rem 1rem;text-align:center;margin-top:-1rem;width:calc(100% + 2rem);margin-left:-1rem}.gogo-load-css .gogocarto-container .element-item .img-container{position:absolute;width:100%;top:0;left:0;right:0;overflow:hidden}.gogo-load-css .gogocarto-container .element-item .img-container .images-carousel{cursor:pointer!important;margin:0}.gogo-load-css .gogocarto-container .element-item .img-container .gogo-img{width:100%;height:auto}.gogo-load-css .gogocarto-container .element-item .img-overlay{position:relative;overflow:hidden}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn{display:none;cursor:pointer!important;height:100%;position:absolute;color:#fff;padding-top:17%!important;width:5rem;-webkit-transition:opacity .5s;-moz-transition:opacity .5s;-o-transition:opacity .5s;-ms-transition:opacity .5s;transition:opacity .5s;opacity:.7}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn:hover{opacity:1}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn.prev{background-image:linear-gradient(to right,rgba(70,70,70,.4) 0,rgba(255,255,255,0) 100%);padding:0 30px 0 .5rem;left:0}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn.prev .icon{left:.6rem}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn.next{background-image:linear-gradient(to left,rgba(70,70,70,.4) 0,rgba(255,255,255,0) 100%);padding:0 .5rem 0 30px;right:0}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn.next .icon{right:.6rem}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn .icon{font-size:3rem;position:absolute;top:calc(50% - 1.5rem);margin:0;text-shadow:0 1px 4px #757575}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-clickable-area{height:100%;position:absolute;left:6rem;right:6rem;cursor:pointer!important}.gogo-load-css .gogocarto-container .element-item .field .field-label{font-weight:600;display:inline}.gogo-load-css .gogocarto-container .element-item .field-textarea{line-height:1.5rem;text-align:justify}.gogo-load-css .gogocarto-container .element-item .field-textarea div{white-space:pre-wrap}.gogo-load-css .gogocarto-container .element-item .show-more{display:inline;text-decoration:underline}.gogo-load-css .gogocarto-container .element-item .show-more:hover{cursor:pointer}.gogo-load-css .gogocarto-container .element-item .field-email .send-mail-btn{font-size:.8rem;margin:.4rem 0 .5rem;line-height:1.8rem;height:1.8rem}.gogo-load-css .gogocarto-container .element-item .field-elements,.gogo-load-css .gogocarto-container .element-item .field-tags{margin-top:.8rem}.gogo-load-css .gogocarto-container .element-item .field-elements .gogo-element,.gogo-load-css .gogocarto-container .element-item .field-elements .gogo-tag,.gogo-load-css .gogocarto-container .element-item .field-tags .gogo-element,.gogo-load-css .gogocarto-container .element-item .field-tags .gogo-tag{margin-right:8px;border-radius:5px;background-color:#dcdcdc;padding:0 10px;display:inline-block;margin-bottom:8px}.gogo-load-css .gogocarto-container .element-item .field-elements .gogo-element:hover,.gogo-load-css .gogocarto-container .element-item .field-tags .gogo-element:hover{cursor:pointer;background-color:#dad9d9}.gogo-load-css .gogocarto-container .element-item .field-openhours .day,.gogo-load-css .gogocarto-container .element-item .field-openhours .openHours{padding-left:0}.gogo-load-css .gogocarto-container .element-item .field-vimeo{position:relative;padding-bottom:65.25%!important;overflow:hidden;max-width:100%;height:auto;margin-top:-1rem}.gogo-load-css .gogocarto-container .element-item .field-vimeo embed,.gogo-load-css .gogocarto-container .element-item .field-vimeo iframe,.gogo-load-css .gogocarto-container .element-item .field-vimeo object{position:absolute;top:0;left:0;width:100%;height:100%}.gogo-load-css .gogocarto-container .element-item .field-updated-at{text-align:center;font-style:italic;opacity:.7;margin-top:1.2rem;padding-bottom:.3rem}.gogo-load-css .gogocarto-container .element-item .other-infos .field{margin-bottom:.5rem}.gogo-load-css .gogocarto-container .element-item .glossary{cursor:help}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-name{padding-top:1rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper+.category-name{padding-top:1.2rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .row+.category-wrapper .category-name{padding-top:.9rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper{margin-top:0!important}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper a.option-url{color:inherit}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .strong{text-decoration:underline}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper:not(:first-child){margin-top:.5rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper{margin-left:.5rem;padding-left:.5rem;border-left:1px dotted #c3c3c3}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .category-wrapper{margin-left:1.2rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper h3.category-name{font-size:90%;padding-bottom:.7rem;padding-top:.7rem;margin-bottom:0}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .strong{text-decoration:none!important}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .inline-container,.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .option-value,.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper h3.category-name{padding-left:.6rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-name.main-option{font-weight:700}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .inline-option{font-style:italic}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .inline-option span.disabled{color:#9C9C9C}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-description{padding:.5rem;font-style:italic;font-size:.9rem;color:#5d5d5d}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-description.disabled{color:#9C9C9C}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value{line-height:2.5rem;padding:0}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value position-relative .icon{font-size:1.2rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value position-relative .icon.disabled{color:#BFBFBF!important}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .icon.fa,.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .icon.fab,.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .icon.far,.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .icon.fas{font-size:1.1rem;padding-top:.8rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value img.icon{height:1.2rem;width:1.2rem;padding-top:0;margin-top:10px;margin-right:.8rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.disabled{color:#9C9C9C!important}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .gogo-icon-external-link{float:right;font-size:.8rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.inline{display:inline-block;padding-left:0}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.inline:not(.last):after{content:",";margin-right:5px;margin-left:-3px}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.inline .icon{display:none}.gogo-load-css .gogocarto-container .element-item h1:not(.element-title),.gogo-load-css .gogocarto-container .element-item h2,.gogo-load-css .gogocarto-container .element-item h3,.gogo-load-css .gogocarto-container .element-item h4,.gogo-load-css .gogocarto-container .element-item h5{font-size:.85rem;text-transform:uppercase;font-weight:600;margin:0 0 1rem;padding:1.5rem 0 0;text-align:left}.gogo-load-css .gogocarto-container .element-item h1:not(.element-title).first-element-of-body-content,.gogo-load-css .gogocarto-container .element-item h2.first-element-of-body-content,.gogo-load-css .gogocarto-container .element-item h3.first-element-of-body-content,.gogo-load-css .gogocarto-container .element-item h4.first-element-of-body-content,.gogo-load-css .gogocarto-container .element-item h5.first-element-of-body-content{padding-top:.5rem}.gogo-load-css .gogocarto-container .element-item h1:not(.element-title).unique-element-between-dividers,.gogo-load-css .gogocarto-container .element-item h2.unique-element-between-dividers,.gogo-load-css .gogocarto-container .element-item h3.unique-element-between-dividers,.gogo-load-css .gogocarto-container .element-item h4.unique-element-between-dividers,.gogo-load-css .gogocarto-container .element-item h5.unique-element-between-dividers{display:none}.gogo-load-css .gogocarto-container .element-item .info-bar-divider~h3{padding-top:1rem}.gogo-load-css .gogocarto-container .element-item .row{margin-bottom:0}.gogo-load-css .gogocarto-container .element-item p{padding:0;margin:0}.gogo-load-css .gogocarto-container .element-item .info-bar-divider{height:1px;overflow:hidden;margin-bottom:.3rem;margin-top:.7rem}.gogo-load-css .gogocarto-container .element-item .btn,.gogo-load-css .gogocarto-container .element-item .btn-large{height:2rem;line-height:2rem;padding:0 1rem;margin-bottom:1rem}.gogo-load-css .gogocarto-container .element-item span.added{color:#3a772c}.gogo-load-css .gogocarto-container .element-item span.removed{text-decoration:line-through;margin-right:5px;color:#b57e7e}.gogo-load-css .gogocarto-container .element-item a>span.equals{color:rgba(0,0,0,.87)!important}.gogo-load-css .gogocarto-container #element-info-bar .element-item .expand-label{font-weight:700;padding-right:0}.gogo-load-css .gogocarto-container #element-info-bar .element-item.active .expand-label:after{content:attr(label-less)}.gogo-load-css .gogocarto-container #element-info-bar .element-item.active .expand-label.transform-big{position:absolute;color:#fff;z-index:2;right:0;width:auto;margin-right:1.7rem;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;-ms-transition:all .4s;transition:all .4s;padding:8px 25px;bottom:-15px}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #element-info-bar .element-item.active .expand-label.transform-big{padding:.3rem 1.2rem;bottom:-1rem}}.gogo-load-css .gogocarto-container #element-info-bar .element-item.active .expand-label.transform-big:hover{color:#fff;box-shadow:0 6px 15px 0 rgba(0,0,0,.2),0 5px 17px 0 rgba(0,0,0,.19)}.gogo-load-css .gogocarto-container #element-info-bar .element-item:not(.active) .expand-label:after{content:attr(label-more)}.gogo-load-css .gogocarto-container #element-info-bar .element-item:not(.active) .expand-label,.gogo-load-css .gogocarto-container #element-info-bar .element-item:not(.active) .expand-label:not(.transform-big){background-color:transparent!important}.gogo-load-css .gogocarto-container #element-info-bar .collapsible-header{position:relative;z-index:2}.gogo-load-css .gogocarto-container #element-info-bar .collapsible-header span.added{color:#3ab33a}.gogo-load-css .gogocarto-container #element-info-bar .collapsible-body .collapsible-body-main-container{height:100%;width:100%;position:absolute;top:0;left:0;overflow-y:auto}.gogo-load-css .gogocarto-container #element-info-bar .collapsible-body .img-container,.gogo-load-css .gogocarto-container #element-info-bar .collapsible-body .img-overlay{height:33%;background-color:transparent}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-header{background-color:inherit!important}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-header a{color:inherit}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-header a:hover{color:#000}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item:not(.active) .collapsible-header{border:none!important}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item:not(.active) .header-date{opacity:.85}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-body,.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-header{padding-left:.5rem;padding-right:.5rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-body,.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-header{padding-left:.8rem;padding-right:.8rem;padding-top:5px}}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header{border:none;cursor:default;width:100%}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header a{color:#fff}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header a:hover{color:#e6e6e6}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .collapsible-header-title{position:relative;line-height:2.5rem;font-weight:400}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .collapsible-header-title .distance{font-size:1.3rem;color:inherit}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .collapsible-header-title .gogo-icon-close{font-size:1.5rem;margin-top:-.8rem}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .collapsible-header-more{margin-bottom:1rem}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .name{font-size:1.8rem;text-align:left}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .description,.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .name{width:100%!important}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .description{margin-bottom:0}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-body{height:100%;overflow-y:auto}.gogo-load-css .gogocarto-container .simple-modal.modal{z-index:2000;max-width:1200px;top:30%!important;max-height:80%;height:auto;position:absolute!important}.gogo-load-css .gogocarto-container .simple-modal.modal h5{margin-bottom:.5rem}.gogo-load-css .gogocarto-container .simple-modal.modal .modal-content{padding-bottom:.8rem!important}.gogo-load-css .gogocarto-container .simple-modal.modal .modal-content .modal-error-msg{display:none;color:#B90303}.gogo-load-css .gogocarto-container .simple-modal.modal .modal-footer{padding-right:2.5rem}.gogo-load-css .gogocarto-container .simple-modal.modal .modal-footer .modal-action{color:#fff;font-size:.9rem;padding:0 25px}.gogo-load-css .gogocarto-container .simple-modal.modal .modal-footer .modal-action.btn,.gogo-load-css .gogocarto-container .simple-modal.modal .modal-footer .modal-action.btn-large{background-color:#de5a5f}.gogo-load-css .gogocarto-container .simple-modal.modal .modal-footer .modal-action.btn-large:hover,.gogo-load-css .gogocarto-container .simple-modal.modal .modal-footer .modal-action.btn:hover{background-color:#ec787d}.gogo-load-css .gogocarto-container .simple-modal.modal .input-simple-modal:focus{border-color:#4A7874;box-shadow:none}.gogo-load-css .gogocarto-container .simple-modal.modal .input-simple-modal::selection{background-color:#4A7874;color:#fff}.gogo-load-css .gogocarto-container .simple-modal.modal .input-simple-modal::-moz-selection{background-color:#4A7874;color:#fff}.gogo-load-css .gogocarto-container .page-modal .btn-back{float:left;font-size:2rem;line-height:4rem;padding:0 2rem;margin-left:-2rem}.gogo-load-css .gogocarto-container .modal.action-modal h5{text-align:center;margin-bottom:1.5rem;line-height:2.5rem}.gogo-load-css .gogocarto-container .modal.action-modal label.small-label{display:block;font-size:.85rem;font-weight:700;margin-top:1rem;margin-bottom:-1.8rem}.gogo-load-css .gogocarto-container .modal.action-modal .elementName{font-style:italic;font-size:1.5rem}.gogo-load-css .gogocarto-container .modal.action-modal .error{display:none;color:#B90303}.gogo-load-css .gogocarto-container .modal.action-modal .option-radio-label{margin-top:.5rem;display:block!important;height:auto!important}.gogo-load-css .gogocarto-container .modal.action-modal .cancel-btn{display:none}.gogo-load-css .gogocarto-container .modal.action-modal .cancel-btn .preloader-wrapper{height:15px;width:15px;top:1px}.gogo-load-css .gogocarto-container .modal.action-modal .cancel-btn .preloader-wrapper .spinner-layer{border-color:#fff}.gogo-load-css .gogocarto-container .modal.action-modal .loader-overlay{display:none;position:absolute;top:0;left:0;right:0;bottom:0;background-color:#000;opacity:.35}.gogo-load-css .gogocarto-container #modal-iframe .subtitle{text-align:center;font-style:italic;margin-bottom:1.5rem}.gogo-load-css .gogocarto-container #modal-iframe label{font-size:.8rem;width:100%}.gogo-load-css .gogocarto-container #modal-iframe label:not(:last-child){margin-bottom:15px}.gogo-load-css .gogocarto-container #modal-iframe label strong{font-weight:700}.gogo-load-css .gogocarto-container #modal-iframe .iframe-input{width:80px;height:2rem;font-size:.9rem;font-family:"Lucida Console",Monaco,monospace;margin:1rem;text-align:center}.gogo-load-css .gogocarto-container #modal-iframe #iframe-code{width:100%;padding:1rem;background-color:#f1f1f1;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;box-shadow:none;font-family:"Lucida Console",Monaco,monospace;border:1px dashed #c1c1c1;margin-bottom:1rem}.gogo-load-css .gogocarto-container #modal-image{width:90%}.gogo-load-css .gogocarto-container #modal-image .modal-content{padding:0;overflow:auto;height:calc(100% - 52px);text-align:center}.gogo-load-css .gogocarto-container #modal-image img{max-width:100%;object-fit:scale-down}.gogo-load-css .gogocarto-container .shadow-bottom{width:100%;margin-right:0;height:8px;position:absolute;top:100%;z-index:4;left:0;opacity:1;border-top:1px solid rgba(0,0,0,.4);background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.3)),to(rgba(0,0,0,0)));-webkit-mask-box-image:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(0,0,0,0)),color-stop(.5,rgba(0,0,0,.8)),color-stop(1,rgba(0,0,0,0)))}.gogo-load-css .gogocarto-container .custom-scroll-bar-light::-webkit-scrollbar-track,.gogo-load-css .gogocarto-container .dropdown-content::-webkit-scrollbar-track{background-color:#f6f6f6;border:1px solid #f0f0f0}.gogo-load-css .gogocarto-container .custom-scroll-bar-light::-webkit-scrollbar,.gogo-load-css .gogocarto-container .dropdown-content::-webkit-scrollbar{width:7px}.gogo-load-css .gogocarto-container .custom-scroll-bar-light::-webkit-scrollbar-thumb,.gogo-load-css .gogocarto-container .dropdown-content::-webkit-scrollbar-thumb{background-color:#c3c3c3;min-height:40px}.gogo-load-css .gogocarto-container .noUi-horizontal{height:10px;box-shadow:none!important}.gogo-load-css .gogocarto-container .noUi-horizontal .noUi-handle{border:none;width:30px;height:20px;right:-15px!important;left:auto!important;box-shadow:none!important;background-color:transparent}.gogo-load-css .gogocarto-container .noUi-horizontal .noUi-handle:after,.gogo-load-css .gogocarto-container .noUi-horizontal .noUi-handle:before{content:none}.gogo-load-css .gogocarto-container .noUi-horizontal .noUi-touch-area{border-radius:5px}.gogo-load-css .gogocarto-container .noUi-horizontal .noUi-tooltip{right:auto;top:-3px;border-radius:5px;bottom:auto;line-height:.9rem;font-size:.8rem;font-weight:700;min-width:30px}.gogo-load-css .gogocarto-container #gogo-custom-popup{position:absolute;bottom:20px;z-index:500;right:10px;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:5px 45px 5px 30px;line-height:1.7;max-width:400px;font-size:.9rem;border-radius:5px}[class*=" gogo-icon-"]:before,[class^=gogo-icon-]:before,[data-icon]:before{font-family:gogocarto!important;font-style:normal!important;font-weight:400!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.gogo-load-css .gogocarto-container #gogo-custom-popup #btn-close-custom-popup{font-size:1rem;cursor:pointer;position:absolute;right:18px;margin:0;top:14px}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container{font-size:12px}}.gogo-load-css .gogocarto-container #directory-menu{position:absolute;height:100%}.gogo-load-css .gogocarto-container #directory-content{position:relative;background-color:#9e9e9e;overflow:hidden;-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:column nowrap;-webkit-flex-flow:column nowrap;flex-flow:column nowrap}.gogo-load-css .gogocarto-container h1{font-size:2.5rem;text-align:center;margin-top:.5rem}@media screen and (min-width:600px){.gogo-load-css .gogocarto-container h1{font-size:3.5rem}}.gogo-load-css label{color:inherit}@font-face{font-family:gogocarto;src:url(fonts/gogocarto.eot);src:url(fonts/gogocarto.eot?#iefix) format("embedded-opentype"),url(fonts/gogocarto.woff) format("woff"),url(fonts/gogocarto.ttf) format("truetype"),url(fonts/gogocarto.svg#gogocarto) format("svg");font-weight:400;font-style:normal}[data-icon]:before{content:attr(data-icon)}.gogo-icon-account-circle:before{content:"\62"}.gogo-icon-delete:before{content:"\63"}.gogo-icon-description:before{content:"\64"}.gogo-icon-star-full:before{content:"\65"}.gogo-icon-icon-copy-hours:before{content:"\66"}.gogo-icon-starcircle:before{content:"\67"}.gogo-icon-no-eye:before{content:"\68"}.gogo-icon-eye:before{content:"\69"}.gogo-icon-attention:before{content:"\6a"}.gogo-icon-mail:before{content:"\6b"}.gogo-icon-marker-symbol:before{content:"\6c"}.gogo-icon-phone:before{content:"\6d"}.gogo-icon-add-circle:before{content:"\6e"}.gogo-icon-plus-circle-1:before{content:"\6f"}.gogo-icon-clear:before{content:"\70"}.gogo-icon-redo:before{content:"\71"}.gogo-icon-day:before{content:"\72"}.gogo-icon-exclamation-1:before{content:"\73"}.gogo-icon-edit:before{content:"\74"}.gogo-icon-menu:before{content:"\75"}.gogo-icon-directions:before{content:"\77"}.gogo-icon-layers:before{content:"\78"}.gogo-icon-locate:before{content:"\7a"}.gogo-icon-material-design-icons-1:before{content:"\41"}.gogo-icon-people:before{content:"\42"}.gogo-icon-add-element:before{content:"\43"}.gogo-icon-internet:before{content:"\44"}.gogo-icon-star-empty:before{content:"\45"}.gogo-icon-share-alt:before{content:"\46"}.gogo-icon-expand:before{content:"\47"}.gogo-icon-angle-right:before{content:"\48"}.gogo-icon-arrow-circle-down:before{content:"\49"}.gogo-icon-facebook:before{content:"\4a"}.gogo-icon-external-link:before{content:"\4b"}.gogo-icon-gplus:before{content:"\4c"}.gogo-icon-home:before{content:"\4d"}.gogo-icon-info:before{content:"\4e"}.gogo-icon-list:before{content:"\4f"}.gogo-icon-lock:before{content:"\50"}.gogo-icon-plus-circle:before{content:"\51"}.gogo-icon-search:before{content:"\52"}.gogo-icon-close:before{content:"\53"}.gogo-icon-user-plus:before{content:"\54"}.gogo-icon-users:before{content:"\55"}.gogo-icon-unlock:before{content:"\56"}.gogo-icon-yahoo:before{content:"\57"}.gogo-icon-twitter:before{content:"\58"}.gogo-icon-partner-3:before{content:"\59"}.gogo-icon-map:before{content:"\5a"}.gogo-icon-ellipsis:before{content:"\30"}.gogo-icon-moderation:before{content:"\79"}.gogo-icon-filters-1:before{content:"\37"}.gogo-icon-vote:before{content:"\76"}.gogo-icon-marker-simple-1:before{content:"\31"}.gogo-icon-marker-simple:before{content:"\32"}.gogo-icon-stamp-1:before{content:"\36"}.gogo-icon-stamp-2:before{content:"\38"}.gogo-icon-communs:before{content:"\34"}.gogo-icon-printemps:before{content:"\33"}.gogo-icon-chevron-left:before{content:"\35"}.gogo-icon-chevron-right:before{content:"\39"}.gogo-icon-date:before{content:"\21"}.gogo-icon-number:before{content:"\22"}.gogo-icon-recycle:before{content:"\23"}.gogo-icon-download-1:before{content:"\24"}.gogo-icon-upload:before{content:"\25"}.gogo-icon-images:before{content:"\26"}.gogo-icon-add-file:before{content:"\27"}.gogo-icon-search-file:before{content:"\28"}.gogo-icon-image:before{content:"\29"}.gogo-icon-images-1:before{content:"\2a"}.gogo-icon-image-1:before{content:"\2b"}.gogo-icon-upload-1:before{content:"\2c"}.gogo-icon-upload-2:before{content:"\2d"}.gogo-icon-download:before{content:"\2e"}.gogo-icon-image-2:before{content:"\2f"}.gogo-icon-database:before{content:"\3a"}.gogo-icon-marker:before{content:"\61"}.gogo-icon-rss:before{content:"\e003"} \ No newline at end of file + */height:100%;width:100%}.gogo-load-css ul{list-style-type:none;padding:0}.gogo-load-css a{color:#26A69A;-webkit-tap-highlight-color:transparent;text-decoration:none}.gogo-load-css .valign-wrapper{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.gogo-load-css .valign-wrapper .valign{display:block}.gogo-load-css ul li{list-style-type:none}.gogo-load-css .clearfix{clear:both}.gogo-load-css .z-depth-0{box-shadow:none!important}.gogo-load-css .btn,.gogo-load-css .btn-floating,.gogo-load-css .btn-large,.gogo-load-css .collapsible,.gogo-load-css .dropdown-content,.gogo-load-css .gogocarto-container #element-info-bar .element-item.active .expand-label.transform-big,.gogo-load-css .toast,.gogo-load-css .z-depth-1{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.gogo-load-css .btn-floating:hover,.gogo-load-css .btn-large:hover,.gogo-load-css .btn:hover,.gogo-load-css .z-depth-1-half{box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15)}.gogo-load-css .z-depth-2{box-shadow:0 8px 17px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19)}.gogo-load-css .z-depth-3{box-shadow:0 12px 15px 0 rgba(0,0,0,.24),0 17px 50px 0 rgba(0,0,0,.19)}.gogo-load-css .modal,.gogo-load-css .z-depth-4{box-shadow:0 16px 28px 0 rgba(0,0,0,.22),0 25px 55px 0 rgba(0,0,0,.21)}.gogo-load-css .z-depth-5{box-shadow:0 27px 24px 0 rgba(0,0,0,.2),0 40px 77px 0 rgba(0,0,0,.22)}.gogo-load-css .hoverable:hover{transition:box-shadow .25s;box-shadow:0 8px 17px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19)}.gogo-load-css .divider{height:1px;overflow:hidden;background-color:#CCC}.gogo-load-css blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #de5a5f}.gogo-load-css i{line-height:inherit}.gogo-load-css i.left{float:left;margin-right:15px}.gogo-load-css i.right{float:right;margin-left:15px}.gogo-load-css i.tiny{font-size:1rem}.gogo-load-css i.small{font-size:2rem}.gogo-load-css i.medium{font-size:4rem}.gogo-load-css i.large{font-size:6rem}.gogo-load-css img.responsive-img,.gogo-load-css video.responsive-video{max-width:100%;height:auto}.gogo-load-css .pagination li{display:inline-block;font-size:1.2rem;padding:0 10px;line-height:30px;border-radius:2px;text-align:center}.gogo-load-css .pagination li a{color:#444}.gogo-load-css .pagination li.active a{color:#fff}.gogo-load-css .pagination li.active{background-color:#de5a5f}.gogo-load-css .pagination li.disabled a{cursor:default;color:#999}.gogo-load-css .pagination li i{font-size:2rem}.gogo-load-css .pagination li.pages ul li{display:inline-block;float:none}.gogo-load-css .parallax-container{position:relative;overflow:hidden;height:500px}.gogo-load-css .parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.gogo-load-css .parallax img{display:none;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);transform:translateX(-50%)}.gogo-load-css .pin-bottom,.gogo-load-css .pin-top{position:relative}.gogo-load-css .pinned{position:fixed!important}.gogo-load-css ul.staggered-list li{opacity:0}.gogo-load-css .fade-in{opacity:0;transform-origin:0 50%}@media only screen and (max-width:600px){.gogo-load-css .hide-on-small-and-down,.gogo-load-css .hide-on-small-only{display:none!important}}@media only screen and (max-width:1200px){.gogo-load-css .pagination{width:100%}.gogo-load-css .pagination li.next,.gogo-load-css .pagination li.prev{width:10%}.gogo-load-css .pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}.gogo-load-css .hide-on-med-and-down{display:none!important}}@media only screen and (min-width:601px){.gogo-load-css .hide-on-med-and-up{display:none!important}}@media only screen and (min-width:600px) and (max-width:900px){.gogo-load-css .hide-on-med-only{display:none!important}}@media only screen and (min-width:1201px){.gogo-load-css .hide-on-large-only{display:none!important}.gogo-load-css .show-on-large{display:initial!important}}@media only screen and (min-width:600px) and (max-width:900px){.gogo-load-css .show-on-medium{display:initial!important}}@media only screen and (min-width:601px){.gogo-load-css .show-on-medium-and-up{display:initial!important}}@media only screen and (max-width:1200px){.gogo-load-css .show-on-medium-and-down{display:initial!important}}@media only screen and (max-width:600px){.gogo-load-css .show-on-small{display:initial!important}.gogo-load-css .center-on-small-only{text-align:center}}.gogo-load-css footer.page-footer{margin-top:20px;padding-top:20px;background-color:#de5a5f}.gogo-load-css footer.page-footer .footer-copyright{overflow:hidden;height:50px;line-height:50px;color:rgba(255,255,255,.8);background-color:rgba(51,51,51,.08)}.gogo-load-css table.highlight>tbody>tr:hover,.gogo-load-css table.striped>tbody>tr:nth-child(odd){background-color:#f2f2f2}.gogo-load-css table,.gogo-load-css td,.gogo-load-css th{border:none}.gogo-load-css table.bordered>tbody>tr,.gogo-load-css table.bordered>thead>tr,.gogo-load-css thead{border-bottom:1px solid #d0d0d0}.gogo-load-css table{width:100%;display:table}.gogo-load-css table.striped>tbody>tr>td{border-radius:0}.gogo-load-css table.highlight>tbody>tr{-webkit-transition:background-color .25s ease;-moz-transition:background-color .25s ease;-o-transition:background-color .25s ease;-ms-transition:background-color .25s ease;transition:background-color .25s ease}.gogo-load-css table.centered tbody tr td,.gogo-load-css table.centered thead tr th{text-align:center}.gogo-load-css td,.gogo-load-css th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width:1200px){.gogo-load-css table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}.gogo-load-css table.responsive-table td,.gogo-load-css table.responsive-table th{margin:0;vertical-align:top}.gogo-load-css table.responsive-table thead{display:block;float:left;border:0;border-right:1px solid #d0d0d0}.gogo-load-css table.responsive-table thead tr{display:block;padding:0 10px 0 0}.gogo-load-css table.responsive-table thead tr th::before{content:"\00a0"}.gogo-load-css table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}.gogo-load-css table.responsive-table tbody tr{display:inline-block;vertical-align:top}.gogo-load-css table.responsive-table th{display:block;text-align:right}.gogo-load-css table.responsive-table td{display:block;min-height:1.25em;text-align:left}.gogo-load-css table.responsive-table tr{padding:0 10px}.gogo-load-css table.responsive-table.bordered th{border-bottom:0;border-left:0}.gogo-load-css table.responsive-table.bordered td{border-left:0;border-right:0;border-bottom:0}.gogo-load-css table.responsive-table.bordered tr{border:0}.gogo-load-css table.responsive-table.bordered tbody tr{border-right:1px solid #d0d0d0}}.gogo-load-css .collection{margin:.5rem 0 1rem;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.gogo-load-css .collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.gogo-load-css .collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.gogo-load-css .collection .collection-item.avatar .circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.gogo-load-css .collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.gogo-load-css .collection .collection-item.avatar .title{font-size:16px}.gogo-load-css .collection .collection-item.avatar p{margin:0}.gogo-load-css .collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.gogo-load-css .collection .collection-item:last-child{border-bottom:none}.gogo-load-css .collection .collection-item.active{background-color:#4A7874;color:#e9f1f1}.gogo-load-css .collection .collection-item.active .secondary-content{color:#fff}.gogo-load-css .collection a.collection-item{display:block;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;-ms-transition:.25s;transition:.25s;color:#4A7874}.gogo-load-css .collection a.collection-item:not(.active):hover{background-color:#ddd}.gogo-load-css .collection.with-header .collection-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:10px 20px}.gogo-load-css .collection.with-header .collection-item{padding-left:30px}.gogo-load-css .collection.with-header .collection-item.avatar{padding-left:72px}.gogo-load-css .secondary-content{float:right;color:#4A7874}.gogo-load-css .collapsible .collection{margin:0;border:none}.gogo-load-css span.badge{min-width:3rem;padding:0 6px;text-align:center;font-size:1rem;line-height:inherit;color:color("grey","darken-1");position:absolute;right:15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.gogo-load-css span.badge.more{font-weight:300;font-size:.8rem;color:#fff;background-color:#4A7874;border-radius:2px}.gogo-load-css span.badge.new:after{content:" new"}.gogo-load-css span.badge.more:after{content:" more"}.gogo-load-css nav ul a span.badge{position:static;margin-left:4px;line-height:0}.gogo-load-css .video-container{position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden}.gogo-load-css .video-container.no-controls{padding-top:0}.gogo-load-css .video-container embed,.gogo-load-css .video-container iframe,.gogo-load-css .video-container object{position:absolute;top:0;left:0;width:100%;height:100%}.gogo-load-css .progress{position:relative;height:4px;display:block;width:100%;background-color:#bad4d2;border-radius:2px;margin:.5rem 0 1rem;overflow:hidden}.gogo-load-css .progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:#4A7874;-webkit-transition:width .3s linear;-moz-transition:width .3s linear;-o-transition:width .3s linear;-ms-transition:width .3s linear;transition:width .3s linear}.gogo-load-css .progress .indeterminate{background-color:#4A7874}.gogo-load-css .progress .indeterminate:after,.gogo-load-css .progress .indeterminate:before{content:'';position:absolute;background-color:inherit;bottom:0;will-change:left,right;top:0;left:0}.gogo-load-css .progress .indeterminate:before{-webkit-animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;-moz-animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;-ms-animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;-o-animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite;animation:indeterminate 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.gogo-load-css .progress .indeterminate:after{-webkit-animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;-moz-animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;-ms-animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;-o-animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;animation:indeterminate-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;-webkit-animation-delay:1.15s;-moz-animation-delay:1.15s;-ms-animation-delay:1.15s;-o-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}100%,60%{left:100%;right:-90%}}@-moz-keyframes indeterminate{0%{left:-35%;right:100%}100%,60%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}100%,60%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}100%,60%{left:107%;right:-8%}}@-moz-keyframes indeterminate-short{0%{left:-200%;right:100%}100%,60%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}100%,60%{left:107%;right:-8%}}.gogo-load-css .hide{display:none!important}.gogo-load-css .left-align{text-align:left}.gogo-load-css .right-align{text-align:right}.gogo-load-css .center,.gogo-load-css .center-align{text-align:center}.gogo-load-css .left{float:left!important}.gogo-load-css .right{float:right!important}.gogo-load-css .no-select{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gogo-load-css .circle{border-radius:50%}.gogo-load-css .center-block{display:block;margin-left:auto;margin-right:auto}.gogo-load-css .truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gogo-load-css .no-padding{padding:0!important}.gogo-load-css .container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width:601px){.gogo-load-css .container{width:85%}}@media only screen and (min-width:1201px){.gogo-load-css .container{width:70%}}.gogo-load-css .container .row{margin-left:-.75rem;margin-right:-.75rem}.gogo-load-css .section{padding-top:1rem;padding-bottom:1rem}.gogo-load-css .section.no-pad{padding:0}.gogo-load-css .section.no-pad-bot{padding-bottom:0}.gogo-load-css .section.no-pad-top{padding-top:0}.gogo-load-css .row{margin-left:auto;margin-right:auto;margin-bottom:20px}.gogo-load-css .row:after{content:"";display:table;clear:both}.gogo-load-css .row .col{float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0 .75rem}.gogo-load-css .row .col.s1{width:8.33333%;margin-left:0}.gogo-load-css .row .col.s2{width:16.66667%;margin-left:0}.gogo-load-css .row .col.s3{width:25%;margin-left:0}.gogo-load-css .row .col.s4{width:33.33333%;margin-left:0}.gogo-load-css .row .col.s5{width:41.66667%;margin-left:0}.gogo-load-css .row .col.s6{width:50%;margin-left:0}.gogo-load-css .row .col.s7{width:58.33333%;margin-left:0}.gogo-load-css .row .col.s8{width:66.66667%;margin-left:0}.gogo-load-css .row .col.s9{width:75%;margin-left:0}.gogo-load-css .row .col.s10{width:83.33333%;margin-left:0}.gogo-load-css .row .col.s11{width:91.66667%;margin-left:0}.gogo-load-css .row .col.s12{width:100%;margin-left:0}.gogo-load-css .row .col.offset-s1{margin-left:8.33333%}.gogo-load-css .row .col.offset-s2{margin-left:16.66667%}.gogo-load-css .row .col.offset-s3{margin-left:25%}.gogo-load-css .row .col.offset-s4{margin-left:33.33333%}.gogo-load-css .row .col.offset-s5{margin-left:41.66667%}.gogo-load-css .row .col.offset-s6{margin-left:50%}.gogo-load-css .row .col.offset-s7{margin-left:58.33333%}.gogo-load-css .row .col.offset-s8{margin-left:66.66667%}.gogo-load-css .row .col.offset-s9{margin-left:75%}.gogo-load-css .row .col.offset-s10{margin-left:83.33333%}.gogo-load-css .row .col.offset-s11{margin-left:91.66667%}.gogo-load-css .row .col.offset-s12{margin-left:100%}@media only screen and (min-width:601px){.gogo-load-css .row .col.m1{width:8.33333%;margin-left:0}.gogo-load-css .row .col.m2{width:16.66667%;margin-left:0}.gogo-load-css .row .col.m3{width:25%;margin-left:0}.gogo-load-css .row .col.m4{width:33.33333%;margin-left:0}.gogo-load-css .row .col.m5{width:41.66667%;margin-left:0}.gogo-load-css .row .col.m6{width:50%;margin-left:0}.gogo-load-css .row .col.m7{width:58.33333%;margin-left:0}.gogo-load-css .row .col.m8{width:66.66667%;margin-left:0}.gogo-load-css .row .col.m9{width:75%;margin-left:0}.gogo-load-css .row .col.m10{width:83.33333%;margin-left:0}.gogo-load-css .row .col.m11{width:91.66667%;margin-left:0}.gogo-load-css .row .col.m12{width:100%;margin-left:0}.gogo-load-css .row .col.offset-m1{margin-left:8.33333%}.gogo-load-css .row .col.offset-m2{margin-left:16.66667%}.gogo-load-css .row .col.offset-m3{margin-left:25%}.gogo-load-css .row .col.offset-m4{margin-left:33.33333%}.gogo-load-css .row .col.offset-m5{margin-left:41.66667%}.gogo-load-css .row .col.offset-m6{margin-left:50%}.gogo-load-css .row .col.offset-m7{margin-left:58.33333%}.gogo-load-css .row .col.offset-m8{margin-left:66.66667%}.gogo-load-css .row .col.offset-m9{margin-left:75%}.gogo-load-css .row .col.offset-m10{margin-left:83.33333%}.gogo-load-css .row .col.offset-m11{margin-left:91.66667%}.gogo-load-css .row .col.offset-m12{margin-left:100%}}@media only screen and (min-width:1201px){.gogo-load-css .row .col.l1{width:8.33333%;margin-left:0}.gogo-load-css .row .col.l2{width:16.66667%;margin-left:0}.gogo-load-css .row .col.l3{width:25%;margin-left:0}.gogo-load-css .row .col.l4{width:33.33333%;margin-left:0}.gogo-load-css .row .col.l5{width:41.66667%;margin-left:0}.gogo-load-css .row .col.l6{width:50%;margin-left:0}.gogo-load-css .row .col.l7{width:58.33333%;margin-left:0}.gogo-load-css .row .col.l8{width:66.66667%;margin-left:0}.gogo-load-css .row .col.l9{width:75%;margin-left:0}.gogo-load-css .row .col.l10{width:83.33333%;margin-left:0}.gogo-load-css .row .col.l11{width:91.66667%;margin-left:0}.gogo-load-css .row .col.l12{width:100%;margin-left:0}.gogo-load-css .row .col.offset-l1{margin-left:8.33333%}.gogo-load-css .row .col.offset-l2{margin-left:16.66667%}.gogo-load-css .row .col.offset-l3{margin-left:25%}.gogo-load-css .row .col.offset-l4{margin-left:33.33333%}.gogo-load-css .row .col.offset-l5{margin-left:41.66667%}.gogo-load-css .row .col.offset-l6{margin-left:50%}.gogo-load-css .row .col.offset-l7{margin-left:58.33333%}.gogo-load-css .row .col.offset-l8{margin-left:66.66667%}.gogo-load-css .row .col.offset-l9{margin-left:75%}.gogo-load-css .row .col.offset-l10{margin-left:83.33333%}.gogo-load-css .row .col.offset-l11{margin-left:91.66667%}.gogo-load-css .row .col.offset-l12{margin-left:100%}}.gogo-load-css html{line-height:1.5;font-family:Roboto,sans-serif;font-weight:400;color:rgba(0,0,0,.87)}@media only screen and (min-width:0){.gogo-load-css html{font-size:14px}}@media only screen and (min-width:900px){.gogo-load-css html{font-size:14.5px}}@media only screen and (min-width:1200px){.gogo-load-css html{font-size:15px}}.gogo-load-css h1,.gogo-load-css h2,.gogo-load-css h3,.gogo-load-css h4,.gogo-load-css h5,.gogo-load-css h6{font-weight:400}.gogo-load-css h1 a,.gogo-load-css h2 a,.gogo-load-css h3 a,.gogo-load-css h4 a,.gogo-load-css h5 a,.gogo-load-css h6 a{font-weight:inherit}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element .menu-element-item,.gogo-load-css strong{font-weight:700}.gogo-load-css h1{font-size:4.2rem;line-height:110%;margin:2.1rem 0 1.68rem}.gogo-load-css h2{font-size:3.56rem;line-height:110%;margin:1.78rem 0 1.424rem}.gogo-load-css h3{font-size:2.92rem;line-height:110%;margin:1.46rem 0 1.168rem}.gogo-load-css h4{font-size:2.28rem;line-height:110%;margin:1.14rem 0 .912rem}.gogo-load-css h5{font-size:1.64rem;line-height:110%;margin:.82rem 0 .656rem}.gogo-load-css h6{font-size:1rem;line-height:110%;margin:.5rem 0 .4rem}.gogo-load-css em{font-style:italic}.gogo-load-css small{font-size:75%}.gogo-load-css .light,.gogo-load-css footer.page-footer .footer-copyright{font-weight:300}.gogo-load-css .thin{font-weight:200}.gogo-load-css .flow-text{font-weight:300}@media only screen and (min-width:360px){.gogo-load-css .flow-text{font-size:1.2rem}}@media only screen and (min-width:390px){.gogo-load-css .flow-text{font-size:1.224rem}}@media only screen and (min-width:420px){.gogo-load-css .flow-text{font-size:1.248rem}}@media only screen and (min-width:450px){.gogo-load-css .flow-text{font-size:1.272rem}}@media only screen and (min-width:480px){.gogo-load-css .flow-text{font-size:1.296rem}}@media only screen and (min-width:510px){.gogo-load-css .flow-text{font-size:1.32rem}}@media only screen and (min-width:540px){.gogo-load-css .flow-text{font-size:1.344rem}}@media only screen and (min-width:570px){.gogo-load-css .flow-text{font-size:1.368rem}}@media only screen and (min-width:600px){.gogo-load-css .flow-text{font-size:1.392rem}}@media only screen and (min-width:630px){.gogo-load-css .flow-text{font-size:1.416rem}}@media only screen and (min-width:660px){.gogo-load-css .flow-text{font-size:1.44rem}}@media only screen and (min-width:690px){.gogo-load-css .flow-text{font-size:1.464rem}}@media only screen and (min-width:720px){.gogo-load-css .flow-text{font-size:1.488rem}}@media only screen and (min-width:750px){.gogo-load-css .flow-text{font-size:1.512rem}}@media only screen and (min-width:780px){.gogo-load-css .flow-text{font-size:1.536rem}}@media only screen and (min-width:810px){.gogo-load-css .flow-text{font-size:1.56rem}}@media only screen and (min-width:840px){.gogo-load-css .flow-text{font-size:1.584rem}}@media only screen and (min-width:870px){.gogo-load-css .flow-text{font-size:1.608rem}}@media only screen and (min-width:900px){.gogo-load-css .flow-text{font-size:1.632rem}}@media only screen and (min-width:930px){.gogo-load-css .flow-text{font-size:1.656rem}}@media only screen and (min-width:960px){.gogo-load-css .flow-text{font-size:1.68rem}}@media only screen and (max-width:360px){.gogo-load-css .flow-text{font-size:1.2rem}}.gogo-load-css .tabs{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;position:relative;height:2.7rem;background-color:#3D3D3D;margin:0 auto;width:calc(100% - 1px);white-space:nowrap}.gogo-load-css .tabs .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;display:block;float:left;text-align:center;line-height:3rem;height:2.7rem;margin:0;text-transform:uppercase;letter-spacing:.8px;width:15%;padding:0}.gogo-load-css .tabs .tab a{color:#fff;display:block;width:100%;height:100%;-webkit-transition:color .28s ease;-moz-transition:color .28s ease;-o-transition:color .28s ease;-ms-transition:color .28s ease;transition:color .28s ease}.gogo-load-css .tabs .tab a:hover{color:#fff}.gogo-load-css .tabs .tab.disabled a{color:#fff;cursor:default}.gogo-load-css .tabs .indicator{position:absolute;top:0;height:3px;background-color:#fff;will-change:left,right}.gogo-load-css .btn,.gogo-load-css .btn-flat,.gogo-load-css .btn-large{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;outline:0;padding:0 2rem;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.gogo-load-css .btn-floating.disabled,.gogo-load-css .btn-floating:disabled,.gogo-load-css .btn-large.disabled,.gogo-load-css .btn-large:disabled,.gogo-load-css .btn.disabled,.gogo-load-css .btn:disabled,.gogo-load-css .disabled.btn-large{background-color:#DFDFDF!important;box-shadow:none;color:#9F9F9F!important;cursor:default}.gogo-load-css .btn-floating.disabled *,.gogo-load-css .btn-floating:disabled *,.gogo-load-css .btn-large.disabled *,.gogo-load-css .btn-large:disabled *,.gogo-load-css .btn.disabled *,.gogo-load-css .btn:disabled *,.gogo-load-css .disabled.btn-large *{pointer-events:none}.gogo-load-css .btn-floating.disabled:hover,.gogo-load-css .btn-floating:disabled:hover,.gogo-load-css .btn-large.disabled:hover,.gogo-load-css .btn-large:disabled:hover,.gogo-load-css .btn.disabled:hover,.gogo-load-css .btn:disabled:hover,.gogo-load-css .disabled.btn-large:hover{background-color:#DFDFDF;color:#9F9F9F}.gogo-load-css .btn i,.gogo-load-css .btn-flat i,.gogo-load-css .btn-floating i,.gogo-load-css .btn-large i{font-size:1.3rem;line-height:inherit}.gogo-load-css .btn,.gogo-load-css .btn-large{text-decoration:none;color:#fff;background-color:#26A69A;text-align:center;letter-spacing:.5px;-webkit-transition:.2s ease-out;-moz-transition:.2s ease-out;-o-transition:.2s ease-out;-ms-transition:.2s ease-out;transition:.2s ease-out;cursor:pointer}.gogo-load-css .btn-large:hover,.gogo-load-css .btn:hover{background-color:#2bbbad}.gogo-load-css .btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:37px;height:37px;line-height:37px;padding:0;background-color:#26A69A;border-radius:50%;transition:.3s;cursor:pointer;vertical-align:middle}.gogo-load-css .btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:37px}.gogo-load-css .btn-floating:before{border-radius:0}.gogo-load-css .btn-floating.btn-large{width:55.5px;height:55.5px}.gogo-load-css .btn-floating.btn-large i{line-height:55.5px}.gogo-load-css button.btn-floating{border:none}.gogo-load-css .fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:998}.gogo-load-css .fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0}.gogo-load-css .fixed-action-btn ul li{margin-bottom:15px}.gogo-load-css .fixed-action-btn ul a.btn-floating{opacity:0}.gogo-load-css .btn-flat{box-shadow:none;cursor:pointer}.gogo-load-css .btn-flat.disabled{color:#b3b3b3;cursor:default}.gogo-load-css .btn-large{height:54px;line-height:56px}.gogo-load-css .btn-large i{font-size:1.6rem}.gogo-load-css .btn-block{display:block}.gogo-load-css .dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;max-height:650px;overflow-y:auto;opacity:0;position:absolute;z-index:999;will-change:width,height}.gogo-load-css .dropdown-content li{clear:both;color:rgba(0,0,0,.87);cursor:pointer;line-height:1.5rem;width:100%;text-align:left;text-transform:none}.gogo-load-css .dropdown-content li.active,.gogo-load-css .dropdown-content li:hover{background-color:#eee}.gogo-load-css .dropdown-content li>a,.gogo-load-css .dropdown-content li>span{font-size:1.2rem;color:#4A7874;display:block;padding:1rem}.gogo-load-css .dropdown-content li>a>i{height:inherit;line-height:inherit}.gogo-load-css .waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;will-change:opacity,transform;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;-ms-transition:all .3s ease-out;transition:all .3s ease-out}.gogo-load-css .waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,.2);-webkit-transition:all .7s ease-out;-moz-transition:all .7s ease-out;-o-transition:all .7s ease-out;-ms-transition:all .7s ease-out;transition:all .7s ease-out;-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-o-transition-property:-o-transform,opacity;transition-property:transform,opacity;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);pointer-events:none}.gogo-load-css .waves-effect.waves-light .waves-ripple{background-color:rgba(255,255,255,.45)}.gogo-load-css .waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,.7)}.gogo-load-css .waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,.7)}.gogo-load-css .waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,.7)}.gogo-load-css .waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,.7)}.gogo-load-css .waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,.7)}.gogo-load-css .waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,.7)}.gogo-load-css .waves-notransition{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}.gogo-load-css .waves-input-wrapper{border-radius:.2em;vertical-align:bottom}.gogo-load-css .waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.gogo-load-css .waves-circle{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0);text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.gogo-load-css .waves-block{display:block}.gogo-load-css a.waves-effect .waves-ripple{z-index:-1}.gogo-load-css .modal{display:none;position:fixed;left:0;right:0;background-color:#fafafa;padding:0;max-height:70%;width:55%;margin:auto;overflow-y:auto;border-radius:2px;will-change:top,opacity}@media only screen and (max-width:1200px){.gogo-load-css .modal{width:80%}}@media only screen and (max-width:600px){.gogo-load-css .modal{width:100%;max-height:100%;height:100%;top:0!important}}.gogo-load-css .modal h1,.gogo-load-css .modal h2,.gogo-load-css .modal h3,.gogo-load-css .modal h4,.gogo-load-css .modal h5{margin-top:0}.gogo-load-css .modal h5{margin-bottom:1.5rem}.gogo-load-css .modal .footer{margin-top:1rem;text-align:right}.gogo-load-css .modal .modal-content{padding:24px}@media only screen and (min-width:601px){.gogo-load-css .modal .modal-content{padding:40px}}.gogo-load-css .modal .modal-close{cursor:pointer;color:#fff}.gogo-load-css .modal .modal-footer{border-radius:0 0 2px 2px;background-color:#fafafa;padding:4px 6px;height:56px;width:100%}.gogo-load-css .modal .modal-footer .btn,.gogo-load-css .modal .modal-footer .btn-flat,.gogo-load-css .modal .modal-footer .btn-large{float:right;margin:6px 0}.gogo-load-css .modal.modal-fixed-footer{padding:0;height:70%}.gogo-load-css .modal.modal-fixed-footer .modal-content{position:absolute;height:calc(100% - 58px);max-height:100%;width:100%;overflow-y:auto}.gogo-load-css .modal.modal-fixed-footer .modal-footer{border-top:1px solid rgba(0,0,0,.1);position:absolute;bottom:0}.gogo-load-css .modal.bottom-sheet{top:auto;bottom:-100%;margin:0;width:100%;max-height:45%;border-radius:0;will-change:bottom,opacity}.gogo-load-css .collapsible{border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;margin:.5rem 0 1rem}.gogo-load-css .collapsible-header{display:block;cursor:pointer;min-height:3rem;line-height:3rem;padding:0 1rem;background-color:#fff;border-bottom:1px solid #ddd}.gogo-load-css .collapsible-header i{width:2rem;font-size:1.6rem;line-height:3rem;display:block;float:left;text-align:center;margin-right:1rem}.gogo-load-css .collapsible-body{display:none;border-bottom:1px solid #ddd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.gogo-load-css .collapsible-body p{margin:0;padding:2rem}.gogo-load-css .side-nav .collapsible{border:none;box-shadow:none}.gogo-load-css .side-nav .collapsible li{padding:0}.gogo-load-css .side-nav .collapsible-header{background-color:transparent;border:none;line-height:inherit;height:inherit;margin:0 1rem}.gogo-load-css .side-nav .collapsible-header i{line-height:inherit}.gogo-load-css .side-nav .collapsible-body{border:0;background-color:#fff}.gogo-load-css .side-nav .collapsible-body li a{margin:0 1rem 0 2rem}.gogo-load-css .collapsible.popout{border:none;box-shadow:none}.gogo-load-css .collapsible.popout>li{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);margin:0 24px;transition:margin .35s cubic-bezier(.25,.46,.45,.94)}.gogo-load-css .collapsible.popout>li.active{box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15);margin:16px 0}.gogo-load-css select:focus{outline:#d0e2e0 solid 1px}.gogo-load-css label{font-size:.8rem}.gogo-load-css ::-webkit-input-placeholder{color:#707070}.gogo-load-css :-moz-placeholder{color:#707070}.gogo-load-css ::-moz-placeholder{color:#707070}.gogo-load-css :-ms-input-placeholder{color:#707070}.gogo-load-css input[type=date],.gogo-load-css input[type=datetime-local],.gogo-load-css input[type=email],.gogo-load-css input[type=number],.gogo-load-css input[type=password],.gogo-load-css input[type=search],.gogo-load-css input[type=tel],.gogo-load-css input[type=text],.gogo-load-css input[type=time],.gogo-load-css input[type=url],.gogo-load-css textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #3D3D3D;border-radius:0;outline:0;height:3rem;width:100%;font-size:1rem;margin:0 0 15px;padding:0;box-shadow:none;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;transition:all .3s}.gogo-load-css input[type=date]:disabled,.gogo-load-css input[type=date][readonly=readonly],.gogo-load-css input[type=datetime-local]:disabled,.gogo-load-css input[type=datetime-local][readonly=readonly],.gogo-load-css input[type=email]:disabled,.gogo-load-css input[type=email][readonly=readonly],.gogo-load-css input[type=number]:disabled,.gogo-load-css input[type=number][readonly=readonly],.gogo-load-css input[type=password]:disabled,.gogo-load-css input[type=password][readonly=readonly],.gogo-load-css input[type=search]:disabled,.gogo-load-css input[type=search][readonly=readonly],.gogo-load-css input[type=tel]:disabled,.gogo-load-css input[type=tel][readonly=readonly],.gogo-load-css input[type=text]:disabled,.gogo-load-css input[type=text][readonly=readonly],.gogo-load-css input[type=time]:disabled,.gogo-load-css input[type=time][readonly=readonly],.gogo-load-css input[type=url]:disabled,.gogo-load-css input[type=url][readonly=readonly],.gogo-load-css textarea.materialize-textarea:disabled,.gogo-load-css textarea.materialize-textarea[readonly=readonly]{color:rgba(0,0,0,.26);border-bottom:1px dotted rgba(0,0,0,.26)}.gogo-load-css input[type=date].valid,.gogo-load-css input[type=date]:focus.valid,.gogo-load-css input[type=date]:focus:not([readonly]),.gogo-load-css input[type=datetime-local].valid,.gogo-load-css input[type=datetime-local]:focus.valid,.gogo-load-css input[type=datetime-local]:focus:not([readonly]),.gogo-load-css input[type=email].valid,.gogo-load-css input[type=email]:focus.valid,.gogo-load-css input[type=email]:focus:not([readonly]),.gogo-load-css input[type=number].valid,.gogo-load-css input[type=number]:focus.valid,.gogo-load-css input[type=number]:focus:not([readonly]),.gogo-load-css input[type=password].valid,.gogo-load-css input[type=password]:focus.valid,.gogo-load-css input[type=password]:focus:not([readonly]),.gogo-load-css input[type=search].valid,.gogo-load-css input[type=search]:focus.valid,.gogo-load-css input[type=search]:focus:not([readonly]),.gogo-load-css input[type=tel].valid,.gogo-load-css input[type=tel]:focus.valid,.gogo-load-css input[type=tel]:focus:not([readonly]),.gogo-load-css input[type=text].valid,.gogo-load-css input[type=text]:focus.valid,.gogo-load-css input[type=text]:focus:not([readonly]),.gogo-load-css input[type=time].valid,.gogo-load-css input[type=time]:focus.valid,.gogo-load-css input[type=time]:focus:not([readonly]),.gogo-load-css input[type=url].valid,.gogo-load-css input[type=url]:focus.valid,.gogo-load-css input[type=url]:focus:not([readonly]),.gogo-load-css textarea.materialize-textarea.valid,.gogo-load-css textarea.materialize-textarea:focus.valid,.gogo-load-css textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #4A7874;box-shadow:0 1px 0 0 #4A7874}.gogo-load-css input[type=date]:disabled+label,.gogo-load-css input[type=date][readonly=readonly]+label,.gogo-load-css input[type=datetime-local]:disabled+label,.gogo-load-css input[type=datetime-local][readonly=readonly]+label,.gogo-load-css input[type=email]:disabled+label,.gogo-load-css input[type=email][readonly=readonly]+label,.gogo-load-css input[type=number]:disabled+label,.gogo-load-css input[type=number][readonly=readonly]+label,.gogo-load-css input[type=password]:disabled+label,.gogo-load-css input[type=password][readonly=readonly]+label,.gogo-load-css input[type=search]:disabled+label,.gogo-load-css input[type=search][readonly=readonly]+label,.gogo-load-css input[type=tel]:disabled+label,.gogo-load-css input[type=tel][readonly=readonly]+label,.gogo-load-css input[type=text]:disabled+label,.gogo-load-css input[type=text][readonly=readonly]+label,.gogo-load-css input[type=time]:disabled+label,.gogo-load-css input[type=time][readonly=readonly]+label,.gogo-load-css input[type=url]:disabled+label,.gogo-load-css input[type=url][readonly=readonly]+label,.gogo-load-css textarea.materialize-textarea:disabled+label,.gogo-load-css textarea.materialize-textarea[readonly=readonly]+label{color:rgba(0,0,0,.26)}.gogo-load-css input[type=date]:focus:not([readonly])+label,.gogo-load-css input[type=datetime-local]:focus:not([readonly])+label,.gogo-load-css input[type=email]:focus:not([readonly])+label,.gogo-load-css input[type=number]:focus:not([readonly])+label,.gogo-load-css input[type=password]:focus:not([readonly])+label,.gogo-load-css input[type=search]:focus:not([readonly])+label,.gogo-load-css input[type=tel]:focus:not([readonly])+label,.gogo-load-css input[type=text]:focus:not([readonly])+label,.gogo-load-css input[type=time]:focus:not([readonly])+label,.gogo-load-css input[type=url]:focus:not([readonly])+label,.gogo-load-css textarea.materialize-textarea:focus:not([readonly])+label{color:#4A7874}.gogo-load-css input[type=date].valid+label:after,.gogo-load-css input[type=date]:focus.valid+label:after,.gogo-load-css input[type=datetime-local].valid+label:after,.gogo-load-css input[type=datetime-local]:focus.valid+label:after,.gogo-load-css input[type=email].valid+label:after,.gogo-load-css input[type=email]:focus.valid+label:after,.gogo-load-css input[type=number].valid+label:after,.gogo-load-css input[type=number]:focus.valid+label:after,.gogo-load-css input[type=password].valid+label:after,.gogo-load-css input[type=password]:focus.valid+label:after,.gogo-load-css input[type=search].valid+label:after,.gogo-load-css input[type=search]:focus.valid+label:after,.gogo-load-css input[type=tel].valid+label:after,.gogo-load-css input[type=tel]:focus.valid+label:after,.gogo-load-css input[type=text].valid+label:after,.gogo-load-css input[type=text]:focus.valid+label:after,.gogo-load-css input[type=time].valid+label:after,.gogo-load-css input[type=time]:focus.valid+label:after,.gogo-load-css input[type=url].valid+label:after,.gogo-load-css input[type=url]:focus.valid+label:after,.gogo-load-css textarea.materialize-textarea.valid+label:after,.gogo-load-css textarea.materialize-textarea:focus.valid+label:after{content:attr(data-success);color:#4A7874;opacity:1}.gogo-load-css input[type=date].invalid,.gogo-load-css input[type=date]:focus.invalid,.gogo-load-css input[type=datetime-local].invalid,.gogo-load-css input[type=datetime-local]:focus.invalid,.gogo-load-css input[type=email].invalid,.gogo-load-css input[type=email]:focus.invalid,.gogo-load-css input[type=number].invalid,.gogo-load-css input[type=number]:focus.invalid,.gogo-load-css input[type=password].invalid,.gogo-load-css input[type=password]:focus.invalid,.gogo-load-css input[type=search].invalid,.gogo-load-css input[type=search]:focus.invalid,.gogo-load-css input[type=tel].invalid,.gogo-load-css input[type=tel]:focus.invalid,.gogo-load-css input[type=text].invalid,.gogo-load-css input[type=text]:focus.invalid,.gogo-load-css input[type=time].invalid,.gogo-load-css input[type=time]:focus.invalid,.gogo-load-css input[type=url].invalid,.gogo-load-css input[type=url]:focus.invalid,.gogo-load-css textarea.materialize-textarea.invalid,.gogo-load-css textarea.materialize-textarea:focus.invalid{border-bottom:1px solid #B90303;box-shadow:0 1px 0 0 #B90303}.gogo-load-css input[type=date].invalid+label:after,.gogo-load-css input[type=date]:focus.invalid+label:after,.gogo-load-css input[type=datetime-local].invalid+label:after,.gogo-load-css input[type=datetime-local]:focus.invalid+label:after,.gogo-load-css input[type=email].invalid+label:after,.gogo-load-css input[type=email]:focus.invalid+label:after,.gogo-load-css input[type=number].invalid+label:after,.gogo-load-css input[type=number]:focus.invalid+label:after,.gogo-load-css input[type=password].invalid+label:after,.gogo-load-css input[type=password]:focus.invalid+label:after,.gogo-load-css input[type=search].invalid+label:after,.gogo-load-css input[type=search]:focus.invalid+label:after,.gogo-load-css input[type=tel].invalid+label:after,.gogo-load-css input[type=tel]:focus.invalid+label:after,.gogo-load-css input[type=text].invalid+label:after,.gogo-load-css input[type=text]:focus.invalid+label:after,.gogo-load-css input[type=time].invalid+label:after,.gogo-load-css input[type=time]:focus.invalid+label:after,.gogo-load-css input[type=url].invalid+label:after,.gogo-load-css input[type=url]:focus.invalid+label:after,.gogo-load-css textarea.materialize-textarea.invalid+label:after,.gogo-load-css textarea.materialize-textarea:focus.invalid+label:after{content:attr(data-error);color:#B90303;opacity:1}.gogo-load-css input[type=date]+label:after,.gogo-load-css input[type=datetime-local]+label:after,.gogo-load-css input[type=email]+label:after,.gogo-load-css input[type=number]+label:after,.gogo-load-css input[type=password]+label:after,.gogo-load-css input[type=search]+label:after,.gogo-load-css input[type=tel]+label:after,.gogo-load-css input[type=text]+label:after,.gogo-load-css input[type=time]+label:after,.gogo-load-css input[type=url]+label:after,.gogo-load-css textarea.materialize-textarea+label:after{display:block;content:"";position:absolute;top:65px;opacity:0;transition:.2s opacity ease-out,.2s color ease-out}.gogo-load-css .input-field{position:relative;margin-top:1rem}.gogo-load-css .input-field label{color:#3D3D3D;position:absolute;top:.8rem;left:.75rem;font-size:1rem;cursor:text;-webkit-transition:.2s ease-out;-moz-transition:.2s ease-out;-o-transition:.2s ease-out;-ms-transition:.2s ease-out;transition:.2s ease-out}.gogo-load-css .input-field label.active{font-size:.8rem;-webkit-transform:translateY(-140%);-moz-transform:translateY(-140%);-ms-transform:translateY(-140%);-o-transform:translateY(-140%);transform:translateY(-140%)}.gogo-load-css .input-field .prefix{position:absolute;width:3rem;font-size:2rem;line-height:3rem;-webkit-transition:color .2s;-moz-transition:color .2s;-o-transition:color .2s;-ms-transition:color .2s;transition:color .2s}.gogo-load-css .input-field .prefix.active{color:#4A7874}.gogo-load-css .input-field .prefix~input,.gogo-load-css .input-field .prefix~textarea{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.gogo-load-css .input-field .prefix~textarea{padding-top:.8rem}.gogo-load-css .input-field .prefix~label{margin-left:3rem}@media only screen and (max-width:1200px){.gogo-load-css .input-field .prefix~input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width:600px){.gogo-load-css .input-field .prefix~input{width:80%;width:calc(100% - 3rem)}}.gogo-load-css .input-field input[type=search]{display:block;line-height:inherit;padding-left:4rem;width:calc(100% - 4rem)}.gogo-load-css .input-field input[type=search]:focus{background-color:#fff;border:0;box-shadow:none;color:#444}.gogo-load-css .input-field input[type=search]:focus+label i,.gogo-load-css .input-field input[type=search]:focus~.material-icons,.gogo-load-css .input-field input[type=search]:focus~.mdi-navigation-close{color:#444}.gogo-load-css .input-field input[type=search]+label{left:1rem}.gogo-load-css .input-field input[type=search]~.material-icons,.gogo-load-css .input-field input[type=search]~.mdi-navigation-close{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;transition:.3s color}.gogo-load-css textarea{width:100%;height:3rem;background-color:transparent}.gogo-load-css textarea.materialize-textarea{overflow-y:hidden;padding:1.6rem 0;resize:none;min-height:3rem}.gogo-load-css .hiddendiv{display:none;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem}.gogo-load-css [type=radio]:checked,.gogo-load-css [type=radio]:not(:checked){position:absolute;left:-9999px;visibility:hidden}.gogo-load-css [type=radio]:checked+label,.gogo-load-css [type=radio]:not(:checked)+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-transition:.28s ease;-moz-transition:.28s ease;-o-transition:.28s ease;-ms-transition:.28s ease;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.gogo-load-css [type=radio]+label:after,.gogo-load-css [type=radio]+label:before{content:'';position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;-webkit-transition:.28s ease;-moz-transition:.28s ease;-o-transition:.28s ease;-ms-transition:.28s ease;transition:.28s ease}.gogo-load-css [type=radio]:not(:checked)+label:before{border-radius:50%;border:2px solid #5a5a5a}.gogo-load-css [type=radio]:not(:checked)+label:after{border-radius:50%;border:2px solid #5a5a5a;z-index:-1;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0)}.gogo-load-css [type=radio]:checked+label:before{border-radius:50%;border:2px solid transparent}.gogo-load-css [type=radio]:checked+label:after{border-radius:50%;border:2px solid #4A7874;background-color:#4A7874;z-index:0;-webkit-transform:scale(1.02);-moz-transform:scale(1.02);-ms-transform:scale(1.02);-o-transform:scale(1.02);transform:scale(1.02)}.gogo-load-css [type=radio].with-gap:checked+label:before{border-radius:50%;border:2px solid #4A7874}.gogo-load-css [type=radio].with-gap:checked+label:after{border-radius:50%;border:2px solid #4A7874;background-color:#4A7874;z-index:0;-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);-o-transform:scale(.5);transform:scale(.5)}.gogo-load-css [type=radio].with-gap:disabled:checked+label:before{border:2px solid rgba(0,0,0,.26)}.gogo-load-css [type=radio].with-gap:disabled:checked+label:after{border:none;background-color:rgba(0,0,0,.26)}.gogo-load-css [type=radio]:disabled:checked+label:before,.gogo-load-css [type=radio]:disabled:not(:checked)+label:before{background-color:transparent;border-color:rgba(0,0,0,.26)}.gogo-load-css [type=radio]:disabled+label{color:rgba(0,0,0,.26)}.gogo-load-css [type=radio]:disabled:not(:checked)+label:before{border-color:rgba(0,0,0,.26)}.gogo-load-css [type=radio]:disabled:checked+label:after{background-color:rgba(0,0,0,.26);border-color:#BDBDBD}.gogo-load-css form p{margin-bottom:10px;text-align:left}.gogo-load-css form p:last-child{margin-bottom:0}.gogo-load-css [type=checkbox]:checked,.gogo-load-css [type=checkbox]:not(:checked){position:absolute;left:-9999px;visibility:hidden}.gogo-load-css [type=checkbox]+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;user-select:none;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.gogo-load-css [type=checkbox]+label:before{content:'';position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:2px;-webkit-transition:.1s;-moz-transition:.1s;-o-transition:.1s;-ms-transition:.1s;transition:.1s}.gogo-load-css [type=checkbox]:not(:checked):disabled+label:before{border:none;background-color:rgba(0,0,0,.26)}.gogo-load-css [type=checkbox]:checked+label:before{top:-4px;left:-3px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #4A7874;border-bottom:2px solid #4A7874;-webkit-transform:rotate(40deg);-moz-transform:rotate(40deg);-ms-transform:rotate(40deg);-o-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;-ms-transform-origin:100% 100%;-o-transform-origin:100% 100%;transform-origin:100% 100%}.gogo-load-css [type=checkbox]:checked:disabled+label:before{border-right:2px solid rgba(0,0,0,.26);border-bottom:2px solid rgba(0,0,0,.26)}.gogo-load-css [type=checkbox]:indeterminate+label:before{left:-10px;top:-11px;width:10px;height:22px;border-top:none;border-left:none;border-right:2px solid #4A7874;border-bottom:none;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);-webkit-backface-visibility:hidden;-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;-ms-transform-origin:100% 100%;-o-transform-origin:100% 100%;transform-origin:100% 100%}.gogo-load-css [type=checkbox]:indeterminate:disabled+label:before{border-right:2px solid rgba(0,0,0,.26);background-color:transparent}.gogo-load-css [type=checkbox].filled-in+label:after{border-radius:2px}.gogo-load-css [type=checkbox].filled-in+label:after,.gogo-load-css [type=checkbox].filled-in+label:before{content:'';left:0;position:absolute;transition:border .25s,background-color .25s,width .2s .1s,height .2s .1s,top .2s .1s,left .2s .1s;z-index:1}.gogo-load-css [type=checkbox].filled-in:not(:checked)+label:before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:20% 40%;transform-origin:100% 100%}.gogo-load-css [type=checkbox].filled-in:not(:checked)+label:after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0;z-index:0}.gogo-load-css [type=checkbox].filled-in:checked+label:before{top:0;left:1px;width:8px;height:13px;border-top:none;border-left:none;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.gogo-load-css [type=checkbox].filled-in:checked+label:after{top:0;width:20px;height:20px;border:2px solid #4A7874;background-color:#4A7874;z-index:0}.gogo-load-css [type=checkbox].filled-in:disabled:not(:checked)+label:before{background-color:transparent;border:2px solid transparent}.gogo-load-css [type=checkbox].filled-in:disabled:not(:checked)+label:after{border-color:transparent;background-color:#BDBDBD}.gogo-load-css [type=checkbox].filled-in:disabled:checked+label:before{background-color:transparent}.gogo-load-css [type=checkbox].filled-in:disabled:checked+label:after{background-color:#BDBDBD;border-color:#BDBDBD}.gogo-load-css .switch,.gogo-load-css .switch *{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.gogo-load-css .switch label{cursor:pointer}.gogo-load-css .switch label input[type=checkbox]{opacity:0;width:0;height:0}.gogo-load-css .switch label input[type=checkbox]:checked+.lever{background-color:#a1a1a1}.gogo-load-css .switch label input[type=checkbox]:checked+.lever:after{background-color:#4A7874}.gogo-load-css .switch label .lever{content:"";display:inline-block;position:relative;width:40px;height:15px;background-color:#818181;border-radius:15px;transition:background .3s ease;vertical-align:middle;margin:0 16px}.gogo-load-css .switch label .lever:after{content:"";position:absolute;display:inline-block;width:21px;height:21px;background-color:#F1F1F1;border-radius:21px;box-shadow:0 1px 3px 1px rgba(0,0,0,.4);left:-5px;top:-3px;transition:left .3s ease,background .3s ease,box-shadow .1s ease}.gogo-load-css input[type=checkbox]:checked:not(:disabled)~.lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,.4),0 0 0 15px rgba(74,120,116,.1)}.gogo-load-css input[type=checkbox]:not(:disabled)~.lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,.4),0 0 0 15px rgba(0,0,0,.08)}.gogo-load-css .switch label input[type=checkbox]:checked+.lever:after{left:24px}.gogo-load-css .switch input[type=checkbox][disabled]+.lever{cursor:default}.gogo-load-css .switch label input[type=checkbox][disabled]+.lever:after,.gogo-load-css .switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#BDBDBD}.gogo-load-css .select-label{position:absolute}.gogo-load-css .select-wrapper{position:relative}.gogo-load-css .select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:none;border-bottom:1px solid #3D3D3D;outline:0;height:3rem;line-height:3rem;width:100%;font-size:1rem;margin:0 0 15px;padding:0;display:block}.gogo-load-css .gogo-theme-default.gogocarto-container .directory-menu-header .shadow-bottom,.gogo-load-css .gogo-theme-default.gogocarto-container .element-item .collapsible-header-more .inline-option-values .icon,.gogo-load-css .gogo-theme-default.gogocarto-container .show-directory-menu-button .arrow-right,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .checkbox-wrapper,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategory-item .arrow-after,.gogo-load-css .leaflet-control-layers .leaflet-control-layers-list,.gogo-load-css .leaflet-control-layers-expanded .leaflet-control-layers-toggle,.gogo-load-css select{display:none}.gogo-load-css .select-wrapper span.caret{color:initial;position:absolute;right:0;top:16px;font-size:10px}.gogo-load-css .select-wrapper span.caret.disabled{color:rgba(0,0,0,.26)}.gogo-load-css .select-wrapper+label{position:absolute;top:-14px;font-size:.8rem}.gogo-load-css select.browser-default{display:block}.gogo-load-css select:disabled{color:rgba(0,0,0,.3)}.gogo-load-css .select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,.3);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;border-bottom:1px solid rgba(0,0,0,.3)}.gogo-load-css .select-wrapper i{color:rgba(0,0,0,.3)}.gogo-load-css .select-dropdown li.disabled{color:rgba(0,0,0,.3);background-color:transparent}.gogo-load-css .file-field{position:relative}.gogo-load-css .file-field .file-path-wrapper{overflow:hidden;padding-left:10px}.gogo-load-css .file-field input.file-path{width:100%}.gogo-load-css .file-field .btn,.gogo-load-css .file-field .btn-large{float:left;height:3rem;line-height:3rem}.gogo-load-css .file-field span{cursor:pointer}.gogo-load-css .file-field input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;width:100%;margin:0;padding:0;font-size:20px;cursor:pointer;opacity:0;filter:alpha(opacity=0)}.gogo-load-css select{background-color:rgba(255,255,255,.9);width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.gogo-load-css .preloader-wrapper{display:inline-block;position:relative;width:48px;height:48px}.gogo-load-css .preloader-wrapper.small{width:36px;height:36px}.gogo-load-css .preloader-wrapper.big{width:64px;height:64px}.gogo-load-css .preloader-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{transform:rotate(360deg)}}.gogo-load-css .spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:#4A7874}.gogo-load-css .spinner-blue,.gogo-load-css .spinner-blue-only{border-color:#4285f4}.gogo-load-css .spinner-red,.gogo-load-css .spinner-red-only{border-color:#db4437}.gogo-load-css .spinner-yellow,.gogo-load-css .spinner-yellow-only{border-color:#f4b400}.gogo-load-css .spinner-green,.gogo-load-css .spinner-green-only{border-color:#0f9d58}.gogo-load-css .active .spinner-layer.spinner-blue{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,blue-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,blue-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.gogo-load-css .active .spinner-layer.spinner-red{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,red-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,red-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.gogo-load-css .active .spinner-layer.spinner-yellow{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.gogo-load-css .active .spinner-layer.spinner-green{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,green-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,green-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.gogo-load-css .active .spinner-layer,.gogo-load-css .active .spinner-layer.spinner-blue-only,.gogo-load-css .active .spinner-layer.spinner-green-only,.gogo-load-css .active .spinner-layer.spinner-red-only,.gogo-load-css .active .spinner-layer.spinner-yellow-only{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{100%,25%,90%,from{opacity:1}26%,89%{opacity:0}}@keyframes blue-fade-in-out{100%,25%,90%,from{opacity:1}26%,89%{opacity:0}}@-webkit-keyframes red-fade-in-out{15%,51%,from{opacity:0}25%,50%{opacity:1}}@keyframes red-fade-in-out{15%,51%,from{opacity:0}25%,50%{opacity:1}}@-webkit-keyframes yellow-fade-in-out{40%,76%,from{opacity:0}50%,75%{opacity:1}}@keyframes yellow-fade-in-out{40%,76%,from{opacity:0}50%,75%{opacity:1}}@-webkit-keyframes green-fade-in-out{100%,65%,from{opacity:0}75%,90%{opacity:1}}@keyframes green-fade-in-out{100%,65%,from{opacity:0}75%,90%{opacity:1}}.gogo-load-css .gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gogo-load-css .gap-patch .circle{width:1000%;left:-450%}.gogo-load-css .circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.gogo-load-css .circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent!important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.gogo-load-css .circle-clipper.left .circle{left:0;border-right-color:transparent!important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.gogo-load-css .circle-clipper.right .circle{left:-100%;border-left-color:transparent!important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.gogo-load-css .active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.gogo-load-css .active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes left-spin{from,to{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}}@keyframes left-spin{from,to{transform:rotate(130deg)}50%{transform:rotate(-5deg)}}@-webkit-keyframes right-spin{from,to{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}}@keyframes right-spin{from,to{transform:rotate(-130deg)}50%{transform:rotate(5deg)}}.gogo-load-css #spinnerContainer.cooldown{-webkit-animation:container-rotate 1568ms linear infinite,fade-out .4s cubic-bezier(.4,0,.2,1);animation:container-rotate 1568ms linear infinite,fade-out .4s cubic-bezier(.4,0,.2,1)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.gogo-load-css .leaflet-image-layer,.gogo-load-css .leaflet-layer,.gogo-load-css .leaflet-marker-icon,.gogo-load-css .leaflet-marker-shadow,.gogo-load-css .leaflet-pane,.gogo-load-css .leaflet-pane>canvas,.gogo-load-css .leaflet-pane>svg,.gogo-load-css .leaflet-tile,.gogo-load-css .leaflet-tile-container,.gogo-load-css .leaflet-zoom-box{position:absolute;left:0;top:0}.gogo-load-css .leaflet-marker-icon,.gogo-load-css .leaflet-marker-shadow,.gogo-load-css .leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.gogo-load-css .leaflet-tile::selection{background:0 0}.gogo-load-css .leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.gogo-load-css .leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.gogo-load-css .leaflet-marker-icon,.gogo-load-css .leaflet-marker-shadow{display:block}.gogo-load-css .leaflet-container .leaflet-marker-pane img,.gogo-load-css .leaflet-container .leaflet-overlay-pane svg,.gogo-load-css .leaflet-container .leaflet-shadow-pane img,.gogo-load-css .leaflet-container .leaflet-tile,.gogo-load-css .leaflet-container .leaflet-tile-pane img,.gogo-load-css .leaflet-container img.leaflet-image-layer{max-width:none!important;max-height:none!important}.gogo-load-css .leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.gogo-load-css .leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.gogo-load-css .leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.gogo-load-css .leaflet-container{overflow:hidden;-webkit-tap-highlight-color:transparent;background:#ddd;outline:0;font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}.gogo-load-css .leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4);color:#0078A8}.gogo-load-css .leaflet-tile{filter:inherit;visibility:hidden}.gogo-load-css .leaflet-tile-loaded{visibility:inherit}.gogo-load-css .leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.gogo-load-css .leaflet-overlay-pane svg{-moz-user-select:none}.gogo-load-css .leaflet-pane{z-index:400}.gogo-load-css .leaflet-tile-pane{z-index:200}.gogo-load-css .leaflet-overlay-pane{z-index:400}.gogo-load-css .leaflet-shadow-pane{z-index:500}.gogo-load-css .leaflet-marker-pane{z-index:600}.gogo-load-css .leaflet-tooltip-pane{z-index:650}.gogo-load-css .leaflet-popup-pane{z-index:700}.gogo-load-css .leaflet-map-pane canvas{z-index:100}.gogo-load-css .leaflet-map-pane svg{z-index:200}.gogo-load-css .leaflet-vml-shape{width:1px;height:1px}.gogo-load-css .lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.gogo-load-css .leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto;float:left;clear:both}.gogo-load-css .leaflet-bottom,.gogo-load-css .leaflet-top{position:absolute;z-index:1000;pointer-events:none}.gogo-load-css .leaflet-top{top:0}.gogo-load-css .leaflet-right{right:0}.gogo-load-css .leaflet-bottom{bottom:0}.gogo-load-css .leaflet-left{left:0}.gogo-load-css .leaflet-right .leaflet-control{float:right;margin-right:10px}.gogo-load-css .leaflet-top .leaflet-control{margin-top:10px}.gogo-load-css .leaflet-bottom .leaflet-control{margin-bottom:10px}.gogo-load-css .leaflet-left .leaflet-control{margin-left:10px}.gogo-load-css .leaflet-fade-anim .leaflet-tile{will-change:opacity}.gogo-load-css .leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.gogo-load-css .leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.gogo-load-css .leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}.gogo-load-css .leaflet-zoom-anim .leaflet-zoom-animated{will-change:transform;-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.gogo-load-css .leaflet-pan-anim .leaflet-tile,.gogo-load-css .leaflet-zoom-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.gogo-load-css .leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.gogo-load-css .leaflet-interactive{cursor:pointer}.gogo-load-css .leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.gogo-load-css .leaflet-crosshair,.gogo-load-css .leaflet-crosshair .leaflet-interactive{cursor:crosshair}.gogo-load-css .leaflet-control,.gogo-load-css .leaflet-popup-pane{cursor:auto}.gogo-load-css .leaflet-dragging .leaflet-grab,.gogo-load-css .leaflet-dragging .leaflet-grab .leaflet-interactive,.gogo-load-css .leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.gogo-load-css .leaflet-image-layer,.gogo-load-css .leaflet-marker-icon,.gogo-load-css .leaflet-marker-shadow,.gogo-load-css .leaflet-pane>svg path,.gogo-load-css .leaflet-tile-container{pointer-events:none}.gogo-load-css .leaflet-image-layer.leaflet-interactive,.gogo-load-css .leaflet-marker-icon.leaflet-interactive,.gogo-load-css .leaflet-pane>svg path.leaflet-interactive,.gogo-load-css svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.gogo-load-css .leaflet-container a.leaflet-active{outline:orange solid 2px}.gogo-load-css .leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,.5)}.gogo-load-css .leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.gogo-load-css .leaflet-bar a,.gogo-load-css .leaflet-bar a:hover{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.gogo-load-css .leaflet-bar a,.gogo-load-css .leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.gogo-load-css .leaflet-bar a:hover{background-color:#f4f4f4}.gogo-load-css .leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.gogo-load-css .leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.gogo-load-css .leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.gogo-load-css .leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.gogo-load-css .leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.gogo-load-css .leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.gogo-load-css .leaflet-control-zoom-in,.gogo-load-css .leaflet-control-zoom-out{font:700 18px 'Lucida Console',Monaco,monospace;text-indent:1px}.gogo-load-css .leaflet-touch .leaflet-control-zoom-in,.gogo-load-css .leaflet-touch .leaflet-control-zoom-out{font-size:22px}.gogo-load-css .leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.gogo-load-css .leaflet-control-layers-toggle{background-image:url(images/layers.png);width:36px;height:36px}.gogo-load-css .leaflet-retina .leaflet-control-layers-toggle{background-image:url(images/layers-2x.png);background-size:26px 26px}.gogo-load-css .leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.gogo-load-css .leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.gogo-load-css .leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.gogo-load-css .leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.gogo-load-css .leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.gogo-load-css .leaflet-control-layers label{display:block}.gogo-load-css .leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.gogo-load-css .leaflet-default-icon-path{background-image:url(images/marker-icon.png)}.gogo-load-css .leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,.7);margin:0}.gogo-load-css .leaflet-control-attribution,.gogo-load-css .leaflet-control-scale-line{padding:0 5px;color:#333}.gogo-load-css .leaflet-control-attribution a{text-decoration:none}.gogo-load-css .leaflet-control-attribution a:hover{text-decoration:underline}.gogo-load-css .leaflet-container .leaflet-control-attribution,.gogo-load-css .leaflet-container .leaflet-control-scale{font-size:11px}.gogo-load-css .leaflet-left .leaflet-control-scale{margin-left:5px}.gogo-load-css .leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.gogo-load-css .leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;font-size:11px;white-space:nowrap;overflow:hidden;-moz-box-sizing:border-box;box-sizing:border-box;background:#fff;background:rgba(255,255,255,.5)}.gogo-load-css .leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.gogo-load-css .leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.gogo-load-css .leaflet-touch .leaflet-bar,.gogo-load-css .leaflet-touch .leaflet-control-attribution,.gogo-load-css .leaflet-touch .leaflet-control-layers{box-shadow:none}.gogo-load-css .leaflet-touch .leaflet-bar,.gogo-load-css .leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.gogo-load-css .leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.gogo-load-css .leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.gogo-load-css .leaflet-popup-content{margin:13px 19px;line-height:1.4}.gogo-load-css .leaflet-popup-content p{margin:18px 0}.gogo-load-css .leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none}.gogo-load-css .leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.gogo-load-css .leaflet-popup-content-wrapper,.gogo-load-css .leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px rgba(0,0,0,.4)}.gogo-load-css .leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;padding:4px 4px 0 0;border:none;text-align:center;width:18px;height:14px;font:16px/14px Tahoma,Verdana,sans-serif;color:#c3c3c3;text-decoration:none;font-weight:700;background:0 0}.gogo-load-css .leaflet-container a.leaflet-popup-close-button:hover{color:#999}.gogo-load-css .leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.gogo-load-css .leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.gogo-load-css .leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678, M12=.70710678, M21=-.70710678, M22=.70710678)}.gogo-load-css .leaflet-oldie .leaflet-popup-tip-container{margin-top:-1px}.gogo-load-css .leaflet-oldie .leaflet-control-layers,.gogo-load-css .leaflet-oldie .leaflet-control-zoom,.gogo-load-css .leaflet-oldie .leaflet-popup-content-wrapper,.gogo-load-css .leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.gogo-load-css .leaflet-div-icon{background:#fff;border:1px solid #666}.gogo-load-css .leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,.4)}.gogo-load-css .gogo-theme-default.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value,.gogo-load-css .gogo-theme-default.gogocarto-container .element-item .collapsible-header-more .inline-option-values .option-value{color:inherit}.gogo-load-css .leaflet-tooltip.leaflet-clickable{cursor:pointer;pointer-events:auto}.gogo-load-css .leaflet-tooltip-bottom:before,.gogo-load-css .leaflet-tooltip-left:before,.gogo-load-css .leaflet-tooltip-right:before,.gogo-load-css .leaflet-tooltip-top:before{position:absolute;pointer-events:none;border:6px solid transparent;background:0 0;content:""}.gogo-load-css .leaflet-tooltip-bottom{margin-top:6px}.gogo-load-css .leaflet-tooltip-top{margin-top:-6px}.gogo-load-css .leaflet-tooltip-bottom:before,.gogo-load-css .leaflet-tooltip-top:before{left:50%;margin-left:-6px}.gogo-load-css .leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.gogo-load-css .leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.gogo-load-css .leaflet-tooltip-left{margin-left:-6px}.gogo-load-css .leaflet-tooltip-right{margin-left:6px}.gogo-load-css .leaflet-tooltip-left:before,.gogo-load-css .leaflet-tooltip-right:before{top:50%;margin-top:-6px}.gogo-load-css .leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.gogo-load-css .leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}.gogo-load-css .leaflet-cluster-anim .leaflet-marker-icon,.gogo-load-css .leaflet-cluster-anim .leaflet-marker-shadow{-webkit-transition:-webkit-transform .3s ease-out,opacity .3s ease-in;-moz-transition:-moz-transform .3s ease-out,opacity .3s ease-in;-o-transition:-o-transform .3s ease-out,opacity .3s ease-in;transition:transform .3s ease-out,opacity .3s ease-in}.gogo-load-css .leaflet-cluster-spider-leg{-webkit-transition:-webkit-stroke-dashoffset .3s ease-out,-webkit-stroke-opacity .3s ease-in;-moz-transition:-moz-stroke-dashoffset .3s ease-out,-moz-stroke-opacity .3s ease-in;-o-transition:-o-stroke-dashoffset .3s ease-out,-o-stroke-opacity .3s ease-in;transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.gogo-load-css .gogo-theme-default.gogocarto-container .element-item .collapsible-header-more .inline-option-values .inline-option-value:not(:last-child):after{content:",";margin-right:5px}.gogo-load-css .gogo-theme-default.gogocarto-container .subcategorie-option-item .icon{background-color:transparent}.gogo-load-css .gogo-theme-transiscope.gogocarto-container{font-size:14px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .shadow-bottom{border-top:none;width:calc(100% - 15px)}@media (min-width:850px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header{width:calc(100% + 15px);border-radius:0 8px 8px 0}}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container{padding-left:.5rem;padding-right:.9rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container .search-icon{font-size:1.1rem;height:2.5rem;line-height:2.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container .search-icon:before{line-height:2.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container .search-icon.search-bar-icon{left:1.4rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container .search-icon.search-geolocalize{right:2.3rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container .search-bar{border-radius:0;height:2.5rem;padding:3px 3rem 0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-with-options-container .search-bar-container #search-spinner-loader{top:10px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories{border-left:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categorie-main-title{height:2.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content ul{padding-right:10px;padding-left:5px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item{margin-bottom:3px;padding-left:0;line-height:2.5rem;height:2.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item.expanded{margin-bottom:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item.disabled .icon{background-color:transparent;opacity:1}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .option-name{font-weight:500;font-size:13px;padding-left:.6rem;-webkit-transition:color .1s;-moz-transition:color .1s;-o-transition:color .1s;-ms-transition:color .1s;transition:color .1s}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .elements-by-category-count{position:initial;margin-left:10px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item.expanded .option-name .arrow-after,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item.expanded .option-name:hover .arrow-after{margin-bottom:-3px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon{padding-top:.2rem;font-size:17px;height:2.5rem;width:2.5rem;margin-right:0;-webkit-transition:color .3s;-moz-transition:color .3s;-o-transition:color .3s;-ms-transition:color .3s;transition:color .3s}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon.fa.fa-link,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon.fa.fa-recycle{padding-top:.8rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item img.icon{padding:7px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon.fa,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon.fab,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon.far,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item .icon.fas{padding-top:.7rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item:not(.expanded) .option-name .arrow-after{opacity:1}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategorie-option-item.expanded .option-name .arrow-after{opacity:1;top:.9rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategory-item .name-wrapper{margin-left:2.5rem;margin-right:0;font-weight:900}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategory-item .checkbox-wrapper{left:-2px;top:0;right:initial}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategory-item .checkbox-wrapper [type=checkbox].filled-in+label:after{background-color:transparent;border:none;-webkit-transition:none;-moz-transition:none;-o-transition:none;-ms-transition:none;transition:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategory-item .checkbox-wrapper [type=checkbox].filled-in+label:before{top:7px;width:9px;height:15px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .subcategory-item .checkbox-wrapper [type=checkbox].filled-in:not(:checked)+label:before{-webkit-transition:none;-moz-transition:none;-o-transition:none;-ms-transition:none;transition:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal){margin-left:0!important;margin-bottom:6px;border:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item{line-height:3rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .name-wrapper{font-size:.8rem;margin-left:2.4rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .checkbox-wrapper{left:-4px;top:7px;transform:scale(.9)}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item{margin-bottom:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .option-name{font-size:.8rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon{font-size:.85rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item img.icon{padding:12px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.fa,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.fab,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.far,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.fas{padding-top:.9rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .arrow-after{position:absolute;right:1rem;top:1.2rem;border-radius:1px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .option-name:hover .arrow-after{margin-right:-1px;margin-top:-1px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .show-only-container .subcategorie-option-item .icon{padding-top:3px;padding-left:10px;background-color:transparent}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .show-only-title{padding:0;margin-left:1rem;border:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-menu #directory-menu-main-container .sub-categories .sub-categories-content .show-only-title .name-wrapper{margin-left:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-popup{opacity:1}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-cluster div{font-size:15px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-cluster.marker-cluster-small div{background-color:#f8ab00}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-cluster.marker-cluster-medium div{background-color:#f78b16}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-cluster.marker-cluster-large div{background-color:#f5701e}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element .menu-element-item .menu-icon.gogo-icon-star-full:before,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-wrapper .marker-mini-icon-container .marker-mini-icon:before{background-color:#f09b00}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-cluster.marker-cluster-large.xl div{width:54px;height:54px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-cluster.marker-cluster-large.xl div span{line-height:54px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .marker-wrapper .marker-mini-icon-container{color:#fff}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-header .name{font-weight:900}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-header .collapsible-header-more{line-height:1.3rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-header .element-main-icon{display:none!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .expand-label,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .element-item.active .inline-option-values,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .option-value .icon:not(.gogo-icon-external-link),.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .info-bar-divider,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .show-directory-menu-button .text,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .show-directory-menu-button i{display:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-header .collapsible-header-title .gogo-icon-close:before{border-radius:3px;padding:2px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element-item-text{text-transform:uppercase;line-height:3rem;margin-left:10px;font-size:12px}@media (max-width:460px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element.full-text{padding:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element-item{margin:0 .5rem!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element-item .menu-element-item-text{font-size:11px;margin-left:5px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element-item .menu-icon{font-size:16px}}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .collapsible-body-main-content{padding:0 0 1rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field-textarea{line-height:1.3rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field{line-height:1.5rem;padding:.8rem 1rem .8rem 1.5rem}@media only screen and (max-width:600px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field{padding-left:.8rem}}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field.field-taxonomy{padding:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field.field-taxonomy h3.category-name{margin-left:0;margin-bottom:0;padding-bottom:1rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field.field-textarea.first-element-of-body-content{padding-top:1.3rem;padding-bottom:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field+.field{padding-top:0;margin-top:-.4rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body h3{font-weight:900;padding-left:1.5rem}@media only screen and (max-width:600px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body h3{padding-left:.8rem}}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body h3.first-element-of-body-content{padding-top:1.2rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body p{padding-left:1.5rem;padding-right:1rem;line-height:2rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .other-infos .field{margin-bottom:.4rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value{margin-bottom:0;border-left:10px solid;padding-left:1rem;line-height:2.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .option-name{line-height:2.5rem;flex-grow:1}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .icon:not(.gogo-icon-external-link){margin-right:10px;font-size:.9rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.inline:not(.first){border:none;padding-left:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .option-description{font-size:.8rem;padding:3px .5rem;line-height:1.7}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .row:last-child .option-description,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .row:last-child .option-value{min-height:1.8rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper{border:none;margin-left:0;padding-left:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .category-name{padding-left:1.5rem;padding-bottom:.5rem!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .option-value{padding-left:.9rem;margin-top:0;line-height:1.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .option-value .option-name{color:inherit;margin-left:4px;line-height:1.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .option-value .option-name:before{content:"➡";font-size:1.2rem;margin-right:6px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .category-wrapper{margin-left:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .category-wrapper .option-name{margin-left:15px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field-openhours .day:after{content:"➡";font-size:1.2rem;margin:0 8px 0 10px;float:right}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field-tags{margin-top:1rem!important;margin-bottom:-10px;text-align:center}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-body .field-tags .gogo-tag{border-radius:0;padding:4px 14px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .menu-element .menu-element-item .menu-icon.gogo-icon-star-full{color:#fff}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values{width:calc(100% - 140px);font-weight:400}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value{margin-right:20px;display:inline-block}@media only screen and (min-width:601px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .icon{margin-right:5px;font-size:.9rem;padding-top:.6rem;background-color:transparent}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .icon.disabled{color:#bbb}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .option-value{line-height:2rem;font-style:normal;font-weight:400}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .option-value.same-icon-as-last-item{margin-left:-17px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .option-value.same-icon-as-last-item:before{content:"+";margin-right:5px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #map-features-buttons{top:140px}}@media only screen and (max-width:600px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value{margin-right:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .option-value,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value[main-category-owner-name=Sources]{display:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .icon{color:#fff;border-radius:50%;line-height:10px;font-size:.9rem;padding:10px 9px;margin-right:5px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .inline-option-values .inline-option-value .icon.disabled{color:#aba8a8;background-color:#eaeaea}}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .collapsible-header-more .inline-option-values .option-value,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .gogo-map-control .gogo-icon-list{color:inherit}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .collapsible-header .custom-header{margin-bottom:.8rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .expand-label{width:auto;float:right;border:2px solid;padding:8px 15px!important;text-align:center;border-radius:20px;margin-top:-3px;margin-right:-.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item .expand-label:before{margin-right:8px;border-radius:50%;padding:0 4px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item.active .expand-label:before{content:"-";padding:0 6px 1px;font-weight:900;font-size:16px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .element-item:not(.active) .expand-label:before{content:"+"}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header{padding:.5rem 0 .5rem .5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .collapsible-header-title{padding-bottom:1rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .collapsible-header-title .gogo-icon-close{font-size:.8rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .name{font-size:1.4rem;line-height:1.8rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .gogo-icon-close{font-size:.9rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .collapsible-header .name{font-size:15px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .element-item.active .collapsible-header-title{padding-top:1.2rem;padding-bottom:1rem}@media (min-width:850px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .element-item.active .collapsible-header-title{padding-left:2rem}}@media only screen and (max-width:600px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .element-item .expand-label{margin-right:10px;font-size:13px;font-weight:900;padding:8px 10px!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .element-item.active .expand-label.transform-big{padding:8px 10px!important}}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #element-info-bar.display-bottom .element-item.active .collapsible-header{padding-bottom:.4rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .leaflet-control-layers{margin-right:17px!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .gogo-map-control{text-transform:uppercase;font-weight:700;font-size:12px!important;line-height:22px;padding:5px 15px;-webkit-box-shadow:1px 2px 4px 1px rgba(0,0,0,.12);-moz-box-shadow:1px 2px 4px 1px rgba(0,0,0,.12);box-shadow:1px 2px 4px 1px rgba(0,0,0,.12)}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #map-gogo-controls{width:100%}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .leaflet-control-zoom.leaflet-bar.leaflet-control{margin-top:60px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .show-as-list-button{position:absolute;right:20px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .show-directory-menu-button{position:absolute;left:-20px;top:80px;padding:10px 5px 3px 10px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .show-directory-menu-button .arrow-right{margin:10px 0 10px 4px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-list-header{text-align:left}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-list-header .show-as-map-button{height:2rem;line-height:2rem;border-radius:5px;top:15px;padding:0 15px;left:initial!important;text-transform:uppercase;text-decoration:none;font-size:.8rem;font-weight:700;float:right;margin-top:12px;margin-right:-8px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-list-header .show-as-map-button .btn-back{font-size:1.2rem;margin-right:10px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-list-header .show-directory-menu-button{top:0;left:-40px;border-radius:0 0 5px;padding-bottom:0;padding-top:6px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}@media (min-width:1500px){.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-list-header .show-directory-menu-button{left:0}}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item:not(.active){-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .collapsible-body{border-bottom:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .section{margin-right:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .inline-option-values{width:100%;padding:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .inline-option-values .inline-option-value[main-category-owner-name=Sources]{float:right;margin-right:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .menu-element{padding:0 10px 5px 0;justify-content:flex-end;min-height:2.3rem!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .menu-element .menu-element-item .menu-icon{font-size:18px!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .menu-element .menu-element-item .menu-icon:before{line-height:2.3rem!important}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .menu-element .menu-element-item-text{font-size:11px;line-height:2.5rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .location{font-weight:400}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .location .postalCode{font-size:14px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .collapsible-body-main-content{padding-bottom:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .collapsible-body .tags-container{margin-bottom:0;padding-bottom:1rem}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .element-item .section-taxonomy .category-wrapper:last-child .option-value:last-child{margin-bottom:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #directory-content-list .collapsible.popout>li{margin-bottom:3px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile .feature-button{margin-right:0;float:left}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile #mobile-search-icon{border-radius:8px 0 0 8px;margin-right:2px}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .collapsible-header-more .inline-option-values .inline-option-value:not(:last-child):after,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .collapsible-header-more .inline-option-values .inline-option-value:not(:last-child):after{margin-right:5px;content:","}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile #mobile-filters-icon{border-radius:0 8px 8px 0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile #mobile-filters-icon img{display:inline-block}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .collapsible-header-more .inline-option-values .icon,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.inline .icon,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .collapsible-header-more .inline-option-values .icon,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .show-directory-menu-button .arrow-right,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile #mobile-filters-icon.with-image i{display:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile .show-as-list-button,.gogo-load-css .gogo-theme-transiscope.gogocarto-container #gogo-controls-mobile .show-as-map-button{border-radius:8px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .custom-scroll-bar-light::-webkit-scrollbar-track,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .dropdown-content::-webkit-scrollbar-track{background-color:transparent;border:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .custom-scroll-bar-light::-webkit-scrollbar,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .dropdown-content::-webkit-scrollbar{width:13px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .custom-scroll-bar-light::-webkit-scrollbar-thumb,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .dropdown-content::-webkit-scrollbar-thumb{border-radius:0;background-color:#fff}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .custom-scroll-bar::-webkit-scrollbar-track{border:none}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .custom-scroll-bar::-webkit-scrollbar{width:18px}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .custom-scroll-bar::-webkit-scrollbar-thumb{border-radius:0}.gogo-load-css .gogo-theme-transiscope.gogocarto-container .btn,.gogo-load-css .gogo-theme-transiscope.gogocarto-container .btn-large{font-weight:700;box-shadow:none;border-radius:none;font-size:.9rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .subcategorie-option-item .icon{background-color:transparent}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .sub-categories{padding-left:7px;padding-right:4px;background-color:#eee}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.fa,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.fab,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.far,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.fas,.gogo-load-css .gogocarto-container #directory-menu.small-width .sub-categories .sub-categories-content{padding-right:0}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .sub-categories .sub-categorie-main-title{letter-spacing:1.5px;font-size:1.1rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .sub-categories .sub-categories-content{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.fa.active,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.fab.active,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.far.active,.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.main-icon.fas.active{padding-left:5px}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .search-bar-container .search-bar{height:2.5rem;padding-top:4px;padding-left:3.2rem;transition:padding .3s;-webkit-transition:padding .3s;-moz-transition:padding .3s;-o-transition:padding .3s}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .directory-menu-header .search-bar-container .search-icon.search-geolocalize{line-height:3rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .directory-menu-header .search-bar-container .search-icon.search-bar-icon{position:absolute;font-size:1.2rem;left:auto;color:#fff;height:2.5rem;padding:0 .6rem;border-radius:5px 0 0 5px;line-height:2.8rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .directory-menu-header .search-bar-container .search-icon.search-bar-icon.loading{padding:0 1.2rem}@media (min-width:850px){.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .search-bar-container{padding-left:6px}}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .directory-menu-header .search-bar-container #search-spinner-loader{top:10px;left:8px}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories{width:3.8rem;position:relative}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .main-gogo-icon-background{position:absolute;top:.6rem;border-radius:5px 0 0 5px;left:5px;height:3.3rem!important;margin-top:1px;width:auto!important;right:0}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu.small-width .main-categories .main-gogo-icon-background{left:0;height:3rem!important;margin-top:3px}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon:before{left:1.1rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu .main-categories .icon.active:before{left:1.3rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu.small-width .main-categories .icon.active:before{left:.8rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu #main-option-gogo-icon-all{padding-right:0!important;padding-left:0}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu #main-option-gogo-icon-all.active{padding-left:7px}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu.small-width #main-option-gogo-icon-all{padding-right:2px!important;padding-left:0}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container #directory-menu.small-width #main-option-gogo-icon-all.active{padding-left:0}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .info-bar-divider{background-color:transparent!important;background-image:linear-gradient(to right,#6b7e9b 33%,rgba(255,255,255,0) 0);background-position:bottom;background-size:6px 2px;background-repeat:repeat-x;margin-top:1rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .sectionOpenHours .openHours{font-size:.95rem}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.inline{font-style:normal!important}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .gogo-load-css .marker-icon.icon-ruche{line-height:22px!important}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .gogo-load-css .icon-ruche{padding-top:0!important}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .gogo-load-css .icon.gogo-icon-star-full{padding-top:2px!important}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .gogo-load-css .icon.gogo-icon-star-full:before{color:#cc8901;background-color:transparent}.gogo-load-css .gogo-theme-presdecheznous.gogocarto-container .gogo-load-css .gogo-map-control{border:1px dashed #a5a5a5}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .collapsible-body .category-wrapper .option-value{color:inherit}.gogo-load-css .gogo-theme-flat.gogocarto-container .shadow-bottom,.gogo-load-css .gogocarto-container #directory-menu #main-option-all.show-one-pane-per-main-option .gogo-icon-name-wrapper:hover .elements-by-category-count{display:none!important}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .collapsible-header-more .inline-option-values .option-value{color:inherit}.gogo-load-css .gogo-theme-flat.gogocarto-container .subcategorie-option-item .icon{background-color:transparent}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-menu,.gogo-load-css .gogo-theme-flat.gogocarto-container #element-info-bar.display-aside{box-shadow:0 0 0 1px rgba(99,114,130,.16),0 8px 16px rgba(27,39,51,.08)}@media (min-width:850px){.gogo-load-css .gogo-theme-flat.gogocarto-container .search-bar-container .search-bar{text-transform:none!important;font-size:.9rem!important}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header{width:100%;border-radius:0}}.gogo-load-css .gogo-theme-flat.gogocarto-container .show-directory-menu-button .arrow-right{display:none}.gogo-load-css .gogo-theme-flat.gogocarto-container #map-gogo-controls .gogo-map-control{font-weight:600;padding-right:13px}.gogo-load-css .gogo-theme-flat.gogocarto-container .leaflet-control-layers-base label{border:none}.gogo-load-css .gogo-theme-flat.gogocarto-container .leaflet-control-layers-list{padding:8px 0}.gogo-load-css .gogo-theme-flat.gogocarto-container .leaflet-control-layers-base label:hover{background-color:rgba(123,123,123,.09)}.gogo-load-css .gogo-theme-flat.gogocarto-container .search-bar-container .search-bar{font-weight:600;box-shadow:none!important}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-content-list .collapsible.popout>li{margin-bottom:4px;box-shadow:none;border-radius:3px}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-content-list .collapsible.popout>li .collapsible-header{border:none;border-radius:3px;padding-bottom:1px}@media (min-width:850px){.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .menu-element.full-text{padding:0 0 6px}}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .menu-element.full-text .menu-element-item-text{text-transform:capitalize;font-weight:600}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item h3{font-size:1rem;text-transform:none}.gogo-load-css .gogo-theme-flat.gogocarto-container #element-info-bar .element-item.active .expand-label.transform-big{box-shadow:none;border-radius:5px}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .field b{font-weight:600}@media only screen and (min-width:601px){.gogo-load-css .gogo-theme-flat.gogocarto-container .gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item .menu-icon{font-size:1.2rem}}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-content-list .element-item .name{font-size:1rem}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-content-list .element-item .name .location{font-size:.95rem}.gogo-load-css .gogo-theme-flat.gogocarto-container #directory-content-list .element-item .name .location .postalCode{font-size:.85rem}.gogo-load-css .gogo-theme-flat.gogocarto-container .element-item .collapsible-header .collapsible-header-more .inline-option-values{font-style:normal;font-weight:400}.gogo-load-css .gogo-theme-flat.gogocarto-container .icon{font-size:1.3rem}.gogo-load-css .gogo-theme-flat.gogocarto-container .icon.fa,.gogo-load-css .gogo-theme-flat.gogocarto-container .icon.fab,.gogo-load-css .gogo-theme-flat.gogocarto-container .icon.far,.gogo-load-css .gogo-theme-flat.gogocarto-container .icon.fas{font-size:1.2rem}.gogo-load-css .gogo-theme-flat .feature-button,.gogo-load-css .gogo-theme-flat .gogo-map-control,.gogo-load-css .gogo-theme-flat .leaflet-control-layers,.gogo-load-css .gogo-theme-flat .leaflet-control-zoom.leaflet-bar.leaflet-control{box-shadow:0 0 0 1px rgba(99,114,130,.16),0 8px 16px rgba(27,39,51,.04)!important;border:none!important}.gogo-load-css .gogo-theme-flat .btn,.gogo-load-css .gogo-theme-flat .btn-flat,.gogo-load-css .gogo-theme-flat .btn-large{box-shadow:none;font-weight:600;font-size:1rem;border-radius:5px;letter-spacing:initial;text-transform:capitalize;padding:0 1.5rem}.gogo-load-css .gogo-theme-flat .btn-large:hover,.gogo-load-css .gogo-theme-flat .btn:hover{box-shadow:none;opacity:.8}.gogo-load-css .gogo-theme-flat .modal{border-radius:10px!important;box-shadow:none!important}.gogo-load-css .gogo-theme-flat .modal .modal-footer .modal-action{color:inherit!important}.gogo-load-css .gogo-theme-flat .modal .footer{margin-bottom:-1rem}.gogo-load-css .gogo-theme-flat .custom-scroll-bar::-webkit-scrollbar-track{border:none}.gogo-load-css .gogo-theme-flat .custom-scroll-bar::-webkit-scrollbar{width:8px!important}.gogo-load-css .gogo-theme-flat .custom-scroll-bar::-webkit-scrollbar-thumb{border-radius:0;border:none}.gogo-load-css .gogocarto-container #directory-list-spinner-loader .spinner-layer,.gogo-load-css .gogocarto-container #directory-spinner-loader .spinner-layer,.gogo-load-css .gogocarto-container #info-bar-spinner-loader .spinner-layer{border-color:#fff}.gogo-load-css .gogocarto-container{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;height:100%;position:relative;overflow:hidden;font-size:.95rem}.gogo-load-css .gogocarto-container #directory-spinner-loader,.gogo-load-css .gogocarto-container #info-bar-spinner-loader{position:absolute;margin:auto;top:0;left:0;bottom:0;right:0;z-index:1}.gogo-load-css .gogocarto-container #directory-list-spinner-loader{position:relative;margin-top:40px;z-index:500}.gogo-load-css .gogocarto-container #directory-loading{position:absolute;width:200px;margin:auto;top:0;left:0;right:0;z-index:500;background-color:#f2b523;color:#272626;padding:.2rem 0;text-align:center}.gogo-load-css .gogocarto-container #filter-moderation,.gogo-load-css .gogocarto-container #filter-moderation .moderation-checkbox+label:before{color:#c53f36}.gogo-load-css .gogocarto-container #info-bar-overlay{background-color:rgba(0,0,0,.17);z-index:10;top:0;left:0;bottom:0;right:0;position:absolute}.gogo-load-css .gogocarto-container #filter-moderation .moderation-checkbox:not(:checked)+label:before{background-color:transparent;border-color:#c53f36}.gogo-load-css .gogocarto-container #filter-favorite{color:#ff8f00}.gogo-load-css .gogocarto-container #filter-favorite .gogo-icon-star-full{color:#fff;font-size:18px}.gogo-load-css .gogocarto-container #filter-favorite .gogo-icon-star-full:before{padding:2px 2px 3px;border:none;color:#ff8f00;background-color:transparent}.gogo-load-css .gogocarto-container #filter-favorite .favorite-checkbox:not(:checked)+label:before{background-color:transparent;border-color:#ff8f00}.gogo-load-css .gogocarto-container #filter-favorite .favorite-checkbox+label:before{color:#ff8f00}.gogo-load-css .gogocarto-container .sub-categories-content.no-top-divider>ul>.main-option-subcategories-container>.category-wrapper>.subcategory-item{border-top:none!important;margin-top:0!important}.gogo-load-css .gogocarto-container .category-wrapper{margin-top:.5rem}.gogo-load-css .gogocarto-container .subcategory-item{position:relative;line-height:3rem;padding-top:0;padding-left:.8rem;font-weight:700;font-size:90%;text-transform:uppercase}.gogo-load-css .gogocarto-container .subcategory-item.top-separator{border-top:2px dashed;margin-top:.3rem;padding-top:.5rem}.gogo-load-css .gogocarto-container .subcategory-item .name-wrapper{margin-right:3rem;height:3rem;overflow:hidden}.gogo-load-css .gogocarto-container .subcategory-item .name-wrapper .arrow-after{display:inline-block;margin-left:1rem;margin-bottom:1px;border:5px solid;border-radius:4px}.gogo-load-css .gogocarto-container .subcategory-item .name-wrapper:hover{cursor:pointer}.gogo-load-css .gogocarto-container .subcategory-item:not(.expanded) .arrow-after{margin-bottom:-3px!important}.gogo-load-css .gogocarto-container .subcategory-item.expanded:not(:hover) .arrow-after{display:none}.gogo-load-css .gogocarto-container .subcategory-item.unexpandable .name-wrapper:hover{cursor:default;color:inherit}.gogo-load-css .gogocarto-container .subcategory-item .checkbox-wrapper{width:3rem;position:absolute;right:0;top:2px;bottom:0}.gogo-load-css .gogocarto-container .subcategory-item .checkbox-wrapper:hover{cursor:pointer}.gogo-load-css .gogocarto-container .subcategory-item .checkbox-wrapper .checkbox-container{position:absolute;top:2px;right:0}.gogo-load-css .gogocarto-container .subcategory-item .checkbox-wrapper .checkbox-container .subcategorie-checkbox+label:after{top:9px!important;width:17px;height:17px;border:2px solid;-webkit-transition:all .3s;-moz-transition:all .3s;-o-transition:all .3s;-ms-transition:all .3s;transition:all .3s}.gogo-load-css .gogocarto-container .subcategory-item .checkbox-wrapper .checkbox-container .subcategorie-checkbox+label:before{top:9px;left:1px;width:6px;height:11px}.gogo-load-css .gogocarto-container .subcategory-item .checkbox-wrapper .checkbox-container .subcategorie-checkbox:not(:checked)+label:after{background-color:transparent}.gogo-load-css .gogocarto-container .subcategorie-option-item{position:relative;margin-bottom:0;line-height:2.8rem;padding:0 0 0 .8rem;height:2.8rem;overflow:hidden;text-overflow:ellipsis}.gogo-load-css .gogocarto-container .subcategorie-option-item:not(.expanded) .gogo-icon-name-wrapper .option-name:hover .arrow-after{margin-bottom:-5px}.gogo-load-css .gogocarto-container .subcategorie-option-item:not(.expanded) .gogo-icon-name-wrapper .option-name .arrow-after{margin-bottom:-4px}.gogo-load-css .gogocarto-container .subcategorie-option-item .gogo-icon-name-wrapper{margin-right:3rem;position:relative}.gogo-load-css .gogocarto-container .subcategorie-option-item .gogo-icon-name-wrapper:not(.with-icon){width:calc(100% - 1rem)}.gogo-load-css .gogocarto-container .subcategorie-option-item .gogo-icon-name-wrapper .option-name{position:absolute;width:100%}.gogo-load-css .gogocarto-container .subcategorie-option-item .gogo-icon-name-wrapper .option-name:hover .arrow-after{border:6px solid;margin-bottom:1px}.gogo-load-css .gogocarto-container .subcategorie-option-item .elements-by-category-count{display:none;padding:2px 8px;font-size:.8em;border-radius:5px;position:absolute;height:20px;line-height:18px;right:0;font-weight:700;top:12px;z-index:5;opacity:.9}.gogo-load-css .gogocarto-container .subcategorie-option-item .elements-by-category-count.with-checkbox{right:2rem}.gogo-load-css .gogocarto-container .subcategorie-option-item .icon-wrapper{float:left}.gogo-load-css .gogocarto-container .subcategorie-option-item .arrow-after{display:inline-block;margin-left:1rem;border:5px solid;margin-bottom:1px;border-radius:4px}.gogo-load-css .gogocarto-container .subcategorie-option-item .icon{font-size:1.3rem;width:1.5rem}.gogo-load-css .gogocarto-container .subcategorie-option-item .icon.fa,.gogo-load-css .gogocarto-container .subcategorie-option-item .icon.fab,.gogo-load-css .gogocarto-container .subcategorie-option-item .icon.far,.gogo-load-css .gogocarto-container .subcategorie-option-item .icon.fas{font-size:1.2rem}.gogo-load-css .gogocarto-container .subcategorie-option-item img.icon{height:2.1rem;padding-top:6px}.gogo-load-css .gogocarto-container .subcategorie-option-item .subcategorie-option-checkbox+label:before{width:13px;height:13px;left:2px;top:3px;z-index:0;border:2px solid;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;margin-top:2px}.gogo-load-css .gogocarto-container .subcategorie-option-item .subcategorie-option-checkbox:checked+label:before{top:2px;left:1px;width:7px;height:13px;border-color:#3D3D3D;border-top:none;border-left:none;border-right:2px solid;border-bottom:2px solid;border-radius:0;-webkit-transform:rotate(40deg);-moz-transform:rotate(40deg);-ms-transform:rotate(40deg);-o-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;-ms-transform-origin:100% 100%;-o-transform-origin:100% 100%;transform-origin:100% 100%}.gogo-load-css .gogocarto-container .subcategorie-option-item .checkbox-wrapper{width:3rem;position:absolute;right:0;top:0;bottom:0}.gogo-load-css .gogocarto-container .subcategorie-option-item .checkbox-wrapper .checkbox-container{position:absolute;top:.6rem;right:0}.gogo-load-css .gogocarto-container .subcategorie-option-item:hover{cursor:pointer}.gogo-load-css .gogocarto-container .subcategorie-option-item:hover .checkbox-wrapper{background:0 0}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal){margin-left:1.3rem;border-left:1px dotted #c3c3c3;margin-bottom:15px;margin-top:0}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .category-wrapper{margin-top:0}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item{font-size:85%;line-height:2.5rem;margin-top:0;padding-top:0;padding-left:.9rem;margin-bottom:0}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .subcategorie-checkbox+label:after{width:15px;height:15px}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .subcategorie-checkbox+label:before{width:5px;height:9px;top:9px;left:2px}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .name-wrapper{height:2.5rem}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .checkbox-wrapper{top:7px;right:-1px}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategory-item .checkbox-wrapper .checkbox-container{top:-4px}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item{font-size:95%;line-height:2.4rem;height:2.4rem;padding-left:1rem}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon{font-size:1.2rem;padding-top:1px;margin-right:.8rem}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.fa,.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.fab,.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.far,.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .icon.fas{font-size:1.1rem;padding-top:.7rem}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item img.icon{padding-top:6px;height:1.9rem}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .elements-by-category-count{font-size:.7em;top:9px;opacity:.8}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .subcategorie-option-checkbox+label:before{width:10px;height:10px;left:3px}.gogo-load-css .gogocarto-container .category-wrapper .subcategories-wrapper:not(.no-withdrawal) .subcategorie-option-item .subcategorie-option-checkbox:checked+label:before{width:6px;height:10px;left:2px}.gogo-load-css .gogocarto-container #directory-menu.small-width{font-size:.95rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .subcategorie-option-item .arrow-after{margin-left:.5rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .icon{margin-right:.6rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .category-wrapper .subcategories-wrapper:not(.no-withdrawal){margin-left:1rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .main-categories{width:3rem;overflow:visible}.gogo-load-css .gogocarto-container #directory-menu.small-width .main-categories .icon{height:3.4rem;width:3rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .main-categories .icon:before{left:.6rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .sub-categories:not(.with-left-border) .sub-categories-content{padding-left:.2rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .subcategory-item{padding-left:.6rem;font-size:.9rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .subcategorie-option-item{padding-left:.5rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .category-wrapper .category-wrapper .subcategory-item{padding-left:.7rem}.gogo-load-css .gogocarto-container #directory-menu.small-width .category-wrapper .category-wrapper .subcategorie-option-item{padding-left:.6rem}.gogo-load-css .gogocarto-container #directory-menu .filter-menu{width:100%;height:auto;position:relative;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row nowrap;-webkit-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #directory-menu .filter-menu{height:100%}}.gogo-load-css .gogocarto-container #directory-menu .main-categories{width:3.5rem;padding-top:.6rem;height:100%}.gogo-load-css .gogocarto-container #directory-menu .main-categories .main-icon{padding-top:0}.gogo-load-css .gogocarto-container #directory-menu .main-categories .main-icon:not(.active) .main-icon-text{transform:rotateZ(-45deg);opacity:.8}.gogo-load-css .gogocarto-container #directory-menu .main-categories .main-icon:hover .main-icon-text{opacity:1}.gogo-load-css .gogocarto-container #directory-menu .main-categories .main-icon .main-icon-text{text-transform:uppercase;-webkit-transition:transform .2s;-moz-transition:transform .2s;-o-transition:transform .2s;-ms-transition:transform .2s;transition:transform .2s;font-size:.85rem;font-weight:700;opacity:1}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon{width:3.5rem;height:3.5rem;line-height:3.5rem;margin:0;padding-right:8px;text-align:center;position:relative}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon .main-option-tooltip{display:none}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon:before{position:absolute;top:1rem;left:.8rem}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon:not(.active):hover{cursor:pointer}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon:not(.active):hover .main-option-tooltip{display:block;position:absolute;left:4rem;top:.5rem;height:2.5rem;line-height:2.5rem;z-index:100;width:14rem;color:#efefef;font-size:1rem;border-radius:5px}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.active{padding-right:8px}.gogo-load-css .gogocarto-container #directory-menu .main-categories .main-gogo-icon-background{position:absolute;top:.6rem;border-radius:0 50% 50% 0}.gogo-load-css .gogocarto-container #directory-menu #main-option-all.show-one-pane-per-main-option .gogo-icon-name-wrapper:hover:after{content:"+";font-size:1.4rem;font-weight:400;padding:3px 11px;border-radius:3px;margin-left:5px;line-height:1rem;position:absolute;right:-38px;z-index:10;top:11px}.gogo-load-css .gogocarto-container #directory-menu .secondary-filters{padding:.5rem 0 0;height:auto;border-top:2px dashed #eee;margin-top:1rem}.gogo-load-css .gogocarto-container #directory-menu .sub-categories{-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto}.gogo-load-css .gogocarto-container #directory-menu .sub-categories .sub-categorie-main-title{height:3rem;line-height:3rem;font-weight:700;text-align:center;overflow:hidden}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #directory-menu .sub-categories .sub-categorie-main-title{font-size:1.2rem}}.gogo-load-css .gogocarto-container #directory-menu .sub-categories .sub-categories-content{height:calc(100% - 3rem);padding-top:0}.gogo-load-css .gogocarto-container #directory-menu .sub-categories .sub-categories-content.full-height{height:100%}.gogo-load-css .gogocarto-container #directory-menu .sub-categories .sub-categories-content ul{height:100%;margin:0;border:0;box-shadow:none;padding-bottom:2rem;overflow-y:auto;overflow-x:hidden}.gogo-load-css .gogocarto-container .subcategory-item.filter .btn-clear-filter{display:none;position:absolute;right:1rem;font-size:.8rem;line-height:1rem;padding-top:1px;border-radius:2px;text-transform:capitalize;top:1rem;cursor:pointer;background-color:#f44336a6}.gogo-load-css .gogocarto-container .subcategory-item.filter .btn-clear-filter .gogo-icon-close{margin:2px 2px 0;float:right}.gogo-load-css .gogocarto-container .subcategory-item.filter .name p{margin:0;display:inline}.gogo-load-css .gogocarto-container .filter-wrapper input{height:2rem}.gogo-load-css .gogocarto-container .filter-header,.gogo-load-css .gogocarto-container .filter-paragraph{padding-left:.6rem;padding-right:.4rem}.gogo-load-css .gogocarto-container .filter-header h1{font-size:2rem;font-weight:700}.gogo-load-css .gogocarto-container .filter-header h2{font-size:1.8rem}.gogo-load-css .gogocarto-container .filter-header h3{font-size:1.5rem}.gogo-load-css .gogocarto-container .gogo-date-filter td,.gogo-load-css .gogocarto-container .gogo-date-filter th{padding:0}.gogo-load-css .gogocarto-container .gogo-date-filter thead{border:none}.gogo-load-css .gogocarto-container .gogo-date-filter .datepicker table tr td span.month,.gogo-load-css .gogocarto-container .gogo-date-filter .datepicker table tr td span.year{width:19%;height:auto;line-height:45px;margin:2% 3% 1%}.gogo-load-css .gogocarto-container .gogo-date-filter .datepicker-inline{width:100%;padding:0 15px 0 5px}.gogo-load-css .gogocarto-container .gogo-date-filter .input-daterange .range-container{display:flex;padding:0 15px 0 5px}.gogo-load-css .gogocarto-container .gogo-date-filter .input-group-addon{min-width:auto;padding:6px 12px;font-size:14px;font-weight:400;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px;margin:.3rem 10px 14px}.gogo-load-css .gogocarto-container .gogo-date-filter input{height:2rem}.gogo-load-css .gogocarto-container .gogo-date-filter .view-selection{display:flex;margin-bottom:8px;margin-right:.6rem;margin-left:.6rem}.gogo-load-css .gogocarto-container .gogo-date-filter .view-selection .view-type{border:1px solid #ddd;flex-grow:1;text-align:center;line-height:1.5rem;cursor:pointer;background-color:#fff}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=month] tbody:hover .day:not(.new):not(.old),.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=year] tbody:hover .day:not(.new):not(.old),.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=year] tbody:hover .month:not(.new):not(.old){background-color:#eee}.gogo-load-css .gogocarto-container .gogo-date-filter .view-selection .view-type:not(:last-child){border-right:none}.gogo-load-css .gogocarto-container .gogo-date-filter .view-selection .view-type:first-child{border-radius:3px 0 0 3px}.gogo-load-css .gogocarto-container .gogo-date-filter .view-selection .view-type:last-child{border-radius:0 3px 3px 0}.gogo-load-css .gogocarto-container .gogo-date-filter .view-selection .view-type.active{border:1px solid #ccc;border-right:none}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=month] .day,.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] .day,.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=year] .day,.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=year] .month{border-radius:0}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter{display:none}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=month] .datepicker-days,.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=year] .datepicker-days{opacity:0}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=year] .datepicker-months{opacity:0}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] .day:first-child{border-radius:3px 0 0 3px}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] .day:last-child{border-radius:0 3px 3px 0}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] .day:hover{background-color:transparent}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] .datepicker-days tbody tr:not(.selected-week):hover{background-color:#eee}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] td.active,.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter[data-name=week] td.today{color:inherit!important;background-color:transparent!important}.gogo-load-css .gogocarto-container .gogo-date-filter .view-filter:not([data-name=range]){margin-bottom:.5rem}.gogo-load-css .gogocarto-container .gogo-number-filter{padding-right:1rem;padding-left:.5rem;margin-top:-10px}.gogo-load-css .gogocarto-container .gogo-number-filter .filter-number-slider{margin:20px 10px}.gogo-load-css .gogocarto-container #directory-menu{z-index:998;overflow-y:hidden;-webkit-transition:height .5s;-moz-transition:height .5s;-o-transition:height .5s;-ms-transition:height .5s;transition:height .5s;-webkit-box-shadow:4px 0 2px rgba(0,0,0,.2),-1px 0 2px rgba(0,0,0,.2);-moz-box-shadow:4px 0 2px rgba(0,0,0,.2),-1px 0 2px rgba(0,0,0,.2);box-shadow:4px 0 2px rgba(0,0,0,.2),-1px 0 2px rgba(0,0,0,.2)}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #directory-menu{overflow:visible}}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:column;-webkit-flex-flow:column;flex-flow:column;width:100%;height:100%}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .menu-top-image{width:100%}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header{width:100%;z-index:50;position:relative;-webkit-transition:all .5s;-moz-transition:all .5s;-o-transition:all .5s;-ms-transition:all .5s;transition:all .5s}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container{overflow:scroll}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .search-bar-container{display:none}}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .btn-close-menu.large-screen{position:absolute;right:0;top:0;width:24px;bottom:0;-webkit-flex-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:none}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .btn-close-menu.large-screen .arrow-left{font-size:12px;padding-left:5px;transform:scaleY(1.8)}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .subheader{position:relative}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .subheader .btn-close{position:absolute;margin:0;right:0;top:7px;padding:0 1rem;z-index:50}@media (min-width:850px){.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header{width:calc(100% + 12px);border-radius:0 0 5px;padding-right:15px}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .btn-close-menu.large-screen{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-header .btn-close-menu.small-screen{display:none}}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .shadow-bottom{bottom:-8px;border-top:none;width:calc(100% - 12px)}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-content{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;position:relative;height:100px}.gogo-load-css .gogocarto-container #directory-menu #directory-menu-main-container .directory-menu-content #directory-menu-spinner-loader{top:40%;left:40%;position:absolute;display:none}.gogo-load-css .gogocarto-container #directory-menu .btn-close-menu.small-screen{text-transform:uppercase;width:100%;border-radius:0;text-align:center;line-height:2.5rem;z-index:10;box-shadow:1px -2px 11px 2px rgba(0,0,0,.25)}@media (min-width:850px){.gogo-load-css .gogocarto-container #directory-menu .btn-close-menu.small-screen{display:none}.gogo-load-css .gogocarto-container .directory-menu-drag-target{display:none!important}}.gogo-load-css .gogocarto-container #directory-menu-overlay{display:none;position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);z-index:997;will-change:opacity}@media (min-width:850px){.gogo-load-css .gogocarto-container #directory-menu-overlay{display:none!important}}.gogo-load-css .gogocarto-container .directory-menu-drag-target{height:100%;width:20px;position:fixed;top:0;z-index:999}.gogo-load-css .gogocarto-container .cluster{z-index:2}.gogo-load-css .gogocarto-container .icon{font-size:1.4rem;padding-top:3px;float:left;margin-right:1rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container .icon{padding-top:2px}}.gogo-load-css .gogocarto-container .icon.disabled{color:#DFDFDF}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.fa,.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.fab,.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.far,.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.fas{font-size:1.2rem}.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.fa:before,.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.fab:before,.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.far:before,.gogo-load-css .gogocarto-container #directory-menu .main-categories .icon.main-icon.fas:before{position:relative;left:0;top:0}.gogo-load-css .gogocarto-container .icon.fa,.gogo-load-css .gogocarto-container .icon.fab,.gogo-load-css .gogocarto-container .icon.far,.gogo-load-css .gogocarto-container .icon.fas{padding-top:.5rem;font-size:1.3rem}.gogo-load-css .gogocarto-container .element-main-icon.icon.fa,.gogo-load-css .gogocarto-container .element-main-icon.icon.fab,.gogo-load-css .gogocarto-container .element-main-icon.icon.far,.gogo-load-css .gogocarto-container .element-main-icon.icon.fas{padding-top:4px}.gogo-load-css .gogocarto-container .marker-icon.fa,.gogo-load-css .gogocarto-container .marker-icon.fab,.gogo-load-css .gogocarto-container .marker-icon.far,.gogo-load-css .gogocarto-container .marker-icon.fas{padding-top:0}.gogo-load-css .gogocarto-container .filter-menu .icon.fa,.gogo-load-css .gogocarto-container .filter-menu .icon.fab,.gogo-load-css .gogocarto-container .filter-menu .icon.far,.gogo-load-css .gogocarto-container .filter-menu .icon.fas{padding-top:.7rem;width:1.5rem;font-size:1.2rem}.gogo-load-css .gogocarto-container .filter-menu .icon{text-align:center}.gogo-load-css .gogocarto-container .marker-location-position.leaflet-marker-icon{border-radius:50%;border:1px solid #fff;width:14px;height:14px}.gogo-load-css .gogocarto-container .leaflet-marker-container{width:0!important;height:0!important;margin:0!important;--angle:0}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-container{transform-origin:bottom;transform:scale(var(--size))}.gogo-load-css .gogocarto-container .leaflet-marker-container:hover{z-index:10000000!important}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-popup{--factor:clamp(0.9, 1 / var(--size), 1.5);position:absolute;white-space:nowrap;height:auto;line-height:calc(1.5rem * var(--factor));font-size:calc(1rem * var(--factor));border-radius:calc(5px * var(--factor));padding:calc(5px * var(--factor)) calc(10px * var(--factor));bottom:50px;margin-bottom:6px;left:-25px}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-popup p{margin:0}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper{position:absolute;z-index:1;height:50px;width:50px;bottom:0;left:-25px;font-size:50px;line-height:50px;transform:scale(.8) rotate(var(--angle));transform-origin:bottom;opacity:.99}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper.disabled{color:grey!important}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper:hover{cursor:pointer}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper.big-size{transform:scale(1) rotate(var(--angle))}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper .marker-shape{position:absolute;top:0;left:0;height:100%;width:100%;text-align:center;transform-origin:bottom;transform:scale(var(--shape-size))}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper .marker-shape.fa-heart{top:2px}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper .marker-shape.fa-bolt{left:3px}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper .marker-shadow{position:absolute;background-image:url(images/marker-shadow.png);background-position:12px 8px;background-repeat:no-repeat;width:60px;height:50px}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper .marker-shadow.for-url{background-position:14px 8px}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-wrapper .main-icon-wrapper{transform:translateY(4px);margin:0 auto;background:0 0}.gogo-load-css .gogocarto-container .leaflet-marker-container .main-icon-wrapper,.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icon-wrapper{text-align:center;width:32px;height:32px;font-size:22px;line-height:34px;border-radius:50%;display:flex;justify-content:center;align-items:center}.gogo-load-css .gogocarto-container .leaflet-marker-container .main-icon-wrapper.gogo-color-as,.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icon-wrapper.gogo-color-as{background-color:#efededf2;font-size:22px}.gogo-load-css .gogocarto-container .leaflet-marker-container .main-icon-wrapper .marker-icon,.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icon-wrapper .marker-icon{display:flex;justify-content:center;align-items:center;width:100%;height:100%}.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icons-wrapper{display:none;align-items:center;position:absolute;bottom:8px;left:25px}.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icons-wrapper .other-icon-wrapper{display:inline-flex;box-sizing:content-box;margin-left:-3px;padding:1px;border-width:5px;border-style:solid;transform:scale(.8)}.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icons-wrapper .other-icon-wrapper.gogo-color-as.disabled{border-color:#abaaaa;color:#abaaaa;background-color:#e0e0e0}.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icons-wrapper .other-icon-wrapper.gogo-bg-color-as{filter:drop-shadow(7px -2px 10px #aaa)}.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icons-wrapper .other-icon-wrapper.gogo-bg-color-as.disabled{border-color:#d0c8c8;background-color:#d0c8c8}.gogo-load-css .gogocarto-container .leaflet-marker-container .other-icons-wrapper .other-icon-wrapper.gogo-bg-color-as.disabled .marker-icon{color:#949494}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=heart] .other-icons-wrapper{margin-left:4px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-egg] .other-icons-wrapper,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-flower] .other-icons-wrapper{margin-left:8px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-animal] .gogo-icon-plus-circle{top:-18px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-animal] .marker-popup{bottom:53px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-egg] .marker-popup,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-flower] .marker-popup{bottom:55px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-egg] .gogo-icon-plus-circle{top:-18px;right:-5px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hair] .other-icons-wrapper,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hair-2] .other-icons-wrapper,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-flower] .other-icons-wrapper,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-heart] .other-icons-wrapper{margin-left:5px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hair] .gogo-icon-plus-circle{top:-12px;right:-6px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hair] .marker-popup{bottom:54px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hair-2] .marker-popup,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hat-2] .marker-popup{bottom:58px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hair-2] .gogo-icon-plus-circle{top:-6px;right:-7px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hat] .gogo-icon-plus-circle{top:-4px;right:-6px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=fun-hat-2] .gogo-icon-plus-circle{top:-8px;right:-5px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-flower] .gogo-icon-plus-circle{top:-16px;right:-8px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-flower] .marker-popup{bottom:60px;left:-32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-hand] .gogo-icon-plus-circle{top:-30px;right:8px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-hand] .marker-popup{bottom:57px;left:-30px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-heart] .gogo-icon-plus-circle{top:-18px;right:-9px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-heart] .marker-popup{bottom:58px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-hotairballoon] .gogo-icon-plus-circle{top:-25px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-hotairballoon] .marker-popup{bottom:60px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-hotairballoon] .other-icons-wrapper{bottom:18px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-lollipop] .gogo-icon-plus-circle{top:-14px;right:-3px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-mushroom] .gogo-icon-plus-circle{top:-24px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-mushroom] .marker-popup{bottom:58px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-mushroom] .other-icons-wrapper{bottom:16px;left:28px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=handsup-tree] .marker-popup{bottom:60px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-crest] .other-icons-wrapper{bottom:4px;left:28px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-diamond] .gogo-icon-plus-circle{top:-10px;right:-6px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-diamond] .marker-popup{bottom:60px;left:-30px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-diamond] .other-icons-wrapper{bottom:15px;left:30px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-eye] .gogo-icon-plus-circle{top:3px;right:-16px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-eye] .marker-popup{bottom:42px;left:-35px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-eye] .other-icons-wrapper{margin-left:15px;bottom:3px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-flower] .gogo-icon-plus-circle{top:-32px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-flower] .marker-popup{bottom:67px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-flower] .other-icons-wrapper{bottom:28px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-flower-2] .gogo-icon-plus-circle{top:-16px;right:-1px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-hotairballoon] .marker-shadow{opacity:.5}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-leaf] .gogo-icon-plus-circle{top:-6px;right:-3px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-leaf] .marker-popup{bottom:44px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-leaf] .other-icons-wrapper{left:35px;bottom:2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-mushroom] .gogo-icon-plus-circle{top:-20px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-mushroom] .marker-popup{bottom:55px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-mushroom] .other-icons-wrapper{bottom:15px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-panel] .gogo-icon-plus-circle{top:-25px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-panel] .marker-popup{bottom:60px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-panel] .other-icons-wrapper{bottom:17px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round] .gogo-icon-plus-circle{top:-17px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round] .marker-popup{bottom:55px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round] .other-icons-wrapper{bottom:14px;left:23px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round] .marker-shadow{opacity:.5}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round-2] .gogo-icon-plus-circle{top:-17px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-square-2] .gogo-icon-plus-circle,.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-star] .gogo-icon-plus-circle{top:-16px;right:-2px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round-2] .marker-popup{bottom:55px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round-2] .other-icons-wrapper{bottom:14px;left:23px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-round-2] .marker-shadow{opacity:.5}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-square] .other-icons-wrapper{bottom:4px;margin-left:5px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-square-2] .marker-popup{bottom:55px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-square-2] .other-icons-wrapper{bottom:10px;margin-left:8px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-star] .marker-popup{bottom:55px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-star] .other-icons-wrapper{bottom:14px;left:32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-triangle] .gogo-icon-plus-circle{top:-6px;right:-7px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-triangle] .marker-popup{bottom:45px;left:-32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-triangle] .other-icons-wrapper{bottom:6px;left:32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-triangleball] .gogo-icon-plus-circle{top:-18px;right:-8px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-triangleball] .marker-popup{bottom:57px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=shape-triangleball] .other-icons-wrapper{bottom:18px;left:28px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-star] .gogo-icon-plus-circle{top:-14px;right:-8px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-star] .marker-popup{bottom:60px;left:-32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-star] .other-icons-wrapper{left:32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-cloud] .gogo-icon-plus-circle{top:-14px;right:-5px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-cloud] .marker-popup{bottom:54px;left:-32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-cloud] .other-icons-wrapper{left:36px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-mountain] .gogo-icon-plus-circle{right:-10px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-mountain] .marker-popup{bottom:57px;left:-32px}.gogo-load-css .gogocarto-container .leaflet-marker-container [data-shape=drawing-mountain] .other-icons-wrapper{left:34px}.gogo-load-css .gogocarto-container .leaflet-marker-container .gogo-icon-plus-circle{position:absolute;z-index:3;font-size:20px;top:-12px;right:0}.gogo-load-css .gogocarto-container .leaflet-marker-container .gogo-icon-plus-circle:before{border-radius:50%;background-color:#efededf2}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-mini-icon-container{position:absolute;top:0;z-index:3;left:-5px;color:#efededf2;display:flex;flex-direction:column;justify-content:flex-start}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-mini-icon-container .marker-mini-icon{display:inline-flex;margin-bottom:1px}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-mini-icon-container .marker-mini-icon:before{border-radius:50%;background-color:#ff8f00;width:19px;height:19px;display:flex;align-items:center;justify-content:center;font-size:14px;border:1.5px solid}.gogo-load-css .gogocarto-container .leaflet-marker-container .marker-mini-icon-container .marker-mini-icon.gogo-icon-stamp-2:before{font-size:11px}.gogo-load-css .gogocarto-container .leaflet-marker-container .rotate{transform-origin:bottom}.gogo-load-css .gogocarto-container .leaflet-marker-container .rotate-reverse{transform:rotate(calc(-1 * var(--angle)))}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateLeft{--angle:-45deg}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateLeft .marker-popup{bottom:42px;left:-50px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateLeft .other-icons-wrapper{bottom:0;left:5px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateRight{--angle:45deg}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateRight .marker-popup{bottom:42px;left:-5px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateRight .other-icons-wrapper{bottom:0;left:45px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateSoftLeft{--angle:-25deg}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateSoftLeft .marker-popup{bottom:47px;left:-42px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateSoftLeft .other-icons-wrapper{bottom:4px;left:12px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateSoftRight{--angle:25deg}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateSoftRight .marker-popup{bottom:47px;left:-15px}.gogo-load-css .gogocarto-container .leaflet-marker-container.rotateSoftRight .other-icons-wrapper{bottom:4px;left:37px}.gogo-load-css .gogocarto-container .marker-cluster div{margin-left:5px;margin-top:5px;text-align:center;border-radius:50%;font-size:13px;font-weight:600;color:#fff;box-shadow:4px -2px 5px 0 rgba(167,167,167,.56)}.gogo-load-css .gogocarto-container .marker-cluster.halfHidden{opacity:.6!important}.gogo-load-css .gogocarto-container .marker-cluster.marker-cluster-small div{background-color:rgba(243,165,48,.88);width:34px;height:34px}.gogo-load-css .gogocarto-container .marker-cluster.marker-cluster-small div span{line-height:34px}.gogo-load-css .gogocarto-container .marker-cluster.marker-cluster-medium div{background-color:rgba(235,123,45,.92);width:38px;height:38px}.gogo-load-css .gogocarto-container .marker-cluster.marker-cluster-medium div span{line-height:38px}.gogo-load-css .gogocarto-container .marker-cluster.marker-cluster-large div{background-color:rgba(210,77,26,.88);width:44px;height:44px}.gogo-load-css .gogocarto-container .marker-cluster.marker-cluster-large div span{line-height:44px}.gogo-load-css .gogocarto-container a.leaflet-control-zoom-in{font-size:18px!important}.gogo-load-css .gogocarto-container a.leaflet-control-zoom-out{font-size:25px!important;font-weight:400;text-indent:0}.gogo-load-css .gogocarto-container .leaflet-control-zoom.leaflet-bar.leaflet-control{margin-right:22px;margin-top:20px;border:none;-webkit-box-shadow:0 2px 6px rgba(0,0,0,.3);-moz-box-shadow:0 2px 6px rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.3)}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container .leaflet-control-zoom.leaflet-bar.leaflet-control{display:none}}.gogo-load-css .gogocarto-container .leaflet-control-zoom.leaflet-bar.leaflet-control a{background-color:inherit!important}.gogo-load-css .gogocarto-container #map-gogo-controls{display:none}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #map-gogo-controls{display:block;position:absolute;z-index:500;left:15px;top:12px}}.gogo-load-css .gogocarto-container .show-directory-menu-button{left:15px}.gogo-load-css .gogocarto-container .show-directory-menu-button .arrow-right{display:inline-block;border:8px solid;border-color:transparent transparent transparent #eee}.gogo-load-css .gogocarto-container .show-directory-menu-button img{height:35px;margin-right:5px;display:none}.gogo-load-css .gogocarto-container .show-directory-menu-button i{margin-right:5px!important}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container .show-as-list-button .button-text{display:none}}.gogo-load-css .gogocarto-container .gogo-map-control{margin-right:15px;display:inline-block;line-height:1.5;font-weight:400;font-size:14px!important;padding:5px 10px;-webkit-box-shadow:2px 3px 1px rgba(0,0,0,.25);-moz-box-shadow:2px 3px 1px rgba(0,0,0,.25);box-shadow:2px 3px 1px rgba(0,0,0,.25);text-align:center;border-radius:5px}.gogo-load-css .gogocarto-container .gogo-map-control:hover{cursor:pointer}.gogo-load-css .gogocarto-container .gogo-map-control i{font-size:1rem;float:left;line-height:0;padding-top:3px;margin-right:10px}.gogo-load-css .gogocarto-container .gogo-map-control i.gogo-icon-angle-right{padding-top:2px}.gogo-load-css .gogocarto-container #map-features-buttons{position:absolute;top:20px;z-index:500;right:20px;width:50px}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #map-features-buttons{width:33px;top:100px}}.gogo-load-css .gogocarto-container #mobile-filters-icon img{width:35px;height:35px;object-fit:contain;margin-top:7px;display:none}.gogo-load-css .gogocarto-container .feature-button{position:relative;margin-bottom:13px;text-align:center;width:50px;border-radius:50%;height:50px;border:none;-webkit-box-shadow:0 2px 6px rgba(0,0,0,.3);-moz-box-shadow:0 2px 6px rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.3)}.gogo-load-css .gogocarto-container .feature-button i{font-size:22px;line-height:55px}.gogo-load-css .gogocarto-container .feature-button i.gogo-icon-list{font-size:18px}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .feature-button{width:33px;height:33px;border-radius:4px}.gogo-load-css .gogocarto-container .feature-button i{font-size:18px;line-height:39px}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button{left:.5rem}}.gogo-load-css .gogocarto-container .feature-button#close-layers-panel{z-index:10000;background-color:transparent;color:#888}.gogo-load-css .gogocarto-container .feature-button#close-layers-panel:hover{background-color:transparent;color:#616161}.gogo-load-css .gogocarto-container .feature-button#close-layers-panel i{font-size:16px;line-height:44px;margin-left:2px}.gogo-load-css .gogocarto-container .feature-button#map-default-view-btn i{font-size:14px}@media screen and (max-width:600px){.gogo-load-css .gogocarto-container .feature-button#change-layers,.gogo-load-css .gogocarto-container .feature-button#export-iframe-btn,.gogo-load-css .gogocarto-container .feature-button#map-default-view-btn{display:none}}@media screen and (min-width:600px){.gogo-load-css .gogocarto-container .feature-button#geolocalize-btn{display:none}}.gogo-load-css .gogocarto-container .leaflet-control-layers-toggle{display:none}.gogo-load-css .gogocarto-container .leaflet-control-layers{padding:0!important;display:none;position:relative;z-index:600;margin-right:19px!important;margin-top:15px!important;border:none;-webkit-box-shadow:0 2px 6px rgba(0,0,0,.3);-moz-box-shadow:0 2px 6px rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.3)}.gogo-load-css .gogocarto-container .leaflet-control-layers-list{display:block!important;padding:3px 0;position:relative!important}.gogo-load-css .gogocarto-container .leaflet-control-layers-selector:checked+span{font-weight:700}.gogo-load-css .gogocarto-container .leaflet-control-layers-base label{text-transform:uppercase;line-height:1.4rem;border-bottom:1px dashed #ccc;padding:4px 15px 0}.gogo-load-css .gogocarto-container .leaflet-control-layers-base label:hover{cursor:pointer}.gogo-load-css .gogocarto-container .leaflet-control-layers-base label:last-child{border:none}.gogo-load-css .gogocarto-container #element-info-bar{height:0;z-index:600;position:absolute;will-change:height;-webkit-box-shadow:0 -8px 8px -5px rgba(173,173,173,.75);-moz-box-shadow:0 -8px 8px -5px rgba(173,173,173,.75);box-shadow:0 -8px 8px -5px rgba(173,173,173,.75)}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom{right:0!important;bottom:0!important;width:100%}.gogo-load-css .gogocarto-container #element-info-bar.display-aside{top:0;right:0;height:100%!important;-webkit-transition:top .5s;-moz-transition:top .5s;-o-transition:top .5s;-ms-transition:top .5s;transition:top .5s;overflow-y:visible;-webkit-box-shadow:0 6px 9px 2px rgba(119,119,119,.75);-moz-box-shadow:0 6px 9px 2px rgba(119,119,119,.75);box-shadow:0 6px 9px 2px rgba(119,119,119,.75)}.gogo-load-css .gogocarto-container #element-info-bar.display-aside.with-search-result-header{top:3rem;height:calc(100% - 3rem)!important}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-main-icon,.gogo-load-css .gogocarto-container #element-info-bar.display-aside .star-names-icons{display:none!important}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .gogo-icon-close{padding-left:1rem}.gogo-load-css .gogocarto-container #element-info-bar.display-aside #element-info .moreDetails{display:block!important}.gogo-load-css .gogocarto-container #element-info-bar.display-aside #element-info .moreDetails.tabs{display:flex!important}.gogo-load-css .gogocarto-container #element-info-bar.display-aside #element-info .hideOnLargeScreen{display:none!important}.gogo-load-css .gogocarto-container #element-info-bar .element-item .element-main-icon{display:none}.gogo-load-css .gogocarto-container #directory-content-list .element-item,.gogo-load-css .gogocarto-container #element-info-bar .element-item .star-names-icons,.gogo-load-css .gogocarto-container #element-info-bar.inside-normal-mode .element-main-icon{display:block}.gogo-load-css .gogocarto-container #element-info-bar #element-info .moreDetails,.gogo-load-css .gogocarto-container #element-info-bar.inside-normal-mode .star-names-icons{display:none}.gogo-load-css .gogocarto-container #element-info-bar .gogo-icon-close{float:right;margin:-.9rem -1.5rem -1rem 0;font-size:1.2rem;padding:1rem 1.5rem}.gogo-load-css .gogocarto-container #element-info-bar .gogo-icon-close:hover{cursor:pointer}.gogo-load-css .gogocarto-container #directory-content-map{position:relative;z-index:10;-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;-webkit-box-shadow:inset 0 5px 5px 0 rgba(119,119,119,.75);-moz-box-shadow:inset 0 5px 5px 0 rgba(119,119,119,.75);box-shadow:inset 0 5px 5px 0 rgba(119,119,119,.75)}.gogo-load-css .gogocarto-container .leaflet-container{font:inherit}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header{display:flex;position:relative;width:100%;line-height:3.5rem;text-align:right;padding:0 1rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #directory-content-list .element-list-header{display:none!important}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button .button-text{display:none}}@media (min-width:900px){.gogo-load-css .gogocarto-container #directory-content-list .element-list-header{padding-left:3rem;padding-right:calc(3rem + 20px)}}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header #list-title-shadow-bottom{display:none}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button{float:left;z-index:200;height:100%;text-decoration:underline}@media only screen and (min-width:1201px){.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button{left:9rem!important}}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button:hover{cursor:pointer}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button .btn-back{color:inherit!important;height:2rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-directory-menu-button{display:none!important}}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-as-map-button{left:2rem}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-directory-menu-button{display:block;float:left;position:relative;margin-right:2rem;margin-left:-1rem;width:auto;top:.6rem}}@media (min-width:1500px){.gogo-load-css .gogocarto-container #directory-content-list .element-list-header{padding-left:10rem;padding-right:calc(10rem + 20px)}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .show-directory-menu-button{position:absolute;top:12px;left:15px;margin-left:0;bottom:initial;width:auto}}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .location-range{flex:1 auto;margin:0 1rem;align-self:center;display:flex}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .location-range .range-title{font-weight:700;margin-left:1rem}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .location-range .range-end,.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .location-range .range-start{display:none}.gogo-load-css .gogocarto-container #directory-content-list .element-list-header .location-range #location-slider{flex:1 auto;align-self:center;margin:0 1.5rem 0 1rem}.gogo-load-css .gogocarto-container .no-result-message img{margin-top:1rem;width:350px;padding:0 2rem;border-radius:100px}.gogo-load-css .gogocarto-container #directory-content-list{display:none;z-index:650;-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;width:100%;overflow:auto;border-left:none;height:100%}.gogo-load-css .gogocarto-container #directory-content-list .title-separator{text-align:center;text-transform:uppercase;font-size:1.1rem;font-weight:700;margin:1.5rem 0}.gogo-load-css .gogocarto-container #directory-content-list .elements-container{position:relative;padding-bottom:100px;height:100%;width:100%;overflow-y:scroll;margin:0;padding-left:0;padding-right:0}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #directory-content-list .elements-container{height:calc(100% - 3.5rem)}}@media only screen and (min-width:901px){.gogo-load-css .gogocarto-container #directory-content-list .elements-container{padding-left:3rem;padding-right:3rem}}@media (min-width:1500px){.gogo-load-css .gogocarto-container #directory-content-list .elements-container{padding-left:10rem;padding-right:10rem}}.gogo-load-css .gogocarto-container #directory-content-list .elements-container.custom-scroll-bar::-webkit-scrollbar{width:14px}.gogo-load-css .gogocarto-container #directory-content-list .elements-container .bottom-gradient{position:fixed;height:5rem;bottom:0;width:100%;z-index:700}.gogo-load-css .gogocarto-container #directory-content-list .elements-container .no-result-message{text-align:center;margin-top:3rem}.gogo-load-css .gogocarto-container #directory-content-list .element-item .gogo-icon-close{display:none}.gogo-load-css .gogocarto-container #directory-content-list .element-item .distance{margin-right:0;margin-left:6px}.gogo-load-css .gogocarto-container #directory-content-list .element-item .location{float:right;margin-left:1rem}.gogo-load-css .gogocarto-container #directory-content-list .element-item .location .icon-address{font-size:.8rem;margin-right:4px}.gogo-load-css .gogocarto-container #directory-content-list .element-item .location .postalCode{font-size:.95rem}.gogo-load-css .gogocarto-container #directory-content-list .element-item .expand-label{background-color:transparent!important}.gogo-load-css .gogocarto-container #directory-content-list .element-item .collapsible-header .header-content{padding-left:.5rem;padding-right:.5rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #directory-content-list .element-item .collapsible-header{padding-left:.8rem;padding-right:.8rem;padding-top:5px}}.gogo-load-css .gogocarto-container #directory-content-list .collapsible.popout,.gogo-load-css .gogocarto-container #directory-content-list .collapsible.popout>li{margin:0}.gogo-load-css .gogocarto-container #directory-content-list .collapsible.popout>li.active{margin:1rem 0}.gogo-load-css .gogocarto-container #directory-content-list .collapsible.popout>li.active .collapsible-header{border-bottom:0}.gogo-load-css .gogocarto-container #directory-content-list .spinner-loader{-webkit-box-ordinal-group:1000000;-moz-box-ordinal-group:1000000;-ms-flex-order:1000000;-webkit-order:1000000;order:1000000}.gogo-load-css .gogocarto-container #directory-content-list .info-bar-tabs,.gogo-load-css .gogocarto-container #directory-content-list .menu-element{position:relative;display:none}.gogo-load-css .gogocarto-container #directory-content-list .element-item.active .info-bar-tabs,.gogo-load-css .gogocarto-container #directory-content-list .element-item.active .menu-element{display:flex}.gogo-load-css .gogocarto-container #directory-content-list .img-overlay{max-height:20rem;overflow:hidden}.gogo-load-css .gogocarto-container #directory-content-list .img-container{max-height:20rem}.gogo-load-css .gogocarto-container #gogo-controls-mobile{position:absolute;z-index:900;left:15px;top:15px;right:0}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #gogo-controls-mobile{display:none!important}}.gogo-load-css .gogocarto-container #gogo-controls-mobile .feature-button{display:inline-block;margin-right:15px}.gogo-load-css .gogocarto-container #gogo-controls-mobile .feature-button.gogo-bg-primary{color:#fff}.gogo-load-css .gogocarto-container #gogo-controls-mobile .feature-button.show-as-list-button,.gogo-load-css .gogocarto-container #gogo-controls-mobile .feature-button.show-as-map-button{float:right;display:none}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container #gogo-controls-mobile{display:none}}.gogo-load-css .gogocarto-container #gogo-controls-mobile.list .show-as-map-button,.gogo-load-css .gogocarto-container #gogo-controls-mobile.map .show-as-list-button{display:block}.gogo-load-css .gogocarto-container #gogo-controls-mobile.list .feature-button{-webkit-box-shadow:1px 2px 8px 1px rgba(0,0,0,.4);-moz-box-shadow:1px 2px 8px 1px rgba(0,0,0,.4);box-shadow:1px 2px 8px 1px rgba(0,0,0,.4)}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile{display:none;z-index:10;position:relative;margin:15px;border-radius:3px;padding:0;-webkit-box-shadow:0 2px 6px rgba(0,0,0,.3);-moz-box-shadow:0 2px 6px rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.3)}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-bar-container{height:52px;padding:0}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-bar{height:100%;padding:0 4rem}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-icon{font-size:22px;line-height:57px;height:56px;width:56px}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-icon.search-bar-icon{left:-2px}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-icon.search-geolocalize{right:0;font-size:24px!important}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-bar-icon{left:3px}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-geolocalize{right:5px;font-size:24px!important}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile #search-spinner-loader{margin-left:5px;top:17px;left:12px}.gogo-load-css .gogocarto-container #search-overlay-mobile .search-bar-with-options-container.mobile .search-no-result{color:inherit;font-size:13px;padding-top:1rem}.gogo-load-css .gogocarto-container #search-overlay-mobile{display:none;position:absolute;top:0;left:0;right:0;bottom:0;z-index:1000}.gogo-load-css .gogocarto-container #search-overlay-mobile .overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;background-color:rgba(0,0,0,.5)}.gogo-load-css .gogocarto-container .search-results{background-color:rgba(0,0,0,.4);position:relative;line-height:3rem;top:0;z-index:600;width:100%;padding:0 0 0 10px;-webkit-transition:background-color .5s;-moz-transition:background-color .5s;-o-transition:background-color .5s;-ms-transition:background-color .5s;transition:background-color .5s}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .search-results{position:relative;padding-left:28px}}.gogo-load-css .gogocarto-container .search-results .btn-close{position:absolute;margin:0;right:0;top:3px;padding:0 1rem;z-index:50;color:#fff}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .search-results .btn-close{right:12px}}.gogo-load-css .gogocarto-container .search-results .btn-close:hover{color:#fff;cursor:pointer}.gogo-load-css .gogocarto-container .search-results .search-result-label{color:#fff;font-weight:700}.gogo-load-css .gogocarto-container .search-results .search-result-value{font-style:italic}.gogo-load-css .gogocarto-container .search-bar-with-options-container{padding:.6rem 0 .7rem}.gogo-load-css .gogocarto-container .search-bar-with-options-container .search-no-result{color:#fff;padding-top:.7rem;text-decoration:underline;text-align:center;font-weight:700}.gogo-load-css .gogocarto-container .search-bar-container{padding:0 .7rem;text-align:center;margin:0}.gogo-load-css .gogocarto-container .search-bar-container .search-icon{position:absolute;font-size:1.2rem;height:2rem;line-height:2rem}.gogo-load-css .gogocarto-container .search-bar-container .search-icon:before{line-height:2rem}.gogo-load-css .gogocarto-container .search-bar-container .search-icon:hover{cursor:pointer}.gogo-load-css .gogocarto-container .search-bar-container .search-icon.search-bar-icon{left:1.2rem}.gogo-load-css .gogocarto-container .search-bar-container .search-icon.search-geolocalize{right:1.4rem}.gogo-load-css .gogocarto-container .search-bar-container .search-bar{font-size:16px;padding:0 2.2rem 0 2.3rem;box-shadow:none!important;margin:0;text-align:left;font-weight:700;height:2rem;width:100%;border:none!important;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (min-width:850px){.gogo-load-css .gogocarto-container .search-bar-container .search-bar{text-transform:uppercase;font-size:.8rem}}.gogo-load-css .gogocarto-container .search-bar-container .search-bar.invalid{border-color:#B90303!important}.gogo-load-css .gogocarto-container .search-bar-container .search-bar::-webkit-input-placeholder{color:#949494}.gogo-load-css .gogocarto-container .search-bar-container .search-bar::-moz-placeholder{color:#949494}.gogo-load-css .gogocarto-container .search-bar-container .search-bar:-ms-input-placeholder{color:#949494}.gogo-load-css .gogocarto-container .search-bar-container .search-bar:-moz-placeholder{color:#949494}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container{position:absolute;z-index:5;padding:.5rem 0;left:0!important;top:auto!important;margin-top:.5rem;width:400px;max-width:100vw;box-shadow:0 0 0 1px rgba(99,114,130,.16),0 8px 16px rgba(27,39,51,.08);border-radius:0 4px 4px;max-height:80vh;overflow:auto}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item{cursor:pointer}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.option .icon::before{float:left}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper{padding:.7rem 1rem;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-wrap:nowrap;-moz-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;text-align:left}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper.ui-state-active,.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper:hover{background-color:rgba(125,125,125,.08)}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper.nested{padding-left:1rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .label{-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .subLabel{text-align:right;opacity:.8;font-size:.85rem;width:7.5rem;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .icon{padding:0;margin-right:0!important;font-size:1.1rem;width:2rem;flex-shrink:0}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .category-label{opacity:.9;font-size:.9rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .category-name{font-style:italic;font-size:.9rem;font-weight:700;margin-left:.3rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .element-name{font-size:.9rem;font-weight:700;font-style:italic}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .search-term{margin:0 3px}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .search-term:after,.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item .search-bar-autocomplete-result-item-wrapper .search-term:before{content:'"'}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item+.search_elements,.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.geocoded+.option,.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.search_geocoded+.option{border-top:1px solid #eee;padding-top:.3rem;margin-top:.3rem}.gogo-load-css .gogocarto-container #search-spinner-loader .circle-clipper .circle,.gogo-load-css .gogocarto-container .modal.action-modal .cancel-btn .preloader-wrapper .circle-clipper .circle{border-width:2px}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.search_elements .label,.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.search_geocoded .label{text-transform:uppercase;font-weight:700;font-size:.8rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.search_elements{padding-top:.6rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.search_elements .icon{line-height:1rem;opacity:.9;font-size:1rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.geocoded .label{font-size:.9rem}.gogo-load-css .gogocarto-container .search-bar-autocomplete-results-container .search-bar-autocomplete-result-item.geocoded .icon{line-height:.9rem;opacity:.9}.gogo-load-css .gogocarto-container #search-spinner-loader{top:7px;height:18px;width:18px;display:none;position:absolute;left:0}.gogo-load-css .gogocarto-container #search-spinner-loader .spinner-layer{border-color:#5d5d5d}.gogo-load-css .gogocarto-container .search-bar-icon.loading:before{content:none}.gogo-load-css .gogocarto-container .search-bar-icon.loading #search-spinner-loader{display:block}.gogo-load-css .gogocarto-container .element-item{list-style-type:none;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:column nowrap;-webkit-flex-flow:column nowrap;flex-flow:column nowrap}.gogo-load-css .gogocarto-container .element-item #element-info-bar.display-aside .menu-element{height:auto}.gogo-load-css .gogocarto-container .element-item .menu-element{z-index:10;position:absolute;bottom:0;width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.gogo-load-css .gogocarto-container .element-item .menu-element .gogo-icon-star-full{color:#ff8f00}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item{margin:0 1rem;height:2.7rem;display:flex;align-items:center}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item a{color:inherit;display:flex;align-items:center}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item a.disabled{pointer-events:none;opacity:.5}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item .menu-icon{font-size:20px;display:flex;margin-bottom:2px}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item .menu-icon.small-icon{font-size:18px}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item .menu-icon{font-size:22px}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item .menu-icon.small-icon{font-size:20px}}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-stamp.filled{color:#ff8f00;font-weight:700}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.hidden{display:none}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-subscribe-element #subscriber-loader,.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-unsubscribe-element #unsubscriber-loader{display:none;width:22px;height:22px}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-subscribe-element #subscriber-loader .spinner-layer,.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-unsubscribe-element #unsubscriber-loader .spinner-layer{opacity:.5;border-color:#fff}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-unsubscribe-element #unsubscriber-loader .spinner-layer{border-color:#ff8f00}.gogo-load-css .gogocarto-container .element-item .menu-element .menu-element-item.item-unsubscribe-element:not(.hidden){color:#ff8f00}.gogo-load-css .gogocarto-container .element-item .menu-element:not(.full-text) .menu-element-item-text{display:none}.gogo-load-css .gogocarto-container .element-item .menu-element.full-text{padding:.4rem 0 .7rem}.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item{margin:0 10px -.5rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container .element-item .menu-element.full-text{padding-top:0}.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item{margin:0 6px -.9rem}}@media (min-width:1400px){.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item{margin:0 .8rem -.5rem}}.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item .menu-element-item-text{display:inline;text-transform:uppercase;font-size:.75rem;margin-left:.5rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item .menu-element-item-text{font-size:10px}}@media (min-width:1400px){.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item .menu-element-item-text{font-size:.8rem}}.gogo-load-css .gogocarto-container .element-item .menu-element.full-text .menu-element-item .menu-element-item-text.favorite{color:#ff8f00;font-weight:700}.gogo-load-css .gogocarto-container .element-item .interactive-section{padding:0 1rem 0 .8rem;position:relative;line-height:3rem}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .element-item .interactive-section{padding:0 1rem 0 1.6rem}}.gogo-load-css .gogocarto-container .element-item .interactive-section>div{position:relative}.gogo-load-css .gogocarto-container .element-item .interactive-section .result-message{text-align:center;font-weight:700;color:#fff;line-height:1.7rem;padding:.6rem 0}.gogo-load-css .gogocarto-container .element-item #directory-content-list .interactive-section{display:none}.gogo-load-css .gogocarto-container .element-item #directory-content-list .element-item.active .interactive-section{display:block}.gogo-load-css .gogocarto-container .element-item .moderation-section .gogo-icon-attention,.gogo-load-css .gogocarto-container .element-item .moderation-section .gogo-icon-moderation,.gogo-load-css .gogocarto-container .element-item .vote-section .gogo-icon-attention,.gogo-load-css .gogocarto-container .element-item .vote-section .gogo-icon-moderation{color:#fff;font-size:20px;padding-top:3px;position:absolute}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container .element-item .moderation-section .gogo-icon-attention,.gogo-load-css .gogocarto-container .element-item .vote-section .gogo-icon-attention{display:none}.gogo-load-css .gogocarto-container .element-item .moderation-section .pending-text,.gogo-load-css .gogocarto-container .element-item .vote-section .pending-text{margin-left:0!important}}@media (max-width:460px){.gogo-load-css .gogocarto-container .element-item .moderation-section .long-text,.gogo-load-css .gogocarto-container .element-item .vote-section .long-text{display:none}}@media (max-width:360px){.gogo-load-css .gogocarto-container .element-item .moderation-section .pending-text,.gogo-load-css .gogocarto-container .element-item .vote-section .pending-text{opacity:0}}.gogo-load-css .gogocarto-container .element-item .moderation-section .text,.gogo-load-css .gogocarto-container .element-item .vote-section .text{margin-left:2.2rem;color:#fff}.gogo-load-css .gogocarto-container .element-item .moderation-section .btn-vote-more-info,.gogo-load-css .gogocarto-container .element-item .vote-section .btn-vote-more-info{line-height:1.2rem;position:absolute;top:14px;right:90px;padding:0;font-size:.85rem;color:#fff}.gogo-load-css .gogocarto-container .element-item .moderation-section .action-btn,.gogo-load-css .gogocarto-container .element-item .vote-section .action-btn{position:absolute;right:0;top:8px;margin:0;background-color:#dedede;color:#272626;font-size:.85rem}.gogo-load-css .gogocarto-container .element-item .moderation-section .moderation-input-comment,.gogo-load-css .gogocarto-container .element-item .vote-section .moderation-input-comment{color:#fff;border-color:#ccc!important;height:2.2rem}.gogo-load-css .gogocarto-container .element-item .moderation-section .moderation-input-comment::-webkit-input-placeholder,.gogo-load-css .gogocarto-container .element-item .vote-section .moderation-input-comment::-webkit-input-placeholder{color:#ccc}.gogo-load-css .gogocarto-container .element-item .moderation-section .moderation-input-comment::-moz-placeholder,.gogo-load-css .gogocarto-container .element-item .vote-section .moderation-input-comment::-moz-placeholder{color:#ccc}.gogo-load-css .gogocarto-container .element-item .moderation-section .moderation-input-comment:-ms-input-placeholder,.gogo-load-css .gogocarto-container .element-item .vote-section .moderation-input-comment:-ms-input-placeholder{color:#ccc}.gogo-load-css .gogocarto-container .element-item .moderation-section .moderation-input-comment:-moz-placeholder,.gogo-load-css .gogocarto-container .element-item .vote-section .moderation-input-comment:-moz-placeholder{color:#ccc}.gogo-load-css .gogocarto-container .element-item .validation-process-info:hover{cursor:help;border-bottom:1px dashed;border-color:inherit;text-decoration:none}.gogo-load-css .gogocarto-container .element-item #element-info-bar.small-width .btn-vote-more-info{display:none}.gogo-load-css .gogocarto-container .element-item .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.gogo-load-css .gogocarto-container .element-item .label-danger{background-color:#d9534f}.gogo-load-css .gogocarto-container .element-item .label-success{background-color:#00a65a}.gogo-load-css .gogocarto-container .element-item .label-default{background-color:#d2d6de;color:#444}.gogo-load-css .gogocarto-container .element-item .contributions{border:none;box-shadow:none;margin-top:0}.gogo-load-css .gogocarto-container .element-item .contributions .contribution-header{color:inherit;background-color:transparent;border:none;box-shadow:none;line-height:2rem;padding:15px 0;border-bottom:1px solid grey}.gogo-load-css .gogocarto-container .element-item .contributions .contribution-header .contribution-status{float:left}.gogo-load-css .gogocarto-container .element-item .contributions .contribution-header .contribution-updated-at{float:right}.gogo-load-css .gogocarto-container .element-item .contributions .contribution-body{color:inherit}.gogo-load-css .gogocarto-container .element-item .info-bar-tabs.tabs .tab a{cursor:pointer}.gogo-load-css .gogocarto-container .element-item .item-container{border-bottom:1px dashed grey;padding-bottom:5px;margin-bottom:5px}.gogo-load-css .gogocarto-container .element-item .vote-report-item{line-height:1.5rem!important}.gogo-load-css .gogocarto-container .element-item .pending-contribution{line-height:1.5rem!important;margin-bottom:0;padding:0}.gogo-load-css .gogocarto-container .element-item .vote-report-comment{font-style:italic}.gogo-load-css .gogocarto-container .element-item .body-admin-tab-content{display:none;padding-right:10px;font-size:.9em}.gogo-load-css .gogocarto-container .element-item .body-admin-tab-content .vote-report-item{padding:0!important}.gogo-load-css .gogocarto-container .element-item .collapsible-header{padding:0;position:relative}.gogo-load-css .gogocarto-container .element-item .collapsible-header i{margin-right:0;padding-left:.3rem}.gogo-load-css .gogocarto-container .element-item .collapsible-header a{text-decoration:underline}.gogo-load-css .gogocarto-container .element-item .collapsible-header .name h1{font-size:inherit;margin:.5rem 0;text-align:inherit;display:inline}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date{position:absolute;left:0;bottom:0;top:0;display:flex;align-items:center;width:100px;text-align:center;font-weight:700;flex-direction:column;justify-content:space-evenly;padding:10px 0}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-component{line-height:1}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-day,.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-month-short,.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-year{display:none}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-number{font-size:1.8rem}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-day-short{opacity:.8;font-size:.9rem}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date .date-month{font-size:.8rem;text-transform:uppercase;opacity:.8}.gogo-load-css .gogocarto-container .element-item .collapsible-header .header-date+.header-content{margin-left:100px}.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-title{position:relative;margin-bottom:0;overflow:hidden;text-overflow:ellipsis;line-height:2rem;padding:.5rem 0;font-weight:700}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-title{padding:1rem 1rem .5rem}}.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-title .distance{float:right;margin-left:1rem}.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-title .location{display:none}.gogo-load-css .gogocarto-container .element-item .collapsible-header .custom-header{margin-bottom:.5rem}.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-more{line-height:1.5rem;padding:0;margin-bottom:.5rem}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-more{padding:0 1rem}}.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-more .inline-option-values{font-weight:700;font-style:italic;padding-left:0;margin-bottom:.3rem}.gogo-load-css .gogocarto-container .element-item .collapsible-header .collapsible-header-more .inline-option-values .option-value.disabled{color:#9C9C9C;font-weight:400}.gogo-load-css .gogocarto-container .element-item .collapsible-body{background-color:transparent;padding:0;position:relative;border:none}.gogo-load-css .gogocarto-container .element-item .collapsible-body .collapsible-body-main-content{padding:.8rem;line-height:2rem}@media only screen and (min-width:601px){.gogo-load-css .gogocarto-container .element-item .collapsible-body .collapsible-body-main-content{padding:1rem}}.gogo-load-css .gogocarto-container .element-item .collapsible-body .osm-url-container{padding:.5rem 1rem;text-align:center;margin-top:-1rem;width:calc(100% + 2rem);margin-left:-1rem}.gogo-load-css .gogocarto-container .element-item .img-container{position:absolute;width:100%;top:0;left:0;right:0;overflow:hidden}.gogo-load-css .gogocarto-container .element-item .img-container .images-carousel{cursor:pointer!important;margin:0}.gogo-load-css .gogocarto-container .element-item .img-container .gogo-img{width:100%;height:auto}.gogo-load-css .gogocarto-container .element-item .img-overlay{position:relative;overflow:hidden}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn{display:none;cursor:pointer!important;height:100%;position:absolute;color:#fff;padding-top:17%!important;width:5rem;-webkit-transition:opacity .5s;-moz-transition:opacity .5s;-o-transition:opacity .5s;-ms-transition:opacity .5s;transition:opacity .5s;opacity:.7}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn:hover{opacity:1}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn.prev{background-image:linear-gradient(to right,rgba(70,70,70,.4) 0,rgba(255,255,255,0) 100%);padding:0 30px 0 .5rem;left:0}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn.prev .icon{left:.6rem}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn.next{background-image:linear-gradient(to left,rgba(70,70,70,.4) 0,rgba(255,255,255,0) 100%);padding:0 .5rem 0 30px;right:0}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn.next .icon{right:.6rem}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-navigation-btn .icon{font-size:3rem;position:absolute;top:calc(50% - 1.5rem);margin:0;text-shadow:0 1px 4px #757575}.gogo-load-css .gogocarto-container .element-item .img-overlay .img-clickable-area{height:100%;position:absolute;left:6rem;right:6rem;cursor:pointer!important}.gogo-load-css .gogocarto-container .element-item .field .field-label{font-weight:600;display:inline}.gogo-load-css .gogocarto-container .element-item .field-textarea{line-height:1.5rem;text-align:justify}.gogo-load-css .gogocarto-container .element-item .field-textarea div{white-space:pre-wrap}.gogo-load-css .gogocarto-container .element-item .show-more{display:inline;text-decoration:underline}.gogo-load-css .gogocarto-container .element-item .show-more:hover{cursor:pointer}.gogo-load-css .gogocarto-container .element-item .field-email .send-mail-btn{font-size:.8rem;margin:.4rem 0 .5rem;line-height:1.8rem;height:1.8rem}.gogo-load-css .gogocarto-container .element-item .field-elements,.gogo-load-css .gogocarto-container .element-item .field-tags{margin-top:.8rem}.gogo-load-css .gogocarto-container .element-item .field-elements .gogo-element,.gogo-load-css .gogocarto-container .element-item .field-elements .gogo-tag,.gogo-load-css .gogocarto-container .element-item .field-tags .gogo-element,.gogo-load-css .gogocarto-container .element-item .field-tags .gogo-tag{margin-right:8px;border-radius:5px;background-color:#dcdcdc;padding:0 10px;display:inline-block;margin-bottom:8px}.gogo-load-css .gogocarto-container .element-item .field-elements .gogo-element:hover,.gogo-load-css .gogocarto-container .element-item .field-tags .gogo-element:hover{cursor:pointer;background-color:#dad9d9}.gogo-load-css .gogocarto-container .element-item .field-openhours .day,.gogo-load-css .gogocarto-container .element-item .field-openhours .openHours{padding-left:0}.gogo-load-css .gogocarto-container .element-item .field-vimeo{position:relative;padding-bottom:65.25%!important;overflow:hidden;max-width:100%;height:auto;margin-top:-1rem}.gogo-load-css .gogocarto-container .element-item .field-vimeo embed,.gogo-load-css .gogocarto-container .element-item .field-vimeo iframe,.gogo-load-css .gogocarto-container .element-item .field-vimeo object{position:absolute;top:0;left:0;width:100%;height:100%}.gogo-load-css .gogocarto-container .element-item .field-updated-at{text-align:center;font-style:italic;opacity:.7;margin-top:1.2rem;padding-bottom:.3rem}.gogo-load-css .gogocarto-container .element-item .other-infos .field{margin-bottom:.5rem}.gogo-load-css .gogocarto-container .element-item .glossary{cursor:help}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-name{padding-top:1rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper+.category-name{padding-top:1.2rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .row+.category-wrapper .category-name{padding-top:.9rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper{margin-top:0!important}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper a.option-url{color:inherit}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .strong{text-decoration:underline}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper:not(:first-child){margin-top:.5rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper{margin-left:.5rem;padding-left:.5rem;border-left:1px dotted #c3c3c3}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .category-wrapper{margin-left:1.2rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper h3.category-name{font-size:90%;padding-bottom:.7rem;padding-top:.7rem;margin-bottom:0}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .strong{text-decoration:none!important}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .inline-container,.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper .option-value,.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .category-wrapper h3.category-name{padding-left:.6rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-name.main-option{font-weight:700}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .inline-option{font-style:italic}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .inline-option span.disabled{color:#9C9C9C}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-description{padding:.5rem;font-style:italic;font-size:.9rem;color:#5d5d5d}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-description.disabled{color:#9C9C9C}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value{line-height:2.5rem;padding:0}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value position-relative .icon{font-size:1.2rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value position-relative .icon.disabled{color:#BFBFBF!important}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .icon.fa,.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .icon.fab,.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .icon.far,.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .icon.fas{font-size:1.1rem;padding-top:.8rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value img.icon{height:1.2rem;width:1.2rem;padding-top:0;margin-top:10px;margin-right:.8rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.disabled{color:#9C9C9C!important}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value .gogo-icon-external-link{float:right;font-size:.8rem}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.inline{display:inline-block;padding-left:0}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.inline:not(.last):after{content:",";margin-right:5px;margin-left:-3px}.gogo-load-css .gogocarto-container .element-item .collapsible-body .category-wrapper .option-value.inline .icon{display:none}.gogo-load-css .gogocarto-container .element-item h1:not(.element-title),.gogo-load-css .gogocarto-container .element-item h2,.gogo-load-css .gogocarto-container .element-item h3,.gogo-load-css .gogocarto-container .element-item h4,.gogo-load-css .gogocarto-container .element-item h5{font-size:.85rem;text-transform:uppercase;font-weight:600;margin:0 0 1rem;padding:1.5rem 0 0;text-align:left}.gogo-load-css .gogocarto-container .element-item h1:not(.element-title).first-element-of-body-content,.gogo-load-css .gogocarto-container .element-item h2.first-element-of-body-content,.gogo-load-css .gogocarto-container .element-item h3.first-element-of-body-content,.gogo-load-css .gogocarto-container .element-item h4.first-element-of-body-content,.gogo-load-css .gogocarto-container .element-item h5.first-element-of-body-content{padding-top:.5rem}.gogo-load-css .gogocarto-container .element-item h1:not(.element-title).unique-element-between-dividers,.gogo-load-css .gogocarto-container .element-item h2.unique-element-between-dividers,.gogo-load-css .gogocarto-container .element-item h3.unique-element-between-dividers,.gogo-load-css .gogocarto-container .element-item h4.unique-element-between-dividers,.gogo-load-css .gogocarto-container .element-item h5.unique-element-between-dividers{display:none}.gogo-load-css .gogocarto-container .element-item .info-bar-divider~h3{padding-top:1rem}.gogo-load-css .gogocarto-container .element-item .row{margin-bottom:0}.gogo-load-css .gogocarto-container .element-item p{padding:0;margin:0}.gogo-load-css .gogocarto-container .element-item .info-bar-divider{height:1px;overflow:hidden;margin-bottom:.3rem;margin-top:.7rem}.gogo-load-css .gogocarto-container .element-item .btn,.gogo-load-css .gogocarto-container .element-item .btn-large{height:2rem;line-height:2rem;padding:0 1rem;margin-bottom:1rem}.gogo-load-css .gogocarto-container .element-item span.added{color:#3a772c}.gogo-load-css .gogocarto-container .element-item span.removed{text-decoration:line-through;margin-right:5px;color:#b57e7e}.gogo-load-css .gogocarto-container .element-item a>span.equals{color:rgba(0,0,0,.87)!important}.gogo-load-css .gogocarto-container #element-info-bar .element-item .expand-label{font-weight:700;padding-right:0}.gogo-load-css .gogocarto-container #element-info-bar .element-item.active .expand-label:after{content:attr(label-less)}.gogo-load-css .gogocarto-container #element-info-bar .element-item.active .expand-label.transform-big{position:absolute;color:#fff;z-index:2;right:0;width:auto;margin-right:1.7rem;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;-ms-transition:all .4s;transition:all .4s;padding:8px 25px;bottom:-15px}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #element-info-bar .element-item.active .expand-label.transform-big{padding:.3rem 1.2rem;bottom:-1rem}}.gogo-load-css .gogocarto-container #element-info-bar .element-item.active .expand-label.transform-big:hover{color:#fff;box-shadow:0 6px 15px 0 rgba(0,0,0,.2),0 5px 17px 0 rgba(0,0,0,.19)}.gogo-load-css .gogocarto-container #element-info-bar .element-item:not(.active) .expand-label:after{content:attr(label-more)}.gogo-load-css .gogocarto-container #element-info-bar .element-item:not(.active) .expand-label,.gogo-load-css .gogocarto-container #element-info-bar .element-item:not(.active) .expand-label:not(.transform-big){background-color:transparent!important}.gogo-load-css .gogocarto-container #element-info-bar .collapsible-header{position:relative;z-index:2}.gogo-load-css .gogocarto-container #element-info-bar .collapsible-header span.added{color:#3ab33a}.gogo-load-css .gogocarto-container #element-info-bar .collapsible-body .collapsible-body-main-container{height:100%;width:100%;position:absolute;top:0;left:0;overflow-y:auto}.gogo-load-css .gogocarto-container #element-info-bar .collapsible-body .img-container,.gogo-load-css .gogocarto-container #element-info-bar .collapsible-body .img-overlay{height:33%;background-color:transparent}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-header{background-color:inherit!important}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-header a{color:inherit}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-header a:hover{color:#000}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item:not(.active) .collapsible-header{border:none!important}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item:not(.active) .header-date{opacity:.85}.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-body,.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-header{padding-left:.5rem;padding-right:.5rem}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-body,.gogo-load-css .gogocarto-container #element-info-bar.display-bottom .element-item .collapsible-header{padding-left:.8rem;padding-right:.8rem;padding-top:5px}}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header{border:none;cursor:default;width:100%}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header a{color:#fff}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header a:hover{color:#e6e6e6}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .collapsible-header-title{position:relative;line-height:2.5rem;font-weight:400}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .collapsible-header-title .distance{font-size:1.3rem;color:inherit}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .collapsible-header-title .gogo-icon-close{font-size:1.5rem;margin-top:-.8rem}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .collapsible-header-more{margin-bottom:1rem}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .name{font-size:1.8rem;text-align:left}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .description,.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .name{width:100%!important}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-header .description{margin-bottom:0}.gogo-load-css .gogocarto-container #element-info-bar.display-aside .element-item .collapsible-body{height:100%;overflow-y:auto}.gogo-load-css .gogocarto-container .simple-modal.modal{z-index:2000;max-width:1200px;top:30%!important;max-height:80%;height:auto;position:absolute!important}.gogo-load-css .gogocarto-container .simple-modal.modal h5{margin-bottom:.5rem}.gogo-load-css .gogocarto-container .simple-modal.modal .modal-content{padding-bottom:.8rem!important}.gogo-load-css .gogocarto-container .simple-modal.modal .modal-content .modal-error-msg{display:none;color:#B90303}.gogo-load-css .gogocarto-container .simple-modal.modal .modal-footer{padding-right:2.5rem}.gogo-load-css .gogocarto-container .simple-modal.modal .modal-footer .modal-action{color:#fff;font-size:.9rem;padding:0 25px}.gogo-load-css .gogocarto-container .simple-modal.modal .modal-footer .modal-action.btn,.gogo-load-css .gogocarto-container .simple-modal.modal .modal-footer .modal-action.btn-large{background-color:#de5a5f}.gogo-load-css .gogocarto-container .simple-modal.modal .modal-footer .modal-action.btn-large:hover,.gogo-load-css .gogocarto-container .simple-modal.modal .modal-footer .modal-action.btn:hover{background-color:#ec787d}.gogo-load-css .gogocarto-container .simple-modal.modal .input-simple-modal:focus{border-color:#4A7874;box-shadow:none}.gogo-load-css .gogocarto-container .simple-modal.modal .input-simple-modal::selection{background-color:#4A7874;color:#fff}.gogo-load-css .gogocarto-container .simple-modal.modal .input-simple-modal::-moz-selection{background-color:#4A7874;color:#fff}.gogo-load-css .gogocarto-container .page-modal .btn-back{float:left;font-size:2rem;line-height:4rem;padding:0 2rem;margin-left:-2rem}.gogo-load-css .gogocarto-container .modal.action-modal h5{text-align:center;margin-bottom:1.5rem;line-height:2.5rem}.gogo-load-css .gogocarto-container .modal.action-modal label.small-label{display:block;font-size:.85rem;font-weight:700;margin-top:1rem;margin-bottom:-1.8rem}.gogo-load-css .gogocarto-container .modal.action-modal .elementName{font-style:italic;font-size:1.5rem}.gogo-load-css .gogocarto-container .modal.action-modal .error{display:none;color:#B90303}.gogo-load-css .gogocarto-container .modal.action-modal .option-radio-label{margin-top:.5rem;display:block!important;height:auto!important}.gogo-load-css .gogocarto-container .modal.action-modal .cancel-btn{display:none}.gogo-load-css .gogocarto-container .modal.action-modal .cancel-btn .preloader-wrapper{height:15px;width:15px;top:1px}.gogo-load-css .gogocarto-container .modal.action-modal .cancel-btn .preloader-wrapper .spinner-layer{border-color:#fff}.gogo-load-css .gogocarto-container .modal.action-modal .loader-overlay{display:none;position:absolute;top:0;left:0;right:0;bottom:0;background-color:#000;opacity:.35}.gogo-load-css .gogocarto-container #modal-iframe .subtitle{text-align:center;font-style:italic;margin-bottom:1.5rem}.gogo-load-css .gogocarto-container #modal-iframe label{font-size:.8rem;width:100%}.gogo-load-css .gogocarto-container #modal-iframe label:not(:last-child){margin-bottom:15px}.gogo-load-css .gogocarto-container #modal-iframe label strong{font-weight:700}.gogo-load-css .gogocarto-container #modal-iframe .iframe-input{width:80px;height:2rem;font-size:.9rem;font-family:"Lucida Console",Monaco,monospace;margin:1rem;text-align:center}.gogo-load-css .gogocarto-container #modal-iframe #iframe-code{width:100%;padding:1rem;background-color:#f1f1f1;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;box-shadow:none;font-family:"Lucida Console",Monaco,monospace;border:1px dashed #c1c1c1;margin-bottom:1rem}.gogo-load-css .gogocarto-container #modal-image{width:90%}.gogo-load-css .gogocarto-container #modal-image .modal-content{padding:0;overflow:auto;height:calc(100% - 52px);text-align:center}.gogo-load-css .gogocarto-container #modal-image img{max-width:100%;object-fit:scale-down}.gogo-load-css .gogocarto-container .shadow-bottom{width:100%;margin-right:0;height:8px;position:absolute;top:100%;z-index:4;left:0;opacity:1;border-top:1px solid rgba(0,0,0,.4);background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.3)),to(rgba(0,0,0,0)));-webkit-mask-box-image:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(0,0,0,0)),color-stop(.5,rgba(0,0,0,.8)),color-stop(1,rgba(0,0,0,0)))}.gogo-load-css .gogocarto-container .custom-scroll-bar-light::-webkit-scrollbar-track,.gogo-load-css .gogocarto-container .dropdown-content::-webkit-scrollbar-track{background-color:#f6f6f6;border:1px solid #f0f0f0}.gogo-load-css .gogocarto-container .custom-scroll-bar-light::-webkit-scrollbar,.gogo-load-css .gogocarto-container .dropdown-content::-webkit-scrollbar{width:7px}.gogo-load-css .gogocarto-container .custom-scroll-bar-light::-webkit-scrollbar-thumb,.gogo-load-css .gogocarto-container .dropdown-content::-webkit-scrollbar-thumb{background-color:#c3c3c3;min-height:40px}.gogo-load-css .gogocarto-container .noUi-horizontal{height:10px;box-shadow:none!important}.gogo-load-css .gogocarto-container .noUi-horizontal .noUi-handle{border:none;width:30px;height:20px;right:-15px!important;left:auto!important;box-shadow:none!important;background-color:transparent}.gogo-load-css .gogocarto-container .noUi-horizontal .noUi-handle:after,.gogo-load-css .gogocarto-container .noUi-horizontal .noUi-handle:before{content:none}.gogo-load-css .gogocarto-container .noUi-horizontal .noUi-touch-area{border-radius:5px}.gogo-load-css .gogocarto-container .noUi-horizontal .noUi-tooltip{right:auto;top:-3px;border-radius:5px;bottom:auto;line-height:.9rem;font-size:.8rem;font-weight:700;min-width:30px}.gogo-load-css .gogocarto-container #gogo-custom-popup{position:absolute;bottom:20px;z-index:500;right:10px;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:5px 45px 5px 30px;line-height:1.7;max-width:400px;font-size:.9rem;border-radius:5px}[class*=" gogo-icon-"]:before,[class^=gogo-icon-]:before,[data-icon]:before{font-family:gogocarto!important;font-style:normal!important;font-weight:400!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.gogo-load-css .gogocarto-container #gogo-custom-popup #btn-close-custom-popup{font-size:1rem;cursor:pointer;position:absolute;right:18px;margin:0;top:14px}@media only screen and (max-width:600px){.gogo-load-css .gogocarto-container{font-size:12px}}.gogo-load-css .gogocarto-container #directory-menu{position:absolute;height:100%}.gogo-load-css .gogocarto-container #directory-content{position:relative;background-color:#9e9e9e;overflow:hidden;-webkit-box-flex:1 auto;-moz-box-flex:1 auto;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:column nowrap;-webkit-flex-flow:column nowrap;flex-flow:column nowrap}.gogo-load-css .gogocarto-container h1{font-size:2.5rem;text-align:center;margin-top:.5rem}@media screen and (min-width:600px){.gogo-load-css .gogocarto-container h1{font-size:3.5rem}}.gogo-load-css label{color:inherit}@font-face{font-family:gogocarto;src:url(fonts/gogocarto.eot);src:url(fonts/gogocarto.eot?#iefix) format("embedded-opentype"),url(fonts/gogocarto.woff) format("woff"),url(fonts/gogocarto.ttf) format("truetype"),url(fonts/gogocarto.svg#gogocarto) format("svg");font-weight:400;font-style:normal}[data-icon]:before{content:attr(data-icon)}.gogo-icon-account-circle:before{content:"\62"}.gogo-icon-delete:before{content:"\63"}.gogo-icon-description:before{content:"\64"}.gogo-icon-star-full:before{content:"\65"}.gogo-icon-icon-copy-hours:before{content:"\66"}.gogo-icon-starcircle:before{content:"\67"}.gogo-icon-no-eye:before{content:"\68"}.gogo-icon-eye:before{content:"\69"}.gogo-icon-attention:before{content:"\6a"}.gogo-icon-mail:before{content:"\6b"}.gogo-icon-marker-symbol:before{content:"\6c"}.gogo-icon-phone:before{content:"\6d"}.gogo-icon-add-circle:before{content:"\6e"}.gogo-icon-plus-circle-1:before{content:"\6f"}.gogo-icon-clear:before{content:"\70"}.gogo-icon-redo:before{content:"\71"}.gogo-icon-day:before{content:"\72"}.gogo-icon-exclamation-1:before{content:"\73"}.gogo-icon-edit:before{content:"\74"}.gogo-icon-menu:before{content:"\75"}.gogo-icon-directions:before{content:"\77"}.gogo-icon-layers:before{content:"\78"}.gogo-icon-locate:before{content:"\7a"}.gogo-icon-material-design-icons-1:before{content:"\41"}.gogo-icon-people:before{content:"\42"}.gogo-icon-add-element:before{content:"\43"}.gogo-icon-internet:before{content:"\44"}.gogo-icon-star-empty:before{content:"\45"}.gogo-icon-share-alt:before{content:"\46"}.gogo-icon-expand:before{content:"\47"}.gogo-icon-angle-right:before{content:"\48"}.gogo-icon-arrow-circle-down:before{content:"\49"}.gogo-icon-facebook:before{content:"\4a"}.gogo-icon-external-link:before{content:"\4b"}.gogo-icon-gplus:before{content:"\4c"}.gogo-icon-home:before{content:"\4d"}.gogo-icon-info:before{content:"\4e"}.gogo-icon-list:before{content:"\4f"}.gogo-icon-lock:before{content:"\50"}.gogo-icon-plus-circle:before{content:"\51"}.gogo-icon-search:before{content:"\52"}.gogo-icon-close:before{content:"\53"}.gogo-icon-user-plus:before{content:"\54"}.gogo-icon-users:before{content:"\55"}.gogo-icon-unlock:before{content:"\56"}.gogo-icon-yahoo:before{content:"\57"}.gogo-icon-twitter:before{content:"\58"}.gogo-icon-partner-3:before{content:"\59"}.gogo-icon-map:before{content:"\5a"}.gogo-icon-ellipsis:before{content:"\30"}.gogo-icon-moderation:before{content:"\79"}.gogo-icon-filters-1:before{content:"\37"}.gogo-icon-vote:before{content:"\76"}.gogo-icon-marker-simple-1:before{content:"\31"}.gogo-icon-marker-simple:before{content:"\32"}.gogo-icon-stamp-1:before{content:"\36"}.gogo-icon-stamp-2:before{content:"\38"}.gogo-icon-communs:before{content:"\34"}.gogo-icon-printemps:before{content:"\33"}.gogo-icon-chevron-left:before{content:"\35"}.gogo-icon-chevron-right:before{content:"\39"}.gogo-icon-date:before{content:"\21"}.gogo-icon-number:before{content:"\22"}.gogo-icon-recycle:before{content:"\23"}.gogo-icon-download-1:before{content:"\24"}.gogo-icon-upload:before{content:"\25"}.gogo-icon-images:before{content:"\26"}.gogo-icon-add-file:before{content:"\27"}.gogo-icon-search-file:before{content:"\28"}.gogo-icon-image:before{content:"\29"}.gogo-icon-images-1:before{content:"\2a"}.gogo-icon-image-1:before{content:"\2b"}.gogo-icon-upload-1:before{content:"\2c"}.gogo-icon-upload-2:before{content:"\2d"}.gogo-icon-download:before{content:"\2e"}.gogo-icon-image-2:before{content:"\2f"}.gogo-icon-database:before{content:"\3a"}.gogo-icon-marker:before{content:"\61"}.gogo-icon-rss:before{content:"\e003"} \ No newline at end of file diff --git a/styles/vendor/leaflet/leaflet.css b/styles/vendor/leaflet/leaflet.css index 981874b5c..2961b7618 100644 --- a/styles/vendor/leaflet/leaflet.css +++ b/styles/vendor/leaflet/leaflet.css @@ -60,6 +60,11 @@ padding: 0; } +.leaflet-container img.leaflet-tile { + /* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */ + mix-blend-mode: plus-lighter; +} + .leaflet-container.leaflet-touch-zoom { -ms-touch-action: pan-x pan-y; touch-action: pan-x pan-y; @@ -646,7 +651,7 @@ svg.leaflet-image-layer.leaflet-interactive path { } /* Printing */ - + @media print { /* Prevent printers from removing background-images of controls. */ .leaflet-control { diff --git a/styles/yeswiki-base.css b/styles/yeswiki-base.css index a7399eb92..d6aa1a5ac 100755 --- a/styles/yeswiki-base.css +++ b/styles/yeswiki-base.css @@ -249,6 +249,36 @@ li.toc5 { height: 70vh; border: 0; } +#YesWikiModal .modal-dialog .no-header-btn-close { + display: none; +} +#YesWikiModal .modal-dialog.no-header .no-header-btn-close { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + top: -1rem; + right: -1rem; + background-color: #4e5056; + background-color: var(--neutral-color); + color: white; + border-radius: 50%; + width: 2.5rem; + height: 2.5rem; + font-size: 2rem; + font-weight: bold; + border: none; + cursor: pointer; +} +#YesWikiModal .modal-dialog.no-header .modal-header { + visibility: hidden; + height: 1rem; + max-height: 1rem; + overflow: hidden; + padding: 0; +} + + /* remove first column of revisions */ #YesWikiModal .first-revisions-selector, #YesWikiModal .current-page-revision, diff --git a/templates/_form-open.twig b/templates/_form-open.twig new file mode 100644 index 000000000..297a7ff4d --- /dev/null +++ b/templates/_form-open.twig @@ -0,0 +1,23 @@ +{% set formMethod = (formMethod == 'get') ? 'get' : 'post' %} +{% set tag = (tag is empty) ? '' : tag %} +
        + {%- if (method == 'edit' or method == 'editiframe') and + (config.password_for_editing is not empty and + request.post.password_for_editing is not empty and + not (request.post.password_for_editing is iterable)) ~%} + + {%- endif ~%} + {%- if not config.rewrite_mode and formMethod == 'get' ~%} + + {# TODO define MiniHref in TemplateEngine #} + {%- endif ~%} diff --git a/templates/actions/edit-group-action.twig b/templates/actions/edit-group-action.twig new file mode 100644 index 000000000..956b08885 --- /dev/null +++ b/templates/actions/edit-group-action.twig @@ -0,0 +1,49 @@ +{# group edition or deletion #} +{% embed '@core/form.twig' with {formMethod: 'post', class:'form-inline'} %} + {% block formcontent %} + +

        + + + +

        +

        + {% endblock formcontent %} +{% endembed %} + +{# group creation #} +{% embed '@core/form.twig' with {formMethod: 'post', class:'form-inline'} %} + {% block formcontent %} + +

        + + +

        + {% endblock formcontent %} +{% endembed %} + +{% if message is not empty %} + {{ include('@templates/alert-message.twig',{message:message,type:type ?? 'info'}) }} +{% endif %} + +{% if selectedGroupName is not empty %} + {% embed '@core/form.twig' with {formMethod: 'post'} %} + {% block formcontent %} +
        + ({{ _t('ONE_NAME_BY_LINE') }}) + + + +
        + + {% endblock formcontent %} + {% endembed %} +{% endif %} \ No newline at end of file diff --git a/templates/admin-reactions-table.twig b/templates/admin-reactions-table.twig index 8c220b9ad..7347b213b 100644 --- a/templates/admin-reactions-table.twig +++ b/templates/admin-reactions-table.twig @@ -29,13 +29,7 @@ diff --git a/templates/comment-table.twig b/templates/comment-table.twig index 7ea97debd..3205389b9 100644 --- a/templates/comment-table.twig +++ b/templates/comment-table.twig @@ -50,8 +50,6 @@ href="#commentsTableDeleteModal" class="btn btn-sm btn-danger" data-name="{{ com.tag }}" - {# csrftoken already generated by multidelete.insertSelectLine so no generate a new one #} - data-csrfToken="{{ csrfToken({id:"api\\comments\\#{com.tag}\\delete",refresh:true})|e('html_attr') }}" title="{{ _t('COMMENT_DELETE') }}"> {{ _t('DELETE') }} diff --git a/templates/form.twig b/templates/form.twig new file mode 100644 index 000000000..1c08b7006 --- /dev/null +++ b/templates/form.twig @@ -0,0 +1,4 @@ +{{ include('@core/_form-open.twig') }} + {% block formcontent %} + {% endblock formcontent %} +
        \ No newline at end of file diff --git a/templates/iframe_result.twig b/templates/iframe_result.twig new file mode 100644 index 000000000..0acd0f9a2 --- /dev/null +++ b/templates/iframe_result.twig @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/templates/multidelete-macro.twig b/templates/multidelete-macro.twig index f5be7706c..3d85a2788 100644 --- a/templates/multidelete-macro.twig +++ b/templates/multidelete-macro.twig @@ -55,7 +55,6 @@ {% else %} class="selectline" data-itemid="{{ itemId }}" - data-csrftoken="{{ csrfToken({id:"api\\#{type}\\#{itemId}\\delete",refresh:true})|e('html_attr') }}" {% endif %} type="checkbox" id="{{id}}" diff --git a/tests/includes/services/ArchiveServiceTest.php b/tests/includes/services/ArchiveServiceTest.php index 853c00877..642e65ae0 100644 --- a/tests/includes/services/ArchiveServiceTest.php +++ b/tests/includes/services/ArchiveServiceTest.php @@ -33,6 +33,8 @@ public function testArchiveServiceExisting(): array * @covers ArchiveService::archive * @param bool $savefiles * @param bool $savedatabase + * @param array $foldersToInclude + * @param array $foldersToExclude * @param string $locationSuffix * @param null|int $nbFiles * @param array $filesToFind @@ -42,6 +44,8 @@ public function testArchiveServiceExisting(): array public function testArchive( bool $savefiles, bool $savedatabase, + array $foldersToInclude, + array $foldersToExclude, string $locationSuffix, ?int $nbFiles, array $filesToFind, @@ -52,7 +56,9 @@ public function testArchive( $location = $services['archiveService']->archive( $output, $savefiles, - $savedatabase + $savedatabase, + $foldersToInclude, + $foldersToExclude, ); $data = $this->getDataFromLocation($location, $services['wiki']); $error = $data['error'] ?? ""; @@ -65,19 +71,63 @@ public function testArchive( $this->assertContains($path, $data['files']); } $this->assertCount($nbFiles, $data['files']); - if (!is_null($wakkaContent)) { - $this->assertArrayHasKey('wakkaContent', $data); - $this->checkWakkaContent($wakkaContent, $data['wakkaContent']); - } + } + if (!is_null($wakkaContent)) { + $this->assertArrayHasKey('wakkaContent', $data); + $this->checkWakkaContent($wakkaContent, $data['wakkaContent']); } } public function archiveProvider() { + if (!class_exists(ArchiveService::class,false)){ + include_once 'includes/services/ArchiveService.php'; + } + $defaultFoldersToInclude = constant("\\YesWiki\\Core\\Service\\ArchiveService::FOLDERS_TO_INCLUDE"); + $defaultFoldersToExclude = constant("\\YesWiki\\Core\\Service\\ArchiveService::FOLDERS_TO_EXCLUDE"); return [ + 'archive only root files' => [ + 'savefiles' => true, + 'savedatabase' => false, + 'foldersToInclude' => [], + 'foldersToExclude' => $defaultFoldersToInclude, + 'locationSuffix' => "ARCHIVE_ONLY_FILES_SUFFIX", + 'nbFiles' => -1, + 'filesToFind' => ['wakka.config.php'], + 'wakkaContent' => [ + 'archive' => [ + 'foldersToInclude' => $defaultFoldersToInclude, + 'foldersToExclude' => array_merge($defaultFoldersToExclude,$defaultFoldersToInclude) + ], + ] + ], + 'archive only root files with database' => [ + 'savefiles' => true, + 'savedatabase' => true, + 'foldersToInclude' => [], + 'foldersToExclude' => $defaultFoldersToInclude, + 'locationSuffix' => "ARCHIVE_SUFFIX", + 'nbFiles' => -1, + 'filesToFind' => [ + 'wakka.config.php', + 'private', + 'private/backups', + 'private/backups/.htaccess', + 'private/backups/README.md', + 'private/backups/content.sql', + ], + 'wakkaContent' => [ + 'archive' => [ + 'foldersToInclude' => $defaultFoldersToInclude, + 'foldersToExclude' => array_merge($defaultFoldersToExclude,$defaultFoldersToInclude) + ], + ] + ], 'archive only database' => [ 'savefiles' => false, 'savedatabase' => true, + 'foldersToInclude' => [], + 'foldersToExclude' => [], 'locationSuffix' => "ARCHIVE_ONLY_DATABASE_SUFFIX", 'nbFiles' => 5, 'filesToFind' => [ @@ -88,7 +138,7 @@ public function archiveProvider() 'private/backups/content.sql' ], 'wakkaContent' => null - ] + ], ]; } @@ -192,8 +242,12 @@ private function checkWakkaContent($contentDefinition, $contentToCheck) if (is_array($contentDefinition)) { $this->assertIsArray($contentToCheck); foreach ($contentDefinition as $key => $value) { - $this->assertArrayHasKey($key, $contentToCheck); - $this->checkWakkaContent($contentDefinition[$key], $contentToCheck[$key]); + if (is_integer($key) && is_scalar($value)){ + $this->assertContains($value,$contentToCheck); + } else { + $this->assertArrayHasKey($key, $contentToCheck); + $this->checkWakkaContent($contentDefinition[$key], $contentToCheck[$key]); + } } } elseif (is_scalar($contentDefinition)) { $this->assertEquals($contentDefinition, $contentToCheck); @@ -217,10 +271,12 @@ public function testNotArchiveInParallel( $consoleService = $services['wiki']->services->get(ConsoleService::class); $previousStatus = $params->has('wiki_status') ? $params->get('wiki_status') : null; $this->setWikiStatus($configService, $status); + + $defaultFoldersToInclude = constant("\\YesWiki\\Core\\Service\\ArchiveService::FOLDERS_TO_INCLUDE"); + $results = $consoleService->startConsoleSync("core:archive", [ "-f", - "-x","*,.*", - "-e","wakka.config.php" + "-x",implode(',',$defaultFoldersToInclude), ]); if (empty($previousStatus)) { $this->unsetWikiStatus($configService); @@ -279,10 +335,11 @@ public function testhideConfigValuesParams( $configService = $services['wiki']->services->get(ConfigurationService::class); $consoleService = $services['wiki']->services->get(ConsoleService::class); + $defaultFoldersToInclude = constant("\\YesWiki\\Core\\Service\\ArchiveService::FOLDERS_TO_INCLUDE"); + $consoleParams = [ "-f", - "-x","*,.*", - "-e","wakka.config.php" + "-x",implode(',',$defaultFoldersToInclude), ]; $previoushideConfigValuesParams = $this->getHideConfigValuesParam($configService); diff --git a/tools/aceditor/lang/aceditor_fr.inc.php b/tools/aceditor/lang/aceditor_fr.inc.php index b016ed5a4..3b0b9440f 100755 --- a/tools/aceditor/lang/aceditor_fr.inc.php +++ b/tools/aceditor/lang/aceditor_fr.inc.php @@ -1,10 +1,10 @@ 'Choisissez un Formulaire', + 'ACTION_BUILDER_CHOOSE_FORM' => 'Choisissez un formulaire', 'ACTION_BUILDER_CHOOSE_TEMPLATE' => 'Sous quelle forme voulez-vous afficher les données?', 'ACTION_BUILDER_CHOOSE_ACTION' => 'Choisissez une action', - 'ACTION_BUILDER_WIKI_CODE_TITLE' => "Code à include dans la page", + 'ACTION_BUILDER_WIKI_CODE_TITLE' => "Code à inclure dans la page", 'ACTION_BUILDER_PARAMETERS' => 'Paramètres', 'ACTION_BUILDER_TEMPLATE_CUSTOM' => 'Template custom', 'ACTION_BUILDER_SEVERAL_FORMS_HINT' => 'Nb. : Il est possible d\'afficher plusieurs bases de données d\'un coup en entrant leur id séparé par une virgule [accéder à la documentation].', diff --git a/tools/aceditor/presentation/javascripts/actions-builder-app.js b/tools/aceditor/presentation/javascripts/actions-builder-app.js index 346f2ce68..9f4ab0d5f 100644 --- a/tools/aceditor/presentation/javascripts/actions-builder-app.js +++ b/tools/aceditor/presentation/javascripts/actions-builder-app.js @@ -201,7 +201,7 @@ export const app = { // force watcher without changing value because VueJs will not detect the change // The comparison between changes is done at regular interval, so there will not have detection // of change if the value retrieve its previous value before the end of the interval - this.watchSelectedActionId() + this.watchSelectedActionId() } else { this.selectedActionId = Object.keys(this.actions)[0] } @@ -251,7 +251,7 @@ export const app = { params[`id[${index}]`] = id }) } - $.getJSON(wiki.url('?root/json', params), (data) => { + $.getJSON(wiki.url('?wiki/json', params), (data) => { this.loadingForms = this.loadingForms.filter((e) => !idsToSearch.includes(e)) // keep ? because standart http rewrite waits for CamelCase and 'root' is not if (Array.isArray(data) && data[0] != undefined) { diff --git a/tools/aceditor/presentation/javascripts/components/InputHelper.js b/tools/aceditor/presentation/javascripts/components/InputHelper.js index 2833c5cf7..317115920 100644 --- a/tools/aceditor/presentation/javascripts/components/InputHelper.js +++ b/tools/aceditor/presentation/javascripts/components/InputHelper.js @@ -67,7 +67,8 @@ export default { const extraFieldsWithoutOptions = { date_creation_fiche: _t('ACTION_BUILDER_CREATION_DATE'), date_maj_fiche: _t('ACTION_BUILDER_MODIFICATION_DATE'), - owner: _t('ACTION_BUILDER_OWNER') + owner: _t('ACTION_BUILDER_OWNER'), + url: _t('URL') } for (const key in extraFieldsWithoutOptions) { if (extraFields.includes(key)) { diff --git a/tools/aceditor/presentation/javascripts/components/InputPageList.js b/tools/aceditor/presentation/javascripts/components/InputPageList.js index 05720303f..d52aaf989 100644 --- a/tools/aceditor/presentation/javascripts/components/InputPageList.js +++ b/tools/aceditor/presentation/javascripts/components/InputPageList.js @@ -3,7 +3,7 @@ export default { computed: { pageList() { $.ajax({ - url: wiki.url('?root/json', { demand: 'pages' }), // keep ? because standart http rewrite waits for CamelCase and 'root' is not + url: wiki.url('?wiki/json', { demand: 'pages' }), // keep ? because standart http rewrite waits for CamelCase and 'root' is not async: true, dataType: 'json', type: 'GET', @@ -33,8 +33,8 @@ export default { diff --git a/tools/aceditor/presentation/javascripts/components/PreviewAction.js b/tools/aceditor/presentation/javascripts/components/PreviewAction.js index 80bec6b37..66953d5d9 100644 --- a/tools/aceditor/presentation/javascripts/components/PreviewAction.js +++ b/tools/aceditor/presentation/javascripts/components/PreviewAction.js @@ -3,7 +3,7 @@ export default { computed: { previewIframeUrl() { if (!this.wikiCode) return '' - const result = wiki.url('root/render', { content: this.wikiCode }) + const result = wiki.url('wiki/render', { content: this.wikiCode }) return result } }, diff --git a/tools/aceditor/presentation/javascripts/ext-searchbox.js b/tools/aceditor/presentation/javascripts/ext-searchbox.js index b498c9a39..ecfe005bb 100644 --- a/tools/aceditor/presentation/javascripts/ext-searchbox.js +++ b/tools/aceditor/presentation/javascripts/ext-searchbox.js @@ -1,4 +1,4 @@ -ace.define("ace/ext/searchbox.css",["require","exports","module"],function(e,t,n){n.exports='\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: "";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}'}),ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox.css","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/lang"),s=e("../lib/event"),o=e("./searchbox.css"),u=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys"),f=999;r.importCssString(o,"ace_searchbox",!1);var l=function(e,t,n){var i=r.createElement("div");r.buildDom(["div",{"class":"ace_search right"},["span",{action:"hide","class":"ace_searchbtn_close"}],["div",{"class":"ace_search_form"},["input",{"class":"ace_search_field",placeholder:"Search for",spellcheck:"false"}],["span",{action:"findPrev","class":"ace_searchbtn prev"},"\u200b"],["span",{action:"findNext","class":"ace_searchbtn next"},"\u200b"],["span",{action:"findAll","class":"ace_searchbtn",title:"Alt-Enter"},"All"]],["div",{"class":"ace_replace_form"},["input",{"class":"ace_search_field",placeholder:"Replace with",spellcheck:"false"}],["span",{action:"replaceAndFindNext","class":"ace_searchbtn"},"Replace"],["span",{action:"replaceAll","class":"ace_searchbtn"},"All"]],["div",{"class":"ace_search_options"},["span",{action:"toggleReplace","class":"ace_button",title:"Toggle Replace mode",style:"float:left;margin-top:-2px;padding:0 5px;"},"+"],["span",{"class":"ace_search_counter"}],["span",{action:"toggleRegexpMode","class":"ace_button",title:"RegExp Search"},".*"],["span",{action:"toggleCaseSensitive","class":"ace_button",title:"CaseSensitive Search"},"Aa"],["span",{action:"toggleWholeWords","class":"ace_button",title:"Whole Word Search"},"\\b"],["span",{action:"searchInSelection","class":"ace_button",title:"Search In Selection"},"S"]]],i),this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e),r.importCssString(o,"ace_searchbox",e.container)};(function(){this.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},this.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;s.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),s.stopPropagation(e)}),s.addListener(e,"click",function(e){var n=e.target||e.srcElement,r=n.getAttribute("action");r&&t[r]?t[r]():t.$searchBarKb.commands[r]&&t.$searchBarKb.commands[r].exec(t),s.stopPropagation(e)}),s.addCommandKeyListener(e,function(e,n,r){var i=a.keyCodeToString(r),o=t.$searchBarKb.findKeyCommand(n,i);o&&o.exec&&(o.exec(t),s.stopEvent(e))}),this.$onChange=i.delayedCall(function(){t.find(!1,!1)}),s.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),s.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),s.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new u([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new u,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){if(e.editor.getReadOnly())return;e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]),this.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},this.$syncOptions=function(e){r.setCssClass(this.replaceOption,"checked",this.searchRange),r.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",r.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),r.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),r.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!t?"":"none",this.find(!1,!1,e)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var i=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange}),s=!i&&this.searchInput.value;r.setCssClass(this.searchBox,"ace_nomatch",s),this.editor._emit("findSearchBox",{match:!s}),this.highlight(),this.updateCounter()},this.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=0,r=0;if(t){var i=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),s=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(s-=e.session.doc.positionToIndex(this.searchRange.start));var o=t.lastIndex=0,u;while(u=t.exec(i)){n++,o=u.index,o<=s&&r++;if(n>f)break;if(!u[0]){t.lastIndex=o+=1;if(o>=i.length)break}}}this.searchCounter.textContent=r+" of "+(n>f?f+"+":n)},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;r.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(l.prototype),t.SearchBox=l,t.Search=function(e,t){var n=e.searchBox||new l(e);n.show(e.session.getTextRange(),t)}}); (function() { +ace.define("ace/ext/searchbox-css",["require","exports","module"],function(e,t,n){n.exports='\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: "";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}'}),ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox-css","ace/keyboard/hash_handler","ace/lib/keys","ace/config"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/lang"),s=e("../lib/event"),o=e("./searchbox-css"),u=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys"),f=e("../config").nls,l=999;r.importCssString(o,"ace_searchbox",!1);var c=function(){function e(e,t,n){var i=r.createElement("div");r.buildDom(["div",{"class":"ace_search right"},["span",{action:"hide","class":"ace_searchbtn_close"}],["div",{"class":"ace_search_form"},["input",{"class":"ace_search_field",placeholder:f("Search for"),spellcheck:"false"}],["span",{action:"findPrev","class":"ace_searchbtn prev"},"\u200b"],["span",{action:"findNext","class":"ace_searchbtn next"},"\u200b"],["span",{action:"findAll","class":"ace_searchbtn",title:"Alt-Enter"},f("All")]],["div",{"class":"ace_replace_form"},["input",{"class":"ace_search_field",placeholder:f("Replace with"),spellcheck:"false"}],["span",{action:"replaceAndFindNext","class":"ace_searchbtn"},f("Replace")],["span",{action:"replaceAll","class":"ace_searchbtn"},f("All")]],["div",{"class":"ace_search_options"},["span",{action:"toggleReplace","class":"ace_button",title:f("Toggle Replace mode"),style:"float:left;margin-top:-2px;padding:0 5px;"},"+"],["span",{"class":"ace_search_counter"}],["span",{action:"toggleRegexpMode","class":"ace_button",title:f("RegExp Search")},".*"],["span",{action:"toggleCaseSensitive","class":"ace_button",title:f("CaseSensitive Search")},"Aa"],["span",{action:"toggleWholeWords","class":"ace_button",title:f("Whole Word Search")},"\\b"],["span",{action:"searchInSelection","class":"ace_button",title:f("Search In Selection")},"S"]]],i),this.element=i.firstChild,this.setSession=this.setSession.bind(this),this.$init(),this.setEditor(e),r.importCssString(o,"ace_searchbox",e.container)}return e.prototype.setEditor=function(e){e.searchBox=this,e.renderer.scroller.appendChild(this.element),this.editor=e},e.prototype.setSession=function(e){this.searchRange=null,this.$syncOptions(!0)},e.prototype.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOption=e.querySelector("[action=searchInSelection]"),this.replaceOption=e.querySelector("[action=toggleReplace]"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field"),this.searchCounter=e.querySelector(".ace_search_counter")},e.prototype.$init=function(){var e=this.element;this.$initElements(e);var t=this;s.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),s.stopPropagation(e)}),s.addListener(e,"click",function(e){var n=e.target||e.srcElement,r=n.getAttribute("action");r&&t[r]?t[r]():t.$searchBarKb.commands[r]&&t.$searchBarKb.commands[r].exec(t),s.stopPropagation(e)}),s.addCommandKeyListener(e,function(e,n,r){var i=a.keyCodeToString(r),o=t.$searchBarKb.findKeyCommand(n,i);o&&o.exec&&(o.exec(t),s.stopEvent(e))}),this.$onChange=i.delayedCall(function(){t.find(!1,!1)}),s.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),s.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),s.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},e.prototype.setSearchRange=function(e){this.searchRange=e,e?this.searchRangeMarker=this.editor.session.addMarker(e,"ace_active-line"):this.searchRangeMarker&&(this.editor.session.removeMarker(this.searchRangeMarker),this.searchRangeMarker=null)},e.prototype.$syncOptions=function(e){r.setCssClass(this.replaceOption,"checked",this.searchRange),r.setCssClass(this.searchOption,"checked",this.searchOption.checked),this.replaceOption.textContent=this.replaceOption.checked?"-":"+",r.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),r.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),r.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);var t=this.editor.getReadOnly();this.replaceOption.style.display=t?"none":"",this.replaceBox.style.display=this.replaceOption.checked&&!t?"":"none",this.find(!1,!1,e)},e.prototype.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},e.prototype.find=function(e,t,n){var i=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n,range:this.searchRange}),s=!i&&this.searchInput.value;r.setCssClass(this.searchBox,"ace_nomatch",s),this.editor._emit("findSearchBox",{match:!s}),this.highlight(),this.updateCounter()},e.prototype.updateCounter=function(){var e=this.editor,t=e.$search.$options.re,n=0,r=0;if(t){var i=this.searchRange?e.session.getTextRange(this.searchRange):e.getValue(),s=e.session.doc.positionToIndex(e.selection.anchor);this.searchRange&&(s-=e.session.doc.positionToIndex(this.searchRange.start));var o=t.lastIndex=0,u;while(u=t.exec(i)){n++,o=u.index,o<=s&&r++;if(n>l)break;if(!u[0]){t.lastIndex=o+=1;if(o>=i.length)break}}}this.searchCounter.textContent=f("$0 of $1",[r,n>l?l+"+":n])},e.prototype.findNext=function(){this.find(!0,!1)},e.prototype.findPrev=function(){this.find(!0,!0)},e.prototype.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;r.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},e.prototype.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},e.prototype.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},e.prototype.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},e.prototype.hide=function(){this.active=!1,this.setSearchRange(null),this.editor.off("changeSession",this.setSession),this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},e.prototype.show=function(e,t){this.active=!0,this.editor.on("changeSession",this.setSession),this.element.style.display="",this.replaceOption.checked=t,e&&(this.searchInput.value=e),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb),this.$syncOptions(!0)},e.prototype.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput},e}(),h=new u;h.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.replaceOption.checked=!1,e.$syncOptions(),e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){if(e.editor.getReadOnly())return;e.replaceOption.checked=!0,e.$syncOptions(),e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),h.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}},{name:"toggleReplace",exec:function(e){e.replaceOption.checked=!e.replaceOption.checked,e.$syncOptions()}},{name:"searchInSelection",exec:function(e){e.searchOption.checked=!e.searchRange,e.setSearchRange(e.searchOption.checked&&e.editor.getSelectionRange()),e.$syncOptions()}}]);var p=new u([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]);c.prototype.$searchBarKb=h,c.prototype.$closeSearchBarKb=p,t.SearchBox=c,t.Search=function(e,t){var n=e.searchBox||new c(e);n.show(e.session.getTextRange(),t)}}); (function() { ace.require(["ace/ext/searchbox"], function(m) { if (typeof module == "object" && typeof exports == "object" && module) { module.exports = m; diff --git a/tools/aceditor/templates/aceditor.twig b/tools/aceditor/templates/aceditor.twig index 238714c09..7b962c3fb 100644 --- a/tools/aceditor/templates/aceditor.twig +++ b/tools/aceditor/templates/aceditor.twig @@ -28,5 +28,9 @@ var pageTags = {{ pageTags|json_encode|raw }} +{{ include_javascript('javascripts/vendor/vue/vue.js') }} +{{ include_javascript('javascripts/vendor/vue-select/vue-select.min.js') }} +{{ include_css('styles/vendor/vue-select/vue-select.css') }} + {{ include_javascript('tools/aceditor/presentation/javascripts/aceditor.js', false, true) }} {{ include_css('tools/aceditor/presentation/styles/aceditor.css') }} \ No newline at end of file diff --git a/tools/attach/actions/backgroundimage.php b/tools/attach/actions/backgroundimage.php index 4d3dc337c..fb7d6b362 100755 --- a/tools/attach/actions/backgroundimage.php +++ b/tools/attach/actions/backgroundimage.php @@ -48,7 +48,7 @@ $id = $this->GetParameter('id'); // container data attributes -$data = getDataParameter(); +$data = $this->services->get(\YesWiki\Templates\Service\Utils::class)->getDataParameter(); echo 'checkParamsGetCacheUrlImage($filename, $width, $height, $mode); - $newToken = $this->checkTokenForGetCacheUrlImage($width, $height, $mode); + $this->checkParamsgetCacheUrlImageViaPost($filename, $width, $height, $mode); + $newToken = $this->checkTokenForgetCacheUrlImageViaPost($width, $height, $mode); // check file if (!file_exists("files/$filename")) { return new ApiResponse([ @@ -71,59 +72,53 @@ public function getCacheUrlImage($filename, $width, $height, $mode) } } - private function checkParamsGetCacheUrlImage(string $filename, string &$width, string &$height, string $mode) + private function checkParamsgetCacheUrlImageViaPost(string $filename, string &$width, string &$height, string $mode) { if (strval($width) != strval(intval($width))) { - throw new Exception("width should be an integer for ".self::GET_CACHE_URLIMAGE_TOKEN_ID); + throw new Exception("width should be an integer for ".self::POST_CACHE_URLIMAGE_TOKEN_ID); } $width = intval($width); if (empty($width)) { - throw new Exception("width should not be 0 or null for ".self::GET_CACHE_URLIMAGE_TOKEN_ID); + throw new Exception("width should not be 0 or null for ".self::POST_CACHE_URLIMAGE_TOKEN_ID); } if (strval($height) != strval(intval($height))) { - throw new Exception("height should be an integer for ".self::GET_CACHE_URLIMAGE_TOKEN_ID); + throw new Exception("height should be an integer for ".self::POST_CACHE_URLIMAGE_TOKEN_ID); } $height = intval($height); if (empty($height)) { - throw new Exception("height should not be 0 or null for ".self::GET_CACHE_URLIMAGE_TOKEN_ID); + throw new Exception("height should not be 0 or null for ".self::POST_CACHE_URLIMAGE_TOKEN_ID); } if (!in_array($mode, ['fit','crop'], true)) { - throw new Exception("mode should be in ['fit','mode'] for ".self::GET_CACHE_URLIMAGE_TOKEN_ID); + throw new Exception("mode should be in ['fit','mode'] for ".self::POST_CACHE_URLIMAGE_TOKEN_ID); } if (empty(trim($filename))) { - throw new Exception("filename should not be empty for ".self::GET_CACHE_URLIMAGE_TOKEN_ID); + throw new Exception("filename should not be empty for ".self::POST_CACHE_URLIMAGE_TOKEN_ID); } } /** - * use $_GET['csrftoken'] + * use $_POST['csrftoken'] * @param int $width * @param int $height * @param string $mode * @return string $newToken */ - private function checkTokenForGetCacheUrlImage(int $width, int $height, string $mode): string + private function checkTokenForgetCacheUrlImageViaPost(int $width, int $height, string $mode): string { $csrfTokenManager = $this->getService(CsrfTokenManager::class); - $inputToken = filter_input(INPUT_GET, 'csrftoken', FILTER_UNSAFE_RAW); - $inputToken = in_array($inputToken,[false,null],true) ? $inputToken : htmlspecialchars(strip_tags($inputToken)); + $csrfTokenController = $this->getService(CsrfTokenController::class); + $tokenId = str_replace( ["{width}","{height}","{mode}"], [$width,$height,$mode], - self::GET_CACHE_URLIMAGE_TOKEN_ID + self::POST_CACHE_URLIMAGE_TOKEN_ID ); - - if (is_null($inputToken) || $inputToken === false) { - throw new TokenNotFoundException(_t('NO_CSRF_TOKEN_ERROR')); - } - $token = new CsrfToken($tokenId, $inputToken); - $isValid = $csrfTokenManager->isTokenValid($token); - if (!$isValid) { - throw new TokenNotFoundException(_t('CSRF_TOKEN_FAIL_ERROR')); + + if ($csrfTokenController->checkToken($tokenId, 'POST', 'csrftoken',false)){ + $csrfTokenManager->removeToken($tokenId); + $newToken = $csrfTokenManager->getToken($tokenId)->getValue(); + return $newToken; } - $csrfTokenManager->removeToken($tokenId); - $newToken = $csrfTokenManager->getToken($tokenId)->getValue(); - return $newToken; } private function getCacheFileName(string $filename, int $width, int $height, string $mode): string diff --git a/tools/attach/libs/attach.lib.php b/tools/attach/libs/attach.lib.php index c33f5f53f..732643614 100644 --- a/tools/attach/libs/attach.lib.php +++ b/tools/attach/libs/attach.lib.php @@ -186,7 +186,7 @@ public function GetCachePath() */ public function GetFullFilename($newName = false) { - // use current date if page has no date that could arrive when using page 'root' via Actions Builder + // use current date if page has no date that could arrive when using page 'root' via Actions Builder $pagedate = $this->convertDate( isset($this->wiki->page['time']) ? $this->wiki->page['time'] @@ -194,7 +194,9 @@ public function GetFullFilename($newName = false) $this->wiki->tag == "root" ? date('Y-m-d H:i:s') : null // error - )); + ) + ); + //decompose le nom du fichier en nom+extension ou en page/nom+extension if (preg_match('`^((.+)/)?(.*)\.(.*)$`', str_replace(' ', '_', $this->file), $match)) { list(, , $file['page'], $file['name'], $file['ext']) = $match; @@ -227,18 +229,15 @@ public function GetFullFilename($newName = false) } else { $searchPattern = '`^' . $file['name'] . '_\d{14}_\d{14}\.' . $file['ext'] . '$`'; } - + $files = $this->searchFiles($searchPattern, $path); - + $unedate = 0; foreach ($files as $file) { - //recherche du fichier qui une datepage <= a la date de la page - if ($file['datepage'] <= $pagedate) { - //puis qui a une dateupload la plus grande - if ($file['dateupload'] > $unedate) { - $theFile = $file; - $unedate = $file['dateupload']; - } + // on garde la dateupload la plus grande + if ($file['dateupload'] > $unedate) { + $theFile = $file; + $unedate = $file['dateupload']; } } if ($isActionBuilderPreview && count($files) > 0) { @@ -428,7 +427,7 @@ public function CheckParams() $this->height = $this->wiki->GetParameter('height'); $this->width = $this->wiki->GetParameter('width'); $this->displayPDF = $this->wiki->GetParameter('displaypdf'); - $this->data = getDataParameter(); + $this->data = $this->wiki->services->get(\YesWiki\Templates\Service\Utils::class)->getDataParameter(); //test de validité des parametres if (empty($this->file)) { diff --git a/tools/bazar/actions/BazarAction.php b/tools/bazar/actions/BazarAction.php index 066183628..6fc17f710 100644 --- a/tools/bazar/actions/BazarAction.php +++ b/tools/bazar/actions/BazarAction.php @@ -46,7 +46,9 @@ class BazarAction extends YesWikiAction public function formatArguments($arg) { - $redirecturl = $_GET['redirecturl'] ?? $arg['redirecturl'] ?? ''; + $redirecturl = $this->sanitizedGet('redirecturl',function() use($arg){ + return $arg['redirecturl'] ?? ''; + }); // YesWiki pages links, like "HomePage" or "HomePage/xml" if (!empty($redirecturl)){ $wikiLink = $this->wiki->extractLinkParts((substr($redirecturl,0,1) == '?') ? substr($redirecturl,1): $redirecturl); @@ -59,10 +61,16 @@ public function formatArguments($arg) } return([ - self::VARIABLE_ACTION => $_GET[self::VARIABLE_ACTION] ?? $arg[self::VARIABLE_ACTION] ?? null, - self::VARIABLE_VOIR => $_GET[self::VARIABLE_VOIR] ?? $arg[self::VARIABLE_VOIR] ?? self::VOIR_DEFAUT, + self::VARIABLE_ACTION => $this->sanitizedGet(self::VARIABLE_ACTION,function() use($arg){ + return $arg[self::VARIABLE_ACTION] ?? null; + }), + self::VARIABLE_VOIR => $this->sanitizedGet(self::VARIABLE_VOIR,function() use($arg){ + return $arg[self::VARIABLE_VOIR] ?? self::VOIR_DEFAUT; + }), // afficher le menu de vues bazar ? - 'voirmenu' => $arg['voirmenu'] ?? $this->params->get('baz_menu'), + 'voirmenu' => $this->sanitizedGet('voirmenu',function() use($arg){ + return $arg['voirmenu'] ?? $this->params->get('baz_menu'); + }), // Identifiant du formulaire (plusieures valeurs possibles, séparées par des virgules) 'idtypeannonce' => $this->formatArray($_REQUEST['id_typeannonce'] ?? $arg['id'] ?? $arg['idtypeannonce'] ?? (!empty($_GET['id']) ? strip_tags($_GET['id']) : null)), // Permet de rediriger vers une url après saisie de fiche @@ -70,6 +78,19 @@ public function formatArguments($arg) ]); } + /** + * check if get is scalar then return it or result of callback + * @param string $key + * @param function $callback + * @return scalar + */ + protected function sanitizedGet(string $key,$callback) + { + return (isset($_GET[$key]) && is_scalar($_GET[$key])) + ? $_GET[$key] + : (is_callable($callback) ? $callback() : null); + } + public function run() { $listController = $this->getService(ListController::class); @@ -101,7 +122,7 @@ public function run() case self::ACTION_ENTRY_EDIT: return $entryController->update($_REQUEST['id_fiche']); case self::ACTION_ENTRY_DELETE: - return $entryController->delete($_REQUEST['id_fiche']); + return $entryController->delete($_REQUEST['id_fiche'],true); case self::ACTION_PUBLIER: return $entryController->publish($_REQUEST['id_fiche'], true); case self::ACTION_PAS_PUBLIER: diff --git a/tools/bazar/actions/BazarCartoAction.php b/tools/bazar/actions/BazarCartoAction.php index ad1055976..5075ce253 100755 --- a/tools/bazar/actions/BazarCartoAction.php +++ b/tools/bazar/actions/BazarCartoAction.php @@ -52,11 +52,18 @@ public function formatArguments($arg) // Filters entries via query to remove whose withou bf_latitude nor bf_longitude $query = $this->getService(EntryController::class)->formatQuery($arg, $_GET); - if (!isset($query['bf_latitude!'])) { - $query['bf_latitude!'] = ""; - } - if (!isset($query['bf_longitude!'])) { - $query['bf_longitude!'] = ""; + if ($template != 'map-and-table' || + ( + !empty($arg['tablewith']) && + $arg['tablewith'] === 'only-geolocation' + ) + ) { + if (!isset($query['bf_latitude!'])) { + $query['bf_latitude!'] = ""; + } + if (!isset($query['bf_longitude!'])) { + $query['bf_longitude!'] = ""; + } } return([ @@ -73,7 +80,7 @@ public function formatArguments($arg) * Exemple: provider="OpenStreetMap.France" providers="OpenStreetMap.Mapnik,OpenStreetMap.France" * TODO: ajouter gestion "providers_credentials" */ - 'providers' => isset($arg['providers']) ? explode(',', $arg['providers']) : [], + 'providers' => $this->formatArray($arg['providers'] ?? []), /* * Une liste de layers (couches). * Exemple avec 1 layer tiles, 1 layer geojson: @@ -88,7 +95,7 @@ public function formatArguments($arg) * Le plus simple est de recopier les data GeoJson dans une page du Wiki puis de l'appeler avec le handler "/raw". * TODO: ajouter gestion "layers_credentials" */ - 'layers' => isset($arg['layers']) ? explode(',', $arg['layers']) : [], + 'layers' => $this->formatArray($arg['layers'] ?? []), // Mettre des puces petites ? non par defaut 'markersize' => $markerSize, 'smallmarker' => $smallMarker === '1' ? '' : ' xl', diff --git a/tools/bazar/actions/BazarListeAction.php b/tools/bazar/actions/BazarListeAction.php index 3c4fb56ff..ae31a5f53 100755 --- a/tools/bazar/actions/BazarListeAction.php +++ b/tools/bazar/actions/BazarListeAction.php @@ -10,7 +10,8 @@ class BazarListeAction extends YesWikiAction { - protected const BAZARCARTO_TEMPLATES = ["map", "gogomap", "gogocarto"] ; // liste des templates sans .twig ni .tpl.html + protected const BAZARCARTO_TEMPLATES = ["map", "gogomap", "gogocarto","map-and-table"] ; // liste des templates sans .twig ni .tpl.html + protected const BAZARTABLE_TEMPLATES = ["table","map-and-table"] ; // liste des templates sans .twig ni .tpl.html protected const CALENDRIER_TEMPLATES = ["calendar"] ; // liste des templates sans .twig ni .tpl.html protected $debug; @@ -29,7 +30,7 @@ public function formatArguments($arg) if (!empty($icon)) { try { $tabparam = $entryManager->getMultipleParameters($icon, ',', '='); - if (count($tabparam) > 1 && !empty($iconField)) { + if (count($tabparam) > 0 && !empty($iconField)) { // on inverse cle et valeur, pour pouvoir les reprendre facilement dans la carto foreach ($tabparam as $key=>$data) { $tabparam[$data] = $key; @@ -39,7 +40,7 @@ public function formatArguments($arg) $icon = trim(array_values($tabparam)[0]); } } catch (ParsingMultipleException $th) { - throw new Exception('action bazarliste : le paramètre icon est mal rempli.
        Il doit être de la forme icon="nomIcone1=valeur1, nomIcone2=valeur2"'); + throw new Exception('action bazarliste : le paramètre icon est mal rempli.
        Il doit être de la forme icon="nomIcone1=valeur1, nomIcone2=valeur2"
        ('.$th->getMessage().')'); } } else { $icon = $this->params->get('baz_marker_icon'); @@ -56,7 +57,7 @@ public function formatArguments($arg) if (!empty($color)) { try { $tabparam = $entryManager->getMultipleParameters($color, ',', '='); - if (count($tabparam) > 1 && !empty($colorField)) { + if (count($tabparam) > 0 && !empty($colorField)) { // on inverse cle et valeur, pour pouvoir les reprendre facilement dans la carto foreach ($tabparam as $key=>$data) { $tabparam[$data] = $key; @@ -66,7 +67,7 @@ public function formatArguments($arg) $color = trim(array_values($tabparam)[0]); } } catch (ParsingMultipleException $th) { - throw new Exception('action bazarliste : le paramètre color est mal rempli.
        Il doit être de la forme color="couleur1=valeur1, couleur2=valeur2"'); + throw new Exception('action bazarliste : le paramètre color est mal rempli.
        Il doit être de la forme color="couleur1=valeur1, couleur2=valeur2"
        ('.$th->getMessage().')'); } } else { $color = $this->params->get('baz_marker_color'); @@ -90,12 +91,15 @@ public function formatArguments($arg) } } - if (in_array($template, ['list', 'card'])) { + if (in_array($template, ['list', 'card','map-and-table','table'])) { $dynamic = true; } if ($dynamic && $template == 'liste_accordeon') { $template = 'list'; } + if ($dynamic && in_array($template,['tableau.tpl.html','tableau'])) { + $template = 'table'; + } $searchfields = $this->formatArray($arg['searchfields'] ?? null); $searchfields = empty($searchfields) ? ['bf_titre'] : $searchfields; // End dynamic @@ -225,11 +229,14 @@ public function run() // If the template is a map or a calendar, call the dedicated action so that // arguments can be properly formatted. The second first condition prevents infinite loops if (self::specialActionFromTemplate($this->arguments['template'], "BAZARCARTO_TEMPLATES") - && (!isset($this->arguments['calledBy']) || $this->arguments['calledBy'] !== 'BazarCartoAction')) { + && (!isset($this->arguments['calledBy']) || !in_array($this->arguments['calledBy'],['BazarCartoAction','BazarTableAction']))) { return $this->callAction('bazarcarto', $this->arguments); } elseif (self::specialActionFromTemplate($this->arguments['template'], "CALENDRIER_TEMPLATES") && (!isset($this->arguments['calledBy']) || $this->arguments['calledBy'] !== 'CalendrierAction')) { return $this->callAction('calendrier', $this->arguments); + } elseif (self::specialActionFromTemplate($this->arguments['template'], "BAZARTABLE_TEMPLATES") + && (!isset($this->arguments['calledBy']) || $this->arguments['calledBy'] !== 'BazarTableAction')) { + return $this->callAction('bazartable', $this->arguments); } $bazarListService = $this->getService(BazarListService::class); @@ -239,9 +246,11 @@ public function run() if (isset($this->arguments['zoom'])) { $this->arguments['zoom'] = intval($this->arguments['zoom']) ; } + $currentUser = $this->getService(AuthController::class)->getLoggedUser(); return $this->render("@bazar/entries/index-dynamic-templates/{$this->arguments['template']}.twig", [ 'params' => $this->arguments, 'forms' => count($this->arguments['idtypeannonce']) === 0 ? $forms : '', + 'currentUserName' => empty($currentUser['name']) ? '' : $currentUser['name'] ]); } else { $entries = $bazarListService->getEntries($this->arguments, $forms); @@ -352,6 +361,9 @@ public static function specialActionFromTemplate(string $templateName, string $c case "CALENDRIER_TEMPLATES": $baseArray = self::CALENDRIER_TEMPLATES ; break; + case "BAZARTABLE_TEMPLATES": + $baseArray = self::BAZARTABLE_TEMPLATES ; + break; default: return false; } diff --git a/tools/bazar/actions/BazarTableAction.php b/tools/bazar/actions/BazarTableAction.php new file mode 100644 index 000000000..8d0f9df5e --- /dev/null +++ b/tools/bazar/actions/BazarTableAction.php @@ -0,0 +1,40 @@ +appendAllFieldsIds($arg,$newArg,'columnfieldsids'); + } elseif ($this->formatBoolean($arg,false,'exportallcolumns')){ + $this->appendAllFieldsIds($arg,$newArg,'exportallcolumnsids'); + } + + return($newArg); + } + + public function run() + { + return $this->callAction('bazarliste', $this->arguments); + } + + protected function appendAllFieldsIds(array $arg, array &$newArg,string $key){ + $formId = empty($arg['id']) ? '1' : array_values(array_filter(explode(',',$arg['id']),function($id){ + return strval($id) == strval(intval($id)); + }))[0]; + $form = $this->getService(FormManager::class)->getOne($formId); + if (!empty($form['prepared'])){ + $newArg[$key] = implode(',',array_map(function($field){ + return $field->getPropertyName(); + },array_filter($form['prepared'],function($field){ + return !empty($field->getPropertyName()); + }))); + } + } +} diff --git a/tools/bazar/controllers/EntryController.php b/tools/bazar/controllers/EntryController.php index bdb0d3ddd..a206ffb31 100644 --- a/tools/bazar/controllers/EntryController.php +++ b/tools/bazar/controllers/EntryController.php @@ -4,6 +4,8 @@ use DateInterval; use DateTime; +use Exception; +use Throwable; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use YesWiki\Bazar\Exception\UserFieldException; use YesWiki\Bazar\Field\BazarField; @@ -349,23 +351,30 @@ public function update($entryId) ]); } - public function delete($entryId) - { - $this->triggerDeletedEventIfNeeded(function()use($entryId){ - $this->entryManager->delete($entryId); - },$entryId); - // WARNING : 'delete_ok' is not used - header('Location: ' . $this->wiki->Href('', 'BazaR', ['vue' => 'consulter', 'message' => 'delete_ok'])); - } - - public function triggerDeletedEventIfNeeded($callback,$entryId) + public function delete($entryId, bool $redirectAfter = false): bool { if ($this->entryManager->isEntry($entryId)){ - $entry = $this->entryManager->getOne($entryId); - $callback(); - $this->triggerDeletedEvent($entryId,$entry); + try { + $entry = $this->entryManager->getOne($entryId); + $this->entryManager->delete($entryId); + if(!$this->entryManager->isEntry($entryId)){ + $this->triggerDeletedEvent($entryId,$entry); + if ($redirectAfter){ + flash(_t('BAZ_FICHE_SUPPRIMEE')." ($entryId)" , 'success'); + $this->wiki->Redirect($this->wiki->Href('', 'BazaR', ['vue' => 'consulter'],false)); + } + return true; + } + } catch (Throwable $th) { + if ($redirectAfter){ + flash(_t('DELETEPAGE_NOT_DELETED')." ($entryId) : {$th->getMessage()}" , 'error'); + $this->wiki->Redirect($this->wiki->Href('', 'BazaR', ['vue' => 'consulter'],false)); + } + throw new Exception($th->getMessage(),$th->getCode(),$th); + } + return false; } else { - $callback(); + throw new Exception('Not deleted because not entry'.(is_scalar($entryId) ? ' ('.strval($entryId).')' : '')); } } diff --git a/tools/bazar/controllers/FormController.php b/tools/bazar/controllers/FormController.php index 8c742ab6b..7e4ae2e07 100644 --- a/tools/bazar/controllers/FormController.php +++ b/tools/bazar/controllers/FormController.php @@ -9,6 +9,7 @@ use YesWiki\Core\Controller\CsrfTokenController; use YesWiki\Core\YesWikiController; use YesWiki\Security\Controller\SecurityController; +use \Tamtamchik\SimpleFlash\Flash; class FormController extends YesWikiController { @@ -72,13 +73,18 @@ public function displayAll($message) public function create() { if ($this->wiki->UserIsAdmin()) { - if (isset($_POST['valider'])) { - $this->formManager->create($_POST); + $form = null; - return $this->wiki->redirect($this->wiki->href('', '', ['vue' => 'formulaire', 'msg' => 'BAZ_NOUVEAU_FORMULAIRE_ENREGISTRE'], false)); + if (isset($_POST['valider'])) { + $form = $this->formManager->getFromRawData($_POST); + if ($this->formIsValid($form)) { + $this->formManager->create($_POST); + return $this->wiki->redirect($this->wiki->href('', '', ['vue' => 'formulaire', 'msg' => 'BAZ_NOUVEAU_FORMULAIRE_ENREGISTRE'], false)); + } } return $this->render("@bazar/forms/forms_form.twig", [ + 'form' => $form, 'formAndListIds' => baz_forms_and_lists_ids(), 'groupsList' => $this->getGroupsListIfEnabled(), 'onlyOneEntryOptionAvailable' => $this->formManager->isAvailableOnlyOneEntryOption() @@ -91,14 +97,18 @@ public function create() public function update($id) { if ($this->getService(Guard::class)->isAllowed('saisie_formulaire')) { - if (isset($_POST['valider'])) { - $this->formManager->update($_POST); + $form = $this->formManager->getOne($id); - return $this->wiki->redirect($this->wiki->href('', '', ['vue' => 'formulaire', 'msg' => 'BAZ_FORMULAIRE_MODIFIE'], false)); + if (isset($_POST['valider'])) { + $form = $this->formManager->getFromRawData($_POST); + if ($this->formIsValid($form)) { + $this->formManager->update($_POST); + return $this->wiki->redirect($this->wiki->href('', '', ['vue' => 'formulaire', 'msg' => 'BAZ_FORMULAIRE_MODIFIE'], false)); + } } return $this->render("@bazar/forms/forms_form.twig", [ - 'form' => $this->formManager->getOne($id), + 'form' => $form, 'formAndListIds' => baz_forms_and_lists_ids(), 'groupsList' => $this->getGroupsListIfEnabled(), 'onlyOneEntryOptionAvailable' => $this->formManager->isAvailableOnlyOneEntryOption() && $this->formManager->isAvailableOnlyOneEntryMessage() @@ -108,11 +118,23 @@ public function update($id) } } + private function formIsValid($form) + { + $titleFields = array_filter($form['prepared'], function($field) { + return $field->getPropertyName() == 'bf_titre'; + }); + if (count($titleFields) == 0) { + Flash::error(_t('BAZ_FORM_NEED_TITLE')); + return false; + } + return true; + } + public function delete($id) { if ($this->wiki->UserIsAdmin()) { try { - $this->csrfTokenController->checkToken("action\\bazar\\forms\\delete\\$id", 'POST', 'confirmDeleteToken'); + $this->csrfTokenController->checkToken('main', 'POST', 'confirmDeleteToken',false); $this->formManager->clear($id); $this->formManager->delete($id); @@ -129,7 +151,7 @@ public function empty($id) { if ($this->wiki->UserIsAdmin()) { try { - $this->csrfTokenController->checkToken("action\\bazar\\forms\\empty\\$id", 'POST', 'confirmEmptyToken'); + $this->csrfTokenController->checkToken('main', 'POST', 'confirmEmptyToken',false); $this->formManager->clear($id); return $this->wiki->redirect($this->wiki->href('', '', ['vue' => 'formulaire', 'msg' => 'BAZ_FORMULAIRE_VIDE'], false)); diff --git a/tools/bazar/controllers/IcalFormatter.php b/tools/bazar/controllers/IcalFormatter.php index 6a5679da6..acf528dc0 100644 --- a/tools/bazar/controllers/IcalFormatter.php +++ b/tools/bazar/controllers/IcalFormatter.php @@ -10,6 +10,7 @@ use Symfony\Component\HttpFoundation\Response; use YesWiki\Bazar\Field\DateField; use YesWiki\Bazar\Controller\EntryController; +use YesWiki\Bazar\Controller\GeoJSONFormatter; use YesWiki\Core\Service\Performer; use YesWiki\Core\YesWikiController; use \DateInterval; @@ -144,10 +145,23 @@ public function formatToICAL(array $entries, $formId = null): string private function getICALData(array $entry):array { if (!empty($entry['bf_date_debut_evenement']) && !empty($entry['bf_date_fin_evenement'])) { + $startDate = new DateTime($entry['bf_date_debut_evenement']); + if (is_null($startDate)){ + return []; + } $endData = $entry['bf_date_fin_evenement']; + $endDataObject = new DateTime($endData); + if (is_null($endDataObject)){ + return []; + } // 24 h for end date if all day - if (isset($entry['bf_date_fin_evenement_allday']) && $entry['bf_date_fin_evenement_allday'] == "1") { - $endData = (new DateTime($entry['bf_date_fin_evenement']))->add(new DateInterval('P1D'))->format('Y-m-d H:i:s'); + if ($this->isAllDay(strval($endData))) { + $endData = $endDataObject->add(new DateInterval('P1D'))->format('Y-m-d H:i:s'); + $endDataObject = new DateTime($endData); + } + if ($startDate->diff($endDataObject)->invert > 0){ + // end date before start date not possible in ical : use start time + 1 hour + $endData = $startDate->add(new DateInterval('PT1H'))->format('Y-m-d H:i:s'); } return [ 'startDate' => $entry['bf_date_debut_evenement'], @@ -157,6 +171,16 @@ private function getICALData(array $entry):array return []; } + /** + * check if is all day date + * @param string $date + * @return bool + */ + protected function isAllDay(string $date): bool + { + return preg_match('/^[1-2][0-9]{3}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])$/',$date); + } + /** * add header and footer * @param string $fileData @@ -206,13 +230,14 @@ private function formatEvent(array $entry, array $icalData, array &$cache): stri $this->renderAndStripTags($entry['bf_description'])."\r\n" :''; $decription .= "Source: ".$entry['url']; - $output .=$this->splitAtnthChar(self::MAX_CHARS_BY_LINE, "DESCRIPTION:".str_replace(["\r","\n"], ['\\r','\\n'], $decription)."\r\n"); + $output .=$this->splitAtnthChar(self::MAX_CHARS_BY_LINE, "DESCRIPTION:".str_replace(["\r","\n"], [' ','\\n'], $decription)."\r\n"); $location = ''; $location .= (!empty($entry['bf_adresse'])) ? $entry['bf_adresse'] .' ' : ''; $location .= (!empty($entry['bf_code_postal'])) ? $entry['bf_code_postal'] .' ' : ''; $location .= (!empty($entry['bf_ville'])) ? $entry['bf_ville'] .' ' : ''; + $location = trim($location); if (!empty($location)) { - $output .=$this->splitAtnthChar(self::MAX_CHARS_BY_LINE, "LOCATION:".$location."\r\n"); + $output .=$this->splitAtnthChar(self::MAX_CHARS_BY_LINE, "LOCATION:".str_replace(["\r","\n"],' ',$location)."\r\n"); } $geo = $this->geoJSONFormatter->getGeoData($entry, $cache); if (!empty($geo)) { diff --git a/tools/bazar/controllers/ListController.php b/tools/bazar/controllers/ListController.php index 2f13dd069..b714e377b 100644 --- a/tools/bazar/controllers/ListController.php +++ b/tools/bazar/controllers/ListController.php @@ -56,8 +56,14 @@ public function create() ++$i; } } - - $this->listManager->create($_POST['titre_liste'], $values); + + $listeId = $this->listManager->create($_POST['titre_liste'], $values); + + if ($this->shouldPostMessageOnSubmit()) { + return $this->render('@core/iframe_result.twig', [ + "data" => ["msg" => "list_created", "id" => $listeId, "title" => $_POST['titre_liste']] + ]); + } $this->wiki->Redirect( $this->wiki->Href('', '', [BAZ_VARIABLE_VOIR => BAZ_VOIR_LISTES], false) @@ -67,6 +73,11 @@ public function create() return $this->render('@bazar/lists/list_form.twig'); } + private function shouldPostMessageOnSubmit() + { + return isset($_GET["onsubmit"]) && $_GET["onsubmit"] === "postmessage"; + } + public function update($id) { $list = $this->listManager->getOne($id); @@ -85,6 +96,12 @@ public function update($id) $this->listManager->update($id, $_POST['titre_liste'], $values); + if ($this->shouldPostMessageOnSubmit()) { + return $this->render('@core/iframe_result.twig', [ + "data" => ["msg" => "list_updated", "id" => $id, "title" => $_POST['titre_liste']] + ]); + } + $this->wiki->Redirect( $this->wiki->Href('', '', [BAZ_VARIABLE_VOIR => BAZ_VOIR_LISTES], false) ); diff --git a/tools/bazar/fields/DateField.php b/tools/bazar/fields/DateField.php index cc6e28895..7ed68b974 100644 --- a/tools/bazar/fields/DateField.php +++ b/tools/bazar/fields/DateField.php @@ -9,8 +9,6 @@ class DateField extends BazarField { protected function renderInput($entry) { - $GLOBALS['wiki']->addJavascriptFile('tools/bazar/libs/vendor/bootstrap-datepicker.js'); - $day = ""; $hour = 0; $minute = 0; diff --git a/tools/bazar/fields/LinkedEntryField.php b/tools/bazar/fields/LinkedEntryField.php index 134885e6e..35557f51a 100644 --- a/tools/bazar/fields/LinkedEntryField.php +++ b/tools/bazar/fields/LinkedEntryField.php @@ -7,6 +7,7 @@ use YesWiki\Bazar\Field\EnumField; use YesWiki\Bazar\Service\FormManager; use YesWiki\Core\Service\Performer; +use YesWiki\Templates\Service\TabsService; /** * @Field({"listefichesliees", "listefiches"}) @@ -24,11 +25,13 @@ class LinkedEntryField extends BazarField protected const FIELD_LIMIT = 4; protected const FIELD_TEMPLATE = 5; protected const FIELD_LINK_TYPE = 6; + protected const FIELD_LABEL = 7; public function __construct(array $values, ContainerInterface $services) { parent::__construct($values, $services); + $this->label = $values[self::FIELD_LABEL] ?? ''; $this->query = $values[self::FIELD_QUERY] ?? ''; $this->otherParams = $values[self::FIELD_OTHER_PARAMS] ?? ''; $this->limit = $values[self::FIELD_LIMIT] ?? ''; @@ -42,7 +45,10 @@ protected function renderInput($entry) { // Display the linked entries only on update if (isset($entry['id_fiche'])) { - return $this->getService(Performer::class)->run('wakka', 'formatter', ['text' => $this->getBazarListAction($entry)]); + $output = $this->renderSecuredBazarList($entry); + return $this->isEmptyOutput($output) + ? $output + : $this->render('@bazar/inputs/linked-entry.twig',compact(['output'])); } } @@ -50,12 +56,29 @@ protected function renderStatic($entry) { // Display the linked entries only if id_fiche and id_typeannonce if (!empty($entry['id_fiche']) && !empty($entry['id_typeannonce'])) { - return $this->getService(Performer::class)->run('wakka', 'formatter', ['text' => $this->getBazarListAction($entry)]); + $output = $this->renderSecuredBazarList($entry); + return $this->isEmptyOutput($output) + ? $output + : $this->render('@bazar/fields/linked-entry.twig',compact(['output'])); } else { return "" ; } } + protected function renderSecuredBazarList($entry): string + { + $tabsService = $this->getService(TabsService::class); + $index = $tabsService->saveState(); + $output = $this->getService(Performer::class)->run('wakka', 'formatter', ['text' => $this->getBazarListAction($entry)]); + $tabsService->resetState($index); + return $output; + } + + protected function isEmptyOutput(string $output): bool + { + return empty($output) || preg_match('/
        ]*>\s*
        <\/div><\/div>/',$output); + } + private function getBazarListAction($entry) { $query = $this->getQueryForLinkedLabels($entry) ; diff --git a/tools/bazar/fields/MapField.php b/tools/bazar/fields/MapField.php index 535e7a0f8..90766c582 100644 --- a/tools/bazar/fields/MapField.php +++ b/tools/bazar/fields/MapField.php @@ -5,6 +5,7 @@ use Psr\Container\ContainerInterface; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use YesWiki\Bazar\Field\BazarField; +use YesWiki\Core\Service\AssetsManager; /** * @Field({"map", "carte_google"}) @@ -16,12 +17,14 @@ class MapField extends BazarField protected $longitudeField; protected $autocomplete; protected $geolocate; + protected $showMapInEntryView; protected const FIELD_LATITUDE_FIELD = 1; protected const FIELD_LONGITUDE_FIELD = 2; protected const FIELD_AUTOCOMPLETE_POSTALCODE = 4; protected const FIELD_AUTOCOMPLETE_TOWN = 5; protected const FIELD_AUTOCOMPLETE_OTHERS = 6; + protected const FIELD_SHOW_MAP_IN_ENTRY_VIEW = 7; public const DEFAULT_FIELDNAME_POSTALCODE = 'bf_code_postal'; public const DEFAULT_FIELDNAME_STREET = 'bf_adresse'; @@ -37,6 +40,7 @@ public function __construct(array $values, ContainerInterface $services) $this->latitudeField = $values[self::FIELD_LATITUDE_FIELD] ?? 'bf_latitude'; $this->longitudeField = $values[self::FIELD_LONGITUDE_FIELD] ?? 'bf_longitude'; + $this->showMapInEntryView = $values[self::FIELD_SHOW_MAP_IN_ENTRY_VIEW] ?? '0'; $this->autocomplete = (!empty($values[self::FIELD_AUTOCOMPLETE_POSTALCODE]) && !empty($values[self::FIELD_AUTOCOMPLETE_TOWN])) ? trim($values[self::FIELD_AUTOCOMPLETE_POSTALCODE]).','.trim($values[self::FIELD_AUTOCOMPLETE_TOWN]) : null; $this->propertyName = 'geolocation'; @@ -67,7 +71,7 @@ public function __construct(array $values, ContainerInterface $services) ) ); $data = array_map('trim', explode('|', $autocompleteFieldnames)); - + $this->geolocate = (empty($data[0]) || $data[0] != 1) ? 0 : 1; $street = empty($data[1]) ? self::DEFAULT_FIELDNAME_STREET : $data[1]; $street1 = empty($data[2]) ? self::DEFAULT_FIELDNAME_STREET1 : $data[2]; @@ -104,8 +108,7 @@ protected function getValue($entry) return $value; } - protected function renderInput($entry) - { + protected function getMapFieldData($entry) { $value = $this->getValue($entry); $params = $this->getService(ParameterBagInterface::class); @@ -130,21 +133,27 @@ protected function renderInput($entry) $latitude = is_array($value) && !empty($value[$this->getLatitudeField()]) ? $value[$this->getLatitudeField()] : null; $longitude = is_array($value) && !empty($value[$this->getLongitudeField()]) ? $value[$this->getLongitudeField()] : null; + return [ + 'bazWheelZoom' => $params->get('baz_wheel_zoom'), + 'bazShowNav' => $params->get('baz_show_nav'), + 'bazMapCenterLat' => $params->get('baz_map_center_lat'), + 'bazMapCenterLon' => $params->get('baz_map_center_lon'), + 'bazMapZoom' => $params->get('baz_map_zoom'), + 'mapProvider' => $mapProvider, + 'mapProviderCredentials' => $mapProviderCredentials, + 'latitude' => $latitude, + 'longitude' => $longitude + ]; + } + + protected function renderInput($entry) + { + $mapFieldData = $this->getMapFieldData($entry); return $this->render("@bazar/inputs/map.twig", [ - 'latitude' => $latitude, - 'longitude' => $longitude, - 'mapFieldData' => [ - 'bazWheelZoom' => $params->get('baz_wheel_zoom'), - 'bazShowNav' => $params->get('baz_show_nav'), - 'bazMapCenterLat' => $params->get('baz_map_center_lat'), - 'bazMapCenterLon' => $params->get('baz_map_center_lon'), - 'bazMapZoom' => $params->get('baz_map_zoom'), - 'mapProvider' => $mapProvider, - 'mapProviderCredentials' => $mapProviderCredentials, - 'latitude' => $latitude, - 'longitude' => $longitude - ] + 'latitude' => $mapFieldData['latitude'], + 'longitude' => $mapFieldData['longitude'], + 'mapFieldData' => $mapFieldData ]); } public function formatValuesBeforeSave($entry) @@ -195,7 +204,43 @@ public function formatValuesBeforeSaveIfEditable($entry, bool $isCreation = fals protected function renderStatic($entry) { - return ""; + $output = ''; + $wiki = $this->getWiki(); + + // check the last used action containing the good form id + $lastAction = end( + array_filter($wiki->actionObjects, function($v) use ($entry) { + return $v['vars']['id'] == $entry['id_typeannonce']; + }) + ); + $showMapInDynamicListView = (isset($_GET['showmapinlistview']) && $_GET['showmapinlistview'] === '1'); + $showMapInListView = false; + if ( + // classic list would perform action + (!empty($lastAction['vars']['showmapinlistview']) + && $lastAction['vars']['showmapinlistview'] === '1') + // dynamic list calls api and use get param showmapinlistview + || $showMapInDynamicListView + ) { + $showMapInListView = true; + }; + $currentUrlIsEntry = (explode('/', $_GET['wiki'])[0] === $entry['id_fiche']); + + // the map is only showed on the fullpage entry view, + // or if action parameter showmapinlistview is set to '1' + if ( + $this->showMapInEntryView === '1' && $currentUrlIsEntry + || $showMapInListView + ) { + $mapFieldData = $this->getMapFieldData($entry); + if (!empty($mapFieldData['latitude']) && !empty($mapFieldData['longitude'])) { + $output .= $this->render("@bazar/fields/map.twig", [ + 'tag' => $entry['id_fiche'], + 'mapFieldData' => $mapFieldData, + ]); + } + } + return $output; } // GETTERS. Needed to use them in the Twig syntax diff --git a/tools/bazar/lang/bazar_ca.inc.php b/tools/bazar/lang/bazar_ca.inc.php index 063841b28..7f0820d08 100755 --- a/tools/bazar/lang/bazar_ca.inc.php +++ b/tools/bazar/lang/bazar_ca.inc.php @@ -372,6 +372,7 @@ // templates/tableau.twig // 'SUM' => 'Somme', + 'URL' => 'Url', // presentation/templates/timeline.tpl.html // 'BAZ_YEAR' => 'Année', diff --git a/tools/bazar/lang/bazar_en.inc.php b/tools/bazar/lang/bazar_en.inc.php index a76d3e57c..7386356c2 100755 --- a/tools/bazar/lang/bazar_en.inc.php +++ b/tools/bazar/lang/bazar_en.inc.php @@ -6,6 +6,7 @@ 'BAZ_LISTES' => 'Lists', 'BAZ_NOM_LISTE' => 'Name of the list', 'BAZ_VALEURS_LISTE' => 'Values of the list', + 'BAZ_VALEURS_LISTE_HINT' => 'Key should be unique, without spaces nor any special characters', 'BAZ_AJOUTER_LABEL_LISTE' => 'Add a new value to the list', 'BAZ_AJOUTER_CHAMPS_FORMULAIRE' => 'Add a new field to the form', 'BAZ_MODIFIER_FORMULAIRES' => 'Forms administration', @@ -75,6 +76,7 @@ 'BAZ_NOUVEAU_FORMULAIRE_ENREGISTRE' => 'The new form was successfully created.', 'BAZ_NOUVELLE_LISTE_ENREGISTREE' => 'The new list was successfully created.', 'BAZ_FORMULAIRE_MODIFIE' => 'The form was successfully modified.', + 'BAZ_FORM_NEED_TITLE' => 'You need to add a title to the form, etiher by adding a field with "bf_titre" identifier, or by adding an automatic title field', 'BAZ_LISTE_MODIFIEE' => 'The list was successfully modified.', 'BAZ_CONFIRM_SUPPRIMER_FICHE' => 'Are you sure you want to delete this entry ?', 'BAZ_FICHE_SUPPRIMEE' => 'The entry was successfully deleted.', @@ -372,6 +374,7 @@ // templates/tableau.twig 'SUM' => 'Sum', + 'URL' => 'Url', // presentation/templates/timeline.tpl.html // 'BAZ_YEAR' => 'Année', diff --git a/tools/bazar/lang/bazar_es.inc.php b/tools/bazar/lang/bazar_es.inc.php index 2c7e99082..354a1d333 100755 --- a/tools/bazar/lang/bazar_es.inc.php +++ b/tools/bazar/lang/bazar_es.inc.php @@ -373,6 +373,7 @@ // templates/tableau.twig // 'SUM' => 'Somme', + 'URL' => 'Url', // presentation/templates/timeline.tpl.html // 'BAZ_YEAR' => 'Année', diff --git a/tools/bazar/lang/bazar_fr.inc.php b/tools/bazar/lang/bazar_fr.inc.php index cc80c68a8..b0c4aad1c 100755 --- a/tools/bazar/lang/bazar_fr.inc.php +++ b/tools/bazar/lang/bazar_fr.inc.php @@ -5,7 +5,8 @@ 'BAZ_FORMULAIRE' => 'Formulaires', 'BAZ_LISTES' => 'Listes', 'BAZ_NOM_LISTE' => 'Nom de la liste', - 'BAZ_VALEURS_LISTE' => 'Valeurs de la liste (pour la clé pas d\'accent, de caractères spéciaux, d\'espace. Chaque clé sera unique. Ex : aut pour autre, pub pour public', + 'BAZ_VALEURS_LISTE' => 'Valeurs de la liste', + 'BAZ_VALEURS_LISTE_HINT' => 'Pour la clé pas d\'accent, de caractères spéciaux, d\'espace. Chaque clé sera unique.', 'BAZ_AJOUTER_LABEL_LISTE' => 'Ajouter une nouvelle valeur à la liste', 'BAZ_AJOUTER_CHAMPS_FORMULAIRE' => 'Ajouter un nouveau champs au formulaire', 'BAZ_MODIFIER_FORMULAIRES' => 'Gestion des formulaires', @@ -75,6 +76,7 @@ 'BAZ_NOUVEAU_FORMULAIRE_ENREGISTRE' => 'Le nouveau formulaire a bien été enregistré.', 'BAZ_NOUVELLE_LISTE_ENREGISTREE' => 'La nouvelle liste a bien été enregistrée.', 'BAZ_FORMULAIRE_MODIFIE' => 'Le formulaire a bien été modifié.', + 'BAZ_FORM_NEED_TITLE' => 'Votre formulaire doit contenir un titre. Vous pouvez soit ajouter un champ texte avec comme identifiant "bf_titre", soit un champ "titre automatique".', 'BAZ_LISTE_MODIFIEE' => 'La liste a bien été modifiée.', 'BAZ_CONFIRM_SUPPRIMER_FICHE' => 'Etes vous sûr de vouloir supprimer la fiche ?', 'BAZ_FICHE_SUPPRIMEE' => 'La fiche a bien été supprimée.', @@ -374,6 +376,7 @@ // templates/tableau.twig 'SUM' => 'Somme', + 'URL' => 'Url', // presentation/templates/timeline.tpl.html 'BAZ_YEAR' => 'Année', diff --git a/tools/bazar/lang/bazar_nl.inc.php b/tools/bazar/lang/bazar_nl.inc.php index f6fbaf4f9..b33d58001 100755 --- a/tools/bazar/lang/bazar_nl.inc.php +++ b/tools/bazar/lang/bazar_nl.inc.php @@ -372,6 +372,7 @@ // templates/tableau.twig // 'SUM' => 'Somme', + 'URL' => 'Url', // presentation/templates/timeline.tpl.html // 'BAZ_YEAR' => 'Année', diff --git a/tools/bazar/lang/bazar_pt.inc.php b/tools/bazar/lang/bazar_pt.inc.php index cc473330b..20338cdc9 100755 --- a/tools/bazar/lang/bazar_pt.inc.php +++ b/tools/bazar/lang/bazar_pt.inc.php @@ -372,6 +372,7 @@ // templates/tableau.twig // 'SUM' => 'Somme', + 'URL' => 'Url', // presentation/templates/timeline.tpl.html // 'BAZ_YEAR' => 'Année', diff --git a/tools/bazar/lang/bazarjs_en.inc.php b/tools/bazar/lang/bazarjs_en.inc.php index d22ddde32..876b0d7c5 100644 --- a/tools/bazar/lang/bazarjs_en.inc.php +++ b/tools/bazar/lang/bazarjs_en.inc.php @@ -38,6 +38,7 @@ 'BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_TOWN_PLACEHOLDER' => 'bf_ville', 'BAZ_FORM_EDIT_MAP_LATITUDE' => 'latitude fieldname', 'BAZ_FORM_EDIT_MAP_LONGITUDE' => 'longitude fieldname', + 'BAZ_FORM_ADVANCED_PARAMS' => 'See advanced params', 'BAZ_GEOLOC_NOT_FOUND' => 'Not found address, please move the point or give the coordinates', 'BAZ_MAP_ERROR' => 'An error occured: {msg}', 'BAZ_NOT_VALID_GEOLOC_FORMAT' => 'Bad GPS coordinates format (only nubers and one point for decimal)', @@ -47,8 +48,6 @@ 'BAZ_TOWN_NOT_FOUND' => 'No town found for search : {input}', 'GEOLOCATER_GROUP_GEOLOCATIZATION' => 'Fields to use for geolocalization', 'GEOLOCATER_GROUP_GEOLOCATIZATION_HINT' => 'Provide at least one field', - 'GEOLOCATER_SEE_ADVANCED_PARAMS' => '▼ See advanced params', - 'GEOLOCATER_HIDE_ADVANCED_PARAMS' => '▲ Hide advanced params', 'GEOLOCATER_NOT_FOUND' => 'Not foundable "{addr}" address', // libs/bazar.edit_lists.js @@ -58,6 +57,7 @@ // libs/bazar.js // 'BAZ_FORM_REQUIRED_FIELD' => 'Veuillez saisir tous les champs obligatoires (avec une asterisque rouge)', // 'BAZ_FORM_INVALID_EMAIL' => 'L\'email saisi n\'est pas valide', + // 'BAZ_FORM_INVALID_TEXT' => 'Le texte n\'est pas valide', // 'BAZ_FORM_INVALID_URL' => 'L\'url saisie n\'est pas valide, elle doit commencer par http:// '. // 'et ne pas contenir d\'espaces ou caracteres speciaux', // 'BAZ_FORM_EMPTY_RADIO' => 'Il faut choisir une valeur de bouton radio', diff --git a/tools/bazar/lang/bazarjs_fr.inc.php b/tools/bazar/lang/bazarjs_fr.inc.php index 758371610..4ce992682 100644 --- a/tools/bazar/lang/bazarjs_fr.inc.php +++ b/tools/bazar/lang/bazarjs_fr.inc.php @@ -38,7 +38,9 @@ 'BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_TOWN_PLACEHOLDER' => 'bf_ville', 'BAZ_FORM_EDIT_MAP_LATITUDE' => 'Nom champ latitude', 'BAZ_FORM_EDIT_MAP_LONGITUDE' => 'Nom champ longitude', + 'BAZ_FORM_EDIT_SHOW_MAP_IN_ENTRY_VIEW' => 'Afficher la carte dans la fiche lors de sa visualisation', 'BAZ_GEOLOC_NOT_FOUND' => 'Adresse non trouvée, veuillez déplacer le point ou indiquer les coordonnées GPS', + 'BAZ_FORM_ADVANCED_PARAMS' => 'Voir les paramètres avancés', 'BAZ_MAP_ERROR' => 'Une erreur est survenue: {msg}', 'BAZ_NOT_VALID_GEOLOC_FORMAT' => 'Format de coordonnées GPS non valide (que des chiffres et un point . pour les décimales)', 'BAZ_POSTAL_CODE_HINT' => 'Veuillez entrer 5 chiffres pour voir les villes associées au code postal', @@ -47,8 +49,7 @@ 'BAZ_TOWN_NOT_FOUND' => 'Pas de ville trouvée pour la recherche : {input}', 'GEOLOCATER_GROUP_GEOLOCATIZATION' => 'Champs à utiliser pour la géolocalisation', 'GEOLOCATER_GROUP_GEOLOCATIZATION_HINT' => 'Renseignez au moins un champ', - 'GEOLOCATER_SEE_ADVANCED_PARAMS' => '▼ Voir les paramètres avancés', - 'GEOLOCATER_HIDE_ADVANCED_PARAMS' => '▲ Masquer les paramètres avancés', + 'GEOLOCATER_NOT_FOUND' => 'Adresse "{addr}" introuvable', // libs/bazar.edit_lists.js @@ -58,6 +59,7 @@ // libs/bazar.js 'BAZ_FORM_REQUIRED_FIELD' => 'Veuillez saisir tous les champs obligatoires (asterisque rouge)', 'BAZ_FORM_INVALID_EMAIL' => 'L\'email saisi n\'est pas valide', + 'BAZ_FORM_INVALID_TEXT' => 'Le texte n\'est pas valide', 'BAZ_FORM_INVALID_URL' => 'L\'url saisie n\'est pas valide, elle doit commencer par https:// '. 'et ne pas contenir d\'espaces ou caracteres speciaux', 'BAZ_FORM_EMPTY_RADIO' => 'Il faut choisir une valeur de bouton radio', diff --git a/tools/bazar/libs/bazar.js b/tools/bazar/libs/bazar.js index cf72b53c6..7f1548706 100755 --- a/tools/bazar/libs/bazar.js +++ b/tools/bazar/libs/bazar.js @@ -181,10 +181,13 @@ $(document).ready(() => { // validation formulaire de saisie const requirementHelper = { requiredInputs: [], + textInputsWithPattern: [], error: -1, // error contain the index of the first error (-1 = no error) errorMessage: '', - filterVisibleInputs() { - this.requiredInputs = this.requiredInputs.filter(function() { + errorPattern: -1, + errorMessagePattern: '', + filterVisibleInputs(key = 'requiredInputs') { + this[key] = (this[key]).filter(function() { let inputVisible = $(this).filter(':visible') if (( $(this).prop('tagName') == 'TEXTAREA' && ($(this).hasClass('wiki-textarea') || $(this).hasClass('summernote')) @@ -381,20 +384,39 @@ $(document).ready(() => { $(input).removeClass('invalid') } }, + checkPattern(input,index){ + if ($(input)[0]){ + const val = $(input).val() + const element = $(input)[0] + if (val.length > 0){ + if (!element.checkValidity()){ + if (this.errorPattern == -1) { + this.errorMessagePattern = _t('BAZ_FORM_INVALID_TEXT') + this.errorPattern= index + } + } + } + } + }, checkInputs() { for (let index = 0; index < this.requiredInputs.length; index++) { const input = this.requiredInputs[index] this.checkInput(input, true, index) } + for (let index = 0; index < this.textInputsWithPattern.length; index++) { + const input = this.textInputsWithPattern[index] + this.checkPattern(input, index) + } }, displayErrorMessage() { alert(this.errorMessage) }, - scrollToFirstinputInError() { - if (this.error > -1) { + scrollToFirstinputInError(type = 'error') { + const error = this[type] ?? -1 + if (error > -1) { // TODO afficher l'onglet en question // on remonte en haut du formulaire - let input = this.requiredInputs[this.error] + let input = this.requiredInputs[error] if ($(input).filter(':visible').length == 0) { // panel ? const panel = $(input).parentsUntil(':visible').last() @@ -408,6 +430,10 @@ $(document).ready(() => { $('html, body').animate({ scrollTop: $(input).offset().top - 80 }, 500) } }, + initTextInputsWithPattern(form) { + this.textInputsWithPattern = $(form).find('input[type=text][pattern]') + this.errorPattern = -1 + }, initRequiredInputs(form) { this.requiredInputs = $(form).find( 'input[required],' @@ -423,11 +449,18 @@ $(document).ready(() => { }, run(form) { this.initRequiredInputs(form) - this.filterVisibleInputs() + this.initTextInputsWithPattern(form) + this.filterVisibleInputs('requiredInputs') + this.filterVisibleInputs('textInputsWithPattern') this.checkInputs() if (this.error > -1) { this.displayErrorMessage() - this.scrollToFirstinputInError() + this.scrollToFirstinputInError('error') + return false + } + if (this.errorPattern > -1) { + alert(this.errorMessagePattern) + this.scrollToFirstinputInError('errorPattern') return false } return true diff --git a/tools/bazar/presentation/javascripts/Waiter.js b/tools/bazar/presentation/javascripts/Waiter.js new file mode 100644 index 000000000..61666b992 --- /dev/null +++ b/tools/bazar/presentation/javascripts/Waiter.js @@ -0,0 +1,28 @@ +const cacheResolveReject = {} +const isReady = {} + +const resolve = (name) => { + isReady[name] = true + if (name in cacheResolveReject && + Array.isArray(cacheResolveReject[name])){ + const listOfResolveReject = cacheResolveReject[name] + cacheResolveReject[name] = [] + listOfResolveReject.forEach(({base,resolve})=>resolve(base?.[name])) + } +} + +const waitFor = async (name,base)=>{ + if (isReady?.[name]){ + return base?.[name] + } + isReady[name] = false // define it + if (!(name in cacheResolveReject)){ + cacheResolveReject[name] = [] + } + const promise = new Promise((resolve,reject)=>{ + cacheResolveReject[name].push({base,resolve,reject}) + }) + return await promise.then((...args)=>Promise.resolve(...args)) // force .then() +} + +export default {waitFor,resolve} \ No newline at end of file diff --git a/tools/bazar/presentation/javascripts/conditionschecking/conditionschecking.js b/tools/bazar/presentation/javascripts/bazar-fields/conditionschecking.js similarity index 100% rename from tools/bazar/presentation/javascripts/conditionschecking/conditionschecking.js rename to tools/bazar/presentation/javascripts/bazar-fields/conditionschecking.js diff --git a/tools/bazar/presentation/javascripts/bazar-list-dynamic.js b/tools/bazar/presentation/javascripts/bazar-list-dynamic.js index ea586f492..2ed0a28b0 100644 --- a/tools/bazar/presentation/javascripts/bazar-list-dynamic.js +++ b/tools/bazar/presentation/javascripts/bazar-list-dynamic.js @@ -4,381 +4,420 @@ import PopupEntryField from './components/PopupEntryField.js' import SpinnerLoader from './components/SpinnerLoader.js' import ModalEntry from './components/ModalEntry.js' import BazarSearch from './components/BazarSearch.js' +import { initEntryMaps } from './map-field-map-entry.js' -// Wait for Dom to be loaded, so we can load some Vue component like BazarpMap in order -// to be used inside index-dynamic -document.addEventListener('DOMContentLoaded', () => { - document.querySelectorAll('.bazar-list-dynamic-container').forEach((domElement) => { - new Vue({ - el: domElement, - components: { Panel, ModalEntry, SpinnerLoader, EntryField, PopupEntryField }, - mixins: [BazarSearch], - data: { - mounted: false, // when vue get initialized - ready: false, // when ajax data have been retrieved - params: {}, +const load = (domElement) => { + new Vue({ + el: domElement, + components: { Panel, ModalEntry, SpinnerLoader, EntryField, PopupEntryField }, + mixins: [BazarSearch], + data: { + mounted: false, // when vue get initialized + ready: false, // when ajax data have been retrieved + params: {}, - filters: [], - entries: [], - formFields: {}, - searchedEntries: [], - filteredEntries: [], - paginatedEntries: [], - entriesToDisplay: [], + filters: [], + entries: [], + formFields: {}, + searchedEntries: [], + filteredEntries: [], + paginatedEntries: [], + entriesToDisplay: [], - currentPage: 0, - pagination: 10, - tokenForImages: null, - imagesToProcess: [], - processingImage: false, - search: '', - searchFormId: null, // wether to search for a particular form ID (only used when no form id is defined for the bazar list action) - searchTimer: null // use ot debounce user input + currentPage: 0, + pagination: 10, + tokenForImages: null, + imagesToProcess: [], + processingImage: false, + search: '', + searchFormId: null, // wether to search for a particular form ID (only used when no form id is defined for the bazar list action) + searchTimer: null // use ot debounce user input + }, + computed: { + computedFilters() { + const result = {} + for (const filterId in this.filters) { + const checkedValues = this.filters[filterId].list.filter((option) => option.checked) + .map((option) => option.value) + if (checkedValues.length > 0) result[filterId] = checkedValues + } + return result }, - computed: { - computedFilters() { - const result = {} - for (const filterId in this.filters) { - const checkedValues = this.filters[filterId].list.filter((option) => option.checked) - .map((option) => option.value) - if (checkedValues.length > 0) result[filterId] = checkedValues - } - return result - }, - filteredEntriesCount() { - return this.filteredEntries.length - }, - pages() { - if (this.pagination <= 0) return [] - const pagesCount = Math.ceil(this.filteredEntries.length / parseInt(this.pagination)) - const start = 0; const - end = pagesCount - 1 - let pages = [this.currentPage - 2, this.currentPage - 1, this.currentPage, this.currentPage + 1, this.currentPage + 2] - pages = pages.filter((page) => page >= start && page <= end) - if (!pages.includes(start)) { - if (!pages.includes(start + 1)) pages.unshift('divider') - pages.unshift(0) - } - if (!pages.includes(end)) { - if (!pages.includes(end - 1)) pages.push('divider') - pages.push(end) - } - return pages + filteredEntriesCount() { + return this.filteredEntries.length + }, + pages() { + if (this.pagination <= 0) return [] + const pagesCount = Math.ceil(this.filteredEntries.length / parseInt(this.pagination)) + const start = 0; const + end = pagesCount - 1 + let pages = [this.currentPage - 2, this.currentPage - 1, this.currentPage, this.currentPage + 1, this.currentPage + 2] + pages = pages.filter((page) => page >= start && page <= end) + if (!pages.includes(start)) { + if (!pages.includes(start + 1)) pages.unshift('divider') + pages.unshift(0) + } + if (!pages.includes(end)) { + if (!pages.includes(end - 1)) pages.push('divider') + pages.push(end) } + return pages + } + }, + watch: { + filteredEntriesCount() { this.currentPage = 0 }, + search() { + clearTimeout(this.searchTimer) + this.searchTimer = setTimeout(() => this.calculateBaseEntries(), 350) + this.saveFiltersIntoHash() }, - watch: { - filteredEntriesCount() { this.currentPage = 0 }, - search() { - clearTimeout(this.searchTimer) - this.searchTimer = setTimeout(() => this.calculateBaseEntries(), 350) - this.saveFiltersIntoHash() - }, - searchFormId() { this.calculateBaseEntries() }, - computedFilters() { - this.filterEntries() - this.saveFiltersIntoHash() - }, - currentPage() { this.paginateEntries() }, - searchedEntries() { this.calculateFiltersCount() } + searchFormId() { this.calculateBaseEntries() }, + computedFilters() { + this.filterEntries() + this.saveFiltersIntoHash() }, - methods: { - calculateBaseEntries() { - let result = this.entries - if (this.searchFormId) { - result = result.filter((entry) => - // filter based on formId, when no form id is specified - entry.id_typeannonce == this.searchFormId) - } - if (this.search && this.search.length > 2) { - result = this.searchEntries(result, this.search) - if (result == undefined) { - result = this.entries - } - } - this.searchedEntries = result - this.filterEntries() - }, - filterEntries() { - // Handles filters - let result = this.searchedEntries - for (const filterId in this.computedFilters) { - result = result.filter((entry) => { - if (!entry[filterId] || typeof entry[filterId] != 'string') return false - return entry[filterId].split(',').some((value) => this.computedFilters[filterId].includes(value)) - }) - } - this.filteredEntries = result - this.paginateEntries() - }, - paginateEntries() { - let result = this.filteredEntries - if (this.pagination > 0) { - const start = this.pagination * this.currentPage - result = result.slice(start, start + this.pagination) + currentPage() { this.paginateEntries() }, + searchedEntries() { this.calculateFiltersCount() } + }, + methods: { + calculateBaseEntries() { + let result = this.entries + if (this.searchFormId) { + result = result.filter((entry) => + // filter based on formId, when no form id is specified + entry.id_typeannonce == this.searchFormId) + } + if (this.search && this.search.length > 2) { + result = this.searchEntries(result, this.search) + if (result == undefined) { + result = this.entries } - this.paginatedEntries = result - this.formatEntries() - }, - formatEntries() { - this.paginatedEntries.forEach((entry) => { - entry.color = this.colorIconValueFor(entry, this.params.colorfield, this.params.color) - entry.icon = this.colorIconValueFor(entry, this.params.iconfield, this.params.icon) + } + this.searchedEntries = result + this.filterEntries() + }, + filterEntries() { + // Handles filters + let result = this.searchedEntries + for (const filterId in this.computedFilters) { + result = result.filter((entry) => { + if (!entry[filterId] || typeof entry[filterId] != 'string') return false + return entry[filterId].split(',').some((value) => this.computedFilters[filterId].includes(value)) }) - this.entriesToDisplay = this.paginatedEntries - }, - calculateFiltersCount() { - for (const fieldName in this.filters) { - for (const option of this.filters[fieldName].list) { - option.nb = this.searchedEntries.filter((entry) => { - let entryValues = entry[fieldName] - if (!entryValues || typeof entryValues != 'string') return - entryValues = entryValues.split(',') - return entryValues.some((value) => value == option.value) - }).length - } - } - }, - resetFilters() { - for (const filterId in this.filters) { - this.filters[filterId].list.forEach((option) => option.checked = false) + } + this.filteredEntries = result + this.paginateEntries() + }, + paginateEntries() { + let result = this.filteredEntries + if (this.pagination > 0) { + const start = this.pagination * this.currentPage + result = result.slice(start, start + this.pagination) + } + this.paginatedEntries = result + this.formatEntries() + }, + formatEntries() { + this.paginatedEntries.forEach((entry) => { + entry.color = this.colorIconValueFor(entry, this.params.colorfield, this.params.color) + entry.icon = this.colorIconValueFor(entry, this.params.iconfield, this.params.icon) + }) + this.entriesToDisplay = this.paginatedEntries + }, + calculateFiltersCount() { + for (const fieldName in this.filters) { + for (const option of this.filters[fieldName].list) { + option.nb = this.searchedEntries.filter((entry) => { + let entryValues = entry[fieldName] + if (!entryValues || typeof entryValues != 'string') return + entryValues = entryValues.split(',') + return entryValues.some((value) => value == option.value) + }).length } - this.search = '' - }, - saveFiltersIntoHash() { - if (!this.ready) return - const hashes = [] - for (const filterId in this.computedFilters) { - hashes.push(`${filterId}=${this.computedFilters[filterId].join(',')}`) + } + }, + resetFilters() { + for (const filterId in this.filters) { + this.filters[filterId].list.forEach((option) => option.checked = false) + } + this.search = '' + }, + saveFiltersIntoHash() { + if (!this.ready) return + const hashes = [] + for (const filterId in this.computedFilters) { + hashes.push(`${filterId}=${this.computedFilters[filterId].join(',')}`) + } + if (this.search) hashes.push(`q=${this.search}`) + document.location.hash = hashes.length > 0 ? hashes.join('&') : null + }, + initFiltersFromHash(filters, hash) { + hash = hash.substring(1) // remove # + for (const combinaison of hash.split('&')) { + const filterId = combinaison.split('=')[0] + let filterValues = combinaison.split('=')[1] + if (filterId == 'q') { + this.search = filterValues + } else if (filterId && filterValues && filters[filterId]) { + filterValues = filterValues.split(',') + for (const filter of filters[filterId].list) { + if (filterValues.includes(filter.value)) filter.checked = true + } } - if (this.search) hashes.push(`q=${this.search}`) - document.location.hash = hashes.length > 0 ? hashes.join('&') : null - }, - initFiltersFromHash(filters, hash) { - hash = hash.substring(1) // remove # - for (const combinaison of hash.split('&')) { + } + // init q from GET q also + if (this.search.length == 0) { + let params = document.location.search + params = params.substring(1) // remove ? + for (const combinaison of params.split('&')) { const filterId = combinaison.split('=')[0] - let filterValues = combinaison.split('=')[1] + const filterValues = combinaison.split('=')[1] if (filterId == 'q') { - this.search = filterValues - } else if (filterId && filterValues && filters[filterId]) { - filterValues = filterValues.split(',') - for (const filter of filters[filterId].list) { - if (filterValues.includes(filter.value)) filter.checked = true - } - } - } - // init q from GET q also - if (this.search.length == 0) { - let params = document.location.search - params = params.substring(1) // remove ? - for (const combinaison of params.split('&')) { - const filterId = combinaison.split('=')[0] - const filterValues = combinaison.split('=')[1] - if (filterId == 'q') { - this.search = decodeURIComponent(filterValues) - } + this.search = decodeURIComponent(filterValues) } } - return filters - }, - getEntryRender(entry) { - if (entry.html_render) return - if (this.isExternalUrl(entry)) { - this.getExternalEntry(entry) - } else { - let fieldsToExclude = [] - if (this.params.template == 'list' && this.params.displayfields) { + } + return filters + }, + getEntryRender(entry) { + if (entry.html_render) return + if (this.isExternalUrl(entry)) { + this.getExternalEntry(entry) + } else { + let fieldsToExclude = [] + if (this.params.template == 'list' && this.params.displayfields) { // In list template (collapsible panels with header and body), the rendered entry // is displayed in the body section and we don't want to show the fields // that are already displayed in the panel header - fieldsToExclude = Object.values(this.params.displayfields) - } - const url = wiki.url(`?api/entries/html/${entry.id_fiche}`, { - fields: 'html_output', - excludeFields: fieldsToExclude - }) - $.getJSON(url, (data) => { - Vue.set(entry, 'html_render', (data[entry.id_fiche] && data[entry.id_fiche].html_output) ? data[entry.id_fiche].html_output : 'error') - }) + fieldsToExclude = Object.values(this.params.displayfields) } - }, - fieldInfo(field) { - return this.formFields[field] || {} - }, - openEntry(entry) { - if (this.params.entrydisplay == 'newtab') window.open(entry.url) - else this.$root.openEntryModal(entry) - }, - openEntryModal(entry) { - this.$refs.modal.displayEntry(entry) - }, - isExternalUrl(entry) { - if (!entry.url) { - return false - } - return entry.url !== wiki.url(entry.id_fiche) - }, - isInIframe() { - return (window != window.parent) - }, - getExternalEntry(entry) { - const url = `${entry.url}/iframe` - Vue.set(entry, 'html_render', ``) - }, - colorIconValueFor(entry, field, mapping) { - if (!entry[field] || typeof entry[field] != 'string') return null - let values = entry[field].split(',') - // If some filters are checked, and the entry have multiple values, we display - // the value associated with the checked filter - // TODO BazarListDynamic check with users if this is expected behaviour - if (this.computedFilters[field]) values = values.filter((val) => this.computedFilters[field].includes(val)) - return mapping[values[0]] - }, - urlImageResizedOnError(entry, fieldName, width, height, mode, token) { - const node = event.target - $(node).removeAttr('onerror') - if (entry[fieldName]) { - const fileName = entry[fieldName] - if (!this.isExternalUrl(entry)) { - // currently not supporting api for external images (anti-csrf token not generated) - if (this.tokenForImages === null) { - this.tokenForImages = token + const url = wiki.url(`?api/entries/html/${entry.id_fiche}`, { + ...{fields: 'html_output'}, + ...(fieldsToExclude.length > 0 ? {excludeFields: fieldsToExclude} :{}), + ...(this.params.showmapinlistview ? {showmapinlistview: this.params.showmapinlistview} :{}) + }) + this.setEntryFromUrl(entry, url) + .then((html) => { + this.loadBazarListDynamicIfNeeded(html) + initEntryMaps(this.$refs.entriesContainer) + }) + } + }, + async setEntryFromUrl(entry,url){ + return await this.getJSON(url) + .then((data)=>{ + const html = data?.[entry.id_fiche]?.html_output ?? 'error' + Vue.set(entry, 'html_render', html) + return html + }).catch(()=>'error')// in case of error do nothing + }, + async getJSON(url,options={}){ + return await fetch(url,options) + .then((response)=>{ + if (!response.ok){ + throw `response not ok ; code : ${response.status} (${response.statusText})` } - this.imagesToProcess.push({ - fileName, - width, - height, - mode, - node + return response.json() + }) + .catch((error)=>{ + if (wiki?.isDebugEnabled){ + console.error(error) + } + return {} + }) + }, + loadBazarListDynamicIfNeeded(html){ + if (html.match(/
        `) + }, + colorIconValueFor(entry, field, mapping) { + if (!entry[field] || typeof entry[field] != 'string') return null + let values = entry[field].split(',') + // If some filters are checked, and the entry have multiple values, we display + // the value associated with the checked filter + // TODO BazarListDynamic check with users if this is expected behaviour + if (this.computedFilters[field]) values = values.filter((val) => this.computedFilters[field].includes(val)) + return mapping[values[0]] + }, + urlImageResizedOnError(entry, fieldName, width, height, mode, token) { + const node = event.target + $(node).removeAttr('onerror') + if (entry[fieldName]) { + const fileName = entry[fieldName] + if (!this.isExternalUrl(entry)) { + // currently not supporting api for external images (anti-csrf token not generated) + if (this.tokenForImages === null) { + this.tokenForImages = token + } + this.imagesToProcess.push({ + fileName, + width, + height, + mode, + node + }) + this.processNextImage() + } else { + const baseUrl = entry.url.slice(0, -entry.id_fiche.length).replace(/\?$/, '').replace(/\/$/, '') + const previousUrl = $(node).prop('src') + const newUrl = `${baseUrl}/files/${fileName}` + if (newUrl != previousUrl) { + $(`img[src="${previousUrl}"]`).each(function() { + $(this).prop('src', newUrl) }) - this.processNextImage() - } else { - const baseUrl = entry.url.slice(0, -entry.id_fiche.length).replace(/\?$/, '').replace(/\/$/, '') - const previousUrl = $(node).prop('src') - const newUrl = `${baseUrl}/files/${fileName}` - if (newUrl != previousUrl) { - $(`img[src="${previousUrl}"]`).each(function() { - $(this).prop('src', newUrl) - }) - } } } - }, - urlImage(entry, fieldName, width, height, mode) { - if (!entry[fieldName]) { - return null - } - let baseUrl = (this.isExternalUrl(entry)) - ? entry.url.slice(0, -entry.id_fiche.length) - : wiki.baseUrl - baseUrl = baseUrl.replace(/\?$/, '').replace(/\/$/, '') - const fileName = entry[fieldName] - const field = this.fieldInfo(fieldName) - let regExp = new RegExp(`^(${entry.id_fiche}_${field.propertyname}_.*)_(\\d{14})_(\\d{14})\\.([^.]+)$`) + } + }, + urlImage(entry, fieldName, width, height, mode) { + if (!entry[fieldName]) { + return null + } + let baseUrl = (this.isExternalUrl(entry)) + ? entry.url.slice(0, -entry.id_fiche.length) + : wiki.baseUrl + baseUrl = baseUrl.replace(/\?$/, '').replace(/\/$/, '') + const fileName = entry[fieldName] + const field = this.fieldInfo(fieldName) + let regExp = new RegExp(`^(${entry.id_fiche}_${field.propertyname}_.*)_(\\d{14})_(\\d{14})\\.([^.]+)$`) - if (regExp.test(fileName)) { - return `${baseUrl}/cache/${fileName.replace(regExp, `$1_${mode == 'fit' ? 'vignette' : 'cropped'}_${width}_${height}_$2_$3.$4`)}` - } - regExp = new RegExp(`^(${entry.id_fiche}_${field.propertyname}_.*)\\.([^.]+)$`) - if (regExp.test(fileName)) { - return `${baseUrl}/cache/${fileName.replace(regExp, `$1_${mode == 'fit' ? 'vignette' : 'cropped'}_${width}_${height}.$2`)}` - } - // maybe from other entry - regExp = new RegExp(`^([A-Za-z0-9-_]+_${field.propertyname}_.*)_(\\d{14})_(\\d{14})\\.([^.]+)$`) - if (regExp.test(fileName)) { - return `${baseUrl}/cache/${fileName.replace(regExp, `$1_${mode == 'fit' ? 'vignette' : 'cropped'}_${width}_${height}_$2_$3.$4`)}` - } - // last possible format - regExp = new RegExp('^(.*)\\.([^.]+)$') - if (regExp.test(fileName)) { - return `${baseUrl}/cache/${fileName.replace(regExp, `$1_${mode == 'fit' ? 'vignette' : 'cropped'}_${width}_${height}.$2`)}` - } - return `${baseUrl}/files/${fileName}` - }, - processNextImage() { - if (!this.processingImage && this.imagesToProcess.length > 0) { - this.processingImage = true - const newImageParams = this.imagesToProcess[0] - this.imagesToProcess = this.imagesToProcess.slice(1) - const bazarListDynamicRoot = this - $.ajax({ - url: wiki.url(`?api/images/${newImageParams.fileName}/cache/${newImageParams.width}/${newImageParams.height}/${newImageParams.mode}`, { csrftoken: this.tokenForImages }), - method: 'get', - cache: false, - success(data) { - const previousUrl = $(newImageParams.node).prop('src') - const srcFileName = wiki.baseUrl.replace(/(\?)?$/, '') + data.cachefilename - $(`img[src="${previousUrl}"]`).each(function() { - $(this).prop('src', srcFileName) - const next = $(this).next('div.area.visual-area[style]') - if (next.length > 0) { - const backgoundImage = $(next).css('background-image') - if (backgoundImage != undefined && typeof backgoundImage == 'string' && backgoundImage.length > 0) { - $(next).css('background-image', '') // reset to force update - $(next).css('background-image', `url("${srcFileName}")`) - } + if (regExp.test(fileName)) { + return `${baseUrl}/cache/${fileName.replace(regExp, `$1_${mode == 'fit' ? 'vignette' : 'cropped'}_${width}_${height}_$2_$3.$4`)}` + } + regExp = new RegExp(`^(${entry.id_fiche}_${field.propertyname}_.*)\\.([^.]+)$`) + if (regExp.test(fileName)) { + return `${baseUrl}/cache/${fileName.replace(regExp, `$1_${mode == 'fit' ? 'vignette' : 'cropped'}_${width}_${height}.$2`)}` + } + // maybe from other entry + regExp = new RegExp(`^([A-Za-z0-9-_]+_${field.propertyname}_.*)_(\\d{14})_(\\d{14})\\.([^.]+)$`) + if (regExp.test(fileName)) { + return `${baseUrl}/cache/${fileName.replace(regExp, `$1_${mode == 'fit' ? 'vignette' : 'cropped'}_${width}_${height}_$2_$3.$4`)}` + } + // last possible format + regExp = new RegExp('^(.*)\\.([^.]+)$') + if (regExp.test(fileName)) { + return `${baseUrl}/cache/${fileName.replace(regExp, `$1_${mode == 'fit' ? 'vignette' : 'cropped'}_${width}_${height}.$2`)}` + } + return `${baseUrl}/files/${fileName}` + }, + processNextImage() { + if (!this.processingImage && this.imagesToProcess.length > 0) { + this.processingImage = true + const newImageParams = this.imagesToProcess[0] + this.imagesToProcess = this.imagesToProcess.slice(1) + const bazarListDynamicRoot = this + $.ajax({ + url: wiki.url(`?api/images/${newImageParams.fileName}/cache/${newImageParams.width}/${newImageParams.height}/${newImageParams.mode}`), + method: 'post', + data: {csrftoken: this.tokenForImages}, + cache: false, + success(data) { + const previousUrl = $(newImageParams.node).prop('src') + const srcFileName = wiki.baseUrl.replace(/(\?)?$/, '') + data.cachefilename + $(`img[src="${previousUrl}"]`).each(function() { + $(this).prop('src', srcFileName) + const next = $(this).next('div.area.visual-area[style]') + if (next.length > 0) { + const backgoundImage = $(next).css('background-image') + if (backgoundImage != undefined && typeof backgoundImage == 'string' && backgoundImage.length > 0) { + $(next).css('background-image', '') // reset to force update + $(next).css('background-image', `url("${srcFileName}")`) } - }) - }, - complete(e) { - if (e.responseJSON != undefined && e.responseJSON.newToken != undefined) { - bazarListDynamicRoot.tokenForImages = e.responseJSON.newToken } - bazarListDynamicRoot.processingImage = false - bazarListDynamicRoot.processNextImage() + }) + }, + complete(e) { + if (e.responseJSON != undefined && e.responseJSON.newToken != undefined) { + bazarListDynamicRoot.tokenForImages = e.responseJSON.newToken } - }) - } + bazarListDynamicRoot.processingImage = false + bazarListDynamicRoot.processNextImage() + } + }) } - }, - mounted() { - $(this.$el).on( - 'dblclick', - (e) => false - ) - const savedHash = document.location.hash // don't know how, but the hash get cleared after - this.params = JSON.parse(this.$el.dataset.params) - this.pagination = parseInt(this.params.pagination) - this.mounted = true - // Retrieve data asynchronoulsy - $.getJSON(wiki.url('?api/entries/bazarlist'), this.params, (data) => { - // First display filters cause entries can be a bit long to load - this.filters = this.initFiltersFromHash(data.filters || [], savedHash) + } + }, + mounted() { + $(this.$el).on( + 'dblclick', + (e) => false + ) + const savedHash = document.location.hash // don't know how, but the hash get cleared after + this.params = JSON.parse(this.$el.dataset.params) + this.pagination = parseInt(this.params.pagination) + this.mounted = true + // Retrieve data asynchronoulsy + $.getJSON(wiki.url('?api/entries/bazarlist'), this.params, (data) => { + // First display filters cause entries can be a bit long to load + this.filters = this.initFiltersFromHash(data.filters || [], savedHash) - // Auto adjust some params depending on entries count - if (data.entries.length > 50 && !this.pagination) this.pagination = 20 // Auto paginate if large numbers - if (data.entries.length > 1000) this.params.cluster = true // Activate cluster for map mode + // Auto adjust some params depending on entries count + if (data.entries.length > 50 && !this.pagination) this.pagination = 20 // Auto paginate if large numbers + if (data.entries.length > 1000) this.params.cluster = true // Activate cluster for map mode - setTimeout(() => { - // Transform forms info into a list of field mapping - // { bf_titre: { type: 'text', ...}, bf_date: { type: 'listedatedeb', ... } } - Object.values(data.forms).forEach((formFields) => { - Object.values(formFields).forEach((field) => { - this.formFields[field.id] = field - Object.entries(this.params.displayfields).forEach(([fieldId, mappedField]) => { - if (mappedField == field.id) this.formFields[fieldId] = this.formFields[mappedField] - }) + setTimeout(() => { + // Transform forms info into a list of field mapping + // { bf_titre: { type: 'text', ...}, bf_date: { type: 'listedatedeb', ... } } + Object.values(data.forms).forEach((formFields) => { + Object.values(formFields).forEach((field) => { + this.formFields[field.id] = field + Object.entries(this.params.displayfields).forEach(([fieldId, mappedField]) => { + if (mappedField == field.id) this.formFields[fieldId] = this.formFields[mappedField] }) }) + }) - this.entries = data.entries.map((array) => { - const entry = { color: null, icon: null } - // Transform array data into object using the fieldMapping - for (const key in data.fieldMapping) { - entry[data.fieldMapping[key]] = array[key] - } - Object.entries(this.params.displayfields).forEach(([field, mappedField]) => { - if (mappedField) entry[field] = entry[mappedField] - }) - - return entry + this.entries = data.entries.map((array) => { + const entry = { color: null, icon: null } + // Transform array data into object using the fieldMapping + for (const key in data.fieldMapping) { + entry[data.fieldMapping[key]] = array[key] + } + Object.entries(this.params.displayfields).forEach(([field, mappedField]) => { + if (mappedField) entry[field] = entry[mappedField] }) - this.calculateBaseEntries() - this.ready = true - }, 0) - }) - } - }) + return entry + }) + + this.calculateBaseEntries() + this.ready = true + }, 0) + }) + } }) +} + +// Wait for Dom to be loaded, so we can load some Vue component like BazarpMap in order +// to be used inside index-dynamic +document.addEventListener('DOMContentLoaded', () => { + document.querySelectorAll('.bazar-list-dynamic-container').forEach(load) }) diff --git a/tools/bazar/presentation/javascripts/calcfield/form-edit-template.js b/tools/bazar/presentation/javascripts/calcfield/form-edit-template.js deleted file mode 100644 index f97a59e19..000000000 --- a/tools/bazar/presentation/javascripts/calcfield/form-edit-template.js +++ /dev/null @@ -1,62 +0,0 @@ -typeUserAttrs = { - ...typeUserAttrs, - ...{ - calc: { - displaytext: { - label: _t('BAZ_FORM_EDIT_DISPLAYTEXT_LABEL'), - value: '', - placeholder: '{value}' - }, - formula: { - label: _t('BAZ_FORM_EDIT_FORMULA_LABEL'), - value: '' - }, - read: readConf - // write: writeconf - } - } -} - -templates = { - ...templates, - ...{ - calc(field) { - return { - field: '', - onRender() { - templateHelper.prependHint(field, _t('BAZ_FORM_CALC_HINT', { '\\n': '
        ' })) - templateHelper.defineLabelHintForGroup(field, 'displaytext', _t('BAZ_FORM_EDIT_DISPLAYTEXT_HELP')) - } - } - } - } -} - -yesWikiMapping = { - ...yesWikiMapping, - ...{ - calc: { - ...defaultMapping, - ...{ - 4: 'displaytext', - 5: 'formula', - 8: '', - 9: '' - } - } - } -} - -typeUserDisabledAttrs = { - ...typeUserDisabledAttrs, - ...{ calc: ['required', 'value', 'default'] } -} - -typeUserEvents.calc = { onclone: copyMultipleSelectValues } - -fields.push({ - label: _t('BAZ_FORM_EDIT_CALC_LABEL'), - name: 'calc', - attrs: { type: 'calc' }, - icon: '' -}) diff --git a/tools/bazar/presentation/javascripts/components/BazarMap.js b/tools/bazar/presentation/javascripts/components/BazarMap.js index abd24528f..7ebb51403 100644 --- a/tools/bazar/presentation/javascripts/components/BazarMap.js +++ b/tools/bazar/presentation/javascripts/components/BazarMap.js @@ -53,8 +53,10 @@ Vue.component('BazarMap', { createTileLayers() { if (!this.map) return const provideOptions = this.params.provider_credentials ? JSON.parse(this.params.provider_credentials) : {} - L.tileLayer.provider(this.params.provider, provideOptions).addTo(this.map) + const provider = L.tileLayer.provider(this.params.provider, provideOptions).addTo(this.map) + this.params.layers = this.params.layers.map((layer)=>layer.replace(/visiblebydefault\|?;?/ig,'')) + let displayProviderList = false for (const layer of this.params.layers) { let [label, type, options, url] = layer.split('|') if (!url) { url = options; options = '' } @@ -63,6 +65,7 @@ Vue.component('BazarMap', { this.layers[label] = L.tileLayer(url).addTo(this.map) break case 'geojson': + displayProviderList = true this.layers[label] = L.geoJson.ajax(url, { style(feature, latlng) { if (feature.geometry.type == 'Point') return @@ -86,7 +89,17 @@ Vue.component('BazarMap', { }, pointToLayer(feature, latlng) { return L.circleMarker(latlng) - } + }, + onEachFeature: function (feature, layer) { + var str = "" ; + for( var prop in feature.properties){ + const content = ( prop.toLowerCase() == "url" ) + ? `${feature.properties[prop]}` + : feature.properties[prop] + str+= `${prop}: ${content}
        ` + } + layer.bindPopup( str ); + } }).addTo(this.map) break default: @@ -94,6 +107,9 @@ Vue.component('BazarMap', { break } } + if (displayProviderList){ + L.control.layers({[this.params.provider]:provider}, this.layers).addTo(this.map) + } }, arraysEqual(a, b) { if (a === b) return true @@ -113,7 +129,7 @@ Vue.component('BazarMap', { const isLink = (this.isModalDisplay() || this.isDirectLinkDisplay() || this.isNewTabDisplay()) const tagName = isLink ? 'a' : 'div' const url = entry.url + (this.isModalDisplay() ? '/iframe' : '') - const modalData = this.isModalDisplay() ? 'data-size="modal-lg" data-iframe="1"' : '' + const modalData = this.isModalDisplay() ? 'data-size="modal-lg" data-iframe="1" data-header="false"' : '' entry.marker.setIcon( L.divIcon({ className: `bazar-marker ${this.params.smallmarker}`, @@ -126,17 +142,16 @@ Vue.component('BazarMap', { ${entry.markerhover || entry.bf_titre}
        - <${tagName} class="bazar-entry${this.isModalDisplay() ? ' modalbox' : ''}" ` - + `${isLink ? `href="${url}" title="${entry.bf_titre}"` : ''} style="color: ${entry.color}" ${modalData}> + <${tagName} class="bazar-entry ${this.isModalDisplay() ? 'modalbox' : ''}" ` + + `${isLink ? `href="${url}"` : ''} style="color: ${entry.color}" ${modalData}> ` }) ) if (this.isDirectLinkDisplay()) { - const BazarMap = this entry.marker.on('click', () => { event.preventDefault() - window.location = entry.url + (BazarMap.$root.isInIframe() ? '/iframe' : '') + window.location = entry.url + (this.$root.isInIframe() ? '/iframe' : '') }) } else if (this.isNewTabDisplay()) { entry.marker.on('click', function() { @@ -171,7 +186,6 @@ Vue.component('BazarMap', { if (this.$scopedSlots.popupentrywithhtmlrender != undefined) { if (entry.html_render == undefined) { let url = '' - const bazarMap = this let excludeFields = '' if (this.params.popupselectedfields && this.params.popupselectedfields.length > 0) { const necessaryFieldsArray = this.params.popupselectedfields.split(',') @@ -200,30 +214,18 @@ Vue.component('BazarMap', { ) }) } - $.getJSON(url, (data) => { - Vue.set(entry, 'html_render', (data[entry.id_fiche] && data[entry.id_fiche].html_output) ? data[entry.id_fiche].html_output : 'error') - bazarMap.$nextTick(() => { - /** - * Triggers when the component is ready - * */ - bazarMap.definePopupContent(entry) + this.$root.setEntryFromUrl(entry,url) + .then(() => { + // Triggers when the component is ready + this.$nextTick(()=>this.definePopupContent(entry)) }) - }) } else { - this.$nextTick(function() { - /** - * Triggers when the component is ready - * */ - this.definePopupContent(entry) - }) + // Triggers when the component is ready + this.$nextTick(()=>this.definePopupContent(entry)) } } else if (this.$scopedSlots.popupentry != undefined) { - this.$nextTick(function() { - /** - * Triggers when the component is ready - * */ - this.definePopupContent(entry) - }) + // Triggers when the component is ready + this.$nextTick(()=>this.definePopupContent(entry)) } }, definePopupContent(entry) { @@ -232,7 +234,13 @@ Vue.component('BazarMap', { : $(this.$el).find('.popupentry-container > div').first().html() if (entry.marker.popup == undefined) { if (renderedHtml != undefined && renderedHtml.length != 0) { - entry.marker.bindPopup(renderedHtml, { keepInView: true }).openPopup() + entry.marker.bindPopup(renderedHtml, { keepInView: true }) + .on('popupopen',()=>{ + if (typeof this.$root?.loadBazarListDynamicIfNeeded === 'function'){ + this.$root.loadBazarListDynamicIfNeeded(renderedHtml) + } + }) + .openPopup() } } else { entry.marker.popup.openPopup() diff --git a/tools/bazar/presentation/javascripts/components/BazarTable.js b/tools/bazar/presentation/javascripts/components/BazarTable.js new file mode 100644 index 000000000..de12d49ea --- /dev/null +++ b/tools/bazar/presentation/javascripts/components/BazarTable.js @@ -0,0 +1,723 @@ +import SpinnerLoader from './SpinnerLoader.js' +import DynTable from './DynTable.js' +import TemplateRenderer from './TemplateRenderer.js' +import Waiter from '../Waiter.js' + +let componentName = 'BazarTable'; +let isVueJS3 = (typeof Vue.createApp == "function"); + +let componentParams = { + props: ['currentusername','params','entries','ready','root','isadmin'], + components: {SpinnerLoader,DynTable}, + data: function() { + return { + columns: [], + dynamicTableSearch: '', + extraOptions: {}, + fastSearch: false, + fields: {}, + forms: {}, + rows:{}, + uuid: null + }; + }, + computed: { + sumtranslate(){ + return TemplateRenderer.render('BazarTable',this,'sumtranslate') + } + }, + methods:{ + addRows(columns,entries,currentusername,isadmin){ + const entriesToAdd = entries.filter((entry)=>entry?.id_fiche && !(entry.id_fiche in this.rows)) + entriesToAdd.forEach((entry)=>{ + let formattedData = {} + columns.forEach((col)=>{ + if (!(typeof col.data === 'string')){ + formattedData[col.data] = '' + } else if (col.data === '==canDelete=='){ + formattedData[col.data] = !this.$root.isExternalUrl(entry) && + 'owner' in entry && + (isadmin || (currentusername.length > 0 && entry.owner == currentusername)) + } else if (['==adminsbuttons=='].includes(col.data)) { + formattedData[col.data] = '' + } else if ('firstlevel' in col && typeof col.firstlevel === 'string' && col.firstlevel.length > 0){ + formattedData[col.data] = ( + col.firstlevel in entry && + (typeof entry[col.firstlevel] === 'object') && + entry[col.firstlevel] !== null && + col.data in entry[col.firstlevel] + ) ? entry[col.firstlevel][col.data] : '' + } else if ('checkboxfield' in col && typeof col.checkboxfield === 'string' && col.checkboxfield.length > 0){ + formattedData[col.data] = ( + col.checkboxfield in entry && + 'checkboxkey' in col && + typeof entry[col.checkboxfield] === 'string' + && entry[col.checkboxfield].split(',').includes(col.checkboxkey) + ) ? 'X' : '' + } else if ('displayValOptions' in col){ + formattedData[col.data] = (col.data in entry && typeof entry[col.data] === 'string') ? { + display:entry[col.data].split(',').map((v)=>v in col.displayValOptions ? col.displayValOptions[v] : v).join(",\n"), + export: entry[col.data].split(',').map((v)=>v in col.displayValOptions ? `"${col.displayValOptions[v]}"` : v).join(','), + raw: entry[col.data].split(',').map((v)=>{return {key:v,title:v in col.displayValOptions ? col.displayValOptions[v] : v}}) + } : '' + if (formattedData[col.data] !== '' && 'externalBaseUrl' in col){ + formattedData[col.data].externalBaseUrl = col.externalBaseUrl + formattedData[col.data].export = entry[col.data].split(',').map((v)=>col.externalBaseUrl+v).join(',') + } + } else { + formattedData[col.data] = (col.data in entry && typeof entry[col.data] === 'string' ) ? entry[col.data] : '' + if (formattedData[col.data] !== '' && 'externalBaseUrl' in col){ + formattedData[col.data] = { + display:formattedData[col.data], + export:col.externalBaseUrl+formattedData[col.data], + externalBaseUrl:col.externalBaseUrl + } + } + } + }); + ['id_fiche','color','icon','url'].forEach((key)=>{ + if (!(key in formattedData)){ + formattedData[key] = entry[key] || '' + } + }) + this.$set(this.rows,entry.id_fiche,formattedData) + }) + }, + arraysEqual(a, b) { + if (a === b) return true + if (a == null || b == null || !Array.isArray(a) || !Array.isArray(b)) return false + if (a.length !== b.length) return false + + a.sort() + b.sort() + return a.every((val,idx)=>a[idx] !== b[idx]) + }, + deleteAllSelected(event){ + const uuid = this.getUuid() + multiDeleteService.updateNbSelected(`MultiDeleteModal${uuid}`) + // if something to do before showing modal + }, + getAdminsButtons(entryId,entryTitle,entryUrl,candelete){ + const isExternal =this.$root.isExternalUrl({id_fiche:entryId,url:entryUrl}) + return TemplateRenderer.render('BazarTable',this, + 'adminsbuttons', + { + entryId:'entryId', + entryTitle:'entryTitle', + entryUrl:'entryUrl', + isExternal, + candelete: [true,'true'].includes(candelete) + }, + [ + [/entryId/g,entryId], + [/entryTitle/g,entryTitle], + [/entryUrl/g,entryUrl], + ] + ) + }, + async getColumns(){ + if (this.columns.length == 0){ + const fields = await Waiter.waitFor('fields',this) + const params = await Waiter.waitFor('params',this); + let columnfieldsids = this.sanitizedParam(params,this.isAdmin,'columnfieldsids') + let defaultcolumnwidth = this.sanitizedParam(params,this.isAdmin,'defaultcolumnwidth') + if (columnfieldsids.every((id)=>id.length ==0)){ + // backup + columnfieldsids = ['bf_titre'] + } + const data = {columns:[]} + const width = defaultcolumnwidth.length > 0 ? {width:defaultcolumnwidth}: {} + if (this.sanitizedParam(params,this.isAdmin,'displayadmincol')){ + const uuid = this.getUuid() + data.columns.push({ + ...{ + data: '==canDelete==', + class: 'not-export-this-col', + orderable: false, + render: (data,type,row)=>{ + return type === 'display' ? this.getDeleteChekbox(uuid,row.id_fiche,!data) : '' + }, + title: this.getDeleteChekboxAll(uuid,'top'), + footer: this.getDeleteChekboxAll(uuid,'bottom') + }, + ...width + }) + data.columns.push({ + ...{ + data: '==adminsbuttons==', + orderable: false, + class: 'horizontal-admins-btn not-export-this-col', + render: (data,type,row)=>{ + return type === 'display' ? this.getAdminsButtons(row.id_fiche,row.bf_titre || '',row.url || '',row['==canDelete==']) : '' + }, + title: '', + footer: '' + }, + ...width + }) + } + const options={ + checkboxfieldsincolumns: this.sanitizedParam(params,this.isAdmin,'checkboxfieldsincolumns'), + columnswidth: this.sanitizedParam(params,this.isAdmin,'columnswidth'), + defaultcolumnwidth, + sumfieldsids: this.sanitizedParam(params,this.isAdmin,'sumfieldsids'), + visible:true, + printable:true, + addLink:false, + columntitles:this.sanitizedParam(params,this.isAdmin,'columntitles'), + displayimagesasthumbnails:this.sanitizedParam(params,this.isAdmin,'displayimagesasthumbnails'), + displayvaluesinsteadofkeys:this.sanitizedParam(params,this.isAdmin,'displayvaluesinsteadofkeys'), + baseIdx: data.columns.length + } + let fieldsToRegister = ['date_creation_fiche','date_maj_fiche','owner','id_typeannonce','url'] + columnfieldsids.forEach((id,idx)=>{ + if (id.length >0 && id in fields){ + this.registerField(data,{ + ...options, + ...{ + field:fields[id], + visible:true, + printable:true, + addLink:(idx === 0 && !columnfieldsids.includes('bf_titre')) || id === 'bf_titre' + } + }) + } else if (fieldsToRegister.includes(id)) { + fieldsToRegister = fieldsToRegister.filter((e)=>e!=id) + this.registerSpecialFields([id],false,params,data,options) + } + }) + if (await this.sanitizedParamAsync('exportallcolumns')){ + Object.keys(fields).forEach((id)=>{ + // append fields not displayed + if (!columnfieldsids.includes(id)){ + this.registerField(data,{ + ...options, + ...{ + field:fields[id], + visible:false, + printable:false, + addLink:false + } + }) + } + }) + } + + this.registerSpecialFields(fieldsToRegister,true,params,data,options) + const champField = await this.sanitizedParamAsync('champ') + const ordreField = await this.sanitizedParamAsync('ordre') + let order = (ordreField === 'desc') ? 'desc' :'asc' + let firstColumnOrderable = 0 + for (let index = 0; index < data.columns.length; index++) { + if ('orderable' in data.columns[index] && !data.columns[index].orderable){ + firstColumnOrderable += 1 + } else { + break + } + } + let columnToOrder = firstColumnOrderable + if (typeof champField === 'string' && champField.length > 0){ + for (let index = 0; index < data.columns.length; index++) { + if ((!('orderable' in data.columns[index]) || data.columns[index].orderable) && data.columns[index].data == champField){ + columnToOrder = index + } + } + } + this.extraOptions = { + order: [[columnToOrder,order]] + } + this.columns = data.columns + } + return this.columns + }, + getDeleteChekbox(targetId,itemId,disabled = false){ + return TemplateRenderer.render( + 'BazarTable', + this, + 'deletecheckbox', + {targetId:'targetId',itemId:'itemId',disabled}, + [ + [/targetId/g,targetId], + [/itemId/g,itemId] + ] + ) + }, + getDeleteChekboxAll(targetId,selectAllType){ + return TemplateRenderer.render( + 'BazarTable', + this, + 'deletecheckboxall', + {}, + [ + [/targetId/g,targetId], + [/selectAllType/g,selectAllType] + ]) + }, + async getJson(url){ + return await fetch(url) + .then((response)=>{ + if (response.ok){ + return response.json() + } else { + throw new Error(`reponse was not ok when getting "${url}"`) + } + }) + }, + getUuid(){ + if (this.uuid === null){ + this.uuid = crypto.randomUUID() + } + return this.uuid + }, + manageError(error){ + if (wiki.isDebugEnabled){ + console.error(error) + } + return null + }, + registerField(data,{ + field, + checkboxfieldsincolumns=false, + sumfieldsids=[], + visible=true, + printable=true, + addLink=false, + columnswidth={}, + defaultcolumnwidth='', + columntitles={}, + baseIdx=0, + displayimagesasthumbnails=false, + displayvaluesinsteadofkeys=false + }){ + if (typeof field.propertyname === 'string' && field.propertyname.length > 0){ + const className = (printable ? '' : 'not-printable')+(sumfieldsids.includes(field.propertyname) ? ' sum-activated': '') + const width = field.propertyname in columnswidth ? {width:columnswidth[field.propertyname]} : (defaultcolumnwidth.length > 0 ? {width:defaultcolumnwidth}: {}) + const titleIdx = data.columns.length - baseIdx + if (typeof field.type === 'string' && field.type === 'map'){ + data.columns.push({ + ...{ + class: className, + data: field.latitudeField, + title: columntitles[field.latitudeField] || columntitles[titleIdx] || TemplateRenderer.getTemplateFromSlot('BazarTable',this,'latitudetext'), + firstlevel: field.propertyname, + render: this.renderCell({addLink,idx:titleIdx}), + footer: '', + visible + }, + ...width + }) + data.columns.push({ + ...{ + class: className, + data: field.longitudeField, + title: columntitles[field.longitudeField] || columntitles[titleIdx+1] || TemplateRenderer.getTemplateFromSlot('BazarTable',this,'longitudetext'), + firstlevel: field.propertyname, + render: this.renderCell({addLink}), + footer: '', + visible + }, + ...width + }) + } else if (checkboxfieldsincolumns && + typeof field.type === 'string' && + ['checkboxfiche','checkbox'].includes(field.type) && + typeof field.options == 'object') { + Object.keys(field.options).forEach((optionKey,idx)=>{ + const name = `${field.propertyname}-${optionKey}` + data.columns.push({ + ...{ + class: className, + data: name, + title: columntitles[name] || + ( + field.propertyname in columntitles + ? `${columntitles[field.propertyname]} - ${field.options[optionKey] || optionKey}` + : undefined + ) || + columntitles[titleIdx+idx] || + `${field.label || field.propertyname} - ${field.options[optionKey] || optionKey}`, + checkboxfield: field.propertyname, + render: this.renderCell({addLink,idx:titleIdx+idx}), + checkboxkey: optionKey, + footer: '', + visible + }, + ...width + }) + }) + } else { + const fieldtype = ['link','email','checkboxfiche','listefiche','radiofiche'].includes(field.type) ? field.type: ((field.type === 'image' && displayimagesasthumbnails)?'image':'') + const fieldName = (fieldtype === 'image' && displayimagesasthumbnails) ? field.propertyname : '' + const displayValOptions = (displayvaluesinsteadofkeys && 'options' in field && typeof field.options === 'object') + ? { + displayValOptions:field.options + } + : {} + if ('linkedObjectName' in field && field.linkedObjectName.match(/^https?:\/\//)){ + displayValOptions.externalBaseUrl = field.linkedObjectName.match(/^(https?:\/\/.*)api\/(forms|entries).*$/) + ? field.linkedObjectName.replace(/^(https?:\/\/.*)api\/(forms|entries).*$/,"$1") + : '' + } + data.columns.push({ + ...{ + class: className, + data: field.propertyname, + title: columntitles[field.propertyname] || columntitles[titleIdx] || field.label || field.propertyname, + render: this.renderCell({fieldtype,addLink,idx:titleIdx,fieldName}), + footer: '', + visible + }, + ...width, + ...displayValOptions + }) + } + } + }, + registerSpecialFields(fieldsToRegister,test,params,data,options){ + if (Array.isArray(fieldsToRegister) && fieldsToRegister.length > 0){ + const parameters = { + 'date_creation_fiche': { + paramName: 'displaycreationdate', + slotName: 'creationdatetranslate' + }, + 'date_maj_fiche': { + paramName: 'displaylastchangedate', + slotName: 'modifiydatetranslate' + }, + 'owner': { + paramName: 'displayowner', + slotName: 'ownertranslate' + }, + 'id_typeannonce': { + paramName: '', + slotName: 'formidtranslate' + }, + 'url': { + paramName: '', + slotName: 'urltranslate' + }, + } + fieldsToRegister.forEach((propertyName)=>{ + if (propertyName in parameters){ + const canPushColumn = + (parameters[propertyName].slotName.length > 0) + ? ( + test + ? ( + parameters[propertyName].paramName.length > 0 && + this.sanitizedParam(params,this.isadmin,parameters[propertyName].paramName) + ) + : true + ) : false + if (canPushColumn){ + const internalOptions = { + data: propertyName, + title: options.columntitles[propertyName] || TemplateRenderer.getTemplateFromSlot('BazarTable',this,parameters[propertyName].slotName), + footer: '' + } + if (propertyName === 'url'){ + internalOptions.render = this.renderCell({addLink:true}) + } + data.columns.push(internalOptions) + } + } + }) + } + }, + removeRows(newIds){ + let entryIdsToRemove = Object.keys(this.rows).filter((id)=>!newIds.includes(id)) + entryIdsToRemove.forEach((id)=>{ + if (id in this.rows){ + this.$delete(this.rows,id) + } + }) + }, + renderCell({fieldtype='',fieldName='',addLink=false,idx=-1}){ + return (data,type,row)=>{ + if (type === 'sort' || type === 'filter'){ + return (typeof data === 'object' && 'export' in data) ? data.export : data + } + const formattedData = (typeof data === 'object' && data !== null && 'display' in data) ? data.display : (data === null ? '' : String(data)) + let anchorData = 'anchorData' + let anchorImageSpecificPart = '' + let anchorImageOther = '' + let anchorImageExt = '' + let anchorOtherEntryId = '' + if (fieldtype === 'image'){ + if(formattedData.length > 0){ + let regExp = new RegExp(`^(${row.id_fiche}_${fieldName}_)(.*)_(\\d{14})_(\\d{14})\\.([^.]+)$`) + if (regExp.test(formattedData)) { + let anchorImageDate1 = '' + let anchorImageDate2 = ''; + [,,anchorImageSpecificPart,anchorImageDate1,anchorImageDate2,anchorImageExt] = formattedData.match(regExp) + anchorImageOther = `${anchorImageDate1}_${anchorImageDate2}` + anchorData = 'entryIdAnchor_fieldNameAnchor_anchorImageSpecificPart_anchorImageOther.anchorImageExt' + } else { + regExp = new RegExp(`^(${row.id_fiche}_${fieldName}_)(.*)\\.([^.]+)$`) + if (regExp.test(formattedData)) { + [,,anchorImageSpecificPart,anchorImageExt] = formattedData.match(regExp) + anchorData = 'entryIdAnchor_fieldNameAnchor_anchorImageSpecificPart.anchorImageExt' + } else { + // maybe from other entry + regExp = new RegExp(`^([A-Za-z0-9-_]+)(_${fieldName}_)(.*)_(\\d{14})_(\\d{14})\\.([^.]+)$`) + if (regExp.test(formattedData)) { + let anchorImageDate1 = '' + let anchorImageDate2 = ''; + [,anchorOtherEntryId,,anchorImageSpecificPart,anchorImageDate1,anchorImageDate2,anchorImageExt] = formattedData.match(regExp) + anchorImageOther = `${anchorImageDate1}_${anchorImageDate2}` + anchorData = 'anchorOtherEntryId_fieldNameAnchor_anchorImageSpecificPart_anchorImageOther.anchorImageExt' + } else { + // last possible format + regExp = new RegExp('^(.*)\\.([^.]+)$') + if (regExp.test(formattedData)) { + [,anchorImageSpecificPart,anchorImageExt] = formattedData.match(regExp) + anchorData = 'anchorImageSpecificPart.anchorImageExt' + } else { + anchorImageSpecificPart = formattedData + anchorData = 'anchorImageSpecificPart' + } + } + } + } + } else { + anchorData = '' + } + } else if (typeof fieldtype === 'string' && ['listefiche','radiofiche','checkboxfiche'].includes(fieldtype) && formattedData.length > 0) { + const intFieldType = (typeof data === 'object' && data !== null && 'externalBaseUrl' in data) + ? ( + data.externalBaseUrl.length > 0 + ? 'urlnewwindow' + : '' + ): 'urlmodal' + const formattedArray = (typeof data === 'object' && data !== null && 'raw' in data) + ? data.raw + : formattedData.split(',').map((key)=>{return {key,title:key}}) + return formattedArray.map(({key,title})=>{ + return this.renderCell({fieldtype:intFieldType,fieldName,idx})({display:title},type,{ + ...row, + ...{ + id_fiche:key, + url:(intFieldType === 'urlmodal') + ? wiki.url(`${key}/iframe`) + :( + intFieldType === 'urlnewwindow' + ? data.externalBaseUrl + key + : '' + ) + } + }).trim() + }).join(',\n') + } + return TemplateRenderer.render('BazarTable',this,'rendercell',{ + anchorData, + fieldtype, + addLink, + entryId:'entryIdAnchor', + fieldName, + url:'anchorUrl', + color: (idx === 0 && row?.color && row.color.length > 0) ? 'lightslategray' : '', + icon: (idx === 0 && row?.icon && row.icon.length > 0) ? 'iconAnchor' : '' + }, + [ + [/anchorData/g,formattedData.replace(/\n/g,'
        ')], + [/entryIdAnchor/g,row?.id_fiche], + [/anchorUrl/g,row?.url], + [/lightslategray/g,row?.color], + [/iconAnchor/g,row?.icon], + [/fieldNameAnchor/g,fieldName], + [/anchorImageSpecificPart/g,anchorImageSpecificPart], + [/anchorImageOther/g,anchorImageOther], + [/anchorImageExt/g,anchorImageExt], + [/anchorOtherEntryId/g,anchorOtherEntryId] + ]) + } + }, + async sanitizedParamAsync(name){ + return this.sanitizedParam(await Waiter.waitFor('params',this),this.isadmin,name) + }, + sanitizedParam(params,isAdmin,name){ + switch (name) { + case 'displayadmincol': + case 'displaycreationdate': + case 'displaylastchangedate': + case 'displayowner': + const paramValue = ( + name in params && + typeof params[name] === 'string' && + ['yes','onlyadmins'].includes(params[name])) + ? params[name] + : false + switch (paramValue) { + case 'onlyadmins': + return [1,true,'1','true'].includes(isAdmin) + case 'yes': + return true + case false: + default: + return false + } + case 'checkboxfieldsincolumns': + // default true + return name in params ? !([false,0,'0','false'].includes(params[name])) : true + case 'displayvaluesinsteadofkeys': + case 'exportallcolumns': + case 'displayimagesasthumbnails': + // default false + return name in params ? [true,1,'1','true'].includes(params[name]) : false + + case 'columnfieldsids': + case 'sumfieldsids': + return (name in params && typeof params[name] === 'string') + ? params[name].split(',').map((v)=>v.trim()) + : [] + case 'columntitles': + const columntitlesastab = (name in params && typeof params[name] === 'string') + ? params[name].split(',').map((v)=>v.trim()) + : [] + const columntitles = {} + columntitlesastab.forEach((val,idx)=>{ + const match = val.match(/^([A-Za-z0-9\-_]+)=(.+$)/) + if (match){ + const [,key,title] = match + columntitles[key] = title + } else { + columntitles[idx] = val + } + }) + return columntitles + case 'sumfieldsids': + return (name in params && typeof params[name] === 'string') + ? params[name].split(',').map((v)=>v.trim()) + : [] + case 'columnswidth': + const columnswidth = {} + if ( + name in params && + typeof params[name] === 'string' + ) { + params[name].split(',').forEach((extract)=>{ + const [name,value] = extract.split('=',2) + if (name && value && name.length > 0 && value.length > 0){ + columnswidth[name] = value + } + }) + } + return columnswidth + case 'defaultcolumnwidth': + return name in params ? String(params[name]) : '' + default: + return params[name] || null + } + }, + startDelete(event){ + if (!multiDeleteService.isRunning) { + multiDeleteService.isRunning = true + const elem = event.target + if (elem) { + $(elem).attr('disabled', 'disabled') + multiDeleteService.deleteItems(elem) + } + } + }, + async updateEntries(newEntries,newIds){ + const columns = await this.getColumns() + const currentusername = this.currentusername + this.removeRows(newIds) + this.addRows(columns,newEntries,currentusername,this.isadmin) + }, + updateFieldsFromRoot(){ + this.fields = this.$root.formFields + if (Object.keys(this.fields).length > 0){ + Waiter.resolve('fields') + } + } + }, + mounted(){ + $(isVueJS3 ? this.$el.parentNode : this.$el).on('dblclick',function(e) { + return false; + }); + this.updateFieldsFromRoot() + window.urlImageResizedOnError = this.$root.urlImageResizedOnError + this.$root.$watch('isLoading',(isLoading)=>{ + if(!isLoading){ + this.fastSearch = false + } + }) + this.$root.$watch('search',(newSearch)=>{ + this.fastSearch = true + this.dynamicTableSearch = newSearch + }) + this.$root.$watch('searchedEntries',()=>{ + this.dynamicTableSearch = '' + }) + }, + watch: { + entries(newVal, oldVal) { + this.updateFieldsFromRoot() // because updated in same time than entries (but not reactive) + const sanitizedNewVal = newVal.filter((e)=>(typeof e === 'object' && e !== null && 'id_fiche' in e)) + const newIds = sanitizedNewVal.map((e) => e.id_fiche) + const oldIds = oldVal.map((e) => e.id_fiche || '').filter((e)=>(typeof e === 'string' && e.length > 0)) + if (!this.arraysEqual(newIds, oldIds)) { + this.updateEntries(sanitizedNewVal,newIds).catch(this.manageError) + } + }, + params() { + Waiter.resolve('params') + }, + ready(){ + this.sanitizedParamAsync('displayadmincol').then((displayadmincol)=>{ + if (displayadmincol){ + $(this.$refs.buttondeleteall).find(`#MultiDeleteModal${this.getUuid()}`).first().each(function(){ + $(this).on('shown.bs.modal', function() { + multiDeleteService.initProgressBar($(this)) + $(this).find('.modal-body .multi-delete-results').html('') + $(this).find('button.start-btn-delete-all').removeAttr('disabled') + }) + $(this).on('hidden.bs.modal', function() { + multiDeleteService.modalClosing($(this)) + }) + }) + } + }).catch(this.manageError) + } + }, + template: ` +
        + + + + + +
        + +
        + + +
        + ` +}; + +if (isVueJS3){ + if (window.hasOwnProperty('bazarVueApp')){ // bazarVueApp must be defined into bazar-list-dynamic + if (!bazarVueApp.config.globalProperties.hasOwnProperty('wiki')){ + bazarVueApp.config.globalProperties.wiki = wiki; + } + if (!bazarVueApp.config.globalProperties.hasOwnProperty('_t')){ + bazarVueApp.config.globalProperties._t = _t; + } + window.bazarVueApp.component(componentName,componentParams); + } +} else { + if (!Vue.prototype.hasOwnProperty('wiki')){ + Vue.prototype.wiki = wiki; + } + if (!Vue.prototype.hasOwnProperty('_t')){ + Vue.prototype._t = _t; + } + Vue.component(componentName,componentParams); +} \ No newline at end of file diff --git a/tools/bazar/presentation/javascripts/components/BazarTableEntrySelector.js b/tools/bazar/presentation/javascripts/components/BazarTableEntrySelector.js new file mode 100644 index 000000000..6f07ef1b2 --- /dev/null +++ b/tools/bazar/presentation/javascripts/components/BazarTableEntrySelector.js @@ -0,0 +1,27 @@ +Vue.component('BazarTableEntrySelector', { + props: ['params', 'entries'], + data() { + return {} + }, + computed: { + entriesToDisplay(){ + return (this.params !== null && typeof this.params === 'object' && 'tablewith' in this.params && this.params.tablewith === 'no-geolocation') + ? this.entries.filter((e)=>typeof e === 'object' && e !== null && ( + !('bf_latitude' in e) || + !('bf_longitude' in e) || + e.bf_latitude === null || + e.bf_longitude === null || + String(e.bf_longitude).length === 0 || + String(e.bf_latitude).length === 0 || + Number(e.bf_longitude) === 0 || + Number(e.bf_latitude) === 0 + )) + : this.entries + } + }, + template: ` +
        + +
        + ` +}) \ No newline at end of file diff --git a/tools/bazar/presentation/javascripts/components/DynTable.js b/tools/bazar/presentation/javascripts/components/DynTable.js new file mode 100644 index 000000000..540a63d25 --- /dev/null +++ b/tools/bazar/presentation/javascripts/components/DynTable.js @@ -0,0 +1,305 @@ +import Waiter from '../Waiter.js' + +let isVueJS3 = (typeof Vue.createApp == "function"); + +export default { + props: { + columns: { + type: Array, + required: true + }, + externalSearch: { + type: String, + default: '' + }, + extraOptions: { + type: Object + }, + forceDisplayTotal:{ + type: Boolean, + default: false + }, + forceRefresh:{ + type: Boolean, + default: false + }, + rows: { + type: Object, + required: true + }, + uuid: { + type: String, + required: true + } + }, + data: function() { + return { + dataTable: null, + displayedRows: {}, + templatesForRendering: {}, + }; + }, + computed:{ + element(){ + return isVueJS3 ? this.$el.parentNode : this.$el + }, + showFooter(){ + return this.forceDisplayTotal || this.columns.some((col)=>col?.class?.match(/sum-activated/)) + } + }, + methods:{ + addRows(dataTable,columns,rows){ + const formattedDataList = [] + Object.keys(rows).forEach((id)=>{ + if (id in this.displayedRows){ + return + } + this.displayedRows[id] = rows[id] + const formattedData = {} + formattedData.id = id + columns.forEach((col)=>{ + if (!(typeof col.data === 'string')){ + return + } + formattedData[col.data] = rows[id]?.[col.data] ?? '' + }); + // extra cols + Object.keys(rows[id]).forEach((k)=>{ + if (!(k in formattedData)){ + formattedData[k] = rows[id][k] + } + }) + formattedDataList.push(formattedData) + + }) + dataTable.rows.add(formattedDataList) + }, + async getColumns(){ + return await Waiter.waitFor('columns',this).catch((error)=>{ + this.manageError(error) + return [] + }) + }, + getDatatableOptions(){ + const buttons = [] + DATATABLE_OPTIONS.buttons.forEach((option) => { + buttons.push({ + ...option, + ...{ footer: true }, + ...{ + exportOptions: { + ...( + option.extend != 'print' + ? { + orthogonal: 'sort', // use sort data for export + columns(idx, data, node) { + return !$(node).hasClass('not-export-this-col') + } + } + : { + columns(idx, data, node) { + const isVisible = $(node).data('visible') + return !$(node).hasClass('not-export-this-col') && ( + isVisible == undefined || isVisible != false + ) && !$(node).hasClass('not-printable') + } + }), + ...{ + format: { + footer: (data,column)=>{ + return this.dataTable.footer().to$().find(`> tr > th:nth-child(${column+1})`).text() + } + } + } + } + } + }) + }) + const options = {...DATATABLE_OPTIONS} + options.searching = true // allow search but ue dom option not display filter + let dom = this.getTemplateFromSlot('dom',{}) + if (dom && dom.length > 0){ + options.dom = dom + // instead of default lfrtip , with f for filter, see help : https://datatables.net/reference/option/dom + // and removing filter + } + options.footerCallback = ()=>{ + this.updateFooter() + } + options.buttons = buttons + return options + }, + async getDatatable(){ + if (this.dataTable === null){ + // create dataTable + const columns = await this.getColumns() + this.dataTable = $(this.$refs.dataTable).DataTable({ + ...this.getDatatableOptions(), + ...{ + columns: columns, + "scrollX": true, + }, + ...{ + ...this.extraOptions + } + }) + $(this.dataTable.table().node()).prop('id',this.getUuid()) + if (this.showFooter){ + this.initFooter(columns) + } + } + return this.dataTable + }, + getTemplateFromSlot(name,params){ + const key = name+'-'+JSON.stringify(params) + if (!(key in this.templatesForRendering)){ + if (name in this.$scopedSlots){ + const slot = this.$scopedSlots[name] + const constructor = Vue.extend({ + render: function(h){ + return h('div',{},slot(params)) + } + }) + const instance = new constructor() + instance.$mount() + let outerHtml = ''; + for (let index = 0; index < instance.$el.childNodes.length; index++) { + outerHtml += instance.$el.childNodes[index].outerHTML || instance.$el.childNodes[index].textContent + } + this.templatesForRendering[key] = outerHtml + } else { + this.templatesForRendering[key] = '' + } + } + return this.templatesForRendering[key] + }, + getUuid(){ + if (this.uuid === null){ + return crypto.randomUUID() + } + return this.uuid + }, + initFooter(columns){ + const footerNode = this.dataTable.footer().to$() + if (footerNode[0] !== null){ + const footer = $('') + let displayTotal = columns.some((col)=>col?.class?.match(/sum-activated/)) + columns.forEach((col)=>{ + let newElem = $('') + if ('footer' in col && col.footer.length > 0){ + const element = $(col.footer) + const isTh = $(element).prop('tagName') === 'TH' + newElem = isTh ? element : $('').append(element) + } else if (displayTotal && !col?.class?.match(/not-export-this-col/)) { + displayTotal = false + newElem = $('').text(this.render('sumtranslate',{},'Total')) + } + footer.append(newElem) + }) + footerNode.html(footer) + } + }, + manageError(error){ + if (wiki.isDebugEnabled){ + console.error(error) + } + return null + }, + removeRows(dataTable,newIds){ + let entryIdsToRemove = Object.keys(this.displayedRows).filter((id)=>!newIds.includes(id)) + entryIdsToRemove.forEach((id)=>{ + if (id in this.displayedRows){ + this.$delete(this.displayedRows,id) + } + }) + dataTable.rows((idx,data,node)=>{ + return data?.id === undefined || entryIdsToRemove.includes(data?.id) + }).remove() + }, + render(name,replacement = {},defaultContent=null,params={}){ + let output = this.getTemplateFromSlot(name,params) + Object.entries(replacement).forEach(([anchor,replacement]) => { + output = output.replace(anchor,replacement) + }); + if (output.length === 0 && defaultContent && defaultContent.length > 0){ + output = defaultContent + } + return output + }, + sanitizeValue(val) { + let sanitizedValue = val + if (Object.prototype.toString.call(val) === '[object Object]') { + // because if orthogonal data is defined, value is an object + sanitizedValue = val.display || '' + } + return (isNaN(sanitizedValue)) ? 1 : Number(sanitizedValue) + }, + async updateRows(newVal){ + const newIds = Object.keys(newVal) + const dataTable = await this.getDatatable() + this.removeRows(dataTable,newIds) + this.addRows(dataTable,this.columns,newVal) + this.dataTable.draw() + }, + updateFastSearch(newSearch){ + if (this.dataTable !== null){ + this.dataTable.search(newSearch).draw() + } + }, + updateFooter(){ + if (this.dataTable !== null){ + const activatedRows = [] + this.dataTable.rows({ search: 'applied' }).every(function() { + activatedRows.push(this.index()) + }) + this.dataTable.columns('.sum-activated').every((indexCol) => { + let col = this.dataTable.column(indexCol) + let sum = 0 + activatedRows.forEach((indexRow) => { + const value = this.dataTable.row(indexRow).data()[col.dataSrc()] + sum += this.sanitizeValue(Number(value)) + }) + this.dataTable.footer().to$().find(`> tr > th:nth-child(${indexCol+1})`).html(sum) + }) + } + } + }, + mounted(){ + $(this.element).on('dblclick',function(e) { + return false + }) + }, + watch: { + rows:{ + deep: true, + handler(newVal) { + this.updateRows(newVal).catch(this.manageError) + } + }, + columns(newVal){ + if (Array.isArray(newVal) && newVal.length > 0){ + Waiter.resolve('columns') + } + }, + externalSearch(newSearch){ + this.updateFastSearch(newSearch) + }, + forceRefresh(){ + // whatever is the value toogle + if (this.dataTable !== null){ + this.removeRows(this.dataTable,[]) + this.addRows(this.dataTable,this.columns,this.rows) + this.dataTable.draw() + } + } + }, + template: ` +
        + + + + +
        +
        + ` +}; \ No newline at end of file diff --git a/tools/bazar/presentation/javascripts/components/PopupEntryField.js b/tools/bazar/presentation/javascripts/components/PopupEntryField.js index 937240b42..76b39ff71 100644 --- a/tools/bazar/presentation/javascripts/components/PopupEntryField.js +++ b/tools/bazar/presentation/javascripts/components/PopupEntryField.js @@ -44,6 +44,8 @@ export default { return values.length == 0 ? '' : (values.length == 1 ? values[0] : values) case 'email': return '' // security + case 'link': + return value ? `${value}`: '' default: return value } @@ -66,7 +68,6 @@ export default {

        { + const key = name+'-'+JSON.stringify(params) + if (!(id in templatesForRendering)){ + templatesForRendering[id] = {} + } + if (!(key in templatesForRendering[id])){ + if (name in base.$scopedSlots){ + const slot = base.$scopedSlots[name] + const constructor = Vue.extend({ + render: function(h){ + return h('div',{},slot(params)) + } + }) + const instance = new constructor() + instance.$mount() + let outerHtml = ''; + for (let index = 0; index < instance.$el.childNodes.length; index++) { + outerHtml += instance.$el.childNodes[index].outerHTML || instance.$el.childNodes[index].textContent + } + templatesForRendering[id][key] = outerHtml + } else { + templatesForRendering[id][key] = '' + } + } + return templatesForRendering[id][key] +} + +const render = (id,base,name,params = {},replacement = [])=>{ + let output = getTemplateFromSlot(id,base,name,params) + replacement.forEach(([anchor,replacement]) => { + output = output.replace(anchor,replacement) + }) + return output +} + +export default {getTemplateFromSlot,render} \ No newline at end of file diff --git a/tools/bazar/presentation/javascripts/conditionschecking/form-edit-template.js b/tools/bazar/presentation/javascripts/conditionschecking/form-edit-template.js deleted file mode 100644 index 0bda4de6c..000000000 --- a/tools/bazar/presentation/javascripts/conditionschecking/form-edit-template.js +++ /dev/null @@ -1,80 +0,0 @@ -typeUserAttrs = { - ...typeUserAttrs, - ...{ - conditionschecking: { - condition: { - label: _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_LABEL'), - value: '' - }, - clean: { - label: _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_CLEAN_LABEL'), - options: { - ' ': _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_CLEAN_OPTION'), - noclean: _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_NOCLEAN_OPTION') - } - } - } - } -} - -templates = { - ...templates, - ...{ - conditionschecking(field) { - return { - field: '', - onRender() { - templateHelper.prependHint(field, _t('BAZ_FORM_CONDITIONSCHEKING_HINT', { '\\n': '
        ' })) - templateHelper.defineLabelHintForGroup(field, 'noclean', _t('BAZ_FORM_CONDITIONSCHEKING_NOCLEAN_HINT')) - } - } - } - } -} - -yesWikiMapping = { - ...yesWikiMapping, - ...{ - conditionschecking: { - ...defaultMapping, - ...{ - 1: 'condition', - 2: 'clean', - 5: '', - 8: '', - 9: '' - } - } - } -} - -typeUserDisabledAttrs = { - ...typeUserDisabledAttrs, - ...{ conditionschecking: ['required', 'value', 'name', 'label'] } -} - -inputSets.push( - { - label: _t('BAZ_FORM_EDIT_CONDITIONCHECKING_LABEL'), - name: 'conditionschecking', - icon: '', - fields: [ - { - type: 'conditionschecking', - label: _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_LABEL') - }, - { - type: 'labelhtml', - label: _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_END'), - content_saisie: `
        ` - } - ] - } -) - -fields.push({ - label: _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_LABEL'), - name: 'conditionschecking', - attrs: { type: 'conditionschecking' }, - icon: '' -}) diff --git a/tools/bazar/presentation/javascripts/form-edit-template.js b/tools/bazar/presentation/javascripts/form-edit-template.js deleted file mode 100644 index a72e26b6c..000000000 --- a/tools/bazar/presentation/javascripts/form-edit-template.js +++ /dev/null @@ -1,1639 +0,0 @@ -var $formBuilderTextInput = $('#form-builder-text') -var $formBuilderContainer = $('#form-builder-container') -let formBuilder - -// When user add manuall via wikiCode a list or a formId that does not exist, keep the value -// so it can be added the select option list -var listAndFormUserValues = {} -// Fill the listAndFormUserValues -var text = $formBuilderTextInput.val().trim() -var textFields = text.split('\n') -for (var i = 0; i < textFields.length; i++) { - const textField = textFields[i] - const fieldValues = textField.split('***') - if (fieldValues.length > 1) { - const wikiType = fieldValues[0] - if ( - [ - 'checkboxfiche', - 'checkbox', - 'liste', - 'radio', - 'listefiche', - 'radiofiche' - ].indexOf(wikiType) > -1 - && fieldValues[1] - && !(fieldValues[1] in formAndListIds) - ) { - listAndFormUserValues[fieldValues[1]] = fieldValues[1] - } - } -} -// Custom fields to add to form builder -var fields = [ - { - label: _t('BAZ_FORM_EDIT_TEXTAREA_LABEL'), - name: 'textarea', - attrs: { type: 'textarea' }, - icon: - '' - }, - { - label: _t('BAZ_FORM_EDIT_SELECT_LABEL'), - name: 'select', - attrs: { type: 'select' }, - icon: - '' - }, - { - label: _t('BAZ_FORM_EDIT_RADIO_LABEL'), - name: 'radio-group', - attrs: { type: 'radio-group' }, - icon: - '' - }, - { - label: _t('BAZ_FORM_EDIT_CHECKBOX_LABEL'), - name: 'checkbox-group', - attrs: { type: 'checkbox-group' }, - icon: - '' - }, - { - label: _t('BAZ_FORM_EDIT_TEXT_LABEL'), - name: 'text', - attrs: { type: 'text' }, - icon: - '' - }, - { - label: _t('BAZ_FORM_EDIT_URL_LABEL'), - name: 'url', - attrs: { type: 'url' }, - icon: '' - }, - { - label: _t('BAZ_FORM_EDIT_GEO_LABEL'), - name: 'map', - attrs: { type: 'map' }, - icon: '' - }, - { - label: _t('BAZ_FORM_EDIT_IMAGE_LABEL'), - name: 'image', - attrs: { type: 'image' }, - icon: '' - }, - { - label: _t('BAZ_FORM_EDIT_EMAIL_LABEL'), - name: 'champs_mail', - attrs: { type: 'champs_mail' }, - icon: '' - }, - { - label: _t('BAZ_FORM_EDIT_TAGS_LABEL'), - name: 'tags', - attrs: { type: 'tags' }, - icon: '' - }, - { - label: _t('BAZ_FORM_EDIT_SUBSCRIBE_LIST_LABEL'), - name: 'inscriptionliste', - attrs: { type: 'inscriptionliste' }, - icon: '' - }, - { - label: _t('BAZ_FORM_EDIT_CUSTOM_HTML_LABEL'), - name: 'labelhtml', - attrs: { type: 'labelhtml' }, - icon: '' - }, - { - label: _t('BAZ_FORM_EDIT_ACL_LABEL'), - name: 'acls', - attrs: { type: 'acls' }, - icon: '' - }, - { - label: _t('BAZ_FORM_EDIT_METADATA_LABEL'), - name: 'metadatas', - attrs: { type: 'metadatas' }, - icon: '' - }, - { - label: 'Bookmarklet', - name: 'bookmarklet', - attrs: { type: 'bookmarklet' }, - icon: '' - }, - { - label: _t('BAZ_FORM_EDIT_LINKEDENTRIES_LABEL'), - name: 'listefichesliees', - attrs: { type: 'listefichesliees' }, - icon: '' - }, - { - label: _t('BAZ_FORM_EDIT_USERS_WIKINI_LABEL'), - name: 'utilisateur_wikini', - attrs: { type: 'utilisateur_wikini' }, - icon: '' - }, - { - name: 'collaborative_doc', - attrs: { type: 'collaborative_doc' } - }, - { - label: _t('BAZ_FORM_EDIT_TITLE_LABEL'), - name: 'titre', - attrs: { type: 'titre' }, - icon: '' - }, - { - label: _t('BAZ_FORM_EDIT_CUSTOM_LABEL'), - name: 'custom', - attrs: { type: 'custom' }, - icon: '' - }, - { - label: _t('BAZ_FORM_EDIT_TABS'), - name: 'tabs', - attrs: { type: 'tabs' }, - icon: '' - }, - { - label: _t('BAZ_FORM_EDIT_TABCHANGE'), - name: 'tabchange', - attrs: { type: 'tabchange' }, - icon: '' - }, - { - label: _t('BAZ_REACTIONS_FIELD'), - name: "reactions", - attrs: { type: "reactions" }, - icon: '', - } -] - -// Some attributes configuration used in multiple fields -var visibilityOptions = { - ' * ': _t('EVERYONE'), - ' + ': _t('IDENTIFIED_USERS'), - ' % ': _t('BAZ_FORM_EDIT_OWNER_AND_ADMINS'), - '@admins': _t('MEMBER_OF_GROUP', { groupName: 'admin' }) -} -// create list of groups -var formattedGroupList = [] -if (groupsList && groupsList.length > 0) { - const groupsListLen = groupsList.length - for (i = 0; i < groupsListLen; ++i) { - if (groupsList[i] !== 'admins') { - formattedGroupList[`@${groupsList[i]}`] = _t('MEMBER_OF_GROUP', { groupName: groupsList[i] }) - } - } -} - -var aclsOptions = { - ...visibilityOptions, - ...{ - user: - _t('BAZ_FORM_EDIT_USER') - }, - ...formattedGroupList -} -var aclsCommentOptions = { - ...{ 'comments-closed': _t('BAZ_FORM_EDIT_COMMENTS_CLOSED') }, - ...visibilityOptions, - ...{ user: _t('BAZ_FORM_EDIT_USER') }, - ...formattedGroupList -} -var readConf = { label: _t('BAZ_FORM_EDIT_CAN_BE_READ_BY'), options: { ...visibilityOptions, ...formattedGroupList }, multiple: true } -var writeconf = { label: _t('BAZ_FORM_EDIT_CAN_BE_WRITTEN_BY'), options: { ...visibilityOptions, ...formattedGroupList }, multiple: true } -var searchableConf = { - label: _t('BAZ_FORM_EDIT_SEARCH_LABEL'), - options: { '': _t('NO'), 1: _t('YES') } -} -var semanticConf = { - label: _t('BAZ_FORM_EDIT_SEMANTIC_LABEL'), - value: '', - placeholder: 'Ex: https://schema.org/name' -} -var selectConf = { - subtype2: { - label: _t('BAZ_FORM_EDIT_SELECT_SUBTYPE2_LABEL'), - options: { - list: _t('BAZ_FORM_EDIT_SELECT_SUBTYPE2_LIST'), - form: _t('BAZ_FORM_EDIT_SELECT_SUBTYPE2_FORM') - } - }, - listeOrFormId: { - label: _t('BAZ_FORM_EDIT_SELECT_LIST_FORM_ID'), - options: { - ...{ '': '' }, - ...formAndListIds.lists, - ...formAndListIds.forms, - ...listAndFormUserValues - } - }, - listId: { - label: '', - options: { ...formAndListIds.lists, ...listAndFormUserValues } - }, - formId: { - label: '', - options: { ...formAndListIds.forms, ...listAndFormUserValues } - }, - defaultValue: { - label: _t('BAZ_FORM_EDIT_SELECT_DEFAULT'), - value: '' - }, - hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, - read: readConf, - write: writeconf, - semantic: semanticConf - // searchable: searchableConf -> 10/19 Florian say that this conf is not working for now -} -var TabsConf = { - formTitles: { - label: _t('BAZ_FORM_EDIT_TABS_FOR_FORM'), - value: _t('BAZ_FORM_EDIT_TABS_FORMTITLES_VALUE'), - placeholder: _t('BAZ_FORM_EDIT_TABS_FORMTITLES_DESCRIPTION'), - description: _t('BAZ_FORM_EDIT_TABS_FORMTITLES_DESCRIPTION') - }, - viewTitles: { - label: _t('BAZ_FORM_EDIT_TABS_FOR_ENTRY'), - value: '', - placeholder: _t('BAZ_FORM_EDIT_TABS_VIEWTITLES_DESCRIPTION'), - description: _t('BAZ_FORM_EDIT_TABS_VIEWTITLES_DESCRIPTION') - }, - moveSubmitButtonToLastTab: { - label: _t('BAZ_FORM_EDIT_TABS_MOVESUBMITBUTTONTOLASTTAB_LABEL'), - options: { '': _t('NO'), moveSubmit: _t('YES') }, - description: _t('BAZ_FORM_EDIT_TABS_MOVESUBMITBUTTONTOLASTTAB_DESCRIPTION') - }, - btnColor: { - label: _t('BAZ_FORM_EDIT_TABS_BTNCOLOR_LABEL'), - options: { 'btn-primary': _t('PRIMARY'), 'btn-secondary-1': `${_t('SECONDARY')} 1`, 'btn-secondary-2': `${_t('SECONDARY')} 2` } - }, - btnSize: { - label: _t('BAZ_FORM_EDIT_TABS_BTNSIZE_LABEL'), - options: { '': _t('NORMAL_F'), 'btn-xs': _t('SMALL_F') } - } -} -var TabChangeConf = { - formChange: { - label: _t('BAZ_FORM_EDIT_TABS_FOR_FORM'), - options: { formChange: _t('YES'), noformchange: _t('NO') }, - description: `${_t('BAZ_FORM_EDIT_TABCHANGE_CHANGE_LABEL')} ${_t('BAZ_FORM_EDIT_TABS_FOR_FORM')}` - }, - viewChange: { - label: _t('BAZ_FORM_EDIT_TABS_FOR_ENTRY'), - options: { '': _t('NO'), viewChange: _t('YES') }, - description: `${_t('BAZ_FORM_EDIT_TABCHANGE_CHANGE_LABEL')} ${_t('BAZ_FORM_EDIT_TABS_FOR_ENTRY')}` - } -} - -// Attributes to be configured for each field -var typeUserAttrs = { - text: { - size: { label: _t('BAZ_FORM_EDIT_TEXT_SIZE'), value: '' }, - maxlength: { label: _t('BAZ_FORM_EDIT_TEXT_MAX_LENGTH'), value: '' }, - hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, - separator: { label: '' }, // separate important attrs from others - subtype: { - label: _t('BAZ_FORM_EDIT_TEXT_TYPE_LABEL'), - options: { - text: _t('BAZ_FORM_EDIT_TEXT_TYPE_TEXT'), - number: _t('BAZ_FORM_EDIT_TEXT_TYPE_NUMBER'), - range: _t('BAZ_FORM_EDIT_TEXT_TYPE_RANGE'), - url: _t('BAZ_FORM_EDIT_TEXT_TYPE_URL'), - password: _t('BAZ_FORM_EDIT_TEXT_TYPE_PASSWORD'), - color: _t('BAZ_FORM_EDIT_TEXT_TYPE_COLOR') - } - }, - read: readConf, - write: writeconf, - semantic: semanticConf, - pattern: { - label: _t('BAZ_FORM_EDIT_TEXT_PATTERN'), - value: '', - placeholder: `${_t('BAZ_FORM_EDIT_ADVANCED_MODE')} Ex: [0-9]+ ou [A-Za-z]{3}, ...` - } - }, - url: { - read: readConf, - write: writeconf, - semantic: semanticConf - }, - champs_mail: { - hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, - separator: { label: '' }, // separate important attrs from others - send_form_content_to_this_email: { - label: _t('BAZ_FORM_EDIT_EMAIL_SEND_FORM_CONTENT_LABEL'), - options: { 0: _t('NO'), 1: _t('YES') } - }, - replace_email_by_button: { - label: _t('BAZ_FORM_EDIT_EMAIL_REPLACE_BY_BUTTON_LABEL'), - options: { '': _t('NO'), 'form': _t('YES') }, - value: 'form' - }, - seeEmailAcls: {...readConf,...{label:_t('BAZ_FORM_EDIT_EMAIL_SEE_MAIL_ACLS')}}, - readWhenForm: {...readConf,...{label:_t('BAZ_FORM_EDIT_EMAIL_SEND_ACLS')}}, - // searchable: searchableConf, -> 10/19 Florian say that this conf is not working for now - read: readConf, - write: writeconf, - semantic: semanticConf - }, - map: { - name_latitude: { label: _t('BAZ_FORM_EDIT_MAP_LATITUDE'), value: 'bf_latitude' }, - name_longitude: { label: _t('BAZ_FORM_EDIT_MAP_LONGITUDE'), value: 'bf_longitude' }, - autocomplete_street: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STREET'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STREET_PLACEHOLDER') }, - autocomplete_postalcode: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_POSTALCODE'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_POSTALCODE_PLACEHOLDER') }, - autocomplete_town: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_TOWN'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_TOWN_PLACEHOLDER') }, - autocomplete_county: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_COUNTY'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_COUNTY_PLACEHOLDER') }, - autocomplete_state: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STATE'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STATE_PLACEHOLDER') }, - autocomplete_other: { label: '', value: ''}, - autocomplete_street1: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STREET1'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STREET1_PLACEHOLDER') }, - autocomplete_street2: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STREET2'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STREET2_PLACEHOLDER') }, - geolocate: { - label: _t('BAZ_FORM_EDIT_GEOLOCATE'), - options: { 0: _t('NO'), 1: _t('YES') } - } - }, - date: { - today_button: { - label: _t('BAZ_FORM_EDIT_DATE_TODAY_BUTTON'), - options: { ' ': _t('NO'), today: _t('YES') } - }, - hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, - read: readConf, - write: writeconf, - semantic: semanticConf - }, - image: { - hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, - thumb_height: { label: _t('BAZ_FORM_EDIT_IMAGE_HEIGHT'), value: '300' }, - thumb_width: { label: _t('BAZ_FORM_EDIT_IMAGE_WIDTH'), value: '400' }, - resize_height: { label: _t('BAZ_FORM_EDIT_IMAGE_HEIGHT_RESIZE'), value: '600' }, - resize_width: { label: _t('BAZ_FORM_EDIT_IMAGE_WIDTH_RESIZE'), value: '800' }, - align: { - label: _t('BAZ_FORM_EDIT_IMAGE_ALIGN_LABEL'), - value: 'right', - options: { left: _t('LEFT'), right: _t('RIGHT') } - }, - read: readConf, - write: writeconf, - semantic: semanticConf - }, - select: { - ...selectConf, - ...{ - queries: { - label: _t('BAZ_FORM_EDIT_QUERIES_LABEL'), - value: '', - placeholder: 'ex. : checkboxfiche6=PageTag ; cf. https://yeswiki.net/?LierFormulairesEntreEux' - } - } - }, - 'checkbox-group': { - ...selectConf, - ...{ - fillingMode: { - label: _t('BAZ_FORM_EDIT_FILLING_MODE_LABEL'), - options: { - ' ': _t('BAZ_FORM_EDIT_FILLING_MODE_NORMAL'), - tags: _t('BAZ_FORM_EDIT_FILLING_MODE_TAGS'), - dragndrop: _t('BAZ_FORM_EDIT_FILLING_MODE_DRAG_AND_DROP') - } - }, - queries: { - label: _t('BAZ_FORM_EDIT_QUERIES_LABEL'), - value: '', - placeholder: 'ex. : checkboxfiche6=PageTag ; cf. https://yeswiki.net/?LierFormulairesEntreEux' - } - } - }, - 'radio-group': { - ...selectConf, - ...{ - fillingMode: { - label: _t('BAZ_FORM_EDIT_FILLING_MODE_LABEL'), - options: { - ' ': _t('BAZ_FORM_EDIT_FILLING_MODE_NORMAL'), - tags: _t('BAZ_FORM_EDIT_FILLING_MODE_TAGS') - } - }, - queries: { - label: _t('BAZ_FORM_EDIT_QUERIES_LABEL'), - value: '', - placeholder: 'ex. : checkboxfiche6=PageTag ; cf. https://yeswiki.net/?LierFormulairesEntreEux' - } - } - }, - textarea: { - syntax: { - label: _t('BAZ_FORM_EDIT_TEXTAREA_SYNTAX_LABEL'), - options: { - wiki: 'Wiki', - html: _t('BAZ_FORM_EDIT_TEXTAREA_SYNTAX_HTML'), - nohtml: _t('BAZ_FORM_EDIT_TEXTAREA_SYNTAX_NOHTML') - } - }, - hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, - size: { label: _t('BAZ_FORM_EDIT_TEXTAREA_SIZE_LABEL'), value: '' }, - rows: { - label: _t('BAZ_FORM_EDIT_TEXTAREA_ROWS_LABEL'), - type: 'number', - placeholder: _t('BAZ_FORM_EDIT_TEXTAREA_ROWS_PLACEHOLDER') - }, - read: readConf, - write: writeconf, - semantic: semanticConf - }, - file: { - readlabel: { - label: _t('BAZ_FORM_EDIT_FILE_READLABEL_LABEL'), - value: '', - placeholder: _t('BAZ_FILEFIELD_FILE') - }, - maxsize: { label: _t('BAZ_FORM_EDIT_FILE_MAXSIZE_LABEL'), value: '' }, - hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, - read: readConf, - write: writeconf, - semantic: semanticConf - }, - tags: { - hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, - read: readConf, - write: writeconf, - semantic: semanticConf - }, - inscriptionliste: { - subscription_email: { label: _t('BAZ_FORM_EDIT_INSCRIPTIONLISTE_EMAIL_LABEL'), value: '' }, - email_field_id: { - label: _t('BAZ_FORM_EDIT_INSCRIPTIONLISTE_EMAIL_FIELDID'), - value: 'bf_mail' - }, - mailing_list_tool: { - label: _t('BAZ_FORM_EDIT_INSCRIPTIONLISTE_MAILINGLIST'), - value: '' - } - }, - labelhtml: { - label: { value: _t('BAZ_FORM_EDIT_CUSTOM_HTML_LABEL'), value: '' }, - content_saisie: { label: _t('BAZ_FORM_EDIT_EDIT_CONTENT_LABEL'), type: 'textarea', rows: '4', value: '' }, - content_display: { label: _t('BAZ_FORM_EDIT_VIEW_CONTENT_LABEL'), type: 'textarea', rows: '4', value: '' } - }, - utilisateur_wikini: { - name_field: { label: _t('BAZ_FORM_EDIT_USERS_WIKINI_NAME_FIELD_LABEL'), value: 'bf_titre' }, - email_field: { - label: _t('BAZ_FORM_EDIT_USERS_WIKINI_EMAIL_FIELD_LABEL'), - value: 'bf_mail' - }, - // mailing_list: { - // label: "Inscrite à une liste de diffusion" - // }, - autoupdate_email: { - label: _t('BAZ_FORM_EDIT_USERS_WIKINI_AUTOUPDATE_MAIL'), - options: { 0: _t('NO'), 1: _t('YES') } - }, - auto_add_to_group: { - label: _t('BAZ_FORM_EDIT_ADD_TO_GROUP_LABEL'), - value: '', - placeholder: _t('BAZ_FORM_EDIT_ADD_TO_GROUP_DESCRIPTION'), - description: _t('BAZ_FORM_EDIT_ADD_TO_GROUP_DESCRIPTION') - } - }, - acls: { - read: { label: _t('BAZ_FORM_EDIT_ACL_READ_LABEL'), options: aclsOptions, multiple: true }, - write: { label: _t('BAZ_FORM_EDIT_ACL_WRITE_LABEL'), options: aclsOptions, multiple: true }, - comment: { label: _t('BAZ_FORM_EDIT_ACL_COMMENT_LABEL'), options: aclsCommentOptions, multiple: true }, - askIfActivateComments: { - label: _t('BAZ_FORM_EDIT_ACL_ASK_IF_ACTIVATE_COMMENT_LABEL'), - options: { 0: _t('NO'), 1: _t('YES') }, - }, - fieldLabel: { - label: _t('BAZ_FORM_EDIT_COMMENTS_FIELD_ACTIVATE_LABEL'), - value: "", - placeholder: _t('BAZ_ACTIVATE_COMMENTS') - }, - hint: { - label: _t('BAZ_FORM_EDIT_HELP'), - value: '', - placeholder: _t('BAZ_ACTIVATE_COMMENTS_HINT') - }, - value: { - label: _t('BAZ_FORM_EDIT_COMMENTS_FIELD_DEFAULT_ACTIVATION_LABEL'), - options: {non: _t('NO'), oui: _t('YES'), ' ': ''} - }, - }, - metadatas: { - theme: { - label: _t('BAZ_FORM_EDIT_METADATA_THEME_LABEL'), - value: '', - placeholder: 'margot, interface, colibris' - }, - squelette: { label: _t('BAZ_FORM_EDIT_METADATA_SQUELETON_LABEL'), value: '1col.tpl.html' }, - style: { label: _t('BAZ_FORM_EDIT_METADATA_STYLE_LABEL'), value: '', placeholder: 'bootstrap.css...' }, - preset: { label: _t('BAZ_FORM_EDIT_METADATA_PRESET_LABEL'), value: '', placeholder: `blue.css (${_t('BAZ_FORM_EDIT_METADATA_PRESET_PLACEHOLDER')})` }, - image: { label: _t('BAZ_FORM_EDIT_METADATA_BACKGROUND_IMAGE_LABEL'), value: '', placeholder: 'foret.jpg...' } - }, - bookmarklet: { - urlField: { label: _t('BAZ_FORM_EDIT_BOOKMARKLET_URLFIELD_LABEL'), value: 'bf_url' }, - descriptionField: { label: _t('BAZ_FORM_EDIT_BOOKMARKLET_DESCRIPTIONFIELD_LABEL'), value: 'bf_description' }, - hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: _t('BAZ_FORM_EDIT_BOOKMARKLET_HINT_DEFAULT_VALUE') }, - text: { label: _t('BAZ_FORM_EDIT_BOOKMARKLET_TEXT_LABEL'), value: _t('BAZ_FORM_EDIT_BOOKMARKLET_TEXT_VALUE') } - }, - collaborative_doc: {}, - titre: {}, - listefichesliees: { - id: { label: _t('BAZ_FORM_EDIT_LISTEFICHES_FORMID_LABEL'), value: '' }, - query: { - label: _t('BAZ_FORM_EDIT_LISTEFICHES_QUERY_LABEL'), - value: '', - placeholder: _t('BAZ_FORM_EDIT_LISTEFICHES_QUERY_PLACEHOLDER', { url: 'https://yeswiki.net/?DocQuery/iframe' }) - }, - param: { - label: _t('BAZ_FORM_EDIT_LISTEFICHES_PARAMS_LABEL'), - value: '', - placeholder: 'Ex: champs="bf_nom" ordre="desc"' - }, - number: { label: _t('BAZ_FORM_EDIT_LISTEFICHES_NUMBER_LABEL'), value: '', placeholder: '' }, - template: { - label: _t('BAZ_FORM_EDIT_LISTEFICHES_TEMPLATE_LABEL'), - value: '', - placeholder: - _t('BAZ_FORM_EDIT_LISTEFICHES_TEMPLATE_PLACEHOLDER') - }, - type_link: { - label: _t('BAZ_FORM_EDIT_LISTEFICHES_LISTTYPE_LABEL'), - value: '', - placeholder: - _t('BAZ_FORM_EDIT_LISTEFICHES_LISTTYPE_PLACEHOLDER') - }, - read: readConf, - write: writeconf, - semantic: semanticConf - }, - reactions: { - fieldlabel: { - label: _t('BAZ_REACTIONS_FIELD_ACTIVATE_LABEL'), - value: "", - placeholder: _t('BAZ_ACTIVATE_REACTIONS') - }, - value: { - label: _t('BAZ_REACTIONS_FIELD_DEFAULT_ACTIVATION_LABEL'), - options: { oui: _t('YES'),non: _t('NO') } - }, - labels: { - label: _t('BAZ_REACTIONS_FIELD_LABELS_LABEL'), - value: "" - }, - images: { - label: _t('BAZ_REACTIONS_FIELD_IMAGES_LABEL'), - value: "", - placeholder: _t('BAZ_REACTIONS_FIELD_IMAGES_PLACEHOLDER') - }, - ids: { - label: _t('BAZ_REACTIONS_FIELD_IDS_LABEL'), - value: "" - }, - read: readConf, - write: writeconf, - semantic: semanticConf - }, - custom: { - param0: { label: 'Param0', value: '' }, - param1: { label: 'Param1', value: '' }, - param2: { label: 'Param2', value: '' }, - param3: { label: 'Param3', value: '' }, - param4: { label: 'Param4', value: '' }, - param5: { label: 'Param5', value: '' }, - param6: { label: 'Param6', value: '' }, - param7: { label: 'Param7', value: '' }, - param8: { label: 'Param8', value: '' }, - param9: { label: 'Param9', value: '' }, - param10: { label: 'Param10', value: '' }, - param11: { label: 'Param11', value: '' }, - param12: { label: 'Param12', value: '' }, - param13: { label: 'Param13', value: '' }, - param14: { label: 'Param14', value: '' }, - param15: { label: 'Param15', value: '' } - }, - tabs: TabsConf, - tabchange: TabChangeConf -} - -// How a field is represented in the formBuilder view -var templates = { - champs_mail(fieldData) { - return { - field: ``, - onRender() { - let currentField = templateHelper.getHolder(fieldData).parent() - templateHelper.initializeField(currentField) - const arrayEquals = (a,b)=>{ - if (a.length != b.length){ - return false - } - return (a.every((e)=>b.includes(e)) && b.every((e)=>a.includes(e))) - } - currentField.find("select[name=read]:not(.initialized)") - .on('change',(event)=>{ - const element = event.target - const base = $(element).closest(".champs_mail-field.form-field") - $(element).addClass("initialized") - - const readWhenFormInput = $(base).find("select[name=readWhenForm]") - if (readWhenFormInput && readWhenFormInput.length > 0 && !arrayEquals(readWhenFormInput.val(),$(element).val())){ - readWhenFormInput.val($(element).val()) - } - }).trigger("change") - currentField.find("select[name=readWhenForm]:not(.initialized)") - .on('change',(event)=>{ - const element = event.target - const base = $(element).closest(".champs_mail-field.form-field") - $(element).addClass("initialized") - - const readInput = $(base).find("select[name=read]") - if (readInput && readInput.length > 0 && !arrayEquals(readInput.val(),$(element).val())){ - readInput.val($(element).val()) - } - }).trigger("change") - currentField - .find("select[name=replace_email_by_button]:not(.initialized)") - .on('change',(event)=>{ - const element = event.target - - const base = $(element).closest(".champs_mail-field.form-field") - $(element).addClass("initialized") - - const setDisplay = (base,name,newValue)=>{ - let wrapper = $(base).find(`div.form-group.${name}-wrap`) - if (wrapper && wrapper.length > 0){ - if(newValue){ - wrapper.show() - } else { - wrapper.hide() - } - } - } - if ($(element).val() == 'form'){ - // when chosing 'form' (or at init), if readAcl is ' % ', prefer ' * ' - // to show button to everyone - let field = currentField.find("select[name=read]") - if (arrayEquals(field.val(),[' % '])){ - field.val([' * ']) - field.trigger('change') - } - setDisplay(base,'readWhenForm',1) - setDisplay(base,'seeEmailAcls',1) - setDisplay(base,'read',0) - } else { - // when chosing 'text' (or at init), if readAcl is ' * ', prefer ' % ' - // to force email not to be shown - let field = currentField.find("select[name=read]") - if (arrayEquals(field.val(),[' * ']) && !currentField.find("select[name=write]").val().includes(' * ')){ - field.val([' % ']) - field.trigger('change') - } - setDisplay(base,'readWhenForm',0) - setDisplay(base,'seeEmailAcls',0) - setDisplay(base,'read',1) - } - }) - .trigger("change") - } - } - }, - map(fieldData) { - return { - field: _t('BAZ_FORM_EDIT_MAP_FIELD'), - onRender() { - const toggleState = function (name,state){ - const formGroup = templateHelper.getFormGroup(fieldData, name) - if (formGroup !== null){ - if (state === 'show'){ - formGroup.show() - } else { - formGroup.hide() - } - } - } - const toggleStates = function (state){ - ['autocomplete_street1','autocomplete_street2'].forEach((name)=>toggleState(name,state)) - } - // initMapAutocompleteUpdate() - $(".map-field.form-field") - .find("input[type=text][name=autocomplete_street]:not(.initialized)" - +",input[type=text][name=autocomplete_street1]:not(.initialized)" - +",input[type=text][name=autocomplete_street2]:not(.initialized)" - +",input[type=text][name=autocomplete_county]:not(.initialized)" - +",input[type=text][name=autocomplete_state]:not(.initialized)" - +",select[name=geolocate]:not(.initialized)") - .on('change',function(event){ - // mapAutocompleteUpdate(event.target) - const element = event.target - const base = $(element).closest(".map-field.form-field") - if (!$(element).hasClass("initialized")){ - $(element).addClass("initialized"); - if ($(element).val().length == 0 || $(element).prop('tagName') === 'SELECT'){ - // mapAutocompleteUpdateExtractFromOther(base) - var other = { - geolocate: '', - street: '', - street1: '', - street2: '', - county: '', - state: '' - } - const autoCompleteOther = $(base) - .find("input[type=text][name=autocomplete_other]") - .first() - if (autoCompleteOther && autoCompleteOther.length > 0){ - const value = autoCompleteOther.val().split('|') - other.geolocate = ['1',1,true].includes(value[0]) ? '1' : '0' - other.street = value[1] || '' - other.street1 = value[2] || '' - other.street2 = value[3] || '' - other.county = value[4] || '' - other.state = value[5] || '' - } - switch (element.getAttribute('name')) { - case 'autocomplete_street': - $(element).val(other.street) - break; - case 'autocomplete_street1': - $(element).val(other.street1) - break; - case 'autocomplete_street2': - $(element).val(other.street2) - break; - case 'autocomplete_county': - $(element).val(other.county) - break; - case 'autocomplete_state': - $(element).val(other.state) - break; - case 'geolocate': - $(element).val(other.geolocate === '1' ? '1' : '0') - break; - default: - break; - } - } - } else { - // autocompleteUpdateSaveToOther(base) - const autoCompleteOther = $(base) - .find("input[type=text][name=autocomplete_other]") - .first() - if (autoCompleteOther && autoCompleteOther.length > 0){ - var results = { - geolocate: '', - street: '', - street1: '', - street2: '', - county: '', - state: '' - } - const associations = { - street: 'autocomplete_street', - street1: 'autocomplete_street1', - street2: 'autocomplete_street2', - county: 'autocomplete_county', - state: 'autocomplete_state' - } - for (const key in associations) { - const autoCompleteField = $(base) - .find(`input[type=text][name=${associations[key]}]`) - .first() - if (autoCompleteField && autoCompleteField.length > 0){ - results[key] = autoCompleteField.val() || '' - } - } - // geolocate - const geolocateField = $(base) - .find('select[name=geolocate]') - .first() - if (geolocateField && geolocateField.length > 0){ - results.geolocate = geolocateField.val() || '' - } - autoCompleteOther.val( - results.geolocate - + `|${results.street}` - + `|${results.street1}` - + `|${results.street2}` - + `|${results.county}` - + `|${results.state}` - ) - } - } - }) - .trigger('change') - - templateHelper.prependHTMLBeforeGroup(fieldData, 'autocomplete_street', ` -
        - ${_t('GEOLOCATER_GROUP_GEOLOCATIZATION')} -
        ${_t('GEOLOCATER_GROUP_GEOLOCATIZATION_HINT')}
        -
        - `) - $advancedParams = $(` -
        - -
        - -
        -
        - `) - templateHelper.prependHTMLBeforeGroup(fieldData, 'autocomplete_street1', $advancedParams) - $advancedParams.find('button').on('click', function (event) { - if ($(this).hasClass('opened')){ - $(this).removeClass('opened') - $(this).html(_t('GEOLOCATER_SEE_ADVANCED_PARAMS')); - toggleStates('hide') - } else { - $(this).addClass('opened') - $(this).html(_t('GEOLOCATER_HIDE_ADVANCED_PARAMS')); - toggleStates('show') - } - event.preventDefault() - event.stopPropagation() - }) - toggleStates('hide') - templateHelper.prependHTMLBeforeGroup(fieldData, 'geolocate', '

        ') - } - } - }, - image(fieldData) { - return { field: '' } - }, - text(fieldData) { - let string = `` - else if (fieldData.subtype == 'range' || fieldData.subtype == 'number') string += ` min="${fieldData.size || ''}" max="${fieldData.maxlength || ''}"/>` - else { string += ` value="${fieldData.value}"/>` } - return { field: string } - }, - url(fieldData) { - return { field: `` } - }, - tags(fieldData) { - return { field: '' } - }, - inscriptionliste(field) { - return { field: '' } - }, - labelhtml(field) { - return { - field: - `
        ${field.content_saisie || ''}
        -
        ${field.content_display || ''}
        ` - } - }, - utilisateur_wikini(field) { - return { - field: '', - onRender() { - templateHelper.defineLabelHintForGroup(field, 'auto_add_to_group', _t('BAZ_FORM_EDIT_ADD_TO_GROUP_HELP')) - } - } - }, - acls(field) { - return { - field: field.askIfActivateComments == 1 ? ` ${field.fieldlabel || _t('BAZ_ACTIVATE_COMMENTS')}` : '' , - onRender() { - let currentField = templateHelper.getHolder(field).parent() - templateHelper.initializeField(currentField) - $(currentField) - .find("select[name=askIfActivateComments]:not(.initialized)") - .change(function(event){ - const element = event.target - - const base = $(element).closest(".acls-field.form-field") - $(element).addClass("initialized") - - var nameInput = $(base).find("input[type=text][name=name]") - if (nameInput.val().trim().length == 0 || - nameInput.val().trim() == 'bf_acls' ){ - nameInput.val('bf_commentaires') - } - - var visibleSelect = $(base).find("select[name=askIfActivateComments]") - var selectedValue = visibleSelect.val() - - var subElements = $(base) - .find(".form-group.fieldLabel-wrap,.form-group.hint-wrap,.form-group.name-wrap,.form-group.value-wrap") - if ([1,'1'].includes(selectedValue)){ - subElements.show() - var commentInput = $(base).find("select[name=comment]") - var currentValue = commentInput.val() - if (Array.isArray(currentValue) && - ( - currentValue.length == 0 || - (currentValue.length == 1 && currentValue.includes('comments-closed')) - )){ - commentInput.val([' + ']) - } - } else { - subElements.hide() - } - }) - .trigger("change"); - templateHelper.defineLabelHintForGroup(field, 'fieldlabel', _t('BAZ_FORM_EDIT_COMMENTS_FIELD_ACTIVATE_HINT')) - templateHelper.defineLabelHintForGroup(field, 'hint', _t('BAZ_FORM_EDIT_COMMENTS_FIELD_ACTIVATE_HINT')) - } - } - }, - metadatas(field) { - return { field: '' } - }, - bookmarklet(field) { - return { - field: '', - onRender() { - templateHelper.prependHint(field, _t('BAZ_BOOKMARKLET_HINT', { '\\n': '
        ' })) - } - } - }, - listefichesliees(field) { - return { field: '' } - }, - collaborative_doc(field) { - return { field: _t('BAZ_FORM_EDIT_COLLABORATIVE_DOC_FIELD') } - }, - titre(field) { - return { field: field.value } - }, - custom(field) { - return { field: '' } - }, - tabs(field) { - return { - field: '', - onRender() { - templateHelper.prependHint(field, _t('BAZ_FORM_TABS_HINT', { - '\\n': '
        ', - 'tabs-field-label': _t('BAZ_FORM_EDIT_TABS'), - 'tabchange-field-label': _t('BAZ_FORM_EDIT_TABCHANGE') - })) - templateHelper.prependHTMLBeforeGroup(field, 'formTitles', $('
        ').addClass('form-group').append($('').append(_t('BAZ_FORM_EDIT_TABS_TITLES_LABEL')))) - templateHelper.defineLabelHintForGroup(field, 'formTitles', _t('BAZ_FORM_EDIT_TABS_FORMTITLES_DESCRIPTION')) - templateHelper.defineLabelHintForGroup(field, 'viewTitles', _t('BAZ_FORM_EDIT_TABS_VIEWTITLES_DESCRIPTION')) - templateHelper.prependHTMLBeforeGroup(field, 'moveSubmitButtonToLastTab', $('
        ').addClass('form-group')) - - const holder = templateHelper.getHolder(field) - if (holder) { - const formGroup = holder.find('.formTitles-wrap') - if (typeof formGroup !== undefined && formGroup.length > 0) { - const input = formGroup.find('input').first() - if (typeof input !== undefined && input.length > 0) { - $(input).val($(input).val().replace(/\|/g, ',')) - } - } - } - } - } - }, - tabchange(field) { - return { - field: '', - onRender() { - templateHelper.prependHint(field, _t('BAZ_FORM_TABS_HINT', { - '\\n': '
        ', - 'tabs-field-label': _t('BAZ_FORM_EDIT_TABS'), - 'tabchange-field-label': _t('BAZ_FORM_EDIT_TABCHANGE') - })) - templateHelper.prependHTMLBeforeGroup(field, 'formChange', $('
        ').addClass('form-group').append($('').append(_t('BAZ_FORM_EDIT_TABCHANGE_CHANGE_LABEL')))) - } - } - }, - reactions: function (field) { - return { - field: ` ${field.fieldlabel || _t('BAZ_ACTIVATE_REACTIONS')}` , - onRender() { - templateHelper.defineLabelHintForGroup(field, 'fieldlabel', _t('BAZ_REACTIONS_FIELD_ACTIVATE_HINT')) - templateHelper.defineLabelHintForGroup(field, 'ids', _t('BAZ_REACTIONS_FIELD_IDS_HINT')) - templateHelper.defineLabelHintForGroup(field, 'images', _t('BAZ_REACTIONS_FIELD_IMAGES_HINT')) - templateHelper.defineLabelHintForGroup(field, 'labels', _t('BAZ_REACTIONS_FIELD_LABELS_HINT')) - } - } - } -} - -var typeUserDisabledAttrs = { - tabs: ['required', 'value', 'name', 'label'], - tabchange: ['required', 'value', 'name', 'label'], - bookmarklet: ['required', 'value'], - reactions: ['label','required'], - acls: ['label','required'] -} - -var inputSets = [ - { - label: _t('BAZ_FORM_EDIT_TABS'), - name: 'tabs', - icon: '', - fields: [ - { - type: 'tabs', - label: _t('BAZ_FORM_EDIT_TABS') - }, - { - type: 'tabchange', - label: _t('BAZ_FORM_EDIT_TABCHANGE') - }, - { - type: 'tabchange', - label: _t('BAZ_FORM_EDIT_TABCHANGE') - }, - { - type: 'tabchange', - label: _t('BAZ_FORM_EDIT_TABCHANGE') - } - ] - } -] - -// Mapping betwwen yes wiki syntax and FormBuilder json syntax -var defaultMapping = { - 0: 'type', - 1: 'name', - 2: 'label', - 3: 'size', - 4: 'maxlength', - 5: 'value', - 6: 'pattern', - 7: 'subtype', - 8: 'required', - 9: 'searchable', - 10: 'hint', - 11: 'read', - 12: 'write', - 14: 'semantic', - 15: 'queries' -} -var lists = { - ...defaultMapping, - ...{ 1: 'listeOrFormId', 5: 'defaultValue', 6: 'name' } -} -var yesWikiMapping = { - text: defaultMapping, - url: defaultMapping, - number: defaultMapping, - champs_mail: { - ...defaultMapping, - ...{ 4:'seeEmailAcls', 6: 'replace_email_by_button', 9: 'send_form_content_to_this_email' } - }, - map: { - 0: 'type', - 1: 'name_latitude', - 2: 'name_longitude', - 3: '', - 4: 'autocomplete_postalcode', - 5: 'autocomplete_town', - 6: 'autocomplete_other', - 8: 'required' - }, - date: { ...defaultMapping, ...{ 5: 'today_button' } }, - image: { - ...defaultMapping, - ...{ - 1: 'name', - 3: 'thumb_height', - 4: 'thumb_width', - 5: 'resize_height', - 6: 'resize_width', - 7: 'align' - } - }, - select: lists, - 'checkbox-group': { ...lists, ...{ 7: 'fillingMode' } }, - 'radio-group': { ...lists, ...{ 7: 'fillingMode' } }, - textarea: { ...defaultMapping, ...{ 4: 'rows', 7: 'syntax' } }, - file: { ...defaultMapping, ...{ 3: 'maxsize', 6: 'readlabel' } }, - tags: defaultMapping, - inscriptionliste: { - 0: 'type', - 1: 'subscription_email', - 2: 'label', - 3: 'email_field_id', - 4: 'mailing_list_tool' - }, - labelhtml: { 0: 'type', 1: 'content_saisie', 2: '', 3: 'content_display' }, - utilisateur_wikini: { - ...defaultMapping, - ...{ 0: 'type', 1: 'name_field', 2: 'email_field', 5: '', /* 5:"mailing_list", */6: 'auto_add_to_group', 8: '', 9: 'autoupdate_email' } - }, - titre: { 0: 'type', 1: 'value', 2: 'label' }, - acls: { - 0: 'type', - 1: 'read', - 2: 'write', - 3: 'comment', - 4: 'fieldLabel', - 5: 'value', - 6: 'name', - 7: "askIfActivateComments", - 8: '', - 9: '', - 10: 'hint' - }, - metadatas: { 0: 'type', 1: 'theme', 2: 'squelette', 3: 'style', 4: 'image', 5: 'preset' }, - hidden: { 0: 'type', 1: 'name', 5: 'value' }, - bookmarklet: { - 0: 'type', - 1: 'name', - 2: 'label', - 3: 'urlField', - 4: 'descriptionField', - 5: 'text', - 6: '', - 7: '', - 8: '', - 9: '', - 10: 'hint' - }, - listefichesliees: { - 0: 'type', - 1: 'id', - 2: 'query', - 3: 'param', - 4: 'number', - 5: 'template', - 6: 'type_link' - }, - collaborative_doc: defaultMapping, - custom: { - 0: 'param0', - 1: 'param1', - 2: 'param2', - 3: 'param3', - 4: 'param4', - 5: 'param5', - 6: 'param6', - 7: 'param7', - 8: 'param8', - 9: 'param9', - 10: 'param10', - 11: 'param11', - 12: 'param12', - 13: 'param13', - 14: 'param14', - 15: 'param15' - }, - tabs: { - ...defaultMapping, - ...{ - 1: 'formTitles', - 2: '', - 3: 'viewTitles', - 5: 'moveSubmitButtonToLastTab', - 6: '', - 7: 'btnColor', - 9: 'btnSize' - } - }, - tabchange: { - ...defaultMapping, - ...{ - 1: 'formChange', - 2: '', - 3: 'viewChange' - } - }, - reactions: { - ...defaultMapping, - ...{ - 2: "ids", - 3: "labels", - 4: "images", - 6: "fieldlabel" - } - } -} -// Mapping betwwen yeswiki field type and standard field implemented by form builder -var yesWikiTypes = { - lien_internet: { type: 'url' }, - lien_internet_bis: { type: 'text', subtype: 'url' }, - mot_de_passe: { type: 'text', subtype: 'password' }, - // "nombre": { type: "text", subtype: "tel" }, - texte: { type: 'text' }, // all other type text subtype (range, text, tel) - textelong: { type: 'textarea', subtype: 'textarea' }, - listedatedeb: { type: 'date' }, - listedatefin: { type: 'date' }, - jour: { type: 'date' }, - map: { type: 'map' }, - carte_google: { type: 'map' }, - checkbox: { type: 'checkbox-group', subtype2: 'list' }, - liste: { type: 'select', subtype2: 'list' }, - radio: { type: 'radio-group', subtype2: 'list' }, - checkboxfiche: { type: 'checkbox-group', subtype2: 'form' }, - listefiche: { type: 'select', subtype2: 'form' }, - radiofiche: { type: 'radio-group', subtype2: 'form' }, - fichier: { type: 'file', subtype: 'file' }, - champs_cache: { type: 'hidden' }, - listefiches: { type: 'listefichesliees' } -} - -var defaultFieldsName = { - textarea: 'bf_description', - image: 'bf_image', - champs_mail: 'bf_mail', - date: 'bf_date_debut_evenement' -} - -var I18nOption = { - ar: 'ar-SA', - ca: 'ca-ES', - cs: 'cs-CZ', - da: 'da-DK', - de: 'de-DE', - el: 'el-GR', - en: 'en-US', - es: 'es-ES', - fa: 'fa-IR', - fi: 'fi-FI', - fr: 'fr-FR', - he: 'he-IL', - hu: 'hu-HU', - it: 'it-IT', - ja: 'ja-JP', - my: 'my-MM', - nb: 'nb-NO', - pl: 'pl-PL', - pt: 'pt-BR', - qz: 'qz-MM', - ro: 'ro-RO', - ru: 'ru-RU', - sj: 'sl-SL', - th: 'th-TH', - uk: 'uk-UA', - vi: 'vi-VN', - zh: 'zh-CN' -} - -function copyMultipleSelectValues(currentField) { - const currentId = $(currentField).prop('id') - // based on formBuilder/Helpers.js 'incrementId' function - const split = currentId.lastIndexOf('-') - const clonedFieldNumber = parseInt(currentId.substring(split + 1)) - 1 - const baseString = currentId.substring(0, split) - const clonedId = `${baseString}-${clonedFieldNumber}` - - // find cloned field - const clonedField = $(`#${clonedId}`) - if (clonedField.length > 0) { - // copy multiple select - const clonedFieldSelects = $(clonedField).find('select[multiple=true]') - clonedFieldSelects.each(function() { - const currentSelect = $(currentField).find(`select[multiple=true][name=${$(this).prop('name')}]`) - currentSelect.val($(this).val()) - }) - } -} - -var typeUserEvents = {} -for (const key in typeUserAttrs) { - typeUserEvents[key] = { onclone: copyMultipleSelectValues } -} - -function initializeFormbuilder(formAndListIds) { - // FormBuilder conf - formBuilder = $formBuilderContainer.formBuilder({ - showActionButtons: false, - fields, - i18n: { - locale: I18nOption[wiki.locale] ?? 'fr-FR', - location: `${wiki.baseUrl.replace('?', '')}javascripts/vendor/formbuilder-languages/` - }, - templates, - disableFields: [ - 'number', - 'button', - 'autocomplete', - 'checkbox', - 'paragraph', - 'header', - 'collaborative_doc', - 'textarea', - 'checkbox-group', - 'radio-group', - 'select', - 'hidden' - ], - controlOrder: ['text', 'textarea', 'date', 'image', 'url', 'file', 'champs_mail', 'select', 'checkbox-group', 'radio-group', 'map','tags', 'labelhtml', 'titre', 'bookmarklet', 'conditionschecking', 'calc', 'reactions'], - disabledAttrs: [ - 'access', - 'placeholder', - 'className', - 'inline', - 'toggle', - 'description', - 'other', - 'multiple' - ], - typeUserAttrs, - typeUserDisabledAttrs, - typeUserEvents, - inputSets, - onAddField(fieldId, field) { - if (!field.hasOwnProperty('read')) { - field.read = [' * ']// everyone by default - } - if (!field.hasOwnProperty('write')) { - field.write = (field.type === 'champs_mail') - ? [' % '] // owner and @admins by default for e-mail - : [' * '] // everyone by default - } - if (field.type === 'acls' && !field.hasOwnProperty('comment')) { - field.comment = ['comments-closed']// comments-closed by default - } - if (field.type === 'champs_mail' && !('seeEmailAcls' in field)) { - field.seeEmailAcls = [' % ']// owner and @admins by default - } - } - }) - - // Each 300ms update the text field converting form bulder content into wiki syntax - let formBuilderInitialized = false - let existingFieldsNames = []; let - existingFieldsIds = [] - - setInterval(() => { - if (!formBuilder || !formBuilder.actions || !formBuilder.actions.setData) return - if (!formBuilderInitialized) { - initializeBuilderFromTextInput() - existingFieldsIds = getFieldsIds() - formBuilderInitialized = true - } - if ($formBuilderTextInput.is(':focus')) return - // Change names - $('.form-group.name-wrap label').text(_t('BAZ_FORM_EDIT_UNIQUE_ID')) - $('.form-group.label-wrap label').text(_t('BAZ_FORM_EDIT_NAME')) - existingFieldsNames = [] - $('.fld-name').each(function() { existingFieldsNames.push($(this).val()) }) - - // Transform input[textarea] in real textarea - $('input[type="textarea"]').replaceWith(function() { - const textarea = document.createElement('textarea') - textarea.id = this.id - textarea.name = this.name - textarea.value = this.value - textarea.classList = this.classList - textarea.title = this.title - textarea.rows = $(this).attr('rows') - return textarea - }) - - // Slugiy field names - $('.fld-name').each(function() { - const newValue = $(this) - .val() - .replace(/[^a-z^A-Z^_^0-9^{^}]/g, '_') - .toLowerCase() - $(this).val(newValue) - }) - - if ($('#form-builder-container').is(':visible')) { - const formData = formBuilder.actions.getData() - const wikiText = formatJsonDataIntoWikiText(formData) - if (wikiText) $formBuilderTextInput.val(wikiText) - } - - // when selecting between data source lists or forms, we need to populate again the listOfFormId select with the - // proper set of options - $('.radio-group-field, .checkbox-group-field, .select-field') - .find('select[name=subtype2]:not(.initialized)') - .change(function() { - $(this).addClass('initialized') - const visibleSelect = $(this) - .closest('.form-field') - .find('select[name=listeOrFormId]') - selectedValue = visibleSelect.val() - visibleSelect.empty() - const optionToAddToSelect = $(this) - .closest('.form-field') - .find(`select[name=${$(this).val()}Id] option`) - visibleSelect.append(new Option('', '', false)) - optionToAddToSelect.each(function() { - const optionKey = $(this).attr('value') - const optionLabel = $(this).text() - const isSelected = optionKey == selectedValue - const newOption = new Option(optionLabel, optionKey, false, isSelected) - visibleSelect.append(newOption) - }) - }) - .trigger('change') - - $('.fld-name').each(function() { - let name = $(this).val() - const id = $(this).closest('.form-field').attr('id') - - // Detect new fields added - if (!existingFieldsIds.includes(id)) { - const fieldType = $(this).closest('.form-field').attr('type') - - // Make the default names easier to read - if (['radio_group', 'checkbox_group', 'select'].includes(fieldType)) { - name = '' - } else if (!name.includes('bf_')) { - name = defaultFieldsName[fieldType] || `bf_${fieldType}` - if (existingFieldsNames.includes(name)) { - // If name already exist, we add a number (bf_address, bf_address1, bf_address2...) - number = 1 - while (existingFieldsNames.includes(name + number)) number += 1 - name += number - } - } - - // if it's a map, we automatically add a bf_addresse - if (fieldType == 'map' && !existingFieldsNames.includes('bf_adresse')) { - const field = { - type: 'text', - subtype: 'text', - name: 'bf_adresse', - label: _t('BAZ_FORM_EDIT_ADDRESS') - } - const index = $(this).closest('.form-field').index() - formBuilder.actions.addField(field, index) - } - } - $(this).val(name) - }) - - existingFieldsIds = getFieldsIds() - - $('.text-field select[name=subtype]:not(.initialized)') - .change(function() { - $(this).addClass('initialized') - $parent = $(this).closest('.form-field') - if ($(this).val() == 'range' || $(this).val() == 'number') { - $parent.find('.maxlength-wrap label').text(_t('BAZ_FORM_EDIT_MAX_VAL')) - $parent.find('.size-wrap label').text(_t('BAZ_FORM_EDIT_MIN_VAL')) - } else { - $parent.find('.maxlength-wrap label').text(_t('BAZ_FORM_EDIT_MAX_LENGTH')) - $parent.find('.size-wrap label').text(_t('BAZ_FORM_EDIT_NB_CHARS')) - } - if ($(this).val() == 'color') { - $parent.find('.maxlength-wrap, .size-wrap').hide() - } else { - $parent.find('.maxlength-wrap, .size-wrap').show() - } - }) - .trigger('change') - - // in semantic field, we want to separate value by coma - $('.fld-semantic').each(function() { - let newVal = $(this) - .val() - .replace(/\s*,\s*/g, ',') - newVal = newVal.replace(/\s+/g, ',') - newVal = newVal.replace(/,+/g, ',') - $(this).val(newVal) - }) - - // Changes icons and icones helpers - $('a[type=remove].icon-cancel') - .removeClass('icon-cancel') - .html('') - $('a[type=copy].icon-copy').attr('title', _t('DUPLICATE')) - $('a[type=edit].icon-pencil').attr('title', _t('BAZ_FORM_EDIT_HIDE')) - }, 300) - - $('#formbuilder-link').click(initializeBuilderFromTextInput) -} - -function getFieldsIds() { - result = [] - $('.fld-name').each(function() { result.push($(this).closest('.form-field').attr('id')) }) - return result -} -// Remove accidental br at the end of the labels -function removeBR(text) { - let newValue = text.replace(/(

        <\/div>)+$/g, '') - // replace multiple '

        ' when at the end of the value - newValue = newValue.replace(/(
        )+$/g, '') - // replace multiple '
        ' when at the end of the value - return newValue -} - -function initializeBuilderFromTextInput() { - const jsonData = parseWikiTextIntoJsonData($formBuilderTextInput.val()) - formBuilder.actions.setData(JSON.stringify(jsonData)) -} - -// transform a json object like "{ type: 'texte', name: 'bf_titre', label: 'Nom' .... }" -// into wiki text like "texte***bf_titre***Nom***255***255*** *** *** ***1***0***" -function formatJsonDataIntoWikiText(formData) { - if (formData.length == 0) return null - let wikiText = '' - - for (let i = 0; i < formData.length; i++) { - const wikiProps = {} - const formElement = formData[i] - const mapping = yesWikiMapping[formElement.type] - - for (const type in yesWikiTypes) { - if ( - formElement.type == yesWikiTypes[type].type - && (!formElement.subtype - || !yesWikiTypes[type].subtype - || formElement.subtype == yesWikiTypes[type].subtype) - && (!formElement.subtype2 - || formElement.subtype2 == yesWikiTypes[type].subtype2) - ) { - wikiProps[0] = type - break - } - } - // for non mapped fields, we just keep the form type - if (!wikiProps[0]) wikiProps[0] = formElement.type - - // fix for url field which can be build with textField or urlField - if (wikiProps[0]) wikiProps[0] = wikiProps[0].replace('_bis', '') - - for (const key in mapping) { - const property = mapping[key] - if (property != 'type') { - let value = formElement[property] - if (['required', 'access'].indexOf(property) > -1) value = value ? '1' : '0' - if (property == 'label') { - wikiProps[key] = removeBR(value).replace(/\n$/gm, '') - } else { - wikiProps[key] = value - } - } - } - - maxProp = Math.max.apply(Math, Object.keys(wikiProps)) - for (let j = 0; j <= maxProp; j++) { - wikiText += wikiProps[j] || ' ' - wikiText += '***' - } - wikiText += '\n' - } - return wikiText -} - -// transform text with wiki text like "texte***bf_titre***Nom***255***255*** *** *** ***1***0***" -// into a json object "{ type: 'texte', name: 'bf_titre', label: 'Nom' .... }" -function parseWikiTextIntoJsonData(text) { - const result = [] - var text = text.trim() - const textFields = text.split('\n') - for (let i = 0; i < textFields.length; i++) { - const textField = textFields[i] - const fieldValues = textField.split('***') - const fieldObject = {} - if (fieldValues.length > 1) { - const wikiType = fieldValues[0] - let fieldType = wikiType in yesWikiTypes ? yesWikiTypes[wikiType].type : wikiType - // check that the fieldType really exists in our form builder - if (!(fieldType in yesWikiMapping)) fieldType = 'custom' - - const mapping = yesWikiMapping[fieldType] - - fieldObject.type = fieldType - fieldObject.subtype = wikiType in yesWikiTypes ? yesWikiTypes[wikiType].subtype : '' - fieldObject.subtype2 = wikiType in yesWikiTypes ? yesWikiTypes[wikiType].subtype2 : '' - const start = fieldType == 'custom' ? 0 : 1 - for (let j = start; j < fieldValues.length; j++) { - let value = fieldValues[j] - const field = mapping && j in mapping ? mapping[j] : j - if (field == 'required') value = value == '1' - if (field) { - if (field == 'read' || field == 'write' || field == 'comment') { - fieldObject[field] = (value.trim() === '') - ? ( - field == 'comment' - ? [' + '] - : [' * '] - ) - : value.split(',').map((e)=>(['+','*','%'].includes(e.trim())) ? ` ${e.trim()} ` : e) - } else if (field == 'seeEmailAcls'){ - fieldObject[field] = (value.trim() === '') - ? ' % ' // if not define in tempalte, choose owner and admins - : value.split(',').map((e)=>(['+','*','%'].includes(e.trim())) ? ` ${e.trim()} ` : e) - } else { - fieldObject[field] = value - } - } - } - if (!fieldObject.label) { - fieldObject.label = wikiType - for (let k = 0; k < fields.length; k++) if (fields[k].name == wikiType) fieldObject.label = fields[k].label - } - result.push(fieldObject) - } - } - if (wiki.isDebugEnabled) { - console.log('parse result', result) - } - return result -} - -$('a[href="#formbuilder"]').on('click', (event) => { - if (!confirm(_t('BAZ_FORM_EDIT_CONFIRM_DISPLAY_FORMBUILDER'))) { - event.preventDefault() - return false - } -}) diff --git a/tools/bazar/presentation/javascripts/form-edit-template/attributes/list-form-id-attribute.js b/tools/bazar/presentation/javascripts/form-edit-template/attributes/list-form-id-attribute.js new file mode 100644 index 000000000..eded7e636 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/attributes/list-form-id-attribute.js @@ -0,0 +1,84 @@ +import { listAndFormUserValues } from '../fields/commons/attributes.js' +import openRemoteModal from '../../../../../../javascripts/helpers/remote-modal.js' + +// formAndListIds is defined in forms_form.twig + +export function initListOrFormIdAttribute() { + // when selecting between data source lists or forms, we need to populate again the + // listOfFormId select with the proper set of options + $('.listeOrFormId-wrap:not(.initialized)').each(function() { + const $attributeWrap = $(this) + const $select = $attributeWrap.find('select[name=listeOrFormId]') + const $sourceSelect = $attributeWrap.siblings('.subtype2-wrap').find('select') + + $attributeWrap.addClass('initialized') + + addCreateEditListButton($select, $sourceSelect) + + $sourceSelect.on('change', () => { + $attributeWrap.attr('data-source', $sourceSelect.val()) + updateOptionsList($select, $sourceSelect) + toggleEditListButtonVisbility($attributeWrap, $select) + }).trigger('change') + + $select.on('change', () => { + toggleEditListButtonVisbility($attributeWrap, $select) + }).trigger('change') + }) +} + +function updateOptionsList($select, $sourceSelect) { + const currentValue = $select.val() + $select.empty() + $select.append(new Option('', '', false)) + const optionToAddToSelect = { ...formAndListIds[`${$sourceSelect.val()}s`], ...listAndFormUserValues } + + Object.entries(optionToAddToSelect).forEach(([key, label]) => { + const newOption = new Option(label, key, false, key == currentValue) + $select.append(newOption) + }) +} + +function toggleEditListButtonVisbility($attributeWrap, $select) { + const $btn = $attributeWrap.find('.edit-list-btn') + $select.val() ? $btn.show() : $btn.hide() +} + +function addCreateEditListButton($select, $sourceSelect) { + const $editListButton = $(``) + $editListButton.on('click', () => { + const url = wiki.url(`?BazaR/iframe&vue=listes&action=modif_liste&voirmenu=0&onsubmit=postmessage&idliste=${$select.val()}`) + const modal = openRemoteModal(_t('LIST_UPDATE_TITLE'), url) + window.onmessage = function(e) { + if (e.data.msg === 'list_updated') { + // update the options (list name might have changed) + formAndListIds.lists[e.data.id] = e.data.title + updateOptionsList($select, $sourceSelect) + toastMessage(_t('LIST_UPDATED'), 3000, 'alert alert-success') + modal.close() + } + } + }) + + const $createListButton = $(``) + $createListButton.on('click', () => { + const url = wiki.url('?BazaR/iframe&vue=listes&action=saisir_liste&voirmenu=0&onsubmit=postmessage') + const modal = openRemoteModal(_t('LIST_CREATE_TITLE'), url) + window.onmessage = function(e) { + if (e.data.msg === 'list_created') { + // update the options with the new List + formAndListIds.lists[e.data.id] = e.data.title + updateOptionsList($select, $sourceSelect) + // select the newly created List + $select.val(e.data.id) + toastMessage(_t('LIST_CREATED'), 3000, 'alert alert-success') + modal.close() + } + } + }) + $select.closest('.input-wrap').append($editListButton).append($createListButton) +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/README b/tools/bazar/presentation/javascripts/form-edit-template/fields/README new file mode 100644 index 000000000..d982070be --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/README @@ -0,0 +1,32 @@ +export default { + field: { + label: 'New Field', + name: 'newfield', + attrs: { type: 'newfield' }, + icon: '' + // icon: '' + }, + // Any special attributes + attributes: { + my_attribute: { label: 'Specific attribute', value: '' }, + }, + // Disable default attributes from jQuery formBuilder + disabledAttributes: [], + // If you want some attributes to displayed in advance attributes section + advancedAttributes: [], + // mapping for old yeswiki syntax (field***attribute***other_attribute) + attributesMapping: {}, + // How to render the input + renderInput(fieldData) { + return { field: '' } + }, +} + +// How to add a field from an extension + +window.formBuilderFields.newfield = { + // field config, see above + field: {}, + attributes: {}, + renderInput() {} +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/acls.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/acls.js new file mode 100644 index 000000000..b47d6764a --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/acls.js @@ -0,0 +1,108 @@ +import { aclsOptions, aclsCommentOptions } from './commons/attributes.js' +import renderHelper from './commons/render-helper.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_ACL_LABEL'), + name: 'acls', + attrs: { type: 'acls' }, + icon: '' + }, + attributes: { + read: { + label: _t('BAZ_FORM_EDIT_ACL_READ_LABEL'), + options: aclsOptions, + multiple: true + }, + write: { + label: _t('BAZ_FORM_EDIT_ACL_WRITE_LABEL'), + options: aclsOptions, + multiple: true + }, + comment: { + label: _t('BAZ_FORM_EDIT_ACL_COMMENT_LABEL'), + options: aclsCommentOptions, + multiple: true + }, + askIfActivateComments: { + label: _t('BAZ_FORM_EDIT_ACL_ASK_IF_ACTIVATE_COMMENT_LABEL'), + options: { 0: _t('NO'), 1: _t('YES') } + }, + fieldLabel: { + label: _t('BAZ_FORM_EDIT_COMMENTS_FIELD_ACTIVATE_LABEL'), + value: '', + placeholder: _t('BAZ_ACTIVATE_COMMENTS') + }, + hint: { + label: _t('BAZ_FORM_EDIT_HELP'), + value: '', + placeholder: _t('BAZ_ACTIVATE_COMMENTS_HINT') + }, + value: { + label: _t('BAZ_FORM_EDIT_COMMENTS_FIELD_DEFAULT_ACTIVATION_LABEL'), + options: { non: _t('NO'), oui: _t('YES'), ' ': '' } + } + }, + disabledAttributes: [ + 'label', 'required' + ], + attributesMapping: { + 0: 'type', + 1: 'read', + 2: 'write', + 3: 'comment', + 4: 'fieldLabel', + 5: 'value', + 6: 'name', + 7: 'askIfActivateComments', + 8: '', + 9: '', + 10: 'hint' + }, + renderInput(field) { + return { + field: field.askIfActivateComments == 1 ? ` ${field.fieldlabel || _t('BAZ_ACTIVATE_COMMENTS')}` : '', + onRender() { + const currentField = renderHelper.getHolder(field).parent() + renderHelper.initializeField(currentField) + $(currentField) + .find('select[name=askIfActivateComments]:not(.initialized)') + .change((event) => { + const element = event.target + + const base = $(element).closest('.acls-field.form-field') + $(element).addClass('initialized') + + const nameInput = $(base).find('input[type=text][name=name]') + if (nameInput.val().trim().length == 0 + || nameInput.val().trim() == 'bf_acls') { + nameInput.val('bf_commentaires') + } + + const visibleSelect = $(base).find('select[name=askIfActivateComments]') + const selectedValue = visibleSelect.val() + + const subElements = $(base) + .find('.form-group.fieldLabel-wrap,.form-group.hint-wrap,.form-group.name-wrap,.form-group.value-wrap') + if ([1, '1'].includes(selectedValue)) { + subElements.show() + const commentInput = $(base).find('select[name=comment]') + const currentValue = commentInput.val() + if (Array.isArray(currentValue) + && ( + currentValue.length == 0 + || (currentValue.length == 1 && currentValue.includes('comments-closed')) + )) { + commentInput.val([' + ']) + } + } else { + subElements.hide() + } + }) + .trigger('change') + renderHelper.defineLabelHintForGroup(field, 'fieldlabel', _t('BAZ_FORM_EDIT_COMMENTS_FIELD_ACTIVATE_HINT')) + renderHelper.defineLabelHintForGroup(field, 'hint', _t('BAZ_FORM_EDIT_COMMENTS_FIELD_ACTIVATE_HINT')) + } + } + }, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/bookmarklet.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/bookmarklet.js new file mode 100644 index 000000000..3ead552b0 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/bookmarklet.js @@ -0,0 +1,40 @@ +import renderHelper from './commons/render-helper.js' + +export default { + field: { + label: 'Bookmarklet', + name: 'bookmarklet', + attrs: { type: 'bookmarklet' }, + icon: '' + }, + attributes: { + urlField: { label: _t('BAZ_FORM_EDIT_BOOKMARKLET_URLFIELD_LABEL'), value: 'bf_url' }, + descriptionField: { label: _t('BAZ_FORM_EDIT_BOOKMARKLET_DESCRIPTIONFIELD_LABEL'), value: 'bf_description' }, + hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: _t('BAZ_FORM_EDIT_BOOKMARKLET_HINT_DEFAULT_VALUE') }, + text: { label: _t('BAZ_FORM_EDIT_BOOKMARKLET_TEXT_LABEL'), value: _t('BAZ_FORM_EDIT_BOOKMARKLET_TEXT_VALUE') } + }, + disabledAttributes: [ + 'required', 'value' + ], + attributesMapping: { + 0: 'type', + 1: 'name', + 2: 'label', + 3: 'urlField', + 4: 'descriptionField', + 5: 'text', + 6: '', + 7: '', + 8: '', + 9: '', + 10: 'hint' + }, + renderInput(field) { + return { + field: '', + onRender() { + renderHelper.prependHint(field, _t('BAZ_BOOKMARKLET_HINT', { '\\n': '
        ' })) + } + } + }, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/calc.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/calc.js new file mode 100644 index 000000000..2d00fb27c --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/calc.js @@ -0,0 +1,45 @@ +import { readConf, defaultMapping } from './commons/attributes.js' +import renderHelper from './commons/render-helper.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_CALC_LABEL'), + name: 'calc', + attrs: { type: 'calc' }, + icon: '' + }, + attributes: { + displaytext: { + label: _t('BAZ_FORM_EDIT_DISPLAYTEXT_LABEL'), + value: '', + placeholder: '{value}' + }, + formula: { + label: _t('BAZ_FORM_EDIT_FORMULA_LABEL'), + value: '' + }, + read: readConf + // write: writeconf + }, + disabledAttributes: [ + 'required', 'value', 'default' + ], + attributesMapping: { + ...defaultMapping, + ...{ + 4: 'displaytext', + 5: 'formula', + 8: '', + 9: '' + } + }, + renderInput(field) { + return { + field: '', + onRender() { + renderHelper.prependHint(field, _t('BAZ_FORM_CALC_HINT', { '\\n': '
        ' })) + renderHelper.defineLabelHintForGroup(field, 'displaytext', _t('BAZ_FORM_EDIT_DISPLAYTEXT_HELP')) + } + } + } +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/champs_mail.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/champs_mail.js new file mode 100644 index 000000000..14bad7fb7 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/champs_mail.js @@ -0,0 +1,117 @@ +import renderHelper from './commons/render-helper.js' +import { readConf, writeconf, semanticConf, defaultMapping } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_EMAIL_LABEL'), + name: 'champs_mail', + attrs: { type: 'champs_mail' }, + icon: '' + }, + defaultIdentifier: 'bf_mail', + attributes: { + hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, + separator: { label: '' }, // separate important attrs from others + send_form_content_to_this_email: { + label: _t('BAZ_FORM_EDIT_EMAIL_SEND_FORM_CONTENT_LABEL'), + options: { 0: _t('NO'), 1: _t('YES') } + }, + replace_email_by_button: { + label: _t('BAZ_FORM_EDIT_EMAIL_REPLACE_BY_BUTTON_LABEL'), + options: { '': _t('NO'), form: _t('YES') }, + value: 'form' + }, + seeEmailAcls: { ...readConf, ...{ label: _t('BAZ_FORM_EDIT_EMAIL_SEE_MAIL_ACLS') } }, + readWhenForm: { ...readConf, ...{ label: _t('BAZ_FORM_EDIT_EMAIL_SEND_ACLS') } }, + // searchable: searchableConf, -> 10/19 Florian say that this conf is not working for now + read: readConf, + write: writeconf, + semantic: semanticConf + }, + advancedAttributes: ['read', 'write', 'semantic', 'pattern', 'defaultIdentifier', 'name', 'seeEmailAcls', 'readWhenForm'], + // disabledAttributes: [], + attributesMapping: { + ...defaultMapping, + ...{ 4: 'seeEmailAcls', 6: 'replace_email_by_button', 9: 'send_form_content_to_this_email' } + }, + renderInput(fieldData) { + return { + field: ``, + onRender() { + const currentField = renderHelper.getHolder(fieldData).parent() + renderHelper.initializeField(currentField) + const arrayEquals = (a, b) => { + if (a.length != b.length) { + return false + } + return (a.every((e) => b.includes(e)) && b.every((e) => a.includes(e))) + } + currentField.find('select[name=read]:not(.initialized)') + .on('change', (event) => { + const element = event.target + const base = $(element).closest('.champs_mail-field.form-field') + $(element).addClass('initialized') + + const readWhenFormInput = $(base).find('select[name=readWhenForm]') + if (readWhenFormInput && readWhenFormInput.length > 0 && !arrayEquals(readWhenFormInput.val(), $(element).val())) { + readWhenFormInput.val($(element).val()) + } + }).trigger('change') + currentField.find('select[name=readWhenForm]:not(.initialized)') + .on('change', (event) => { + const element = event.target + const base = $(element).closest('.champs_mail-field.form-field') + $(element).addClass('initialized') + + const readInput = $(base).find('select[name=read]') + if (readInput && readInput.length > 0 && !arrayEquals(readInput.val(), $(element).val())) { + readInput.val($(element).val()) + } + }).trigger('change') + currentField + .find('select[name=replace_email_by_button]:not(.initialized)') + .on('change', (event) => { + const element = event.target + + const base = $(element).closest('.champs_mail-field.form-field') + $(element).addClass('initialized') + + const setDisplay = (base, name, newValue) => { + const wrapper = $(base).find(`div.form-group.${name}-wrap`) + if (wrapper && wrapper.length > 0) { + if (newValue) { + wrapper.show() + } else { + wrapper.hide() + } + } + } + if ($(element).val() == 'form') { + // when chosing 'form' (or at init), if readAcl is ' % ', prefer ' * ' + // to show button to everyone + const field = currentField.find('select[name=read]') + if (arrayEquals(field.val(), [' % '])) { + field.val([' * ']) + field.trigger('change') + } + setDisplay(base, 'readWhenForm', 1) + setDisplay(base, 'seeEmailAcls', 1) + setDisplay(base, 'read', 0) + } else { + // when chosing 'text' (or at init), if readAcl is ' * ', prefer ' % ' + // to force email not to be shown + const field = currentField.find('select[name=read]') + if (arrayEquals(field.val(), [' * ']) && !currentField.find('select[name=write]').val().includes(' * ')) { + field.val([' % ']) + field.trigger('change') + } + setDisplay(base, 'readWhenForm', 0) + setDisplay(base, 'seeEmailAcls', 0) + setDisplay(base, 'read', 1) + } + }) + .trigger('change') + } + } + }, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/checkbox-group.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/checkbox-group.js new file mode 100644 index 000000000..dcb34c29d --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/checkbox-group.js @@ -0,0 +1,32 @@ +import { selectConf, listsMapping } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_CHECKBOX_LABEL'), + name: 'checkbox-group', + attrs: { type: 'checkbox-group' }, + icon: '' + }, + attributes: { + ...selectConf, + ...{ + fillingMode: { + label: _t('BAZ_FORM_EDIT_FILLING_MODE_LABEL'), + options: { + ' ': _t('BAZ_FORM_EDIT_FILLING_MODE_NORMAL'), + tags: _t('BAZ_FORM_EDIT_FILLING_MODE_TAGS'), + dragndrop: _t('BAZ_FORM_EDIT_FILLING_MODE_DRAG_AND_DROP') + } + }, + queries: { + label: _t('BAZ_FORM_EDIT_QUERIES_LABEL'), + value: '', + placeholder: 'ex. : checkboxfiche6=PageTag ; cf. https://yeswiki.net/?LierFormulairesEntreEux' + } + } + }, + advancedAttributes: ['read', 'write', 'semantic', 'queries', 'options'], + // disabledAttributes: [], + attributesMapping: { ...listsMapping, ...{ 7: 'fillingMode' } }, + // renderInput(fieldData) {}, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/collaborative_doc.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/collaborative_doc.js new file mode 100644 index 000000000..a46705ed9 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/collaborative_doc.js @@ -0,0 +1,11 @@ +export default { + field: { + name: 'collaborative_doc', + attrs: { type: 'collaborative_doc' } + }, + attributes: {}, + // disabledAttributes: [], + renderInput(field) { + return { field: _t('BAZ_FORM_EDIT_COLLABORATIVE_DOC_FIELD') } + }, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/commons/attributes.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/commons/attributes.js new file mode 100644 index 000000000..df7d28972 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/commons/attributes.js @@ -0,0 +1,122 @@ +// groupsList and formAndListIds are defined in forms_form.twig + +// When user add manuall via wikiCode a list or a formId that does not exist, keep the value +// so it can be added in the select option list +const _listAndFormUserValues = {} +$('#form-builder-text').val().trim().split('\n').forEach((textField) => { + const fieldValues = textField.split('***') + if (fieldValues.length > 1) { + const [field, value] = fieldValues + if (['checkboxfiche', 'checkbox', 'liste', 'radio', 'listefiche', 'radiofiche'].includes(field) + && value && value != ' ' && !(value in formAndListIds.forms) && !(value in formAndListIds.lists)) { + _listAndFormUserValues[value] = value + } + } +}) +export const listAndFormUserValues = _listAndFormUserValues + +// Some attributes configuration used in multiple fields +export const visibilityOptions = { + ' * ': _t('EVERYONE'), + ' + ': _t('IDENTIFIED_USERS'), + ' % ': _t('BAZ_FORM_EDIT_OWNER_AND_ADMINS'), + '@admins': _t('MEMBER_OF_GROUP', { groupName: 'admin' }) +} + +// create list of user groups +// groupsList variable is defined in forms_form.twig +const _formattedGroupList = [] +groupsList.map((group) => { + _formattedGroupList[`@${group}`] = _t('MEMBER_OF_GROUP', { groupName: group }) +}) +export const formattedGroupList = _formattedGroupList + +export const aclsOptions = { + ...visibilityOptions, + ...{ + user: + _t('BAZ_FORM_EDIT_USER') + }, + ...formattedGroupList +} + +export const aclsCommentOptions = { + ...{ 'comments-closed': _t('BAZ_FORM_EDIT_COMMENTS_CLOSED') }, + ...Object.fromEntries(Object.entries(visibilityOptions).filter(([key])=>key != ' * ')), + ...{ user: _t('BAZ_FORM_EDIT_USER') }, + ...formattedGroupList +} + +export const readConf = { + label: _t('BAZ_FORM_EDIT_CAN_BE_READ_BY'), + options: { ...visibilityOptions, ...formattedGroupList }, + multiple: true +} + +export const writeconf = { + label: _t('BAZ_FORM_EDIT_CAN_BE_WRITTEN_BY'), + options: { ...visibilityOptions, ...formattedGroupList }, + multiple: true +} + +export const searchableConf = { + label: _t('BAZ_FORM_EDIT_SEARCH_LABEL'), + options: { '': _t('NO'), 1: _t('YES') } +} + +export const semanticConf = { + label: _t('BAZ_FORM_EDIT_SEMANTIC_LABEL'), + value: '', + placeholder: 'Ex: https://schema.org/name' +} + +export const selectConf = { + subtype2: { + label: _t('BAZ_FORM_EDIT_SELECT_SUBTYPE2_LABEL'), + options: { + list: _t('BAZ_FORM_EDIT_SELECT_SUBTYPE2_LIST'), + form: _t('BAZ_FORM_EDIT_SELECT_SUBTYPE2_FORM') + } + }, + listeOrFormId: { + label: _t('BAZ_FORM_EDIT_SELECT_LIST_FORM_ID'), + options: { + ...{ '': '' }, + ...formAndListIds.lists, + ...formAndListIds.forms, + ...listAndFormUserValues + } + }, + defaultValue: { + label: _t('BAZ_FORM_EDIT_SELECT_DEFAULT'), + value: '' + }, + hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, + read: readConf, + write: writeconf, + semantic: semanticConf +} + +// Mapping betwwen yes wiki syntax and FormBuilder json syntax +export const defaultMapping = { + 0: 'type', + 1: 'name', + 2: 'label', + 3: 'size', + 4: 'maxlength', + 5: 'value', + 6: 'pattern', + 7: 'subtype', + 8: 'required', + 9: 'searchable', + 10: 'hint', + 11: 'read', + 12: 'write', + 14: 'semantic', + 15: 'queries' +} + +export const listsMapping = { + ...defaultMapping, + ...{ 1: 'listeOrFormId', 5: 'defaultValue', 6: 'name' } +} \ No newline at end of file diff --git a/tools/bazar/presentation/javascripts/form-edit-template-helper.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/commons/render-helper.js similarity index 99% rename from tools/bazar/presentation/javascripts/form-edit-template-helper.js rename to tools/bazar/presentation/javascripts/form-edit-template/fields/commons/render-helper.js index 674ddb491..46bf76adf 100644 --- a/tools/bazar/presentation/javascripts/form-edit-template-helper.js +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/commons/render-helper.js @@ -1,5 +1,5 @@ // function to render help for tabs and tabchange -const templateHelper = { +export default { cache: {}, holders: {}, ids: {}, diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/conditionschecking.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/conditionschecking.js new file mode 100644 index 000000000..f4d5577e0 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/conditionschecking.js @@ -0,0 +1,63 @@ +import renderHelper from './commons/render-helper.js' +import { defaultMapping } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_LABEL'), + name: 'conditionschecking', + attrs: { type: 'conditionschecking' }, + icon: '' + }, + // Define an entire group of fields to be added to the stage at a time. + set: { + label: _t('BAZ_FORM_EDIT_CONDITIONCHECKING_LABEL'), + name: 'conditionschecking', + icon: '', + fields: [ + { + type: 'conditionschecking', + label: _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_LABEL') + }, + { + type: 'labelhtml', + label: _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_END'), + content_saisie: `
        ` + } + ] + }, + attributes: { + condition: { + label: _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_LABEL'), + value: '' + }, + clean: { + label: _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_CLEAN_LABEL'), + options: { + ' ': _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_CLEAN_OPTION'), + noclean: _t('BAZ_FORM_EDIT_CONDITIONS_CHECKING_NOCLEAN_OPTION') + } + } + }, + disabledAttributes: [ + 'required', 'value', 'name', 'label' + ], + attributesMapping: { + ...defaultMapping, + ...{ + 1: 'condition', + 2: 'clean', + 5: '', + 8: '', + 9: '' + } + }, + renderInput(data) { + return { + field: '', + onRender() { + renderHelper.prependHint(data, _t('BAZ_FORM_CONDITIONSCHEKING_HINT', { '\\n': '
        ' })) + renderHelper.defineLabelHintForGroup(data, 'noclean', _t('BAZ_FORM_CONDITIONSCHEKING_NOCLEAN_HINT')) + } + } + } +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/custom.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/custom.js new file mode 100644 index 000000000..48a746e3a --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/custom.js @@ -0,0 +1,48 @@ +export default { + field: { + label: _t('BAZ_FORM_EDIT_CUSTOM_LABEL'), + name: 'custom', + attrs: { type: 'custom' }, + icon: '' + }, + attributes: { + param0: { label: 'Param0', value: '' }, + param1: { label: 'Param1', value: '' }, + param2: { label: 'Param2', value: '' }, + param3: { label: 'Param3', value: '' }, + param4: { label: 'Param4', value: '' }, + param5: { label: 'Param5', value: '' }, + param6: { label: 'Param6', value: '' }, + param7: { label: 'Param7', value: '' }, + param8: { label: 'Param8', value: '' }, + param9: { label: 'Param9', value: '' }, + param10: { label: 'Param10', value: '' }, + param11: { label: 'Param11', value: '' }, + param12: { label: 'Param12', value: '' }, + param13: { label: 'Param13', value: '' }, + param14: { label: 'Param14', value: '' }, + param15: { label: 'Param15', value: '' } + }, + // disabledAttributes: [], + attributesMapping: { + 0: 'param0', + 1: 'param1', + 2: 'param2', + 3: 'param3', + 4: 'param4', + 5: 'param5', + 6: 'param6', + 7: 'param7', + 8: 'param8', + 9: 'param9', + 10: 'param10', + 11: 'param11', + 12: 'param12', + 13: 'param13', + 14: 'param14', + 15: 'param15' + }, + renderInput(field) { + return { field: '' } + }, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/date.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/date.js new file mode 100644 index 000000000..937f8faee --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/date.js @@ -0,0 +1,25 @@ +import { readConf, writeconf, semanticConf, defaultMapping } from './commons/attributes.js' + +export default { + // field: { + // label: "Sélecteur de date", + // name: "jour", + // attrs: { type: "date" }, + // icon: '', + // }, + defaultIdentifier: 'bf_date_debut_evenement', + attributes: { + today_button: { + label: _t('BAZ_FORM_EDIT_DATE_TODAY_BUTTON'), + options: { ' ': _t('NO'), today: _t('YES') } + }, + hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, + read: readConf, + write: writeconf, + semantic: semanticConf + }, + advancedAttributes: ['read', 'write', 'semantic', 'today_button'], + // disabledAttributes: [], + attributesMapping: { ...defaultMapping, ...{ 5: 'today_button' } }, + // renderInput(fieldData) {}, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/file.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/file.js new file mode 100644 index 000000000..1248fdec1 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/file.js @@ -0,0 +1,20 @@ +import { readConf, writeconf, semanticConf, defaultMapping } from './commons/attributes.js' + +export default { + attributes: { + readlabel: { + label: _t('BAZ_FORM_EDIT_FILE_READLABEL_LABEL'), + value: '', + placeholder: _t('BAZ_FILEFIELD_FILE') + }, + maxsize: { label: _t('BAZ_FORM_EDIT_FILE_MAXSIZE_LABEL'), value: '' }, + hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, + read: readConf, + write: writeconf, + semantic: semanticConf + }, + advancedAttributes: ['read', 'write', 'semantic', 'maxsize'], + // disabledAttributes: [], + attributesMapping: { ...defaultMapping, ...{ 3: 'maxsize', 6: 'readlabel' } }, + // renderInput(fieldData) {}, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/hidden.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/hidden.js new file mode 100644 index 000000000..cd5a92829 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/hidden.js @@ -0,0 +1,6 @@ +export default { + attributes: {}, + // disabledAttributes: [], + attributesMapping: { 0: 'type', 1: 'name', 5: 'value' }, + // renderInput(fieldData) {}, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/image.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/image.js new file mode 100644 index 000000000..13dc3881e --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/image.js @@ -0,0 +1,42 @@ +import { readConf, writeconf, semanticConf, defaultMapping } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_IMAGE_LABEL'), + name: 'image', + attrs: { type: 'image' }, + icon: '' + }, + defaultIdentifier: 'bf_image', + attributes: { + hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, + thumb_height: { label: _t('BAZ_FORM_EDIT_IMAGE_HEIGHT'), value: '300' }, + thumb_width: { label: _t('BAZ_FORM_EDIT_IMAGE_WIDTH'), value: '400' }, + resize_height: { label: _t('BAZ_FORM_EDIT_IMAGE_HEIGHT_RESIZE'), value: '600' }, + resize_width: { label: _t('BAZ_FORM_EDIT_IMAGE_WIDTH_RESIZE'), value: '800' }, + align: { + label: _t('BAZ_FORM_EDIT_IMAGE_ALIGN_LABEL'), + value: 'right', + options: { left: _t('LEFT'), right: _t('RIGHT') } + }, + read: readConf, + write: writeconf, + semantic: semanticConf + }, + advancedAttributes: ['read', 'write', 'semantic', 'thumb_height','thumb_width','resize_height','resize_width'], + // disabledAttributes: [], + attributesMapping: { + ...defaultMapping, + ...{ + 1: 'name', + 3: 'thumb_height', + 4: 'thumb_width', + 5: 'resize_height', + 6: 'resize_width', + 7: 'align' + } + }, + renderInput(fieldData) { + return { field: '' } + } +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/inscriptionliste.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/inscriptionliste.js new file mode 100644 index 000000000..90a2dd69c --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/inscriptionliste.js @@ -0,0 +1,30 @@ +export default { + field: { + label: _t('BAZ_FORM_EDIT_SUBSCRIBE_LIST_LABEL'), + name: 'inscriptionliste', + attrs: { type: 'inscriptionliste' }, + icon: '' + }, + attributes: { + subscription_email: { label: _t('BAZ_FORM_EDIT_INSCRIPTIONLISTE_EMAIL_LABEL'), value: '' }, + email_field_id: { + label: _t('BAZ_FORM_EDIT_INSCRIPTIONLISTE_EMAIL_FIELDID'), + value: 'bf_mail' + }, + mailing_list_tool: { + label: _t('BAZ_FORM_EDIT_INSCRIPTIONLISTE_MAILINGLIST'), + value: '' + } + }, + // disabledAttributes: [], + attributesMapping: { + 0: 'type', + 1: 'subscription_email', + 2: 'label', + 3: 'email_field_id', + 4: 'mailing_list_tool' + }, + renderInput(field) { + return { field: '' } + }, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/labelhtml.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/labelhtml.js new file mode 100644 index 000000000..528e9d850 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/labelhtml.js @@ -0,0 +1,40 @@ +export default { + field: { + label: _t('BAZ_FORM_EDIT_CUSTOM_HTML_LABEL'), + name: 'labelhtml', + attrs: { type: 'labelhtml' }, + icon: '' + }, + attributes: { + label: { + label: _t('BAZ_FORM_EDIT_CUSTOM_HTML_LABEL'), + value: '' + }, + content_saisie: { + label: _t('BAZ_FORM_EDIT_EDIT_CONTENT_LABEL'), + type: 'textarea', + rows: '4', + value: '' + }, + content_display: { + label: _t('BAZ_FORM_EDIT_VIEW_CONTENT_LABEL'), + type: 'textarea', + rows: '4', + value: '' + } + }, + // disabledAttributes: [], + attributesMapping: { + 0: 'type', + 1: 'content_saisie', + 2: '', + 3: 'content_display' + }, + renderInput(field) { + return { + field: + `
        ${field.content_saisie || ''}
        +
        ${field.content_display || ''}
        ` + } + } +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/listefichesliees.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/listefichesliees.js new file mode 100644 index 000000000..043a9b3e9 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/listefichesliees.js @@ -0,0 +1,57 @@ +import { defaultMapping, readConf, writeconf, semanticConf } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_LINKEDENTRIES_LABEL'), + name: 'listefichesliees', + attrs: { type: 'listefichesliees' }, + icon: '' + }, + attributes: { + id: { label: _t('BAZ_FORM_EDIT_LISTEFICHES_FORMID_LABEL'), value: '' }, + query: { + label: _t('BAZ_FORM_EDIT_LISTEFICHES_QUERY_LABEL'), + value: '', + placeholder: _t('BAZ_FORM_EDIT_LISTEFICHES_QUERY_PLACEHOLDER', { url: 'https://yeswiki.net/?DocQuery/iframe' }) + }, + param: { + label: _t('BAZ_FORM_EDIT_LISTEFICHES_PARAMS_LABEL'), + value: '', + placeholder: 'Ex: champs="bf_nom" ordre="desc"' + }, + number: { label: _t('BAZ_FORM_EDIT_LISTEFICHES_NUMBER_LABEL'), value: '', placeholder: '' }, + template: { + label: _t('BAZ_FORM_EDIT_LISTEFICHES_TEMPLATE_LABEL'), + value: '', + placeholder: + _t('BAZ_FORM_EDIT_LISTEFICHES_TEMPLATE_PLACEHOLDER') + }, + type_link: { + label: _t('BAZ_FORM_EDIT_LISTEFICHES_LISTTYPE_LABEL'), + value: '', + placeholder: + _t('BAZ_FORM_EDIT_LISTEFICHES_LISTTYPE_PLACEHOLDER') + }, + read: readConf, + write: writeconf, + semantic: semanticConf + }, + advancedAttributes: ['read', 'write', 'semantic', 'template', 'type_link', 'param','query'], + disabledAttributes: ['required', 'value', 'name'], + attributesMapping: { + ...defaultMapping, + ...{ + 0: 'type', + 1: 'id', + 2: 'query', + 3: 'param', + 4: 'number', + 5: 'template', + 6: 'type_link', + 7: 'label' + } + }, + renderInput(field) { + return { field: '' } + }, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/map.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/map.js new file mode 100644 index 000000000..1b6bf5060 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/map.js @@ -0,0 +1,177 @@ +import renderHelper from './commons/render-helper.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_GEO_LABEL'), + name: 'map', + attrs: { type: 'map' }, + icon: '' + }, + attributes: { + name_latitude: { label: _t('BAZ_FORM_EDIT_MAP_LATITUDE'), value: 'bf_latitude' }, + name_longitude: { label: _t('BAZ_FORM_EDIT_MAP_LONGITUDE'), value: 'bf_longitude' }, + autocomplete_street: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STREET'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STREET_PLACEHOLDER') }, + autocomplete_postalcode: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_POSTALCODE'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_POSTALCODE_PLACEHOLDER') }, + autocomplete_town: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_TOWN'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_TOWN_PLACEHOLDER') }, + autocomplete_county: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_COUNTY'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_COUNTY_PLACEHOLDER') }, + autocomplete_state: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STATE'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STATE_PLACEHOLDER') }, + autocomplete_other: { label: '', value: '' }, + autocomplete_street1: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STREET1'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STREET1_PLACEHOLDER') }, + autocomplete_street2: { label: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STREET2'), value: '', placeholder: _t('BAZ_FORM_EDIT_MAP_AUTOCOMPLETE_STREET2_PLACEHOLDER') }, + geolocate: { + label: _t('BAZ_FORM_EDIT_GEOLOCATE'), + options: { 0: _t('NO'), 1: _t('YES') } + }, + show_map_in_entry_view: { + label: _t('BAZ_FORM_EDIT_SHOW_MAP_IN_ENTRY_VIEW'), + options: { 0: _t('NO'), 1: _t('YES') } + } + }, + advancedAttributes: ['read', 'write', 'semantic', 'geolocate', 'autocomplete_other', 'autocomplete_street1','autocomplete_street2', 'show_map_in_entry_view'], + // disabledAttributes: [], + attributesMapping: { + 0: 'type', + 1: 'name_latitude', + 2: 'name_longitude', + 3: '', + 4: 'autocomplete_postalcode', + 5: 'autocomplete_town', + 6: 'autocomplete_other', + 7: 'show_map_in_entry_view', + 8: 'required' + }, + renderInput(fieldData) { + return { + field: _t('BAZ_FORM_EDIT_MAP_FIELD'), + onRender() { + const toggleState = function(name, state) { + const formGroup = renderHelper.getFormGroup(fieldData, name) + if (formGroup !== null) { + if (state === 'show') { + formGroup.show() + } else { + formGroup.hide() + } + } + } + const toggleStates = function(state) { + ['autocomplete_street1', 'autocomplete_street2'].forEach((name) => toggleState(name, state)) + } + // initMapAutocompleteUpdate() + $('.map-field.form-field') + .find('input[type=text][name=autocomplete_street]:not(.initialized)' + + ',input[type=text][name=autocomplete_street1]:not(.initialized)' + + ',input[type=text][name=autocomplete_street2]:not(.initialized)' + + ',input[type=text][name=autocomplete_county]:not(.initialized)' + + ',input[type=text][name=autocomplete_state]:not(.initialized)' + + ',select[name=geolocate]:not(.initialized)') + .on('change', (event) => { + // mapAutocompleteUpdate(event.target) + const element = event.target + const base = $(element).closest('.map-field.form-field') + if (!$(element).hasClass('initialized')) { + $(element).addClass('initialized') + if ($(element).val().length == 0 || $(element).prop('tagName') === 'SELECT') { + // mapAutocompleteUpdateExtractFromOther(base) + const other = { + geolocate: '', + street: '', + street1: '', + street2: '', + county: '', + state: '' + } + const autoCompleteOther = $(base) + .find('input[type=text][name=autocomplete_other]') + .first() + if (autoCompleteOther && autoCompleteOther.length > 0) { + const value = autoCompleteOther.val().split('|') + other.geolocate = ['1', 1, true].includes(value[0]) ? '1' : '0' + other.street = value[1] || '' + other.street1 = value[2] || '' + other.street2 = value[3] || '' + other.county = value[4] || '' + other.state = value[5] || '' + } + switch (element.getAttribute('name')) { + case 'autocomplete_street': + $(element).val(other.street) + break + case 'autocomplete_street1': + $(element).val(other.street1) + break + case 'autocomplete_street2': + $(element).val(other.street2) + break + case 'autocomplete_county': + $(element).val(other.county) + break + case 'autocomplete_state': + $(element).val(other.state) + break + case 'geolocate': + $(element).val(other.geolocate === '1' ? '1' : '0') + break + default: + break + } + } + } else { + // autocompleteUpdateSaveToOther(base) + const autoCompleteOther = $(base) + .find('input[type=text][name=autocomplete_other]') + .first() + if (autoCompleteOther && autoCompleteOther.length > 0) { + const results = { + geolocate: '', + street: '', + street1: '', + street2: '', + county: '', + state: '' + } + const associations = { + street: 'autocomplete_street', + street1: 'autocomplete_street1', + street2: 'autocomplete_street2', + county: 'autocomplete_county', + state: 'autocomplete_state' + } + for (const key in associations) { + const autoCompleteField = $(base) + .find(`input[type=text][name=${associations[key]}]`) + .first() + if (autoCompleteField && autoCompleteField.length > 0) { + results[key] = autoCompleteField.val() || '' + } + } + // geolocate + const geolocateField = $(base) + .find('select[name=geolocate]') + .first() + if (geolocateField && geolocateField.length > 0) { + results.geolocate = geolocateField.val() || '' + } + autoCompleteOther.val( + `${results.geolocate + }|${results.street}` + + `|${results.street1}` + + `|${results.street2}` + + `|${results.county}` + + `|${results.state}` + ) + } + } + }) + .trigger('change') + + renderHelper.prependHTMLBeforeGroup(fieldData, 'autocomplete_street', ` +
        + ${_t('GEOLOCATER_GROUP_GEOLOCATIZATION')} +
        ${_t('GEOLOCATER_GROUP_GEOLOCATIZATION_HINT')}
        +
        + `) + } + } + } +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/metadatas.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/metadatas.js new file mode 100644 index 000000000..e085c1385 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/metadatas.js @@ -0,0 +1,36 @@ +export default { + field: { + label: _t('BAZ_FORM_EDIT_METADATA_LABEL'), + name: 'metadatas', + attrs: { type: 'metadatas' }, + icon: '' + }, + attributes: { + theme: { + label: _t('BAZ_FORM_EDIT_METADATA_THEME_LABEL'), + value: '', + placeholder: 'margot, interface, colibris' + }, + squelette: { label: _t('BAZ_FORM_EDIT_METADATA_SQUELETON_LABEL'), value: '1col.tpl.html' }, + style: { + label: _t('BAZ_FORM_EDIT_METADATA_STYLE_LABEL'), + value: '', + placeholder: 'bootstrap.css...' + }, + preset: { + label: _t('BAZ_FORM_EDIT_METADATA_PRESET_LABEL'), + value: '', + placeholder: `blue.css (${_t('BAZ_FORM_EDIT_METADATA_PRESET_PLACEHOLDER')})` + }, + image: { + label: _t('BAZ_FORM_EDIT_METADATA_BACKGROUND_IMAGE_LABEL'), + value: '', + placeholder: 'foret.jpg...' + } + }, + // disabledAttributes: [], + attributesMapping: { 0: 'type', 1: 'theme', 2: 'squelette', 3: 'style', 4: 'image', 5: 'preset' }, + renderInput(field) { + return { field: '' } + }, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/radio-group.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/radio-group.js new file mode 100644 index 000000000..27e2e6e89 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/radio-group.js @@ -0,0 +1,31 @@ +import { selectConf, listsMapping } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_RADIO_LABEL'), + name: 'radio-group', + attrs: { type: 'radio-group' }, + icon: '' + }, + attributes: { + ...selectConf, + ...{ + fillingMode: { + label: _t('BAZ_FORM_EDIT_FILLING_MODE_LABEL'), + options: { + ' ': _t('BAZ_FORM_EDIT_FILLING_MODE_NORMAL'), + tags: _t('BAZ_FORM_EDIT_FILLING_MODE_TAGS') + } + }, + queries: { + label: _t('BAZ_FORM_EDIT_QUERIES_LABEL'), + value: '', + placeholder: 'ex. : checkboxfiche6=PageTag ; cf. https://yeswiki.net/?LierFormulairesEntreEux' + } + } + }, + advancedAttributes: ['read', 'write', 'semantic', 'queries', 'fillingMode','options'], + // disabledAttributes: [], + attributesMapping: { ...listsMapping, ...{ 7: 'fillingMode' } }, + // renderInput(fieldData) {}, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/reactions.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/reactions.js new file mode 100644 index 000000000..638d99a5d --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/reactions.js @@ -0,0 +1,61 @@ +import renderHelper from './commons/render-helper.js' +import { readConf, writeconf, semanticConf, defaultMapping } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_REACTIONS_FIELD'), + name: 'reactions', + attrs: { type: 'reactions' }, + icon: '' + }, + attributes: { + fieldlabel: { + label: _t('BAZ_REACTIONS_FIELD_ACTIVATE_LABEL'), + value: '', + placeholder: _t('BAZ_ACTIVATE_REACTIONS') + }, + value: { + label: _t('BAZ_REACTIONS_FIELD_DEFAULT_ACTIVATION_LABEL'), + options: { oui: _t('YES'), non: _t('NO') } + }, + labels: { + label: _t('BAZ_REACTIONS_FIELD_LABELS_LABEL'), + value: '' + }, + images: { + label: _t('BAZ_REACTIONS_FIELD_IMAGES_LABEL'), + value: '', + placeholder: _t('BAZ_REACTIONS_FIELD_IMAGES_PLACEHOLDER') + }, + ids: { + label: _t('BAZ_REACTIONS_FIELD_IDS_LABEL'), + value: '' + }, + read: readConf, + write: writeconf, + semantic: semanticConf + }, + disabledAttributes: [ + 'label', 'required' + ], + attributesMapping: { + ...defaultMapping, + ...{ + 2: 'ids', + 3: 'labels', + 4: 'images', + 6: 'fieldlabel' + } + }, + renderInput(field) { + return { + field: ` ${field.fieldlabel || _t('BAZ_ACTIVATE_REACTIONS')}`, + onRender() { + renderHelper.defineLabelHintForGroup(field, 'fieldlabel', _t('BAZ_REACTIONS_FIELD_ACTIVATE_HINT')) + renderHelper.defineLabelHintForGroup(field, 'ids', _t('BAZ_REACTIONS_FIELD_IDS_HINT')) + renderHelper.defineLabelHintForGroup(field, 'images', _t('BAZ_REACTIONS_FIELD_IMAGES_HINT')) + renderHelper.defineLabelHintForGroup(field, 'labels', _t('BAZ_REACTIONS_FIELD_LABELS_HINT')) + } + } + } +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/select.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/select.js new file mode 100644 index 000000000..c6675e181 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/select.js @@ -0,0 +1,24 @@ +import { selectConf, listsMapping } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_SELECT_LABEL'), + name: 'select', + attrs: { type: 'select' }, + icon: '' + }, + attributes: { + ...selectConf, + ...{ + queries: { + label: _t('BAZ_FORM_EDIT_QUERIES_LABEL'), + value: '', + placeholder: 'ex. : checkboxfiche6=PageTag ; cf. https://yeswiki.net/?LierFormulairesEntreEux' + } + } + }, + advancedAttributes: ['read', 'write', 'semantic', 'queries'], + // disabledAttributes: [], + attributesMapping: listsMapping, + // renderInput(fieldData) {}, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/tabchange.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/tabchange.js new file mode 100644 index 000000000..7f7b265d4 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/tabchange.js @@ -0,0 +1,47 @@ +import renderHelper from './commons/render-helper.js' +import { defaultMapping } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_TABCHANGE'), + name: 'tabchange', + attrs: { type: 'tabchange' }, + icon: '' + }, + attributes: { + formChange: { + label: _t('BAZ_FORM_EDIT_TABS_FOR_FORM'), + options: { formChange: _t('YES'), noformchange: _t('NO') }, + description: `${_t('BAZ_FORM_EDIT_TABCHANGE_CHANGE_LABEL')} ${_t('BAZ_FORM_EDIT_TABS_FOR_FORM')}` + }, + viewChange: { + label: _t('BAZ_FORM_EDIT_TABS_FOR_ENTRY'), + options: { '': _t('NO'), viewChange: _t('YES') }, + description: `${_t('BAZ_FORM_EDIT_TABCHANGE_CHANGE_LABEL')} ${_t('BAZ_FORM_EDIT_TABS_FOR_ENTRY')}` + } + }, + disabledAttributes: [ + 'required', 'value', 'name', 'label' + ], + attributesMapping: { + ...defaultMapping, + ...{ + 1: 'formChange', + 2: '', + 3: 'viewChange' + } + }, + renderInput(field) { + return { + field: '', + onRender() { + renderHelper.prependHint(field, _t('BAZ_FORM_TABS_HINT', { + '\\n': '
        ', + 'tabs-field-label': _t('BAZ_FORM_EDIT_TABS'), + 'tabchange-field-label': _t('BAZ_FORM_EDIT_TABCHANGE') + })) + renderHelper.prependHTMLBeforeGroup(field, 'formChange', $('
        ').addClass('form-group').append($('').append(_t('BAZ_FORM_EDIT_TABCHANGE_CHANGE_LABEL')))) + } + } + }, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/tabs.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/tabs.js new file mode 100644 index 000000000..af02e67c2 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/tabs.js @@ -0,0 +1,104 @@ +import renderHelper from './commons/render-helper.js' +import { defaultMapping } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_TABS'), + name: 'tabs', + attrs: { type: 'tabs' }, + icon: '' + }, + // Define an entire group of fields to be added to the stage at a time. + set: { + label: _t('BAZ_FORM_EDIT_TABS'), + name: 'tabs', + icon: '', + fields: [ + { + type: 'tabs', + label: _t('BAZ_FORM_EDIT_TABS') + }, + { + type: 'tabchange', + label: _t('BAZ_FORM_EDIT_TABCHANGE') + }, + { + type: 'tabchange', + label: _t('BAZ_FORM_EDIT_TABCHANGE') + }, + { + type: 'tabchange', + label: _t('BAZ_FORM_EDIT_TABCHANGE') + } + ] + }, + attributes: { + formTitles: { + label: _t('BAZ_FORM_EDIT_TABS_FOR_FORM'), + value: _t('BAZ_FORM_EDIT_TABS_FORMTITLES_VALUE'), + placeholder: _t('BAZ_FORM_EDIT_TABS_FORMTITLES_DESCRIPTION'), + description: _t('BAZ_FORM_EDIT_TABS_FORMTITLES_DESCRIPTION') + }, + viewTitles: { + label: _t('BAZ_FORM_EDIT_TABS_FOR_ENTRY'), + value: '', + placeholder: _t('BAZ_FORM_EDIT_TABS_VIEWTITLES_DESCRIPTION'), + description: _t('BAZ_FORM_EDIT_TABS_VIEWTITLES_DESCRIPTION') + }, + moveSubmitButtonToLastTab: { + label: _t('BAZ_FORM_EDIT_TABS_MOVESUBMITBUTTONTOLASTTAB_LABEL'), + options: { '': _t('NO'), moveSubmit: _t('YES') }, + description: _t('BAZ_FORM_EDIT_TABS_MOVESUBMITBUTTONTOLASTTAB_DESCRIPTION') + }, + btnColor: { + label: _t('BAZ_FORM_EDIT_TABS_BTNCOLOR_LABEL'), + options: { 'btn-primary': _t('PRIMARY'), 'btn-secondary-1': `${_t('SECONDARY')} 1`, 'btn-secondary-2': `${_t('SECONDARY')} 2` } + }, + btnSize: { + label: _t('BAZ_FORM_EDIT_TABS_BTNSIZE_LABEL'), + options: { '': _t('NORMAL_F'), 'btn-xs': _t('SMALL_F') } + } + }, + disabledAttributes: [ + 'required', 'value', 'name', 'label' + ], + attributesMapping: { + ...defaultMapping, + ...{ + 1: 'formTitles', + 2: '', + 3: 'viewTitles', + 5: 'moveSubmitButtonToLastTab', + 6: '', + 7: 'btnColor', + 9: 'btnSize' + } + }, + renderInput(field) { + return { + field: '', + onRender() { + renderHelper.prependHint(field, _t('BAZ_FORM_TABS_HINT', { + '\\n': '
        ', + 'tabs-field-label': _t('BAZ_FORM_EDIT_TABS'), + 'tabchange-field-label': _t('BAZ_FORM_EDIT_TABCHANGE') + })) + renderHelper.prependHTMLBeforeGroup(field, 'formTitles', $('
        ').addClass('form-group').append($('').append(_t('BAZ_FORM_EDIT_TABS_TITLES_LABEL')))) + renderHelper.defineLabelHintForGroup(field, 'formTitles', _t('BAZ_FORM_EDIT_TABS_FORMTITLES_DESCRIPTION')) + renderHelper.defineLabelHintForGroup(field, 'viewTitles', _t('BAZ_FORM_EDIT_TABS_VIEWTITLES_DESCRIPTION')) + renderHelper.prependHTMLBeforeGroup(field, 'moveSubmitButtonToLastTab', $('
        ').addClass('form-group')) + + const holder = renderHelper.getHolder(field) + if (holder) { + const formGroup = holder.find('.formTitles-wrap') + if (typeof formGroup !== undefined && formGroup.length > 0) { + const input = formGroup.find('input').first() + if (typeof input !== undefined && input.length > 0) { + $(input).val($(input).val().replace(/\|/g, ',')) + } + } + } + } + } + }, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/tags.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/tags.js new file mode 100644 index 000000000..9c0b07eca --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/tags.js @@ -0,0 +1,20 @@ +import { readConf, writeconf, semanticConf } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_TAGS_LABEL'), + name: 'tags', + attrs: { type: 'tags' }, + icon: '' + }, + attributes: { + hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, + read: readConf, + write: writeconf, + semantic: semanticConf + }, + // disabledAttributes: [], + renderInput(fieldData) { + return { field: '' } + }, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/text.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/text.js new file mode 100644 index 000000000..13fd3c851 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/text.js @@ -0,0 +1,49 @@ +import { readConf, writeconf, semanticConf } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_TEXT_LABEL'), + name: 'text', + attrs: { type: 'text' }, + icon: + '' + }, + attributes: { + size: { label: _t('BAZ_FORM_EDIT_TEXT_SIZE'), value: '' }, + maxlength: { label: _t('BAZ_FORM_EDIT_TEXT_MAX_LENGTH'), value: '' }, + hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, + separator: { label: '' }, // separate important attrs from others + subtype: { + label: _t('BAZ_FORM_EDIT_TEXT_TYPE_LABEL'), + options: { + text: _t('BAZ_FORM_EDIT_TEXT_TYPE_TEXT'), + number: _t('BAZ_FORM_EDIT_TEXT_TYPE_NUMBER'), + range: _t('BAZ_FORM_EDIT_TEXT_TYPE_RANGE'), + url: _t('BAZ_FORM_EDIT_TEXT_TYPE_URL'), + password: _t('BAZ_FORM_EDIT_TEXT_TYPE_PASSWORD'), + color: _t('BAZ_FORM_EDIT_TEXT_TYPE_COLOR') + } + }, + read: readConf, + write: writeconf, + semantic: semanticConf, + pattern: { + label: _t('BAZ_FORM_EDIT_TEXT_PATTERN'), + value: '', + placeholder: `${_t('BAZ_FORM_EDIT_ADVANCED_MODE')} Ex: [0-9]+ ou [A-Za-z]{3}, ...` + } + }, + advancedAttributes: ['read', 'write', 'semantic', 'pattern'], + // disabledAttributes: [], + renderInput(fieldData) { + let string = `` + } else if (fieldData.subtype == 'range' || fieldData.subtype == 'number') { + string += ` min="${fieldData.size || ''}" max="${fieldData.maxlength || ''}"/>` + } else { + string += ` value="${fieldData.value}"/>` + } + return { field: string } + } +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/textarea.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/textarea.js new file mode 100644 index 000000000..3283bb82b --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/textarea.js @@ -0,0 +1,36 @@ +import { readConf, writeconf, semanticConf, defaultMapping } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_TEXTAREA_LABEL'), + name: 'textarea', + attrs: { type: 'textarea' }, + icon: '' + }, + defaultIdentifier: 'bf_description', + attributes: { + syntax: { + label: _t('BAZ_FORM_EDIT_TEXTAREA_SYNTAX_LABEL'), + options: { + wiki: 'Wiki', + html: _t('BAZ_FORM_EDIT_TEXTAREA_SYNTAX_HTML'), + nohtml: _t('BAZ_FORM_EDIT_TEXTAREA_SYNTAX_NOHTML') + } + }, + hint: { label: _t('BAZ_FORM_EDIT_HELP'), value: '' }, + // size: { label: _t('BAZ_FORM_EDIT_TEXTAREA_SIZE_LABEL'), value: '' }, + rows: { + label: _t('BAZ_FORM_EDIT_TEXTAREA_ROWS_LABEL'), + type: 'number', + placeholder: _t('BAZ_FORM_EDIT_TEXTAREA_ROWS_PLACEHOLDER') + }, + read: readConf, + write: writeconf, + semantic: semanticConf + }, + advancedAttributes: ['read', 'write', 'semantic', 'pattern', 'syntax', 'rows'], + // disabledAttributes: [], + attributesMapping: { ...defaultMapping, ...{ 4: 'rows', 7: 'syntax' } }, + // renderInput(fieldData) {}, +} + diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/titre.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/titre.js new file mode 100644 index 000000000..fb9c075f5 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/titre.js @@ -0,0 +1,14 @@ +export default { + field: { + label: _t('BAZ_FORM_EDIT_TITLE_LABEL'), + name: 'titre', + attrs: { type: 'titre' }, + icon: '' + }, + attributes: {}, + // disabledAttributes: [], + attributesMapping: { 0: 'type', 1: 'value', 2: 'label' }, + renderInput(field) { + return { field: field.value } + }, +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/url.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/url.js new file mode 100644 index 000000000..6ad7a37ee --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/url.js @@ -0,0 +1,20 @@ +import { readConf, writeconf, semanticConf, defaultMapping } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_URL_LABEL'), + name: 'url', + attrs: { type: 'url' }, + icon: '' + }, + attributes: { + read: readConf, + write: writeconf, + semantic: semanticConf + }, + advancedAttributes: ['read', 'write', 'semantic'], + // disabledAttributes: [], + renderInput(fieldData) { + return { field: `` } + } +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/fields/utilisateur_wikini.js b/tools/bazar/presentation/javascripts/form-edit-template/fields/utilisateur_wikini.js new file mode 100644 index 000000000..efba77bcb --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/fields/utilisateur_wikini.js @@ -0,0 +1,53 @@ +import renderHelper from './commons/render-helper.js' +import { defaultMapping } from './commons/attributes.js' + +export default { + field: { + label: _t('BAZ_FORM_EDIT_USERS_WIKINI_LABEL'), + name: 'utilisateur_wikini', + attrs: { type: 'utilisateur_wikini' }, + icon: '' + }, + attributes: { + name_field: { label: _t('BAZ_FORM_EDIT_USERS_WIKINI_NAME_FIELD_LABEL'), value: 'bf_titre' }, + email_field: { + label: _t('BAZ_FORM_EDIT_USERS_WIKINI_EMAIL_FIELD_LABEL'), + value: 'bf_mail' + }, + // mailing_list: { + // label: "Inscrite à une liste de diffusion" + // }, + autoupdate_email: { + label: _t('BAZ_FORM_EDIT_USERS_WIKINI_AUTOUPDATE_MAIL'), + options: { 0: _t('NO'), 1: _t('YES') } + }, + auto_add_to_group: { + label: _t('BAZ_FORM_EDIT_ADD_TO_GROUP_LABEL'), + value: '', + placeholder: _t('BAZ_FORM_EDIT_ADD_TO_GROUP_DESCRIPTION'), + description: _t('BAZ_FORM_EDIT_ADD_TO_GROUP_DESCRIPTION') + } + }, + advancedAttributes: ['autoupdate_email', 'auto_add_to_group'], + // disabledAttributes: [], + attributesMapping: { + ...defaultMapping, + ...{ + 0: 'type', + 1: 'name_field', + 2: 'email_field', + 5: '', /* 5:"mailing_list", */ + 6: 'auto_add_to_group', + 8: '', + 9: 'autoupdate_email' + } + }, + renderInput(field) { + return { + field: '', + onRender() { + renderHelper.defineLabelHintForGroup(field, 'auto_add_to_group', _t('BAZ_FORM_EDIT_ADD_TO_GROUP_HELP')) + } + } + } +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/form-builder-helper.js b/tools/bazar/presentation/javascripts/form-edit-template/form-builder-helper.js new file mode 100644 index 000000000..4a3323c52 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/form-builder-helper.js @@ -0,0 +1,71 @@ +export function mapFieldsConf(callback) { + return Object.fromEntries( + Object.entries(window.formBuilderFields).map(([name, conf]) => [name, callback(conf)]) + .filter(([name, conf]) => !!conf) + ) +} + +export function copyMultipleSelectValues(currentField) { + const currentId = $(currentField).prop('id') + // based on formBuilder/Helpers.js 'incrementId' function + const split = currentId.lastIndexOf('-') + const clonedFieldNumber = parseInt(currentId.substring(split + 1)) - 1 + const baseString = currentId.substring(0, split) + const clonedId = `${baseString}-${clonedFieldNumber}` + + // find cloned field + const clonedField = $(`#${clonedId}`) + if (clonedField.length > 0) { + // copy multiple select + const clonedFieldSelects = $(clonedField).find('select[multiple=true]') + clonedFieldSelects.each(function() { + const currentSelect = $(currentField).find(`select[multiple=true][name=${$(this).prop('name')}]`) + currentSelect.val($(this).val()) + }) + } +} + +export function adjustDefaultAcls(field) { + if (!field.hasOwnProperty('read')) { + field.read = [' * ']// everyone by default + } + if (!field.hasOwnProperty('write')) { + field.write = (field.type === 'champs_mail') + ? [' % '] // owner and @admins by default for e-mail + : [' * '] // everyone by default + } + if (field.type === 'acls' && !field.hasOwnProperty('comment')) { + field.comment = ['comments-closed'] // comments-closed by default + } + if (field.type === 'champs_mail' && !('seeEmailAcls' in field)) { + field.seeEmailAcls = [' % '] // owner and @admins by default + } +} + +export function addAdvancedAttributesSection($field) { + if (!$field.attr('type')) return + + const advancedAttributes = window.formBuilderFields[$field.attr('type')].advancedAttributes || [] + if (advancedAttributes.length > 0) { + advancedAttributes.forEach((attr) => { + $field.find(`.form-elements .${attr}-wrap`).addClass('advanced') + }) + const $button = $(``) + $button.on('click', () => $field.toggleClass('show-advanced-attributes')) + $field.find('.form-elements').append($button) + } +} + +export function adjustJqueryBuilderUI($field) { + // Change names + $field.find('.form-group.name-wrap label').text(_t('BAZ_FORM_EDIT_UNIQUE_ID')) + $field.find('.form-group.label-wrap label').text(_t('BAZ_FORM_EDIT_NAME')) + // Changes icons and icons helpers + $field.find('a[type=remove].formbuilder-icon-cancel') + .removeClass('formbuilder-icon-cancel').addClass('btn-icon') + .html('') + $field.find('a[type=copy].formbuilder-icon-copy').attr('title', _t('DUPLICATE')) + $field.find('a[type=edit].formbuilder-icon-pencil').attr('title', _t('BAZ_FORM_EDIT_HIDE')) +} diff --git a/tools/bazar/presentation/javascripts/form-edit-template/form-edit-template.js b/tools/bazar/presentation/javascripts/form-edit-template/form-edit-template.js new file mode 100644 index 000000000..6346f0b03 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/form-edit-template.js @@ -0,0 +1,265 @@ +import text from './fields/text.js' +import textarea from './fields/textarea.js' +import date from './fields/date.js' +import image from './fields/image.js' +import url from './fields/url.js' +import file from './fields/file.js' +import champs_mail from './fields/champs_mail.js' +import select from './fields/select.js' +import checkbox_group from './fields/checkbox-group.js' +import radio_group from './fields/radio-group.js' +import map from './fields/map.js' +import tags from './fields/tags.js' +import labelhtml from './fields/labelhtml.js' +import titre from './fields/titre.js' +import bookmarklet from './fields/bookmarklet.js' +import conditionschecking from './fields/conditionschecking.js' +import calc from './fields/calc.js' +import reactions from './fields/reactions.js' +import inscriptionliste from './fields/inscriptionliste.js' +import utilisateur_wikini from './fields/utilisateur_wikini.js' +import acls from './fields/acls.js' +import metadatas from './fields/metadatas.js' +import listefichesliees from './fields/listefichesliees.js' +import custom from './fields/custom.js' +import tabs from './fields/tabs.js' +import tabchange from './fields/tabchange.js' + +import { parseWikiTextIntoJsonData, formatJsonDataIntoWikiText } from './yeswiki-syntax-converter.js' +import { + copyMultipleSelectValues, + mapFieldsConf, + addAdvancedAttributesSection, + adjustDefaultAcls, + adjustJqueryBuilderUI +} from './form-builder-helper.js' +import { initListOrFormIdAttribute } from './attributes/list-form-id-attribute.js' +import I18nOption from './i18n.js' + +const $formBuilderTextInput = $('#form-builder-text') +window.formBuilder = undefined + +// Use window to make it available outside of module, so extension can adds their own fields +window.formBuilderFields = { + text, textarea, date, image, url, file, champs_mail, select, + 'checkbox-group': checkbox_group, 'radio-group': radio_group, + map, tags, labelhtml, titre, bookmarklet, conditionschecking, calc, + reactions, inscriptionliste, utilisateur_wikini, acls, metadatas, + listefichesliees, custom, tabs, tabchange +} + +function initializeFormbuilder() { + // Define an entire group of fields to be added to the stage at a time. + const inputSets = Object.values(formBuilderFields).map((conf) => conf.set).filter((f) => !!f) + + const typeUserEvents = {} + Object.keys(formBuilderFields).forEach((field) => { + typeUserEvents[field] = { onclone: copyMultipleSelectValues } + }) + + // FormBuilder conf + formBuilder = $('#form-builder-container').formBuilder({ + showActionButtons: false, + fields: Object.values(formBuilderFields).map((conf) => conf.field).filter((f) => !!f), + controlOrder: Object.keys(formBuilderFields), + typeUserAttrs: mapFieldsConf((conf) => conf.attributes), + typeUserDisabledAttrs: mapFieldsConf((conf) => conf.disabledAttributes), + typeUserEvents, + inputSets, + templates: mapFieldsConf((conf) => conf.renderInput), + i18n: { + locale: I18nOption[wiki.locale] ?? 'fr-FR', + location: `${wiki.baseUrl.replace('?', '')}javascripts/vendor/formbuilder-languages/` + }, + // Disable some default fields of Jquery formBuilder + disableFields: [ + 'number', + 'button', + 'autocomplete', + 'checkbox', + 'paragraph', + 'header', + 'textarea', + 'checkbox-group', + 'radio-group', + 'select', + 'hidden' + ], + // disbale some default attributes of Jquery formBuilder for all fields + disabledAttrs: [ + 'access', + 'placeholder', + 'className', + 'inline', + 'toggle', + 'description', + 'other', + 'multiple' + ], + onAddField(fieldId, field) { + adjustDefaultAcls(field) + + // strange bug with jQuery Formbuilder, the fieldId given is not the last field, but + // the one just before... so incrementing the id manually + // transform frmb-XXXX-fld-6 into frmb-XXXX-fld-7 + fieldId = fieldId.replace(/(.*)-fld-(\d+)$/gim, (string ,formId, fieldId) => { + return `${formId}-fld-${parseInt(fieldId, 10) + 1}` + }) + + // Timeout to wait the field ot be rendered + setTimeout(() => { + const $field = $(`#${fieldId}`) + addAdvancedAttributesSection($field) + initListOrFormIdAttribute($field) + adjustJqueryBuilderUI($field) + + // disable bf_titre identifier edition + $field.find('.fld-name').each(function() { + if ($(this).val() === 'bf_titre') { + $(this).attr('disabled', true) + } + }) + }, 0) + } + }) + + const defaultFieldsName = mapFieldsConf((conf) => conf.defaultIdentifier) + + let formBuilderInitialized = false + let existingFieldsNames = [] + let existingFieldsIds = [] + + setInterval(() => { + if (!formBuilder || !formBuilder.actions || !formBuilder.actions.setData) return + if (!formBuilderInitialized) { + initializeBuilderFromTextInput() + existingFieldsIds = getFieldsIds() + formBuilderInitialized = true + } + if ($formBuilderTextInput.is(':focus')) return + + existingFieldsNames = [] + $('.fld-name').each(function() { existingFieldsNames.push($(this).val()) }) + + // Slugiy field names + $('.fld-name').each(function() { + const newValue = $(this) + .val() + .replace(/[^a-z^A-Z^_^0-9^{^}]/g, '_') + .toLowerCase() + $(this).val(newValue) + }) + + // Update the text field converting form builder content into wiki syntax + if ($('#form-builder-container').is(':visible')) { + const formData = formBuilder.actions.getData() + const wikiText = formatJsonDataIntoWikiText(formData) + if (wikiText) $formBuilderTextInput.val(wikiText) + } + + $('.fld-name').each(function() { + let name = $(this).val() + const id = $(this).closest('.form-field').attr('id') + + // Detect new fields added + if (!existingFieldsIds.includes(id)) { + const fieldType = $(this).closest('.form-field').attr('type') + + // Make the default names easier to read + if (['radio_group', 'checkbox_group', 'select'].includes(fieldType)) { + name = '' + } else if (!name.includes('bf_')) { + name = defaultFieldsName[fieldType] || `bf_${fieldType}` + if (existingFieldsNames.includes(name)) { + // If name already exist, we add a number (bf_address, bf_address1, bf_address2...) + let number = 1 + while (existingFieldsNames.includes(name + number)) number += 1 + name += number + } + } + + // if it's a map, we automatically add a bf_addresse + if (fieldType == 'map' && !existingFieldsNames.includes('bf_adresse')) { + const field = { + type: 'text', + subtype: 'text', + name: 'bf_adresse', + label: _t('BAZ_FORM_EDIT_ADDRESS') + } + const index = $(this).closest('.form-field').index() + formBuilder.actions.addField(field, index) + } + } + $(this).val(name) + }) + + existingFieldsIds = getFieldsIds() + + // Transform input[textarea] in real textarea + $('input[type="textarea"]').replaceWith(function() { + const domTextarea = document.createElement('textarea') + domTextarea.id = this.id + domTextarea.name = this.name + domTextarea.value = this.value + domTextarea.classList = this.classList + domTextarea.title = this.title + domTextarea.rows = $(this).attr('rows') + return domTextarea + }) + + $('.text-field select[name=subtype]:not(.initialized)').on('change', function() { + $(this).addClass('initialized') + const $parent = $(this).closest('.form-field') + if ($(this).val() == 'range' || $(this).val() == 'number') { + $parent.find('.maxlength-wrap label').text(_t('BAZ_FORM_EDIT_MAX_VAL')) + $parent.find('.size-wrap label').text(_t('BAZ_FORM_EDIT_MIN_VAL')) + } else { + $parent.find('.maxlength-wrap label').text(_t('BAZ_FORM_EDIT_MAX_LENGTH')) + $parent.find('.size-wrap label').text(_t('BAZ_FORM_EDIT_NB_CHARS')) + } + if ($(this).val() == 'color') { + $parent.find('.maxlength-wrap, .size-wrap').hide() + } else { + $parent.find('.maxlength-wrap, .size-wrap').show() + } + }).trigger('change') + + // in semantic field, we want to separate value by coma + $('.fld-semantic').each(function() { + let newVal = $(this) + .val() + .replace(/\s*,\s*/g, ',') + newVal = newVal.replace(/\s+/g, ',') + newVal = newVal.replace(/,+/g, ',') + $(this).val(newVal) + }) + }, 300) + + $('#formbuilder-link').click(initializeBuilderFromTextInput) +} + +document.addEventListener("DOMContentLoaded", function() { + initializeFormbuilder() +}) + +function getFieldsIds() { + let result = [] + $('.fld-name').each(function() { result.push($(this).closest('.form-field').attr('id')) }) + return result +} + +function initializeBuilderFromTextInput() { + const jsonData = parseWikiTextIntoJsonData($formBuilderTextInput.val()) + try { + formBuilder.actions.setData(JSON.stringify(jsonData)) + } catch (error) { + console.error(error) + } +} + +$('a[href="#formbuilder"]').on('click', (event) => { + if (!confirm(_t('BAZ_FORM_EDIT_CONFIRM_DISPLAY_FORMBUILDER'))) { + event.preventDefault() + return false + } +}) diff --git a/tools/bazar/presentation/javascripts/form-edit-template/i18n.js b/tools/bazar/presentation/javascripts/form-edit-template/i18n.js new file mode 100644 index 000000000..0ff803263 --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/i18n.js @@ -0,0 +1,30 @@ +// list of available locales for formBuilder +export default { + ar: 'ar-SA', + ca: 'ca-ES', + cs: 'cs-CZ', + da: 'da-DK', + de: 'de-DE', + el: 'el-GR', + en: 'en-US', + es: 'es-ES', + fa: 'fa-IR', + fi: 'fi-FI', + fr: 'fr-FR', + he: 'he-IL', + hu: 'hu-HU', + it: 'it-IT', + ja: 'ja-JP', + my: 'my-MM', + nb: 'nb-NO', + pl: 'pl-PL', + pt: 'pt-BR', + qz: 'qz-MM', + ro: 'ro-RO', + ru: 'ru-RU', + sj: 'sl-SL', + th: 'th-TH', + uk: 'uk-UA', + vi: 'vi-VN', + zh: 'zh-CN' +} \ No newline at end of file diff --git a/tools/bazar/presentation/javascripts/form-edit-template/yeswiki-syntax-converter.js b/tools/bazar/presentation/javascripts/form-edit-template/yeswiki-syntax-converter.js new file mode 100644 index 000000000..ab9636e5e --- /dev/null +++ b/tools/bazar/presentation/javascripts/form-edit-template/yeswiki-syntax-converter.js @@ -0,0 +1,156 @@ +import { mapFieldsConf } from './form-builder-helper.js' +import { defaultMapping } from './fields/commons/attributes.js' + +// Mapping betwwen yeswiki field type and standard field implemented by form builder +// Use window to make it available outside of module, so extension can adds their own fields +window.yesWikiTypes = { + lien_internet: { type: 'url' }, + lien_internet_bis: { type: 'text', subtype: 'url' }, + mot_de_passe: { type: 'text', subtype: 'password' }, + // "nombre": { type: "text", subtype: "tel" }, + texte: { type: 'text' }, // all other type text subtype (range, text, tel) + textelong: { type: 'textarea', subtype: 'textarea' }, + listedatedeb: { type: 'date' }, + listedatefin: { type: 'date' }, + jour: { type: 'date' }, + map: { type: 'map' }, + carte_google: { type: 'map' }, + checkbox: { type: 'checkbox-group', subtype2: 'list' }, + liste: { type: 'select', subtype2: 'list' }, + radio: { type: 'radio-group', subtype2: 'list' }, + checkboxfiche: { type: 'checkbox-group', subtype2: 'form' }, + listefiche: { type: 'select', subtype2: 'form' }, + radiofiche: { type: 'radio-group', subtype2: 'form' }, + fichier: { type: 'file', subtype: 'file' }, + champs_cache: { type: 'hidden' }, + listefiches: { type: 'listefichesliees' } +} + +function getYesWikiMapping() { + return mapFieldsConf((conf) => conf.attributesMapping || defaultMapping) +} + +// Remove accidental br at the end of the labels +function removeBR(text) { + let newValue = text.replace(/(

        <\/div>)+$/g, '') + // replace multiple '

        ' when at the end of the value + newValue = newValue.replace(/(
        )+$/g, '') + // replace multiple '
        ' when at the end of the value + return newValue +} + +// transform text with wiki text like "texte***bf_titre***Nom***255***255*** *** *** ***1***0***" +// into a json object "{ type: 'texte', name: 'bf_titre', label: 'Nom' .... }" +export function parseWikiTextIntoJsonData(text) { + const yesWikiMapping = getYesWikiMapping() + const result = [] + text = text.trim() + const textFields = text.split('\n') + for (let i = 0; i < textFields.length; i++) { + const textField = textFields[i] + const fieldValues = textField.split('***') + const fieldObject = {} + if (fieldValues.length > 1) { + const wikiType = fieldValues[0] + let fieldType = wikiType in yesWikiTypes ? yesWikiTypes[wikiType].type : wikiType + // check that the fieldType really exists in our form builder + if (!(fieldType in yesWikiMapping)) fieldType = 'custom' + + const mapping = yesWikiMapping[fieldType] + + fieldObject.type = fieldType + fieldObject.subtype = wikiType in yesWikiTypes ? yesWikiTypes[wikiType].subtype : '' + fieldObject.subtype2 = wikiType in yesWikiTypes ? yesWikiTypes[wikiType].subtype2 : '' + const start = fieldType == 'custom' ? 0 : 1 + for (let j = start; j < fieldValues.length; j++) { + let value = fieldValues[j] + const field = mapping && j in mapping ? mapping[j] : j + if (field == 'required') value = value == '1' + if (field) { + if (field == 'read' || field == 'write' || field == 'comment') { + fieldObject[field] = (value.trim() === '') + ? ( + field == 'comment' + ? [' + '] + : [' * '] + ) + : value.split(',').map((e) => ((['+', '*', '%'].includes(e.trim())) ? ` ${e.trim()} ` : e)) + } else if (field == 'seeEmailAcls') { + fieldObject[field] = (value.trim() === '') + ? ' % ' // if not define in tempalte, choose owner and admins + : value.split(',').map((e) => ((['+', '*', '%'].includes(e.trim())) ? ` ${e.trim()} ` : e)) + } else { + fieldObject[field] = value + } + } + } + if (!fieldObject.label) { + fieldObject.label = wikiType + for (const key in window.formBuilderFields) { + if (window.formBuilderFields[key].name == wikiType){ + fieldObject.label = window.formBuilderFields[key].label + } + } + } + result.push(fieldObject) + } + } + if (wiki.isDebugEnabled) { + console.log('parse result', result) + } + return result +} + +// transform a json object like "{ type: 'texte', name: 'bf_titre', label: 'Nom' .... }" +// into wiki text like "texte***bf_titre***Nom***255***255*** *** *** ***1***0***" +export function formatJsonDataIntoWikiText(formData) { + if (formData.length == 0) return null + let wikiText = '' + const yesWikiMapping = getYesWikiMapping() + + for (let i = 0; i < formData.length; i++) { + const wikiProps = {} + const formElement = formData[i] + const mapping = yesWikiMapping[formElement.type] + + for (const type in yesWikiTypes) { + if ( + formElement.type == yesWikiTypes[type].type + && (!formElement.subtype + || !yesWikiTypes[type].subtype + || formElement.subtype == yesWikiTypes[type].subtype) + && (!formElement.subtype2 + || formElement.subtype2 == yesWikiTypes[type].subtype2) + ) { + wikiProps[0] = type + break + } + } + // for non mapped fields, we just keep the form type + if (!wikiProps[0]) wikiProps[0] = formElement.type + + // fix for url field which can be build with textField or urlField + if (wikiProps[0]) wikiProps[0] = wikiProps[0].replace('_bis', '') + + for (const key in mapping) { + const property = mapping[key] + if (property != 'type') { + let value = formElement[property] + if (['required', 'access'].indexOf(property) > -1) value = value ? '1' : '0' + if (property == 'label') { + wikiProps[key] = removeBR(value).replace(/\n$/gm, '') + } else { + wikiProps[key] = value + } + } + } + + const maxProp = Math.max.apply(Math, Object.keys(wikiProps)) + for (let j = 0; j <= maxProp; j++) { + wikiText += wikiProps[j] || ' ' + wikiText += '***' + } + wikiText += '\n' + } + return wikiText +} \ No newline at end of file diff --git a/tools/bazar/presentation/javascripts/map-field-map-entry.js b/tools/bazar/presentation/javascripts/map-field-map-entry.js new file mode 100644 index 000000000..117843d55 --- /dev/null +++ b/tools/bazar/presentation/javascripts/map-field-map-entry.js @@ -0,0 +1,55 @@ +export function initEntryMap(newMap) { + if (newMap.classList.contains('initialized')) return + + let mapData = JSON.parse(newMap.getAttribute('data-map-field')); + // Init leaflet entry map + const map = new L.Map(newMap, { + scrollWheelZoom: mapData.bazWheelZoom, + zoomControl: mapData.bazShowNav + }); + var provider = L.tileLayer.provider( + mapData.mapProvider, + mapData.mapProviderCredentials + ); + map.addLayer(provider); + + let point = new L.LatLng(mapData.latitude, mapData.longitude); + map.setView( + point, + mapData.bazMapZoom + ); + L.marker(point).addTo(map); + + newMap.classList.add('initialized') +} + +export function initEntryMaps(entryDom) { + entryDom.querySelectorAll('.map-entry:not(.initialized)').forEach((map) => { + initEntryMap(map) + }) +} + +// on first time seen, load the leaflet entry map +function lazyloadMaps(maps) { + maps.forEach(map => { + // Lazyload leaflet map when intersecting + if (map.isIntersecting) initEntryMap(map.target) + }); +} + +// observe entry map and add an listId if necessary +function addMapObserver() { + const observer = new IntersectionObserver(lazyloadMaps, { + root: document.body, + rootMargin: '20px', + threshold: 0 + }); + document.querySelectorAll('.map-entry:not(.initialized)').forEach((map) => { + observer.observe(map); + }); +} + +// on load, init the map statically generated +window.addEventListener('load', function() { + addMapObserver() +}); diff --git a/tools/bazar/presentation/styles/bazar.css b/tools/bazar/presentation/styles/bazar.css index d6e65437d..ec9a5313d 100644 --- a/tools/bazar/presentation/styles/bazar.css +++ b/tools/bazar/presentation/styles/bazar.css @@ -29,6 +29,10 @@ #map label { width: auto !important; display:inline !important; } +.map-entry { + width:100%; + min-height: 220px; +} .required_symbol, .symbole_obligatoire { color:#E9322D; @@ -165,7 +169,10 @@ input.form-control.error { .BAZ_label {font-weight: bold;display: block;} .BAZ_texte {display:block;} .titre_lien {display:block;font-size:1.4em;} -.list-sortables {list-style: none;} +.list-sortables { + list-style: none; + padding: 0; +} .list-sortables .liste_ligne { display: table; margin-bottom: 3px; diff --git a/tools/bazar/presentation/styles/form-edit-template.css b/tools/bazar/presentation/styles/form-edit-template.css index 2480ef371..af63c03df 100644 --- a/tools/bazar/presentation/styles/form-edit-template.css +++ b/tools/bazar/presentation/styles/form-edit-template.css @@ -1,4 +1,101 @@ +.form-builder-label { + display: none; +} +#form-builder-container { + height: auto !important; + padding: 0 0 1px 0 !important; +} +#form-builder-container .form-control { + background-color: white; + border: 1px solid #ccc; +} +#form-builder-container .form-elements { + padding: 1rem; +} +#form-builder-container .form-elements .form-group { + margin: 0 0 5px 0; +} +#form-builder-container .form-elements .form-group label { + font-size: .8em; + width: auto !important; + text-align: left; + float: none; + padding: 0; + overflow: revert; + text-transform: none; +} +#form-builder-container .form-wrap.form-builder .stage-wrap { + width: 74%; +} +#form-builder-container .form-wrap.form-builder .frmb-control li { + border-radius: 0; + border-right: none; +} +#form-builder-container .form-wrap.form-builder .frmb li { + background-color: transparent; + border-radius: 0; + transition: background-color .3s; +} +#form-builder-container .form-wrap.form-builder .frmb { + margin: 0; +} +#form-builder-container .form-wrap.form-builder .frmb .form-elements .input-wrap { + float: none; + margin-left: 0; + width: 100%; +} +#form-builder-container .form-wrap.form-builder .frmb > li:hover { + background-color: var(--neutral-light-color); + border: none; + box-shadow: none; +} +#form-builder-container .form-wrap.form-builder .frmb .form-elements .input-wrap>input[type='checkbox'] { + margin: 0; +} +/* Remove checkbox style inside form-builder*/ +#form-builder-container [type="checkbox"]:not(:checked), +#form-builder-container [type="checkbox"]:checked { + position: relative; + opacity: 1; + pointer-events: initial; +} + +/* Advanced Attributes */ +#form-builder-container .form-field:not(.show-advanced-attributes) .form-group.advanced { + display: none !important; +} +#form-builder-container .form-field .form-group.advanced { + order: 200 !important; +} +#form-builder-container .show-advanced-attributes-btn { + order: 199; + margin: .5rem 0 1rem 0; +} + +/* Attributes */ +#form-builder-container .required-wrap { + display: flex; + align-items: center +} +#form-builder-container .required-wrap label { + order: 2; +} +#form-builder-container .required-wrap .input-wrap { + margin-right: .5rem; + order: 1; + width: auto !important; +} + .form-field { overflow: hidden; } + +#form-builder-container .listeOrFormId-wrap .input-wrap { + display: flex; +} +#form-builder-container .listeOrFormId-wrap:not([data-source=list]) .edit-list-btn, +#form-builder-container .listeOrFormId-wrap:not([data-source=list]) .add-list-btn { + display: none !important; +} + /* Order of the field attributes */ .form-wrap.form-builder .frmb .form-elements { display: flex; flex-direction: column; } .form-wrap.form-builder .frmb .form-field .form-group { order: 100; } @@ -23,9 +120,6 @@ padding-top: 10px; } -.form-wrap.form-builder .frmb .form-elements .input-wrap { width: 70%; } -.form-wrap.form-builder .frmb .form-elements .false-label:first-child, .form-wrap.form-builder .frmb .form-elements label:first-child { width: 25%; } - .titre-field .required-wrap, .titre-field .name-wrap { display: none !important; @@ -88,13 +182,6 @@ display: none !important; } -.listefichesliees-field .required-wrap, -.listefichesliees-field .name-wrap, -.listefichesliees-field .value-wrap, -.listefichesliees-field .label-wrap { - display: none !important; -} - .bookmarklet-field .required-wrap { display: none !important; } @@ -123,16 +210,12 @@ xmp { overflow: auto; } } /* Make the list of fields smaller */ -.form-wrap.form-builder .frmb-control li { - padding: 5px 10px; - font-size: 15px; -} - .form-wrap.form-builder .frmb li { - padding: 5px 10px; + padding: 5px 1rem 8px 1rem !important; + margin: 0 !important; } .form-wrap.form-builder .frmb li:first-child { - padding-top: 10px; + padding-top: 10px !important; } .form-wrap.form-builder .frmb .field-label { diff --git a/tools/bazar/services/EntryManager.php b/tools/bazar/services/EntryManager.php index 930840565..e1e79a774 100644 --- a/tools/bazar/services/EntryManager.php +++ b/tools/bazar/services/EntryManager.php @@ -154,7 +154,7 @@ private function getDataFromPage($page, bool $semantic = false, bool $debug = fa // TODO call this function only when necessary $this->appendDisplayData($data, $semantic, $correspondance, $page); } elseif ($debug) { - trigger_error('empty \'body\' in EntryManager::getDataFromPage for page \''. $page['tag'] .'\'', E_USER_WARNING); + trigger_error('empty \'body\' in EntryManager::getDataFromPage for page \''. ($page['tag'] ?? '!!empty tag!!') .'\'', E_USER_WARNING); } return $data; @@ -561,7 +561,10 @@ public function create($formId, $data, $semantic = false, $sourceUrl = null) // on remet l'utilisateur initial s'il y en avait un if (isset($GLOBALS['utilisateur_wikini']) && !empty($olduser)) { $this->authController->logout(); - $this->authController->login($olduser, $olduser['remember'] ?? 1); + $oldUserClass = $this->userManager->getOneByName($olduser['name']); + if (!empty($oldUserClass)){ + $this->authController->login($oldUserClass, $olduser['remember'] ?? 1); + } } $this->cachedEntriestags[$data['id_fiche']] = true; @@ -727,18 +730,15 @@ public function publish($entryId, $accepted) public function delete($tag) { if ($this->securityController->isWikiHibernated()) { - throw new \Exception(_t('WIKI_IN_HIBERNATION')); + throw new Exception(_t('WIKI_IN_HIBERNATION')); } - if (!$this->aclService->hasAccess('write', $tag)) { - throw new Exception(_t('BAZ_ERROR_DELETE_UNAUTHORIZED')); + if (!$this->wiki->UserIsAdmin() && !$this->wiki->UserIsOwner($tag)){ + throw new Exception(_t('DELETEPAGE_NOT_DELETED')._t('DELETEPAGE_NOT_OWNER')); } $fiche = $this->getOne($tag); - - // Si besoin, on supprime l'utilisateur associé - if (isset($fiche['nomwiki'])) { - $request = 'DELETE FROM ' . $this->dbService->prefixTable('users') . ' WHERE `name` = "' . $fiche['nomwiki'] . '"'; - $this->dbService->query($request); + if (empty($fiche)){ + throw new Exception("Not existing entry : $tag"); } $this->pageManager->deleteOrphaned($tag); @@ -869,6 +869,11 @@ public function formatDataBeforeSave($data, bool $isCreation = false) */ public function appendDisplayData(&$fiche, $semantic, $correspondance, array $page) { + // user + $fiche['user'] = $page['user'] ?? null; + // owner + $fiche['owner'] = $page['owner'] ?? null; + // champs correspondants if (!empty($correspondance)) { try { @@ -889,9 +894,6 @@ public function appendDisplayData(&$fiche, $semantic, $correspondance, array $pa // HTML data $fiche['html_data'] = getHtmlDataAttributes($fiche); - // owner - $fiche['owner'] = $page['owner'] ?? null; - // Fiche URL if (!isset($fiche['url'])) { // could already be defined for entries from external json @@ -1005,9 +1007,21 @@ private function getFormsFromIds($formsIds): array * @param array $params * @param array $attributesNames * @param bool $applyOnAllRevisions - * return bool true if attributesNames are foond and replaced + * @return bool true if attributesNames are foond and replaced */ public function removeAttributes($params, array $attributesNames, bool $applyOnAllRevisions = false): bool + { + return !empty($this->removeAttributesAndReturnList($params, $attributesNames, $applyOnAllRevisions)); + } + + /** + * remove attributes from entries only for admins !!! + * @param array $params + * @param array $attributesNames + * @param bool $applyOnAllRevisions + * @return array with entry's ids if attributesNames are found and replaced + */ + public function removeAttributesAndReturnList($params, array $attributesNames, bool $applyOnAllRevisions = false): array { return $this->manageAttributes($params, $attributesNames, $applyOnAllRevisions, 'remove'); } @@ -1017,9 +1031,21 @@ public function removeAttributes($params, array $attributesNames, bool $applyOnA * @param array $params * @param array $attributesNames [$oldName => $newName] * @param bool $applyOnAllRevisions - * return bool true if attributesNames are foond and replaced + * @return bool true if attributesNames are foond and replaced */ public function renameAttributes($params, array $attributesNames, bool $applyOnAllRevisions = false): bool + { + return !empty($this->renameAttributesAndReturnList($params, $attributesNames, $applyOnAllRevisions)); + } + + /** + * rename attributes from entries only for admins !!! + * @param array $params + * @param array $attributesNames [$oldName => $newName] + * @param bool $applyOnAllRevisions + * @return array with entry's ids if attributesNames are found and replaced + */ + public function renameAttributesAndReturnList($params, array $attributesNames, bool $applyOnAllRevisions = false): array { return $this->manageAttributes($params, $attributesNames, $applyOnAllRevisions, 'rename'); } @@ -1030,15 +1056,15 @@ public function renameAttributes($params, array $attributesNames, bool $applyOnA * @param array $attributesNames * @param bool $applyOnAllRevisions * @param string $mode - * return bool true if attributesNames are foond and replaced + * @return array with entry's ids if attributesNames are found and replaced */ - private function manageAttributes($params, array $attributesNames, bool $applyOnAllRevisions = false, string $mode = 'remove'): bool + private function manageAttributes($params, array $attributesNames, bool $applyOnAllRevisions = false, string $mode = 'remove'): array { if ($this->securityController->isWikiHibernated()) { throw new \Exception(_t('WIKI_IN_HIBERNATION')); } if (!$this->wiki->UserIsAdmin()) { - return false; + return []; } /* sanitize params */ @@ -1082,9 +1108,10 @@ function ($attributeName) { $pages = $this->dbService->loadAll($requete); if (empty($pages)) { - return false; + return []; } + $entriesIds = []; foreach ($pages as $page) { $entry = $this->decode($page['body']); @@ -1094,11 +1121,17 @@ function ($attributeName) { if (isset($entry[$oldName])) { $entry[$newName] = $entry[$oldName]; unset($entry[$oldName]); + if (!empty($entry['id_fiche']) && !in_array($entry['id_fiche'],$entriesIds)){ + $entriesIds[] = $entry['id_fiche']; + } } } } else { if (isset($entry[$attributeName])) { unset($entry[$attributeName]); + if (!empty($entry['id_fiche']) && !in_array($entry['id_fiche'],$entriesIds)){ + $entriesIds[] = $entry['id_fiche']; + } } } } @@ -1119,6 +1152,6 @@ function ($attributeName) { } } - return true; + return $entriesIds; } } diff --git a/tools/bazar/services/FormManager.php b/tools/bazar/services/FormManager.php index 2ef86b906..65759ef40 100644 --- a/tools/bazar/services/FormManager.php +++ b/tools/bazar/services/FormManager.php @@ -54,6 +54,15 @@ public function getOne($formId): ?array return null; } + $form = $this->getFromRawData($form); + + $this->cachedForms[$formId] = $form; + + return $form; + } + + public function getFromRawData($form) + { foreach ($form as $key => $value) { $form[$key] = _convert($value, 'ISO-8859-15'); } @@ -61,8 +70,6 @@ public function getOne($formId): ?array $form['template'] = $this->parseTemplate($form['bn_template']); $form['prepared'] = $this->prepareData($form); - $this->cachedForms[$formId] = $form; - return $form; } diff --git a/tools/bazar/services/ListManager.php b/tools/bazar/services/ListManager.php index 3783023f4..00b260b7d 100644 --- a/tools/bazar/services/ListManager.php +++ b/tools/bazar/services/ListManager.php @@ -105,6 +105,8 @@ public function create($title, $values) ])); $this->tripleStore->create($id, TripleStore::TYPE_URI, self::TRIPLES_LIST_ID, '', ''); + + return $id; } public function update($id, $title, $values) diff --git a/tools/bazar/templates/entries/index-dynamic-templates/_map_popup_from_data.twig b/tools/bazar/templates/entries/index-dynamic-templates/_map_popup_from_data.twig index fb60306ad..9e472bb03 100644 --- a/tools/bazar/templates/entries/index-dynamic-templates/_map_popup_from_data.twig +++ b/tools/bazar/templates/entries/index-dynamic-templates/_map_popup_from_data.twig @@ -13,16 +13,16 @@ :imagewidth="{{ imWidth }}" :imageheight="{{ imHeight }}" :imagemethod="{{ imagemethod|json_encode }}" - :imagetoken="{{ csrfToken("GET api/images/cache/#{imWidth}/#{imHeight}/#{imagemethod}")|json_encode }}" + :imagetoken="{{ csrfToken("POST api/images/cache/#{imWidth}/#{imHeight}/#{imagemethod}")|json_encode }}" >
        - {{ _t('BAZ_SEE_ENTRY') }} + :href="`${entry.url{% if not isInIframe %}+(!isExternalUrl(entry)?'/iframe':''){% endif %}}`">{{ _t('BAZ_SEE_ENTRY') }}
        \ No newline at end of file diff --git a/tools/bazar/templates/entries/index-dynamic-templates/card.twig b/tools/bazar/templates/entries/index-dynamic-templates/card.twig index f93eff592..e1d3f2517 100644 --- a/tools/bazar/templates/entries/index-dynamic-templates/card.twig +++ b/tools/bazar/templates/entries/index-dynamic-templates/card.twig @@ -15,7 +15,7 @@ {% endif %} {% set imWidth = (nbcol == 4) ? 250 : (nbcol == 5 ? 200 : 300 ) %} {% set imHeight = params.style == "square" ? imWidth : (params.style == "horizontal" ? imWidth*23//27 : imWidth*2//3 ) %} - {% set firstTokenCrop = csrfToken("GET api/images/cache/#{imWidth}/#{imHeight}/crop") %} + {% set firstTokenCrop = csrfToken("POST api/images/cache/#{imWidth}/#{imHeight}/crop") %}
        @@ -25,12 +25,11 @@
        {% if isLink %}
        {{ _t('BAZ_NO_RESULT') }} @@ -24,7 +24,7 @@

        - {{"{{ entry.title || entry.bf_titre }}"}} +

        {# FLOATING AREA #} diff --git a/tools/bazar/templates/entries/index-dynamic-templates/map-and-table.twig b/tools/bazar/templates/entries/index-dynamic-templates/map-and-table.twig new file mode 100644 index 000000000..d03c2a40f --- /dev/null +++ b/tools/bazar/templates/entries/index-dynamic-templates/map-and-table.twig @@ -0,0 +1,20 @@ +{% set necessary_fields = (necessary_fields is defined ? necessary_fields : []) + |merge(['bf_latitude', 'bf_longitude']) + %} + +{% extends "@bazar/entries/index-dynamic-templates/table.twig" %} + +{% block assets %} + {{ block('assets','@bazar/entries/index-dynamic-templates/map.twig') }} + {{ parent() }} {# from table.twig #} + {{ include_javascript('tools/bazar/presentation/javascripts/components/BazarTableEntrySelector.js', false, true) }} +{% endblock %} + +{% block display_entries %} + {{ block("display_entries",'@bazar/entries/index-dynamic-templates/map.twig') }} + + + +{% endblock %} \ No newline at end of file diff --git a/tools/bazar/templates/entries/index-dynamic-templates/table.twig b/tools/bazar/templates/entries/index-dynamic-templates/table.twig new file mode 100644 index 000000000..90defc2e7 --- /dev/null +++ b/tools/bazar/templates/entries/index-dynamic-templates/table.twig @@ -0,0 +1,149 @@ +{% import "@core/multidelete-macro.twig" as multidelete %} + +{% extends "@bazar/entries/index-dynamic.twig" %} + +{% set necessary_fields = (necessary_fields is defined ? necessary_fields : (params.necessary_fields is defined ? params.necessary_fields|split(',') : [])) + |merge(['owner','url']) + |merge(( + (params.exportallcolumns is defined and (params.exportallcolumns == '1' or params.exportallcolumns == 'true')) + ? params.exportallcolumnsids|split(',') + : (params.columnfieldsids is defined + ? params.columnfieldsids|split(',') + : [] + ) + )) + |merge((params.displaycreationdate is defined and (params.displaycreationdate != 'no'))? ['date_creation_fiche']: []) + |merge((params.displaylastchangedate is defined and (params.displaycreationdate != 'no'))? ['date_maj_fiche']: []) + %} + +{% block assets %} + {{ include_css('styles/vendor/datatables-full/dataTables.bootstrap.min.css') }} + {{ include_css('tools/bazar/presentation/styles/tableau.css') }} + + {{ include_javascript('javascripts/vendor/datatables-full/jquery.dataTables.min.js') }} + {{ include_javascript('tools/bazar/presentation/javascripts/components/BazarTable.js', false, true) }} + +{% endblock %} + +{% block display_entries %} + {% set imWidth = 150 %} + {% set imHeight = 100 %} + {% set firstTokenCrop = csrfToken("POST api/images/cache/#{imWidth}/#{imHeight}/crop") %} + + + + + + + + + + + + + + + + + + +{% endblock %} \ No newline at end of file diff --git a/tools/bazar/templates/entries/index-dynamic.twig b/tools/bazar/templates/entries/index-dynamic.twig index 459814c16..7c4d6e72f 100644 --- a/tools/bazar/templates/entries/index-dynamic.twig +++ b/tools/bazar/templates/entries/index-dynamic.twig @@ -1,6 +1,12 @@ {{ include_javascript('javascripts/vendor/vue/vue.js') }} -{% block assets %}{% endblock %} +{% block assets %} +{% if params.showmapinlistview %} + {{ include_css('styles/vendor/leaflet/leaflet.css') }} + {{ include_javascript('javascripts/vendor/leaflet/leaflet.min.js') }} + {{ include_javascript('javascripts/vendor/leaflet-providers/leaflet-providers.js') }} +{% endif %} +{% endblock %} {{ include_javascript('tools/bazar/presentation/javascripts/bazar-list-dynamic.js', false, true) }} {{ include_css('tools/bazar/presentation/styles/bazar-list-dynamic.css') }} @@ -19,7 +25,7 @@ {% if params.search and not params.groups %} {{ include("@bazar/entries/index-dynamic/_search_input.twig") }} {% endif %} - + {% set resultsColSize = params.filtercolsize|number_format == 12 ? 12 : 12 - params.filtercolsize|number_format %} {% set resultsColSize = params.groups ? resultsColSize : 12 %} @@ -30,13 +36,13 @@ {% endif %}
        -
        +
        {% block display_entries %} - {% endblock %} -
        + {% endblock %} +
        {{ include("@bazar/entries/index-dynamic/_pagination.twig") }}
        - +
        {% if not params.isInIframe and params.showexportbuttons %} diff --git a/tools/bazar/templates/fields/checkboxentry.twig b/tools/bazar/templates/fields/checkboxentry.twig index 0fd645b7d..bc4f372b2 100644 --- a/tools/bazar/templates/fields/checkboxentry.twig +++ b/tools/bazar/templates/fields/checkboxentry.twig @@ -1,11 +1,11 @@ {% extends "@bazar/fields/checkbox.twig" %} {% block value_item -%} - + {{- value.value|raw -}} {%- endblock %} diff --git a/tools/bazar/templates/fields/linked-entry.twig b/tools/bazar/templates/fields/linked-entry.twig new file mode 100644 index 000000000..79e7c2d18 --- /dev/null +++ b/tools/bazar/templates/fields/linked-entry.twig @@ -0,0 +1,11 @@ +{% if field.label is not empty %} + {% embed "@bazar/layouts/field.twig" %} + {% block value_container %} + {{ output|raw }} + {% endblock %} + {% endembed %} +{% else %} + {{ output|raw }} +{% endif %} + + diff --git a/tools/bazar/templates/fields/map.twig b/tools/bazar/templates/fields/map.twig new file mode 100644 index 000000000..eca5f71b6 --- /dev/null +++ b/tools/bazar/templates/fields/map.twig @@ -0,0 +1,8 @@ +{{ include_css('styles/vendor/leaflet/leaflet.css') }} +{{ include_javascript('javascripts/vendor/leaflet/leaflet.min.js') }} +{{ include_javascript('javascripts/vendor/leaflet-providers/leaflet-providers.js') }} +{{ include_javascript('tools/bazar/presentation/javascripts/map-field-map-entry.js', false, true) }} +
        \ No newline at end of file diff --git a/tools/bazar/templates/fields/select_entry.twig b/tools/bazar/templates/fields/select_entry.twig index 149b836cd..093b5d24d 100644 --- a/tools/bazar/templates/fields/select_entry.twig +++ b/tools/bazar/templates/fields/select_entry.twig @@ -2,10 +2,10 @@ {% block value_container %} - {{- label|raw -}} diff --git a/tools/bazar/templates/forms/_forms_form_js_include.twig b/tools/bazar/templates/forms/_forms_form_js_include.twig deleted file mode 100644 index 0e2278164..000000000 --- a/tools/bazar/templates/forms/_forms_form_js_include.twig +++ /dev/null @@ -1,6 +0,0 @@ -{{ include_javascript('javascripts/vendor/jquery-ui-sortable/jquery-ui.min.js') }} -{{ include_javascript('javascripts/vendor/formBuilder/form-builder.min.js') }} -{{ include_javascript('tools/bazar/presentation/javascripts/form-edit-template-helper.js') }} -{{ include_javascript('tools/bazar/presentation/javascripts/form-edit-template.js') }} -{{ include_javascript('tools/bazar/presentation/javascripts/conditionschecking/form-edit-template.js') }} -{{ include_javascript('tools/bazar/presentation/javascripts/calcfield/form-edit-template.js') }} \ No newline at end of file diff --git a/tools/bazar/templates/forms/forms_confirm.twig b/tools/bazar/templates/forms/forms_confirm.twig index 01dacf5d7..2d91077a9 100644 --- a/tools/bazar/templates/forms/forms_confirm.twig +++ b/tools/bazar/templates/forms/forms_confirm.twig @@ -13,7 +13,7 @@ _t(type == 'delete' ? 'BAZ_FORM_DELETE' : 'BAZ_FORM_EMPTY',{'formId':request.idformulaire}) ~ '
        ' ~ '' ~ _t(type == 'delete' ? 'BAZ_CONFIRM_SUPPRIMER_FORMULAIRE' : 'BAZ_CONFIRM_VIDER_FORMULAIRE') ~ ' ?
        ' }) }} - + var groupsList = {{ groupsList|json_encode()|raw }}; var formAndListIds = {{ formAndListIds|json_encode()|raw }}; - document.addEventListener("DOMContentLoaded", function() { - initializeFormbuilder(formAndListIds); - }); diff --git a/tools/bazar/templates/forms/forms_table.twig b/tools/bazar/templates/forms/forms_table.twig index 6441b9feb..f4a85a536 100755 --- a/tools/bazar/templates/forms/forms_table.twig +++ b/tools/bazar/templates/forms/forms_table.twig @@ -96,10 +96,10 @@
        {% if form.canDelete %} - + - + {% else %} @@ -125,12 +125,16 @@ {% if userIsAdmin and not isWikiHibernated %} + {% block createformbutton %} + + {{ _t('BAZ_NOUVEAU_FORMULAIRE') }} + {% endblock createformbutton %} + {% else %} {% endif %} - - {{ _t('BAZ_NOUVEAU_FORMULAIRE') }} -{% if userIsAdmin and not isWikiHibernated %}{% else %}{% endif %}
        diff --git a/tools/bazar/templates/inputs/conditions-checking.twig b/tools/bazar/templates/inputs/conditions-checking.twig index f1397fb75..da5ca0ae2 100644 --- a/tools/bazar/templates/inputs/conditions-checking.twig +++ b/tools/bazar/templates/inputs/conditions-checking.twig @@ -1,2 +1,2 @@ -{{ include_javascript('tools/bazar/presentation/javascripts/conditionschecking/conditionschecking.js') }} +{{ include_javascript('tools/bazar/presentation/javascripts/bazar-fields/conditionschecking.js') }}
        \ No newline at end of file diff --git a/tools/bazar/templates/inputs/date.twig b/tools/bazar/templates/inputs/date.twig index e5837291b..9ac7577db 100644 --- a/tools/bazar/templates/inputs/date.twig +++ b/tools/bazar/templates/inputs/date.twig @@ -1,6 +1,7 @@ {% extends "@bazar/layouts/input.twig" %} {% block input %} + {{ include_javascript('tools/bazar/libs/vendor/bootstrap-datepicker.js') }}
        diff --git a/tools/bazar/templates/inputs/linked-entry.twig b/tools/bazar/templates/inputs/linked-entry.twig new file mode 100644 index 000000000..9c94dc5cc --- /dev/null +++ b/tools/bazar/templates/inputs/linked-entry.twig @@ -0,0 +1,14 @@ +{% if field.label is not empty %} + {% embed "@bazar/layouts/input.twig" %} + {% block label %} + {{ field.label|raw }} + {% endblock %} + {% block input %} + {{ output|raw }} + {% endblock %} + {% endembed %} +{% else %} + {{ output|raw }} +{% endif %} + + diff --git a/tools/bazar/templates/inputs/text.twig b/tools/bazar/templates/inputs/text.twig index b7bc4c624..719caaf41 100644 --- a/tools/bazar/templates/inputs/text.twig +++ b/tools/bazar/templates/inputs/text.twig @@ -8,8 +8,13 @@ id="{{ field.name }}" name="{{ field.name }}" class="form-control input-xxlarge" - maxlength="{{ field.maxChars }}" - size="{{ field.maxChars }}" + {% if field.subType == 'number' -%} + {%- if field.maxChars != '' %}max="{{ field.maxChars }}"{% endif -%} + {%- if field.size != '' %}min="{{ field.size }}"{% endif -%} + {%- else -%} + {%- if field.maxChars != '' %}maxlength="{{ field.maxChars }}"{% endif -%} + {%- if field.size != '' %}size="{{ field.size }}"{% endif -%} + {% endif %} {% if field.pattern %}pattern="{{ field.pattern }}"{% endif %} placeholder="{{ field.label|raw('html')|striptags }}" {% if field.required %}required{% endif %} diff --git a/tools/bazar/templates/lists/list_form.twig b/tools/bazar/templates/lists/list_form.twig index 25ea6e2ee..79190476f 100755 --- a/tools/bazar/templates/lists/list_form.twig +++ b/tools/bazar/templates/lists/list_form.twig @@ -27,10 +27,37 @@ -
          - {% if labels %} - {% for key, label in labels %} -
        • +
          +
            + {% if labels %} + {% for key, label in labels %} +
          • + + + + + + + + +
          • + {% endfor %} + {% else %} +
          • @@ -38,48 +65,25 @@ required type="text" placeholder="{{ _t('BAZ_KEY') }}" - name="id[{{ loop.index }}]" - value="{{ key|e }}" + name="id[1]" class="input-key form-control" /> -
          • - {% endfor %} - {% else %} -
          • - - - - - - - - -
          • - {% endif %} -
          +
        • + {% endif %} +
        +
        {{ _t('BAZ_VALEURS_LISTE_HINT') }}
        +
        +
        diff --git a/tools/login/actions/UserSettingsAction.php b/tools/login/actions/UserSettingsAction.php index fdb2b9104..bac32992c 100644 --- a/tools/login/actions/UserSettingsAction.php +++ b/tools/login/actions/UserSettingsAction.php @@ -193,7 +193,7 @@ private function deleteByAdmin(?User &$user = null) if ($this->adminIsActing && !empty($this->wantedUserName)) { // Admin trying to delete user try { - $this->csrfTokenController->checkToken("login\action\usersettings\deleteByAdmin\\{$this->wantedUserName}", 'POST', 'csrf-token-delete'); + $this->csrfTokenController->checkToken('main', 'POST', 'csrf-token-delete',false); if (empty($user)) { $this->errorUpdate = _t('USERSETTINGS_USER_NOT_DELETED') .' user not found'; return null; @@ -213,7 +213,7 @@ private function update(array $post, User $user) { if ($this->adminIsActing || $this->userLoggedIn) { try { - $this->csrfTokenController->checkToken('login\action\usersettings\updateuser', 'POST', 'csrf-token-update'); + $this->csrfTokenController->checkToken('main', 'POST', 'csrf-token-update',false); $sanitizedPost = array_map(function ($item) { return is_scalar($item) ? $item : "" ; @@ -261,7 +261,7 @@ private function changePassword(?User $user, array $post) } else { // user properly typed his old password in // check token try { - $this->csrfTokenController->checkToken('login\action\usersettings\changepass', 'POST', 'csrf-token-changepass'); + $this->csrfTokenController->checkToken('main', 'POST', 'csrf-token-changepass',false); $password = $post['password']; $this->authController->setPassword($user, $password); diff --git a/tools/login/templates/usersettings.twig b/tools/login/templates/usersettings.twig index 1432d94a9..ac9cd1560 100644 --- a/tools/login/templates/usersettings.twig +++ b/tools/login/templates/usersettings.twig @@ -27,7 +27,7 @@
        #}
        - + {% if userLoggedIn %}{# // The one who runs the session is acting #} - + @@ -80,7 +80,7 @@
        - +
        diff --git a/tools/security/actions/despam.php b/tools/security/actions/despam.php index afe3e8c6d..d867ecb35 100755 --- a/tools/security/actions/despam.php +++ b/tools/security/actions/despam.php @@ -1,6 +1,8 @@ services->get(EntryController::class)->triggerDeletedEventIfNeeded(function()use($page){ - $this->DeleteOrphanedPage($page); - },$page); - $deletedPages .= $page . ", "; + if ($this->services->get(EntryManager::class)->isEntry($page)){ + if($this->services->get(EntryController::class)->delete($page)){ + $deletedPages .= $page . ", "; + } + } else { + $this->services->get(PageManager::class)->deleteOrphaned($page); + $deletedPages .= $page . ", "; + } } $deletedPages = trim($deletedPages, ", "); } diff --git a/tools/tags/handlers/__EditHandler.php b/tools/tags/handlers/__EditHandler.php new file mode 100644 index 000000000..671417c6a --- /dev/null +++ b/tools/tags/handlers/__EditHandler.php @@ -0,0 +1,61 @@ +getService(AclService::class); + $tagsManager = $this->getService(TagsManager::class); + + if ( + !$this->params->get('hide_keywords') + && $aclService->hasAccess("write") + ){ + + // save new tag if authorized + if ( + isset($_POST["submit"]) + && $_POST["submit"] == SecurityController::EDIT_PAGE_SUBMIT_VALUE + && isset($_POST["pagetags"]) + && $_POST['antispam']==1 + ) { + $tagsManager->save($this->wiki->GetPageTag(), stripslashes($_POST["pagetags"])); + } + + // display + if ($aclService->hasAccess("read")) { + + $formattedTags = []; + // get all tags + $tags = $tagsManager->getAll(); + $tags = is_array($tags) + ? array_map( + function($t){ + return $t['value']; + }, + $tags + ) + : []; + sort($tags); + + // not possible to use ->render because output is entrirely defined by edit.php + $formattedTags = json_encode($tags); + $this->wiki->AddJavascript(<<wiki->AddJavascriptFile('tools/tags/libs/vendor/bootstrap-tagsinput.min.js'); + $this->wiki->AddJavascriptFile('tools/tags/javascripts/edit-tags.js'); + } + + } + } +} diff --git a/tools/tags/handlers/page/__deletepage.php b/tools/tags/handlers/page/__deletepage.php index 955f987d6..30ee08b0d 100755 --- a/tools/tags/handlers/page/__deletepage.php +++ b/tools/tags/handlers/page/__deletepage.php @@ -1,7 +1,6 @@ GetPageTag(); - $token = new CsrfToken("handler\deletepage\\$tag", $inputToken); - if ($this->services->get(CsrfTokenManager::class)->isTokenValid($token)) { + try { + if ($this->services->get(CsrfTokenController::class)->checkToken('main', 'POST', 'csrf-token',false)){ + $tag = $this->GetPageTag(); $this->Query("DELETE FROM {$this->config["table_prefix"]}links WHERE to_tag = '$tag'"); } + } catch (Throwable $th) { + // do nothing } } diff --git a/tools/tags/handlers/page/__edit.php b/tools/tags/handlers/page/__edit.php deleted file mode 100755 index 7122cd015..000000000 --- a/tools/tags/handlers/page/__edit.php +++ /dev/null @@ -1,55 +0,0 @@ -services->get(ParameterBagInterface::class); -if (!$params->get('hide_keywords') && $this->HasAccess("write") && $this->HasAccess("read")) { - $response = array(); - // on recupere tous les tags du site - $tagsManager = $this->services->get(TagsManager::class); - $tab_tous_les_tags = $tagsManager->getAll(); - if (is_array($tab_tous_les_tags)) { - foreach ($tab_tous_les_tags as $tab_les_tags) { - $response[] = str_replace('\'', ''', str_replace('"', '\"', $tab_les_tags['value'])); - } - } - sort($response); - $tagsexistants = '\''.implode('\',\'', $response).'\''; - - - $script = '$(function(){ - var tagsexistants = ['.$tagsexistants.']; - var pagetag = $(\'#ACEditor .yeswiki-input-pagetag\'); - pagetag.tagsinput({ - typeahead: { - afterSelect: function(val) {pagetag.tagsinput(\'input\').val(""); }, - source: tagsexistants, - autoSelect:false, - }, - trimValue: true, - confirmKeys: [13, 186, 188], - }); - - //bidouille antispam - $(".antispam").attr(\'value\', \'1\'); - - $("#ACEditor").on(\'submit\', function() { - pagetag.tagsinput(\'add\', pagetag.tagsinput(\'items\')); - }); -});'."\n"; - $this->AddJavascriptFile('tools/tags/libs/vendor/bootstrap-tagsinput.min.js'); - $this->AddJavascript($script); -} - -//Sauvegarde -if (!$params->get('hide_keywords') && $this->HasAccess("write") && - isset($_POST["submit"]) && $_POST["submit"] == SecurityController::EDIT_PAGE_SUBMIT_VALUE && - isset($_POST["pagetags"]) && $_POST['antispam']==1) { - $tagsManager->save($this->GetPageTag(), stripslashes($_POST["pagetags"])); -} diff --git a/tools/tags/handlers/page/ajaxdeletepage.php b/tools/tags/handlers/page/ajaxdeletepage.php index 4a7d629bc..df093229f 100755 --- a/tools/tags/handlers/page/ajaxdeletepage.php +++ b/tools/tags/handlers/page/ajaxdeletepage.php @@ -1,6 +1,8 @@ services->get(TagsManager::class); -$entryController = $this->services->get(EntryController::class); // on ne fait quelque chose uniquement dans le cas d'une requete jsonp if (isset($_GET['jsonp_callback'])) { @@ -16,10 +17,13 @@ header('Content-type:application/json'); if ($this->UserIsOwner() || $this->UserIsAdmin()) { $tag = $this->GetPageTag(); - $entryController->triggerDeletedEventIfNeeded(function()use($tag){ - $this->DeleteOrphanedPage($tag); - },$tag); - $this->LogAdministrativeAction($this->GetUserName(), "Suppression de la page ->\"\"" . $tag . "\"\""); + + if ($this->services->get(EntryManager::class)->isEntry($page)){ + $this->services->get(EntryController::class)->delete($page); + } else { + $this->services->get(PageManager::class)->deleteOrphaned($page); + $this->LogAdministrativeAction($this->GetUserName(), "Suppression de la page ->\"\"" . $tag . "\"\""); + } echo $_GET['jsonp_callback']."(".json_encode(array("reponse"=>mb_convert_encoding("succes", 'UTF-8', 'ISO-8859-1'))).")"; } else { echo $_GET['jsonp_callback']."(".json_encode(array("reponse"=>mb_convert_encoding("interdit", 'UTF-8', 'ISO-8859-1'))).")"; diff --git a/tools/tags/javascripts/edit-tags.js b/tools/tags/javascripts/edit-tags.js new file mode 100644 index 000000000..2dbacc404 --- /dev/null +++ b/tools/tags/javascripts/edit-tags.js @@ -0,0 +1,19 @@ +document.addEventListener('DOMContentLoaded',function (){ + var inputTags = $('#ACEditor .yeswiki-input-pagetag') + const existingTagsInternal = + (typeof existingTags === 'undefined' || !Array.isArray(existingTags)) + ? [] + : existingTags; + inputTags.tagsinput({ + typeahead: { + afterSelect: function(val) {inputTags.tagsinput('input').val(""); }, + source: existingTagsInternal, + autoSelect:false, + }, + trimValue: true, + confirmKeys: [13, 186, 188], + }); + + //bidouille antispam + $(".antispam").attr('value', '1'); +}) \ No newline at end of file diff --git a/tools/templates/actions/GererDroitsAction.php b/tools/templates/actions/GererDroitsAction.php new file mode 100644 index 000000000..5dc33fdc9 --- /dev/null +++ b/tools/templates/actions/GererDroitsAction.php @@ -0,0 +1,192 @@ +wiki->UserIsAdmin()) { + return $this->render('@templates/alert-message.twig',[ + 'type' => 'danger', + 'message' => _t('ACLS_RESERVED_FOR_ADMINS') + ]); + } + // get services + $this->dbService = $this->getService(DbService::class); + $this->securityController = $this->getService(SecurityController::class); + $this->utils = $this->getService(Utils::class); + + list('success'=>$success,'error'=>$error) = $this->manageChangeRights($_POST ?? []); + list('filter'=>$filter,'search'=>$search) = $this->getFilterAndSearch($_GET ?? [],$_POST ?? []); + + // récupération de tous les formulaires + $forms = $this->getService(FormManager::class)->getAll(); + + //Récupération de la liste des pages + $pagesTableName = trim($this->dbService->prefixTable('pages')); + $liste_pages = $this->wiki->Query(<<utils->recupDroits($tab_liste_pages['tag']); + ++$num_page; + } + + return $this->render( + '@templates/gerer-droits-action.twig', + [ + 'filTer' => $filter, + 'error' => $error, + 'success' => $success, + 'forms' => $forms, + 'pageEtDroits' => $pageEtDroits, + 'isHibernated' => $this->securityController->isWikiHibernated() + ] + ); + } + + /** + * manage change of rights based on $_POST + * @param array $post + * @return array ['success'=>string, 'error'=>string] + */ + protected function manageChangeRights(array $post): array + { + $success = ''; + $error = ''; + + //Modification de droits + if (isset($post['geredroits_modifier'])) { + if (!isset($post['selectpage'])) { + $error = _t('ACLS_NO_SELECTED_PAGE'); + } elseif ( + $post['typemaj'] !== 'default' && + empty($post['newlire']) && + empty($post['newecrire']) && + empty($post['newcomment']) && + empty($post['newlire_advanced']) && + empty($post['newecrire_advanced']) && + empty($post['newcomment_advanced']) + ) { + $error = _t('ACLS_NO_SELECTED_RIGHTS'); + } elseif (is_array($post['selectpage'])) { + foreach (array_filter($post['selectpage'],'is_string') as $page_cochee) { + if ($post['typemaj'] === 'default') { + $this->wiki->DeleteAcl($page_cochee); + } else { + $appendAcl = ($post['typemaj'] === 'ajouter'); + if (!empty($post['newlire_advanced'])) { + $this->wiki->SaveAcl($page_cochee, 'read', $post['newlire_advanced'], $appendAcl); + } elseif (!empty($post['newlire'])) { + $this->wiki->SaveAcl($page_cochee, 'read', $post['newlire'], $appendAcl); + } + if (!empty($post['newecrire_advanced'])) { + $this->wiki->SaveAcl($page_cochee, 'write', $post['newecrire_advanced'], $appendAcl); + } elseif (!empty($post['newecrire'])) { + $this->wiki->SaveAcl($page_cochee, 'write', $post['newecrire'], $appendAcl); + } + if (!empty($post['newcomment_advanced'])) { + $this->wiki->SaveAcl($page_cochee, 'comment', $this->filterCommentRightsBeforeSave($post['newcomment_advanced']), $appendAcl); + } elseif (!empty($post['newcomment'])) { + $this->wiki->SaveAcl($page_cochee, 'comment', $this->filterCommentRightsBeforeSave($post['newcomment']), $appendAcl); + } + } + } + + $success = _t('ACLS_RIGHTS_WERE_SUCCESFULLY_CHANGED'); + } + } + + return compact(['success','error']); + } + + /** + * récupération des filtres + * @param array $get + * @param array $post + * @return array ['filter'=>string,'search'=>string] + */ + protected function getFilterAndSearch(array $get,array $post): array + { + $filter = $get['filter'] ?? ''; + $search = ''; + if (!empty($filter)) { + $filter = strval($filter); + if ($filter === "pages") { + $search = <<dbService->prefixTable('triples')} + WHERE value = "fiche_bazar" + ) + SQL; + } elseif ($filter === "specialpages") { + $search = <<dbService->prefixTable('triples')} + WHERE value = "fiche_bazar" AND property = "http://outils-reseaux.org/_vocabulary/type" + ORDER BY resource ASC + SQL; + + $search = <<dbService->escape($filter)}"%' + AND tag IN ($requete_pages_wiki_bazar_fiches) + SQL; + } elseif ($filter === "lists") { + $requete_pages_wiki_listes = <<dbService->prefixTable('triples')} + WHERE value = "liste" AND property = "http://outils-reseaux.org/_vocabulary/type" + ORDER BY resource ASC + SQL; + $search = <<pageManager = $this->getService(PageManager::class); + $this->themeController = $this->getService(ThemeController::class); $this->themeManager = $this->getService(ThemeManager::class); - require_once 'tools/templates/libs/templates.functions.php'; - $errorMessage = ''; if (isset($_POST['theme_modifier'])) { try { @@ -57,40 +58,13 @@ public function run() } } - $hibernated = $this->isWikiHibernated(); - $templates = $this->themeManager->getTemplates(); - $favoriteTheme = $this->themeManager->getFavoriteTheme(); - $favoriteSquelette = $this->themeManager->getFavoriteSquelette(); - $favoriteStyle = $this->themeManager->getFavoriteStyle(); - $favoritePreset = $this->themeManager->getFavoritePreset(); - $squelettes = $templates[$favoriteTheme]['squelette']; - $styles = $templates[$favoriteTheme]['style']; - $presetData = $this->themeManager->getPresetsData(); - $presets = []; - foreach ($presetData['themePresets'] as $key => $content) { - $presets[$key] = $key; - } - foreach ($presetData['customCSSPresets'] as $key => $content) { - $presets["custom/$key"] = $key; - } - $dataJs = $this->themeManager->getSquelettesAndStylesForJs(); - return $this->render( + return $this->themeController->renderWithThemeSelector( '@templates/gerer-themes-action.twig', compact([ 'errorMessage', - 'pagesThemes', - 'hibernated', - 'templates', - 'squelettes', - 'styles', - 'presets', - 'favoritePreset', - 'favoriteSquelette', - 'favoriteStyle', - 'favoriteTheme', - 'dataJs' - ]) + 'pagesThemes' + ]) ); } @@ -115,14 +89,25 @@ protected function modifyTheme(){ 'favorite_preset' => null ]); } else { + $theme = $this->sanitizePost('theme_select'); + $style = $this->sanitizePost('style_select'); + $squelette = $this->sanitizePost('squelette_select'); + $presets = $this->sanitizePost('preset_select'); + $themes = $this->themeManager->getTemplates(); + if (!isset($themes[$theme]['presets'])){ + $presets = ''; + } + if (!empty($presets) && (substr($presets,-4) !== '.css')){ + $presets .= '.css'; + } $this->pageManager->setMetadata($pageTag, [ - 'theme' => $this->sanitizePost('theme_select'), - 'style' => $this->sanitizePost('style_select'), - 'squelette' => $this->sanitizePost('squelette_select') + 'theme' => $theme, + 'style' => $style .(substr($style,-4) === '.css' ? '' : '.css'), + 'squelette' => $squelette .(substr($squelette,-strlen('.tpl.html')) === '.tpl.html' ? '' : '.tpl.html') ]+( !empty($_POST['preset_select']) ? [ - 'favorite_preset' => $this->sanitizePost('preset_select') + 'favorite_preset' => $presets ] : [] )); diff --git a/tools/templates/actions/SetWikiDefaultThemeAction.php b/tools/templates/actions/SetWikiDefaultThemeAction.php new file mode 100644 index 000000000..0c0b327b1 --- /dev/null +++ b/tools/templates/actions/SetWikiDefaultThemeAction.php @@ -0,0 +1,147 @@ +wiki->UserIsAdmin()) { + return $this->render('@templates/alert-message.twig',[ + 'type' => 'danger', + 'message' => _t('ERROR_NO_ACCESS'). " setwikidefaulttheme" + ]); + } + if (!is_writable('wakka.config.php')) { + return $this->render('@templates/alert-message.twig',[ + 'type' => 'danger', + 'message' => _t('ERROR_NO_ACCESS'). " setwikidefaulttheme, "._t('FILE_WRITE_PROTECTED') + ]); + } + + $this->securityController = $this->getService(SecurityController::class); + $this->themeController = $this->getService(ThemeController::class); + $this->themeManager = $this->getService(ThemeManager::class); + + $themes = $this->getTemplatesList(); + $config = $this->getService(ConfigurationService::class)->getConfiguration('wakka.config.php'); + $config->load(); + + if (isset($_POST['action']) and $_POST['action'] === 'setTemplate') { + if ($this->securityController->isWikiHibernated()) { + return $this->securityController->getMessageWhenHibernated(); + } + $params = $this->checkParamActionSetTemplate($themes); + + if (!is_null($params)) { + $config->favorite_theme = $params['theme']; + $config->favorite_squelette = $params['squelette']; + $config->favorite_style = $params['style']; + if (!empty($config->favorite_preset) && empty($params['preset'])) { + unset($config->favorite_preset); + } elseif (!empty($params['preset'])) { + $config->favorite_preset = $params['preset']; + } + unset($config->hide_action_template); + if ($params['forceTheme']) { + $config->hide_action_template = '1'; + } + $config->write(); + $this->wiki->Redirect($this->wiki->href("", $this->tag)); + } + } + + $params = [ + 'forceTheme' => isset($config->hide_action_template) && $config->hide_action_template === '1' + ]; + // load defaut params from config after LoadExtensions + if (isset($config->favorite_theme)){ + $params['favoriteTheme'] = $config->favorite_theme; + } + if (isset($config->favorite_squelette)){ + $params['favoriteSquelette'] = $config->favorite_squelette; + } + if (isset($config->favorite_style)){ + $params['favoriteStyle'] = $config->favorite_style; + } + return $this->themeController->renderWithThemeSelector( + '@templates/set-default-theme.twig', + $params + ); + } + + protected function getTemplatesList(): array + { + $themes = []; + foreach ($this->themeManager->getTemplates() as $templateName => $templateValues) { + $themes[$templateName] = [ + 'styles' => array_keys($templateValues['style']), + 'squelettes' => array_keys($templateValues['squelette']), + ] + ( + (empty($templateValues['presets'])) + ? [] + : ['presets' => $templateValues['presets']] + ); + } + + return $themes; + } + + protected function checkParamActionSetTemplate($availableThemes): ?array + { + if (!isset($_POST['theme_select']) || !isset($_POST['style_select']) || !isset($_POST['squelette_select'])) { + return null; + } + + $values = [ + 'squelette' => $this->sanitizePost('squelette_select'), + 'style' => $this->sanitizePost('style_select'), + 'theme' => $this->sanitizePost('theme_select'), + 'preset' => $this->sanitizePost('preset_select') + ]; + if (!empty($values['squelette']) && substr($values['squelette'],-strlen('.tpl.html')) !== '.tpl.html'){ + $values['squelette'] .= '.tpl.html'; + } + if (!empty($values['style']) && substr($values['style'],-4) !== '.css'){ + $values['style'] .= '.css'; + } + if (!empty($values['preset']) && substr($values['preset'],-4) !== '.css'){ + $values['preset'] .= '.css'; + } + + if (!array_key_exists($values['theme'], $availableThemes) + || !in_array($values['style'], $availableThemes[$values['theme']]['styles']) + || !in_array($values['squelette'], $availableThemes[$values['theme']]['squelettes'])) { + return null; + } + return [ + 'theme' => $values['theme'], + 'style' => $values['style'], + 'squelette' => $values['squelette'], + 'preset' => (!array_key_exists('presets',$availableThemes[$values['theme']]) || empty($values['preset'])) ? null : $values['preset'], + 'forceTheme' => (isset($_POST['forceTheme']) && $_POST['forceTheme'] === 'on') + ]; + } + + /** + * sanitize string from POST or return null + * @param string $key + * @return null|string + */ + protected function sanitizePost(string $key): ?string + { + if (empty($_POST[$key]) || !is_string($_POST[$key])){ + return ""; + } + $val = filter_var($_POST[$key], FILTER_UNSAFE_RAW); + return in_array($val, [false,null], true) ? "" : htmlspecialchars(strip_tags($val)); + } +} diff --git a/tools/templates/actions/accordion.php b/tools/templates/actions/accordion.php index 109e997ce..f92977d19 100755 --- a/tools/templates/actions/accordion.php +++ b/tools/templates/actions/accordion.php @@ -8,7 +8,7 @@ $class = $this->GetParameter('class'); $class = ((!empty($class)) ? ' '.$class : ''); // data attributes -$data = getDataParameter(); +$data = $this->services->get(\YesWiki\Templates\Service\Utils::class)->getDataParameter(); $pagetag = $this->GetPageTag(); // teste s'il y a bien un element de fermeture associé avant d'ouvrir une balise @@ -16,7 +16,7 @@ $GLOBALS['check_'.$pagetag] = []; } if (!isset($GLOBALS['check_'.$pagetag]['accordion'])) { - $GLOBALS['check_'.$pagetag ]['accordion'] = check_graphical_elements('accordion', $pagetag, $this->page['body'] ?? ''); + $GLOBALS['check_'.$pagetag ]['accordion'] = $this->services->get(\YesWiki\Templates\Service\Utils::class)->checkGraphicalElements('accordion', $pagetag, $this->page['body'] ?? ''); } if ($GLOBALS['check_'.$pagetag]['accordion']) { diff --git a/tools/templates/actions/buttondropdown.php b/tools/templates/actions/buttondropdown.php index 0571bb2db..0136c76e3 100755 --- a/tools/templates/actions/buttondropdown.php +++ b/tools/templates/actions/buttondropdown.php @@ -53,7 +53,7 @@ $GLOBALS['check_'.$pagetag] = []; } if (!isset($GLOBALS['check_'.$pagetag]['buttondropdown'])) { - $GLOBALS['check_'.$pagetag ]['buttondropdown'] = check_graphical_elements('buttondropdown', $pagetag, $this->page['body'] ?? ''); + $GLOBALS['check_'.$pagetag ]['buttondropdown'] = $this->services->get(\YesWiki\Templates\Service\Utils::class)->checkGraphicalElements('buttondropdown', $pagetag, $this->page['body'] ?? ''); } if ($GLOBALS['check_'.$pagetag]['buttondropdown']) { echo '
        diff --git a/tools/templates/actions/col.php b/tools/templates/actions/col.php index 69eb18e59..90b9e61d6 100755 --- a/tools/templates/actions/col.php +++ b/tools/templates/actions/col.php @@ -22,7 +22,7 @@ $class = $this->GetParameter('class'); // data attributes -$data = getDataParameter(); +$data = $this->services->get(\YesWiki\Templates\Service\Utils::class)->getDataParameter(); $pagetag = $this->GetPageTag(); @@ -31,7 +31,7 @@ $GLOBALS['check_'.$pagetag ] = []; } if (!isset($GLOBALS['check_' . $pagetag]['col'])) { - $GLOBALS['check_' . $pagetag]['col'] = check_graphical_elements('col', $pagetag, $this->page['body'] ?? ''); + $GLOBALS['check_' . $pagetag]['col'] = $this->services->get(\YesWiki\Templates\Service\Utils::class)->checkGraphicalElements('col', $pagetag, $this->page['body'] ?? ''); } if ($GLOBALS['check_' . $pagetag]['col']) { echo '"; -} elseif (isset($success)) { - echo "
        $success
        "; -} -$this->addJavascriptFile('javascripts/vendor/datatables-full/jquery.dataTables.min.js'); -$this->addCSSFile('styles/vendor/datatables-full/dataTables.bootstrap.min.css'); -?> -

        -
        - - -
        -
        - - - - - - - - - - - - -'._t('ACLS_EVERYBODY').''; - case '+': return ''._t('ACLS_AUTHENTIFICATED_USERS').''; - case '%': return ''._t('ACLS_OWNER').''; - } - switch ($el[0]) { - case '@': return "$el"; - case '!': return "$el"; - } - return "$el"; - }, $values); - $result = implode('
        ', $values); - return nl2br($result); - } - } -?> - - - - - - - - - - - -
        - -
        - - - Link($page_et_droits[$x]['page']); ?> - - - - -
        -
        -

        :

        - -

        - - - -

        - -
        - -

        - -
        - -
        - -
        - -
        - -
        - _t('YW_ACLS_READ'), - 'ecrire' => _t('YW_ACLS_WRITE'), - 'comment' => _t('YW_ACLS_COMMENT') - ]; - foreach ($roles as $role => $label) { ?> -
        - - - -
        - -
        -
        - -

        - services->get(SecurityController::class)->isWikiHibernated()) { - echo 'disabled data-toggle="tooltip" data-placement="bottom" title="'._t('WIKI_IN_HIBERNATION').'"'; - } ?> - type="submit"> -

        -FormClose(); diff --git a/tools/templates/actions/grid.php b/tools/templates/actions/grid.php index 2af1b2c5b..4ede7a5fd 100755 --- a/tools/templates/actions/grid.php +++ b/tools/templates/actions/grid.php @@ -8,7 +8,7 @@ $class = $this->GetParameter('class'); $class = 'row-fluid row'.((!empty($class)) ? ' '.$class : ''); // data attributes -$data = getDataParameter(); +$data = $this->services->get(\YesWiki\Templates\Service\Utils::class)->getDataParameter(); $pagetag = $this->GetPageTag(); // teste s'il y a bien un element de fermeture associé avant d'ouvrir une balise @@ -16,7 +16,7 @@ $GLOBALS['check_'.$pagetag ] = []; } if (!isset($GLOBALS['check_'.$pagetag]['grid'])) { - $GLOBALS['check_'.$pagetag ]['grid'] = check_graphical_elements('grid', $pagetag, $this->page['body'] ?? ''); + $GLOBALS['check_'.$pagetag ]['grid'] = $this->services->get(\YesWiki\Templates\Service\Utils::class)->checkGraphicalElements('grid', $pagetag, $this->page['body'] ?? ''); } if ($GLOBALS['check_'.$pagetag]['grid']) { diff --git a/tools/templates/actions/include__.php b/tools/templates/actions/include__.php index ba47cc453..393879b65 100755 --- a/tools/templates/actions/include__.php +++ b/tools/templates/actions/include__.php @@ -25,7 +25,7 @@ ); // ensuite les liens restants (ceux avec une classe avant ne sont pas pris en compte) - $plugin_output_new = str_ireplacement( + $plugin_output_new = $this->services->get(\YesWiki\Templates\Service\Utils::class)->strIreplacement( '
        '."\n" : $plugin_output_new; -$plugin_output_new = postFormat($plugin_output_new); +$plugin_output_new = $this->services->get(\YesWiki\Templates\Service\Utils::class)->postFormat($plugin_output_new); diff --git a/tools/templates/actions/label.php b/tools/templates/actions/label.php index 67b06c5c2..86e363cbd 100644 --- a/tools/templates/actions/label.php +++ b/tools/templates/actions/label.php @@ -12,14 +12,14 @@ $id = $this->GetParameter('id'); // label data attributes -$data = getDataParameter(); +$data = $this->services->get(\YesWiki\Templates\Service\Utils::class)->getDataParameter(); $pagetag = $this->GetPageTag(); if (!isset($GLOBALS['check_'.$pagetag])) { $GLOBALS['check_'.$pagetag] = []; } if (!isset($GLOBALS['check_' . $pagetag]['label'])) { - $GLOBALS['check_' . $pagetag]['label'] = check_graphical_elements('label', $pagetag, $this->page['body'] ?? ''); + $GLOBALS['check_' . $pagetag]['label'] = $this->services->get(\YesWiki\Templates\Service\Utils::class)->checkGraphicalElements('label', $pagetag, $this->page['body'] ?? ''); } if ($GLOBALS['check_' . $pagetag]['label']) { echo ' $GLOBALS['prefered_language'], + 'baseUrl' => $this->config['base_url'], + 'pageTag' => $this->getPageTag(), + 'isDebugEnabled' => ($this->GetConfigValue('debug') =='yes' ? 'true' : 'false'), + 'antiCsrfToken' => $this->services->get(CsrfTokenManager::class)->getToken('main')->getValue(), +]; + + // Globale wiki variable echo ""; diff --git a/tools/templates/actions/linkstyle.php b/tools/templates/actions/linkstyle.php index 23dbb7454..1caead254 100755 --- a/tools/templates/actions/linkstyle.php +++ b/tools/templates/actions/linkstyle.php @@ -31,13 +31,11 @@ // on regarde dans quel dossier se trouve le theme $styleFile = 'themes/'.$themeManager->getFavoriteTheme().'/styles/'.$favoriteStyle; -if ($themeManager->getUseFallbackTheme()) { - if (file_exists('custom/'.$styleFile)) { - $styleFile = 'custom/'.$styleFile; - } - if ($presetsActivated && !$presetIsCustom && file_exists('custom/'.$presetFile)) { - $presetFile = 'custom/'.$presetFile; - } +if (file_exists('custom/'.$styleFile)) { + $styleFile = 'custom/'.$styleFile; +} +if ($presetsActivated && !$presetIsCustom && file_exists('custom/'.$presetFile)) { + $presetFile = 'custom/'.$presetFile; } // on ajoute le style css selectionne du theme diff --git a/tools/templates/actions/metarobots.php b/tools/templates/actions/metarobots.php index d783954b5..ce3841943 100755 --- a/tools/templates/actions/metarobots.php +++ b/tools/templates/actions/metarobots.php @@ -24,9 +24,10 @@ echo "\n".' '."\n"; echo ' '."\n"; - $title = getTitleFromBody($this->page); + $utils = $this->services->get(\YesWiki\Templates\Service\Utils::class); + $title = $utils->getTitleFromBody($this->page); echo ' '."\n"; - $desc = htmlspecialchars(getDescriptionFromBody($this->page, $title), ENT_COMPAT | ENT_HTML5); + $desc = htmlspecialchars($utils->getDescriptionFromBody($this->page, $title), ENT_COMPAT | ENT_HTML5); if ($desc) { echo ' '."\n"; } diff --git a/tools/templates/actions/nav.php b/tools/templates/actions/nav.php index f012761cd..ea54cee2c 100644 --- a/tools/templates/actions/nav.php +++ b/tools/templates/actions/nav.php @@ -11,7 +11,7 @@ $class = ((!empty($class)) ? $class : 'nav nav-tabs'); // data attributes -$data = getDataParameter(); +$data = $this->services->get(\YesWiki\Templates\Service\Utils::class)->getDataParameter(); $pagetag = $this->GetPageTag(); // liens diff --git a/tools/templates/actions/panel.php b/tools/templates/actions/panel.php index c1f884225..5a8d877f6 100644 --- a/tools/templates/actions/panel.php +++ b/tools/templates/actions/panel.php @@ -29,7 +29,7 @@ $collapsed = ($type == "collapsed"); // data attributes -$data = getDataParameter(); +$data = $this->services->get(\YesWiki\Templates\Service\Utils::class)->getDataParameter(); $pagetag = $this->GetPageTag(); @@ -38,7 +38,7 @@ $GLOBALS['check_'.$pagetag] = []; } if (!isset($GLOBALS['check_' . $pagetag]['panel'])) { - $GLOBALS['check_' . $pagetag]['panel'] = check_graphical_elements('panel', $pagetag, $this->page['body'] ?? ''); + $GLOBALS['check_' . $pagetag]['panel'] = $this->services->get(\YesWiki\Templates\Service\Utils::class)->checkGraphicalElements('panel', $pagetag, $this->page['body'] ?? ''); } if ($GLOBALS['check_' . $pagetag]['panel']) { diff --git a/tools/templates/actions/section.php b/tools/templates/actions/section.php index 885010049..1cba6f61b 100644 --- a/tools/templates/actions/section.php +++ b/tools/templates/actions/section.php @@ -110,14 +110,14 @@ $id = $this->GetParameter('id'); // container data attributes -$data = getDataParameter(); +$data = $this->services->get(\YesWiki\Templates\Service\Utils::class)->getDataParameter(); $pagetag = $this->GetPageTag(); if (!isset($GLOBALS['check_'.$pagetag])) { $GLOBALS['check_'.$pagetag] = []; } if (!isset($GLOBALS['check_' . $pagetag]['section'])) { - $GLOBALS['check_' . $pagetag]['section'] = check_graphical_elements('section', $pagetag, $this->page['body'] ?? ''); + $GLOBALS['check_' . $pagetag]['section'] = $this->services->get(\YesWiki\Templates\Service\Utils::class)->checkGraphicalElements('section', $pagetag, $this->page['body'] ?? ''); } if ($GLOBALS['check_' . $pagetag]['section']) { // specify the role to be checked ( *, +, %, @admins) diff --git a/tools/templates/actions/setwikidefaulttheme.php b/tools/templates/actions/setwikidefaulttheme.php deleted file mode 100644 index f71c04cdc..000000000 --- a/tools/templates/actions/setwikidefaulttheme.php +++ /dev/null @@ -1,48 +0,0 @@ -' - . _t('ERROR_NO_ACCESS') - . " setwikidefaulttheme, "._t('FILE_WRITE_PROTECTED')."
        \n"; -} else { - if ($this->UserIsAdmin()) { - $themes = getTemplatesList(); - $config = $this->services->get(ConfigurationService::class)->getConfiguration('wakka.config.php'); - $config->load(); - - if (isset($_POST['action']) and $_POST['action'] === 'setTemplate') { - $params = checkParamActionSetTemplate($_POST, $themes); - if ($this->services->get(SecurityController::class)->isWikiHibernated()) { - echo $this->services->get(SecurityController::class)->getMessageWhenHibernated(); - } elseif ($params !== false) { - $config->favorite_theme = $params['theme']; - $config->favorite_squelette = $params['squelette']; - $config->favorite_style = $params['style']; - if (!empty($config->favorite_preset) && empty($params['preset'])) { - unset($config->favorite_preset); - } elseif (!empty($params['preset'])) { - $config->favorite_preset = $params['preset']; - } - unset($config->hide_action_template); - if ($params['forceTheme']) { - $config->hide_action_template = '1'; - } - $config->write(); - $this->Redirect($this->href("", $this->tag)); - } - } - showSelectTemplateForm($themes, $config); - } else { - echo '
        ' - . _t('ERROR_NO_ACCESS') - . " setwikidefaulttheme
        \n"; - } -} diff --git a/tools/templates/actions/themeselector.php b/tools/templates/actions/themeselector.php index 2275d1d3a..c8e9f27cc 100755 --- a/tools/templates/actions/themeselector.php +++ b/tools/templates/actions/themeselector.php @@ -3,8 +3,6 @@ die("accès direct interdit"); } -require_once 'tools/templates/libs/templates.functions.php'; - $class = $this->getParameter('class'); if ($this->UserIsAdmin() && isset($_POST['action']) && ($_POST['action'] === 'setTemplate') @@ -13,5 +11,5 @@ // if not redirected by setwikidefaulttheme : redirect $this->Redirect($this->href("", $this->tag)); } else { - echo show_form_theme_selector('selector', $class); + echo $this->services->get(\YesWiki\Templates\Controller\ThemeController::class)->showFormThemeSelector('selector', $class); } diff --git a/tools/templates/actions/titrepage.php b/tools/templates/actions/titrepage.php index 03d1f5e8f..7855cb878 100755 --- a/tools/templates/actions/titrepage.php +++ b/tools/templates/actions/titrepage.php @@ -3,7 +3,7 @@ die("accès direct interdit"); } -$title = htmlspecialchars(getTitleFromBody($this->page), ENT_COMPAT | ENT_HTML5); +$title = htmlspecialchars($this->services->get(\YesWiki\Templates\Service\Utils::class)->getTitleFromBody($this->page), ENT_COMPAT | ENT_HTML5); if ($title) { echo $title; } else { diff --git a/tools/templates/controllers/TabsController.php b/tools/templates/controllers/TabsController.php index 2a39b0654..4d9d37af8 100644 --- a/tools/templates/controllers/TabsController.php +++ b/tools/templates/controllers/TabsController.php @@ -59,7 +59,7 @@ public function openTabs(string $mode,$data):string } else { return ''; } - return $this->render('@templates/tabs.twig',[ + return empty($titles) ? '' : $this->render('@templates/tabs.twig',[ 'titles' => $titles, 'selectedtab' => $selectedtab , 'slugs' => $this->tabsService->getSlugs($mode) diff --git a/tools/templates/controllers/ThemeController.php b/tools/templates/controllers/ThemeController.php new file mode 100644 index 000000000..df3d13b25 --- /dev/null +++ b/tools/templates/controllers/ThemeController.php @@ -0,0 +1,184 @@ +params = $params; + $this->securityController = $securityController; + $this->themeManager = $themeManager; + } + + /** + * render a template with theme-selector appending the right vars to params + * @param string $templateName + * @param array $params + * @return string + */ + public function renderWithThemeSelector(string $templateName,array $params): string + { + $templates = $this->themeManager->getTemplates(); + $favoriteTheme = $this->themeManager->getFavoriteTheme(); + $favoriteSquelette = $this->themeManager->getFavoriteSquelette(); + $favoriteStyle = $this->themeManager->getFavoriteStyle(); + $favoritePreset = $this->themeManager->getFavoritePreset(); + $squelettes = $templates[$favoriteTheme]['squelette']; + $styles = $templates[$favoriteTheme]['style']; + $presetsData = $this->themeManager->getPresetsData(); + $presets = []; + foreach ($presetsData['themePresets'] as $key => $content) { + $presets[$key] = $key; + } + foreach ($presetsData['customCSSPresets'] as $key => $content) { + $presets[ThemeManager::CUSTOM_CSS_PRESETS_PREFIX.$key] = $key; + } + $dataTemplates = array_map(function($t){ + return array_key_exists('presets',$t) + ? array_merge($t,[ + 'presets'=> array_keys($t['presets']) + ]) + : $t; + },$templates); + $hibernated = $this->securityController->isWikiHibernated(); + return $this->render( + $templateName, + array_merge( + compact([ + 'templates', + 'favoriteTheme', + 'favoriteSquelette', + 'favoriteStyle', + 'favoritePreset', + 'squelettes', + 'styles', + 'presets', + 'dataTemplates', + 'hibernated', + 'presetsData' + ]), + $params + ) + ); + } + + /** + * render form theme selector + * @param string $mode + * @param string $formclass + * @return string + */ + public function showFormThemeSelector($mode = 'selector', $formclass = ''): string + { + // en mode edition on recupere aussi les images de fond + if ($mode=='edit') { + $id = 'form_graphical_options'; + $backgrounds = $this->prepareBackgrounds(); + $bgselector = + !empty($backgrounds) + ? $this->render('@templates/background-selector.twig',[ + 'backgrounds' => $backgrounds, + 'favoriteBackgroundImage' => $this->themeManager->getFavoriteBackgroundImage() + ]) + : ''; + } else { + $id = 'form_theme_selector'; + $bgselector = ''; + } + + // page list + $tablistWikinames = $this->wiki->LoadAll( + 'SELECT DISTINCT tag FROM '.$this->wiki->GetConfigValue('table_prefix').'pages WHERE latest="Y"' + ); + foreach ($tablistWikinames as $tag) { + $listWikinames[] = $tag['tag']; + } + $listWikinames = '["'.implode('","', $listWikinames).'"]'; + + $ts = [ + 'TEMPLATE_CHOOSE_FONT', + 'TEMPLATE_SEARCH_POINTS', + 'TEMPLATE_APPLY', + 'TEMPLATE_CANCEL', + 'TEMPLATE_THEME_NOT_SAVE', + 'TEMPLATE_FILE_NOT_ADDED', + 'TEMPLATE_FILE_NOT_DELETED', + 'TEMPLATE_FILE_ALREADY_EXISTING', + 'TEMPLATE_PRESET_ERROR' + ]; + $ts = array_combine($ts,$ts); + + return $this->renderWithThemeSelector("@templates/theme-selector-with-form.twig", [ + 'mode' => $mode, + 'id' => $id, + 'class' => $formclass, + 'bgselector' => $bgselector, + 'listWikinames' => $listWikinames, + 'showAdminActions' => ($this->wiki->UserIsAdmin()), + 'themeSelectorTranslation' => array_map('_t',$ts), + 'customCSSPresetsPath' => ThemeManager::CUSTOM_CSS_PRESETS_PATH, + 'customCSSPresetsPrefix' => ThemeManager::CUSTOM_CSS_PRESETS_PREFIX, + 'availableLanguages' => $GLOBALS['available_languages'], + 'preferedLanguage' => $GLOBALS['prefered_language'], + 'languagesList' => $GLOBALS['languages_list'], + 'page' => $this->wiki->page, + 'updateUrl' => ($mode !== 'edit') + ]); + + return $selecteur; + } + + /** + * prepare backgrounds + * @return array + */ + protected function prepareBackgrounds(): array + { + $backgrounds = []; + $backgroundsdir = 'files/backgrounds'; + $dir = (is_dir($backgroundsdir) ? opendir($backgroundsdir) : false); + while ($dir && ($file = readdir($dir)) !== false) { + $imgextension = strtolower(substr($file, -4, 4)); + // les jpg sont les fonds d'ecrans, ils doivent etre mis en miniature + if ($imgextension == '.jpg') { + if (!is_file($backgroundsdir.'/thumbs/'.$file)) { + $imgTrans = new Zebra_Image(); + $imgTrans->auto_handle_exif_orientation = true; + $imgTrans->preserve_aspect_ratio = true; + $imgTrans->enlarge_smaller_images = true; + $imgTrans->preserve_time = true; + $imgTrans->handle_exif_orientation_tag = true; + $imgTrans->source_path = $backgroundsdir.'/'.$file; + $imgTrans->target_path = $backgroundsdir.'/thumbs/'.$file; + if ($imgTrans->resize(intval(100), intval(75), ZEBRA_IMAGE_NOT_BOXED, '#FFFFFF')) { + $backgrounds[] = $imgTrans->target_path; + } + } else { + $backgrounds[] = $backgroundsdir.'/thumbs/'.$file; + } + } elseif ($imgextension == '.png') { + // les png sont les images a repeter en mosaique + $backgrounds[] = $backgroundsdir.'/'.$file; + } + } + if ($dir) { + closedir($dir); + } + return $backgrounds; + } + +} diff --git a/tools/templates/handlers/page/__edit.php b/tools/templates/handlers/page/__edit.php index 95c9c565d..c5922c3e9 100755 --- a/tools/templates/handlers/page/__edit.php +++ b/tools/templates/handlers/page/__edit.php @@ -27,9 +27,5 @@ $_POST["body"] = '======'.$_GET["body"].'======'; } -$js = $this->render('@templates/_theme-selector-export-var.twig',[ - 'dataJs' => $this->services->get(ThemeManager::class)->getSquelettesAndStylesForJs(), - 'mode' => 'raw' - ]); -$this->addJavascript($js); +$this->addJavascriptFile('tools/templates/javascripts/change-theme.js'); $this->addJavascriptFile('tools/templates/javascripts/template-edit.js'); diff --git a/tools/templates/handlers/page/diaporama.php b/tools/templates/handlers/page/diaporama.php index 251a0d00e..81c0caa3e 100755 --- a/tools/templates/handlers/page/diaporama.php +++ b/tools/templates/handlers/page/diaporama.php @@ -14,7 +14,7 @@ } // fonction de generation du diaporama (teste les droits et l'existence de la page) -echo print_diaporama($this->tag, $template); +echo $this->services->get(\YesWiki\Templates\Service\Utils::class)->printDiaporama($this->tag, $template); $output = ob_get_contents(); ob_end_clean(); diff --git a/tools/templates/handlers/page/edit__.php b/tools/templates/handlers/page/edit__.php index 3d69bf01d..9e8dd7833 100755 --- a/tools/templates/handlers/page/edit__.php +++ b/tools/templates/handlers/page/edit__.php @@ -27,7 +27,7 @@ '

        '._t('TEMPLATE_CUSTOM_GRAPHICS').' '.$this->GetPageTag().'

        '."\n". '
        '."\n". ' '."\n". '