diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml
index 914ce163f..ca0a02824 100644
--- a/.github/workflows/integration.yml
+++ b/.github/workflows/integration.yml
@@ -55,7 +55,7 @@ jobs:
     - name: Checkout
       uses: actions/checkout@v2
     - name: Install Ubuntu packages
-      run: sudo ./utils/searx.sh install packages
+      run: sudo ./utils/searx.sh install buildhost
     - name: Install node dependencies
       run: make V=1 node.env
     - name: Build themes
diff --git a/manage b/manage
index 5237e6e1b..7019f429b 100755
--- a/manage
+++ b/manage
@@ -13,7 +13,6 @@ source_dot_config
 
 PYOBJECTS="searx"
 PY_SETUP_EXTRAS='[test]'
-NPM_PACKAGES="less@2.7 less-plugin-clean-css grunt-cli"
 GECKODRIVER_VERSION="v0.28.0"
 # SPHINXOPTS=
 
@@ -296,43 +295,29 @@ gecko.driver() {
 }
 
 node.env() {
-    local err=0
-    pushd "${REPO_ROOT}" &> /dev/null
-    # shellcheck disable=SC2230
-    which npm &> /dev/null || die 1 'node.env - npm is not found!'
+    if ! required_commands npm fontforge ttfautohint; then
+        info_msg "to install build tools use::"
+        info_msg "   sudo -H ./utils/searx.sh install buildhost"
+        die 1 "install needed build tools first"
+    fi
 
     (   set -e
-        # shellcheck disable=SC2030
-        PATH="$(npm bin):$PATH"
-        export PATH
 
-        build_msg INSTALL "npm install $NPM_PACKAGES"
-        # shellcheck disable=SC2086
-        npm install $NPM_PACKAGES
+        build_msg INSTALL "searx/static/themes/oscar/package.json"
+        npm --prefix searx/static/themes/oscar install
 
-        cd "${REPO_ROOT}/searx/static/themes/oscar"
-        build_msg INSTALL "($(pwd)) npm install"
-        npm install
-
-        build_msg INSTALL "($(pwd)) npm install"
-        cd "${REPO_ROOT}/searx/static/themes/simple"
-        npm install
+        build_msg INSTALL "searx/static/themes/simple/package.json"
+        npm --prefix searx/static/themes/simple install
     )
-    err=$?
-    popd &> /dev/null
-    dump_return "$err"
+    dump_return $?
 }
 
 node.clean() {
-
     build_msg CLEAN "locally installed npm dependencies"
-    rm -rf \
-       ./node_modules  \
-       ./package-lock.json \
-       ./searx/static/themes/oscar/package-lock.json \
-       ./searx/static/themes/oscar/node_modules \
-       ./searx/static/themes/simple/package-lock.json \
-       ./searx/static/themes/simple/node_modules
+    (   set -e
+        npm --prefix searx/static/themes/oscar run clean
+        npm --prefix searx/static/themes/simple run clean
+    )
     dump_return $?
 }
 
@@ -481,16 +466,14 @@ themes.all() {
 }
 
 themes.oscar() {
-    local gruntfile=searx/static/themes/oscar/gruntfile.js
-    build_msg GRUNT "${gruntfile}"
-    PATH="$(npm bin):$PATH" grunt --gruntfile "${gruntfile}"
+    build_msg GRUNT "theme: oscar"
+    npm --prefix searx/static/themes/oscar run build
     dump_return $?
 }
 
 themes.simple() {
-    local gruntfile=searx/static/themes/simple/gruntfile.js
-    build_msg GRUNT "${gruntfile}"
-    PATH="$(npm bin):$PATH" grunt --gruntfile "${gruntfile}"
+    build_msg GRUNT "theme: simple"
+    npm --prefix searx/static/themes/simple run build
     dump_return $?
 }
 
diff --git a/searx/static/themes/oscar/package.json b/searx/static/themes/oscar/package.json
index 8a3d48787..94883873d 100644
--- a/searx/static/themes/oscar/package.json
+++ b/searx/static/themes/oscar/package.json
@@ -1,23 +1,27 @@
 {
     "devDependencies": {
-        "grunt": "^1.3.0",
-        "grunt-cli": "^1.3.2",
+        "grunt": "~1.4.1",
+        "grunt-cli": "^1.4.3",
         "grunt-contrib-concat": "~1.0.1",
         "grunt-contrib-copy": "^1.0.0",
         "grunt-contrib-jshint": "~3.0.0",
         "grunt-contrib-less": "~3.0.0",
-        "grunt-contrib-uglify": "~5.0.0",
-        "grunt-contrib-watch": "~1.1.0"
-    },
-    "scripts": {
-        "build": "npm install && grunt",
-        "start": "grunt watch",
-        "test": "grunt"
+        "grunt-contrib-uglify": "~5.0.1",
+        "grunt-contrib-watch": "~1.1.0",
+        "jslint": "^0.12.1",
+        "less": "^4.1.1",
+        "less-plugin-clean-css": "^1.5.1"
     },
     "dependencies": {
         "bootstrap": "^3.4.1",
         "corejs-typeahead": "^1.3.1",
         "jquery": "^3.6.0",
         "leaflet": "^1.7.1"
+    },
+    "scripts": {
+        "all": "npm install && grunt",
+        "build": "grunt",
+        "watch": "grunt watch",
+        "clean": "rm -Rf node_modules package-lock.json"
     }
 }
diff --git a/searx/static/themes/simple/.gitignore b/searx/static/themes/simple/.gitignore
index 07e6e472c..2c1954c3c 100644
--- a/searx/static/themes/simple/.gitignore
+++ b/searx/static/themes/simple/.gitignore
@@ -1 +1,2 @@
 /node_modules
+ion.less
diff --git a/searx/static/themes/simple/leaflet/images/layers-2x.png b/searx/static/themes/simple/css/images/layers-2x.png
similarity index 100%
rename from searx/static/themes/simple/leaflet/images/layers-2x.png
rename to searx/static/themes/simple/css/images/layers-2x.png
diff --git a/searx/static/themes/simple/leaflet/images/layers.png b/searx/static/themes/simple/css/images/layers.png
similarity index 100%
rename from searx/static/themes/simple/leaflet/images/layers.png
rename to searx/static/themes/simple/css/images/layers.png
diff --git a/searx/static/themes/simple/leaflet/images/marker-icon-2x.png b/searx/static/themes/simple/css/images/marker-icon-2x.png
similarity index 100%
rename from searx/static/themes/simple/leaflet/images/marker-icon-2x.png
rename to searx/static/themes/simple/css/images/marker-icon-2x.png
diff --git a/searx/static/themes/simple/leaflet/images/marker-icon.png b/searx/static/themes/simple/css/images/marker-icon.png
similarity index 100%
rename from searx/static/themes/simple/leaflet/images/marker-icon.png
rename to searx/static/themes/simple/css/images/marker-icon.png
diff --git a/searx/static/themes/simple/leaflet/images/marker-shadow.png b/searx/static/themes/simple/css/images/marker-shadow.png
similarity index 100%
rename from searx/static/themes/simple/leaflet/images/marker-shadow.png
rename to searx/static/themes/simple/css/images/marker-shadow.png
diff --git a/searx/static/themes/simple/leaflet/leaflet.css b/searx/static/themes/simple/css/leaflet.css
similarity index 93%
rename from searx/static/themes/simple/leaflet/leaflet.css
rename to searx/static/themes/simple/css/leaflet.css
index d1b47a125..601476fe6 100644
--- a/searx/static/themes/simple/leaflet/leaflet.css
+++ b/searx/static/themes/simple/css/leaflet.css
@@ -1,636 +1,640 @@
-/* required styles */
-
-.leaflet-pane,
-.leaflet-tile,
-.leaflet-marker-icon,
-.leaflet-marker-shadow,
-.leaflet-tile-container,
-.leaflet-pane > svg,
-.leaflet-pane > canvas,
-.leaflet-zoom-box,
-.leaflet-image-layer,
-.leaflet-layer {
-	position: absolute;
-	left: 0;
-	top: 0;
-	}
-.leaflet-container {
-	overflow: hidden;
-	}
-.leaflet-tile,
-.leaflet-marker-icon,
-.leaflet-marker-shadow {
-	-webkit-user-select: none;
-	   -moz-user-select: none;
-	        user-select: none;
-	  -webkit-user-drag: none;
-	}
-/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
-.leaflet-safari .leaflet-tile {
-	image-rendering: -webkit-optimize-contrast;
-	}
-/* hack that prevents hw layers "stretching" when loading new tiles */
-.leaflet-safari .leaflet-tile-container {
-	width: 1600px;
-	height: 1600px;
-	-webkit-transform-origin: 0 0;
-	}
-.leaflet-marker-icon,
-.leaflet-marker-shadow {
-	display: block;
-	}
-/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
-/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
-.leaflet-container .leaflet-overlay-pane svg,
-.leaflet-container .leaflet-marker-pane img,
-.leaflet-container .leaflet-shadow-pane img,
-.leaflet-container .leaflet-tile-pane img,
-.leaflet-container img.leaflet-image-layer {
-	max-width: none !important;
-	max-height: none !important;
-	}
-
-.leaflet-container.leaflet-touch-zoom {
-	-ms-touch-action: pan-x pan-y;
-	touch-action: pan-x pan-y;
-	}
-.leaflet-container.leaflet-touch-drag {
-	-ms-touch-action: pinch-zoom;
-	/* Fallback for FF which doesn't support pinch-zoom */
-	touch-action: none;
-	touch-action: pinch-zoom;
-}
-.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
-	-ms-touch-action: none;
-	touch-action: none;
-}
-.leaflet-container {
-	-webkit-tap-highlight-color: transparent;
-}
-.leaflet-container a {
-	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
-}
-.leaflet-tile {
-	filter: inherit;
-	visibility: hidden;
-	}
-.leaflet-tile-loaded {
-	visibility: inherit;
-	}
-.leaflet-zoom-box {
-	width: 0;
-	height: 0;
-	-moz-box-sizing: border-box;
-	     box-sizing: border-box;
-	z-index: 800;
-	}
-/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
-.leaflet-overlay-pane svg {
-	-moz-user-select: none;
-	}
-
-.leaflet-pane         { z-index: 400; }
-
-.leaflet-tile-pane    { z-index: 200; }
-.leaflet-overlay-pane { z-index: 400; }
-.leaflet-shadow-pane  { z-index: 500; }
-.leaflet-marker-pane  { z-index: 600; }
-.leaflet-tooltip-pane   { z-index: 650; }
-.leaflet-popup-pane   { z-index: 700; }
-
-.leaflet-map-pane canvas { z-index: 100; }
-.leaflet-map-pane svg    { z-index: 200; }
-
-.leaflet-vml-shape {
-	width: 1px;
-	height: 1px;
-	}
-.lvml {
-	behavior: url(#default#VML);
-	display: inline-block;
-	position: absolute;
-	}
-
-
-/* control positioning */
-
-.leaflet-control {
-	position: relative;
-	z-index: 800;
-	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
-	pointer-events: auto;
-	}
-.leaflet-top,
-.leaflet-bottom {
-	position: absolute;
-	z-index: 1000;
-	pointer-events: none;
-	}
-.leaflet-top {
-	top: 0;
-	}
-.leaflet-right {
-	right: 0;
-	}
-.leaflet-bottom {
-	bottom: 0;
-	}
-.leaflet-left {
-	left: 0;
-	}
-.leaflet-control {
-	float: left;
-	clear: both;
-	}
-.leaflet-right .leaflet-control {
-	float: right;
-	}
-.leaflet-top .leaflet-control {
-	margin-top: 10px;
-	}
-.leaflet-bottom .leaflet-control {
-	margin-bottom: 10px;
-	}
-.leaflet-left .leaflet-control {
-	margin-left: 10px;
-	}
-.leaflet-right .leaflet-control {
-	margin-right: 10px;
-	}
-
-
-/* zoom and fade animations */
-
-.leaflet-fade-anim .leaflet-tile {
-	will-change: opacity;
-	}
-.leaflet-fade-anim .leaflet-popup {
-	opacity: 0;
-	-webkit-transition: opacity 0.2s linear;
-	   -moz-transition: opacity 0.2s linear;
-	     -o-transition: opacity 0.2s linear;
-	        transition: opacity 0.2s linear;
-	}
-.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
-	opacity: 1;
-	}
-.leaflet-zoom-animated {
-	-webkit-transform-origin: 0 0;
-	    -ms-transform-origin: 0 0;
-	        transform-origin: 0 0;
-	}
-.leaflet-zoom-anim .leaflet-zoom-animated {
-	will-change: transform;
-	}
-.leaflet-zoom-anim .leaflet-zoom-animated {
-	-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
-	   -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
-	     -o-transition:      -o-transform 0.25s cubic-bezier(0,0,0.25,1);
-	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
-	}
-.leaflet-zoom-anim .leaflet-tile,
-.leaflet-pan-anim .leaflet-tile {
-	-webkit-transition: none;
-	   -moz-transition: none;
-	     -o-transition: none;
-	        transition: none;
-	}
-
-.leaflet-zoom-anim .leaflet-zoom-hide {
-	visibility: hidden;
-	}
-
-
-/* cursors */
-
-.leaflet-interactive {
-	cursor: pointer;
-	}
-.leaflet-grab {
-	cursor: -webkit-grab;
-	cursor:    -moz-grab;
-	}
-.leaflet-crosshair,
-.leaflet-crosshair .leaflet-interactive {
-	cursor: crosshair;
-	}
-.leaflet-popup-pane,
-.leaflet-control {
-	cursor: auto;
-	}
-.leaflet-dragging .leaflet-grab,
-.leaflet-dragging .leaflet-grab .leaflet-interactive,
-.leaflet-dragging .leaflet-marker-draggable {
-	cursor: move;
-	cursor: -webkit-grabbing;
-	cursor:    -moz-grabbing;
-	}
-
-/* marker & overlays interactivity */
-.leaflet-marker-icon,
-.leaflet-marker-shadow,
-.leaflet-image-layer,
-.leaflet-pane > svg path,
-.leaflet-tile-container {
-	pointer-events: none;
-	}
-
-.leaflet-marker-icon.leaflet-interactive,
-.leaflet-image-layer.leaflet-interactive,
-.leaflet-pane > svg path.leaflet-interactive {
-	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
-	pointer-events: auto;
-	}
-
-/* visual tweaks */
-
-.leaflet-container {
-	background: #ddd;
-	outline: 0;
-	}
-.leaflet-container a {
-	color: #0078A8;
-	}
-.leaflet-container a.leaflet-active {
-	outline: 2px solid orange;
-	}
-.leaflet-zoom-box {
-	border: 2px dotted #38f;
-	background: rgba(255,255,255,0.5);
-	}
-
-
-/* general typography */
-.leaflet-container {
-	font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
-	}
-
-
-/* general toolbar styles */
-
-.leaflet-bar {
-	box-shadow: 0 1px 5px rgba(0,0,0,0.65);
-	border-radius: 4px;
-	}
-.leaflet-bar a,
-.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: black;
-	}
-.leaflet-bar a,
-.leaflet-control-layers-toggle {
-	background-position: 50% 50%;
-	background-repeat: no-repeat;
-	display: block;
-	}
-.leaflet-bar a:hover {
-	background-color: #f4f4f4;
-	}
-.leaflet-bar a:first-child {
-	border-top-left-radius: 4px;
-	border-top-right-radius: 4px;
-	}
-.leaflet-bar a:last-child {
-	border-bottom-left-radius: 4px;
-	border-bottom-right-radius: 4px;
-	border-bottom: none;
-	}
-.leaflet-bar a.leaflet-disabled {
-	cursor: default;
-	background-color: #f4f4f4;
-	color: #bbb;
-	}
-
-.leaflet-touch .leaflet-bar a {
-	width: 30px;
-	height: 30px;
-	line-height: 30px;
-	}
-.leaflet-touch .leaflet-bar a:first-child {
-	border-top-left-radius: 2px;
-	border-top-right-radius: 2px;
-	}
-.leaflet-touch .leaflet-bar a:last-child {
-	border-bottom-left-radius: 2px;
-	border-bottom-right-radius: 2px;
-	}
-
-/* zoom control */
-
-.leaflet-control-zoom-in,
-.leaflet-control-zoom-out {
-	font: bold 18px 'Lucida Console', Monaco, monospace;
-	text-indent: 1px;
-	}
-
-.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {
-	font-size: 22px;
-	}
-
-
-/* layers control */
-
-.leaflet-control-layers {
-	box-shadow: 0 1px 5px rgba(0,0,0,0.4);
-	background: #fff;
-	border-radius: 5px;
-	}
-.leaflet-control-layers-toggle {
-	background-image: url(images/layers.png);
-	width: 36px;
-	height: 36px;
-	}
-.leaflet-retina .leaflet-control-layers-toggle {
-	background-image: url(images/layers-2x.png);
-	background-size: 26px 26px;
-	}
-.leaflet-touch .leaflet-control-layers-toggle {
-	width: 44px;
-	height: 44px;
-	}
-.leaflet-control-layers .leaflet-control-layers-list,
-.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
-	display: none;
-	}
-.leaflet-control-layers-expanded .leaflet-control-layers-list {
-	display: block;
-	position: relative;
-	}
-.leaflet-control-layers-expanded {
-	padding: 6px 10px 6px 6px;
-	color: #333;
-	background: #fff;
-	}
-.leaflet-control-layers-scrollbar {
-	overflow-y: scroll;
-	overflow-x: hidden;
-	padding-right: 5px;
-	}
-.leaflet-control-layers-selector {
-	margin-top: 2px;
-	position: relative;
-	top: 1px;
-	}
-.leaflet-control-layers label {
-	display: block;
-	}
-.leaflet-control-layers-separator {
-	height: 0;
-	border-top: 1px solid #ddd;
-	margin: 5px -10px 5px -6px;
-	}
-
-/* Default icon URLs */
-.leaflet-default-icon-path {
-	background-image: url(images/marker-icon.png);
-	}
-
-
-/* attribution and scale controls */
-
-.leaflet-container .leaflet-control-attribution {
-	background: #fff;
-	background: rgba(255, 255, 255, 0.7);
-	margin: 0;
-	}
-.leaflet-control-attribution,
-.leaflet-control-scale-line {
-	padding: 0 5px;
-	color: #333;
-	}
-.leaflet-control-attribution a {
-	text-decoration: none;
-	}
-.leaflet-control-attribution a:hover {
-	text-decoration: underline;
-	}
-.leaflet-container .leaflet-control-attribution,
-.leaflet-container .leaflet-control-scale {
-	font-size: 11px;
-	}
-.leaflet-left .leaflet-control-scale {
-	margin-left: 5px;
-	}
-.leaflet-bottom .leaflet-control-scale {
-	margin-bottom: 5px;
-	}
-.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, 0.5);
-	}
-.leaflet-control-scale-line:not(:first-child) {
-	border-top: 2px solid #777;
-	border-bottom: none;
-	margin-top: -2px;
-	}
-.leaflet-control-scale-line:not(:first-child):not(:last-child) {
-	border-bottom: 2px solid #777;
-	}
-
-.leaflet-touch .leaflet-control-attribution,
-.leaflet-touch .leaflet-control-layers,
-.leaflet-touch .leaflet-bar {
-	box-shadow: none;
-	}
-.leaflet-touch .leaflet-control-layers,
-.leaflet-touch .leaflet-bar {
-	border: 2px solid rgba(0,0,0,0.2);
-	background-clip: padding-box;
-	}
-
-
-/* popup */
-
-.leaflet-popup {
-	position: absolute;
-	text-align: center;
-	margin-bottom: 20px;
-	}
-.leaflet-popup-content-wrapper {
-	padding: 1px;
-	text-align: left;
-	border-radius: 12px;
-	}
-.leaflet-popup-content {
-	margin: 13px 19px;
-	line-height: 1.4;
-	}
-.leaflet-popup-content p {
-	margin: 18px 0;
-	}
-.leaflet-popup-tip-container {
-	width: 40px;
-	height: 20px;
-	position: absolute;
-	left: 50%;
-	margin-left: -20px;
-	overflow: hidden;
-	pointer-events: none;
-	}
-.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);
-	     -o-transform: rotate(45deg);
-	        transform: rotate(45deg);
-	}
-.leaflet-popup-content-wrapper,
-.leaflet-popup-tip {
-	background: white;
-	color: #333;
-	box-shadow: 0 3px 14px rgba(0,0,0,0.4);
-	}
-.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: bold;
-	background: transparent;
-	}
-.leaflet-container a.leaflet-popup-close-button:hover {
-	color: #999;
-	}
-.leaflet-popup-scrolled {
-	overflow: auto;
-	border-bottom: 1px solid #ddd;
-	border-top: 1px solid #ddd;
-	}
-
-.leaflet-oldie .leaflet-popup-content-wrapper {
-	zoom: 1;
-	}
-.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=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
-	}
-.leaflet-oldie .leaflet-popup-tip-container {
-	margin-top: -1px;
-	}
-
-.leaflet-oldie .leaflet-control-zoom,
-.leaflet-oldie .leaflet-control-layers,
-.leaflet-oldie .leaflet-popup-content-wrapper,
-.leaflet-oldie .leaflet-popup-tip {
-	border: 1px solid #999;
-	}
-
-
-/* div icon */
-
-.leaflet-div-icon {
-	background: #fff;
-	border: 1px solid #666;
-	}
-
-
-/* Tooltip */
-/* Base styles for the element that has a tooltip */
-.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,0.4);
-	}
-.leaflet-tooltip.leaflet-clickable {
-	cursor: pointer;
-	pointer-events: auto;
-	}
-.leaflet-tooltip-top:before,
-.leaflet-tooltip-bottom:before,
-.leaflet-tooltip-left:before,
-.leaflet-tooltip-right:before {
-	position: absolute;
-	pointer-events: none;
-	border: 6px solid transparent;
-	background: transparent;
-	content: "";
-	}
-
-/* Directions */
-
-.leaflet-tooltip-bottom {
-	margin-top: 6px;
-}
-.leaflet-tooltip-top {
-	margin-top: -6px;
-}
-.leaflet-tooltip-bottom:before,
-.leaflet-tooltip-top:before {
-	left: 50%;
-	margin-left: -6px;
-	}
-.leaflet-tooltip-top:before {
-	bottom: 0;
-	margin-bottom: -12px;
-	border-top-color: #fff;
-	}
-.leaflet-tooltip-bottom:before {
-	top: 0;
-	margin-top: -12px;
-	margin-left: -6px;
-	border-bottom-color: #fff;
-	}
-.leaflet-tooltip-left {
-	margin-left: -6px;
-}
-.leaflet-tooltip-right {
-	margin-left: 6px;
-}
-.leaflet-tooltip-left:before,
-.leaflet-tooltip-right:before {
-	top: 50%;
-	margin-top: -6px;
-	}
-.leaflet-tooltip-left:before {
-	right: 0;
-	margin-right: -12px;
-	border-left-color: #fff;
-	}
-.leaflet-tooltip-right:before {
-	left: 0;
-	margin-left: -12px;
-	border-right-color: #fff;
-	}
+/* required styles */
+
+.leaflet-pane,
+.leaflet-tile,
+.leaflet-marker-icon,
+.leaflet-marker-shadow,
+.leaflet-tile-container,
+.leaflet-pane > svg,
+.leaflet-pane > canvas,
+.leaflet-zoom-box,
+.leaflet-image-layer,
+.leaflet-layer {
+	position: absolute;
+	left: 0;
+	top: 0;
+	}
+.leaflet-container {
+	overflow: hidden;
+	}
+.leaflet-tile,
+.leaflet-marker-icon,
+.leaflet-marker-shadow {
+	-webkit-user-select: none;
+	   -moz-user-select: none;
+	        user-select: none;
+	  -webkit-user-drag: none;
+	}
+/* Prevents IE11 from highlighting tiles in blue */
+.leaflet-tile::selection {
+	background: transparent;
+}
+/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
+.leaflet-safari .leaflet-tile {
+	image-rendering: -webkit-optimize-contrast;
+	}
+/* hack that prevents hw layers "stretching" when loading new tiles */
+.leaflet-safari .leaflet-tile-container {
+	width: 1600px;
+	height: 1600px;
+	-webkit-transform-origin: 0 0;
+	}
+.leaflet-marker-icon,
+.leaflet-marker-shadow {
+	display: block;
+	}
+/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
+/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
+.leaflet-container .leaflet-overlay-pane svg,
+.leaflet-container .leaflet-marker-pane img,
+.leaflet-container .leaflet-shadow-pane img,
+.leaflet-container .leaflet-tile-pane img,
+.leaflet-container img.leaflet-image-layer,
+.leaflet-container .leaflet-tile {
+	max-width: none !important;
+	max-height: none !important;
+	}
+
+.leaflet-container.leaflet-touch-zoom {
+	-ms-touch-action: pan-x pan-y;
+	touch-action: pan-x pan-y;
+	}
+.leaflet-container.leaflet-touch-drag {
+	-ms-touch-action: pinch-zoom;
+	/* Fallback for FF which doesn't support pinch-zoom */
+	touch-action: none;
+	touch-action: pinch-zoom;
+}
+.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
+	-ms-touch-action: none;
+	touch-action: none;
+}
+.leaflet-container {
+	-webkit-tap-highlight-color: transparent;
+}
+.leaflet-container a {
+	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
+}
+.leaflet-tile {
+	filter: inherit;
+	visibility: hidden;
+	}
+.leaflet-tile-loaded {
+	visibility: inherit;
+	}
+.leaflet-zoom-box {
+	width: 0;
+	height: 0;
+	-moz-box-sizing: border-box;
+	     box-sizing: border-box;
+	z-index: 800;
+	}
+/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
+.leaflet-overlay-pane svg {
+	-moz-user-select: none;
+	}
+
+.leaflet-pane         { z-index: 400; }
+
+.leaflet-tile-pane    { z-index: 200; }
+.leaflet-overlay-pane { z-index: 400; }
+.leaflet-shadow-pane  { z-index: 500; }
+.leaflet-marker-pane  { z-index: 600; }
+.leaflet-tooltip-pane   { z-index: 650; }
+.leaflet-popup-pane   { z-index: 700; }
+
+.leaflet-map-pane canvas { z-index: 100; }
+.leaflet-map-pane svg    { z-index: 200; }
+
+.leaflet-vml-shape {
+	width: 1px;
+	height: 1px;
+	}
+.lvml {
+	behavior: url(#default#VML);
+	display: inline-block;
+	position: absolute;
+	}
+
+
+/* control positioning */
+
+.leaflet-control {
+	position: relative;
+	z-index: 800;
+	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
+	pointer-events: auto;
+	}
+.leaflet-top,
+.leaflet-bottom {
+	position: absolute;
+	z-index: 1000;
+	pointer-events: none;
+	}
+.leaflet-top {
+	top: 0;
+	}
+.leaflet-right {
+	right: 0;
+	}
+.leaflet-bottom {
+	bottom: 0;
+	}
+.leaflet-left {
+	left: 0;
+	}
+.leaflet-control {
+	float: left;
+	clear: both;
+	}
+.leaflet-right .leaflet-control {
+	float: right;
+	}
+.leaflet-top .leaflet-control {
+	margin-top: 10px;
+	}
+.leaflet-bottom .leaflet-control {
+	margin-bottom: 10px;
+	}
+.leaflet-left .leaflet-control {
+	margin-left: 10px;
+	}
+.leaflet-right .leaflet-control {
+	margin-right: 10px;
+	}
+
+
+/* zoom and fade animations */
+
+.leaflet-fade-anim .leaflet-tile {
+	will-change: opacity;
+	}
+.leaflet-fade-anim .leaflet-popup {
+	opacity: 0;
+	-webkit-transition: opacity 0.2s linear;
+	   -moz-transition: opacity 0.2s linear;
+	        transition: opacity 0.2s linear;
+	}
+.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
+	opacity: 1;
+	}
+.leaflet-zoom-animated {
+	-webkit-transform-origin: 0 0;
+	    -ms-transform-origin: 0 0;
+	        transform-origin: 0 0;
+	}
+.leaflet-zoom-anim .leaflet-zoom-animated {
+	will-change: transform;
+	}
+.leaflet-zoom-anim .leaflet-zoom-animated {
+	-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
+	   -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
+	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
+	}
+.leaflet-zoom-anim .leaflet-tile,
+.leaflet-pan-anim .leaflet-tile {
+	-webkit-transition: none;
+	   -moz-transition: none;
+	        transition: none;
+	}
+
+.leaflet-zoom-anim .leaflet-zoom-hide {
+	visibility: hidden;
+	}
+
+
+/* cursors */
+
+.leaflet-interactive {
+	cursor: pointer;
+	}
+.leaflet-grab {
+	cursor: -webkit-grab;
+	cursor:    -moz-grab;
+	cursor:         grab;
+	}
+.leaflet-crosshair,
+.leaflet-crosshair .leaflet-interactive {
+	cursor: crosshair;
+	}
+.leaflet-popup-pane,
+.leaflet-control {
+	cursor: auto;
+	}
+.leaflet-dragging .leaflet-grab,
+.leaflet-dragging .leaflet-grab .leaflet-interactive,
+.leaflet-dragging .leaflet-marker-draggable {
+	cursor: move;
+	cursor: -webkit-grabbing;
+	cursor:    -moz-grabbing;
+	cursor:         grabbing;
+	}
+
+/* marker & overlays interactivity */
+.leaflet-marker-icon,
+.leaflet-marker-shadow,
+.leaflet-image-layer,
+.leaflet-pane > svg path,
+.leaflet-tile-container {
+	pointer-events: none;
+	}
+
+.leaflet-marker-icon.leaflet-interactive,
+.leaflet-image-layer.leaflet-interactive,
+.leaflet-pane > svg path.leaflet-interactive,
+svg.leaflet-image-layer.leaflet-interactive path {
+	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
+	pointer-events: auto;
+	}
+
+/* visual tweaks */
+
+.leaflet-container {
+	background: #ddd;
+	outline: 0;
+	}
+.leaflet-container a {
+	color: #0078A8;
+	}
+.leaflet-container a.leaflet-active {
+	outline: 2px solid orange;
+	}
+.leaflet-zoom-box {
+	border: 2px dotted #38f;
+	background: rgba(255,255,255,0.5);
+	}
+
+
+/* general typography */
+.leaflet-container {
+	font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
+	}
+
+
+/* general toolbar styles */
+
+.leaflet-bar {
+	box-shadow: 0 1px 5px rgba(0,0,0,0.65);
+	border-radius: 4px;
+	}
+.leaflet-bar a,
+.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: black;
+	}
+.leaflet-bar a,
+.leaflet-control-layers-toggle {
+	background-position: 50% 50%;
+	background-repeat: no-repeat;
+	display: block;
+	}
+.leaflet-bar a:hover {
+	background-color: #f4f4f4;
+	}
+.leaflet-bar a:first-child {
+	border-top-left-radius: 4px;
+	border-top-right-radius: 4px;
+	}
+.leaflet-bar a:last-child {
+	border-bottom-left-radius: 4px;
+	border-bottom-right-radius: 4px;
+	border-bottom: none;
+	}
+.leaflet-bar a.leaflet-disabled {
+	cursor: default;
+	background-color: #f4f4f4;
+	color: #bbb;
+	}
+
+.leaflet-touch .leaflet-bar a {
+	width: 30px;
+	height: 30px;
+	line-height: 30px;
+	}
+.leaflet-touch .leaflet-bar a:first-child {
+	border-top-left-radius: 2px;
+	border-top-right-radius: 2px;
+	}
+.leaflet-touch .leaflet-bar a:last-child {
+	border-bottom-left-radius: 2px;
+	border-bottom-right-radius: 2px;
+	}
+
+/* zoom control */
+
+.leaflet-control-zoom-in,
+.leaflet-control-zoom-out {
+	font: bold 18px 'Lucida Console', Monaco, monospace;
+	text-indent: 1px;
+	}
+
+.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {
+	font-size: 22px;
+	}
+
+
+/* layers control */
+
+.leaflet-control-layers {
+	box-shadow: 0 1px 5px rgba(0,0,0,0.4);
+	background: #fff;
+	border-radius: 5px;
+	}
+.leaflet-control-layers-toggle {
+	background-image: url(images/layers.png);
+	width: 36px;
+	height: 36px;
+	}
+.leaflet-retina .leaflet-control-layers-toggle {
+	background-image: url(images/layers-2x.png);
+	background-size: 26px 26px;
+	}
+.leaflet-touch .leaflet-control-layers-toggle {
+	width: 44px;
+	height: 44px;
+	}
+.leaflet-control-layers .leaflet-control-layers-list,
+.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
+	display: none;
+	}
+.leaflet-control-layers-expanded .leaflet-control-layers-list {
+	display: block;
+	position: relative;
+	}
+.leaflet-control-layers-expanded {
+	padding: 6px 10px 6px 6px;
+	color: #333;
+	background: #fff;
+	}
+.leaflet-control-layers-scrollbar {
+	overflow-y: scroll;
+	overflow-x: hidden;
+	padding-right: 5px;
+	}
+.leaflet-control-layers-selector {
+	margin-top: 2px;
+	position: relative;
+	top: 1px;
+	}
+.leaflet-control-layers label {
+	display: block;
+	}
+.leaflet-control-layers-separator {
+	height: 0;
+	border-top: 1px solid #ddd;
+	margin: 5px -10px 5px -6px;
+	}
+
+/* Default icon URLs */
+.leaflet-default-icon-path {
+	background-image: url(images/marker-icon.png);
+	}
+
+
+/* attribution and scale controls */
+
+.leaflet-container .leaflet-control-attribution {
+	background: #fff;
+	background: rgba(255, 255, 255, 0.7);
+	margin: 0;
+	}
+.leaflet-control-attribution,
+.leaflet-control-scale-line {
+	padding: 0 5px;
+	color: #333;
+	}
+.leaflet-control-attribution a {
+	text-decoration: none;
+	}
+.leaflet-control-attribution a:hover {
+	text-decoration: underline;
+	}
+.leaflet-container .leaflet-control-attribution,
+.leaflet-container .leaflet-control-scale {
+	font-size: 11px;
+	}
+.leaflet-left .leaflet-control-scale {
+	margin-left: 5px;
+	}
+.leaflet-bottom .leaflet-control-scale {
+	margin-bottom: 5px;
+	}
+.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, 0.5);
+	}
+.leaflet-control-scale-line:not(:first-child) {
+	border-top: 2px solid #777;
+	border-bottom: none;
+	margin-top: -2px;
+	}
+.leaflet-control-scale-line:not(:first-child):not(:last-child) {
+	border-bottom: 2px solid #777;
+	}
+
+.leaflet-touch .leaflet-control-attribution,
+.leaflet-touch .leaflet-control-layers,
+.leaflet-touch .leaflet-bar {
+	box-shadow: none;
+	}
+.leaflet-touch .leaflet-control-layers,
+.leaflet-touch .leaflet-bar {
+	border: 2px solid rgba(0,0,0,0.2);
+	background-clip: padding-box;
+	}
+
+
+/* popup */
+
+.leaflet-popup {
+	position: absolute;
+	text-align: center;
+	margin-bottom: 20px;
+	}
+.leaflet-popup-content-wrapper {
+	padding: 1px;
+	text-align: left;
+	border-radius: 12px;
+	}
+.leaflet-popup-content {
+	margin: 13px 19px;
+	line-height: 1.4;
+	}
+.leaflet-popup-content p {
+	margin: 18px 0;
+	}
+.leaflet-popup-tip-container {
+	width: 40px;
+	height: 20px;
+	position: absolute;
+	left: 50%;
+	margin-left: -20px;
+	overflow: hidden;
+	pointer-events: none;
+	}
+.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);
+	}
+.leaflet-popup-content-wrapper,
+.leaflet-popup-tip {
+	background: white;
+	color: #333;
+	box-shadow: 0 3px 14px rgba(0,0,0,0.4);
+	}
+.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: bold;
+	background: transparent;
+	}
+.leaflet-container a.leaflet-popup-close-button:hover {
+	color: #999;
+	}
+.leaflet-popup-scrolled {
+	overflow: auto;
+	border-bottom: 1px solid #ddd;
+	border-top: 1px solid #ddd;
+	}
+
+.leaflet-oldie .leaflet-popup-content-wrapper {
+	-ms-zoom: 1;
+	}
+.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=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
+	}
+.leaflet-oldie .leaflet-popup-tip-container {
+	margin-top: -1px;
+	}
+
+.leaflet-oldie .leaflet-control-zoom,
+.leaflet-oldie .leaflet-control-layers,
+.leaflet-oldie .leaflet-popup-content-wrapper,
+.leaflet-oldie .leaflet-popup-tip {
+	border: 1px solid #999;
+	}
+
+
+/* div icon */
+
+.leaflet-div-icon {
+	background: #fff;
+	border: 1px solid #666;
+	}
+
+
+/* Tooltip */
+/* Base styles for the element that has a tooltip */
+.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,0.4);
+	}
+.leaflet-tooltip.leaflet-clickable {
+	cursor: pointer;
+	pointer-events: auto;
+	}
+.leaflet-tooltip-top:before,
+.leaflet-tooltip-bottom:before,
+.leaflet-tooltip-left:before,
+.leaflet-tooltip-right:before {
+	position: absolute;
+	pointer-events: none;
+	border: 6px solid transparent;
+	background: transparent;
+	content: "";
+	}
+
+/* Directions */
+
+.leaflet-tooltip-bottom {
+	margin-top: 6px;
+}
+.leaflet-tooltip-top {
+	margin-top: -6px;
+}
+.leaflet-tooltip-bottom:before,
+.leaflet-tooltip-top:before {
+	left: 50%;
+	margin-left: -6px;
+	}
+.leaflet-tooltip-top:before {
+	bottom: 0;
+	margin-bottom: -12px;
+	border-top-color: #fff;
+	}
+.leaflet-tooltip-bottom:before {
+	top: 0;
+	margin-top: -12px;
+	margin-left: -6px;
+	border-bottom-color: #fff;
+	}
+.leaflet-tooltip-left {
+	margin-left: -6px;
+}
+.leaflet-tooltip-right {
+	margin-left: 6px;
+}
+.leaflet-tooltip-left:before,
+.leaflet-tooltip-right:before {
+	top: 50%;
+	margin-top: -6px;
+	}
+.leaflet-tooltip-left:before {
+	right: 0;
+	margin-right: -12px;
+	border-left-color: #fff;
+	}
+.leaflet-tooltip-right:before {
+	left: 0;
+	margin-left: -12px;
+	border-right-color: #fff;
+	}
diff --git a/searx/static/themes/simple/css/searx-rtl.css b/searx/static/themes/simple/css/searx-rtl.css
index 62f5470cf..2f79f82df 100644
--- a/searx/static/themes/simple/css/searx-rtl.css
+++ b/searx/static/themes/simple/css/searx-rtl.css
@@ -1,4 +1,4 @@
-/*! searx | 09-06-2021 | https://github.com/searxng/searxng */
+/*! searx | 16-06-2021 | https://github.com/searxng/searxng */
 /*
 * searx, A privacy-respecting, hackable metasearch engine
 *
@@ -1672,14 +1672,13 @@ td:hover .engine-tooltip,
 }
 @font-face {
   font-family: "ion";
-  src: url("../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51");
-  src: url("../fonts/ion.eot?#iefix") format("embedded-opentype"), url("../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51") format("woff2"), url("../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51") format("woff"), url("../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51") format("truetype"), url("../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion") format("svg");
+  src: url("../fonts/ion.eot?14747ff3e5db3853c40bc9540e9f6c3a");
+  src: url("../fonts/ion.eot?14747ff3e5db3853c40bc9540e9f6c3a#iefix") format("embedded-opentype"), url("../fonts/ion.woff2?14747ff3e5db3853c40bc9540e9f6c3a") format("woff2"), url("../fonts/ion.woff?14747ff3e5db3853c40bc9540e9f6c3a") format("woff"), url("../fonts/ion.ttf?14747ff3e5db3853c40bc9540e9f6c3a") format("truetype"), url("../fonts/ion.svg?14747ff3e5db3853c40bc9540e9f6c3a#ion") format("svg");
   font-weight: normal;
   font-style: normal;
 }
 .ion-icon {
   display: inline-block;
-  vertical-align: middle;
   line-height: 1;
   font-weight: normal;
   font-style: normal;
@@ -1758,7 +1757,6 @@ td:hover .engine-tooltip,
 }
 .ion-icon-big {
   display: inline-block;
-  vertical-align: middle;
   line-height: 1;
   font-weight: normal;
   font-style: normal;
diff --git a/searx/static/themes/simple/css/searx-rtl.min.css b/searx/static/themes/simple/css/searx-rtl.min.css
index 1509e313f..1a555fc8e 100644
--- a/searx/static/themes/simple/css/searx-rtl.min.css
+++ b/searx/static/themes/simple/css/searx-rtl.min.css
@@ -1 +1 @@
-/*! searx | 09-06-2021 | https://github.com/searxng/searxng */.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.code-highlight pre{overflow:auto;background-color:inherit;color:inherit;border:inherit}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#408080;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#408080;font-style:italic}.code-highlight .cm{color:#408080;font-style:italic}.code-highlight .cp{color:#BC7A00}.code-highlight .cpf{color:#408080;font-style:italic}.code-highlight .c1{color:#408080;font-style:italic}.code-highlight .cs{color:#408080;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:red}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#00A000}.code-highlight .go{color:#888}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#7D9029}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#999;font-weight:700}.code-highlight .ne{color:#D2413A;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#A0A000}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#B62;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#B68;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#B68}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:#fae1e1}.warning{background:#faf5e1}.success{background:#e3fae1}.badge{display:inline-block;color:#fff;background-color:#777;text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:#fff;background:#000}table{width:100%}table.striped tr{border-bottom:1px solid #ececec}th{padding:.4em}td{padding:0 4px}tr:hover{background:#ececec}div.selectable_url{border:1px solid #888;padding:4px;color:#444;width:100%;display:block;margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}.dialog-error{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em 8%;border:1px solid #000;border-radius:4px;text-align:left;color:#db3434;background:#fae1e1;border-color:#db3434}.dialog-error:before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error:before{content:"\f110"}.dialog-warning{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em 8%;border:1px solid #000;border-radius:4px;text-align:left;color:#dbba34;background:#faf5e1;border-color:#dbba34}.dialog-warning:before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning:before{content:"\f10f"}.dialog-modal{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em 8%;border:1px solid #000;border-radius:4px;text-align:left;background:#fff;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;margin:0 50% 0 0;box-shadow:0 0 1em}.dialog-modal:before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid #fff;border-width:0 0 2px 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.tabs>label:hover{border-bottom:2px solid #084999}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid #000;display:none}.tabs>label:last-of-type{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid #084999}html body .tabs>input:checked+label{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:#222;font-size:12px;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;border-bottom:1px solid #d7d7d7;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwb2x5Z29uIHBvaW50cz0iMTI4LDE5MiAyNTYsMzIwIDM4NCwxOTIiLz48L2c+PC9zdmc+Cg==) no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:medium none}select:focus,select:hover{border-bottom:1px solid #3498DB}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:#dcdcdc;margin:8px auto;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;box-shadow:0 3px 5px 0 rgba(0,0,0,.3);transition:all .4s ease;left:27px;background-color:#3498DB}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:#dcdcdc}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:#fff;border-radius:4px;box-shadow:inset 0 1px 1px #fff,0 1px 4px rgba(0,0,0,.5)}.checkbox label:after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid #333;border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label:after{border-color:#3498DB;opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;box-shadow:none!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid rgba(0,0,0,.2);border-right:.5em solid rgba(0,0,0,.2);border-bottom:.5em solid rgba(0,0,0,.2);border-left:.5em solid rgba(255,255,255,0);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid #ddd;box-shadow:2px 2px 2px 0 rgba(0,0,0,.1);background:#fff;font-size:14px;font-weight:400;z-index:1000000;text-align:left}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:#000;border:1px solid rgba(0,0,0,.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(0,0,0,.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(0,0,0,.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(0,0,0,.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:#fff}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:5px 0 5px 10px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus{background-color:#3498DB}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:#fff;border:1px solid #3498DB;max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{padding:7px 0 7px 10px;border-bottom:1px solid #E8E7E6;text-align:left}}@font-face{font-family:ion;src:url(../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51);src:url(../fonts/ion.eot?#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51) format("woff2"),url(../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51) format("woff"),url(../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51) format("truetype"),url(../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion) format("svg");font-weight:400;font-style:normal}.ion-icon{display:inline-block;vertical-align:middle;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-icon:before{font-family:ion}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-close:before{content:"\f115"}.ion-icon-big{display:inline-block;vertical-align:middle;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:149%}.ion-icon-big:before{font-family:ion}.index{text-align:center}.index .title{background:url(../img/searx.png) no-repeat;width:100%;min-height:80px;background-position:center}.index h1{font-size:5em;visibility:hidden}.index #search{margin:0 auto;background:inherit;border:inherit}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:75em){div.title h1{font-size:1em}}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:#909090;font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences table td{text-align:center}#main_preferences table.cookies{width:auto}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;padding:.25em}#main_preferences table.cookies td:first-child,#main_preferences table.cookies th:first-child{padding-right:4em}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:#ececec}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:none repeat scroll 0 0 #3498DB;color:#fff;border:0 none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.5em}#main_preferences .preferences_back a{display:block;color:#FFF}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences div.selectable_url pre{width:100%}@media screen and (max-width:75em){.preferences_back{clear:both}}#search{padding:0 2em;margin:0;background:#f7f7f7;border-bottom:1px solid #d7d7d7}#search_wrapper{padding:10px 0}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row;white-space:nowrap}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8em;margin:0;padding:2px;height:2.2em;background:none repeat scroll 0 0 #FFF;border-top:1px solid #3498DB;border-bottom:1px solid #3498DB;border-right:none;border-left:none;border-radius:0;outline:0;color:#222;font-size:16px;z-index:10000}#clear_search:hover{color:#3498DB}#clear_search.empty *{display:none}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#q,#send_search{display:block!important;border-collapse:separate;box-sizing:border-box;margin:0;padding:2px;height:2.2em;background:none repeat scroll 0 0 #FFF;border:1px solid #3498DB;border-radius:0;outline:0;color:#222;font-size:16px;z-index:2}#q{outline:medium none;padding-left:8px;padding-right:0!important;border-right:none;width:40em}#send_search{border-left:none;width:2.2em}#send_search:hover{cursor:pointer;background-color:#3498DB;color:#ECF0F1}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;vertical-align:middle}@media screen and (max-width:75em){#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0 0}#search_wrapper{width:100%;margin:0 0 .7em 0;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}.search_filters{display:block;margin:.5em}.language,.time_range{width:45%}.category{display:block;width:90%}.category label{border-bottom:0}}#categories{margin:0 10px 0 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;position:relative;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.category input[type=checkbox]:focus+label{box-shadow:0 0 8px #3498DB}.category input[type=checkbox]:checked+label{background:#3498DB;color:#FFF;border-bottom:2px solid #084999}#categories_container{position:relative}#categories_container .help{position:absolute;width:100%;bottom:-20px;overflow:hidden;opacity:0;transition:opacity 1s ease;font-size:.8em;text-position:center;background:#fff}#categories_container:hover .help{opacity:.8;transition:opacity 1s ease}html{font-family:arial,sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444;padding:0;margin:0}body,main{padding:0;margin:0}main{width:100%}footer{bottom:0;width:100%;height:50px}#main_about,#main_preferences,#main_stats{margin:3em;width:auto}footer{bottom:0;height:3em;margin:1em 0;padding:1em 0;clear:both;width:100%;text-align:center}footer p{font-size:.9em}#main_preferences h1,#main_stats h1{background:url(../img/searx.png) no-repeat;background-size:auto 75%;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.5rem;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}a{text-decoration:none;color:#29314d}a:visited{color:#684898}a:visited .highlight{color:#684898}article[data-vim-selected]{background:#f7f7f7}article[data-vim-selected]::before{position:absolute;left:1em;padding:2px;content:">";font-weight:700;color:#3498DB}article.result-images[data-vim-selected]{background:#3498DB}article.result-images[data-vim-selected]::before{display:none;content:""}.result{margin:19px 0 18px 0;padding:0}.result h3{font-size:1.1em;word-wrap:break-word;margin:5px 0 1px 0;padding:0;margin-bottom:0}.result h3 a{color:#084999;font-weight:400;font-size:1.1em}.result h3 a:visited{color:#684898}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:#000;background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{font-size:.9em;margin:0 0 3px 0;padding:0;max-width:54em;word-wrap:break-word;color:#25a55b}.result .published_date{font-size:.8em;color:#888}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.result .break{clear:both}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:#888}.engines span{font-size:smaller;margin:0 .5em 0 0}.small_font{font-size:.8em}.highlight{color:#094089;background:inherit;font-weight:700}.result-images{display:inline-block;margin:0;padding:0;position:relative;max-height:200px}.result-images img{float:inherit;margin:0;padding:0;border:none;max-height:200px;background:#084999}.result-images span a{display:none;color:#FFF}.result-images:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:rgba(0,0,0,.6);font-size:.7em}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}.torrent_result{border-left:10px solid #d3d3d3;padding-left:3px}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#084999}.torrent_result a:hover{text-decoration:underline}.torrent_result a:visited{color:#684898}#results{margin:2em 2em 20px 2em;padding:0;width:50em}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#answers,#corrections,#suggestions{max-width:50em}#answers input,#corrections input,#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:#444;cursor:pointer}#answers .infobox .url a,#answers input[type=submit],#corrections .infobox .url a,#corrections input[type=submit],#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:#084999;text-decoration:none;font-size:.9rem}#answers .infobox .url a:hover,#answers input[type=submit]:hover,#corrections .infobox .url a:hover,#corrections input[type=submit]:hover,#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{display:flex;flex-flow:row wrap;margin:1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;margin:0 .5em 0 0}#corrections input[type=submit]::after{content:", "}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:#444}#answers{margin:10px 8px 10px 8px;border:1px solid #ddd;padding:.9em;box-shadow:0 0 5px #CCC}#answers h4{display:none}#answers .answer{display:block;font-size:1.2em;font-weight:700}#answers form,#infoboxes form{min-width:210px}#sidebar{position:absolute;top:100px;left:57em;margin:0 2px 5px 5px;padding:0 2px 2px;max-width:25em;word-wrap:break-word}#sidebar .infobox{margin:10px 0 10px;border:1px solid #ddd;padding:.9em;font-size:.9em;box-shadow:0 0 5px #CCC}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#search_url{margin-top:8px}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:.9em;padding:0;border:0;display:block;font-size:1.2em;color:#222}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:#222}#pagination{clear:both}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#backToTop{border:1px solid #ddd;margin:0 0 0 2em;padding:0;font-size:1em;box-shadow:0 0 5px #CCC;background:#fff;position:fixed;bottom:85px;left:50em;transition:opacity .5s;opacity:0}#backToTop a{display:block;margin:0;padding:.6em}@media screen and (max-width:75em){#main_about,#main_preferences,#main_stats{margin:.5em;width:auto}#answers,#suggestions{margin-top:1em}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{position:static;max-width:50em;margin:0 0 2px 0;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis{display:none}#search_url{display:none}.result{border-bottom:1px solid #E8E7E6;margin:0;padding-top:8px;padding-bottom:6px}.result h3{margin:0 0 1px 0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .url a{float:right;padding:0 .5em}.result .engines{float:right;padding:0 0 3px 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}}#main_results div#results.only_template_images{flex-direction:column;width:auto;display:flex}#main_results div#results.only_template_images #sidebar{position:relative;top:auto;order:2}#main_results div#results.only_template_images #urls{position:relative;order:1}#main_results div#results.only_template_images #backToTop{right:.5em;left:auto}#main_results div#results.only_template_images #pagination{position:relative;order:3}@media screen and (max-width:50em){article[data-vim-selected]::before{display:none;content:""}#linkto_preferences{display:none;postion:fixed!important;top:100px;right:0}#sidebar{margin:0 5px 2px 5px}#corrections{margin:1em 5px 1em 5px}#results{margin:0;padding:0;width:initial}#backToTop{left:40em;bottom:35px}.result{padding:8px 10px 6px 10px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#search_submit{left:1px;right:auto}/*# sourceMappingURL=searx-rtl.min.css.map */
\ No newline at end of file
+/*! searx | 16-06-2021 | https://github.com/searxng/searxng */.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.code-highlight pre{overflow:auto;background-color:inherit;color:inherit;border:inherit}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#408080;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#408080;font-style:italic}.code-highlight .cm{color:#408080;font-style:italic}.code-highlight .cp{color:#BC7A00}.code-highlight .cpf{color:#408080;font-style:italic}.code-highlight .c1{color:#408080;font-style:italic}.code-highlight .cs{color:#408080;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:red}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#00A000}.code-highlight .go{color:#888}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#7D9029}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#999;font-weight:700}.code-highlight .ne{color:#D2413A;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#A0A000}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#B62;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#B68;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#B68}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:#fae1e1}.warning{background:#faf5e1}.success{background:#e3fae1}.badge{display:inline-block;color:#fff;background-color:#777;text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:#fff;background:#000}table{width:100%}table.striped tr{border-bottom:1px solid #ececec}th{padding:.4em}td{padding:0 4px}tr:hover{background:#ececec}div.selectable_url{border:1px solid #888;padding:4px;color:#444;width:100%;display:block;margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}.dialog-error{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em 8%;border:1px solid #000;border-radius:4px;text-align:left;color:#db3434;background:#fae1e1;border-color:#db3434}.dialog-error:before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error:before{content:"\f110"}.dialog-warning{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em 8%;border:1px solid #000;border-radius:4px;text-align:left;color:#dbba34;background:#faf5e1;border-color:#dbba34}.dialog-warning:before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning:before{content:"\f10f"}.dialog-modal{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em 8%;border:1px solid #000;border-radius:4px;text-align:left;background:#fff;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;margin:0 50% 0 0;box-shadow:0 0 1em}.dialog-modal:before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid #fff;border-width:0 0 2px 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.tabs>label:hover{border-bottom:2px solid #084999}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid #000;display:none}.tabs>label:last-of-type{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid #084999}html body .tabs>input:checked+label{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:#222;font-size:12px;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;border-bottom:1px solid #d7d7d7;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwb2x5Z29uIHBvaW50cz0iMTI4LDE5MiAyNTYsMzIwIDM4NCwxOTIiLz48L2c+PC9zdmc+Cg==) no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:medium none}select:focus,select:hover{border-bottom:1px solid #3498DB}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:#dcdcdc;margin:8px auto;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;box-shadow:0 3px 5px 0 rgba(0,0,0,.3);transition:all .4s ease;left:27px;background-color:#3498DB}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:#dcdcdc}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:#fff;border-radius:4px;box-shadow:inset 0 1px 1px #fff,0 1px 4px rgba(0,0,0,.5)}.checkbox label:after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid #333;border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label:after{border-color:#3498DB;opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;box-shadow:none!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid rgba(0,0,0,.2);border-right:.5em solid rgba(0,0,0,.2);border-bottom:.5em solid rgba(0,0,0,.2);border-left:.5em solid rgba(255,255,255,0);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid #ddd;box-shadow:2px 2px 2px 0 rgba(0,0,0,.1);background:#fff;font-size:14px;font-weight:400;z-index:1000000;text-align:left}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:#000;border:1px solid rgba(0,0,0,.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(0,0,0,.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(0,0,0,.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(0,0,0,.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:#fff}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:5px 0 5px 10px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus{background-color:#3498DB}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:#fff;border:1px solid #3498DB;max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{padding:7px 0 7px 10px;border-bottom:1px solid #E8E7E6;text-align:left}}@font-face{font-family:ion;src:url(../fonts/ion.eot?14747ff3e5db3853c40bc9540e9f6c3a);src:url(../fonts/ion.eot?14747ff3e5db3853c40bc9540e9f6c3a#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?14747ff3e5db3853c40bc9540e9f6c3a) format("woff2"),url(../fonts/ion.woff?14747ff3e5db3853c40bc9540e9f6c3a) format("woff"),url(../fonts/ion.ttf?14747ff3e5db3853c40bc9540e9f6c3a) format("truetype"),url(../fonts/ion.svg?14747ff3e5db3853c40bc9540e9f6c3a#ion) format("svg");font-weight:400;font-style:normal}.ion-icon{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-icon:before{font-family:ion}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-close:before{content:"\f115"}.ion-icon-big{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:149%}.ion-icon-big:before{font-family:ion}.index{text-align:center}.index .title{background:url(../img/searx.png) no-repeat;width:100%;min-height:80px;background-position:center}.index h1{font-size:5em;visibility:hidden}.index #search{margin:0 auto;background:inherit;border:inherit}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:75em){div.title h1{font-size:1em}}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:#909090;font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences table td{text-align:center}#main_preferences table.cookies{width:auto}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;padding:.25em}#main_preferences table.cookies td:first-child,#main_preferences table.cookies th:first-child{padding-right:4em}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:#ececec}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:none repeat scroll 0 0 #3498DB;color:#fff;border:0 none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.5em}#main_preferences .preferences_back a{display:block;color:#FFF}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences div.selectable_url pre{width:100%}@media screen and (max-width:75em){.preferences_back{clear:both}}#search{padding:0 2em;margin:0;background:#f7f7f7;border-bottom:1px solid #d7d7d7}#search_wrapper{padding:10px 0}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row;white-space:nowrap}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8em;margin:0;padding:2px;height:2.2em;background:none repeat scroll 0 0 #FFF;border-top:1px solid #3498DB;border-bottom:1px solid #3498DB;border-right:none;border-left:none;border-radius:0;outline:0;color:#222;font-size:16px;z-index:10000}#clear_search:hover{color:#3498DB}#clear_search.empty *{display:none}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#q,#send_search{display:block!important;border-collapse:separate;box-sizing:border-box;margin:0;padding:2px;height:2.2em;background:none repeat scroll 0 0 #FFF;border:1px solid #3498DB;border-radius:0;outline:0;color:#222;font-size:16px;z-index:2}#q{outline:medium none;padding-left:8px;padding-right:0!important;border-right:none;width:40em}#send_search{border-left:none;width:2.2em}#send_search:hover{cursor:pointer;background-color:#3498DB;color:#ECF0F1}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;vertical-align:middle}@media screen and (max-width:75em){#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0 0}#search_wrapper{width:100%;margin:0 0 .7em 0;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}.search_filters{display:block;margin:.5em}.language,.time_range{width:45%}.category{display:block;width:90%}.category label{border-bottom:0}}#categories{margin:0 10px 0 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;position:relative;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.category input[type=checkbox]:focus+label{box-shadow:0 0 8px #3498DB}.category input[type=checkbox]:checked+label{background:#3498DB;color:#FFF;border-bottom:2px solid #084999}#categories_container{position:relative}#categories_container .help{position:absolute;width:100%;bottom:-20px;overflow:hidden;opacity:0;transition:opacity 1s ease;font-size:.8em;text-position:center;background:#fff}#categories_container:hover .help{opacity:.8;transition:opacity 1s ease}html{font-family:arial,sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444;padding:0;margin:0}body,main{padding:0;margin:0}main{width:100%}footer{bottom:0;width:100%;height:50px}#main_about,#main_preferences,#main_stats{margin:3em;width:auto}footer{bottom:0;height:3em;margin:1em 0;padding:1em 0;clear:both;width:100%;text-align:center}footer p{font-size:.9em}#main_preferences h1,#main_stats h1{background:url(../img/searx.png) no-repeat;background-size:auto 75%;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.5rem;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}a{text-decoration:none;color:#29314d}a:visited{color:#684898}a:visited .highlight{color:#684898}article[data-vim-selected]{background:#f7f7f7}article[data-vim-selected]::before{position:absolute;left:1em;padding:2px;content:">";font-weight:700;color:#3498DB}article.result-images[data-vim-selected]{background:#3498DB}article.result-images[data-vim-selected]::before{display:none;content:""}.result{margin:19px 0 18px 0;padding:0}.result h3{font-size:1.1em;word-wrap:break-word;margin:5px 0 1px 0;padding:0;margin-bottom:0}.result h3 a{color:#084999;font-weight:400;font-size:1.1em}.result h3 a:visited{color:#684898}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:#000;background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{font-size:.9em;margin:0 0 3px 0;padding:0;max-width:54em;word-wrap:break-word;color:#25a55b}.result .published_date{font-size:.8em;color:#888}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.result .break{clear:both}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:#888}.engines span{font-size:smaller;margin:0 .5em 0 0}.small_font{font-size:.8em}.highlight{color:#094089;background:inherit;font-weight:700}.result-images{display:inline-block;margin:0;padding:0;position:relative;max-height:200px}.result-images img{float:inherit;margin:0;padding:0;border:none;max-height:200px;background:#084999}.result-images span a{display:none;color:#FFF}.result-images:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:rgba(0,0,0,.6);font-size:.7em}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}.torrent_result{border-left:10px solid #d3d3d3;padding-left:3px}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#084999}.torrent_result a:hover{text-decoration:underline}.torrent_result a:visited{color:#684898}#results{margin:2em 2em 20px 2em;padding:0;width:50em}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#answers,#corrections,#suggestions{max-width:50em}#answers input,#corrections input,#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:#444;cursor:pointer}#answers .infobox .url a,#answers input[type=submit],#corrections .infobox .url a,#corrections input[type=submit],#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:#084999;text-decoration:none;font-size:.9rem}#answers .infobox .url a:hover,#answers input[type=submit]:hover,#corrections .infobox .url a:hover,#corrections input[type=submit]:hover,#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{display:flex;flex-flow:row wrap;margin:1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;margin:0 .5em 0 0}#corrections input[type=submit]::after{content:", "}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:#444}#answers{margin:10px 8px 10px 8px;border:1px solid #ddd;padding:.9em;box-shadow:0 0 5px #CCC}#answers h4{display:none}#answers .answer{display:block;font-size:1.2em;font-weight:700}#answers form,#infoboxes form{min-width:210px}#sidebar{position:absolute;top:100px;left:57em;margin:0 2px 5px 5px;padding:0 2px 2px;max-width:25em;word-wrap:break-word}#sidebar .infobox{margin:10px 0 10px;border:1px solid #ddd;padding:.9em;font-size:.9em;box-shadow:0 0 5px #CCC}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#search_url{margin-top:8px}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:.9em;padding:0;border:0;display:block;font-size:1.2em;color:#222}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:#222}#pagination{clear:both}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#backToTop{border:1px solid #ddd;margin:0 0 0 2em;padding:0;font-size:1em;box-shadow:0 0 5px #CCC;background:#fff;position:fixed;bottom:85px;left:50em;transition:opacity .5s;opacity:0}#backToTop a{display:block;margin:0;padding:.6em}@media screen and (max-width:75em){#main_about,#main_preferences,#main_stats{margin:.5em;width:auto}#answers,#suggestions{margin-top:1em}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{position:static;max-width:50em;margin:0 0 2px 0;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis{display:none}#search_url{display:none}.result{border-bottom:1px solid #E8E7E6;margin:0;padding-top:8px;padding-bottom:6px}.result h3{margin:0 0 1px 0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .url a{float:right;padding:0 .5em}.result .engines{float:right;padding:0 0 3px 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}}#main_results div#results.only_template_images{flex-direction:column;width:auto;display:flex}#main_results div#results.only_template_images #sidebar{position:relative;top:auto;order:2}#main_results div#results.only_template_images #urls{position:relative;order:1}#main_results div#results.only_template_images #backToTop{right:.5em;left:auto}#main_results div#results.only_template_images #pagination{position:relative;order:3}@media screen and (max-width:50em){article[data-vim-selected]::before{display:none;content:""}#linkto_preferences{display:none;postion:fixed!important;top:100px;right:0}#sidebar{margin:0 5px 2px 5px}#corrections{margin:1em 5px 1em 5px}#results{margin:0;padding:0;width:initial}#backToTop{left:40em;bottom:35px}.result{padding:8px 10px 6px 10px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#search_submit{left:1px;right:auto}/*# sourceMappingURL=searx-rtl.min.css.map */
\ No newline at end of file
diff --git a/searx/static/themes/simple/css/searx-rtl.min.css.map b/searx/static/themes/simple/css/searx-rtl.min.css.map
index 6bbf567c9..137bc5dff 100644
--- a/searx/static/themes/simple/css/searx-rtl.min.css.map
+++ b/searx/static/themes/simple/css/searx-rtl.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../less/pygments.less","../less/normalize.less","../less/code.less","../less/toolkit.less","../less/mixins.less","../less/ion.less","../less/autocomplete.less","../less/style.less","../less/index.less","../less/preferences.less","../less/search.less","../less/style-rtl.less"],"names":[],"mappings":"8DAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,iFErER,KACE,YAAA,KACA,yBAAA,KAUF,KACE,OAAA,EAQF,GACE,UAAA,IACA,OAAA,MAAA,EAWF,GACE,WAAA,YA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"}
\ No newline at end of file
+{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/less/pygments.less","../src/less/normalize.less","../src/less/code.less","../src/less/toolkit.less","../src/less/mixins.less","../ion.less","../src/less/autocomplete.less","../src/less/style.less","../src/less/index.less","../src/less/preferences.less","../src/less/search.less","../src/less/style-rtl.less"],"names":[],"mappings":"8DAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,iFErER,KACE,YAAA,KACA,yBAAA,KAUF,KACE,OAAA,EAQF,GACE,UAAA,IACA,OAAA,MAAA,EAWF,GACE,WAAA,YA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"}
\ No newline at end of file
diff --git a/searx/static/themes/simple/css/searx.css b/searx/static/themes/simple/css/searx.css
index fc9bf5e3e..77038f988 100644
--- a/searx/static/themes/simple/css/searx.css
+++ b/searx/static/themes/simple/css/searx.css
@@ -1,4 +1,4 @@
-/*! searx | 09-06-2021 | https://github.com/searxng/searxng */
+/*! searx | 16-06-2021 | https://github.com/searxng/searxng */
 /*
 * searx, A privacy-respecting, hackable metasearch engine
 *
@@ -1672,14 +1672,13 @@ td:hover .engine-tooltip,
 }
 @font-face {
   font-family: "ion";
-  src: url("../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51");
-  src: url("../fonts/ion.eot?#iefix") format("embedded-opentype"), url("../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51") format("woff2"), url("../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51") format("woff"), url("../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51") format("truetype"), url("../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion") format("svg");
+  src: url("../fonts/ion.eot?14747ff3e5db3853c40bc9540e9f6c3a");
+  src: url("../fonts/ion.eot?14747ff3e5db3853c40bc9540e9f6c3a#iefix") format("embedded-opentype"), url("../fonts/ion.woff2?14747ff3e5db3853c40bc9540e9f6c3a") format("woff2"), url("../fonts/ion.woff?14747ff3e5db3853c40bc9540e9f6c3a") format("woff"), url("../fonts/ion.ttf?14747ff3e5db3853c40bc9540e9f6c3a") format("truetype"), url("../fonts/ion.svg?14747ff3e5db3853c40bc9540e9f6c3a#ion") format("svg");
   font-weight: normal;
   font-style: normal;
 }
 .ion-icon {
   display: inline-block;
-  vertical-align: middle;
   line-height: 1;
   font-weight: normal;
   font-style: normal;
@@ -1758,7 +1757,6 @@ td:hover .engine-tooltip,
 }
 .ion-icon-big {
   display: inline-block;
-  vertical-align: middle;
   line-height: 1;
   font-weight: normal;
   font-style: normal;
diff --git a/searx/static/themes/simple/css/searx.min.css b/searx/static/themes/simple/css/searx.min.css
index 94d65bcb2..ea8c5ab1d 100644
--- a/searx/static/themes/simple/css/searx.min.css
+++ b/searx/static/themes/simple/css/searx.min.css
@@ -1 +1 @@
-/*! searx | 09-06-2021 | https://github.com/searxng/searxng */.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.code-highlight pre{overflow:auto;background-color:inherit;color:inherit;border:inherit}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#408080;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#408080;font-style:italic}.code-highlight .cm{color:#408080;font-style:italic}.code-highlight .cp{color:#BC7A00}.code-highlight .cpf{color:#408080;font-style:italic}.code-highlight .c1{color:#408080;font-style:italic}.code-highlight .cs{color:#408080;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:red}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#00A000}.code-highlight .go{color:#888}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#7D9029}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#999;font-weight:700}.code-highlight .ne{color:#D2413A;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#A0A000}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#B62;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#B68;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#B68}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:#fae1e1}.warning{background:#faf5e1}.success{background:#e3fae1}.badge{display:inline-block;color:#fff;background-color:#777;text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:#fff;background:#000}table{width:100%}table.striped tr{border-bottom:1px solid #ececec}th{padding:.4em}td{padding:0 4px}tr:hover{background:#ececec}div.selectable_url{border:1px solid #888;padding:4px;color:#444;width:100%;display:block;margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}.dialog-error{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em 8%;border:1px solid #000;border-radius:4px;text-align:left;color:#db3434;background:#fae1e1;border-color:#db3434}.dialog-error:before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error:before{content:"\f110"}.dialog-warning{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em 8%;border:1px solid #000;border-radius:4px;text-align:left;color:#dbba34;background:#faf5e1;border-color:#dbba34}.dialog-warning:before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning:before{content:"\f10f"}.dialog-modal{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em 8%;border:1px solid #000;border-radius:4px;text-align:left;background:#fff;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;margin:0 50% 0 0;box-shadow:0 0 1em}.dialog-modal:before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid #fff;border-width:0 0 2px 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.tabs>label:hover{border-bottom:2px solid #084999}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid #000;display:none}.tabs>label:last-of-type{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid #084999}html body .tabs>input:checked+label{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:#222;font-size:12px;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;border-bottom:1px solid #d7d7d7;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwb2x5Z29uIHBvaW50cz0iMTI4LDE5MiAyNTYsMzIwIDM4NCwxOTIiLz48L2c+PC9zdmc+Cg==) no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:medium none}select:focus,select:hover{border-bottom:1px solid #3498DB}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:#dcdcdc;margin:8px auto;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;box-shadow:0 3px 5px 0 rgba(0,0,0,.3);transition:all .4s ease;left:27px;background-color:#3498DB}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:#dcdcdc}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:#fff;border-radius:4px;box-shadow:inset 0 1px 1px #fff,0 1px 4px rgba(0,0,0,.5)}.checkbox label:after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid #333;border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label:after{border-color:#3498DB;opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;box-shadow:none!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid rgba(0,0,0,.2);border-right:.5em solid rgba(0,0,0,.2);border-bottom:.5em solid rgba(0,0,0,.2);border-left:.5em solid rgba(255,255,255,0);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid #ddd;box-shadow:2px 2px 2px 0 rgba(0,0,0,.1);background:#fff;font-size:14px;font-weight:400;z-index:1000000;text-align:left}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:#000;border:1px solid rgba(0,0,0,.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(0,0,0,.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(0,0,0,.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(0,0,0,.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:#fff}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:5px 0 5px 10px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus{background-color:#3498DB}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:#fff;border:1px solid #3498DB;max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{padding:7px 0 7px 10px;border-bottom:1px solid #E8E7E6;text-align:left}}@font-face{font-family:ion;src:url(../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51);src:url(../fonts/ion.eot?#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51) format("woff2"),url(../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51) format("woff"),url(../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51) format("truetype"),url(../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion) format("svg");font-weight:400;font-style:normal}.ion-icon{display:inline-block;vertical-align:middle;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-icon:before{font-family:ion}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-close:before{content:"\f115"}.ion-icon-big{display:inline-block;vertical-align:middle;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:149%}.ion-icon-big:before{font-family:ion}.index{text-align:center}.index .title{background:url(../img/searx.png) no-repeat;width:100%;min-height:80px;background-position:center}.index h1{font-size:5em;visibility:hidden}.index #search{margin:0 auto;background:inherit;border:inherit}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:75em){div.title h1{font-size:1em}}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:#909090;font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences table td{text-align:center}#main_preferences table.cookies{width:auto}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;padding:.25em}#main_preferences table.cookies td:first-child,#main_preferences table.cookies th:first-child{padding-right:4em}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:#ececec}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:none repeat scroll 0 0 #3498DB;color:#fff;border:0 none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.5em}#main_preferences .preferences_back a{display:block;color:#FFF}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences div.selectable_url pre{width:100%}@media screen and (max-width:75em){.preferences_back{clear:both}}#search{padding:0 2em;margin:0;background:#f7f7f7;border-bottom:1px solid #d7d7d7}#search_wrapper{padding:10px 0}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row;white-space:nowrap}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8em;margin:0;padding:2px;height:2.2em;background:none repeat scroll 0 0 #FFF;border-top:1px solid #3498DB;border-bottom:1px solid #3498DB;border-right:none;border-left:none;border-radius:0;outline:0;color:#222;font-size:16px;z-index:10000}#clear_search:hover{color:#3498DB}#clear_search.empty *{display:none}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#q,#send_search{display:block!important;border-collapse:separate;box-sizing:border-box;margin:0;padding:2px;height:2.2em;background:none repeat scroll 0 0 #FFF;border:1px solid #3498DB;border-radius:0;outline:0;color:#222;font-size:16px;z-index:2}#q{outline:medium none;padding-left:8px;padding-right:0!important;border-right:none;width:40em}#send_search{border-left:none;width:2.2em}#send_search:hover{cursor:pointer;background-color:#3498DB;color:#ECF0F1}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;vertical-align:middle}@media screen and (max-width:75em){#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0 0}#search_wrapper{width:100%;margin:0 0 .7em 0;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}.search_filters{display:block;margin:.5em}.language,.time_range{width:45%}.category{display:block;width:90%}.category label{border-bottom:0}}#categories{margin:0 10px 0 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;position:relative;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.category input[type=checkbox]:focus+label{box-shadow:0 0 8px #3498DB}.category input[type=checkbox]:checked+label{background:#3498DB;color:#FFF;border-bottom:2px solid #084999}#categories_container{position:relative}#categories_container .help{position:absolute;width:100%;bottom:-20px;overflow:hidden;opacity:0;transition:opacity 1s ease;font-size:.8em;text-position:center;background:#fff}#categories_container:hover .help{opacity:.8;transition:opacity 1s ease}html{font-family:arial,sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444;padding:0;margin:0}body,main{padding:0;margin:0}main{width:100%}footer{bottom:0;width:100%;height:50px}#main_about,#main_preferences,#main_stats{margin:3em;width:auto}footer{bottom:0;height:3em;margin:1em 0;padding:1em 0;clear:both;width:100%;text-align:center}footer p{font-size:.9em}#main_preferences h1,#main_stats h1{background:url(../img/searx.png) no-repeat;background-size:auto 75%;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.5rem;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}a{text-decoration:none;color:#29314d}a:visited{color:#684898}a:visited .highlight{color:#684898}article[data-vim-selected]{background:#f7f7f7}article[data-vim-selected]::before{position:absolute;left:1em;padding:2px;content:">";font-weight:700;color:#3498DB}article.result-images[data-vim-selected]{background:#3498DB}article.result-images[data-vim-selected]::before{display:none;content:""}.result{margin:19px 0 18px 0;padding:0}.result h3{font-size:1.1em;word-wrap:break-word;margin:5px 0 1px 0;padding:0;margin-bottom:0}.result h3 a{color:#084999;font-weight:400;font-size:1.1em}.result h3 a:visited{color:#684898}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:#000;background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{font-size:.9em;margin:0 0 3px 0;padding:0;max-width:54em;word-wrap:break-word;color:#25a55b}.result .published_date{font-size:.8em;color:#888}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.result .break{clear:both}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:#888}.engines span{font-size:smaller;margin:0 .5em 0 0}.small_font{font-size:.8em}.highlight{color:#094089;background:inherit;font-weight:700}.result-images{display:inline-block;margin:0;padding:0;position:relative;max-height:200px}.result-images img{float:inherit;margin:0;padding:0;border:none;max-height:200px;background:#084999}.result-images span a{display:none;color:#FFF}.result-images:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:rgba(0,0,0,.6);font-size:.7em}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}.torrent_result{border-left:10px solid #d3d3d3;padding-left:3px}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#084999}.torrent_result a:hover{text-decoration:underline}.torrent_result a:visited{color:#684898}#results{margin:2em 2em 20px 2em;padding:0;width:50em}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#answers,#corrections,#suggestions{max-width:50em}#answers input,#corrections input,#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:#444;cursor:pointer}#answers .infobox .url a,#answers input[type=submit],#corrections .infobox .url a,#corrections input[type=submit],#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:#084999;text-decoration:none;font-size:.9rem}#answers .infobox .url a:hover,#answers input[type=submit]:hover,#corrections .infobox .url a:hover,#corrections input[type=submit]:hover,#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{display:flex;flex-flow:row wrap;margin:1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;margin:0 .5em 0 0}#corrections input[type=submit]::after{content:", "}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:#444}#answers{margin:10px 8px 10px 8px;border:1px solid #ddd;padding:.9em;box-shadow:0 0 5px #CCC}#answers h4{display:none}#answers .answer{display:block;font-size:1.2em;font-weight:700}#answers form,#infoboxes form{min-width:210px}#sidebar{position:absolute;top:100px;left:57em;margin:0 2px 5px 5px;padding:0 2px 2px;max-width:25em;word-wrap:break-word}#sidebar .infobox{margin:10px 0 10px;border:1px solid #ddd;padding:.9em;font-size:.9em;box-shadow:0 0 5px #CCC}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#search_url{margin-top:8px}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:.9em;padding:0;border:0;display:block;font-size:1.2em;color:#222}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:#222}#pagination{clear:both}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#backToTop{border:1px solid #ddd;margin:0 0 0 2em;padding:0;font-size:1em;box-shadow:0 0 5px #CCC;background:#fff;position:fixed;bottom:85px;left:50em;transition:opacity .5s;opacity:0}#backToTop a{display:block;margin:0;padding:.6em}@media screen and (max-width:75em){#main_about,#main_preferences,#main_stats{margin:.5em;width:auto}#answers,#suggestions{margin-top:1em}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{position:static;max-width:50em;margin:0 0 2px 0;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis{display:none}#search_url{display:none}.result{border-bottom:1px solid #E8E7E6;margin:0;padding-top:8px;padding-bottom:6px}.result h3{margin:0 0 1px 0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .url a{float:right;padding:0 .5em}.result .engines{float:right;padding:0 0 3px 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}}#main_results div#results.only_template_images{flex-direction:column;width:auto;display:flex}#main_results div#results.only_template_images #sidebar{position:relative;top:auto;order:2}#main_results div#results.only_template_images #urls{position:relative;order:1}#main_results div#results.only_template_images #backToTop{right:.5em;left:auto}#main_results div#results.only_template_images #pagination{position:relative;order:3}@media screen and (max-width:50em){article[data-vim-selected]::before{display:none;content:""}#linkto_preferences{display:none;postion:fixed!important;top:100px;right:0}#sidebar{margin:0 5px 2px 5px}#corrections{margin:1em 5px 1em 5px}#results{margin:0;padding:0;width:initial}#backToTop{left:40em;bottom:35px}.result{padding:8px 10px 6px 10px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}/*# sourceMappingURL=searx.min.css.map */
\ No newline at end of file
+/*! searx | 16-06-2021 | https://github.com/searxng/searxng */.github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636!important;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.github-issue-button:hover{background-color:#2ea043}.issue-hide{display:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}.engine-stats table.engine-error{max-width:1280px;margin:1rem;border:1px solid gray}.engine-stats failed-test,.engine-stats table.engine-error td.engine-error-type,.engine-stats table.engine-error th.engine-error-type{width:10rem}.engine-stats table.engine-error span.log_parameters{border-right:1px solid gray;padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.code-highlight pre{overflow:auto;background-color:inherit;color:inherit;border:inherit}.code-highlight .linenos{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight pre{line-height:125%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight{background:#f8f8f8}.code-highlight .c{color:#408080;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#408080;font-style:italic}.code-highlight .cm{color:#408080;font-style:italic}.code-highlight .cp{color:#BC7A00}.code-highlight .cpf{color:#408080;font-style:italic}.code-highlight .c1{color:#408080;font-style:italic}.code-highlight .cs{color:#408080;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .gr{color:red}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#00A000}.code-highlight .go{color:#888}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#7D9029}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#999;font-weight:700}.code-highlight .ne{color:#D2413A;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#A0A000}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#B62;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#B68;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#B68}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:#fae1e1}.warning{background:#faf5e1}.success{background:#e3fae1}.badge{display:inline-block;color:#fff;background-color:#777;text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:#fff;background:#000}table{width:100%}table.striped tr{border-bottom:1px solid #ececec}th{padding:.4em}td{padding:0 4px}tr:hover{background:#ececec}div.selectable_url{border:1px solid #888;padding:4px;color:#444;width:100%;display:block;margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}.dialog-error{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em 8%;border:1px solid #000;border-radius:4px;text-align:left;color:#db3434;background:#fae1e1;border-color:#db3434}.dialog-error:before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error:before{content:"\f110"}.dialog-warning{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em 8%;border:1px solid #000;border-radius:4px;text-align:left;color:#dbba34;background:#faf5e1;border-color:#dbba34}.dialog-warning:before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning:before{content:"\f10f"}.dialog-modal{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em 8%;border:1px solid #000;border-radius:4px;text-align:left;background:#fff;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;margin:0 50% 0 0;box-shadow:0 0 1em}.dialog-modal:before{position:absolute;top:.5em;left:.5em;font-family:ion;font-size:1.5em}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid #fff;border-width:0 0 2px 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.tabs>label:hover{border-bottom:2px solid #084999}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid #000;display:none}.tabs>label:last-of-type{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid #084999}html body .tabs>input:checked+label{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:#222;font-size:12px;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;border-bottom:1px solid #d7d7d7;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwb2x5Z29uIHBvaW50cz0iMTI4LDE5MiAyNTYsMzIwIDM4NCwxOTIiLz48L2c+PC9zdmc+Cg==) no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:medium none}select:focus,select:hover{border-bottom:1px solid #3498DB}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:#dcdcdc;margin:8px auto;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;box-shadow:0 3px 5px 0 rgba(0,0,0,.3);transition:all .4s ease;left:27px;background-color:#3498DB}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:#dcdcdc}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:#fff;border-radius:4px;box-shadow:inset 0 1px 1px #fff,0 1px 4px rgba(0,0,0,.5)}.checkbox label:after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid #333;border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label:after{border-color:#3498DB;opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;box-shadow:none!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader:after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid rgba(0,0,0,.2);border-right:.5em solid rgba(0,0,0,.2);border-bottom:.5em solid rgba(0,0,0,.2);border-left:.5em solid rgba(255,255,255,0);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid #ddd;box-shadow:2px 2px 2px 0 rgba(0,0,0,.1);background:#fff;font-size:14px;font-weight:400;z-index:1000000;text-align:left}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:#000;border:1px solid rgba(0,0,0,.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(0,0,0,.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(0,0,0,.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(0,0,0,.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:#fff}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:5px 0 5px 10px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus{background-color:#3498DB}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:#fff;border:1px solid #3498DB;max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{padding:7px 0 7px 10px;border-bottom:1px solid #E8E7E6;text-align:left}}@font-face{font-family:ion;src:url(../fonts/ion.eot?14747ff3e5db3853c40bc9540e9f6c3a);src:url(../fonts/ion.eot?14747ff3e5db3853c40bc9540e9f6c3a#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?14747ff3e5db3853c40bc9540e9f6c3a) format("woff2"),url(../fonts/ion.woff?14747ff3e5db3853c40bc9540e9f6c3a) format("woff"),url(../fonts/ion.ttf?14747ff3e5db3853c40bc9540e9f6c3a) format("truetype"),url(../fonts/ion.svg?14747ff3e5db3853c40bc9540e9f6c3a#ion) format("svg");font-weight:400;font-style:normal}.ion-icon{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-icon:before{font-family:ion}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-close:before{content:"\f115"}.ion-icon-big{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:149%}.ion-icon-big:before{font-family:ion}.index{text-align:center}.index .title{background:url(../img/searx.png) no-repeat;width:100%;min-height:80px;background-position:center}.index h1{font-size:5em;visibility:hidden}.index #search{margin:0 auto;background:inherit;border:inherit}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:75em){div.title h1{font-size:1em}}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:#909090;font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences table td{text-align:center}#main_preferences table.cookies{width:auto}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;padding:.25em}#main_preferences table.cookies td:first-child,#main_preferences table.cookies th:first-child{padding-right:4em}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:#ececec}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:none repeat scroll 0 0 #3498DB;color:#fff;border:0 none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.5em}#main_preferences .preferences_back a{display:block;color:#FFF}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences div.selectable_url pre{width:100%}@media screen and (max-width:75em){.preferences_back{clear:both}}#search{padding:0 2em;margin:0;background:#f7f7f7;border-bottom:1px solid #d7d7d7}#search_wrapper{padding:10px 0}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row;white-space:nowrap}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8em;margin:0;padding:2px;height:2.2em;background:none repeat scroll 0 0 #FFF;border-top:1px solid #3498DB;border-bottom:1px solid #3498DB;border-right:none;border-left:none;border-radius:0;outline:0;color:#222;font-size:16px;z-index:10000}#clear_search:hover{color:#3498DB}#clear_search.empty *{display:none}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#q,#send_search{display:block!important;border-collapse:separate;box-sizing:border-box;margin:0;padding:2px;height:2.2em;background:none repeat scroll 0 0 #FFF;border:1px solid #3498DB;border-radius:0;outline:0;color:#222;font-size:16px;z-index:2}#q{outline:medium none;padding-left:8px;padding-right:0!important;border-right:none;width:40em}#send_search{border-left:none;width:2.2em}#send_search:hover{cursor:pointer;background-color:#3498DB;color:#ECF0F1}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;vertical-align:middle}@media screen and (max-width:75em){#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0 0}#search_wrapper{width:100%;margin:0 0 .7em 0;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}.search_filters{display:block;margin:.5em}.language,.time_range{width:45%}.category{display:block;width:90%}.category label{border-bottom:0}}#categories{margin:0 10px 0 0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;position:relative;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.category input[type=checkbox]:focus+label{box-shadow:0 0 8px #3498DB}.category input[type=checkbox]:checked+label{background:#3498DB;color:#FFF;border-bottom:2px solid #084999}#categories_container{position:relative}#categories_container .help{position:absolute;width:100%;bottom:-20px;overflow:hidden;opacity:0;transition:opacity 1s ease;font-size:.8em;text-position:center;background:#fff}#categories_container:hover .help{opacity:.8;transition:opacity 1s ease}html{font-family:arial,sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444;padding:0;margin:0}body,main{padding:0;margin:0}main{width:100%}footer{bottom:0;width:100%;height:50px}#main_about,#main_preferences,#main_stats{margin:3em;width:auto}footer{bottom:0;height:3em;margin:1em 0;padding:1em 0;clear:both;width:100%;text-align:center}footer p{font-size:.9em}#main_preferences h1,#main_stats h1{background:url(../img/searx.png) no-repeat;background-size:auto 75%;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.5rem;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}a{text-decoration:none;color:#29314d}a:visited{color:#684898}a:visited .highlight{color:#684898}article[data-vim-selected]{background:#f7f7f7}article[data-vim-selected]::before{position:absolute;left:1em;padding:2px;content:">";font-weight:700;color:#3498DB}article.result-images[data-vim-selected]{background:#3498DB}article.result-images[data-vim-selected]::before{display:none;content:""}.result{margin:19px 0 18px 0;padding:0}.result h3{font-size:1.1em;word-wrap:break-word;margin:5px 0 1px 0;padding:0;margin-bottom:0}.result h3 a{color:#084999;font-weight:400;font-size:1.1em}.result h3 a:visited{color:#684898}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:#000;background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{font-size:.9em;margin:0 0 3px 0;padding:0;max-width:54em;word-wrap:break-word;color:#25a55b}.result .published_date{font-size:.8em;color:#888}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.result .break{clear:both}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:#888}.engines span{font-size:smaller;margin:0 .5em 0 0}.small_font{font-size:.8em}.highlight{color:#094089;background:inherit;font-weight:700}.result-images{display:inline-block;margin:0;padding:0;position:relative;max-height:200px}.result-images img{float:inherit;margin:0;padding:0;border:none;max-height:200px;background:#084999}.result-images span a{display:none;color:#FFF}.result-images:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:rgba(0,0,0,.6);font-size:.7em}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}.torrent_result{border-left:10px solid #d3d3d3;padding-left:3px}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#084999}.torrent_result a:hover{text-decoration:underline}.torrent_result a:visited{color:#684898}#results{margin:2em 2em 20px 2em;padding:0;width:50em}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#answers,#corrections,#suggestions{max-width:50em}#answers input,#corrections input,#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:#444;cursor:pointer}#answers .infobox .url a,#answers input[type=submit],#corrections .infobox .url a,#corrections input[type=submit],#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:#084999;text-decoration:none;font-size:.9rem}#answers .infobox .url a:hover,#answers input[type=submit]:hover,#corrections .infobox .url a:hover,#corrections input[type=submit]:hover,#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{display:flex;flex-flow:row wrap;margin:1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;margin:0 .5em 0 0}#corrections input[type=submit]::after{content:", "}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:#444}#answers{margin:10px 8px 10px 8px;border:1px solid #ddd;padding:.9em;box-shadow:0 0 5px #CCC}#answers h4{display:none}#answers .answer{display:block;font-size:1.2em;font-weight:700}#answers form,#infoboxes form{min-width:210px}#sidebar{position:absolute;top:100px;left:57em;margin:0 2px 5px 5px;padding:0 2px 2px;max-width:25em;word-wrap:break-word}#sidebar .infobox{margin:10px 0 10px;border:1px solid #ddd;padding:.9em;font-size:.9em;box-shadow:0 0 5px #CCC}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#search_url{margin-top:8px}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:.9em;padding:0;border:0;display:block;font-size:1.2em;color:#222}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:#222}#pagination{clear:both}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#backToTop{border:1px solid #ddd;margin:0 0 0 2em;padding:0;font-size:1em;box-shadow:0 0 5px #CCC;background:#fff;position:fixed;bottom:85px;left:50em;transition:opacity .5s;opacity:0}#backToTop a{display:block;margin:0;padding:.6em}@media screen and (max-width:75em){#main_about,#main_preferences,#main_stats{margin:.5em;width:auto}#answers,#suggestions{margin-top:1em}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{position:static;max-width:50em;margin:0 0 2px 0;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}#apis{display:none}#search_url{display:none}.result{border-bottom:1px solid #E8E7E6;margin:0;padding-top:8px;padding-bottom:6px}.result h3{margin:0 0 1px 0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .url a{float:right;padding:0 .5em}.result .engines{float:right;padding:0 0 3px 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}}#main_results div#results.only_template_images{flex-direction:column;width:auto;display:flex}#main_results div#results.only_template_images #sidebar{position:relative;top:auto;order:2}#main_results div#results.only_template_images #urls{position:relative;order:1}#main_results div#results.only_template_images #backToTop{right:.5em;left:auto}#main_results div#results.only_template_images #pagination{position:relative;order:3}@media screen and (max-width:50em){article[data-vim-selected]::before{display:none;content:""}#linkto_preferences{display:none;postion:fixed!important;top:100px;right:0}#sidebar{margin:0 5px 2px 5px}#corrections{margin:1em 5px 1em 5px}#results{margin:0;padding:0;width:initial}#backToTop{left:40em;bottom:35px}.result{padding:8px 10px 6px 10px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}/*# sourceMappingURL=searx.min.css.map */
\ No newline at end of file
diff --git a/searx/static/themes/simple/css/searx.min.css.map b/searx/static/themes/simple/css/searx.min.css.map
index c44daf4c3..b0c850c1c 100644
--- a/searx/static/themes/simple/css/searx.min.css.map
+++ b/searx/static/themes/simple/css/searx.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../less/pygments.less","../less/normalize.less","../less/code.less","../less/toolkit.less","../less/mixins.less","../less/ion.less","../less/autocomplete.less","../less/style.less","../less/index.less","../less/preferences.less","../less/search.less"],"names":[],"mappings":"8DAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,iFErER,KACE,YAAA,KACA,yBAAA,KAUF,KACE,OAAA,EAQF,GACE,UAAA,IACA,OAAA,MAAA,EAWF,GACE,WAAA,YA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"}
\ No newline at end of file
+{"version":3,"sources":["../../__common__/less/new_issue.less","../../__common__/less/stats.less","../src/less/pygments.less","../src/less/normalize.less","../src/less/code.less","../src/less/toolkit.less","../src/less/mixins.less","../ion.less","../src/less/autocomplete.less","../src/less/style.less","../src/less/index.less","../src/less/preferences.less","../src/less/search.less"],"names":[],"mappings":"8DAAA,qBACI,QAAA,MACA,QAAA,IAAA,KACA,YAAA,WACA,UAAA,KACA,MAAA,KACA,iBAAA,kBACA,OAAA,QACA,cAAA,eACA,WAAA,YAAA,EAAA,EAAA,EAAA,EAGgB,2BAChB,iBAAA,QAGJ,YACI,QAAA,KCfA,2BACI,MAAA,MAGJ,4BACI,MAAA,KACA,WAAA,MASJ,kCACI,WAAA,MAGC,iCACD,UAAA,OACA,OAAA,KACA,OAAA,IAAA,MAAA,KAKJ,0BADqB,sDADA,sDAGjB,MAAA,MAGmB,qDAEnB,aAAA,IAAA,MAAA,KACA,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAIR,iBACI,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGJ,iBACI,MAAO,kBACP,QAAA,aAGJ,eACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,kBACI,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGJ,MACI,MAAA,EACA,OAAA,ECxEH,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,MD+EO,MAAA,GC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,OD+EO,MAAA,IC/EP,QD+EO,MAAA,iFErER,KACE,YAAA,KACA,yBAAA,KAUF,KACE,OAAA,EAQF,GACE,UAAA,IACA,OAAA,MAAA,EAWF,GACE,WAAA,YA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"}
\ No newline at end of file
diff --git a/searx/static/themes/simple/fonts/ion.css b/searx/static/themes/simple/fonts/ion.css
index ebf6c6259..b65aca967 100644
--- a/searx/static/themes/simple/fonts/ion.css
+++ b/searx/static/themes/simple/fonts/ion.css
@@ -1,14 +1,15 @@
 /* Generated by grunt-webfont */
 
 
+
 @font-face {
 	font-family:"ion";
-	src:url("../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51");
-	src:url("../fonts/ion.eot?#iefix") format("embedded-opentype"),
-		url("../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51") format("woff2"),
-		url("../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51") format("woff"),
-		url("../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51") format("truetype"),
-		url("../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion") format("svg");
+	src:url("../fonts/ion.eot?14747ff3e5db3853c40bc9540e9f6c3a");
+	src:url("../fonts/ion.eot?14747ff3e5db3853c40bc9540e9f6c3a#iefix") format("embedded-opentype"),
+		url("../fonts/ion.woff2?14747ff3e5db3853c40bc9540e9f6c3a") format("woff2"),
+		url("../fonts/ion.woff?14747ff3e5db3853c40bc9540e9f6c3a") format("woff"),
+		url("../fonts/ion.ttf?14747ff3e5db3853c40bc9540e9f6c3a") format("truetype"),
+		url("../fonts/ion.svg?14747ff3e5db3853c40bc9540e9f6c3a#ion") format("svg");
 	font-weight:normal;
 	font-style:normal;
 }
@@ -18,7 +19,6 @@
 		font-family:"ion";
 	
 	display:inline-block;
-	vertical-align:middle;
 	line-height:1;
 	font-weight:normal;
 	font-style:normal;
diff --git a/searx/static/themes/simple/fonts/ion.eot b/searx/static/themes/simple/fonts/ion.eot
deleted file mode 100644
index 96b3ee98c..000000000
Binary files a/searx/static/themes/simple/fonts/ion.eot and /dev/null differ
diff --git a/searx/static/themes/simple/fonts/ion.html b/searx/static/themes/simple/fonts/ion.html
index d92237994..011a63170 100644
--- a/searx/static/themes/simple/fonts/ion.html
+++ b/searx/static/themes/simple/fonts/ion.html
@@ -58,14 +58,15 @@
 		/* Generated by grunt-webfont */
 
 
+
 @font-face {
 	font-family:"ion";
-	src:url("ion.eot?ce7a0ead692560b4405a96d5b8471f51");
-	src:url("ion.eot?#iefix") format("embedded-opentype"),
-		url("ion.woff2?ce7a0ead692560b4405a96d5b8471f51") format("woff2"),
-		url("ion.woff?ce7a0ead692560b4405a96d5b8471f51") format("woff"),
-		url("ion.ttf?ce7a0ead692560b4405a96d5b8471f51") format("truetype"),
-		url("ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion") format("svg");
+	src:url("ion.eot?14747ff3e5db3853c40bc9540e9f6c3a");
+	src:url("ion.eot?14747ff3e5db3853c40bc9540e9f6c3a#iefix") format("embedded-opentype"),
+		url("ion.woff2?14747ff3e5db3853c40bc9540e9f6c3a") format("woff2"),
+		url("ion.woff?14747ff3e5db3853c40bc9540e9f6c3a") format("woff"),
+		url("ion.ttf?14747ff3e5db3853c40bc9540e9f6c3a") format("truetype"),
+		url("ion.svg?14747ff3e5db3853c40bc9540e9f6c3a#ion") format("svg");
 	font-weight:normal;
 	font-style:normal;
 }
@@ -75,7 +76,6 @@
 		font-family:"ion";
 	
 	display:inline-block;
-	vertical-align:middle;
 	line-height:1;
 	font-weight:normal;
 	font-style:normal;
diff --git a/searx/static/themes/simple/fonts/ion.svg b/searx/static/themes/simple/fonts/ion.svg
index 97ca930bb..c16155aab 100644
--- a/searx/static/themes/simple/fonts/ion.svg
+++ b/searx/static/themes/simple/fonts/ion.svg
@@ -1,12 +1,12 @@
 <?xml version="1.0" standalone="no"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
 <!--
-2018-8-11: Created with FontForge (http://fontforge.org)
+2021-6-16: Created with FontForge (http://fontforge.org)
 -->
 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
 <metadata>
-Created by FontForge 20170924 at Sat Aug 11 14:26:20 2018
- By alexandre,,,
+Created by FontForge 20190801 at Wed Jun 16 14:20:50 2021
+ By alexandre
 
 </metadata>
 <defs>
diff --git a/searx/static/themes/simple/fonts/ion.ttf b/searx/static/themes/simple/fonts/ion.ttf
index ccc5482b5..8334ba424 100644
Binary files a/searx/static/themes/simple/fonts/ion.ttf and b/searx/static/themes/simple/fonts/ion.ttf differ
diff --git a/searx/static/themes/simple/fonts/ion.woff b/searx/static/themes/simple/fonts/ion.woff
index 0b7fe877a..dec02f7d6 100644
Binary files a/searx/static/themes/simple/fonts/ion.woff and b/searx/static/themes/simple/fonts/ion.woff differ
diff --git a/searx/static/themes/simple/fonts/ion.woff2 b/searx/static/themes/simple/fonts/ion.woff2
index 30b902da2..17ef58b9c 100644
Binary files a/searx/static/themes/simple/fonts/ion.woff2 and b/searx/static/themes/simple/fonts/ion.woff2 differ
diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js
index 4c14116b2..1dea80bd4 100644
--- a/searx/static/themes/simple/gruntfile.js
+++ b/searx/static/themes/simple/gruntfile.js
@@ -6,12 +6,12 @@ module.exports = function(grunt) {
     pkg: grunt.file.readJSON('package.json'),
     watch: {
       scripts: {
-        files: ['<%= jshint.files %>', 'less/*.less'],
+        files: ['src/**'],
         tasks: ['jshint', 'concat', 'uglify', 'webfont', 'less:development', 'less:production']
       }
     },
     jshint: {
-      files: ['js/searx_src/*.js', 'js/searx_header/*.js', '../__common__/js/*.js'],
+      files: ['src/js/main/*.js', 'src/js/head/*.js', '../__common__/js/*.js'],
       options: {
         reporterOutput: "",
         proto: true,
@@ -23,14 +23,49 @@ module.exports = function(grunt) {
         }
       }
     },
+    copy: {
+      js: {
+        expand: true,
+        cwd: './node_modules',
+        dest: './js/',
+        flatten: true,
+        filter: 'isFile',
+        timestamp: true,
+        src: [
+          './leaflet/dist/leaflet.js',
+        ]
+      },
+      css: {
+        expand: true,
+        cwd: './node_modules',
+        dest: './css/',
+        flatten: true,
+        filter: 'isFile',
+        timestamp: true,
+        src: [
+          './leaflet/dist/leaflet.css',
+        ]
+      },
+      leaflet_images: {
+        expand: true,
+        cwd: './node_modules',
+        dest: './css/images/',
+        flatten: true,
+        filter: 'isFile',
+        timestamp: true,
+        src: [
+          './leaflet/dist/images/*.png',
+        ]
+      },
+    },
     concat: {
       head_and_body: {
         options: {
           separator: ';'
         },
         files: {
-          'js/searx.head.js': ['js/searx_head/*.js'],
-          'js/searx.js': ['js/searx_src/*.js', '../__common__/js/*.js']
+          'js/searx.head.js': ['src/js/head/*.js'],
+          'js/searx.js': ['src/js/main/*.js', '../__common__/js/*.js', './node_modules/autocomplete-js/dist/autocomplete.js']
         }
       }
     },
@@ -53,35 +88,6 @@ module.exports = function(grunt) {
         }
       }
     },
-    less: {
-      development: {
-        options: {
-          paths: ["less"],
-          banner: '/*! searx | <%= grunt.template.today("dd-mm-yyyy") %> | <%= process.env.GIT_URL %> */\n'
-        },
-        files: {
-          "css/searx.css": "less/style.less",
-          "css/searx-rtl.css": "less/style-rtl.less"
-        }
-      },
-      production: {
-        options: {
-          paths: ["less"],
-          plugins: [
-            new (require('less-plugin-clean-css'))()
-          ],
-          sourceMap: true,
-          sourceMapURL: (name) => { const s = name.split('/'); return s[s.length - 1] + '.map';},
-          outputSourceFiles: false,
-          sourceMapRootpath: '../',
-          banner: '/*! searx | <%= grunt.template.today("dd-mm-yyyy") %> | <%= process.env.GIT_URL %> */\n'
-        },
-        files: {
-          "css/searx.min.css": "less/style.less",
-          "css/searx-rtl.min.css": "less/style-rtl.less"
-        }
-      },
-    },
     webfont: {
       icons: {
         // src: 'node_modules/ionicons-npm/src/*.svg',
@@ -107,11 +113,11 @@ module.exports = function(grunt) {
           'node_modules/ionicons-npm/src/music-note.svg',
           'node_modules/ionicons-npm/src/ion-close-round.svg',
           'node_modules/ionicons-npm/src/android-more-vertical.svg',
-          'magnet.svg',
+          'src/fonts/magnet.svg',
           'node_modules/ionicons-npm/src/android-close.svg',	  
         ],
         dest: 'fonts',
-        destLess: 'less',
+        destLess: '.',
         options: {
           font: 'ion',
           hashes : true,
@@ -145,10 +151,40 @@ module.exports = function(grunt) {
           }
         }
       }
-    }
+    },
+    less: {
+      development: {
+        options: {
+          paths: ["less"],
+          banner: '/*! searx | <%= grunt.template.today("dd-mm-yyyy") %> | <%= process.env.GIT_URL %> */\n'
+        },
+        files: {
+          "css/searx.css": "src/less/style.less",
+          "css/searx-rtl.css": "src/less/style-rtl.less"
+        }
+      },
+      production: {
+        options: {
+          paths: ["less"],
+          plugins: [
+            new (require('less-plugin-clean-css'))()
+          ],
+          sourceMap: true,
+          sourceMapURL: (name) => { const s = name.split('/'); return s[s.length - 1] + '.map';},
+          outputSourceFiles: false,
+          sourceMapRootpath: '../',
+          banner: '/*! searx | <%= grunt.template.today("dd-mm-yyyy") %> | <%= process.env.GIT_URL %> */\n'
+        },
+        files: {
+          "css/searx.min.css": "src/less/style.less",
+          "css/searx-rtl.min.css": "src/less/style-rtl.less"
+        }
+      },
+    },
   });
 
   grunt.loadNpmTasks('grunt-contrib-watch');
+  grunt.loadNpmTasks('grunt-contrib-copy');
   grunt.loadNpmTasks('grunt-contrib-uglify');
   grunt.loadNpmTasks('grunt-contrib-jshint');
   grunt.loadNpmTasks('grunt-contrib-concat');
@@ -158,5 +194,5 @@ module.exports = function(grunt) {
 
   grunt.registerTask('test', ['jshint']);
 
-  grunt.registerTask('default', ['jshint', 'concat', 'uglify', 'less:development', 'less:production']);
+  grunt.registerTask('default', ['jshint', 'copy', 'concat', 'uglify', 'webfont', 'less:development', 'less:production']);
 };
diff --git a/searx/static/themes/simple/js/leaflet.js b/searx/static/themes/simple/js/leaflet.js
new file mode 100644
index 000000000..21f499c3e
--- /dev/null
+++ b/searx/static/themes/simple/js/leaflet.js
@@ -0,0 +1,6 @@
+/* @preserve
+ * Leaflet 1.7.1, a JS library for interactive maps. http://leafletjs.com
+ * (c) 2010-2019 Vladimir Agafonkin, (c) 2010-2011 CloudMade
+ */
+!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.L={})}(this,function(t){"use strict";function h(t){for(var i,e,n=1,o=arguments.length;n<o;n++)for(i in e=arguments[n])t[i]=e[i];return t}var s=Object.create||function(t){return i.prototype=t,new i};function i(){}function p(t,i){var e=Array.prototype.slice;if(t.bind)return t.bind.apply(t,e.call(arguments,1));var n=e.call(arguments,2);return function(){return t.apply(i,n.length?n.concat(e.call(arguments)):arguments)}}var e=0;function m(t){return t._leaflet_id=t._leaflet_id||++e,t._leaflet_id}function n(t,i,e){var n,o,s=function(){n=!1,o&&(r.apply(e,o),o=!1)},r=function(){n?o=arguments:(t.apply(e,arguments),setTimeout(s,i),n=!0)};return r}function o(t,i,e){var n=i[1],o=i[0],s=n-o;return t===n&&e?t:((t-o)%s+s)%s+o}function a(){return!1}function r(t,i){var e=Math.pow(10,void 0===i?6:i);return Math.round(t*e)/e}function u(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function l(t){return u(t).split(/\s+/)}function c(t,i){for(var e in Object.prototype.hasOwnProperty.call(t,"options")||(t.options=t.options?s(t.options):{}),i)t.options[e]=i[e];return t.options}function _(t,i,e){var n=[];for(var o in t)n.push(encodeURIComponent(e?o.toUpperCase():o)+"="+encodeURIComponent(t[o]));return(i&&-1!==i.indexOf("?")?"&":"?")+n.join("&")}var d=/\{ *([\w_-]+) *\}/g;function f(t,n){return t.replace(d,function(t,i){var e=n[i];if(void 0===e)throw new Error("No value provided for variable "+t);return"function"==typeof e&&(e=e(n)),e})}var g=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};function v(t,i){for(var e=0;e<t.length;e++)if(t[e]===i)return e;return-1}var y="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=";function x(t){return window["webkit"+t]||window["moz"+t]||window["ms"+t]}var w=0;function P(t){var i=+new Date,e=Math.max(0,16-(i-w));return w=i+e,window.setTimeout(t,e)}var b=window.requestAnimationFrame||x("RequestAnimationFrame")||P,T=window.cancelAnimationFrame||x("CancelAnimationFrame")||x("CancelRequestAnimationFrame")||function(t){window.clearTimeout(t)};function M(t,i,e){if(!e||b!==P)return b.call(window,p(t,i));t.call(i)}function z(t){t&&T.call(window,t)}var C={extend:h,create:s,bind:p,lastId:e,stamp:m,throttle:n,wrapNum:o,falseFn:a,formatNum:r,trim:u,splitWords:l,setOptions:c,getParamString:_,template:f,isArray:g,indexOf:v,emptyImageUrl:y,requestFn:b,cancelFn:T,requestAnimFrame:M,cancelAnimFrame:z};function S(){}S.extend=function(t){function i(){this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()}var e=i.__super__=this.prototype,n=s(e);for(var o in(n.constructor=i).prototype=n,this)Object.prototype.hasOwnProperty.call(this,o)&&"prototype"!==o&&"__super__"!==o&&(i[o]=this[o]);return t.statics&&(h(i,t.statics),delete t.statics),t.includes&&(function(t){if("undefined"==typeof L||!L||!L.Mixin)return;t=g(t)?t:[t];for(var i=0;i<t.length;i++)t[i]===L.Mixin.Events&&console.warn("Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.",(new Error).stack)}(t.includes),h.apply(null,[n].concat(t.includes)),delete t.includes),n.options&&(t.options=h(s(n.options),t.options)),h(n,t),n._initHooks=[],n.callInitHooks=function(){if(!this._initHooksCalled){e.callInitHooks&&e.callInitHooks.call(this),this._initHooksCalled=!0;for(var t=0,i=n._initHooks.length;t<i;t++)n._initHooks[t].call(this)}},i},S.include=function(t){return h(this.prototype,t),this},S.mergeOptions=function(t){return h(this.prototype.options,t),this},S.addInitHook=function(t){var i=Array.prototype.slice.call(arguments,1),e="function"==typeof t?t:function(){this[t].apply(this,i)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(e),this};var Z={on:function(t,i,e){if("object"==typeof t)for(var n in t)this._on(n,t[n],i);else for(var o=0,s=(t=l(t)).length;o<s;o++)this._on(t[o],i,e);return this},off:function(t,i,e){if(t)if("object"==typeof t)for(var n in t)this._off(n,t[n],i);else for(var o=0,s=(t=l(t)).length;o<s;o++)this._off(t[o],i,e);else delete this._events;return this},_on:function(t,i,e){this._events=this._events||{};var n=this._events[t];n||(n=[],this._events[t]=n),e===this&&(e=void 0);for(var o={fn:i,ctx:e},s=n,r=0,a=s.length;r<a;r++)if(s[r].fn===i&&s[r].ctx===e)return;s.push(o)},_off:function(t,i,e){var n,o,s;if(this._events&&(n=this._events[t]))if(i){if(e===this&&(e=void 0),n)for(o=0,s=n.length;o<s;o++){var r=n[o];if(r.ctx===e&&r.fn===i)return r.fn=a,this._firingCount&&(this._events[t]=n=n.slice()),void n.splice(o,1)}}else{for(o=0,s=n.length;o<s;o++)n[o].fn=a;delete this._events[t]}},fire:function(t,i,e){if(!this.listens(t,e))return this;var n=h({},i,{type:t,target:this,sourceTarget:i&&i.sourceTarget||this});if(this._events){var o=this._events[t];if(o){this._firingCount=this._firingCount+1||1;for(var s=0,r=o.length;s<r;s++){var a=o[s];a.fn.call(a.ctx||this,n)}this._firingCount--}}return e&&this._propagateEvent(n),this},listens:function(t,i){var e=this._events&&this._events[t];if(e&&e.length)return!0;if(i)for(var n in this._eventParents)if(this._eventParents[n].listens(t,i))return!0;return!1},once:function(t,i,e){if("object"==typeof t){for(var n in t)this.once(n,t[n],i);return this}var o=p(function(){this.off(t,i,e).off(t,o,e)},this);return this.on(t,i,e).on(t,o,e)},addEventParent:function(t){return this._eventParents=this._eventParents||{},this._eventParents[m(t)]=t,this},removeEventParent:function(t){return this._eventParents&&delete this._eventParents[m(t)],this},_propagateEvent:function(t){for(var i in this._eventParents)this._eventParents[i].fire(t.type,h({layer:t.target,propagatedFrom:t.target},t),!0)}};Z.addEventListener=Z.on,Z.removeEventListener=Z.clearAllEventListeners=Z.off,Z.addOneTimeEventListener=Z.once,Z.fireEvent=Z.fire,Z.hasEventListeners=Z.listens;var E=S.extend(Z);function k(t,i,e){this.x=e?Math.round(t):t,this.y=e?Math.round(i):i}var B=Math.trunc||function(t){return 0<t?Math.floor(t):Math.ceil(t)};function A(t,i,e){return t instanceof k?t:g(t)?new k(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new k(t.x,t.y):new k(t,i,e)}function I(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function O(t,i){return!t||t instanceof I?t:new I(t,i)}function R(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function N(t,i){return t instanceof R?t:new R(t,i)}function D(t,i,e){if(isNaN(t)||isNaN(i))throw new Error("Invalid LatLng object: ("+t+", "+i+")");this.lat=+t,this.lng=+i,void 0!==e&&(this.alt=+e)}function j(t,i,e){return t instanceof D?t:g(t)&&"object"!=typeof t[0]?3===t.length?new D(t[0],t[1],t[2]):2===t.length?new D(t[0],t[1]):null:null==t?t:"object"==typeof t&&"lat"in t?new D(t.lat,"lng"in t?t.lng:t.lon,t.alt):void 0===i?null:new D(t,i,e)}k.prototype={clone:function(){return new k(this.x,this.y)},add:function(t){return this.clone()._add(A(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(A(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new k(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new k(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=B(this.x),this.y=B(this.y),this},distanceTo:function(t){var i=(t=A(t)).x-this.x,e=t.y-this.y;return Math.sqrt(i*i+e*e)},equals:function(t){return(t=A(t)).x===this.x&&t.y===this.y},contains:function(t){return t=A(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+r(this.x)+", "+r(this.y)+")"}},I.prototype={extend:function(t){return t=A(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new k((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new k(this.min.x,this.max.y)},getTopRight:function(){return new k(this.max.x,this.min.y)},getTopLeft:function(){return this.min},getBottomRight:function(){return this.max},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var i,e;return(t=("number"==typeof t[0]||t instanceof k?A:O)(t))instanceof I?(i=t.min,e=t.max):i=e=t,i.x>=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=O(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>=i.x&&n.x<=e.x,r=o.y>=i.y&&n.y<=e.y;return s&&r},overlaps:function(t){t=O(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>i.x&&n.x<e.x,r=o.y>i.y&&n.y<e.y;return s&&r},isValid:function(){return!(!this.min||!this.max)}},R.prototype={extend:function(t){var i,e,n=this._southWest,o=this._northEast;if(t instanceof D)e=i=t;else{if(!(t instanceof R))return t?this.extend(j(t)||N(t)):this;if(i=t._southWest,e=t._northEast,!i||!e)return this}return n||o?(n.lat=Math.min(i.lat,n.lat),n.lng=Math.min(i.lng,n.lng),o.lat=Math.max(e.lat,o.lat),o.lng=Math.max(e.lng,o.lng)):(this._southWest=new D(i.lat,i.lng),this._northEast=new D(e.lat,e.lng)),this},pad:function(t){var i=this._southWest,e=this._northEast,n=Math.abs(i.lat-e.lat)*t,o=Math.abs(i.lng-e.lng)*t;return new R(new D(i.lat-n,i.lng-o),new D(e.lat+n,e.lng+o))},getCenter:function(){return new D((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new D(this.getNorth(),this.getWest())},getSouthEast:function(){return new D(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t=("number"==typeof t[0]||t instanceof D||"lat"in t?j:N)(t);var i,e,n=this._southWest,o=this._northEast;return t instanceof R?(i=t.getSouthWest(),e=t.getNorthEast()):i=e=t,i.lat>=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=N(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=i.lat&&n.lat<=e.lat,r=o.lng>=i.lng&&n.lng<=e.lng;return s&&r},overlaps:function(t){t=N(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>i.lat&&n.lat<e.lat,r=o.lng>i.lng&&n.lng<e.lng;return s&&r},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t,i){return!!t&&(t=N(t),this._southWest.equals(t.getSouthWest(),i)&&this._northEast.equals(t.getNorthEast(),i))},isValid:function(){return!(!this._southWest||!this._northEast)}};var W,H={latLngToPoint:function(t,i){var e=this.projection.project(t),n=this.scale(i);return this.transformation._transform(e,n)},pointToLatLng:function(t,i){var e=this.scale(i),n=this.transformation.untransform(t,e);return this.projection.unproject(n)},project:function(t){return this.projection.project(t)},unproject:function(t){return this.projection.unproject(t)},scale:function(t){return 256*Math.pow(2,t)},zoom:function(t){return Math.log(t/256)/Math.LN2},getProjectedBounds:function(t){if(this.infinite)return null;var i=this.projection.bounds,e=this.scale(t);return new I(this.transformation.transform(i.min,e),this.transformation.transform(i.max,e))},infinite:!(D.prototype={equals:function(t,i){return!!t&&(t=j(t),Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng))<=(void 0===i?1e-9:i))},toString:function(t){return"LatLng("+r(this.lat,t)+", "+r(this.lng,t)+")"},distanceTo:function(t){return F.distance(this,j(t))},wrap:function(){return F.wrapLatLng(this)},toBounds:function(t){var i=180*t/40075017,e=i/Math.cos(Math.PI/180*this.lat);return N([this.lat-i,this.lng-e],[this.lat+i,this.lng+e])},clone:function(){return new D(this.lat,this.lng,this.alt)}}),wrapLatLng:function(t){var i=this.wrapLng?o(t.lng,this.wrapLng,!0):t.lng;return new D(this.wrapLat?o(t.lat,this.wrapLat,!0):t.lat,i,t.alt)},wrapLatLngBounds:function(t){var i=t.getCenter(),e=this.wrapLatLng(i),n=i.lat-e.lat,o=i.lng-e.lng;if(0==n&&0==o)return t;var s=t.getSouthWest(),r=t.getNorthEast();return new R(new D(s.lat-n,s.lng-o),new D(r.lat-n,r.lng-o))}},F=h({},H,{wrapLng:[-180,180],R:6371e3,distance:function(t,i){var e=Math.PI/180,n=t.lat*e,o=i.lat*e,s=Math.sin((i.lat-t.lat)*e/2),r=Math.sin((i.lng-t.lng)*e/2),a=s*s+Math.cos(n)*Math.cos(o)*r*r,h=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));return this.R*h}}),U=6378137,V={R:U,MAX_LATITUDE:85.0511287798,project:function(t){var i=Math.PI/180,e=this.MAX_LATITUDE,n=Math.max(Math.min(e,t.lat),-e),o=Math.sin(n*i);return new k(this.R*t.lng*i,this.R*Math.log((1+o)/(1-o))/2)},unproject:function(t){var i=180/Math.PI;return new D((2*Math.atan(Math.exp(t.y/this.R))-Math.PI/2)*i,t.x*i/this.R)},bounds:new I([-(W=U*Math.PI),-W],[W,W])};function q(t,i,e,n){if(g(t))return this._a=t[0],this._b=t[1],this._c=t[2],void(this._d=t[3]);this._a=t,this._b=i,this._c=e,this._d=n}function G(t,i,e,n){return new q(t,i,e,n)}q.prototype={transform:function(t,i){return this._transform(t.clone(),i)},_transform:function(t,i){return i=i||1,t.x=i*(this._a*t.x+this._b),t.y=i*(this._c*t.y+this._d),t},untransform:function(t,i){return i=i||1,new k((t.x/i-this._b)/this._a,(t.y/i-this._d)/this._c)}};var K,Y=h({},F,{code:"EPSG:3857",projection:V,transformation:G(K=.5/(Math.PI*V.R),.5,-K,.5)}),X=h({},Y,{code:"EPSG:900913"});function J(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function $(t,i){for(var e,n,o,s,r="",a=0,h=t.length;a<h;a++){for(e=0,n=(o=t[a]).length;e<n;e++)r+=(e?"L":"M")+(s=o[e]).x+" "+s.y;r+=i?Zt?"z":"x":""}return r||"M0 0"}var Q=document.documentElement.style,tt="ActiveXObject"in window,it=tt&&!document.addEventListener,et="msLaunchUri"in navigator&&!("documentMode"in document),nt=kt("webkit"),ot=kt("android"),st=kt("android 2")||kt("android 3"),rt=parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1],10),at=ot&&kt("Google")&&rt<537&&!("AudioNode"in window),ht=!!window.opera,ut=!et&&kt("chrome"),lt=kt("gecko")&&!nt&&!ht&&!tt,ct=!ut&&kt("safari"),_t=kt("phantom"),dt="OTransition"in Q,pt=0===navigator.platform.indexOf("Win"),mt=tt&&"transition"in Q,ft="WebKitCSSMatrix"in window&&"m11"in new window.WebKitCSSMatrix&&!st,gt="MozPerspective"in Q,vt=!window.L_DISABLE_3D&&(mt||ft||gt)&&!dt&&!_t,yt="undefined"!=typeof orientation||kt("mobile"),xt=yt&&nt,wt=yt&&ft,Pt=!window.PointerEvent&&window.MSPointerEvent,Lt=!(!window.PointerEvent&&!Pt),bt=!window.L_NO_TOUCH&&(Lt||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),Tt=yt&&ht,Mt=yt&&lt,zt=1<(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI),Ct=function(){var t=!1;try{var i=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",a,i),window.removeEventListener("testPassiveEventSupport",a,i)}catch(t){}return t}(),St=!!document.createElement("canvas").getContext,Zt=!(!document.createElementNS||!J("svg").createSVGRect),Et=!Zt&&function(){try{var t=document.createElement("div");t.innerHTML='<v:shape adj="1"/>';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}();function kt(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var Bt={ie:tt,ielt9:it,edge:et,webkit:nt,android:ot,android23:st,androidStock:at,opera:ht,chrome:ut,gecko:lt,safari:ct,phantom:_t,opera12:dt,win:pt,ie3d:mt,webkit3d:ft,gecko3d:gt,any3d:vt,mobile:yt,mobileWebkit:xt,mobileWebkit3d:wt,msPointer:Pt,pointer:Lt,touch:bt,mobileOpera:Tt,mobileGecko:Mt,retina:zt,passiveEvents:Ct,canvas:St,svg:Zt,vml:Et},At=Pt?"MSPointerDown":"pointerdown",It=Pt?"MSPointerMove":"pointermove",Ot=Pt?"MSPointerUp":"pointerup",Rt=Pt?"MSPointerCancel":"pointercancel",Nt={},Dt=!1;function jt(t,i,e,n){function o(t){Ut(t,r)}var s,r,a,h,u,l,c,_;function d(t){t.pointerType===(t.MSPOINTER_TYPE_MOUSE||"mouse")&&0===t.buttons||Ut(t,h)}return"touchstart"===i?(u=t,l=e,c=n,_=p(function(t){t.MSPOINTER_TYPE_TOUCH&&t.pointerType===t.MSPOINTER_TYPE_TOUCH&&Ri(t),Ut(t,l)}),u["_leaflet_touchstart"+c]=_,u.addEventListener(At,_,!1),Dt||(document.addEventListener(At,Wt,!0),document.addEventListener(It,Ht,!0),document.addEventListener(Ot,Ft,!0),document.addEventListener(Rt,Ft,!0),Dt=!0)):"touchmove"===i?(h=e,(a=t)["_leaflet_touchmove"+n]=d,a.addEventListener(It,d,!1)):"touchend"===i&&(r=e,(s=t)["_leaflet_touchend"+n]=o,s.addEventListener(Ot,o,!1),s.addEventListener(Rt,o,!1)),this}function Wt(t){Nt[t.pointerId]=t}function Ht(t){Nt[t.pointerId]&&(Nt[t.pointerId]=t)}function Ft(t){delete Nt[t.pointerId]}function Ut(t,i){for(var e in t.touches=[],Nt)t.touches.push(Nt[e]);t.changedTouches=[t],i(t)}var Vt=Pt?"MSPointerDown":Lt?"pointerdown":"touchstart",qt=Pt?"MSPointerUp":Lt?"pointerup":"touchend",Gt="_leaflet_";var Kt,Yt,Xt,Jt,$t,Qt,ti=fi(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ii=fi(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),ei="webkitTransition"===ii||"OTransition"===ii?ii+"End":"transitionend";function ni(t){return"string"==typeof t?document.getElementById(t):t}function oi(t,i){var e,n=t.style[i]||t.currentStyle&&t.currentStyle[i];return n&&"auto"!==n||!document.defaultView||(n=(e=document.defaultView.getComputedStyle(t,null))?e[i]:null),"auto"===n?null:n}function si(t,i,e){var n=document.createElement(t);return n.className=i||"",e&&e.appendChild(n),n}function ri(t){var i=t.parentNode;i&&i.removeChild(t)}function ai(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function hi(t){var i=t.parentNode;i&&i.lastChild!==t&&i.appendChild(t)}function ui(t){var i=t.parentNode;i&&i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function li(t,i){if(void 0!==t.classList)return t.classList.contains(i);var e=pi(t);return 0<e.length&&new RegExp("(^|\\s)"+i+"(\\s|$)").test(e)}function ci(t,i){var e;if(void 0!==t.classList)for(var n=l(i),o=0,s=n.length;o<s;o++)t.classList.add(n[o]);else li(t,i)||di(t,((e=pi(t))?e+" ":"")+i)}function _i(t,i){void 0!==t.classList?t.classList.remove(i):di(t,u((" "+pi(t)+" ").replace(" "+i+" "," ")))}function di(t,i){void 0===t.className.baseVal?t.className=i:t.className.baseVal=i}function pi(t){return t.correspondingElement&&(t=t.correspondingElement),void 0===t.className.baseVal?t.className:t.className.baseVal}function mi(t,i){"opacity"in t.style?t.style.opacity=i:"filter"in t.style&&function(t,i){var e=!1,n="DXImageTransform.Microsoft.Alpha";try{e=t.filters.item(n)}catch(t){if(1===i)return}i=Math.round(100*i),e?(e.Enabled=100!==i,e.Opacity=i):t.style.filter+=" progid:"+n+"(opacity="+i+")"}(t,i)}function fi(t){for(var i=document.documentElement.style,e=0;e<t.length;e++)if(t[e]in i)return t[e];return!1}function gi(t,i,e){var n=i||new k(0,0);t.style[ti]=(mt?"translate("+n.x+"px,"+n.y+"px)":"translate3d("+n.x+"px,"+n.y+"px,0)")+(e?" scale("+e+")":"")}function vi(t,i){t._leaflet_pos=i,vt?gi(t,i):(t.style.left=i.x+"px",t.style.top=i.y+"px")}function yi(t){return t._leaflet_pos||new k(0,0)}function xi(){zi(window,"dragstart",Ri)}function wi(){Si(window,"dragstart",Ri)}function Pi(t){for(;-1===t.tabIndex;)t=t.parentNode;t.style&&(Li(),Qt=($t=t).style.outline,t.style.outline="none",zi(window,"keydown",Li))}function Li(){$t&&($t.style.outline=Qt,Qt=$t=void 0,Si(window,"keydown",Li))}function bi(t){for(;!((t=t.parentNode).offsetWidth&&t.offsetHeight||t===document.body););return t}function Ti(t){var i=t.getBoundingClientRect();return{x:i.width/t.offsetWidth||1,y:i.height/t.offsetHeight||1,boundingClientRect:i}}Jt="onselectstart"in document?(Xt=function(){zi(window,"selectstart",Ri)},function(){Si(window,"selectstart",Ri)}):(Yt=fi(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]),Xt=function(){var t;Yt&&(t=document.documentElement.style,Kt=t[Yt],t[Yt]="none")},function(){Yt&&(document.documentElement.style[Yt]=Kt,Kt=void 0)});var Mi={TRANSFORM:ti,TRANSITION:ii,TRANSITION_END:ei,get:ni,getStyle:oi,create:si,remove:ri,empty:ai,toFront:hi,toBack:ui,hasClass:li,addClass:ci,removeClass:_i,setClass:di,getClass:pi,setOpacity:mi,testProp:fi,setTransform:gi,setPosition:vi,getPosition:yi,disableTextSelection:Xt,enableTextSelection:Jt,disableImageDrag:xi,enableImageDrag:wi,preventOutline:Pi,restoreOutline:Li,getSizedParentNode:bi,getScale:Ti};function zi(t,i,e,n){if("object"==typeof i)for(var o in i)ki(t,o,i[o],e);else for(var s=0,r=(i=l(i)).length;s<r;s++)ki(t,i[s],e,n);return this}var Ci="_leaflet_events";function Si(t,i,e,n){if("object"==typeof i)for(var o in i)Bi(t,o,i[o],e);else if(i)for(var s=0,r=(i=l(i)).length;s<r;s++)Bi(t,i[s],e,n);else{for(var a in t[Ci])Bi(t,a,t[Ci][a]);delete t[Ci]}return this}function Zi(){return Lt&&(!et&&!ct)}var Ei={mouseenter:"mouseover",mouseleave:"mouseout",wheel:!("onwheel"in window)&&"mousewheel"};function ki(i,t,e,n){var o=t+m(e)+(n?"_"+m(n):"");if(i[Ci]&&i[Ci][o])return this;var s,r,a,h,u,l,c=function(t){return e.call(n||i,t||window.event)},_=c;function d(t){if(Lt){if(!t.isPrimary)return;if("mouse"===t.pointerType)return}else if(1<t.touches.length)return;var i=Date.now(),e=i-(h||i);u=t.touches?t.touches[0]:t,l=0<e&&e<=250,h=i}function p(t){if(l&&!u.cancelBubble){if(Lt){if("mouse"===t.pointerType)return;var i,e,n={};for(e in u)i=u[e],n[e]=i&&i.bind?i.bind(u):i;u=n}u.type="dblclick",u.button=0,r(u),h=null}}Lt&&0===t.indexOf("touch")?jt(i,t,c,o):bt&&"dblclick"===t&&!Zi()?(r=c,l=!1,(s=i)[Gt+Vt+(a=o)]=d,s[Gt+qt+a]=p,s[Gt+"dblclick"+a]=r,s.addEventListener(Vt,d,!!Ct&&{passive:!1}),s.addEventListener(qt,p,!!Ct&&{passive:!1}),s.addEventListener("dblclick",r,!1)):"addEventListener"in i?"touchstart"===t||"touchmove"===t||"wheel"===t||"mousewheel"===t?i.addEventListener(Ei[t]||t,c,!!Ct&&{passive:!1}):"mouseenter"===t||"mouseleave"===t?(c=function(t){t=t||window.event,Vi(i,t)&&_(t)},i.addEventListener(Ei[t],c,!1)):i.addEventListener(t,_,!1):"attachEvent"in i&&i.attachEvent("on"+t,c),i[Ci]=i[Ci]||{},i[Ci][o]=c}function Bi(t,i,e,n){var o,s,r,a,h,u,l,c,_=i+m(e)+(n?"_"+m(n):""),d=t[Ci]&&t[Ci][_];if(!d)return this;Lt&&0===i.indexOf("touch")?(c=(u=t)["_leaflet_"+(l=i)+_],"touchstart"===l?u.removeEventListener(At,c,!1):"touchmove"===l?u.removeEventListener(It,c,!1):"touchend"===l&&(u.removeEventListener(Ot,c,!1),u.removeEventListener(Rt,c,!1))):bt&&"dblclick"===i&&!Zi()?(r=(o=t)[Gt+Vt+(s=_)],a=o[Gt+qt+s],h=o[Gt+"dblclick"+s],o.removeEventListener(Vt,r,!!Ct&&{passive:!1}),o.removeEventListener(qt,a,!!Ct&&{passive:!1}),o.removeEventListener("dblclick",h,!1)):"removeEventListener"in t?t.removeEventListener(Ei[i]||i,d,!1):"detachEvent"in t&&t.detachEvent("on"+i,d),t[Ci][_]=null}function Ai(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,Ui(t),this}function Ii(t){return ki(t,"wheel",Ai),this}function Oi(t){return zi(t,"mousedown touchstart dblclick",Ai),ki(t,"click",Fi),this}function Ri(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Ni(t){return Ri(t),Ai(t),this}function Di(t,i){if(!i)return new k(t.clientX,t.clientY);var e=Ti(i),n=e.boundingClientRect;return new k((t.clientX-n.left)/e.x-i.clientLeft,(t.clientY-n.top)/e.y-i.clientTop)}var ji=pt&&ut?2*window.devicePixelRatio:lt?window.devicePixelRatio:1;function Wi(t){return et?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/ji:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}var Hi={};function Fi(t){Hi[t.type]=!0}function Ui(t){var i=Hi[t.type];return Hi[t.type]=!1,i}function Vi(t,i){var e=i.relatedTarget;if(!e)return!0;try{for(;e&&e!==t;)e=e.parentNode}catch(t){return!1}return e!==t}var qi={on:zi,off:Si,stopPropagation:Ai,disableScrollPropagation:Ii,disableClickPropagation:Oi,preventDefault:Ri,stop:Ni,getMousePosition:Di,getWheelDelta:Wi,fakeStop:Fi,skipped:Ui,isExternalTarget:Vi,addListener:zi,removeListener:Si},Gi=E.extend({run:function(t,i,e,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=e||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=yi(t),this._offset=i.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=M(this._animate,this),this._step()},_step:function(t){var i=new Date-this._startTime,e=1e3*this._duration;i<e?this._runFrame(this._easeOut(i/e),t):(this._runFrame(1),this._complete())},_runFrame:function(t,i){var e=this._startPos.add(this._offset.multiplyBy(t));i&&e._round(),vi(this._el,e),this.fire("step")},_complete:function(){z(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),Ki=E.extend({options:{crs:Y,center:void 0,zoom:void 0,minZoom:void 0,maxZoom:void 0,layers:[],maxBounds:void 0,renderer:void 0,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,i){i=c(this,i),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this._initContainer(t),this._initLayout(),this._onResize=p(this._onResize,this),this._initEvents(),i.maxBounds&&this.setMaxBounds(i.maxBounds),void 0!==i.zoom&&(this._zoom=this._limitZoom(i.zoom)),i.center&&void 0!==i.zoom&&this.setView(j(i.center),i.zoom,{reset:!0}),this.callInitHooks(),this._zoomAnimated=ii&&vt&&!Tt&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),zi(this._proxy,ei,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(t,i,e){if((i=void 0===i?this._zoom:this._limitZoom(i),t=this._limitCenter(j(t),i,this.options.maxBounds),e=e||{},this._stop(),this._loaded&&!e.reset&&!0!==e)&&(void 0!==e.animate&&(e.zoom=h({animate:e.animate},e.zoom),e.pan=h({animate:e.animate,duration:e.duration},e.pan)),this._zoom!==i?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,i,e.zoom):this._tryAnimatedPan(t,e.pan)))return clearTimeout(this._sizeTimer),this;return this._resetView(t,i),this},setZoom:function(t,i){return this._loaded?this.setView(this.getCenter(),t,{zoom:i}):(this._zoom=t,this)},zoomIn:function(t,i){return t=t||(vt?this.options.zoomDelta:1),this.setZoom(this._zoom+t,i)},zoomOut:function(t,i){return t=t||(vt?this.options.zoomDelta:1),this.setZoom(this._zoom-t,i)},setZoomAround:function(t,i,e){var n=this.getZoomScale(i),o=this.getSize().divideBy(2),s=(t instanceof k?t:this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1-1/n),r=this.containerPointToLatLng(o.add(s));return this.setView(r,i,{zoom:e})},_getBoundsCenterZoom:function(t,i){i=i||{},t=t.getBounds?t.getBounds():N(t);var e=A(i.paddingTopLeft||i.padding||[0,0]),n=A(i.paddingBottomRight||i.padding||[0,0]),o=this.getBoundsZoom(t,!1,e.add(n));if((o="number"==typeof i.maxZoom?Math.min(i.maxZoom,o):o)===1/0)return{center:t.getCenter(),zoom:o};var s=n.subtract(e).divideBy(2),r=this.project(t.getSouthWest(),o),a=this.project(t.getNorthEast(),o);return{center:this.unproject(r.add(a).divideBy(2).add(s),o),zoom:o}},fitBounds:function(t,i){if(!(t=N(t)).isValid())throw new Error("Bounds are not valid.");var e=this._getBoundsCenterZoom(t,i);return this.setView(e.center,e.zoom,i)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,i){return this.setView(t,this._zoom,{pan:i})},panBy:function(t,i){return i=i||{},(t=A(t).round()).x||t.y?(!0===i.animate||this.getSize().contains(t)?(this._panAnim||(this._panAnim=new Gi,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),i.noMoveStart||this.fire("movestart"),!1!==i.animate?(ci(this._mapPane,"leaflet-pan-anim"),e=this._getMapPanePos().subtract(t).round(),this._panAnim.run(this._mapPane,e,i.duration||.25,i.easeLinearity)):(this._rawPanBy(t),this.fire("move").fire("moveend"))):this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this):this.fire("moveend");var e},flyTo:function(s,r,t){if(!1===(t=t||{}).animate||!vt)return this.setView(s,r,t);this._stop();var a=this.project(this.getCenter()),h=this.project(s),i=this.getSize(),u=this._zoom;s=j(s),r=void 0===r?u:r;var l=Math.max(i.x,i.y),n=l*this.getZoomScale(u,r),c=h.distanceTo(a)||1,_=1.42,o=_*_;function e(t){var i=(n*n-l*l+(t?-1:1)*o*o*c*c)/(2*(t?n:l)*o*c),e=Math.sqrt(i*i+1)-i;return e<1e-9?-18:Math.log(e)}function d(t){return(Math.exp(t)-Math.exp(-t))/2}function p(t){return(Math.exp(t)+Math.exp(-t))/2}var m=e(0);function f(t){return l*(p(m)*(d(i=m+_*t)/p(i))-d(m))/o;var i}var g=Date.now(),v=(e(1)-m)/_,y=t.duration?1e3*t.duration:1e3*v*.8;return this._moveStart(!0,t.noMoveStart),function t(){var i,e,n=(Date.now()-g)/y,o=(i=n,(1-Math.pow(1-i,1.5))*v);n<=1?(this._flyToFrame=M(t,this),this._move(this.unproject(a.add(h.subtract(a).multiplyBy(f(o)/c)),u),this.getScaleZoom(l/(e=o,l*(p(m)/p(m+_*e))),u),{flyTo:!0})):this._move(s,r)._moveEnd(!0)}.call(this),this},flyToBounds:function(t,i){var e=this._getBoundsCenterZoom(t,i);return this.flyTo(e.center,e.zoom,i)},setMaxBounds:function(t){return(t=N(t)).isValid()?(this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds)):(this.options.maxBounds=null,this.off("moveend",this._panInsideMaxBounds))},setMinZoom:function(t){var i=this.options.minZoom;return this.options.minZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()<this.options.minZoom)?this.setZoom(t):this},setMaxZoom:function(t){var i=this.options.maxZoom;return this.options.maxZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()>this.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var e=this.getCenter(),n=this._limitCenter(e,this._zoom,N(t));return e.equals(n)||this.panTo(n,i),this._enforcingBounds=!1,this},panInside:function(t,i){var e,n,o=A((i=i||{}).paddingTopLeft||i.padding||[0,0]),s=A(i.paddingBottomRight||i.padding||[0,0]),r=this.getCenter(),a=this.project(r),h=this.project(t),u=this.getPixelBounds(),l=u.getSize().divideBy(2),c=O([u.min.add(o),u.max.subtract(s)]);return c.contains(h)||(this._enforcingBounds=!0,e=a.subtract(h),n=A(h.x+e.x,h.y+e.y),(h.x<c.min.x||h.x>c.max.x)&&(n.x=a.x-e.x,0<e.x?n.x+=l.x-o.x:n.x-=l.x-s.x),(h.y<c.min.y||h.y>c.max.y)&&(n.y=a.y-e.y,0<e.y?n.y+=l.y-o.y:n.y-=l.y-s.y),this.panTo(this.unproject(n),i),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=h({animate:!1,pan:!0},!0===t?{animate:!0}:t);var i=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var e=this.getSize(),n=i.divideBy(2).round(),o=e.divideBy(2).round(),s=n.subtract(o);return s.x||s.y?(t.animate&&t.pan?this.panBy(s):(t.pan&&this._rawPanBy(s),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(p(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:i,newSize:e})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=h({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var i=p(this._handleGeolocationResponse,this),e=p(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(i,e,t):navigator.geolocation.getCurrentPosition(i,e,t),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 i=t.code,e=t.message||(1===i?"permission denied":2===i?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:i,message:"Geolocation error: "+e+"."})},_handleGeolocationResponse:function(t){var i,e=new D(t.coords.latitude,t.coords.longitude),n=e.toBounds(2*t.coords.accuracy),o=this._locateOptions;o.setView&&(i=this.getBoundsZoom(n),this.setView(e,o.maxZoom?Math.min(i,o.maxZoom):i));var s={latlng:e,bounds:n,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)},addHandler:function(t,i){if(!i)return this;var e=this[t]=new i(this);return this._handlers.push(e),this.options[t]&&e.enable(),this},remove:function(){if(this._initEvents(!0),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}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),ri(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(z(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)ri(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,i){var e=si("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),i||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new R(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,i,e){t=N(t),e=A(e||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(e),u=O(this.project(a,n),this.project(r,n)).getSize(),l=vt?this.options.zoomSnap:1,c=h.x/u.x,_=h.y/u.y,d=i?Math.max(c,_):Math.min(c,_),n=this.getScaleZoom(d,n);return l&&(n=Math.round(n/(l/100))*(l/100),n=i?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new k(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){var e=this._getTopLeftPoint(t,i);return new I(e,e.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,i){var e=this.options.crs;return i=void 0===i?this._zoom:i,e.scale(t)/e.scale(i)},getScaleZoom:function(t,i){var e=this.options.crs;i=void 0===i?this._zoom:i;var n=e.zoom(t*e.scale(i));return isNaN(n)?1/0:n},project:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.latLngToPoint(j(t),i)},unproject:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.pointToLatLng(A(t),i)},layerPointToLatLng:function(t){var i=A(t).add(this.getPixelOrigin());return this.unproject(i)},latLngToLayerPoint:function(t){return this.project(j(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(j(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(N(t))},distance:function(t,i){return this.options.crs.distance(j(t),j(i))},containerPointToLayerPoint:function(t){return A(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return A(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var i=this.containerPointToLayerPoint(A(t));return this.layerPointToLatLng(i)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(j(t)))},mouseEventToContainerPoint:function(t){return Di(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var i=this._container=ni(t);if(!i)throw new Error("Map container not found.");if(i._leaflet_id)throw new Error("Map container is already initialized.");zi(i,"scroll",this._onScroll,this),this._containerId=m(i)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&vt,ci(t,"leaflet-container"+(bt?" leaflet-touch":"")+(zt?" leaflet-retina":"")+(it?" leaflet-oldie":"")+(ct?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var i=oi(t,"position");"absolute"!==i&&"relative"!==i&&"fixed"!==i&&(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),vi(this._mapPane,new k(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(ci(t.markerPane,"leaflet-zoom-hide"),ci(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,i){vi(this._mapPane,new k(0,0));var e=!this._loaded;this._loaded=!0,i=this._limitZoom(i),this.fire("viewprereset");var n=this._zoom!==i;this._moveStart(n,!1)._move(t,i)._moveEnd(n),this.fire("viewreset"),e&&this.fire("load")},_moveStart:function(t,i){return t&&this.fire("zoomstart"),i||this.fire("movestart"),this},_move:function(t,i,e){void 0===i&&(i=this._zoom);var n=this._zoom!==i;return this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||e&&e.pinch)&&this.fire("zoom",e),this.fire("move",e)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return z(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){vi(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 i=t?Si:zi;i((this._targets[m(this._container)]=this)._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&i(window,"resize",this._onResize,this),vt&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){z(this._resizeRequest),this._resizeRequest=M(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,i){for(var e,n=[],o="mouseout"===i||"mouseover"===i,s=t.target||t.srcElement,r=!1;s;){if((e=this._targets[m(s)])&&("click"===i||"preclick"===i)&&!t._simulated&&this._draggableMoved(e)){r=!0;break}if(e&&e.listens(i,!0)){if(o&&!Vi(s,t))break;if(n.push(e),o)break}if(s===this._container)break;s=s.parentNode}return n.length||r||o||!Vi(s,t)||(n=[this]),n},_handleDOMEvent:function(t){var i;this._loaded&&!Ui(t)&&("mousedown"!==(i=t.type)&&"keypress"!==i&&"keyup"!==i&&"keydown"!==i||Pi(t.target||t.srcElement),this._fireDOMEvent(t,i))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,e){var n;if("click"===t.type&&((n=h({},t)).type="preclick",this._fireDOMEvent(n,n.type,e)),!t._stopped&&(e=(e||[]).concat(this._findEventTargets(t,i))).length){var o=e[0];"contextmenu"===i&&o.listens(i,!0)&&Ri(t);var s,r={originalEvent:t};"keypress"!==t.type&&"keydown"!==t.type&&"keyup"!==t.type&&(s=o.getLatLng&&(!o._radius||o._radius<=10),r.containerPoint=s?this.latLngToContainerPoint(o.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=s?o.getLatLng():this.layerPointToLatLng(r.layerPoint));for(var a=0;a<e.length;a++)if(e[a].fire(i,r,!0),r.originalEvent._stopped||!1===e[a].options.bubblingMouseEvents&&-1!==v(this._mouseEvents,i))return}},_draggableMoved:function(t){return(t=t.dragging&&t.dragging.enabled()?t:this).dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var t=0,i=this._handlers.length;t<i;t++)this._handlers[t].disable()},whenReady:function(t,i){return this._loaded?t.call(i||this,{target:this}):this.on("load",t,i),this},_getMapPanePos:function(){return yi(this._mapPane)||new k(0,0)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(t,i){return(t&&void 0!==i?this._getNewPixelOrigin(t,i):this.getPixelOrigin()).subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,i){var e=this.getSize()._divideBy(2);return this.project(t,i)._subtract(e)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return this.project(t,i)._subtract(n)},_latLngBoundsToNewLayerBounds:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return O([this.project(t.getSouthWest(),i)._subtract(n),this.project(t.getNorthWest(),i)._subtract(n),this.project(t.getSouthEast(),i)._subtract(n),this.project(t.getNorthEast(),i)._subtract(n)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,i,e){if(!e)return t;var n=this.project(t,i),o=this.getSize().divideBy(2),s=new I(n.subtract(o),n.add(o)),r=this._getBoundsOffset(s,e,i);return r.round().equals([0,0])?t:this.unproject(n.add(r),i)},_limitOffset:function(t,i){if(!i)return t;var e=this.getPixelBounds(),n=new I(e.min.add(t),e.max.add(t));return t.add(this._getBoundsOffset(n,i))},_getBoundsOffset:function(t,i,e){var n=O(this.project(i.getNorthEast(),e),this.project(i.getSouthWest(),e)),o=n.min.subtract(t.min),s=n.max.subtract(t.max);return new k(this._rebound(o.x,-s.x),this._rebound(o.y,-s.y))},_rebound:function(t,i){return 0<t+i?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var i=this.getMinZoom(),e=this.getMaxZoom(),n=vt?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(i,Math.min(e,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){_i(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,i){var e=this._getCenterOffset(t)._trunc();return!(!0!==(i&&i.animate)&&!this.getSize().contains(e))&&(this.panBy(e,i),!0)},_createAnimProxy:function(){var t=this._proxy=si("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(t){var i=ti,e=this._proxy.style[i];gi(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),e===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){ri(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),i=this.getZoom();gi(this._proxy,this.project(t,i),this.getZoomScale(i,1))},_catchTransitionEnd:function(t){this._animatingZoom&&0<=t.propertyName.indexOf("transform")&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,i,e){if(this._animatingZoom)return!0;if(e=e||{},!this._zoomAnimated||!1===e.animate||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(i),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(o))&&(M(function(){this._moveStart(!0,!1)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,e,n){this._mapPane&&(e&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,ci(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:n}),setTimeout(p(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&_i(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),M(function(){this._moveEnd(!0)},this))}});function Yi(t){return new Xi(t)}var Xi=S.extend({options:{position:"topright"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),e=this.getPosition(),n=t._controlCorners[e];return ci(i,"leaflet-control"),-1!==e.indexOf("bottom")?n.insertBefore(i,n.firstChild):n.appendChild(i),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(ri(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<t.screenX&&0<t.screenY&&this._map.getContainer().focus()}});Ki.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var n=this._controlCorners={},o="leaflet-",s=this._controlContainer=si("div",o+"control-container",this._container);function t(t,i){var e=o+t+" "+o+i;n[t+i]=si("div",e,s)}t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)ri(this._controlCorners[t]);ri(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Ji=Xi.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,e,n){return e<n?-1:n<e?1:0}},initialize:function(t,i,e){for(var n in c(this,e),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1,t)this._addLayer(t[n],n);for(n in i)this._addLayer(i[n],n,!0)},onAdd:function(t){this._initLayout(),this._update(),(this._map=t).on("zoomend",this._checkDisabledLayers,this);for(var i=0;i<this._layers.length;i++)this._layers[i].layer.on("add remove",this._onLayerChange,this);return this._container},addTo:function(t){return Xi.prototype.addTo.call(this,t),this._expandIfNotCollapsed()},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this);for(var t=0;t<this._layers.length;t++)this._layers[t].layer.off("add remove",this._onLayerChange,this)},addBaseLayer:function(t,i){return this._addLayer(t,i),this._map?this._update():this},addOverlay:function(t,i){return this._addLayer(t,i,!0),this._map?this._update():this},removeLayer:function(t){t.off("add remove",this._onLayerChange,this);var i=this._getLayer(m(t));return i&&this._layers.splice(this._layers.indexOf(i),1),this._map?this._update():this},expand:function(){ci(this._container,"leaflet-control-layers-expanded"),this._section.style.height=null;var t=this._map.getSize().y-(this._container.offsetTop+50);return t<this._section.clientHeight?(ci(this._section,"leaflet-control-layers-scrollbar"),this._section.style.height=t+"px"):_i(this._section,"leaflet-control-layers-scrollbar"),this._checkDisabledLayers(),this},collapse:function(){return _i(this._container,"leaflet-control-layers-expanded"),this},_initLayout:function(){var t="leaflet-control-layers",i=this._container=si("div",t),e=this.options.collapsed;i.setAttribute("aria-haspopup",!0),Oi(i),Ii(i);var n=this._section=si("section",t+"-list");e&&(this._map.on("click",this.collapse,this),ot||zi(i,{mouseenter:this.expand,mouseleave:this.collapse},this));var o=this._layersLink=si("a",t+"-toggle",i);o.href="#",o.title="Layers",bt?(zi(o,"click",Ni),zi(o,"click",this.expand,this)):zi(o,"focus",this.expand,this),e||this.expand(),this._baseLayersList=si("div",t+"-base",n),this._separator=si("div",t+"-separator",n),this._overlaysList=si("div",t+"-overlays",n),i.appendChild(n)},_getLayer:function(t){for(var i=0;i<this._layers.length;i++)if(this._layers[i]&&m(this._layers[i].layer)===t)return this._layers[i]},_addLayer:function(t,i,e){this._map&&t.on("add remove",this._onLayerChange,this),this._layers.push({layer:t,name:i,overlay:e}),this.options.sortLayers&&this._layers.sort(p(function(t,i){return this.options.sortFunction(t.layer,i.layer,t.name,i.name)},this)),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(!this._container)return this;ai(this._baseLayersList),ai(this._overlaysList),this._layerControlInputs=[];for(var t,i,e,n=0,o=0;o<this._layers.length;o++)e=this._layers[o],this._addItem(e),i=i||e.overlay,t=t||!e.overlay,n+=e.overlay?0:1;return this.options.hideSingleBase&&(t=t&&1<n,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=i&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var i=this._getLayer(m(t.target)),e=i.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;e&&this._map.fire(e,i)},_createRadioElement:function(t,i){var e='<input type="radio" class="leaflet-control-layers-selector" name="'+t+'"'+(i?' checked="checked"':"")+"/>",n=document.createElement("div");return n.innerHTML=e,n.firstChild},_addItem:function(t){var i,e=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((i=document.createElement("input")).type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=n):i=this._createRadioElement("leaflet-base-layers_"+m(this),n),this._layerControlInputs.push(i),i.layerId=m(t.layer),zi(i,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var s=document.createElement("div");return e.appendChild(s),s.appendChild(i),s.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=e.length-1;0<=s;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;s<o.length;s++)this._map.hasLayer(o[s])&&this._map.removeLayer(o[s]);for(s=0;s<n.length;s++)this._map.hasLayer(n[s])||this._map.addLayer(n[s]);this._handlingClick=!1,this._refocusOnMap()},_checkDisabledLayers:function(){for(var t,i,e=this._layerControlInputs,n=this._map.getZoom(),o=e.length-1;0<=o;o--)t=e[o],i=this._getLayer(t.layerId).layer,t.disabled=void 0!==i.options.minZoom&&n<i.options.minZoom||void 0!==i.options.maxZoom&&n>i.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),$i=Xi.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"&#x2212;",zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",e=si("div",i+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+"-in",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+"-out",e,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),e},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._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){var s=si("a",e,n);return s.innerHTML=t,s.href="#",s.title=i,s.setAttribute("role","button"),s.setAttribute("aria-label",i),Oi(s),zi(s,"click",Ni),zi(s,"click",o,this),zi(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";_i(this._zoomInButton,i),_i(this._zoomOutButton,i),!this._disabled&&t._zoom!==t.getMinZoom()||ci(this._zoomOutButton,i),!this._disabled&&t._zoom!==t.getMaxZoom()||ci(this._zoomInButton,i)}});Ki.mergeOptions({zoomControl:!0}),Ki.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new $i,this.addControl(this.zoomControl))});var Qi=Xi.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i="leaflet-control-scale",e=si("div",i),n=this.options;return this._addScales(n,i+"-line",e),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),e},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,i,e){t.metric&&(this._mScale=si("div",i,e)),t.imperial&&(this._iScale=si("div",i,e))},_update:function(){var t=this._map,i=t.getSize().y/2,e=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(e)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),e=i<1e3?i+" m":i/1e3+" km";this._updateScale(this._mScale,e,i/t)},_updateImperial:function(t){var i,e,n,o=3.2808399*t;5280<o?(i=o/5280,e=this._getRoundNum(i),this._updateScale(this._iScale,e+" mi",e/i)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,i,e){t.style.width=Math.round(this.options.maxWidth*e)+"px",t.innerHTML=i},_getRoundNum:function(t){var i=Math.pow(10,(Math.floor(t)+"").length-1),e=t/i;return i*(e=10<=e?10:5<=e?5:3<=e?3:2<=e?2:1)}}),te=Xi.extend({options:{position:"bottomright",prefix:'<a href="https://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var i in(t.attributionControl=this)._container=si("div","leaflet-control-attribution"),Oi(this._container),t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),this._container},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=[];for(var i in this._attributions)this._attributions[i]&&t.push(i);var e=[];this.options.prefix&&e.push(this.options.prefix),t.length&&e.push(t.join(", ")),this._container.innerHTML=e.join(" | ")}}});Ki.mergeOptions({attributionControl:!0}),Ki.addInitHook(function(){this.options.attributionControl&&(new te).addTo(this)});Xi.Layers=Ji,Xi.Zoom=$i,Xi.Scale=Qi,Xi.Attribution=te,Yi.layers=function(t,i,e){return new Ji(t,i,e)},Yi.zoom=function(t){return new $i(t)},Yi.scale=function(t){return new Qi(t)},Yi.attribution=function(t){return new te(t)};var ie=S.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}});ie.addTo=function(t,i){return t.addHandler(i,this),this};var ee,ne={Events:Z},oe=bt?"touchstart mousedown":"mousedown",se={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},re={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},ae=E.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){c(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(zi(this._dragStartTarget,oe,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ae._dragging===this&&this.finishDrag(),Si(this._dragStartTarget,oe,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var i,e;!t._simulated&&this._enabled&&(this._moved=!1,li(this._element,"leaflet-zoom-anim")||ae._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((ae._dragging=this)._preventOutline&&Pi(this._element),xi(),Xt(),this._moving||(this.fire("down"),i=t.touches?t.touches[0]:t,e=bi(this._element),this._startPoint=new k(i.clientX,i.clientY),this._parentScale=Ti(e),zi(document,re[t.type],this._onMove,this),zi(document,se[t.type],this._onUp,this))))},_onMove:function(t){var i,e;!t._simulated&&this._enabled&&(t.touches&&1<t.touches.length?this._moved=!0:((e=new k((i=t.touches&&1===t.touches.length?t.touches[0]:t).clientX,i.clientY)._subtract(this._startPoint)).x||e.y)&&(Math.abs(e.x)+Math.abs(e.y)<this.options.clickTolerance||(e.x/=this._parentScale.x,e.y/=this._parentScale.y,Ri(t),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=yi(this._element).subtract(e),ci(document.body,"leaflet-dragging"),this._lastTarget=t.target||t.srcElement,window.SVGElementInstance&&this._lastTarget instanceof window.SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),ci(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(e),this._moving=!0,z(this._animRequest),this._lastEvent=t,this._animRequest=M(this._updatePosition,this,!0))))},_updatePosition:function(){var t={originalEvent:this._lastEvent};this.fire("predrag",t),vi(this._element,this._newPos),this.fire("drag",t)},_onUp:function(t){!t._simulated&&this._enabled&&this.finishDrag()},finishDrag:function(){for(var t in _i(document.body,"leaflet-dragging"),this._lastTarget&&(_i(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null),re)Si(document,re[t],this._onMove,this),Si(document,se[t],this._onUp,this);wi(),Jt(),this._moved&&this._moving&&(z(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1,ae._dragging=!1}});function he(t,i){if(!i||!t.length)return t.slice();var e=i*i;return t=function(t,i){var e=t.length,n=new(typeof Uint8Array!=void 0+""?Uint8Array:Array)(e);n[0]=n[e-1]=1,function t(i,e,n,o,s){var r,a,h,u=0;for(a=o+1;a<=s-1;a++)h=de(i[a],i[o],i[s],!0),u<h&&(r=a,u=h);n<u&&(e[r]=1,t(i,e,n,o,r),t(i,e,n,r,s))}(t,n,i,0,e-1);var o,s=[];for(o=0;o<e;o++)n[o]&&s.push(t[o]);return s}(t=function(t,i){for(var e=[t[0]],n=1,o=0,s=t.length;n<s;n++)(function(t,i){var e=i.x-t.x,n=i.y-t.y;return e*e+n*n})(t[n],t[o])>i&&(e.push(t[n]),o=n);o<s-1&&e.push(t[s-1]);return e}(t,e),e)}function ue(t,i,e){return Math.sqrt(de(t,i,e,!0))}function le(t,i,e,n,o){var s,r,a,h=n?ee:_e(t,e),u=_e(i,e);for(ee=u;;){if(!(h|u))return[t,i];if(h&u)return!1;a=_e(r=ce(t,i,s=h||u,e,o),e),s===h?(t=r,h=a):(i=r,u=a)}}function ce(t,i,e,n,o){var s,r,a=i.x-t.x,h=i.y-t.y,u=n.min,l=n.max;return 8&e?(s=t.x+a*(l.y-t.y)/h,r=l.y):4&e?(s=t.x+a*(u.y-t.y)/h,r=u.y):2&e?(s=l.x,r=t.y+h*(l.x-t.x)/a):1&e&&(s=u.x,r=t.y+h*(u.x-t.x)/a),new k(s,r,o)}function _e(t,i){var e=0;return t.x<i.min.x?e|=1:t.x>i.max.x&&(e|=2),t.y<i.min.y?e|=4:t.y>i.max.y&&(e|=8),e}function de(t,i,e,n){var o,s=i.x,r=i.y,a=e.x-s,h=e.y-r,u=a*a+h*h;return 0<u&&(1<(o=((t.x-s)*a+(t.y-r)*h)/u)?(s=e.x,r=e.y):0<o&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new k(s,r)}function pe(t){return!g(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function me(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),pe(t)}var fe={simplify:he,pointToSegmentDistance:ue,closestPointOnSegment:function(t,i,e){return de(t,i,e)},clipSegment:le,_getEdgeIntersection:ce,_getBitCode:_e,_sqClosestPointOnSegment:de,isFlat:pe,_flat:me};function ge(t,i,e){for(var n,o,s,r,a,h,u,l=[1,4,2,8],c=0,_=t.length;c<_;c++)t[c]._code=_e(t[c],i);for(s=0;s<4;s++){for(h=l[s],n=[],c=0,o=(_=t.length)-1;c<_;o=c++)r=t[c],a=t[o],r._code&h?a._code&h||((u=ce(a,r,h,i,e))._code=_e(u,i),n.push(u)):(a._code&h&&((u=ce(a,r,h,i,e))._code=_e(u,i),n.push(u)),n.push(r));t=n}return t}var ve,ye={clipPolygon:ge},xe={project:function(t){return new k(t.lng,t.lat)},unproject:function(t){return new D(t.y,t.x)},bounds:new I([-180,-90],[180,90])},we={R:6378137,R_MINOR:6356752.314245179,bounds:new I([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var i=Math.PI/180,e=this.R,n=t.lat*i,o=this.R_MINOR/e,s=Math.sqrt(1-o*o),r=s*Math.sin(n),a=Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2),n=-e*Math.log(Math.max(a,1e-10));return new k(t.lng*i*e,n)},unproject:function(t){for(var i,e=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,u=.1;h<15&&1e-7<Math.abs(u);h++)i=s*Math.sin(a),i=Math.pow((1-i)/(1+i),s/2),a+=u=Math.PI/2-2*Math.atan(r*i)-a;return new D(a*e,t.x*e/n)}},Pe={LonLat:xe,Mercator:we,SphericalMercator:V},Le=h({},F,{code:"EPSG:3395",projection:we,transformation:G(ve=.5/(Math.PI*we.R),.5,-ve,.5)}),be=h({},F,{code:"EPSG:4326",projection:xe,transformation:G(1/180,1,-1/180,.5)}),Te=h({},H,{projection:xe,transformation:G(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,i){var e=i.lng-t.lng,n=i.lat-t.lat;return Math.sqrt(e*e+n*n)},infinite:!0});H.Earth=F,H.EPSG3395=Le,H.EPSG3857=Y,H.EPSG900913=X,H.EPSG4326=be,H.Simple=Te;var Me=E.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[m(t)]=this},removeInteractiveTarget:function(t){return delete this._map._targets[m(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var i,e=t.target;e.hasLayer(this)&&(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents&&(i=this.getEvents(),e.on(i,this),this.once("remove",function(){e.off(i,this)},this)),this.onAdd(e),this.getAttribution&&e.attributionControl&&e.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),e.fire("layeradd",{layer:this}))}});Ki.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var i=m(t);return this._layers[i]||((this._layers[i]=t)._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var i=m(t);return this._layers[i]&&(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[i],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null),this},hasLayer:function(t){return!!t&&m(t)in this._layers},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},_addLayers:function(t){for(var i=0,e=(t=t?g(t)?t:[t]:[]).length;i<e;i++)this.addLayer(t[i])},_addZoomLimit:function(t){!isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[m(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){var i=m(t);this._zoomBoundLayers[i]&&(delete this._zoomBoundLayers[i],this._updateZoomLevels())},_updateZoomLevels:function(){var t=1/0,i=-1/0,e=this._getZoomSpan();for(var n in this._zoomBoundLayers)var o=this._zoomBoundLayers[n].options,t=void 0===o.minZoom?t:Math.min(t,o.minZoom),i=void 0===o.maxZoom?i:Math.max(i,o.maxZoom);this._layersMaxZoom=i===-1/0?void 0:i,this._layersMinZoom=t===1/0?void 0:t,e!==this._getZoomSpan()&&this.fire("zoomlevelschange"),void 0===this.options.maxZoom&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}});var ze=Me.extend({initialize:function(t,i){var e,n;if(c(this,i),this._layers={},t)for(e=0,n=t.length;e<n;e++)this.addLayer(t[e])},addLayer:function(t){var i=this.getLayerId(t);return this._layers[i]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var i=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[i]&&this._map.removeLayer(this._layers[i]),delete this._layers[i],this},hasLayer:function(t){return!!t&&("number"==typeof t?t:this.getLayerId(t))in this._layers},clearLayers:function(){return this.eachLayer(this.removeLayer,this)},invoke:function(t){var i,e,n=Array.prototype.slice.call(arguments,1);for(i in this._layers)(e=this._layers[i])[t]&&e[t].apply(e,n);return this},onAdd:function(t){this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t)},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];return this.eachLayer(t.push,t),t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:m}),Ce=ze.extend({addLayer:function(t){return this.hasLayer(t)?this:(t.addEventParent(this),ze.prototype.addLayer.call(this,t),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?(t in this._layers&&(t=this._layers[t]),t.removeEventParent(this),ze.prototype.removeLayer.call(this,t),this.fire("layerremove",{layer:t})):this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t=new R;for(var i in this._layers){var e=this._layers[i];t.extend(e.getBounds?e.getBounds():e.getLatLng())}return t}}),Se=S.extend({options:{popupAnchor:[0,0],tooltipAnchor:[0,0]},initialize:function(t){c(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,i){var e=this._getIconUrl(t);if(!e){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var n=this._createImg(e,i&&"IMG"===i.tagName?i:null);return this._setIconStyles(n,t),n},_setIconStyles:function(t,i){var e=this.options,n=e[i+"Size"];"number"==typeof n&&(n=[n,n]);var o=A(n),s=A("shadow"===i&&e.shadowAnchor||e.iconAnchor||o&&o.divideBy(2,!0));t.className="leaflet-marker-"+i+" "+(e.className||""),s&&(t.style.marginLeft=-s.x+"px",t.style.marginTop=-s.y+"px"),o&&(t.style.width=o.x+"px",t.style.height=o.y+"px")},_createImg:function(t,i){return(i=i||document.createElement("img")).src=t,i},_getIconUrl:function(t){return zt&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}});var Ze=Se.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return Ze.imagePath||(Ze.imagePath=this._detectIconPath()),(this.options.imagePath||Ze.imagePath)+Se.prototype._getIconUrl.call(this,t)},_detectIconPath:function(){var t=si("div","leaflet-default-icon-path",document.body),i=oi(t,"background-image")||oi(t,"backgroundImage");return document.body.removeChild(t),i=null===i||0!==i.indexOf("url")?"":i.replace(/^url\(["']?/,"").replace(/marker-icon\.png["']?\)$/,"")}}),Ee=ie.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new ae(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),ci(t,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&_i(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_adjustPan:function(t){var i,e=this._marker,n=e._map,o=this._marker.options.autoPanSpeed,s=this._marker.options.autoPanPadding,r=yi(e._icon),a=n.getPixelBounds(),h=n.getPixelOrigin(),u=O(a.min._subtract(h).add(s),a.max._subtract(h).subtract(s));u.contains(r)||(i=A((Math.max(u.max.x,r.x)-u.max.x)/(a.max.x-u.max.x)-(Math.min(u.min.x,r.x)-u.min.x)/(a.min.x-u.min.x),(Math.max(u.max.y,r.y)-u.max.y)/(a.max.y-u.max.y)-(Math.min(u.min.y,r.y)-u.min.y)/(a.min.y-u.min.y)).multiplyBy(o),n.panBy(i,{animate:!1}),this._draggable._newPos._add(i),this._draggable._startPos._add(i),vi(e._icon,this._draggable._newPos),this._onDrag(t),this._panRequest=M(this._adjustPan.bind(this,t)))},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup&&this._marker.closePopup(),this._marker.fire("movestart").fire("dragstart")},_onPreDrag:function(t){this._marker.options.autoPan&&(z(this._panRequest),this._panRequest=M(this._adjustPan.bind(this,t)))},_onDrag:function(t){var i=this._marker,e=i._shadow,n=yi(i._icon),o=i._map.layerPointToLatLng(n);e&&vi(e,n),i._latlng=o,t.latlng=o,t.oldLatLng=this._oldLatLng,i.fire("move",t).fire("drag",t)},_onDragEnd:function(t){z(this._panRequest),delete this._oldLatLng,this._marker.fire("moveend").fire("dragend",t)}}),ke=Me.extend({options:{icon:new Ze,interactive:!0,keyboard:!0,title:"",alt:"",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",shadowPane:"shadowPane",bubblingMouseEvents:!1,draggable:!1,autoPan:!1,autoPanPadding:[50,50],autoPanSpeed:10},initialize:function(t,i){c(this,i),this._latlng=j(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete this.dragging,this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var i=this._latlng;return this._latlng=j(t),this.update(),this.fire("move",{oldLatLng:i,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},getIcon:function(){return this.options.icon},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){var t;return this._icon&&this._map&&(t=this._map.latLngToLayerPoint(this._latlng).round(),this._setPos(t)),this},_initIcon:function(){var t=this.options,i="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),e=t.icon.createIcon(this._icon),n=!1;e!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(e.title=t.title),"IMG"===e.tagName&&(e.alt=t.alt||"")),ci(e,i),t.keyboard&&(e.tabIndex="0"),this._icon=e,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex});var o=t.icon.createShadow(this._shadow),s=!1;o!==this._shadow&&(this._removeShadow(),s=!0),o&&(ci(o,i),o.alt=""),this._shadow=o,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),o&&s&&this.getPane(t.shadowPane).appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),ri(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&ri(this._shadow),this._shadow=null},_setPos:function(t){this._icon&&vi(this._icon,t),this._shadow&&vi(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon&&(this._icon.style.zIndex=this._zIndex+t)},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(i)},_initInteraction:function(){var t;this.options.interactive&&(ci(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),Ee&&(t=this.options.draggable,this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new Ee(this),t&&this.dragging.enable()))},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;this._icon&&mi(this._icon,t),this._shadow&&mi(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor}});var Be=Me.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:"evenodd",interactive:!0,bubblingMouseEvents:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return c(this,t),this._renderer&&(this._renderer._updateStyle(this),this.options.stroke&&t&&Object.prototype.hasOwnProperty.call(t,"weight")&&this._updateBounds()),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+this._renderer.options.tolerance}}),Ae=Be.extend({options:{fill:!0,radius:10},initialize:function(t,i){c(this,i),this._latlng=j(t),this._radius=this.options.radius},setLatLng:function(t){var i=this._latlng;return this._latlng=j(t),this.redraw(),this.fire("move",{oldLatLng:i,latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var i=t&&t.radius||this._radius;return Be.prototype.setStyle.call(this,t),this.setRadius(i),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,i=this._radiusY||t,e=this._clickTolerance(),n=[t+e,i+e];this._pxBounds=new I(this._point.subtract(n),this._point.add(n))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)},_containsPoint:function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()}});var Ie=Ae.extend({initialize:function(t,i,e){if("number"==typeof i&&(i=h({},e,{radius:i})),c(this,i),this._latlng=j(t),isNaN(this.options.radius))throw new Error("Circle radius cannot be NaN");this._mRadius=this.options.radius},setRadius:function(t){return this._mRadius=t,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var t=[this._radius,this._radiusY||this._radius];return new R(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:Be.prototype.setStyle,_project:function(){var t,i,e,n,o,s,r,a,h=this._latlng.lng,u=this._latlng.lat,l=this._map,c=l.options.crs;c.distance===F.distance?(t=Math.PI/180,i=this._mRadius/F.R/t,e=l.project([u+i,h]),n=l.project([u-i,h]),o=e.add(n).divideBy(2),s=l.unproject(o).lat,r=Math.acos((Math.cos(i*t)-Math.sin(u*t)*Math.sin(s*t))/(Math.cos(u*t)*Math.cos(s*t)))/t,!isNaN(r)&&0!==r||(r=i/Math.cos(Math.PI/180*u)),this._point=o.subtract(l.getPixelOrigin()),this._radius=isNaN(r)?0:o.x-l.project([s,h-r]).x,this._radiusY=o.y-e.y):(a=c.unproject(c.project(this._latlng).subtract([this._mRadius,0])),this._point=l.latLngToLayerPoint(this._latlng),this._radius=this._point.x-l.latLngToLayerPoint(a).x),this._updateBounds()}});var Oe=Be.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,i){c(this,i),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var i,e,n=1/0,o=null,s=de,r=0,a=this._parts.length;r<a;r++)for(var h=this._parts[r],u=1,l=h.length;u<l;u++){var c=s(t,i=h[u-1],e=h[u],!0);c<n&&(n=c,o=s(t,i,e))}return o&&(o.distance=Math.sqrt(n)),o},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r,a=this._rings[0],h=a.length;if(!h)return null;for(i=t=0;t<h-1;t++)i+=a[t].distanceTo(a[t+1])/2;if(0===i)return this._map.layerPointToLatLng(a[0]);for(n=t=0;t<h-1;t++)if(o=a[t],s=a[t+1],i<(n+=e=o.distanceTo(s)))return r=(n-i)/e,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,i){return i=i||this._defaultShape(),t=j(t),i.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new R,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return pe(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var i=[],e=pe(t),n=0,o=t.length;n<o;n++)e?(i[n]=j(t[n]),this._bounds.extend(i[n])):i[n]=this._convertLatLngs(t[n]);return i},_project:function(){var t=new I;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t),this._bounds.isValid()&&t.isValid()&&(this._rawPxBounds=t,this._updateBounds())},_updateBounds:function(){var t=this._clickTolerance(),i=new k(t,t);this._pxBounds=new I([this._rawPxBounds.min.subtract(i),this._rawPxBounds.max.add(i)])},_projectLatlngs:function(t,i,e){var n,o,s=t[0]instanceof D,r=t.length;if(s){for(o=[],n=0;n<r;n++)o[n]=this._map.latLngToLayerPoint(t[n]),e.extend(o[n]);i.push(o)}else for(n=0;n<r;n++)this._projectLatlngs(t[n],i,e)},_clipPoints:function(){var t=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var i,e,n,o,s=this._parts,r=0,a=0,h=this._rings.length;r<h;r++)for(i=0,e=(o=this._rings[r]).length;i<e-1;i++)(n=le(o[i],o[i+1],t,i,!0))&&(s[a]=s[a]||[],s[a].push(n[0]),n[1]===o[i+1]&&i!==e-2||(s[a].push(n[1]),a++))},_simplifyPoints:function(){for(var t=this._parts,i=this.options.smoothFactor,e=0,n=t.length;e<n;e++)t[e]=he(t[e],i)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(t,i){var e,n,o,s,r,a,h=this._clickTolerance();if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(e=0,s=this._parts.length;e<s;e++)for(n=0,o=(r=(a=this._parts[e]).length)-1;n<r;o=n++)if((i||0!==n)&&ue(t,a[o],a[n])<=h)return!0;return!1}});Oe._flat=me;var Re=Oe.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r,a,h,u=this._rings[0],l=u.length;if(!l)return null;for(t=s=r=a=0,i=l-1;t<l;i=t++)e=u[t],n=u[i],o=e.y*n.x-n.y*e.x,r+=(e.x+n.x)*o,a+=(e.y+n.y)*o,s+=3*o;return h=0===s?u[0]:[r/s,a/s],this._map.layerPointToLatLng(h)},_convertLatLngs:function(t){var i=Oe.prototype._convertLatLngs.call(this,t),e=i.length;return 2<=e&&i[0]instanceof D&&i[0].equals(i[e-1])&&i.pop(),i},_setLatLngs:function(t){Oe.prototype._setLatLngs.call(this,t),pe(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return pe(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,i=this.options.weight,e=new k(i,i),t=new I(t.min.subtract(e),t.max.add(e));if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;o<s;o++)(n=ge(this._rings[o],t,!0)).length&&this._parts.push(n)},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(t){var i,e,n,o,s,r,a,h,u=!1;if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(o=0,a=this._parts.length;o<a;o++)for(s=0,r=(h=(i=this._parts[o]).length)-1;s<h;r=s++)e=i[s],n=i[r],e.y>t.y!=n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(u=!u);return u||Oe.prototype._containsPoint.call(this,t,!0)}});var Ne=Ce.extend({initialize:function(t,i){c(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i,e,n,o=g(t)?t:t.features;if(o){for(i=0,e=o.length;i<e;i++)((n=o[i]).geometries||n.geometry||n.features||n.coordinates)&&this.addData(n);return this}var s=this.options;if(s.filter&&!s.filter(t))return this;var r=De(t,s);return r?(r.feature=qe(t),r.defaultOptions=r.options,this.resetStyle(r),s.onEachFeature&&s.onEachFeature(t,r),this.addLayer(r)):this},resetStyle:function(t){return void 0===t?this.eachLayer(this.resetStyle,this):(t.options=h({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this)},setStyle:function(i){return this.eachLayer(function(t){this._setLayerStyle(t,i)},this)},_setLayerStyle:function(t,i){t.setStyle&&("function"==typeof i&&(i=i(t.feature)),t.setStyle(i))}});function De(t,i){var e,n,o,s,r="Feature"===t.type?t.geometry:t,a=r?r.coordinates:null,h=[],u=i&&i.pointToLayer,l=i&&i.coordsToLatLng||We;if(!a&&!r)return null;switch(r.type){case"Point":return je(u,t,e=l(a),i);case"MultiPoint":for(o=0,s=a.length;o<s;o++)e=l(a[o]),h.push(je(u,t,e,i));return new Ce(h);case"LineString":case"MultiLineString":return n=He(a,"LineString"===r.type?0:1,l),new Oe(n,i);case"Polygon":case"MultiPolygon":return n=He(a,"Polygon"===r.type?1:2,l),new Re(n,i);case"GeometryCollection":for(o=0,s=r.geometries.length;o<s;o++){var c=De({geometry:r.geometries[o],type:"Feature",properties:t.properties},i);c&&h.push(c)}return new Ce(h);default:throw new Error("Invalid GeoJSON object.")}}function je(t,i,e,n){return t?t(i,e):new ke(e,n&&n.markersInheritOptions&&n)}function We(t){return new D(t[1],t[0],t[2])}function He(t,i,e){for(var n,o=[],s=0,r=t.length;s<r;s++)n=i?He(t[s],i-1,e):(e||We)(t[s]),o.push(n);return o}function Fe(t,i){return i="number"==typeof i?i:6,void 0!==t.alt?[r(t.lng,i),r(t.lat,i),r(t.alt,i)]:[r(t.lng,i),r(t.lat,i)]}function Ue(t,i,e,n){for(var o=[],s=0,r=t.length;s<r;s++)o.push(i?Ue(t[s],i-1,e,n):Fe(t[s],n));return!i&&e&&o.push(o[0]),o}function Ve(t,i){return t.feature?h({},t.feature,{geometry:i}):qe(i)}function qe(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}var Ge={toGeoJSON:function(t){return Ve(this,{type:"Point",coordinates:Fe(this.getLatLng(),t)})}};function Ke(t,i){return new Ne(t,i)}ke.include(Ge),Ie.include(Ge),Ae.include(Ge),Oe.include({toGeoJSON:function(t){var i=!pe(this._latlngs);return Ve(this,{type:(i?"Multi":"")+"LineString",coordinates:Ue(this._latlngs,i?1:0,!1,t)})}}),Re.include({toGeoJSON:function(t){var i=!pe(this._latlngs),e=i&&!pe(this._latlngs[0]),n=Ue(this._latlngs,e?2:i?1:0,!0,t);return i||(n=[n]),Ve(this,{type:(e?"Multi":"")+"Polygon",coordinates:n})}}),ze.include({toMultiPoint:function(i){var e=[];return this.eachLayer(function(t){e.push(t.toGeoJSON(i).geometry.coordinates)}),Ve(this,{type:"MultiPoint",coordinates:e})},toGeoJSON:function(n){var t=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===t)return this.toMultiPoint(n);var o="GeometryCollection"===t,s=[];return this.eachLayer(function(t){var i,e;t.toGeoJSON&&(i=t.toGeoJSON(n),o?s.push(i.geometry):"FeatureCollection"===(e=qe(i)).type?s.push.apply(s,e.features):s.push(e))}),o?Ve(this,{geometries:s,type:"GeometryCollection"}):{type:"FeatureCollection",features:s}}});var Ye=Ke,Xe=Me.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,i,e){this._url=t,this._bounds=N(i),c(this,e)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(ci(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){ri(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&hi(this._image),this},bringToBack:function(){return this._map&&ui(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=N(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t="IMG"===this._url.tagName,i=this._image=t?this._url:si("img");ci(i,"leaflet-image-layer"),this._zoomAnimated&&ci(i,"leaflet-zoom-animated"),this.options.className&&ci(i,this.options.className),i.onselectstart=a,i.onmousemove=a,i.onload=p(this.fire,this,"load"),i.onerror=p(this._overlayOnError,this,"error"),!this.options.crossOrigin&&""!==this.options.crossOrigin||(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t?this._url=i.src:(i.src=this._url,i.alt=this.options.alt)},_animateZoom:function(t){var i=this._map.getZoomScale(t.zoom),e=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;gi(this._image,e,i)},_reset:function(){var t=this._image,i=new I(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),e=i.getSize();vi(t,i.min),t.style.width=e.x+"px",t.style.height=e.y+"px"},_updateOpacity:function(){mi(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)}}),Je=Xe.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1},_initImage:function(){var t="VIDEO"===this._url.tagName,i=this._image=t?this._url:si("video");if(ci(i,"leaflet-image-layer"),this._zoomAnimated&&ci(i,"leaflet-zoom-animated"),this.options.className&&ci(i,this.options.className),i.onselectstart=a,i.onmousemove=a,i.onloadeddata=p(this.fire,this,"load"),t){for(var e=i.getElementsByTagName("source"),n=[],o=0;o<e.length;o++)n.push(e[o].src);this._url=0<e.length?n:[i.src]}else{g(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(i.style,"objectFit")&&(i.style.objectFit="fill"),i.autoplay=!!this.options.autoplay,i.loop=!!this.options.loop,i.muted=!!this.options.muted;for(var s=0;s<this._url.length;s++){var r=si("source");r.src=this._url[s],i.appendChild(r)}}}});var $e=Xe.extend({_initImage:function(){var t=this._image=this._url;ci(t,"leaflet-image-layer"),this._zoomAnimated&&ci(t,"leaflet-zoom-animated"),this.options.className&&ci(t,this.options.className),t.onselectstart=a,t.onmousemove=a}});var Qe=Me.extend({options:{offset:[0,7],className:"",pane:"popupPane"},initialize:function(t,i){c(this,t),this._source=i},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&mi(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&mi(this._container,1),this.bringToFront()},onRemove:function(t){t._fadeAnimated?(mi(this._container,0),this._removeTimeout=setTimeout(p(ri,void 0,this._container),200)):ri(this._container)},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=j(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&hi(this._container),this},bringToBack:function(){return this._map&&ui(this._container),this},_prepareOpen:function(t,i,e){if(i instanceof Me||(e=i,i=t),i instanceof Ce)for(var n in t._layers){i=t._layers[n];break}if(!e)if(i.getCenter)e=i.getCenter();else{if(!i.getLatLng)throw new Error("Unable to get source layer LatLng.");e=i.getLatLng()}return this._source=i,this.update(),e},_updateContent:function(){if(this._content){var t=this._contentNode,i="function"==typeof this._content?this._content(this._source||this):this._content;if("string"==typeof i)t.innerHTML=i;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(i)}this.fire("contentupdate")}},_updatePosition:function(){var t,i,e,n,o;this._map&&(t=this._map.latLngToLayerPoint(this._latlng),i=A(this.options.offset),e=this._getAnchor(),this._zoomAnimated?vi(this._container,t.add(e)):i=i.add(t).add(e),n=this._containerBottom=-i.y,o=this._containerLeft=-Math.round(this._containerWidth/2)+i.x,this._container.style.bottom=n+"px",this._container.style.left=o+"px")},_getAnchor:function(){return[0,0]}}),tn=Qe.extend({options:{maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,closeOnEscapeKey:!0,className:""},openOn:function(t){return t.openPopup(this),this},onAdd:function(t){Qe.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof Be||this._source.on("preclick",Ai))},onRemove:function(t){Qe.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof Be||this._source.off("preclick",Ai))},getEvents:function(){var t=Qe.prototype.getEvents.call(this);return(void 0!==this.options.closeOnClick?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var t,i="leaflet-popup",e=this._container=si("div",i+" "+(this.options.className||"")+" leaflet-zoom-animated"),n=this._wrapper=si("div",i+"-content-wrapper",e);this._contentNode=si("div",i+"-content",n),Oi(e),Ii(this._contentNode),zi(e,"contextmenu",Ai),this._tipContainer=si("div",i+"-tip-container",e),this._tip=si("div",i+"-tip",this._tipContainer),this.options.closeButton&&((t=this._closeButton=si("a",i+"-close-button",e)).href="#close",t.innerHTML="&#215;",zi(t,"click",this._onCloseButtonClick,this))},_updateLayout:function(){var t=this._contentNode,i=t.style;i.width="",i.whiteSpace="nowrap";var e=t.offsetWidth,e=Math.min(e,this.options.maxWidth);e=Math.max(e,this.options.minWidth),i.width=e+1+"px",i.whiteSpace="",i.height="";var n=t.offsetHeight,o=this.options.maxHeight,s="leaflet-popup-scrolled";o&&o<n?(i.height=o+"px",ci(t,s)):_i(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),e=this._getAnchor();vi(this._container,i.add(e))},_adjustPan:function(){var t,i,e,n,o,s,r,a,h,u,l,c;this.options.autoPan&&(this._map._panAnim&&this._map._panAnim.stop(),t=this._map,i=parseInt(oi(this._container,"marginBottom"),10)||0,e=this._container.offsetHeight+i,n=this._containerWidth,(o=new k(this._containerLeft,-e-this._containerBottom))._add(yi(this._container)),s=t.layerPointToContainerPoint(o),r=A(this.options.autoPanPadding),a=A(this.options.autoPanPaddingTopLeft||r),h=A(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),c=l=0,s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+e+h.y>u.y&&(c=s.y+e-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c]))},_onCloseButtonClick:function(t){this._close(),Ni(t)},_getAnchor:function(){return A(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Ki.mergeOptions({closePopupOnClick:!0}),Ki.include({openPopup:function(t,i,e){return t instanceof tn||(t=new tn(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),Me.include({bindPopup:function(t,i){return t instanceof tn?(c(t,i),(this._popup=t)._source=this):(this._popup&&!i||(this._popup=new tn(i,this)),this._popup.setContent(t)),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,i){return this._popup&&this._map&&(i=this._popup._prepareOpen(this,t,i),this._map.openPopup(this._popup,i)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),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 i=t.layer||t.target;this._popup&&this._map&&(Ni(t),i instanceof Be?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===i?this.closePopup():this.openPopup(i,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var en=Qe.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){Qe.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){Qe.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=Qe.prototype.getEvents.call(this);return bt&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=si("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i,e=this._map,n=this._container,o=e.latLngToContainerPoint(e.getCenter()),s=e.layerPointToContainerPoint(t),r=this.options.direction,a=n.offsetWidth,h=n.offsetHeight,u=A(this.options.offset),l=this._getAnchor(),c="top"===r?(i=a/2,h):"bottom"===r?(i=a/2,0):(i="center"===r?a/2:"right"===r?0:"left"===r?a:s.x<o.x?(r="right",0):(r="left",a+2*(u.x+l.x)),h/2);t=t.subtract(A(i,c,!0)).add(u).add(l),_i(n,"leaflet-tooltip-right"),_i(n,"leaflet-tooltip-left"),_i(n,"leaflet-tooltip-top"),_i(n,"leaflet-tooltip-bottom"),ci(n,"leaflet-tooltip-"+r),vi(n,t)},_updatePosition:function(){var t=this._map.latLngToLayerPoint(this._latlng);this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&mi(this._container,t)},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);this._setPosition(i)},_getAnchor:function(){return A(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}});Ki.include({openTooltip:function(t,i,e){return t instanceof en||(t=new en(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:this.addLayer(t)},closeTooltip:function(t){return t&&this.removeLayer(t),this}}),Me.include({bindTooltip:function(t,i){return t instanceof en?(c(t,i),(this._tooltip=t)._source=this):(this._tooltip&&!i||(this._tooltip=new en(i,this)),this._tooltip.setContent(t)),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){var i,e;!t&&this._tooltipHandlersAdded||(i=t?"off":"on",e={remove:this.closeTooltip,move:this._moveTooltip},this._tooltip.options.permanent?e.add=this._openTooltip:(e.mouseover=this._openTooltip,e.mouseout=this.closeTooltip,this._tooltip.options.sticky&&(e.mousemove=this._moveTooltip),bt&&(e.click=this._openTooltip)),this[i](e),this._tooltipHandlersAdded=!t)},openTooltip:function(t,i){return this._tooltip&&this._map&&(i=this._tooltip._prepareOpen(this,t,i),this._map.openTooltip(this._tooltip,i),this._tooltip.options.interactive&&this._tooltip._container&&(ci(this._tooltip._container,"leaflet-clickable"),this.addInteractiveTarget(this._tooltip._container))),this},closeTooltip:function(){return this._tooltip&&(this._tooltip._close(),this._tooltip.options.interactive&&this._tooltip._container&&(_i(this._tooltip._container,"leaflet-clickable"),this.removeInteractiveTarget(this._tooltip._container))),this},toggleTooltip:function(t){return this._tooltip&&(this._tooltip._map?this.closeTooltip():this.openTooltip(t)),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(t){return this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return this._tooltip},_openTooltip:function(t){var i=t.layer||t.target;this._tooltip&&this._map&&this.openTooltip(i,this._tooltip.options.sticky?t.latlng:void 0)},_moveTooltip:function(t){var i,e,n=t.latlng;this._tooltip.options.sticky&&t.originalEvent&&(i=this._map.mouseEventToContainerPoint(t.originalEvent),e=this._map.containerPointToLayerPoint(i),n=this._map.layerPointToLatLng(e)),this._tooltip.setLatLng(n)}});var nn=Se.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var i,e=t&&"DIV"===t.tagName?t:document.createElement("div"),n=this.options;return n.html instanceof Element?(ai(e),e.appendChild(n.html)):e.innerHTML=!1!==n.html?n.html:"",n.bgPos&&(i=A(n.bgPos),e.style.backgroundPosition=-i.x+"px "+-i.y+"px"),this._setIconStyles(e,"icon"),e},createShadow:function(){return null}});Se.Default=Ze;var on=Me.extend({options:{tileSize:256,opacity:1,updateWhenIdle:yt,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,maxNativeZoom:void 0,minNativeZoom:void 0,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){c(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView(),this._update()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),ri(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=void 0},bringToFront:function(){return this._map&&(hi(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(ui(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){return this._map&&(this._removeAllTiles(),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=n(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return document.createElement("div")},getTileSize:function(){var t=this.options.tileSize;return t instanceof k?t:new k(t,t)},_updateZIndex:function(){this._container&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var i,e=this.getPane().children,n=-t(-1/0,1/0),o=0,s=e.length;o<s;o++)i=e[o].style.zIndex,e[o]!==this._container&&i&&(n=t(n,+i));isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!it){mi(this._container,this.options.opacity);var t=+new Date,i=!1,e=!1;for(var n in this._tiles){var o,s=this._tiles[n];s.current&&s.loaded&&(o=Math.min(1,(t-s.loaded)/200),mi(s.el,o),o<1?i=!0:(s.active?e=!0:this._onOpaqueTile(s),s.active=!0))}e&&!this._noPrune&&this._pruneTiles(),i&&(z(this._fadeFrame),this._fadeFrame=M(this._updateOpacity,this))}},_onOpaqueTile:a,_initContainer:function(){this._container||(this._container=si("div","leaflet-layer "+(this.options.className||"")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var t=this._tileZoom,i=this.options.maxZoom;if(void 0!==t){for(var e in this._levels)e=Number(e),this._levels[e].el.children.length||e===t?(this._levels[e].el.style.zIndex=i-Math.abs(t-e),this._onUpdateLevel(e)):(ri(this._levels[e].el),this._removeTilesAtZoom(e),this._onRemoveLevel(e),delete this._levels[e]);var n=this._levels[t],o=this._map;return n||((n=this._levels[t]={}).el=si("div","leaflet-tile-container leaflet-zoom-animated",this._container),n.el.style.zIndex=i,n.origin=o.project(o.unproject(o.getPixelOrigin()),t).round(),n.zoom=t,this._setZoomTransform(n,o.getCenter(),o.getZoom()),a(n.el.offsetWidth),this._onCreateLevel(n)),this._level=n}},_onUpdateLevel:a,_onRemoveLevel:a,_onCreateLevel:a,_pruneTiles:function(){if(this._map){var t,i,e,n=this._map.getZoom();if(n>this.options.maxZoom||n<this.options.minZoom)this._removeAllTiles();else{for(t in this._tiles)(e=this._tiles[t]).retain=e.current;for(t in this._tiles){(e=this._tiles[t]).current&&!e.active&&(i=e.coords,this._retainParent(i.x,i.y,i.z,i.z-5)||this._retainChildren(i.x,i.y,i.z,i.z+2))}for(t in this._tiles)this._tiles[t].retain||this._removeTile(t)}}},_removeTilesAtZoom:function(t){for(var i in this._tiles)this._tiles[i].coords.z===t&&this._removeTile(i)},_removeAllTiles:function(){for(var t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t in this._levels)ri(this._levels[t].el),this._onRemoveLevel(Number(t)),delete this._levels[t];this._removeAllTiles(),this._tileZoom=void 0},_retainParent:function(t,i,e,n){var o=Math.floor(t/2),s=Math.floor(i/2),r=e-1,a=new k(+o,+s);a.z=+r;var h=this._tileCoordsToKey(a),u=this._tiles[h];return u&&u.active?u.retain=!0:(u&&u.loaded&&(u.retain=!0),n<r&&this._retainParent(o,s,r,n))},_retainChildren:function(t,i,e,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*i;s<2*i+2;s++){var r=new k(o,s);r.z=e+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),e+1<n&&this._retainChildren(o,s,e+1,n))}},_resetView:function(t){var i=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),i,i)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_clampZoom:function(t){var i=this.options;return void 0!==i.minNativeZoom&&t<i.minNativeZoom?i.minNativeZoom:void 0!==i.maxNativeZoom&&i.maxNativeZoom<t?i.maxNativeZoom:t},_setView:function(t,i,e,n){var o=Math.round(i),o=void 0!==this.options.maxZoom&&o>this.options.maxZoom||void 0!==this.options.minZoom&&o<this.options.minZoom?void 0:this._clampZoom(o),s=this.options.updateWhenZooming&&o!==this._tileZoom;n&&!s||(this._tileZoom=o,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),void 0!==o&&this._update(t),e||this._pruneTiles(),this._noPrune=!!e),this._setZoomTransforms(t,i)},_setZoomTransforms:function(t,i){for(var e in this._levels)this._setZoomTransform(this._levels[e],t,i)},_setZoomTransform:function(t,i,e){var n=this._map.getZoomScale(e,t.zoom),o=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(i,e)).round();vt?gi(t.el,o,n):vi(t.el,o)},_resetGrid:function(){var t=this._map,i=t.options.crs,e=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom);o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=i.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,i.wrapLng[0]],n).x/e.x),Math.ceil(t.project([0,i.wrapLng[1]],n).x/e.y)],this._wrapY=i.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([i.wrapLat[0],0],n).y/e.x),Math.ceil(t.project([i.wrapLat[1],0],n).y/e.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var i=this._map,e=i._animatingZoom?Math.max(i._animateToZoom,i.getZoom()):i.getZoom(),n=i.getZoomScale(e,this._tileZoom),o=i.project(t,this._tileZoom).floor(),s=i.getSize().divideBy(2*n);return new I(o.subtract(s),o.add(s))},_update:function(t){var i=this._map;if(i){var e=this._clampZoom(i.getZoom());if(void 0===t&&(t=i.getCenter()),void 0!==this._tileZoom){var n=this._getTiledPixelBounds(t),o=this._pxBoundsToTileRange(n),s=o.getCenter(),r=[],a=this.options.keepBuffer,h=new I(o.getBottomLeft().subtract([a,-a]),o.getTopRight().add([a,-a]));if(!(isFinite(o.min.x)&&isFinite(o.min.y)&&isFinite(o.max.x)&&isFinite(o.max.y)))throw new Error("Attempted to load an infinite number of tiles");for(var u in this._tiles){var l=this._tiles[u].coords;l.z===this._tileZoom&&h.contains(new k(l.x,l.y))||(this._tiles[u].current=!1)}if(1<Math.abs(e-this._tileZoom))this._setView(t,e);else{for(var c=o.min.y;c<=o.max.y;c++)for(var _=o.min.x;_<=o.max.x;_++){var d,p=new k(_,c);p.z=this._tileZoom,this._isValidTile(p)&&((d=this._tiles[this._tileCoordsToKey(p)])?d.current=!0:r.push(p))}if(r.sort(function(t,i){return t.distanceTo(s)-i.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));for(var m=document.createDocumentFragment(),_=0;_<r.length;_++)this._addTile(r[_],m);this._level.el.appendChild(m)}}}}},_isValidTile:function(t){var i=this._map.options.crs;if(!i.infinite){var e=this._globalTileRange;if(!i.wrapLng&&(t.x<e.min.x||t.x>e.max.x)||!i.wrapLat&&(t.y<e.min.y||t.y>e.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return N(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var i=this._map,e=this.getTileSize(),n=t.scaleBy(e),o=n.add(e);return[i.unproject(n,t.z),i.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var i=this._tileCoordsToNwSe(t),e=new R(i[0],i[1]);return this.options.noWrap||(e=this._map.wrapLatLngBounds(e)),e},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var i=t.split(":"),e=new k(+i[0],+i[1]);return e.z=+i[2],e},_removeTile:function(t){var i=this._tiles[t];i&&(ri(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){ci(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=a,t.onmousemove=a,it&&this.options.opacity<1&&mi(t,this.options.opacity),ot&&!st&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,i){var e=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),p(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&M(p(this._tileReady,this,t,null,o)),vi(o,e),this._tiles[n]={el:o,coords:t,current:!0},i.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,i,e){i&&this.fire("tileerror",{error:i,tile:e,coords:t});var n=this._tileCoordsToKey(t);(e=this._tiles[n])&&(e.loaded=+new Date,this._map._fadeAnimated?(mi(e.el,0),z(this._fadeFrame),this._fadeFrame=M(this._updateOpacity,this)):(e.active=!0,this._pruneTiles()),i||(ci(e.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:e.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),it||!this._map._fadeAnimated?M(this._pruneTiles,this):setTimeout(p(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new k(this._wrapX?o(t.x,this._wrapX):t.x,this._wrapY?o(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new I(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var sn=on.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,i){this._url=t,(i=c(this,i)).detectRetina&&zt&&0<i.maxZoom&&(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom++):(i.zoomOffset++,i.maxZoom--),i.minZoom=Math.max(0,i.minZoom)),"string"==typeof i.subdomains&&(i.subdomains=i.subdomains.split("")),ot||this.on("tileunload",this._onTileRemove)},setUrl:function(t,i){return this._url===t&&void 0===i&&(i=!0),this._url=t,i||this.redraw(),this},createTile:function(t,i){var e=document.createElement("img");return zi(e,"load",p(this._tileOnLoad,this,i,e)),zi(e,"error",p(this._tileOnError,this,i,e)),!this.options.crossOrigin&&""!==this.options.crossOrigin||(e.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),e.alt="",e.setAttribute("role","presentation"),e.src=this.getTileUrl(t),e},getTileUrl:function(t){var i,e={r:zt?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};return this._map&&!this._map.options.crs.infinite&&(i=this._globalTileRange.max.y-t.y,this.options.tms&&(e.y=i),e["-y"]=i),f(this._url,h(e,this.options))},_tileOnLoad:function(t,i){it?setTimeout(p(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,e){var n=this.options.errorTileUrl;n&&i.getAttribute("src")!==n&&(i.src=n),t(e,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,i=this.options.maxZoom;return this.options.zoomReverse&&(t=i-t),t+this.options.zoomOffset},_getSubdomain:function(t){var i=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[i]},_abortLoading:function(){var t,i;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((i=this._tiles[t].el).onload=a,i.onerror=a,i.complete||(i.src=y,ri(i),delete this._tiles[t]))},_removeTile:function(t){var i=this._tiles[t];if(i)return at||i.el.setAttribute("src",y),on.prototype._removeTile.call(this,t)},_tileReady:function(t,i,e){if(this._map&&(!e||e.getAttribute("src")!==y))return on.prototype._tileReady.call(this,t,i,e)}});function rn(t,i){return new sn(t,i)}var an=sn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t;var e=h({},this.defaultWmsParams);for(var n in i)n in this.options||(e[n]=i[n]);var o=(i=c(this,i)).detectRetina&&zt?2:1,s=this.getTileSize();e.width=s.x*o,e.height=s.y*o,this.wmsParams=e},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var i=1.3<=this._wmsVersion?"crs":"srs";this.wmsParams[i]=this._crs.code,sn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var i=this._tileCoordsToNwSe(t),e=this._crs,n=O(e.project(i[0]),e.project(i[1])),o=n.min,s=n.max,r=(1.3<=this._wmsVersion&&this._crs===be?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=sn.prototype.getTileUrl.call(this,t);return a+_(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,i){return h(this.wmsParams,t),i||this.redraw(),this}});sn.WMS=an,rn.wms=function(t,i){return new an(t,i)};var hn=Me.extend({options:{padding:.1,tolerance:0},initialize:function(t){c(this,t),m(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&ci(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,i){var e=this._map.getZoomScale(i,this._zoom),n=yi(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,i),r=this._map.project(t,i).subtract(s),a=o.multiplyBy(-e).add(n).add(o).subtract(r);vt?gi(this._container,a,e):vi(this._container,a)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,i=this._map.getSize(),e=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new I(e,e.add(i.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),un=hn.extend({getEvents:function(){var t=hn.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){hn.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");zi(t,"mousemove",this._onMouseMove,this),zi(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),zi(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){z(this._redrawRequest),delete this._ctx,ri(this._container),Si(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){var t,i,e,n;this._map._animatingZoom&&this._bounds||(hn.prototype._update.call(this),t=this._bounds,i=this._container,e=t.getSize(),n=zt?2:1,vi(i,t.min),i.width=n*e.x,i.height=n*e.y,i.style.width=e.x+"px",i.style.height=e.y+"px",zt&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update"))},_reset:function(){hn.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t);var i=(this._layers[m(t)]=t)._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=i),this._drawLast=i,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var i=t._order,e=i.next,n=i.prev;e?e.prev=n:this._drawLast=n,n?n.next=e:this._drawFirst=e,delete t._order,delete this._layers[m(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){for(var i,e=t.options.dashArray.split(/[, ]+/),n=[],o=0;o<e.length;o++){if(i=Number(e[o]),isNaN(i))return;n.push(i)}t.options._dashArray=n}else t.options._dashArray=t.options.dashArray},_requestRedraw:function(t){this._map&&(this._extendRedrawBounds(t),this._redrawRequest=this._redrawRequest||M(this._redraw,this))},_extendRedrawBounds:function(t){var i;t._pxBounds&&(i=(t.options.weight||0)+1,this._redrawBounds=this._redrawBounds||new I,this._redrawBounds.extend(t._pxBounds.min.subtract([i,i])),this._redrawBounds.extend(t._pxBounds.max.add([i,i])))},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var t,i=this._redrawBounds;i?(t=i.getSize(),this._ctx.clearRect(i.min.x,i.min.y,t.x,t.y)):(this._ctx.save(),this._ctx.setTransform(1,0,0,1,0,0),this._ctx.clearRect(0,0,this._container.width,this._container.height),this._ctx.restore())},_draw:function(){var t,i,e=this._redrawBounds;this._ctx.save(),e&&(i=e.getSize(),this._ctx.beginPath(),this._ctx.rect(e.min.x,e.min.y,i.x,i.y),this._ctx.clip()),this._drawing=!0;for(var n=this._drawFirst;n;n=n.next)t=n.layer,(!e||t._pxBounds&&t._pxBounds.intersects(e))&&t._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(t,i){if(this._drawing){var e,n,o,s,r=t._parts,a=r.length,h=this._ctx;if(a){for(h.beginPath(),e=0;e<a;e++){for(n=0,o=r[e].length;n<o;n++)s=r[e][n],h[n?"lineTo":"moveTo"](s.x,s.y);i&&h.closePath()}this._fillStroke(h,t)}}},_updateCircle:function(t){var i,e,n,o;this._drawing&&!t._empty()&&(i=t._point,e=this._ctx,n=Math.max(Math.round(t._radius),1),1!=(o=(Math.max(Math.round(t._radiusY),1)||n)/n)&&(e.save(),e.scale(1,o)),e.beginPath(),e.arc(i.x,i.y/o,n,0,2*Math.PI,!1),1!=o&&e.restore(),this._fillStroke(e,t))},_fillStroke:function(t,i){var e=i.options;e.fill&&(t.globalAlpha=e.fillOpacity,t.fillStyle=e.fillColor||e.color,t.fill(e.fillRule||"evenodd")),e.stroke&&0!==e.weight&&(t.setLineDash&&t.setLineDash(i.options&&i.options._dashArray||[]),t.globalAlpha=e.opacity,t.lineWidth=e.weight,t.strokeStyle=e.color,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.stroke())},_onClick:function(t){for(var i,e,n=this._map.mouseEventToLayerPoint(t),o=this._drawFirst;o;o=o.next)(i=o.layer).options.interactive&&i._containsPoint(n)&&(("click"===t.type||"preclick"!==t.type)&&this._map._draggableMoved(i)||(e=i));e&&(Fi(t),this._fireEvent([e],t))},_onMouseMove:function(t){var i;!this._map||this._map.dragging.moving()||this._map._animatingZoom||(i=this._map.mouseEventToLayerPoint(t),this._handleMouseHover(t,i))},_handleMouseOut:function(t){var i=this._hoveredLayer;i&&(_i(this._container,"leaflet-interactive"),this._fireEvent([i],t,"mouseout"),this._hoveredLayer=null,this._mouseHoverThrottled=!1)},_handleMouseHover:function(t,i){if(!this._mouseHoverThrottled){for(var e,n,o=this._drawFirst;o;o=o.next)(e=o.layer).options.interactive&&e._containsPoint(i)&&(n=e);n!==this._hoveredLayer&&(this._handleMouseOut(t),n&&(ci(this._container,"leaflet-interactive"),this._fireEvent([n],t,"mouseover"),this._hoveredLayer=n)),this._hoveredLayer&&this._fireEvent([this._hoveredLayer],t),this._mouseHoverThrottled=!0,setTimeout(p(function(){this._mouseHoverThrottled=!1},this),32)}},_fireEvent:function(t,i,e){this._map._fireDOMEvent(i,e||i.type,t)},_bringToFront:function(t){var i,e,n=t._order;n&&(i=n.next,e=n.prev,i&&((i.prev=e)?e.next=i:i&&(this._drawFirst=i),n.prev=this._drawLast,(this._drawLast.next=n).next=null,this._drawLast=n,this._requestRedraw(t)))},_bringToBack:function(t){var i,e,n=t._order;n&&(i=n.next,(e=n.prev)&&((e.next=i)?i.prev=e:e&&(this._drawLast=e),n.prev=null,n.next=this._drawFirst,this._drawFirst.prev=n,this._drawFirst=n,this._requestRedraw(t)))}});function ln(t){return St?new un(t):null}var cn=function(){try{return document.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return document.createElement("<lvml:"+t+' class="lvml">')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),_n={_initContainer:function(){this._container=si("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(hn.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=cn("shape");ci(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=cn("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[m(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;ri(i),t.removeInteractiveTarget(i),delete this._layers[m(t)]},_updateStyle:function(t){var i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i=i||(t._stroke=cn("stroke")),o.appendChild(i),i.weight=n.weight+"px",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=g(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=n.lineCap.replace("butt","flat"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e=e||(t._fill=cn("fill")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+e+","+n+" 0,23592600")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){hi(t._container)},_bringToBack:function(t){ui(t._container)}},dn=Et?cn:J,pn=hn.extend({getEvents:function(){var t=hn.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=dn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=dn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ri(this._container),Si(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){var t,i,e;this._map._animatingZoom&&this._bounds||(hn.prototype._update.call(this),i=(t=this._bounds).getSize(),e=this._container,this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute("width",i.x),e.setAttribute("height",i.y)),vi(e,t.min),e.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update"))},_initPath:function(t){var i=t._path=dn("path");t.options.className&&ci(i,t.options.className),t.options.interactive&&ci(i,"leaflet-interactive"),this._updateStyle(t),this._layers[m(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ri(t._path),t.removeInteractiveTarget(t._path),delete this._layers[m(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,e=t.options;i&&(e.stroke?(i.setAttribute("stroke",e.color),i.setAttribute("stroke-opacity",e.opacity),i.setAttribute("stroke-width",e.weight),i.setAttribute("stroke-linecap",e.lineCap),i.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?i.setAttribute("stroke-dasharray",e.dashArray):i.removeAttribute("stroke-dasharray"),e.dashOffset?i.setAttribute("stroke-dashoffset",e.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),e.fill?(i.setAttribute("fill",e.fillColor||e.color),i.setAttribute("fill-opacity",e.fillOpacity),i.setAttribute("fill-rule",e.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,$(t._parts,i))},_updateCircle:function(t){var i=t._point,e=Math.max(Math.round(t._radius),1),n="a"+e+","+(Math.max(Math.round(t._radiusY),1)||e)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(i.x-e)+","+i.y+n+2*e+",0 "+n+2*-e+",0 ";this._setPath(t,o)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){hi(t._path)},_bringToBack:function(t){ui(t._path)}});function mn(t){return Zt||Et?new pn(t):null}Et&&pn.include(_n),Ki.include({getRenderer:function(t){var i=(i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var i=this._paneRenderers[t];return void 0===i&&(i=this._createRenderer({pane:t}),this._paneRenderers[t]=i),i},_createRenderer:function(t){return this.options.preferCanvas&&ln(t)||mn(t)}});var fn=Re.extend({initialize:function(t,i){Re.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=N(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});pn.create=dn,pn.pointsToPath=$,Ne.geometryToLayer=De,Ne.coordsToLatLng=We,Ne.coordsToLatLngs=He,Ne.latLngToCoords=Fe,Ne.latLngsToCoords=Ue,Ne.getFeature=Ve,Ne.asFeature=qe,Ki.mergeOptions({boxZoom:!0});var gn=ie.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(){zi(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Si(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ri(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(),Xt(),xi(),this._startPoint=this._map.mouseEventToContainerPoint(t),zi(document,{contextmenu:Ni,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=si("div","leaflet-zoom-box",this._container),ci(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var i=new I(this._point,this._startPoint),e=i.getSize();vi(this._box,i.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(ri(this._box),_i(this._container,"leaflet-crosshair")),Jt(),wi(),Si(document,{contextmenu:Ni,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){var i;1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(p(this._resetState,this),0),i=new R(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})))},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});Ki.addInitHook("addHandler","boxZoom",gn),Ki.mergeOptions({doubleClickZoom:!0});var vn=ie.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,e=i.getZoom(),n=i.options.zoomDelta,o=t.originalEvent.shiftKey?e-n:e+n;"center"===i.options.doubleClickZoom?i.setZoom(o):i.setZoomAround(t.containerPoint,o)}});Ki.addInitHook("addHandler","doubleClickZoom",vn),Ki.mergeOptions({dragging:!0,inertia:!st,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var yn=ie.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new ae(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))),ci(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){_i(this._map._container,"leaflet-grab"),_i(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,i=this._map;i._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=N(this._map.options.maxBounds),this._offsetLimit=O(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,i.fire("movestart").fire("dragstart"),i.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var i,e;this._map.options.inertia&&(i=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(e),this._times.push(i),this._prunePositions(i)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1<this._positions.length&&50<t-this._times[0];)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return t-(t-i)*this._viscosity},_onPreDragLimit:function(){var t,i;this._viscosity&&this._offsetLimit&&(t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit,t.x<i.min.x&&(t.x=this._viscousLimit(t.x,i.min.x)),t.y<i.min.y&&(t.y=this._viscousLimit(t.y,i.min.y)),t.x>i.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,s=(n+i+e)%t-i-e,r=Math.abs(o+e)<Math.abs(s+e)?o:s;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=r},_onDragEnd:function(t){var i,e,n,o,s,r,a,h,u,l=this._map,c=l.options,_=!c.inertia||this._times.length<2;l.fire("dragend",t),_?l.fire("moveend"):(this._prunePositions(+new Date),i=this._lastPos.subtract(this._positions[0]),e=(this._lastTime-this._times[0])/1e3,n=c.easeLinearity,s=(o=i.multiplyBy(n/e)).distanceTo([0,0]),r=Math.min(c.inertiaMaxSpeed,s),a=o.multiplyBy(r/s),h=r/(c.inertiaDeceleration*n),(u=a.multiplyBy(-h/2).round()).x||u.y?(u=l._limitOffset(u,l.options.maxBounds),M(function(){l.panBy(u,{duration:h,easeLinearity:n,noMoveStart:!0,animate:!0})})):l.fire("moveend"))}});Ki.addInitHook("addHandler","dragging",yn),Ki.mergeOptions({keyboard:!0,keyboardPanDelta:80});var xn=ie.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex="0"),zi(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),Si(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){var t,i,e,n;this._focused||(t=document.body,i=document.documentElement,e=t.scrollTop||i.scrollTop,n=t.scrollLeft||i.scrollLeft,this._map._container.focus(),window.scrollTo(n,e))},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){for(var i=this._panKeys={},e=this.keyCodes,n=0,o=e.left.length;n<o;n++)i[e.left[n]]=[-1*t,0];for(n=0,o=e.right.length;n<o;n++)i[e.right[n]]=[t,0];for(n=0,o=e.down.length;n<o;n++)i[e.down[n]]=[0,t];for(n=0,o=e.up.length;n<o;n++)i[e.up[n]]=[0,-1*t]},_setZoomDelta:function(t){for(var i=this._zoomKeys={},e=this.keyCodes,n=0,o=e.zoomIn.length;n<o;n++)i[e.zoomIn[n]]=t;for(n=0,o=e.zoomOut.length;n<o;n++)i[e.zoomOut[n]]=-t},_addHooks:function(){zi(document,"keydown",this._onKeyDown,this)},_removeHooks:function(){Si(document,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var i,e=t.keyCode,n=this._map;if(e in this._panKeys)n._panAnim&&n._panAnim._inProgress||(i=this._panKeys[e],t.shiftKey&&(i=A(i).multiplyBy(3)),n.panBy(i),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds));else if(e in this._zoomKeys)n.setZoom(n.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[e]);else{if(27!==e||!n._popup||!n._popup.options.closeOnEscapeKey)return;n.closePopup()}Ni(t)}}});Ki.addInitHook("addHandler","keyboard",xn),Ki.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60});var wn=ie.extend({addHooks:function(){zi(this._map._container,"wheel",this._onWheelScroll,this),this._delta=0},removeHooks:function(){Si(this._map._container,"wheel",this._onWheelScroll,this)},_onWheelScroll:function(t){var i=Wi(t),e=this._map.options.wheelDebounceTime;this._delta+=i,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date);var n=Math.max(e-(new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(p(this._performZoom,this),n),Ni(t)},_performZoom:function(){var t=this._map,i=t.getZoom(),e=this._map.options.zoomSnap||0;t._stop();var n=this._delta/(4*this._map.options.wheelPxPerZoomLevel),o=4*Math.log(2/(1+Math.exp(-Math.abs(n))))/Math.LN2,s=e?Math.ceil(o/e)*e:o,r=t._limitZoom(i+(0<this._delta?s:-s))-i;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(i+r):t.setZoomAround(this._lastMousePos,i+r))}});Ki.addInitHook("addHandler","scrollWheelZoom",wn),Ki.mergeOptions({tap:!0,tapTolerance:15});var Pn=ie.extend({addHooks:function(){zi(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Si(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(Ri(t),this._fireClick=!0,1<t.touches.length)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],e=i.target;this._startPos=this._newPos=new k(i.clientX,i.clientY),e.tagName&&"a"===e.tagName.toLowerCase()&&ci(e,"leaflet-active"),this._holdTimeout=setTimeout(p(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),this._simulateEvent("mousedown",i),zi(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){var i,e;clearTimeout(this._holdTimeout),Si(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches&&((e=(i=t.changedTouches[0]).target)&&e.tagName&&"a"===e.tagName.toLowerCase()&&_i(e,"leaflet-active"),this._simulateEvent("mouseup",i),this._isTapValid()&&this._simulateEvent("click",i))},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var i=t.touches[0];this._newPos=new k(i.clientX,i.clientY),this._simulateEvent("mousemove",i)},_simulateEvent:function(t,i){var e=document.createEvent("MouseEvents");e._simulated=!0,i.target._simulatedClick=!0,e.initMouseEvent(t,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(e)}});!bt||Lt&&!ct||Ki.addInitHook("addHandler","tap",Pn),Ki.mergeOptions({touchZoom:bt&&!st,bounceAtZoomLimits:!0});var Ln=ie.extend({addHooks:function(){ci(this._map._container,"leaflet-touch-zoom"),zi(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){_i(this._map._container,"leaflet-touch-zoom"),Si(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i,e,n=this._map;!t.touches||2!==t.touches.length||n._animatingZoom||this._zooming||(i=n.mouseEventToContainerPoint(t.touches[0]),e=n.mouseEventToContainerPoint(t.touches[1]),this._centerPoint=n.getSize()._divideBy(2),this._startLatLng=n.containerPointToLatLng(this._centerPoint),"center"!==n.options.touchZoom&&(this._pinchStartLatLng=n.containerPointToLatLng(i.add(e)._divideBy(2))),this._startDist=i.distanceTo(e),this._startZoom=n.getZoom(),this._moved=!1,this._zooming=!0,n._stop(),zi(document,"touchmove",this._onTouchMove,this),zi(document,"touchend",this._onTouchEnd,this),Ri(t))},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var i=this._map,e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]),o=e.distanceTo(n)/this._startDist;if(this._zoom=i.getScaleZoom(o,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoom<i.getMinZoom()&&o<1||this._zoom>i.getMaxZoom()&&1<o)&&(this._zoom=i._limitZoom(this._zoom)),"center"===i.options.touchZoom){if(this._center=this._startLatLng,1==o)return}else{var s=e._add(n)._divideBy(2)._subtract(this._centerPoint);if(1==o&&0===s.x&&0===s.y)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(s),this._zoom)}this._moved||(i._moveStart(!0,!1),this._moved=!0),z(this._animRequest);var r=p(i._move,i,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=M(r,this,!0),Ri(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,z(this._animRequest),Si(document,"touchmove",this._onTouchMove,this),Si(document,"touchend",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Ki.addInitHook("addHandler","touchZoom",Ln),Ki.BoxZoom=gn,Ki.DoubleClickZoom=vn,Ki.Drag=yn,Ki.Keyboard=xn,Ki.ScrollWheelZoom=wn,Ki.Tap=Pn,Ki.TouchZoom=Ln,t.version="1.7.1",t.Control=Xi,t.control=Yi,t.Browser=Bt,t.Evented=E,t.Mixin=ne,t.Util=C,t.Class=S,t.Handler=ie,t.extend=h,t.bind=p,t.stamp=m,t.setOptions=c,t.DomEvent=qi,t.DomUtil=Mi,t.PosAnimation=Gi,t.Draggable=ae,t.LineUtil=fe,t.PolyUtil=ye,t.Point=k,t.point=A,t.Bounds=I,t.bounds=O,t.Transformation=q,t.transformation=G,t.Projection=Pe,t.LatLng=D,t.latLng=j,t.LatLngBounds=R,t.latLngBounds=N,t.CRS=H,t.GeoJSON=Ne,t.geoJSON=Ke,t.geoJson=Ye,t.Layer=Me,t.LayerGroup=ze,t.layerGroup=function(t,i){return new ze(t,i)},t.FeatureGroup=Ce,t.featureGroup=function(t,i){return new Ce(t,i)},t.ImageOverlay=Xe,t.imageOverlay=function(t,i,e){return new Xe(t,i,e)},t.VideoOverlay=Je,t.videoOverlay=function(t,i,e){return new Je(t,i,e)},t.SVGOverlay=$e,t.svgOverlay=function(t,i,e){return new $e(t,i,e)},t.DivOverlay=Qe,t.Popup=tn,t.popup=function(t,i){return new tn(t,i)},t.Tooltip=en,t.tooltip=function(t,i){return new en(t,i)},t.Icon=Se,t.icon=function(t){return new Se(t)},t.DivIcon=nn,t.divIcon=function(t){return new nn(t)},t.Marker=ke,t.marker=function(t,i){return new ke(t,i)},t.TileLayer=sn,t.tileLayer=rn,t.GridLayer=on,t.gridLayer=function(t){return new on(t)},t.SVG=pn,t.svg=mn,t.Renderer=hn,t.Canvas=un,t.canvas=ln,t.Path=Be,t.CircleMarker=Ae,t.circleMarker=function(t,i){return new Ae(t,i)},t.Circle=Ie,t.circle=function(t,i,e){return new Ie(t,i,e)},t.Polyline=Oe,t.polyline=function(t,i){return new Oe(t,i)},t.Polygon=Re,t.polygon=function(t,i){return new Re(t,i)},t.Rectangle=fn,t.rectangle=function(t,i){return new fn(t,i)},t.Map=Ki,t.map=function(t,i){return new Ki(t,i)};var bn=window.L;t.noConflict=function(){return window.L=bn,this},window.L=t});
+//# sourceMappingURL=leaflet.js.map
\ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx.head.js b/searx/static/themes/simple/js/searx.head.js
index e6964400b..be7560451 100644
--- a/searx/static/themes/simple/js/searx.head.js
+++ b/searx/static/themes/simple/js/searx.head.js
@@ -33,7 +33,7 @@
         infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true',
         static_path: script.getAttribute('data-static-path'),
         translations: JSON.parse(script.getAttribute('data-translations')),
-    }
+    };
 
     // update the css
     d.getElementsByTagName("html")[0].className = (w.searx.touch)?"js touch":"js";
diff --git a/searx/static/themes/simple/js/searx.head.min.js b/searx/static/themes/simple/js/searx.head.min.js
index 9c74c87a4..070d1c3ab 100644
--- a/searx/static/themes/simple/js/searx.head.min.js
+++ b/searx/static/themes/simple/js/searx.head.min.js
@@ -1,4 +1,4 @@
-/*! simple/searx.min.js | 09-06-2021 | https://github.com/searxng/searxng */
+/*! simple/searx.min.js | 16-06-2021 | https://github.com/searxng/searxng */
 
 (function(t,e){"use strict";var a=e.currentScript||function(){var t=e.getElementsByTagName("script");return t[t.length-1]}();t.searx={touch:"ontouchstart"in t||t.DocumentTouch&&document instanceof DocumentTouch||false,method:a.getAttribute("data-method"),autocompleter:a.getAttribute("data-autocompleter")==="true",search_on_category_select:a.getAttribute("data-search-on-category-select")==="true",infinite_scroll:a.getAttribute("data-infinite-scroll")==="true",static_path:a.getAttribute("data-static-path"),translations:JSON.parse(a.getAttribute("data-translations"))};e.getElementsByTagName("html")[0].className=t.searx.touch?"js touch":"js"})(window,document);
 //# sourceMappingURL=searx.head.min.js.map
\ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx.head.min.js.map b/searx/static/themes/simple/js/searx.head.min.js.map
index a233d297b..7a4dc8ca4 100644
--- a/searx/static/themes/simple/js/searx.head.min.js.map
+++ b/searx/static/themes/simple/js/searx.head.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["searx.head.js"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searx","touch","DocumentTouch","document","method","getAttribute","autocompleter","search_on_category_select","infinite_scroll","static_path","translations","JSON","parse","className","window"],"mappings":";;CAiBA,SAAUA,EAAGC,GACT,aAGA,IAAIC,EAASD,EAAEE,eAAkB,WAC7B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFH,GAMjCN,EAAEO,MAAQ,CACNC,MAAS,iBAAkBR,GAAMA,EAAES,eAAiBC,oBAAoBD,eAAkB,MAC1FE,OAAQT,EAAOU,aAAa,eAC5BC,cAAeX,EAAOU,aAAa,wBAA0B,OAC7DE,0BAA2BZ,EAAOU,aAAa,oCAAsC,OACrFG,gBAAiBb,EAAOU,aAAa,0BAA4B,OACjEI,YAAad,EAAOU,aAAa,oBACjCK,aAAcC,KAAKC,MAAMjB,EAAOU,aAAa,uBAIjDX,EAAEI,qBAAqB,QAAQ,GAAGe,UAAapB,EAAEO,MAAW,MAAE,WAAW,MArB7E,CAsBGc,OAAQX","file":"searx.head.min.js"}
\ No newline at end of file
+{"version":3,"file":"searx.head.min.js","sources":["searx.head.js"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searx","touch","DocumentTouch","document","method","getAttribute","autocompleter","search_on_category_select","infinite_scroll","static_path","translations","JSON","parse","className","window"],"mappings":";;CAiBA,SAAUA,EAAGC,gBAIT,IAAIC,EAASD,EAAEE,eAAkB,WAC7B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFH,GAMjCN,EAAEO,MAAQ,CACNC,MAAS,iBAAkBR,GAAMA,EAAES,eAAiBC,oBAAoBD,eAAkB,MAC1FE,OAAQT,EAAOU,aAAa,eAC5BC,cAAeX,EAAOU,aAAa,wBAA0B,OAC7DE,0BAA2BZ,EAAOU,aAAa,oCAAsC,OACrFG,gBAAiBb,EAAOU,aAAa,0BAA4B,OACjEI,YAAad,EAAOU,aAAa,oBACjCK,aAAcC,KAAKC,MAAMjB,EAAOU,aAAa,uBAIjDX,EAAEI,qBAAqB,QAAQ,GAAGe,UAAapB,EAAEO,MAAW,MAAE,WAAW,MArB7E,CAsBGc,OAAQX"}
\ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx.js b/searx/static/themes/simple/js/searx.js
index 92c99340c..5ded864cb 100644
--- a/searx/static/themes/simple/js/searx.js
+++ b/searx/static/themes/simple/js/searx.js
@@ -162,542 +162,6 @@ window.searx = (function(w, d) {
   
   return searx;
 })(window, document);
-;(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-/*
- * @license MIT
- *
- * Autocomplete.js v2.6.3
- * Developed by Baptiste Donaux
- * http://autocomplete-js.com
- *
- * (c) 2017, Baptiste Donaux
- */
-"use strict";
-var ConditionOperator;
-(function (ConditionOperator) {
-    ConditionOperator[ConditionOperator["AND"] = 0] = "AND";
-    ConditionOperator[ConditionOperator["OR"] = 1] = "OR";
-})(ConditionOperator || (ConditionOperator = {}));
-var EventType;
-(function (EventType) {
-    EventType[EventType["KEYDOWN"] = 0] = "KEYDOWN";
-    EventType[EventType["KEYUP"] = 1] = "KEYUP";
-})(EventType || (EventType = {}));
-/**
- * Core
- *
- * @class
- * @author Baptiste Donaux <baptiste.donaux@gmail.com> @baptistedonaux
- */
-var AutoComplete = (function () {
-    // Constructor
-    function AutoComplete(params, selector) {
-        if (params === void 0) { params = {}; }
-        if (selector === void 0) { selector = "[data-autocomplete]"; }
-        if (Array.isArray(selector)) {
-            selector.forEach(function (s) {
-                new AutoComplete(params, s);
-            });
-        }
-        else if (typeof selector == "string") {
-            var elements = document.querySelectorAll(selector);
-            Array.prototype.forEach.call(elements, function (input) {
-                new AutoComplete(params, input);
-            });
-        }
-        else {
-            var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {
-                DOMResults: document.createElement("div")
-            });
-            AutoComplete.prototype.create(specificParams, selector);
-            return specificParams;
-        }
-    }
-    AutoComplete.prototype.create = function (params, element) {
-        params.Input = element;
-        if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute("type") === false || params.Input.getAttribute("type").match(/^TEXT|SEARCH$/i))) {
-            params.Input.setAttribute("autocomplete", "off");
-            params._Position(params);
-            params.Input.parentNode.appendChild(params.DOMResults);
-            params.$Listeners = {
-                blur: params._Blur.bind(params),
-                destroy: AutoComplete.prototype.destroy.bind(null, params),
-                focus: params._Focus.bind(params),
-                keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),
-                keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),
-                position: params._Position.bind(params)
-            };
-            for (var event in params.$Listeners) {
-                params.Input.addEventListener(event, params.$Listeners[event]);
-            }
-        }
-    };
-    AutoComplete.prototype.getEventsByType = function (params, type) {
-        var mappings = {};
-        for (var key in params.KeyboardMappings) {
-            var event = EventType.KEYUP;
-            if (params.KeyboardMappings[key].Event !== undefined) {
-                event = params.KeyboardMappings[key].Event;
-            }
-            if (event == type) {
-                mappings[key] = params.KeyboardMappings[key];
-            }
-        }
-        return mappings;
-    };
-    AutoComplete.prototype.event = function (params, type, event) {
-        var eventIdentifier = function (condition) {
-            if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {
-                condition = AutoComplete.merge({
-                    Not: false
-                }, condition);
-                if (condition.hasOwnProperty("Is")) {
-                    if (condition.Is == event.keyCode) {
-                        match = !condition.Not;
-                    }
-                    else {
-                        match = condition.Not;
-                    }
-                }
-                else if (condition.hasOwnProperty("From") && condition.hasOwnProperty("To")) {
-                    if (event.keyCode >= condition.From && event.keyCode <= condition.To) {
-                        match = !condition.Not;
-                    }
-                    else {
-                        match = condition.Not;
-                    }
-                }
-            }
-        };
-        for (var name in AutoComplete.prototype.getEventsByType(params, type)) {
-            var mapping = AutoComplete.merge({
-                Operator: ConditionOperator.AND
-            }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;
-            mapping.Conditions.forEach(eventIdentifier);
-            if (match === true) {
-                mapping.Callback.call(params, event);
-            }
-        }
-    };
-    AutoComplete.prototype.makeRequest = function (params, callback) {
-        var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + "=" + encodeURIComponent(queryParams);
-        if (method.match(/^GET$/i)) {
-            if (url.indexOf("?") !== -1) {
-                url += "&" + queryParamsStringify;
-            }
-            else {
-                url += "?" + queryParamsStringify;
-            }
-        }
-        request.open(method, url, true);
-        for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {
-            request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);
-        }
-        request.onreadystatechange = function () {
-            if (request.readyState == 4 && request.status == 200) {
-                params.$Cache[queryParams] = request.response;
-                callback(request.response);
-            }
-        };
-        return request;
-    };
-    AutoComplete.prototype.ajax = function (params, request, timeout) {
-        if (timeout === void 0) { timeout = true; }
-        if (params.$AjaxTimer) {
-            window.clearTimeout(params.$AjaxTimer);
-        }
-        if (timeout === true) {
-            params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);
-        }
-        else {
-            if (params.Request) {
-                params.Request.abort();
-            }
-            params.Request = request;
-            params.Request.send(params._QueryArg() + "=" + params._Pre());
-        }
-    };
-    AutoComplete.prototype.cache = function (params, callback) {
-        var response = params._Cache(params._Pre());
-        if (response === undefined) {
-            var request = AutoComplete.prototype.makeRequest(params, callback);
-            AutoComplete.prototype.ajax(params, request);
-        }
-        else {
-            callback(response);
-        }
-    };
-    AutoComplete.prototype.destroy = function (params) {
-        for (var event in params.$Listeners) {
-            params.Input.removeEventListener(event, params.$Listeners[event]);
-        }
-        params.DOMResults.parentNode.removeChild(params.DOMResults);
-    };
-    return AutoComplete;
-}());
-AutoComplete.merge = function () {
-    var merge = {}, tmp;
-    for (var i = 0; i < arguments.length; i++) {
-        for (tmp in arguments[i]) {
-            merge[tmp] = arguments[i][tmp];
-        }
-    }
-    return merge;
-};
-AutoComplete.defaults = {
-    Delay: 150,
-    EmptyMessage: "No result here",
-    Highlight: {
-        getRegex: function (value) {
-            return new RegExp(value, "ig");
-        },
-        transform: function (value) {
-            return "<strong>" + value + "</strong>";
-        }
-    },
-    HttpHeaders: {
-        "Content-type": "application/x-www-form-urlencoded"
-    },
-    Limit: 0,
-    MinChars: 0,
-    HttpMethod: "GET",
-    QueryArg: "q",
-    Url: null,
-    KeyboardMappings: {
-        "Enter": {
-            Conditions: [{
-                    Is: 13,
-                    Not: false
-                }],
-            Callback: function (event) {
-                if (this.DOMResults.getAttribute("class").indexOf("open") != -1) {
-                    var liActive = this.DOMResults.querySelector("li.active");
-                    if (liActive !== null) {
-                        event.preventDefault();
-                        this._Select(liActive);
-                        this.DOMResults.setAttribute("class", "autocomplete");
-                    }
-                }
-            },
-            Operator: ConditionOperator.AND,
-            Event: EventType.KEYDOWN
-        },
-        "KeyUpAndDown_down": {
-            Conditions: [{
-                    Is: 38,
-                    Not: false
-                },
-                {
-                    Is: 40,
-                    Not: false
-                }],
-            Callback: function (event) {
-                event.preventDefault();
-            },
-            Operator: ConditionOperator.OR,
-            Event: EventType.KEYDOWN
-        },
-        "KeyUpAndDown_up": {
-            Conditions: [{
-                    Is: 38,
-                    Not: false
-                },
-                {
-                    Is: 40,
-                    Not: false
-                }],
-            Callback: function (event) {
-                event.preventDefault();
-                var first = this.DOMResults.querySelector("li:first-child:not(.locked)"), last = this.DOMResults.querySelector("li:last-child:not(.locked)"), active = this.DOMResults.querySelector("li.active");
-                if (active) {
-                    var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName("li").length;
-                    if (position < 0) {
-                        position = lisCount - 1;
-                    }
-                    else if (position >= lisCount) {
-                        position = 0;
-                    }
-                    active.classList.remove("active");
-                    active.parentElement.children.item(position).classList.add("active");
-                }
-                else if (last && event.keyCode == 38) {
-                    last.classList.add("active");
-                }
-                else if (first) {
-                    first.classList.add("active");
-                }
-            },
-            Operator: ConditionOperator.OR,
-            Event: EventType.KEYUP
-        },
-        "AlphaNum": {
-            Conditions: [{
-                    Is: 13,
-                    Not: true
-                }, {
-                    From: 35,
-                    To: 40,
-                    Not: true
-                }],
-            Callback: function () {
-                var oldValue = this.Input.getAttribute("data-autocomplete-old-value"), currentValue = this._Pre();
-                if (currentValue !== "" && currentValue.length >= this._MinChars()) {
-                    if (!oldValue || currentValue != oldValue) {
-                        this.DOMResults.setAttribute("class", "autocomplete open");
-                    }
-                    AutoComplete.prototype.cache(this, function (response) {
-                        this._Render(this._Post(response));
-                        this._Open();
-                    }.bind(this));
-                }
-            },
-            Operator: ConditionOperator.AND,
-            Event: EventType.KEYUP
-        }
-    },
-    DOMResults: null,
-    Request: null,
-    Input: null,
-    /**
-     * Return the message when no result returns
-     */
-    _EmptyMessage: function () {
-        var emptyMessage = "";
-        if (this.Input.hasAttribute("data-autocomplete-empty-message")) {
-            emptyMessage = this.Input.getAttribute("data-autocomplete-empty-message");
-        }
-        else if (this.EmptyMessage !== false) {
-            emptyMessage = this.EmptyMessage;
-        }
-        else {
-            emptyMessage = "";
-        }
-        return emptyMessage;
-    },
-    /**
-     * Returns the maximum number of results
-     */
-    _Limit: function () {
-        var limit = this.Input.getAttribute("data-autocomplete-limit");
-        if (isNaN(limit) || limit === null) {
-            return this.Limit;
-        }
-        return parseInt(limit, 10);
-    },
-    /**
-     * Returns the minimum number of characters entered before firing ajax
-     */
-    _MinChars: function () {
-        var minchars = this.Input.getAttribute("data-autocomplete-minchars");
-        if (isNaN(minchars) || minchars === null) {
-            return this.MinChars;
-        }
-        return parseInt(minchars, 10);
-    },
-    /**
-     * Apply transformation on labels response
-     */
-    _Highlight: function (label) {
-        return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);
-    },
-    /**
-     * Returns the HHTP method to use
-     */
-    _HttpMethod: function () {
-        if (this.Input.hasAttribute("data-autocomplete-method")) {
-            return this.Input.getAttribute("data-autocomplete-method");
-        }
-        return this.HttpMethod;
-    },
-    /**
-     * Returns the query param to use
-     */
-    _QueryArg: function () {
-        if (this.Input.hasAttribute("data-autocomplete-param-name")) {
-            return this.Input.getAttribute("data-autocomplete-param-name");
-        }
-        return this.QueryArg;
-    },
-    /**
-     * Returns the URL to use for AJAX request
-     */
-    _Url: function () {
-        if (this.Input.hasAttribute("data-autocomplete")) {
-            return this.Input.getAttribute("data-autocomplete");
-        }
-        return this.Url;
-    },
-    /**
-     * Manage the close
-     */
-    _Blur: function (now) {
-        if (now === true) {
-            this.DOMResults.setAttribute("class", "autocomplete");
-            this.Input.setAttribute("data-autocomplete-old-value", this.Input.value);
-        }
-        else {
-            var params = this;
-            setTimeout(function () {
-                params._Blur(true);
-            }, 150);
-        }
-    },
-    /**
-     * Manage the cache
-     */
-    _Cache: function (value) {
-        return this.$Cache[value];
-    },
-    /**
-     * Manage the open
-     */
-    _Focus: function () {
-        var oldValue = this.Input.getAttribute("data-autocomplete-old-value");
-        if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {
-            this.DOMResults.setAttribute("class", "autocomplete open");
-        }
-    },
-    /**
-     * Bind all results item if one result is opened
-     */
-    _Open: function () {
-        var params = this;
-        Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"), function (li) {
-            if (li.getAttribute("class") != "locked") {
-		            li.onclick = function (event) {
-                    params._Select(li);
-                };
-                li.onmouseenter = function () {
-                    var active = params.DOMResults.querySelector("li.active");
-                    if (active !== li) {
-                        if (active !== null) {
-                            active.classList.remove("active");
-                        }
-                        li.classList.add("active");
-                    }
-                };
-            }
-        });
-    },
-    /**
-     * Position the results HTML element
-     */
-    _Position: function () {
-        this.DOMResults.setAttribute("class", "autocomplete");
-        this.DOMResults.setAttribute("style", "top:" + (this.Input.offsetTop + this.Input.offsetHeight) + "px;left:" + this.Input.offsetLeft + "px;width:" + this.Input.clientWidth + "px;");
-    },
-    /**
-     * Execute the render of results DOM element
-     */
-    _Render: function (response) {
-        var ul;
-        if (typeof response == "string") {
-            ul = this._RenderRaw(response);
-        }
-        else {
-            ul = this._RenderResponseItems(response);
-        }
-        if (this.DOMResults.hasChildNodes()) {
-            this.DOMResults.removeChild(this.DOMResults.childNodes[0]);
-        }
-        this.DOMResults.appendChild(ul);
-    },
-    /**
-     * ResponseItems[] rendering
-     */
-    _RenderResponseItems: function (response) {
-        var ul = document.createElement("ul"), li = document.createElement("li"), limit = this._Limit();
-        // Order
-        if (limit < 0) {
-            response = response.reverse();
-        }
-        else if (limit === 0) {
-            limit = response.length;
-        }
-        for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {
-            li.innerHTML = response[item].Label;
-            li.setAttribute("data-autocomplete-value", response[item].Value);
-            ul.appendChild(li);
-            li = document.createElement("li");
-        }
-        return ul;
-    },
-    /**
-     * string response rendering (RAW HTML)
-     */
-    _RenderRaw: function (response) {
-        var ul = document.createElement("ul"), li = document.createElement("li");
-        if (response.length > 0) {
-            this.DOMResults.innerHTML = response;
-        }
-        else {
-            var emptyMessage = this._EmptyMessage();
-            if (emptyMessage !== "") {
-                li.innerHTML = emptyMessage;
-                li.setAttribute("class", "locked");
-                ul.appendChild(li);
-            }
-        }
-        return ul;
-    },
-    /**
-     * Deal with request response
-     */
-    _Post: function (response) {
-        try {
-            var returnResponse = [];
-            //JSON return
-            var json = JSON.parse(response);
-            if (Object.keys(json).length === 0) {
-                return "";
-            }
-            if (Array.isArray(json)) {
-                for (var i = 0; i < Object.keys(json).length; i++) {
-                    returnResponse[returnResponse.length] = { "Value": json[i], "Label": this._Highlight(json[i]) };
-                }
-            }
-            else {
-                for (var value in json) {
-                    returnResponse.push({
-                        "Value": value,
-                        "Label": this._Highlight(json[value])
-                    });
-                }
-            }
-            return returnResponse;
-        }
-        catch (event) {
-            //HTML return
-            return response;
-        }
-    },
-    /**
-     * Return the autocomplete value to send (before request)
-     */
-    _Pre: function () {
-        return this.Input.value;
-    },
-    /**
-     * Choice one result item
-     */
-    _Select: function (item) {
-	console.log('test test test');
-        if (item.hasAttribute("data-autocomplete-value")) {
-            this.Input.value = item.getAttribute("data-autocomplete-value");
-        }
-        else {
-            this.Input.value = item.innerHTML;
-        }
-        this.Input.setAttribute("data-autocomplete-old-value", this.Input.value);
-    },
-    $AjaxTimer: null,
-    $Cache: {},
-    $Listeners: {}
-};
-module.exports = AutoComplete;
-
-},{}]},{},[1])(1)
-});
 ;searx.ready(function() {
 
   searx.on('.result', 'click', function() {
@@ -1097,8 +561,8 @@ module.exports = AutoComplete;
       var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);
       var map_geojson = JSON.parse(this.dataset.mapGeojson);
 
-      searx.loadStyle('leaflet/leaflet.css');
-      searx.loadScript('leaflet/leaflet.js', function() {
+      searx.loadStyle('css/leaflet.css');
+      searx.loadScript('js/leaflet.js', function() {
         var map_bounds = null;
         if(map_boundingbox) {
           var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);
@@ -1500,3 +964,543 @@ module.exports = AutoComplete;
   w.searx.ImageLayout = ImageLayout;
 
 }(window, document));
+;(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
+/*
+ * @license MIT
+ *
+ * Autocomplete.js v2.7.1
+ * Developed by Baptiste Donaux
+ * http://autocomplete-js.com
+ *
+ * (c) 2017, Baptiste Donaux
+ */
+"use strict";
+var ConditionOperator;
+(function (ConditionOperator) {
+    ConditionOperator[ConditionOperator["AND"] = 0] = "AND";
+    ConditionOperator[ConditionOperator["OR"] = 1] = "OR";
+})(ConditionOperator || (ConditionOperator = {}));
+var EventType;
+(function (EventType) {
+    EventType[EventType["KEYDOWN"] = 0] = "KEYDOWN";
+    EventType[EventType["KEYUP"] = 1] = "KEYUP";
+})(EventType || (EventType = {}));
+/**
+ * Core
+ *
+ * @class
+ * @author Baptiste Donaux <baptiste.donaux@gmail.com> @baptistedonaux
+ */
+var AutoComplete = /** @class */ (function () {
+    // Constructor
+    function AutoComplete(params, selector) {
+        if (params === void 0) { params = {}; }
+        if (selector === void 0) { selector = "[data-autocomplete]"; }
+        if (Array.isArray(selector)) {
+            selector.forEach(function (s) {
+                new AutoComplete(params, s);
+            });
+        }
+        else if (typeof selector == "string") {
+            var elements = document.querySelectorAll(selector);
+            Array.prototype.forEach.call(elements, function (input) {
+                new AutoComplete(params, input);
+            });
+        }
+        else {
+            var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {
+                DOMResults: document.createElement("div")
+            });
+            AutoComplete.prototype.create(specificParams, selector);
+            return specificParams;
+        }
+    }
+    AutoComplete.prototype.create = function (params, element) {
+        params.Input = element;
+        if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute("type") === false || params.Input.getAttribute("type").match(/^TEXT|SEARCH$/i))) {
+            params.Input.setAttribute("autocomplete", "off");
+            params._Position(params);
+            params.Input.parentNode.appendChild(params.DOMResults);
+            params.$Listeners = {
+                blur: params._Blur.bind(params),
+                destroy: AutoComplete.prototype.destroy.bind(null, params),
+                focus: params._Focus.bind(params),
+                keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),
+                keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),
+                position: params._Position.bind(params)
+            };
+            for (var event in params.$Listeners) {
+                params.Input.addEventListener(event, params.$Listeners[event]);
+            }
+        }
+    };
+    AutoComplete.prototype.getEventsByType = function (params, type) {
+        var mappings = {};
+        for (var key in params.KeyboardMappings) {
+            var event = EventType.KEYUP;
+            if (params.KeyboardMappings[key].Event !== undefined) {
+                event = params.KeyboardMappings[key].Event;
+            }
+            if (event == type) {
+                mappings[key] = params.KeyboardMappings[key];
+            }
+        }
+        return mappings;
+    };
+    AutoComplete.prototype.event = function (params, type, event) {
+        var eventIdentifier = function (condition) {
+            if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {
+                condition = AutoComplete.merge({
+                    Not: false
+                }, condition);
+                if (condition.hasOwnProperty("Is")) {
+                    if (condition.Is == event.keyCode) {
+                        match = !condition.Not;
+                    }
+                    else {
+                        match = condition.Not;
+                    }
+                }
+                else if (condition.hasOwnProperty("From") && condition.hasOwnProperty("To")) {
+                    if (event.keyCode >= condition.From && event.keyCode <= condition.To) {
+                        match = !condition.Not;
+                    }
+                    else {
+                        match = condition.Not;
+                    }
+                }
+            }
+        };
+        for (var name in AutoComplete.prototype.getEventsByType(params, type)) {
+            var mapping = AutoComplete.merge({
+                Operator: ConditionOperator.AND
+            }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;
+            mapping.Conditions.forEach(eventIdentifier);
+            if (match === true) {
+                mapping.Callback.call(params, event);
+            }
+        }
+    };
+    AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {
+        var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + "=" + encodeURIComponent(queryParams);
+        if (method.match(/^GET$/i)) {
+            if (url.indexOf("?") !== -1) {
+                url += "&" + queryParamsStringify;
+            }
+            else {
+                url += "?" + queryParamsStringify;
+            }
+        }
+        request.open(method, url, true);
+        for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {
+            request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);
+        }
+        request.onreadystatechange = function () {
+            if (request.readyState == 4 && request.status == 200) {
+                params.$Cache[queryParams] = request.response;
+                callback(request.response);
+            }
+            else if (request.status >= 400) {
+                callbackErr();
+            }
+        };
+        return request;
+    };
+    AutoComplete.prototype.ajax = function (params, request, timeout) {
+        if (timeout === void 0) { timeout = true; }
+        if (params.$AjaxTimer) {
+            window.clearTimeout(params.$AjaxTimer);
+        }
+        if (timeout === true) {
+            params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);
+        }
+        else {
+            if (params.Request) {
+                params.Request.abort();
+            }
+            params.Request = request;
+            params.Request.send(params._QueryArg() + "=" + params._Pre());
+        }
+    };
+    AutoComplete.prototype.cache = function (params, callback, callbackErr) {
+        var response = params._Cache(params._Pre());
+        if (response === undefined) {
+            var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);
+            AutoComplete.prototype.ajax(params, request);
+        }
+        else {
+            callback(response);
+        }
+    };
+    AutoComplete.prototype.destroy = function (params) {
+        for (var event in params.$Listeners) {
+            params.Input.removeEventListener(event, params.$Listeners[event]);
+        }
+        params.DOMResults.parentNode.removeChild(params.DOMResults);
+    };
+    AutoComplete.merge = function () {
+        var merge = {}, tmp;
+        for (var i = 0; i < arguments.length; i++) {
+            for (tmp in arguments[i]) {
+                merge[tmp] = arguments[i][tmp];
+            }
+        }
+        return merge;
+    };
+    AutoComplete.defaults = {
+        Delay: 150,
+        EmptyMessage: "No result here",
+        Highlight: {
+            getRegex: function (value) {
+                return new RegExp(value, "ig");
+            },
+            transform: function (value) {
+                return "<strong>" + value + "</strong>";
+            }
+        },
+        HttpHeaders: {
+            "Content-type": "application/x-www-form-urlencoded"
+        },
+        Limit: 0,
+        MinChars: 0,
+        HttpMethod: "GET",
+        QueryArg: "q",
+        Url: null,
+        KeyboardMappings: {
+            "Enter": {
+                Conditions: [{
+                        Is: 13,
+                        Not: false
+                    }],
+                Callback: function (event) {
+                    if (this.DOMResults.getAttribute("class").indexOf("open") != -1) {
+                        var liActive = this.DOMResults.querySelector("li.active");
+                        if (liActive !== null) {
+                            event.preventDefault();
+                            this._Select(liActive);
+                            this.DOMResults.setAttribute("class", "autocomplete");
+                        }
+                    }
+                },
+                Operator: ConditionOperator.AND,
+                Event: EventType.KEYDOWN
+            },
+            "KeyUpAndDown_down": {
+                Conditions: [{
+                        Is: 38,
+                        Not: false
+                    },
+                    {
+                        Is: 40,
+                        Not: false
+                    }],
+                Callback: function (event) {
+                    event.preventDefault();
+                },
+                Operator: ConditionOperator.OR,
+                Event: EventType.KEYDOWN
+            },
+            "KeyUpAndDown_up": {
+                Conditions: [{
+                        Is: 38,
+                        Not: false
+                    },
+                    {
+                        Is: 40,
+                        Not: false
+                    }],
+                Callback: function (event) {
+                    event.preventDefault();
+                    var first = this.DOMResults.querySelector("li:first-child:not(.locked)"), last = this.DOMResults.querySelector("li:last-child:not(.locked)"), active = this.DOMResults.querySelector("li.active");
+                    if (active) {
+                        var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName("li").length;
+                        if (position < 0) {
+                            position = lisCount - 1;
+                        }
+                        else if (position >= lisCount) {
+                            position = 0;
+                        }
+                        active.classList.remove("active");
+                        active.parentElement.children.item(position).classList.add("active");
+                    }
+                    else if (last && event.keyCode == 38) {
+                        last.classList.add("active");
+                    }
+                    else if (first) {
+                        first.classList.add("active");
+                    }
+                },
+                Operator: ConditionOperator.OR,
+                Event: EventType.KEYUP
+            },
+            "AlphaNum": {
+                Conditions: [{
+                        Is: 13,
+                        Not: true
+                    }, {
+                        From: 35,
+                        To: 40,
+                        Not: true
+                    }],
+                Callback: function () {
+                    var oldValue = this.Input.getAttribute("data-autocomplete-old-value"), currentValue = this._Pre();
+                    if (currentValue !== "" && currentValue.length >= this._MinChars()) {
+                        if (!oldValue || currentValue != oldValue) {
+                            this.DOMResults.setAttribute("class", "autocomplete open");
+                        }
+                        AutoComplete.prototype.cache(this, function (response) {
+                            this._Render(this._Post(response));
+                            this._Open();
+                        }.bind(this), this._Error);
+                    }
+                    else {
+                        this._Close();
+                    }
+                },
+                Operator: ConditionOperator.AND,
+                Event: EventType.KEYUP
+            }
+        },
+        DOMResults: null,
+        Request: null,
+        Input: null,
+        /**
+         * Return the message when no result returns
+         */
+        _EmptyMessage: function () {
+            var emptyMessage = "";
+            if (this.Input.hasAttribute("data-autocomplete-empty-message")) {
+                emptyMessage = this.Input.getAttribute("data-autocomplete-empty-message");
+            }
+            else if (this.EmptyMessage !== false) {
+                emptyMessage = this.EmptyMessage;
+            }
+            else {
+                emptyMessage = "";
+            }
+            return emptyMessage;
+        },
+        /**
+         * Returns the maximum number of results
+         */
+        _Limit: function () {
+            var limit = this.Input.getAttribute("data-autocomplete-limit");
+            if (isNaN(limit) || limit === null) {
+                return this.Limit;
+            }
+            return parseInt(limit, 10);
+        },
+        /**
+         * Returns the minimum number of characters entered before firing ajax
+         */
+        _MinChars: function () {
+            var minchars = this.Input.getAttribute("data-autocomplete-minchars");
+            if (isNaN(minchars) || minchars === null) {
+                return this.MinChars;
+            }
+            return parseInt(minchars, 10);
+        },
+        /**
+         * Apply transformation on labels response
+         */
+        _Highlight: function (label) {
+            return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);
+        },
+        /**
+         * Returns the HHTP method to use
+         */
+        _HttpMethod: function () {
+            if (this.Input.hasAttribute("data-autocomplete-method")) {
+                return this.Input.getAttribute("data-autocomplete-method");
+            }
+            return this.HttpMethod;
+        },
+        /**
+         * Returns the query param to use
+         */
+        _QueryArg: function () {
+            if (this.Input.hasAttribute("data-autocomplete-param-name")) {
+                return this.Input.getAttribute("data-autocomplete-param-name");
+            }
+            return this.QueryArg;
+        },
+        /**
+         * Returns the URL to use for AJAX request
+         */
+        _Url: function () {
+            if (this.Input.hasAttribute("data-autocomplete")) {
+                return this.Input.getAttribute("data-autocomplete");
+            }
+            return this.Url;
+        },
+        /**
+         * Manage the close
+         */
+        _Blur: function (now) {
+            if (now === void 0) { now = false; }
+            if (now) {
+                this._Close();
+            }
+            else {
+                var params = this;
+                setTimeout(function () {
+                    params._Blur(true);
+                }, 150);
+            }
+        },
+        /**
+         * Manage the cache
+         */
+        _Cache: function (value) {
+            return this.$Cache[value];
+        },
+        /**
+         * Manage the open
+         */
+        _Focus: function () {
+            var oldValue = this.Input.getAttribute("data-autocomplete-old-value");
+            if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {
+                this.DOMResults.setAttribute("class", "autocomplete open");
+            }
+        },
+        /**
+         * Bind all results item if one result is opened
+         */
+        _Open: function () {
+            var params = this;
+            Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"), function (li) {
+                if (li.getAttribute("class") != "locked") {
+                    li.onclick = function () {
+                        params._Select(li);
+                    };
+                }
+            });
+        },
+        _Close: function () {
+            this.DOMResults.setAttribute("class", "autocomplete");
+        },
+        /**
+         * Position the results HTML element
+         */
+        _Position: function () {
+            this.DOMResults.setAttribute("class", "autocomplete");
+            this.DOMResults.setAttribute("style", "top:" + (this.Input.offsetTop + this.Input.offsetHeight) + "px;left:" + this.Input.offsetLeft + "px;width:" + this.Input.clientWidth + "px;");
+        },
+        /**
+         * Execute the render of results DOM element
+         */
+        _Render: function (response) {
+            var ul;
+            if (typeof response == "string") {
+                ul = this._RenderRaw(response);
+            }
+            else {
+                ul = this._RenderResponseItems(response);
+            }
+            if (this.DOMResults.hasChildNodes()) {
+                this.DOMResults.removeChild(this.DOMResults.childNodes[0]);
+            }
+            this.DOMResults.appendChild(ul);
+        },
+        /**
+         * ResponseItems[] rendering
+         */
+        _RenderResponseItems: function (response) {
+            var ul = document.createElement("ul"), li = document.createElement("li"), limit = this._Limit();
+            // Order
+            if (limit < 0) {
+                response = response.reverse();
+            }
+            else if (limit === 0) {
+                limit = response.length;
+            }
+            for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {
+                li.innerHTML = response[item].Label;
+                li.setAttribute("data-autocomplete-value", response[item].Value);
+                ul.appendChild(li);
+                li = document.createElement("li");
+            }
+            return ul;
+        },
+        /**
+         * string response rendering (RAW HTML)
+         */
+        _RenderRaw: function (response) {
+            var ul = document.createElement("ul"), li = document.createElement("li");
+            if (response.length > 0) {
+                this.DOMResults.innerHTML = response;
+            }
+            else {
+                var emptyMessage = this._EmptyMessage();
+                if (emptyMessage !== "") {
+                    li.innerHTML = emptyMessage;
+                    li.setAttribute("class", "locked");
+                    ul.appendChild(li);
+                }
+            }
+            return ul;
+        },
+        /**
+         * Deal with request response
+         */
+        _Post: function (response) {
+            try {
+                var returnResponse = [];
+                //JSON return
+                var json = JSON.parse(response);
+                if (Object.keys(json).length === 0) {
+                    return "";
+                }
+                if (Array.isArray(json)) {
+                    for (var i = 0; i < Object.keys(json).length; i++) {
+                        returnResponse[returnResponse.length] = { "Value": json[i], "Label": this._Highlight(json[i]) };
+                    }
+                }
+                else {
+                    for (var value in json) {
+                        returnResponse.push({
+                            "Value": value,
+                            "Label": this._Highlight(json[value])
+                        });
+                    }
+                }
+                return returnResponse;
+            }
+            catch (event) {
+                //HTML return
+                return response;
+            }
+        },
+        /**
+         * Return the autocomplete value to send (before request)
+         */
+        _Pre: function () {
+            return this.Input.value;
+        },
+        /**
+         * Choice one result item
+         */
+        _Select: function (item) {
+            if (item.hasAttribute("data-autocomplete-value")) {
+                this.Input.value = item.getAttribute("data-autocomplete-value");
+            }
+            else {
+                this.Input.value = item.innerHTML;
+            }
+            this.Input.setAttribute("data-autocomplete-old-value", this.Input.value);
+        },
+        /**
+         * Handle HTTP error on the request
+         */
+        _Error: function () {
+        },
+        $AjaxTimer: null,
+        $Cache: {},
+        $Listeners: {}
+    };
+    return AutoComplete;
+}());
+module.exports = AutoComplete;
+
+},{}]},{},[1])(1)
+});
diff --git a/searx/static/themes/simple/js/searx.min.js b/searx/static/themes/simple/js/searx.min.js
index ce21068dc..b3057c324 100644
--- a/searx/static/themes/simple/js/searx.min.js
+++ b/searx/static/themes/simple/js/searx.min.js
@@ -1,16 +1,6 @@
-/*! simple/searx.min.js | 09-06-2021 | https://github.com/searxng/searxng */
+/*! simple/searx.min.js | 16-06-2021 | https://github.com/searxng/searxng */
 
-window.searx=function(t,o){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),i=-1;while(n[++i]&&n[i]!=t);return!!n[i]}})(Element.prototype)}function a(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var s=window.searx||{};s.on=function(i,e,r,t){t=t||false;if(typeof i!=="string"){i.addEventListener(e,r,t)}else{o.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==o&&!(n=t.matches(i)))t=t.parentElement;if(n)a(r,t,e)},t)}};s.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};s.http=function(e,t,n){var i=new XMLHttpRequest,r=function(){},o=function(){},a={then:function(e){r=e;return a},catch:function(e){o=e;return a}};try{i.open(e,t,true);i.onload=function(){if(i.status==200){r(i.response,i.responseType)}else{o(Error(i.statusText))}};i.onerror=function(){o(Error("Network Error"))};i.onabort=function(){o(Error("Transaction is aborted"))};i.send()}catch(e){o(e)}return a};s.loadStyle=function(e){var t=s.static_path+e,n="style_"+e.replace(".","_"),i=o.getElementById(n);if(i===null){i=o.createElement("link");i.setAttribute("id",n);i.setAttribute("rel","stylesheet");i.setAttribute("type","text/css");i.setAttribute("href",t);o.body.appendChild(i)}};s.loadScript=function(e,t){var n=s.static_path+e,i="script_"+e.replace(".","_"),r=o.getElementById(i);if(r===null){r=o.createElement("script");r.setAttribute("id",i);r.setAttribute("src",n);r.onload=t;r.onerror=function(){r.setAttribute("error","1")};o.body.appendChild(r)}else if(!r.hasAttribute("error")){try{t.apply(r,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};s.insertBefore=function(e,t){element.parentNode.insertBefore(e,t)};s.insertAfter=function(e,t){t.parentNode.insertBefore(e,t.nextSibling)};s.on(".close","click",function(e){var t=e.target||e.srcElement;this.parentNode.classList.add("invisible")});return s}(window,document);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function o(a,s,l){function u(n,e){if(!s[n]){if(!a[n]){var t=typeof require=="function"&&require;if(!e&&t)return t(n,!0);if(c)return c(n,!0);var i=new Error("Cannot find module '"+n+"'");throw i.code="MODULE_NOT_FOUND",i}var r=s[n]={exports:{}};a[n][0].call(r.exports,function(e){var t=a[n][1][e];return u(t?t:e)},r,r.exports,o,a,s,l)}return s[n].exports}var c=typeof require=="function"&&require;for(var e=0;e<l.length;e++)u(l[e]);return u}({1:[function(e,t,n){
-/*
- * @license MIT
- *
- * Autocomplete.js v2.6.3
- * Developed by Baptiste Donaux
- * http://autocomplete-js.com
- *
- * (c) 2017, Baptiste Donaux
- */
-"use strict";var l;(function(e){e[e["AND"]=0]="AND";e[e["OR"]=1]="OR"})(l||(l={}));var o;(function(e){e[e["KEYDOWN"]=0]="KEYDOWN";e[e["KEYUP"]=1]="KEYUP"})(o||(o={}));var i=function(){function s(t,e){if(t===void 0){t={}}if(e===void 0){e="[data-autocomplete]"}if(Array.isArray(e)){e.forEach(function(e){new s(t,e)})}else if(typeof e=="string"){var n=document.querySelectorAll(e);Array.prototype.forEach.call(n,function(e){new s(t,e)})}else{var i=s.merge(s.defaults,t,{DOMResults:document.createElement("div")});s.prototype.create(i,e);return i}}s.prototype.create=function(e,t){e.Input=t;if(e.Input.nodeName.match(/^INPUT$/i)&&(e.Input.hasAttribute("type")===false||e.Input.getAttribute("type").match(/^TEXT|SEARCH$/i))){e.Input.setAttribute("autocomplete","off");e._Position(e);e.Input.parentNode.appendChild(e.DOMResults);e.$Listeners={blur:e._Blur.bind(e),destroy:s.prototype.destroy.bind(null,e),focus:e._Focus.bind(e),keyup:s.prototype.event.bind(null,e,o.KEYUP),keydown:s.prototype.event.bind(null,e,o.KEYDOWN),position:e._Position.bind(e)};for(var n in e.$Listeners){e.Input.addEventListener(n,e.$Listeners[n])}}};s.prototype.getEventsByType=function(e,t){var n={};for(var i in e.KeyboardMappings){var r=o.KEYUP;if(e.KeyboardMappings[i].Event!==undefined){r=e.KeyboardMappings[i].Event}if(r==t){n[i]=e.KeyboardMappings[i]}}return n};s.prototype.event=function(e,t,n){var i=function(e){if(a===true&&o.Operator==l.AND||a===false&&o.Operator==l.OR){e=s.merge({Not:false},e);if(e.hasOwnProperty("Is")){if(e.Is==n.keyCode){a=!e.Not}else{a=e.Not}}else if(e.hasOwnProperty("From")&&e.hasOwnProperty("To")){if(n.keyCode>=e.From&&n.keyCode<=e.To){a=!e.Not}else{a=e.Not}}}};for(var r in s.prototype.getEventsByType(e,t)){var o=s.merge({Operator:l.AND},e.KeyboardMappings[r]),a=l.AND==o.Operator;o.Conditions.forEach(i);if(a===true){o.Callback.call(e,n)}}};s.prototype.makeRequest=function(e,t){var n=Object.getOwnPropertyNames(e.HttpHeaders),i=new XMLHttpRequest,r=e._HttpMethod(),o=e._Url(),a=e._Pre(),s=encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(a);if(r.match(/^GET$/i)){if(o.indexOf("?")!==-1){o+="&"+s}else{o+="?"+s}}i.open(r,o,true);for(var l=n.length-1;l>=0;l--){i.setRequestHeader(n[l],e.HttpHeaders[n[l]])}i.onreadystatechange=function(){if(i.readyState==4&&i.status==200){e.$Cache[a]=i.response;t(i.response)}};return i};s.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(s.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(e._QueryArg()+"="+e._Pre())}};s.prototype.cache=function(e,t){var n=e._Cache(e._Pre());if(n===undefined){var i=s.prototype.makeRequest(e,t);s.prototype.ajax(e,i)}else{t(n)}};s.prototype.destroy=function(e){for(var t in e.$Listeners){e.Input.removeEventListener(t,e.$Listeners[t])}e.DOMResults.parentNode.removeChild(e.DOMResults)};return s}();i.merge=function(){var e={},t;for(var n=0;n<arguments.length;n++){for(t in arguments[n]){e[t]=arguments[n][t]}}return e};i.defaults={Delay:150,EmptyMessage:"No result here",Highlight:{getRegex:function(e){return new RegExp(e,"ig")},transform:function(e){return"<strong>"+e+"</strong>"}},HttpHeaders:{"Content-type":"application/x-www-form-urlencoded"},Limit:0,MinChars:0,HttpMethod:"GET",QueryArg:"q",Url:null,KeyboardMappings:{Enter:{Conditions:[{Is:13,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){e.preventDefault();this._Select(t);this.DOMResults.setAttribute("class","autocomplete")}}},Operator:l.AND,Event:o.KEYDOWN},KeyUpAndDown_down:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault()},Operator:l.OR,Event:o.KEYDOWN},KeyUpAndDown_up:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault();var t=this.DOMResults.querySelector("li:first-child:not(.locked)"),n=this.DOMResults.querySelector("li:last-child:not(.locked)"),i=this.DOMResults.querySelector("li.active");if(i){var r=Array.prototype.indexOf.call(i.parentNode.children,i),o=r+(e.keyCode-39),a=this.DOMResults.getElementsByTagName("li").length;if(o<0){o=a-1}else if(o>=a){o=0}i.classList.remove("active");i.parentElement.children.item(o).classList.add("active")}else if(n&&e.keyCode==38){n.classList.add("active")}else if(t){t.classList.add("active")}},Operator:l.OR,Event:o.KEYUP},AlphaNum:{Conditions:[{Is:13,Not:true},{From:35,To:40,Not:true}],Callback:function(){var e=this.Input.getAttribute("data-autocomplete-old-value"),t=this._Pre();if(t!==""&&t.length>=this._MinChars()){if(!e||t!=e){this.DOMResults.setAttribute("class","autocomplete open")}i.prototype.cache(this,function(e){this._Render(this._Post(e));this._Open()}.bind(this))}},Operator:l.AND,Event:o.KEYUP}},DOMResults:null,Request:null,Input:null,_EmptyMessage:function(){var e="";if(this.Input.hasAttribute("data-autocomplete-empty-message")){e=this.Input.getAttribute("data-autocomplete-empty-message")}else if(this.EmptyMessage!==false){e=this.EmptyMessage}else{e=""}return e},_Limit:function(){var e=this.Input.getAttribute("data-autocomplete-limit");if(isNaN(e)||e===null){return this.Limit}return parseInt(e,10)},_MinChars:function(){var e=this.Input.getAttribute("data-autocomplete-minchars");if(isNaN(e)||e===null){return this.MinChars}return parseInt(e,10)},_Highlight:function(e){return e.replace(this.Highlight.getRegex(this._Pre()),this.Highlight.transform)},_HttpMethod:function(){if(this.Input.hasAttribute("data-autocomplete-method")){return this.Input.getAttribute("data-autocomplete-method")}return this.HttpMethod},_QueryArg:function(){if(this.Input.hasAttribute("data-autocomplete-param-name")){return this.Input.getAttribute("data-autocomplete-param-name")}return this.QueryArg},_Url:function(){if(this.Input.hasAttribute("data-autocomplete")){return this.Input.getAttribute("data-autocomplete")}return this.Url},_Blur:function(e){if(e===true){this.DOMResults.setAttribute("class","autocomplete");this.Input.setAttribute("data-autocomplete-old-value",this.Input.value)}else{var t=this;setTimeout(function(){t._Blur(true)},150)}},_Cache:function(e){return this.$Cache[e]},_Focus:function(){var e=this.Input.getAttribute("data-autocomplete-old-value");if((!e||this.Input.value!=e)&&this._MinChars()<=this.Input.value.length){this.DOMResults.setAttribute("class","autocomplete open")}},_Open:function(){var n=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(t){if(t.getAttribute("class")!="locked"){t.onclick=function(e){n._Select(t)};t.onmouseenter=function(){var e=n.DOMResults.querySelector("li.active");if(e!==t){if(e!==null){e.classList.remove("active")}t.classList.add("active")}}}})},_Position:function(){this.DOMResults.setAttribute("class","autocomplete");this.DOMResults.setAttribute("style","top:"+(this.Input.offsetTop+this.Input.offsetHeight)+"px;left:"+this.Input.offsetLeft+"px;width:"+this.Input.clientWidth+"px;")},_Render:function(e){var t;if(typeof e=="string"){t=this._RenderRaw(e)}else{t=this._RenderResponseItems(e)}if(this.DOMResults.hasChildNodes()){this.DOMResults.removeChild(this.DOMResults.childNodes[0])}this.DOMResults.appendChild(t)},_RenderResponseItems:function(e){var t=document.createElement("ul"),n=document.createElement("li"),i=this._Limit();if(i<0){e=e.reverse()}else if(i===0){i=e.length}for(var r=0;r<Math.min(Math.abs(i),e.length);r++){n.innerHTML=e[r].Label;n.setAttribute("data-autocomplete-value",e[r].Value);t.appendChild(n);n=document.createElement("li")}return t},_RenderRaw:function(e){var t=document.createElement("ul"),n=document.createElement("li");if(e.length>0){this.DOMResults.innerHTML=e}else{var i=this._EmptyMessage();if(i!==""){n.innerHTML=i;n.setAttribute("class","locked");t.appendChild(n)}}return t},_Post:function(t){try{var e=[];var n=JSON.parse(t);if(Object.keys(n).length===0){return""}if(Array.isArray(n)){for(var i=0;i<Object.keys(n).length;i++){e[e.length]={Value:n[i],Label:this._Highlight(n[i])}}}else{for(var r in n){e.push({Value:r,Label:this._Highlight(n[r])})}}return e}catch(e){return t}},_Pre:function(){return this.Input.value},_Select:function(e){console.log("test test test");if(e.hasAttribute("data-autocomplete-value")){this.Input.value=e.getAttribute("data-autocomplete-value")}else{this.Input.value=e.innerHTML}this.Input.setAttribute("data-autocomplete-old-value",this.Input.value)},$AjaxTimer:null,$Cache:{},$Listeners:{}};t.exports=i},{}]},{},[1])(1)});searx.ready(function(){searx.on(".result","click",function(){n(this)(true)});searx.on(".result a","focus",function(e){var t=e.target;while(t!==undefined){if(t.classList.contains("result")){if(t.getAttribute("data-vim-selected")===null){n(t)(true)}break}t=t.parentNode}},true);var d={27:{key:"Escape",fun:t,des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:a,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:r(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:r(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:r(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:r(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:o(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:o(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:n("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:n("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:i(0),des:"go to previous page",cat:"Results"},78:{key:"n",fun:i(1),des:"go to next page",cat:"Results"},79:{key:"o",fun:s(false),des:"open search result",cat:"Results"},84:{key:"t",fun:s(true),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:e,des:"reload page from the server",cat:"Control"},72:{key:"h",fun:u,des:"toggle help window",cat:"Other"}};searx.on(document,"keydown",function(e){if(d.hasOwnProperty(e.keyCode)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.keyCode===27){if(t==="input"||t==="select"||t==="textarea"){d[e.keyCode].fun()}}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.keyCode].fun()}}}});function n(d){return function(e){var t=document.querySelector(".result[data-vim-selected]"),n=d;if(t===null){t=document.querySelector(".result");if(t===null){return}if(d==="down"||d==="up"){n=t}}var i,r=document.querySelectorAll(".result");if(typeof n!=="string"){i=n}else{switch(n){case"visible":var o=document.documentElement.scrollTop||document.body.scrollTop;var a=o+document.documentElement.clientHeight;for(var s=0;s<r.length;s++){i=r[s];var l=i.offsetTop;var u=l+i.clientHeight;if(u<=a&&l>o){break}}break;case"down":i=t.nextElementSibling;if(i===null){i=r[0]}break;case"up":i=t.previousElementSibling;if(i===null){i=r[r.length-1]}break;case"bottom":i=r[r.length-1];break;case"top":default:i=r[0]}}if(i){t.removeAttribute("data-vim-selected");i.setAttribute("data-vim-selected","true");var c=i.querySelector("h3 a")||i.querySelector("a");if(c!==null){c.focus()}if(!e){f()}}}}function e(){document.location.reload(true)}function t(){if(document.activeElement){document.activeElement.blur()}}function i(t){return function(){var e=$('div#pagination button[type="submit"]');if(e.length!==2){console.log("page navigation with this theme is not supported");return}if(t>=0&&t<e.length){e[t].click()}else{console.log("pageButtonClick(): invalid argument")}}}function f(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,i=e.offsetTop,r=i+e.clientHeight,o=120;if(e.previousElementSibling===null&&r<n){window.scroll(window.scrollX,0);return}if(t>i-o){window.scroll(window.scrollX,i-o)}else{var a=t+n;if(a<r+o){window.scroll(window.scrollX,r-n+o)}}}function r(e){return function(){window.scrollBy(0,e);n("visible")()}}function o(e,t){return function(){window.scrollTo(0,e);n(t)()}}function a(){window.scrollTo(0,0);document.querySelector("#q").focus()}function s(n){return function(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function l(e){var n={};for(var t in d){var i=d[t];n[i.cat]=n[i.cat]||[];n[i.cat].push(i)}var r=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(r.length===0){return}var o='<a href="#" class="close" aria-label="close" title="close">×</a>';o+="<h3>How to navigate searx with Vim-like hotkeys</h3>";o+="<table>";for(var a=0;a<r.length;a++){var s=n[r[a]];var l=a===r.length-1;var u=a%2===0;if(u){o+="<tr>"}o+="<td>";o+="<h4>"+s[0].cat+"</h4>";o+='<ul class="list-unstyled">';for(var c in s){o+="<li><kbd>"+s[c].key+"</kbd> "+s[c].des+"</li>"}o+="</ul>";o+="</td>";if(!u||l){o+="</tr>"}}o+="</table>";e.innerHTML=o}function u(){var e=document.querySelector("#vim-hotkeys-help");console.log(e);if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";e.style="width: 40%";l(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}});(function(e,t,n){"use strict";n.ready(function(){n.on(".searx_init_map","click",function(e){this.classList.remove("searx_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("leaflet/leaflet.css");n.loadScript("leaflet/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var i=L.map(d);var r="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var o='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var a=new L.TileLayer(r,{minZoom:1,maxZoom:19,attribution:o});var s="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var u=new L.TileLayer(s,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){i.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){i.setView(new L.latLng(p,f),h)}else{i.setView(new L.latLng(p,f),8)}}i.addLayer(a);var c={"OSM Mapnik":a};L.control.layers(c).addTo(i);if(g){L.geoJson(g).addTo(i)}});e.preventDefault()})})})(window,document,window.searx);(function(e,a,t){"use strict";t.ready(function(){t.image_thumbnail_layout=new t.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",10,200);t.image_thumbnail_layout.watch();t.on(".btn-collapse","click",function(e){var t=this.getAttribute("data-btn-text-collapsed");var n=this.getAttribute("data-btn-text-not-collapsed");var i=this.getAttribute("data-target");var r=a.querySelector(i);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(t,n)}else{o=o.replace(n,t)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});t.on(".media-loader","click",function(e){var t=this.getAttribute("data-target");var n=a.querySelector(t+" > iframe");var i=n.getAttribute("src");if(i===null||i===undefined||i===false){n.setAttribute("src",n.getAttribute("data-src"))}});e.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop;if(e!==null){if(t>=200){e.style.opacity=1}else{e.style.opacity=0}}})})})(window,document,window.searx);(function(t,i,n){"use strict";var r=true,o="q",a;function s(e){if(e.setSelectionRange){var t=e.value.length;e.setSelectionRange(t,t)}}function l(){if(a.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(e){var t=document.getElementById("clear_search");var n=function(){if(e.value.length===0){t.classList.add("empty")}else{t.classList.remove("empty")}};n();t.addEventListener("click",function(){e.value="";e.focus();n()});e.addEventListener("keyup",n,false)}n.ready(function(){a=i.getElementById(o);function e(e){if(r){s(a);r=false}else{}}if(a!==null){u(a);if(n.autocompleter){n.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:n.translations.no_item_found,HttpMethod:n.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:4,Delay:300},"#"+o);t.addEventListener("resize",function(){var e=new CustomEvent("position");a.dispatchEvent(e)})}a.addEventListener("focus",e,false);a.focus()}if(a!==null&&n.search_on_category_select){i.querySelector(".help").className="invisible";n.on("#categories input","change",function(e){var t,n=i.querySelectorAll('#categories input[type="checkbox"]');for(t=0;t<n.length;t++){if(n[t]!==this&&n[t].checked){n[t].click()}}if(!this.checked){this.click()}l();return false});n.on(i.getElementById("time_range"),"change",l);n.on(i.getElementById("language"),"change",l)}})})(window,document,window.searx);
+window.searx=function(t,o){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),i=-1;while(n[++i]&&n[i]!=t);return!!n[i]}})(Element.prototype)}function a(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var s=window.searx||{};s.on=function(i,e,r,t){t=t||false;if(typeof i!=="string"){i.addEventListener(e,r,t)}else{o.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==o&&!(n=t.matches(i)))t=t.parentElement;if(n)a(r,t,e)},t)}};s.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};s.http=function(e,t,n){var i=new XMLHttpRequest,r=function(){},o=function(){},a={then:function(e){r=e;return a},catch:function(e){o=e;return a}};try{i.open(e,t,true);i.onload=function(){if(i.status==200){r(i.response,i.responseType)}else{o(Error(i.statusText))}};i.onerror=function(){o(Error("Network Error"))};i.onabort=function(){o(Error("Transaction is aborted"))};i.send()}catch(e){o(e)}return a};s.loadStyle=function(e){var t=s.static_path+e,n="style_"+e.replace(".","_"),i=o.getElementById(n);if(i===null){i=o.createElement("link");i.setAttribute("id",n);i.setAttribute("rel","stylesheet");i.setAttribute("type","text/css");i.setAttribute("href",t);o.body.appendChild(i)}};s.loadScript=function(e,t){var n=s.static_path+e,i="script_"+e.replace(".","_"),r=o.getElementById(i);if(r===null){r=o.createElement("script");r.setAttribute("id",i);r.setAttribute("src",n);r.onload=t;r.onerror=function(){r.setAttribute("error","1")};o.body.appendChild(r)}else if(!r.hasAttribute("error")){try{t.apply(r,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};s.insertBefore=function(e,t){element.parentNode.insertBefore(e,t)};s.insertAfter=function(e,t){t.parentNode.insertBefore(e,t.nextSibling)};s.on(".close","click",function(e){var t=e.target||e.srcElement;this.parentNode.classList.add("invisible")});return s}(window,document);searx.ready(function(){searx.on(".result","click",function(){n(this)(true)});searx.on(".result a","focus",function(e){var t=e.target;while(t!==undefined){if(t.classList.contains("result")){if(t.getAttribute("data-vim-selected")===null){n(t)(true)}break}t=t.parentNode}},true);var d={27:{key:"Escape",fun:t,des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:a,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:r(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:r(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:r(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:r(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:o(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:o(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:n("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:n("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:i(0),des:"go to previous page",cat:"Results"},78:{key:"n",fun:i(1),des:"go to next page",cat:"Results"},79:{key:"o",fun:s(false),des:"open search result",cat:"Results"},84:{key:"t",fun:s(true),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:e,des:"reload page from the server",cat:"Control"},72:{key:"h",fun:u,des:"toggle help window",cat:"Other"}};searx.on(document,"keydown",function(e){if(d.hasOwnProperty(e.keyCode)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.keyCode===27){if(t==="input"||t==="select"||t==="textarea"){d[e.keyCode].fun()}}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.keyCode].fun()}}}});function n(d){return function(e){var t=document.querySelector(".result[data-vim-selected]"),n=d;if(t===null){t=document.querySelector(".result");if(t===null){return}if(d==="down"||d==="up"){n=t}}var i,r=document.querySelectorAll(".result");if(typeof n!=="string"){i=n}else{switch(n){case"visible":var o=document.documentElement.scrollTop||document.body.scrollTop;var a=o+document.documentElement.clientHeight;for(var s=0;s<r.length;s++){i=r[s];var l=i.offsetTop;var u=l+i.clientHeight;if(u<=a&&l>o){break}}break;case"down":i=t.nextElementSibling;if(i===null){i=r[0]}break;case"up":i=t.previousElementSibling;if(i===null){i=r[r.length-1]}break;case"bottom":i=r[r.length-1];break;case"top":default:i=r[0]}}if(i){t.removeAttribute("data-vim-selected");i.setAttribute("data-vim-selected","true");var c=i.querySelector("h3 a")||i.querySelector("a");if(c!==null){c.focus()}if(!e){f()}}}}function e(){document.location.reload(true)}function t(){if(document.activeElement){document.activeElement.blur()}}function i(t){return function(){var e=$('div#pagination button[type="submit"]');if(e.length!==2){console.log("page navigation with this theme is not supported");return}if(t>=0&&t<e.length){e[t].click()}else{console.log("pageButtonClick(): invalid argument")}}}function f(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,i=e.offsetTop,r=i+e.clientHeight,o=120;if(e.previousElementSibling===null&&r<n){window.scroll(window.scrollX,0);return}if(t>i-o){window.scroll(window.scrollX,i-o)}else{var a=t+n;if(a<r+o){window.scroll(window.scrollX,r-n+o)}}}function r(e){return function(){window.scrollBy(0,e);n("visible")()}}function o(e,t){return function(){window.scrollTo(0,e);n(t)()}}function a(){window.scrollTo(0,0);document.querySelector("#q").focus()}function s(n){return function(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function l(e){var n={};for(var t in d){var i=d[t];n[i.cat]=n[i.cat]||[];n[i.cat].push(i)}var r=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(r.length===0){return}var o='<a href="#" class="close" aria-label="close" title="close">×</a>';o+="<h3>How to navigate searx with Vim-like hotkeys</h3>";o+="<table>";for(var a=0;a<r.length;a++){var s=n[r[a]];var l=a===r.length-1;var u=a%2===0;if(u){o+="<tr>"}o+="<td>";o+="<h4>"+s[0].cat+"</h4>";o+='<ul class="list-unstyled">';for(var c in s){o+="<li><kbd>"+s[c].key+"</kbd> "+s[c].des+"</li>"}o+="</ul>";o+="</td>";if(!u||l){o+="</tr>"}}o+="</table>";e.innerHTML=o}function u(){var e=document.querySelector("#vim-hotkeys-help");console.log(e);if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";e.style="width: 40%";l(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}});(function(e,t,n){"use strict";n.ready(function(){n.on(".searx_init_map","click",function(e){this.classList.remove("searx_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var i=L.map(d);var r="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var o='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var a=new L.TileLayer(r,{minZoom:1,maxZoom:19,attribution:o});var s="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var u=new L.TileLayer(s,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){i.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){i.setView(new L.latLng(p,f),h)}else{i.setView(new L.latLng(p,f),8)}}i.addLayer(a);var c={"OSM Mapnik":a};L.control.layers(c).addTo(i);if(g){L.geoJson(g).addTo(i)}});e.preventDefault()})})})(window,document,window.searx);(function(e,a,t){"use strict";t.ready(function(){t.image_thumbnail_layout=new t.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",10,200);t.image_thumbnail_layout.watch();t.on(".btn-collapse","click",function(e){var t=this.getAttribute("data-btn-text-collapsed");var n=this.getAttribute("data-btn-text-not-collapsed");var i=this.getAttribute("data-target");var r=a.querySelector(i);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(t,n)}else{o=o.replace(n,t)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});t.on(".media-loader","click",function(e){var t=this.getAttribute("data-target");var n=a.querySelector(t+" > iframe");var i=n.getAttribute("src");if(i===null||i===undefined||i===false){n.setAttribute("src",n.getAttribute("data-src"))}});e.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop;if(e!==null){if(t>=200){e.style.opacity=1}else{e.style.opacity=0}}})})})(window,document,window.searx);(function(t,i,n){"use strict";var r=true,o="q",a;function s(e){if(e.setSelectionRange){var t=e.value.length;e.setSelectionRange(t,t)}}function l(){if(a.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(e){var t=document.getElementById("clear_search");var n=function(){if(e.value.length===0){t.classList.add("empty")}else{t.classList.remove("empty")}};n();t.addEventListener("click",function(){e.value="";e.focus();n()});e.addEventListener("keyup",n,false)}n.ready(function(){a=i.getElementById(o);function e(e){if(r){s(a);r=false}else{}}if(a!==null){u(a);if(n.autocompleter){n.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:n.translations.no_item_found,HttpMethod:n.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:4,Delay:300},"#"+o);t.addEventListener("resize",function(){var e=new CustomEvent("position");a.dispatchEvent(e)})}a.addEventListener("focus",e,false);a.focus()}if(a!==null&&n.search_on_category_select){i.querySelector(".help").className="invisible";n.on("#categories input","change",function(e){var t,n=i.querySelectorAll('#categories input[type="checkbox"]');for(t=0;t<n.length;t++){if(n[t]!==this&&n[t].checked){n[t].click()}}if(!this.checked){this.click()}l();return false});n.on(i.getElementById("time_range"),"change",l);n.on(i.getElementById("language"),"change",l)}})})(window,document,window.searx);
 /**
 *
 * Google Image Layout v0.0.1
@@ -22,5 +12,15 @@ window.searx=function(t,o){"use strict";if(t.Element){(function(e){e.matches=e.m
 * @license Free to use under the MIT License.
 *
 */
-(function(a,c){function e(e,t,n,i,r){this.container_selector=e;this.results_selector=t;this.img_selector=n;this.margin=i;this.maxHeight=r;this.isAlignDone=true}e.prototype._getHeigth=function(e,t){var n,i;var r=0;for(n=0;n<e.length;n++){i=e[n];if(i.naturalWidth>0&&i.naturalHeight>0){r+=i.naturalWidth/i.naturalHeight}else{r+=1}}return(t-e.length*this.margin)/r};e.prototype._setSize=function(e,t){var n,i,r;var o=e.length,a;for(n=0;n<o;n++){i=e[n];if(i.naturalWidth>0&&i.naturalHeight>0){r=t*i.naturalWidth/i.naturalHeight}else{r=t}i.style.width=r+"px";i.style.height=t+"px";i.style.marginLeft="3px";i.style.marginTop="3px";i.style.marginRight=this.margin-7+"px";i.style.marginBottom=this.margin-7+"px";a=i.parentNode.parentNode;if(!a.classList.contains("js")){a.classList.add("js")}}};e.prototype._alignImgs=function(e){var t,n,i,r;var o=c.querySelector(this.container_selector);var a=window.getComputedStyle(o);var s=parseInt(a.getPropertyValue("padding-left"),10);var l=parseInt(a.getPropertyValue("padding-right"),10);var u=o.clientWidth-s-l;while(e.length>0){t=true;for(i=1;i<=e.length&&t;i++){n=e.slice(0,i);r=this._getHeigth(n,u);if(r<this.maxHeight){this._setSize(n,r);e=e.slice(i);t=false}}if(t){this._setSize(n,Math.min(this.maxHeight,r));break}}};e.prototype.align=function(){var e;var t=c.querySelectorAll(this.results_selector);var n=t.length;var i=null;var r=null;var o=[];for(e=0;e<n;e++){r=t[e];if(r.previousElementSibling!==i&&o.length>0){this._alignImgs(o);o=[]}o.push(r.querySelector(this.img_selector));i=r}if(o.length>0){this._alignImgs(o)}};e.prototype.watch=function(){var e,t;var n=this;var i=c.querySelectorAll(this.results_selector);var r=i.length;function o(){if(n.isAlignDone){n.isAlignDone=false;setTimeout(function(){n.align();n.isAlignDone=true},100)}}a.addEventListener("pageshow",o);a.addEventListener("load",o);a.addEventListener("resize",o);for(e=0;e<r;e++){t=i[e].querySelector(this.img_selector);if(t!==null&&t!==undefined){t.addEventListener("load",o);t.addEventListener("error",o)}}};a.searx.ImageLayout=e})(window,document);
+(function(a,c){function e(e,t,n,i,r){this.container_selector=e;this.results_selector=t;this.img_selector=n;this.margin=i;this.maxHeight=r;this.isAlignDone=true}e.prototype._getHeigth=function(e,t){var n,i;var r=0;for(n=0;n<e.length;n++){i=e[n];if(i.naturalWidth>0&&i.naturalHeight>0){r+=i.naturalWidth/i.naturalHeight}else{r+=1}}return(t-e.length*this.margin)/r};e.prototype._setSize=function(e,t){var n,i,r;var o=e.length,a;for(n=0;n<o;n++){i=e[n];if(i.naturalWidth>0&&i.naturalHeight>0){r=t*i.naturalWidth/i.naturalHeight}else{r=t}i.style.width=r+"px";i.style.height=t+"px";i.style.marginLeft="3px";i.style.marginTop="3px";i.style.marginRight=this.margin-7+"px";i.style.marginBottom=this.margin-7+"px";a=i.parentNode.parentNode;if(!a.classList.contains("js")){a.classList.add("js")}}};e.prototype._alignImgs=function(e){var t,n,i,r;var o=c.querySelector(this.container_selector);var a=window.getComputedStyle(o);var s=parseInt(a.getPropertyValue("padding-left"),10);var l=parseInt(a.getPropertyValue("padding-right"),10);var u=o.clientWidth-s-l;while(e.length>0){t=true;for(i=1;i<=e.length&&t;i++){n=e.slice(0,i);r=this._getHeigth(n,u);if(r<this.maxHeight){this._setSize(n,r);e=e.slice(i);t=false}}if(t){this._setSize(n,Math.min(this.maxHeight,r));break}}};e.prototype.align=function(){var e;var t=c.querySelectorAll(this.results_selector);var n=t.length;var i=null;var r=null;var o=[];for(e=0;e<n;e++){r=t[e];if(r.previousElementSibling!==i&&o.length>0){this._alignImgs(o);o=[]}o.push(r.querySelector(this.img_selector));i=r}if(o.length>0){this._alignImgs(o)}};e.prototype.watch=function(){var e,t;var n=this;var i=c.querySelectorAll(this.results_selector);var r=i.length;function o(){if(n.isAlignDone){n.isAlignDone=false;setTimeout(function(){n.align();n.isAlignDone=true},100)}}a.addEventListener("pageshow",o);a.addEventListener("load",o);a.addEventListener("resize",o);for(e=0;e<r;e++){t=i[e].querySelector(this.img_selector);if(t!==null&&t!==undefined){t.addEventListener("load",o);t.addEventListener("error",o)}}};a.searx.ImageLayout=e})(window,document);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(o,a,s){function l(n,e){if(!a[n]){if(!o[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var i=new Error("Cannot find module '"+n+"'");throw i.code="MODULE_NOT_FOUND",i}var r=a[n]={exports:{}};o[n][0].call(r.exports,function(e){var t=o[n][1][e];return l(t||e)},r,r.exports,c,o,a,s)}return a[n].exports}for(var u="function"==typeof require&&require,e=0;e<s.length;e++)l(s[e]);return l}return c}()({1:[function(e,t,n){
+/*
+ * @license MIT
+ *
+ * Autocomplete.js v2.7.1
+ * Developed by Baptiste Donaux
+ * http://autocomplete-js.com
+ *
+ * (c) 2017, Baptiste Donaux
+ */
+"use strict";var l;(function(e){e[e["AND"]=0]="AND";e[e["OR"]=1]="OR"})(l||(l={}));var o;(function(e){e[e["KEYDOWN"]=0]="KEYDOWN";e[e["KEYUP"]=1]="KEYUP"})(o||(o={}));var i=function(){function s(t,e){if(t===void 0){t={}}if(e===void 0){e="[data-autocomplete]"}if(Array.isArray(e)){e.forEach(function(e){new s(t,e)})}else if(typeof e=="string"){var n=document.querySelectorAll(e);Array.prototype.forEach.call(n,function(e){new s(t,e)})}else{var i=s.merge(s.defaults,t,{DOMResults:document.createElement("div")});s.prototype.create(i,e);return i}}s.prototype.create=function(e,t){e.Input=t;if(e.Input.nodeName.match(/^INPUT$/i)&&(e.Input.hasAttribute("type")===false||e.Input.getAttribute("type").match(/^TEXT|SEARCH$/i))){e.Input.setAttribute("autocomplete","off");e._Position(e);e.Input.parentNode.appendChild(e.DOMResults);e.$Listeners={blur:e._Blur.bind(e),destroy:s.prototype.destroy.bind(null,e),focus:e._Focus.bind(e),keyup:s.prototype.event.bind(null,e,o.KEYUP),keydown:s.prototype.event.bind(null,e,o.KEYDOWN),position:e._Position.bind(e)};for(var n in e.$Listeners){e.Input.addEventListener(n,e.$Listeners[n])}}};s.prototype.getEventsByType=function(e,t){var n={};for(var i in e.KeyboardMappings){var r=o.KEYUP;if(e.KeyboardMappings[i].Event!==undefined){r=e.KeyboardMappings[i].Event}if(r==t){n[i]=e.KeyboardMappings[i]}}return n};s.prototype.event=function(e,t,n){var i=function(e){if(a===true&&o.Operator==l.AND||a===false&&o.Operator==l.OR){e=s.merge({Not:false},e);if(e.hasOwnProperty("Is")){if(e.Is==n.keyCode){a=!e.Not}else{a=e.Not}}else if(e.hasOwnProperty("From")&&e.hasOwnProperty("To")){if(n.keyCode>=e.From&&n.keyCode<=e.To){a=!e.Not}else{a=e.Not}}}};for(var r in s.prototype.getEventsByType(e,t)){var o=s.merge({Operator:l.AND},e.KeyboardMappings[r]),a=l.AND==o.Operator;o.Conditions.forEach(i);if(a===true){o.Callback.call(e,n)}}};s.prototype.makeRequest=function(e,t,n){var i=Object.getOwnPropertyNames(e.HttpHeaders),r=new XMLHttpRequest,o=e._HttpMethod(),a=e._Url(),s=e._Pre(),l=encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(s);if(o.match(/^GET$/i)){if(a.indexOf("?")!==-1){a+="&"+l}else{a+="?"+l}}r.open(o,a,true);for(var u=i.length-1;u>=0;u--){r.setRequestHeader(i[u],e.HttpHeaders[i[u]])}r.onreadystatechange=function(){if(r.readyState==4&&r.status==200){e.$Cache[s]=r.response;t(r.response)}else if(r.status>=400){n()}};return r};s.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(s.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(e._QueryArg()+"="+e._Pre())}};s.prototype.cache=function(e,t,n){var i=e._Cache(e._Pre());if(i===undefined){var r=s.prototype.makeRequest(e,t,n);s.prototype.ajax(e,r)}else{t(i)}};s.prototype.destroy=function(e){for(var t in e.$Listeners){e.Input.removeEventListener(t,e.$Listeners[t])}e.DOMResults.parentNode.removeChild(e.DOMResults)};s.merge=function(){var e={},t;for(var n=0;n<arguments.length;n++){for(t in arguments[n]){e[t]=arguments[n][t]}}return e};s.defaults={Delay:150,EmptyMessage:"No result here",Highlight:{getRegex:function(e){return new RegExp(e,"ig")},transform:function(e){return"<strong>"+e+"</strong>"}},HttpHeaders:{"Content-type":"application/x-www-form-urlencoded"},Limit:0,MinChars:0,HttpMethod:"GET",QueryArg:"q",Url:null,KeyboardMappings:{Enter:{Conditions:[{Is:13,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){e.preventDefault();this._Select(t);this.DOMResults.setAttribute("class","autocomplete")}}},Operator:l.AND,Event:o.KEYDOWN},KeyUpAndDown_down:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault()},Operator:l.OR,Event:o.KEYDOWN},KeyUpAndDown_up:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault();var t=this.DOMResults.querySelector("li:first-child:not(.locked)"),n=this.DOMResults.querySelector("li:last-child:not(.locked)"),i=this.DOMResults.querySelector("li.active");if(i){var r=Array.prototype.indexOf.call(i.parentNode.children,i),o=r+(e.keyCode-39),a=this.DOMResults.getElementsByTagName("li").length;if(o<0){o=a-1}else if(o>=a){o=0}i.classList.remove("active");i.parentElement.children.item(o).classList.add("active")}else if(n&&e.keyCode==38){n.classList.add("active")}else if(t){t.classList.add("active")}},Operator:l.OR,Event:o.KEYUP},AlphaNum:{Conditions:[{Is:13,Not:true},{From:35,To:40,Not:true}],Callback:function(){var e=this.Input.getAttribute("data-autocomplete-old-value"),t=this._Pre();if(t!==""&&t.length>=this._MinChars()){if(!e||t!=e){this.DOMResults.setAttribute("class","autocomplete open")}s.prototype.cache(this,function(e){this._Render(this._Post(e));this._Open()}.bind(this),this._Error)}else{this._Close()}},Operator:l.AND,Event:o.KEYUP}},DOMResults:null,Request:null,Input:null,_EmptyMessage:function(){var e="";if(this.Input.hasAttribute("data-autocomplete-empty-message")){e=this.Input.getAttribute("data-autocomplete-empty-message")}else if(this.EmptyMessage!==false){e=this.EmptyMessage}else{e=""}return e},_Limit:function(){var e=this.Input.getAttribute("data-autocomplete-limit");if(isNaN(e)||e===null){return this.Limit}return parseInt(e,10)},_MinChars:function(){var e=this.Input.getAttribute("data-autocomplete-minchars");if(isNaN(e)||e===null){return this.MinChars}return parseInt(e,10)},_Highlight:function(e){return e.replace(this.Highlight.getRegex(this._Pre()),this.Highlight.transform)},_HttpMethod:function(){if(this.Input.hasAttribute("data-autocomplete-method")){return this.Input.getAttribute("data-autocomplete-method")}return this.HttpMethod},_QueryArg:function(){if(this.Input.hasAttribute("data-autocomplete-param-name")){return this.Input.getAttribute("data-autocomplete-param-name")}return this.QueryArg},_Url:function(){if(this.Input.hasAttribute("data-autocomplete")){return this.Input.getAttribute("data-autocomplete")}return this.Url},_Blur:function(e){if(e===void 0){e=false}if(e){this._Close()}else{var t=this;setTimeout(function(){t._Blur(true)},150)}},_Cache:function(e){return this.$Cache[e]},_Focus:function(){var e=this.Input.getAttribute("data-autocomplete-old-value");if((!e||this.Input.value!=e)&&this._MinChars()<=this.Input.value.length){this.DOMResults.setAttribute("class","autocomplete open")}},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onclick=function(){t._Select(e)}}})},_Close:function(){this.DOMResults.setAttribute("class","autocomplete")},_Position:function(){this.DOMResults.setAttribute("class","autocomplete");this.DOMResults.setAttribute("style","top:"+(this.Input.offsetTop+this.Input.offsetHeight)+"px;left:"+this.Input.offsetLeft+"px;width:"+this.Input.clientWidth+"px;")},_Render:function(e){var t;if(typeof e=="string"){t=this._RenderRaw(e)}else{t=this._RenderResponseItems(e)}if(this.DOMResults.hasChildNodes()){this.DOMResults.removeChild(this.DOMResults.childNodes[0])}this.DOMResults.appendChild(t)},_RenderResponseItems:function(e){var t=document.createElement("ul"),n=document.createElement("li"),i=this._Limit();if(i<0){e=e.reverse()}else if(i===0){i=e.length}for(var r=0;r<Math.min(Math.abs(i),e.length);r++){n.innerHTML=e[r].Label;n.setAttribute("data-autocomplete-value",e[r].Value);t.appendChild(n);n=document.createElement("li")}return t},_RenderRaw:function(e){var t=document.createElement("ul"),n=document.createElement("li");if(e.length>0){this.DOMResults.innerHTML=e}else{var i=this._EmptyMessage();if(i!==""){n.innerHTML=i;n.setAttribute("class","locked");t.appendChild(n)}}return t},_Post:function(t){try{var e=[];var n=JSON.parse(t);if(Object.keys(n).length===0){return""}if(Array.isArray(n)){for(var i=0;i<Object.keys(n).length;i++){e[e.length]={Value:n[i],Label:this._Highlight(n[i])}}}else{for(var r in n){e.push({Value:r,Label:this._Highlight(n[r])})}}return e}catch(e){return t}},_Pre:function(){return this.Input.value},_Select:function(e){if(e.hasAttribute("data-autocomplete-value")){this.Input.value=e.getAttribute("data-autocomplete-value")}else{this.Input.value=e.innerHTML}this.Input.setAttribute("data-autocomplete-old-value",this.Input.value)},_Error:function(){},$AjaxTimer:null,$Cache:{},$Listeners:{}};return s}();t.exports=i},{}]},{},[1])(1)});
 //# sourceMappingURL=searx.min.js.map
\ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx.min.js.map b/searx/static/themes/simple/js/searx.min.js.map
index 511f22d67..beb478449 100644
--- a/searx/static/themes/simple/js/searx.min.js.map
+++ b/searx/static/themes/simple/js/searx.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["searx.js"],"names":["window","searx","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","req","XMLHttpRequest","resolve","reject","promise","then","catch","open","onload","status","response","responseType","Error","statusText","onerror","onabort","send","ex","loadStyle","src","path","static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","element","insertAfter","nextSibling","classList","add","f","exports","module","define","amd","g","global","self","AutoComplete","t","n","r","o","u","a","require","code","l","length","1","ConditionOperator","EventType","params","Array","isArray","forEach","elements","input","specificParams","merge","defaults","DOMResults","create","Input","nodeName","match","getAttribute","_Position","$Listeners","blur","_Blur","destroy","focus","_Focus","keyup","event","KEYUP","keydown","KEYDOWN","position","getEventsByType","type","mappings","key","KeyboardMappings","Event","undefined","eventIdentifier","condition","mapping","Operator","AND","OR","Not","hasOwnProperty","Is","keyCode","From","To","name","Conditions","Callback","makeRequest","propertyHttpHeaders","Object","getOwnPropertyNames","HttpHeaders","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","setTimeout","Delay","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","EmptyMessage","Highlight","getRegex","value","RegExp","transform","Content-type","Limit","MinChars","HttpMethod","QueryArg","Url","Enter","liActive","querySelector","preventDefault","_Select","KeyUpAndDown_down","KeyUpAndDown_up","first","last","active","currentIndex","children","lisCount","getElementsByTagName","remove","item","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Open","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","li","onclick","onmouseenter","offsetTop","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","innerHTML","Label","Value","returnResponse","json","JSON","parse","keys","push","highlightResult","contains","vimKeys","27","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","scrollHeight","86","75","74","80","pageButtonClick","78","79","openResult","84","82","reloadPage","72","toggleHelp","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","current","effectiveWhich","next","results","top","documentElement","scrollTop","bot","clientHeight","etop","ebot","nextElementSibling","previousElementSibling","removeAttribute","link","scrollPageToSelected","location","reload","activeElement","num","buttons","$","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","sorted","sort","b","html","lastCategory","cj","helpPanel","className","style","toggle","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","control","layers","addTo","geoJson","image_thumbnail_layout","ImageLayout","watch","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","opacity","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","translations","no_item_found","X-Requested-With","CustomEvent","dispatchEvent","search_on_category_select","checked","container_selector","results_selector","img_selector","margin","maxHeight","isAlignDone","_getHeigth","images","width","img","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","resultNode","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","getPropertyValue","containerPaddingRight","containerWidth","align","results_selectorNode","results_length","previous","results_nodes","throttleAlign"],"mappings":"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","file":"searx.min.js"}
\ No newline at end of file
+{"version":3,"file":"searx.min.js","sources":["searx.js"],"names":["window","searx","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","req","XMLHttpRequest","resolve","reject","promise","then","catch","open","onload","status","response","responseType","Error","statusText","onerror","onabort","send","ex","loadStyle","src","path","static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","element","insertAfter","nextSibling","classList","add","highlightResult","undefined","contains","getAttribute","vimKeys","27","key","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","scrollHeight","86","75","74","80","pageButtonClick","78","79","openResult","84","82","reloadPage","72","toggleHelp","hasOwnProperty","keyCode","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","preventDefault","which","noScroll","current","querySelector","effectiveWhich","next","results","top","documentElement","scrollTop","bot","clientHeight","length","etop","offsetTop","ebot","nextElementSibling","previousElementSibling","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","num","buttons","$","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","push","sorted","Object","keys","sort","a","b","html","lastCategory","first","cj","innerHTML","helpPanel","className","style","getElementsByTagName","toggle","event","remove","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","control","layers","addTo","geoJson","image_thumbnail_layout","ImageLayout","watch","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","opacity","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","value","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","AutoComplete","Url","EmptyMessage","translations","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","Delay","CustomEvent","dispatchEvent","search_on_category_select","checked","container_selector","results_selector","img_selector","margin","maxHeight","isAlignDone","_getHeigth","images","width","img","r","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","resultNode","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","clientWidth","Math","min","align","results_selectorNode","results_length","previous","results_nodes","throttleAlign","f","exports","module","define","amd","g","global","self","n","t","o","c","require","u","code","p","1","ConditionOperator","EventType","params","Array","isArray","forEach","elements","input","specificParams","merge","defaults","DOMResults","create","Input","nodeName","match","_Position","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","KeyboardMappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","Not","Is","From","To","name","Conditions","Callback","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","Enter","liActive","_Select","KeyUpAndDown_down","KeyUpAndDown_up","last","active","currentIndex","children","lisCount","item","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Open","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","minchars","_Highlight","label","now","li","onclick","offsetHeight","offsetLeft","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","abs","Label","Value","returnResponse","json"],"mappings":"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"}
\ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx_src/autocomplete.js b/searx/static/themes/simple/js/searx_src/autocomplete.js
deleted file mode 100644
index b95fbcfb2..000000000
--- a/searx/static/themes/simple/js/searx_src/autocomplete.js
+++ /dev/null
@@ -1,536 +0,0 @@
-(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-/*
- * @license MIT
- *
- * Autocomplete.js v2.6.3
- * Developed by Baptiste Donaux
- * http://autocomplete-js.com
- *
- * (c) 2017, Baptiste Donaux
- */
-"use strict";
-var ConditionOperator;
-(function (ConditionOperator) {
-    ConditionOperator[ConditionOperator["AND"] = 0] = "AND";
-    ConditionOperator[ConditionOperator["OR"] = 1] = "OR";
-})(ConditionOperator || (ConditionOperator = {}));
-var EventType;
-(function (EventType) {
-    EventType[EventType["KEYDOWN"] = 0] = "KEYDOWN";
-    EventType[EventType["KEYUP"] = 1] = "KEYUP";
-})(EventType || (EventType = {}));
-/**
- * Core
- *
- * @class
- * @author Baptiste Donaux <baptiste.donaux@gmail.com> @baptistedonaux
- */
-var AutoComplete = (function () {
-    // Constructor
-    function AutoComplete(params, selector) {
-        if (params === void 0) { params = {}; }
-        if (selector === void 0) { selector = "[data-autocomplete]"; }
-        if (Array.isArray(selector)) {
-            selector.forEach(function (s) {
-                new AutoComplete(params, s);
-            });
-        }
-        else if (typeof selector == "string") {
-            var elements = document.querySelectorAll(selector);
-            Array.prototype.forEach.call(elements, function (input) {
-                new AutoComplete(params, input);
-            });
-        }
-        else {
-            var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {
-                DOMResults: document.createElement("div")
-            });
-            AutoComplete.prototype.create(specificParams, selector);
-            return specificParams;
-        }
-    }
-    AutoComplete.prototype.create = function (params, element) {
-        params.Input = element;
-        if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute("type") === false || params.Input.getAttribute("type").match(/^TEXT|SEARCH$/i))) {
-            params.Input.setAttribute("autocomplete", "off");
-            params._Position(params);
-            params.Input.parentNode.appendChild(params.DOMResults);
-            params.$Listeners = {
-                blur: params._Blur.bind(params),
-                destroy: AutoComplete.prototype.destroy.bind(null, params),
-                focus: params._Focus.bind(params),
-                keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),
-                keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),
-                position: params._Position.bind(params)
-            };
-            for (var event in params.$Listeners) {
-                params.Input.addEventListener(event, params.$Listeners[event]);
-            }
-        }
-    };
-    AutoComplete.prototype.getEventsByType = function (params, type) {
-        var mappings = {};
-        for (var key in params.KeyboardMappings) {
-            var event = EventType.KEYUP;
-            if (params.KeyboardMappings[key].Event !== undefined) {
-                event = params.KeyboardMappings[key].Event;
-            }
-            if (event == type) {
-                mappings[key] = params.KeyboardMappings[key];
-            }
-        }
-        return mappings;
-    };
-    AutoComplete.prototype.event = function (params, type, event) {
-        var eventIdentifier = function (condition) {
-            if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {
-                condition = AutoComplete.merge({
-                    Not: false
-                }, condition);
-                if (condition.hasOwnProperty("Is")) {
-                    if (condition.Is == event.keyCode) {
-                        match = !condition.Not;
-                    }
-                    else {
-                        match = condition.Not;
-                    }
-                }
-                else if (condition.hasOwnProperty("From") && condition.hasOwnProperty("To")) {
-                    if (event.keyCode >= condition.From && event.keyCode <= condition.To) {
-                        match = !condition.Not;
-                    }
-                    else {
-                        match = condition.Not;
-                    }
-                }
-            }
-        };
-        for (var name in AutoComplete.prototype.getEventsByType(params, type)) {
-            var mapping = AutoComplete.merge({
-                Operator: ConditionOperator.AND
-            }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;
-            mapping.Conditions.forEach(eventIdentifier);
-            if (match === true) {
-                mapping.Callback.call(params, event);
-            }
-        }
-    };
-    AutoComplete.prototype.makeRequest = function (params, callback) {
-        var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + "=" + encodeURIComponent(queryParams);
-        if (method.match(/^GET$/i)) {
-            if (url.indexOf("?") !== -1) {
-                url += "&" + queryParamsStringify;
-            }
-            else {
-                url += "?" + queryParamsStringify;
-            }
-        }
-        request.open(method, url, true);
-        for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {
-            request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);
-        }
-        request.onreadystatechange = function () {
-            if (request.readyState == 4 && request.status == 200) {
-                params.$Cache[queryParams] = request.response;
-                callback(request.response);
-            }
-        };
-        return request;
-    };
-    AutoComplete.prototype.ajax = function (params, request, timeout) {
-        if (timeout === void 0) { timeout = true; }
-        if (params.$AjaxTimer) {
-            window.clearTimeout(params.$AjaxTimer);
-        }
-        if (timeout === true) {
-            params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);
-        }
-        else {
-            if (params.Request) {
-                params.Request.abort();
-            }
-            params.Request = request;
-            params.Request.send(params._QueryArg() + "=" + params._Pre());
-        }
-    };
-    AutoComplete.prototype.cache = function (params, callback) {
-        var response = params._Cache(params._Pre());
-        if (response === undefined) {
-            var request = AutoComplete.prototype.makeRequest(params, callback);
-            AutoComplete.prototype.ajax(params, request);
-        }
-        else {
-            callback(response);
-        }
-    };
-    AutoComplete.prototype.destroy = function (params) {
-        for (var event in params.$Listeners) {
-            params.Input.removeEventListener(event, params.$Listeners[event]);
-        }
-        params.DOMResults.parentNode.removeChild(params.DOMResults);
-    };
-    return AutoComplete;
-}());
-AutoComplete.merge = function () {
-    var merge = {}, tmp;
-    for (var i = 0; i < arguments.length; i++) {
-        for (tmp in arguments[i]) {
-            merge[tmp] = arguments[i][tmp];
-        }
-    }
-    return merge;
-};
-AutoComplete.defaults = {
-    Delay: 150,
-    EmptyMessage: "No result here",
-    Highlight: {
-        getRegex: function (value) {
-            return new RegExp(value, "ig");
-        },
-        transform: function (value) {
-            return "<strong>" + value + "</strong>";
-        }
-    },
-    HttpHeaders: {
-        "Content-type": "application/x-www-form-urlencoded"
-    },
-    Limit: 0,
-    MinChars: 0,
-    HttpMethod: "GET",
-    QueryArg: "q",
-    Url: null,
-    KeyboardMappings: {
-        "Enter": {
-            Conditions: [{
-                    Is: 13,
-                    Not: false
-                }],
-            Callback: function (event) {
-                if (this.DOMResults.getAttribute("class").indexOf("open") != -1) {
-                    var liActive = this.DOMResults.querySelector("li.active");
-                    if (liActive !== null) {
-                        event.preventDefault();
-                        this._Select(liActive);
-                        this.DOMResults.setAttribute("class", "autocomplete");
-                    }
-                }
-            },
-            Operator: ConditionOperator.AND,
-            Event: EventType.KEYDOWN
-        },
-        "KeyUpAndDown_down": {
-            Conditions: [{
-                    Is: 38,
-                    Not: false
-                },
-                {
-                    Is: 40,
-                    Not: false
-                }],
-            Callback: function (event) {
-                event.preventDefault();
-            },
-            Operator: ConditionOperator.OR,
-            Event: EventType.KEYDOWN
-        },
-        "KeyUpAndDown_up": {
-            Conditions: [{
-                    Is: 38,
-                    Not: false
-                },
-                {
-                    Is: 40,
-                    Not: false
-                }],
-            Callback: function (event) {
-                event.preventDefault();
-                var first = this.DOMResults.querySelector("li:first-child:not(.locked)"), last = this.DOMResults.querySelector("li:last-child:not(.locked)"), active = this.DOMResults.querySelector("li.active");
-                if (active) {
-                    var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName("li").length;
-                    if (position < 0) {
-                        position = lisCount - 1;
-                    }
-                    else if (position >= lisCount) {
-                        position = 0;
-                    }
-                    active.classList.remove("active");
-                    active.parentElement.children.item(position).classList.add("active");
-                }
-                else if (last && event.keyCode == 38) {
-                    last.classList.add("active");
-                }
-                else if (first) {
-                    first.classList.add("active");
-                }
-            },
-            Operator: ConditionOperator.OR,
-            Event: EventType.KEYUP
-        },
-        "AlphaNum": {
-            Conditions: [{
-                    Is: 13,
-                    Not: true
-                }, {
-                    From: 35,
-                    To: 40,
-                    Not: true
-                }],
-            Callback: function () {
-                var oldValue = this.Input.getAttribute("data-autocomplete-old-value"), currentValue = this._Pre();
-                if (currentValue !== "" && currentValue.length >= this._MinChars()) {
-                    if (!oldValue || currentValue != oldValue) {
-                        this.DOMResults.setAttribute("class", "autocomplete open");
-                    }
-                    AutoComplete.prototype.cache(this, function (response) {
-                        this._Render(this._Post(response));
-                        this._Open();
-                    }.bind(this));
-                }
-            },
-            Operator: ConditionOperator.AND,
-            Event: EventType.KEYUP
-        }
-    },
-    DOMResults: null,
-    Request: null,
-    Input: null,
-    /**
-     * Return the message when no result returns
-     */
-    _EmptyMessage: function () {
-        var emptyMessage = "";
-        if (this.Input.hasAttribute("data-autocomplete-empty-message")) {
-            emptyMessage = this.Input.getAttribute("data-autocomplete-empty-message");
-        }
-        else if (this.EmptyMessage !== false) {
-            emptyMessage = this.EmptyMessage;
-        }
-        else {
-            emptyMessage = "";
-        }
-        return emptyMessage;
-    },
-    /**
-     * Returns the maximum number of results
-     */
-    _Limit: function () {
-        var limit = this.Input.getAttribute("data-autocomplete-limit");
-        if (isNaN(limit) || limit === null) {
-            return this.Limit;
-        }
-        return parseInt(limit, 10);
-    },
-    /**
-     * Returns the minimum number of characters entered before firing ajax
-     */
-    _MinChars: function () {
-        var minchars = this.Input.getAttribute("data-autocomplete-minchars");
-        if (isNaN(minchars) || minchars === null) {
-            return this.MinChars;
-        }
-        return parseInt(minchars, 10);
-    },
-    /**
-     * Apply transformation on labels response
-     */
-    _Highlight: function (label) {
-        return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);
-    },
-    /**
-     * Returns the HHTP method to use
-     */
-    _HttpMethod: function () {
-        if (this.Input.hasAttribute("data-autocomplete-method")) {
-            return this.Input.getAttribute("data-autocomplete-method");
-        }
-        return this.HttpMethod;
-    },
-    /**
-     * Returns the query param to use
-     */
-    _QueryArg: function () {
-        if (this.Input.hasAttribute("data-autocomplete-param-name")) {
-            return this.Input.getAttribute("data-autocomplete-param-name");
-        }
-        return this.QueryArg;
-    },
-    /**
-     * Returns the URL to use for AJAX request
-     */
-    _Url: function () {
-        if (this.Input.hasAttribute("data-autocomplete")) {
-            return this.Input.getAttribute("data-autocomplete");
-        }
-        return this.Url;
-    },
-    /**
-     * Manage the close
-     */
-    _Blur: function (now) {
-        if (now === true) {
-            this.DOMResults.setAttribute("class", "autocomplete");
-            this.Input.setAttribute("data-autocomplete-old-value", this.Input.value);
-        }
-        else {
-            var params = this;
-            setTimeout(function () {
-                params._Blur(true);
-            }, 150);
-        }
-    },
-    /**
-     * Manage the cache
-     */
-    _Cache: function (value) {
-        return this.$Cache[value];
-    },
-    /**
-     * Manage the open
-     */
-    _Focus: function () {
-        var oldValue = this.Input.getAttribute("data-autocomplete-old-value");
-        if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {
-            this.DOMResults.setAttribute("class", "autocomplete open");
-        }
-    },
-    /**
-     * Bind all results item if one result is opened
-     */
-    _Open: function () {
-        var params = this;
-        Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"), function (li) {
-            if (li.getAttribute("class") != "locked") {
-		            li.onclick = function (event) {
-                    params._Select(li);
-                };
-                li.onmouseenter = function () {
-                    var active = params.DOMResults.querySelector("li.active");
-                    if (active !== li) {
-                        if (active !== null) {
-                            active.classList.remove("active");
-                        }
-                        li.classList.add("active");
-                    }
-                };
-            }
-        });
-    },
-    /**
-     * Position the results HTML element
-     */
-    _Position: function () {
-        this.DOMResults.setAttribute("class", "autocomplete");
-        this.DOMResults.setAttribute("style", "top:" + (this.Input.offsetTop + this.Input.offsetHeight) + "px;left:" + this.Input.offsetLeft + "px;width:" + this.Input.clientWidth + "px;");
-    },
-    /**
-     * Execute the render of results DOM element
-     */
-    _Render: function (response) {
-        var ul;
-        if (typeof response == "string") {
-            ul = this._RenderRaw(response);
-        }
-        else {
-            ul = this._RenderResponseItems(response);
-        }
-        if (this.DOMResults.hasChildNodes()) {
-            this.DOMResults.removeChild(this.DOMResults.childNodes[0]);
-        }
-        this.DOMResults.appendChild(ul);
-    },
-    /**
-     * ResponseItems[] rendering
-     */
-    _RenderResponseItems: function (response) {
-        var ul = document.createElement("ul"), li = document.createElement("li"), limit = this._Limit();
-        // Order
-        if (limit < 0) {
-            response = response.reverse();
-        }
-        else if (limit === 0) {
-            limit = response.length;
-        }
-        for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {
-            li.innerHTML = response[item].Label;
-            li.setAttribute("data-autocomplete-value", response[item].Value);
-            ul.appendChild(li);
-            li = document.createElement("li");
-        }
-        return ul;
-    },
-    /**
-     * string response rendering (RAW HTML)
-     */
-    _RenderRaw: function (response) {
-        var ul = document.createElement("ul"), li = document.createElement("li");
-        if (response.length > 0) {
-            this.DOMResults.innerHTML = response;
-        }
-        else {
-            var emptyMessage = this._EmptyMessage();
-            if (emptyMessage !== "") {
-                li.innerHTML = emptyMessage;
-                li.setAttribute("class", "locked");
-                ul.appendChild(li);
-            }
-        }
-        return ul;
-    },
-    /**
-     * Deal with request response
-     */
-    _Post: function (response) {
-        try {
-            var returnResponse = [];
-            //JSON return
-            var json = JSON.parse(response);
-            if (Object.keys(json).length === 0) {
-                return "";
-            }
-            if (Array.isArray(json)) {
-                for (var i = 0; i < Object.keys(json).length; i++) {
-                    returnResponse[returnResponse.length] = { "Value": json[i], "Label": this._Highlight(json[i]) };
-                }
-            }
-            else {
-                for (var value in json) {
-                    returnResponse.push({
-                        "Value": value,
-                        "Label": this._Highlight(json[value])
-                    });
-                }
-            }
-            return returnResponse;
-        }
-        catch (event) {
-            //HTML return
-            return response;
-        }
-    },
-    /**
-     * Return the autocomplete value to send (before request)
-     */
-    _Pre: function () {
-        return this.Input.value;
-    },
-    /**
-     * Choice one result item
-     */
-    _Select: function (item) {
-	console.log('test test test');
-        if (item.hasAttribute("data-autocomplete-value")) {
-            this.Input.value = item.getAttribute("data-autocomplete-value");
-        }
-        else {
-            this.Input.value = item.innerHTML;
-        }
-        this.Input.setAttribute("data-autocomplete-old-value", this.Input.value);
-    },
-    $AjaxTimer: null,
-    $Cache: {},
-    $Listeners: {}
-};
-module.exports = AutoComplete;
-
-},{}]},{},[1])(1)
-});
diff --git a/searx/static/themes/simple/leaflet/images/marker-icon-2x-green.png b/searx/static/themes/simple/leaflet/images/marker-icon-2x-green.png
deleted file mode 100644
index 7446bb031..000000000
Binary files a/searx/static/themes/simple/leaflet/images/marker-icon-2x-green.png and /dev/null differ
diff --git a/searx/static/themes/simple/leaflet/images/marker-icon-2x-orange.png b/searx/static/themes/simple/leaflet/images/marker-icon-2x-orange.png
deleted file mode 100644
index ecd67736f..000000000
Binary files a/searx/static/themes/simple/leaflet/images/marker-icon-2x-orange.png and /dev/null differ
diff --git a/searx/static/themes/simple/leaflet/images/marker-icon-2x-red.png b/searx/static/themes/simple/leaflet/images/marker-icon-2x-red.png
deleted file mode 100644
index 1d2e197c6..000000000
Binary files a/searx/static/themes/simple/leaflet/images/marker-icon-2x-red.png and /dev/null differ
diff --git a/searx/static/themes/simple/leaflet/images/marker-icon-green.png b/searx/static/themes/simple/leaflet/images/marker-icon-green.png
deleted file mode 100644
index f48ef41df..000000000
Binary files a/searx/static/themes/simple/leaflet/images/marker-icon-green.png and /dev/null differ
diff --git a/searx/static/themes/simple/leaflet/images/marker-icon-orange.png b/searx/static/themes/simple/leaflet/images/marker-icon-orange.png
deleted file mode 100644
index d0d22205c..000000000
Binary files a/searx/static/themes/simple/leaflet/images/marker-icon-orange.png and /dev/null differ
diff --git a/searx/static/themes/simple/leaflet/images/marker-icon-red.png b/searx/static/themes/simple/leaflet/images/marker-icon-red.png
deleted file mode 100644
index 7a92b9e04..000000000
Binary files a/searx/static/themes/simple/leaflet/images/marker-icon-red.png and /dev/null differ
diff --git a/searx/static/themes/simple/leaflet/leaflet.js b/searx/static/themes/simple/leaflet/leaflet.js
deleted file mode 100644
index 02ae624a7..000000000
--- a/searx/static/themes/simple/leaflet/leaflet.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/* @preserve
- * Leaflet 1.3.3+Detached: b22aef4aa71afd640bf8e91915b78899bf64ff89.b22aef4, a JS library for interactive maps. http://leafletjs.com
- * (c) 2010-2018 Vladimir Agafonkin, (c) 2010-2011 CloudMade
- */
-!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.L={})}(this,function(t){"use strict";function i(t){var i,e,n,o;for(e=1,n=arguments.length;e<n;e++){o=arguments[e];for(i in o)t[i]=o[i]}return t}function e(t,i){var e=Array.prototype.slice;if(t.bind)return t.bind.apply(t,e.call(arguments,1));var n=e.call(arguments,2);return function(){return t.apply(i,n.length?n.concat(e.call(arguments)):arguments)}}function n(t){return t._leaflet_id=t._leaflet_id||++ei,t._leaflet_id}function o(t,i,e){var n,o,s,r;return r=function(){n=!1,o&&(s.apply(e,o),o=!1)},s=function(){n?o=arguments:(t.apply(e,arguments),setTimeout(r,i),n=!0)}}function s(t,i,e){var n=i[1],o=i[0],s=n-o;return t===n&&e?t:((t-o)%s+s)%s+o}function r(){return!1}function a(t,i){var e=Math.pow(10,void 0===i?6:i);return Math.round(t*e)/e}function h(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function u(t){return h(t).split(/\s+/)}function l(t,i){t.hasOwnProperty("options")||(t.options=t.options?ii(t.options):{});for(var e in i)t.options[e]=i[e];return t.options}function c(t,i,e){var n=[];for(var o in t)n.push(encodeURIComponent(e?o.toUpperCase():o)+"="+encodeURIComponent(t[o]));return(i&&-1!==i.indexOf("?")?"&":"?")+n.join("&")}function _(t,i){return t.replace(ni,function(t,e){var n=i[e];if(void 0===n)throw new Error("No value provided for variable "+t);return"function"==typeof n&&(n=n(i)),n})}function d(t,i){for(var e=0;e<t.length;e++)if(t[e]===i)return e;return-1}function p(t){return window["webkit"+t]||window["moz"+t]||window["ms"+t]}function m(t){var i=+new Date,e=Math.max(0,16-(i-ri));return ri=i+e,window.setTimeout(t,e)}function f(t,i,n){if(!n||ai!==m)return ai.call(window,e(t,i));t.call(i)}function g(t){t&&hi.call(window,t)}function v(){}function y(t){if("undefined"!=typeof L&&L&&L.Mixin){t=oi(t)?t:[t];for(var i=0;i<t.length;i++)t[i]===L.Mixin.Events&&console.warn("Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.",(new Error).stack)}}function x(t,i,e){this.x=e?Math.round(t):t,this.y=e?Math.round(i):i}function w(t,i,e){return t instanceof x?t:oi(t)?new x(t[0],t[1]):void 0===t||null===t?t:"object"==typeof t&&"x"in t&&"y"in t?new x(t.x,t.y):new x(t,i,e)}function P(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function b(t,i){return!t||t instanceof P?t:new P(t,i)}function T(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function z(t,i){return t instanceof T?t:new T(t,i)}function M(t,i,e){if(isNaN(t)||isNaN(i))throw new Error("Invalid LatLng object: ("+t+", "+i+")");this.lat=+t,this.lng=+i,void 0!==e&&(this.alt=+e)}function C(t,i,e){return t instanceof M?t:oi(t)&&"object"!=typeof t[0]?3===t.length?new M(t[0],t[1],t[2]):2===t.length?new M(t[0],t[1]):null:void 0===t||null===t?t:"object"==typeof t&&"lat"in t?new M(t.lat,"lng"in t?t.lng:t.lon,t.alt):void 0===i?null:new M(t,i,e)}function S(t,i,e,n){if(oi(t))return this._a=t[0],this._b=t[1],this._c=t[2],void(this._d=t[3]);this._a=t,this._b=i,this._c=e,this._d=n}function Z(t,i,e,n){return new S(t,i,e,n)}function E(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function k(t,i){var e,n,o,s,r,a,h="";for(e=0,o=t.length;e<o;e++){for(n=0,s=(r=t[e]).length;n<s;n++)a=r[n],h+=(n?"L":"M")+a.x+" "+a.y;h+=i?Ji?"z":"x":""}return h||"M0 0"}function A(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}function B(t,i,e,n){return"touchstart"===i?O(t,e,n):"touchmove"===i?W(t,e,n):"touchend"===i&&H(t,e,n),this}function I(t,i,e){var n=t["_leaflet_"+i+e];return"touchstart"===i?t.removeEventListener(te,n,!1):"touchmove"===i?t.removeEventListener(ie,n,!1):"touchend"===i&&(t.removeEventListener(ee,n,!1),t.removeEventListener(ne,n,!1)),this}function O(t,i,n){var o=e(function(t){if("mouse"!==t.pointerType&&t.MSPOINTER_TYPE_MOUSE&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(oe.indexOf(t.target.tagName)<0))return;Pt(t)}j(t,i)});t["_leaflet_touchstart"+n]=o,t.addEventListener(te,o,!1),re||(document.documentElement.addEventListener(te,R,!0),document.documentElement.addEventListener(ie,N,!0),document.documentElement.addEventListener(ee,D,!0),document.documentElement.addEventListener(ne,D,!0),re=!0)}function R(t){se[t.pointerId]=t,ae++}function N(t){se[t.pointerId]&&(se[t.pointerId]=t)}function D(t){delete se[t.pointerId],ae--}function j(t,i){t.touches=[];for(var e in se)t.touches.push(se[e]);t.changedTouches=[t],i(t)}function W(t,i,e){var n=function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&j(t,i)};t["_leaflet_touchmove"+e]=n,t.addEventListener(ie,n,!1)}function H(t,i,e){var n=function(t){j(t,i)};t["_leaflet_touchend"+e]=n,t.addEventListener(ee,n,!1),t.addEventListener(ne,n,!1)}function F(t,i,e){function n(t){var i;if(Vi){if(!bi||"mouse"===t.pointerType)return;i=ae}else i=t.touches.length;if(!(i>1)){var e=Date.now(),n=e-(s||e);r=t.touches?t.touches[0]:t,a=n>0&&n<=h,s=e}}function o(t){if(a&&!r.cancelBubble){if(Vi){if(!bi||"mouse"===t.pointerType)return;var e,n,o={};for(n in r)e=r[n],o[n]=e&&e.bind?e.bind(r):e;r=o}r.type="dblclick",i(r),s=null}}var s,r,a=!1,h=250;return t[le+he+e]=n,t[le+ue+e]=o,t[le+"dblclick"+e]=i,t.addEventListener(he,n,!1),t.addEventListener(ue,o,!1),t.addEventListener("dblclick",i,!1),this}function U(t,i){var e=t[le+he+i],n=t[le+ue+i],o=t[le+"dblclick"+i];return t.removeEventListener(he,e,!1),t.removeEventListener(ue,n,!1),bi||t.removeEventListener("dblclick",o,!1),this}function V(t){return"string"==typeof t?document.getElementById(t):t}function q(t,i){var e=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!e||"auto"===e)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);e=n?n[i]:null}return"auto"===e?null:e}function G(t,i,e){var n=document.createElement(t);return n.className=i||"",e&&e.appendChild(n),n}function K(t){var i=t.parentNode;i&&i.removeChild(t)}function Y(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function X(t){var i=t.parentNode;i.lastChild!==t&&i.appendChild(t)}function J(t){var i=t.parentNode;i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function $(t,i){if(void 0!==t.classList)return t.classList.contains(i);var e=et(t);return e.length>0&&new RegExp("(^|\\s)"+i+"(\\s|$)").test(e)}function Q(t,i){if(void 0!==t.classList)for(var e=u(i),n=0,o=e.length;n<o;n++)t.classList.add(e[n]);else if(!$(t,i)){var s=et(t);it(t,(s?s+" ":"")+i)}}function tt(t,i){void 0!==t.classList?t.classList.remove(i):it(t,h((" "+et(t)+" ").replace(" "+i+" "," ")))}function it(t,i){void 0===t.className.baseVal?t.className=i:t.className.baseVal=i}function et(t){return void 0===t.className.baseVal?t.className:t.className.baseVal}function nt(t,i){"opacity"in t.style?t.style.opacity=i:"filter"in t.style&&ot(t,i)}function ot(t,i){var e=!1,n="DXImageTransform.Microsoft.Alpha";try{e=t.filters.item(n)}catch(t){if(1===i)return}i=Math.round(100*i),e?(e.Enabled=100!==i,e.Opacity=i):t.style.filter+=" progid:"+n+"(opacity="+i+")"}function st(t){for(var i=document.documentElement.style,e=0;e<t.length;e++)if(t[e]in i)return t[e];return!1}function rt(t,i,e){var n=i||new x(0,0);t.style[ce]=(Ri?"translate("+n.x+"px,"+n.y+"px)":"translate3d("+n.x+"px,"+n.y+"px,0)")+(e?" scale("+e+")":"")}function at(t,i){t._leaflet_pos=i,ji?rt(t,i):(t.style.left=i.x+"px",t.style.top=i.y+"px")}function ht(t){return t._leaflet_pos||new x(0,0)}function ut(){mt(window,"dragstart",Pt)}function lt(){ft(window,"dragstart",Pt)}function ct(t){for(;-1===t.tabIndex;)t=t.parentNode;t.style&&(_t(),me=t,fe=t.style.outline,t.style.outline="none",mt(window,"keydown",_t))}function _t(){me&&(me.style.outline=fe,me=void 0,fe=void 0,ft(window,"keydown",_t))}function dt(t){do{t=t.parentNode}while(!(t.offsetWidth&&t.offsetHeight||t===document.body));return t}function pt(t){var i=t.getBoundingClientRect();return{x:i.width/t.offsetWidth||1,y:i.height/t.offsetHeight||1,boundingClientRect:i}}function mt(t,i,e,n){if("object"==typeof i)for(var o in i)gt(t,o,i[o],e);else for(var s=0,r=(i=u(i)).length;s<r;s++)gt(t,i[s],e,n);return this}function ft(t,i,e,n){if("object"==typeof i)for(var o in i)vt(t,o,i[o],e);else if(i)for(var s=0,r=(i=u(i)).length;s<r;s++)vt(t,i[s],e,n);else{for(var a in t[ye])vt(t,a,t[ye][a]);delete t[ye]}return this}function gt(t,i,e,o){var s=i+n(e)+(o?"_"+n(o):"");if(t[ye]&&t[ye][s])return this;var r=function(i){return e.call(o||t,i||window.event)},a=r;Vi&&0===i.indexOf("touch")?B(t,i,r,s):!qi||"dblclick"!==i||!F||Vi&&Ei?"addEventListener"in t?"mousewheel"===i?t.addEventListener("onwheel"in t?"wheel":"mousewheel",r,!1):"mouseenter"===i||"mouseleave"===i?(r=function(i){i=i||window.event,Ct(t,i)&&a(i)},t.addEventListener("mouseenter"===i?"mouseover":"mouseout",r,!1)):("click"===i&&zi&&(r=function(t){St(t,a)}),t.addEventListener(i,r,!1)):"attachEvent"in t&&t.attachEvent("on"+i,r):F(t,r,s),t[ye]=t[ye]||{},t[ye][s]=r}function vt(t,i,e,o){var s=i+n(e)+(o?"_"+n(o):""),r=t[ye]&&t[ye][s];if(!r)return this;Vi&&0===i.indexOf("touch")?I(t,i,s):!qi||"dblclick"!==i||!U||Vi&&Ei?"removeEventListener"in t?"mousewheel"===i?t.removeEventListener("onwheel"in t?"wheel":"mousewheel",r,!1):t.removeEventListener("mouseenter"===i?"mouseover":"mouseleave"===i?"mouseout":i,r,!1):"detachEvent"in t&&t.detachEvent("on"+i,r):U(t,s),t[ye][s]=null}function yt(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,Mt(t),this}function xt(t){return gt(t,"mousewheel",yt),this}function wt(t){return mt(t,"mousedown touchstart dblclick",yt),gt(t,"click",zt),this}function Pt(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Lt(t){return Pt(t),yt(t),this}function bt(t,i){if(!i)return new x(t.clientX,t.clientY);var e=pt(i),n=e.boundingClientRect;return new x((t.clientX-n.left)/e.x-i.clientLeft,(t.clientY-n.top)/e.y-i.clientTop)}function Tt(t){return bi?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/xe:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function zt(t){we[t.type]=!0}function Mt(t){var i=we[t.type];return we[t.type]=!1,i}function Ct(t,i){var e=i.relatedTarget;if(!e)return!0;try{for(;e&&e!==t;)e=e.parentNode}catch(t){return!1}return e!==t}function St(t,i){var e=t.timeStamp||t.originalEvent&&t.originalEvent.timeStamp,n=ge&&e-ge;n&&n>100&&n<500||t.target._simulatedClick&&!t._simulated?Lt(t):(ge=e,i(t))}function Zt(t,i){if(!i||!t.length)return t.slice();var e=i*i;return t=Bt(t,e),t=kt(t,e)}function Et(t,i,e){return Math.sqrt(Dt(t,i,e,!0))}function kt(t,i){var e=t.length,n=new(typeof Uint8Array!=void 0+""?Uint8Array:Array)(e);n[0]=n[e-1]=1,At(t,n,i,0,e-1);var o,s=[];for(o=0;o<e;o++)n[o]&&s.push(t[o]);return s}function At(t,i,e,n,o){var s,r,a,h=0;for(r=n+1;r<=o-1;r++)(a=Dt(t[r],t[n],t[o],!0))>h&&(s=r,h=a);h>e&&(i[s]=1,At(t,i,e,n,s),At(t,i,e,s,o))}function Bt(t,i){for(var e=[t[0]],n=1,o=0,s=t.length;n<s;n++)Nt(t[n],t[o])>i&&(e.push(t[n]),o=n);return o<s-1&&e.push(t[s-1]),e}function It(t,i,e,n,o){var s,r,a,h=n?ke:Rt(t,e),u=Rt(i,e);for(ke=u;;){if(!(h|u))return[t,i];if(h&u)return!1;a=Rt(r=Ot(t,i,s=h||u,e,o),e),s===h?(t=r,h=a):(i=r,u=a)}}function Ot(t,i,e,n,o){var s,r,a=i.x-t.x,h=i.y-t.y,u=n.min,l=n.max;return 8&e?(s=t.x+a*(l.y-t.y)/h,r=l.y):4&e?(s=t.x+a*(u.y-t.y)/h,r=u.y):2&e?(s=l.x,r=t.y+h*(l.x-t.x)/a):1&e&&(s=u.x,r=t.y+h*(u.x-t.x)/a),new x(s,r,o)}function Rt(t,i){var e=0;return t.x<i.min.x?e|=1:t.x>i.max.x&&(e|=2),t.y<i.min.y?e|=4:t.y>i.max.y&&(e|=8),e}function Nt(t,i){var e=i.x-t.x,n=i.y-t.y;return e*e+n*n}function Dt(t,i,e,n){var o,s=i.x,r=i.y,a=e.x-s,h=e.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=e.x,r=e.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new x(s,r)}function jt(t){return!oi(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function Wt(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),jt(t)}function Ht(t,i,e){var n,o,s,r,a,h,u,l,c,_=[1,4,2,8];for(o=0,u=t.length;o<u;o++)t[o]._code=Rt(t[o],i);for(r=0;r<4;r++){for(l=_[r],n=[],o=0,s=(u=t.length)-1;o<u;s=o++)a=t[o],h=t[s],a._code&l?h._code&l||((c=Ot(h,a,l,i,e))._code=Rt(c,i),n.push(c)):(h._code&l&&((c=Ot(h,a,l,i,e))._code=Rt(c,i),n.push(c)),n.push(a));t=n}return t}function Ft(t,i){var e,n,o,s,r="Feature"===t.type?t.geometry:t,a=r?r.coordinates:null,h=[],u=i&&i.pointToLayer,l=i&&i.coordsToLatLng||Ut;if(!a&&!r)return null;switch(r.type){case"Point":return e=l(a),u?u(t,e):new $e(e);case"MultiPoint":for(o=0,s=a.length;o<s;o++)e=l(a[o]),h.push(u?u(t,e):new $e(e));return new Ke(h);case"LineString":case"MultiLineString":return n=Vt(a,"LineString"===r.type?0:1,l),new nn(n,i);case"Polygon":case"MultiPolygon":return n=Vt(a,"Polygon"===r.type?1:2,l),new on(n,i);case"GeometryCollection":for(o=0,s=r.geometries.length;o<s;o++){var c=Ft({geometry:r.geometries[o],type:"Feature",properties:t.properties},i);c&&h.push(c)}return new Ke(h);default:throw new Error("Invalid GeoJSON object.")}}function Ut(t){return new M(t[1],t[0],t[2])}function Vt(t,i,e){for(var n,o=[],s=0,r=t.length;s<r;s++)n=i?Vt(t[s],i-1,e):(e||Ut)(t[s]),o.push(n);return o}function qt(t,i){return i="number"==typeof i?i:6,void 0!==t.alt?[a(t.lng,i),a(t.lat,i),a(t.alt,i)]:[a(t.lng,i),a(t.lat,i)]}function Gt(t,i,e,n){for(var o=[],s=0,r=t.length;s<r;s++)o.push(i?Gt(t[s],i-1,e,n):qt(t[s],n));return!i&&e&&o.push(o[0]),o}function Kt(t,e){return t.feature?i({},t.feature,{geometry:e}):Yt(e)}function Yt(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}function Xt(t,i){return new sn(t,i)}function Jt(t,i){return new mn(t,i)}function $t(t){return Xi?new vn(t):null}function Qt(t){return Ji||$i?new Pn(t):null}var ti=Object.freeze;Object.freeze=function(t){return t};var ii=Object.create||function(){function t(){}return function(i){return t.prototype=i,new t}}(),ei=0,ni=/\{ *([\w_-]+) *\}/g,oi=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},si="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",ri=0,ai=window.requestAnimationFrame||p("RequestAnimationFrame")||m,hi=window.cancelAnimationFrame||p("CancelAnimationFrame")||p("CancelRequestAnimationFrame")||function(t){window.clearTimeout(t)},ui=(Object.freeze||Object)({freeze:ti,extend:i,create:ii,bind:e,lastId:ei,stamp:n,throttle:o,wrapNum:s,falseFn:r,formatNum:a,trim:h,splitWords:u,setOptions:l,getParamString:c,template:_,isArray:oi,indexOf:d,emptyImageUrl:si,requestFn:ai,cancelFn:hi,requestAnimFrame:f,cancelAnimFrame:g});v.extend=function(t){var e=function(){this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()},n=e.__super__=this.prototype,o=ii(n);o.constructor=e,e.prototype=o;for(var s in this)this.hasOwnProperty(s)&&"prototype"!==s&&"__super__"!==s&&(e[s]=this[s]);return t.statics&&(i(e,t.statics),delete t.statics),t.includes&&(y(t.includes),i.apply(null,[o].concat(t.includes)),delete t.includes),o.options&&(t.options=i(ii(o.options),t.options)),i(o,t),o._initHooks=[],o.callInitHooks=function(){if(!this._initHooksCalled){n.callInitHooks&&n.callInitHooks.call(this),this._initHooksCalled=!0;for(var t=0,i=o._initHooks.length;t<i;t++)o._initHooks[t].call(this)}},e},v.include=function(t){return i(this.prototype,t),this},v.mergeOptions=function(t){return i(this.prototype.options,t),this},v.addInitHook=function(t){var i=Array.prototype.slice.call(arguments,1),e="function"==typeof t?t:function(){this[t].apply(this,i)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(e),this};var li={on:function(t,i,e){if("object"==typeof t)for(var n in t)this._on(n,t[n],i);else for(var o=0,s=(t=u(t)).length;o<s;o++)this._on(t[o],i,e);return this},off:function(t,i,e){if(t)if("object"==typeof t)for(var n in t)this._off(n,t[n],i);else for(var o=0,s=(t=u(t)).length;o<s;o++)this._off(t[o],i,e);else delete this._events;return this},_on:function(t,i,e){this._events=this._events||{};var n=this._events[t];n||(n=[],this._events[t]=n),e===this&&(e=void 0);for(var o={fn:i,ctx:e},s=n,r=0,a=s.length;r<a;r++)if(s[r].fn===i&&s[r].ctx===e)return;s.push(o)},_off:function(t,i,e){var n,o,s;if(this._events&&(n=this._events[t]))if(i){if(e===this&&(e=void 0),n)for(o=0,s=n.length;o<s;o++){var a=n[o];if(a.ctx===e&&a.fn===i)return a.fn=r,this._firingCount&&(this._events[t]=n=n.slice()),void n.splice(o,1)}}else{for(o=0,s=n.length;o<s;o++)n[o].fn=r;delete this._events[t]}},fire:function(t,e,n){if(!this.listens(t,n))return this;var o=i({},e,{type:t,target:this,sourceTarget:e&&e.sourceTarget||this});if(this._events){var s=this._events[t];if(s){this._firingCount=this._firingCount+1||1;for(var r=0,a=s.length;r<a;r++){var h=s[r];h.fn.call(h.ctx||this,o)}this._firingCount--}}return n&&this._propagateEvent(o),this},listens:function(t,i){var e=this._events&&this._events[t];if(e&&e.length)return!0;if(i)for(var n in this._eventParents)if(this._eventParents[n].listens(t,i))return!0;return!1},once:function(t,i,n){if("object"==typeof t){for(var o in t)this.once(o,t[o],i);return this}var s=e(function(){this.off(t,i,n).off(t,s,n)},this);return this.on(t,i,n).on(t,s,n)},addEventParent:function(t){return this._eventParents=this._eventParents||{},this._eventParents[n(t)]=t,this},removeEventParent:function(t){return this._eventParents&&delete this._eventParents[n(t)],this},_propagateEvent:function(t){for(var e in this._eventParents)this._eventParents[e].fire(t.type,i({layer:t.target,propagatedFrom:t.target},t),!0)}};li.addEventListener=li.on,li.removeEventListener=li.clearAllEventListeners=li.off,li.addOneTimeEventListener=li.once,li.fireEvent=li.fire,li.hasEventListeners=li.listens;var ci=v.extend(li),_i=Math.trunc||function(t){return t>0?Math.floor(t):Math.ceil(t)};x.prototype={clone:function(){return new x(this.x,this.y)},add:function(t){return this.clone()._add(w(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(w(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new x(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new x(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=_i(this.x),this.y=_i(this.y),this},distanceTo:function(t){var i=(t=w(t)).x-this.x,e=t.y-this.y;return Math.sqrt(i*i+e*e)},equals:function(t){return(t=w(t)).x===this.x&&t.y===this.y},contains:function(t){return t=w(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+a(this.x)+", "+a(this.y)+")"}},P.prototype={extend:function(t){return t=w(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new x((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new x(this.min.x,this.max.y)},getTopRight:function(){return new x(this.max.x,this.min.y)},getTopLeft:function(){return this.min},getBottomRight:function(){return this.max},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var i,e;return(t="number"==typeof t[0]||t instanceof x?w(t):b(t))instanceof P?(i=t.min,e=t.max):i=e=t,i.x>=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=b(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>=i.x&&n.x<=e.x,r=o.y>=i.y&&n.y<=e.y;return s&&r},overlaps:function(t){t=b(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>i.x&&n.x<e.x,r=o.y>i.y&&n.y<e.y;return s&&r},isValid:function(){return!(!this.min||!this.max)}},T.prototype={extend:function(t){var i,e,n=this._southWest,o=this._northEast;if(t instanceof M)i=t,e=t;else{if(!(t instanceof T))return t?this.extend(C(t)||z(t)):this;if(i=t._southWest,e=t._northEast,!i||!e)return this}return n||o?(n.lat=Math.min(i.lat,n.lat),n.lng=Math.min(i.lng,n.lng),o.lat=Math.max(e.lat,o.lat),o.lng=Math.max(e.lng,o.lng)):(this._southWest=new M(i.lat,i.lng),this._northEast=new M(e.lat,e.lng)),this},pad:function(t){var i=this._southWest,e=this._northEast,n=Math.abs(i.lat-e.lat)*t,o=Math.abs(i.lng-e.lng)*t;return new T(new M(i.lat-n,i.lng-o),new M(e.lat+n,e.lng+o))},getCenter:function(){return new M((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new M(this.getNorth(),this.getWest())},getSouthEast:function(){return new M(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t="number"==typeof t[0]||t instanceof M||"lat"in t?C(t):z(t);var i,e,n=this._southWest,o=this._northEast;return t instanceof T?(i=t.getSouthWest(),e=t.getNorthEast()):i=e=t,i.lat>=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=i.lat&&n.lat<=e.lat,r=o.lng>=i.lng&&n.lng<=e.lng;return s&&r},overlaps:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>i.lat&&n.lat<e.lat,r=o.lng>i.lng&&n.lng<e.lng;return s&&r},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t,i){return!!t&&(t=z(t),this._southWest.equals(t.getSouthWest(),i)&&this._northEast.equals(t.getNorthEast(),i))},isValid:function(){return!(!this._southWest||!this._northEast)}},M.prototype={equals:function(t,i){return!!t&&(t=C(t),Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng))<=(void 0===i?1e-9:i))},toString:function(t){return"LatLng("+a(this.lat,t)+", "+a(this.lng,t)+")"},distanceTo:function(t){return pi.distance(this,C(t))},wrap:function(){return pi.wrapLatLng(this)},toBounds:function(t){var i=180*t/40075017,e=i/Math.cos(Math.PI/180*this.lat);return z([this.lat-i,this.lng-e],[this.lat+i,this.lng+e])},clone:function(){return new M(this.lat,this.lng,this.alt)}};var di={latLngToPoint:function(t,i){var e=this.projection.project(t),n=this.scale(i);return this.transformation._transform(e,n)},pointToLatLng:function(t,i){var e=this.scale(i),n=this.transformation.untransform(t,e);return this.projection.unproject(n)},project:function(t){return this.projection.project(t)},unproject:function(t){return this.projection.unproject(t)},scale:function(t){return 256*Math.pow(2,t)},zoom:function(t){return Math.log(t/256)/Math.LN2},getProjectedBounds:function(t){if(this.infinite)return null;var i=this.projection.bounds,e=this.scale(t);return new P(this.transformation.transform(i.min,e),this.transformation.transform(i.max,e))},infinite:!1,wrapLatLng:function(t){var i=this.wrapLng?s(t.lng,this.wrapLng,!0):t.lng;return new M(this.wrapLat?s(t.lat,this.wrapLat,!0):t.lat,i,t.alt)},wrapLatLngBounds:function(t){var i=t.getCenter(),e=this.wrapLatLng(i),n=i.lat-e.lat,o=i.lng-e.lng;if(0===n&&0===o)return t;var s=t.getSouthWest(),r=t.getNorthEast();return new T(new M(s.lat-n,s.lng-o),new M(r.lat-n,r.lng-o))}},pi=i({},di,{wrapLng:[-180,180],R:6371e3,distance:function(t,i){var e=Math.PI/180,n=t.lat*e,o=i.lat*e,s=Math.sin((i.lat-t.lat)*e/2),r=Math.sin((i.lng-t.lng)*e/2),a=s*s+Math.cos(n)*Math.cos(o)*r*r,h=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));return this.R*h}}),mi={R:6378137,MAX_LATITUDE:85.0511287798,project:function(t){var i=Math.PI/180,e=this.MAX_LATITUDE,n=Math.max(Math.min(e,t.lat),-e),o=Math.sin(n*i);return new x(this.R*t.lng*i,this.R*Math.log((1+o)/(1-o))/2)},unproject:function(t){var i=180/Math.PI;return new M((2*Math.atan(Math.exp(t.y/this.R))-Math.PI/2)*i,t.x*i/this.R)},bounds:function(){var t=6378137*Math.PI;return new P([-t,-t],[t,t])}()};S.prototype={transform:function(t,i){return this._transform(t.clone(),i)},_transform:function(t,i){return i=i||1,t.x=i*(this._a*t.x+this._b),t.y=i*(this._c*t.y+this._d),t},untransform:function(t,i){return i=i||1,new x((t.x/i-this._b)/this._a,(t.y/i-this._d)/this._c)}};var fi,gi,vi,yi=i({},pi,{code:"EPSG:3857",projection:mi,transformation:function(){var t=.5/(Math.PI*mi.R);return Z(t,.5,-t,.5)}()}),xi=i({},yi,{code:"EPSG:900913"}),wi=document.documentElement.style,Pi="ActiveXObject"in window,Li=Pi&&!document.addEventListener,bi="msLaunchUri"in navigator&&!("documentMode"in document),Ti=A("webkit"),zi=A("android"),Mi=A("android 2")||A("android 3"),Ci=parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1],10),Si=zi&&A("Google")&&Ci<537&&!("AudioNode"in window),Zi=!!window.opera,Ei=A("chrome"),ki=A("gecko")&&!Ti&&!Zi&&!Pi,Ai=!Ei&&A("safari"),Bi=A("phantom"),Ii="OTransition"in wi,Oi=0===navigator.platform.indexOf("Win"),Ri=Pi&&"transition"in wi,Ni="WebKitCSSMatrix"in window&&"m11"in new window.WebKitCSSMatrix&&!Mi,Di="MozPerspective"in wi,ji=!window.L_DISABLE_3D&&(Ri||Ni||Di)&&!Ii&&!Bi,Wi="undefined"!=typeof orientation||A("mobile"),Hi=Wi&&Ti,Fi=Wi&&Ni,Ui=!window.PointerEvent&&window.MSPointerEvent,Vi=!(!window.PointerEvent&&!Ui),qi=!window.L_NO_TOUCH&&(Vi||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),Gi=Wi&&Zi,Ki=Wi&&ki,Yi=(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI)>1,Xi=!!document.createElement("canvas").getContext,Ji=!(!document.createElementNS||!E("svg").createSVGRect),$i=!Ji&&function(){try{var t=document.createElement("div");t.innerHTML='<v:shape adj="1"/>';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}(),Qi=(Object.freeze||Object)({ie:Pi,ielt9:Li,edge:bi,webkit:Ti,android:zi,android23:Mi,androidStock:Si,opera:Zi,chrome:Ei,gecko:ki,safari:Ai,phantom:Bi,opera12:Ii,win:Oi,ie3d:Ri,webkit3d:Ni,gecko3d:Di,any3d:ji,mobile:Wi,mobileWebkit:Hi,mobileWebkit3d:Fi,msPointer:Ui,pointer:Vi,touch:qi,mobileOpera:Gi,mobileGecko:Ki,retina:Yi,canvas:Xi,svg:Ji,vml:$i}),te=Ui?"MSPointerDown":"pointerdown",ie=Ui?"MSPointerMove":"pointermove",ee=Ui?"MSPointerUp":"pointerup",ne=Ui?"MSPointerCancel":"pointercancel",oe=["INPUT","SELECT","OPTION"],se={},re=!1,ae=0,he=Ui?"MSPointerDown":Vi?"pointerdown":"touchstart",ue=Ui?"MSPointerUp":Vi?"pointerup":"touchend",le="_leaflet_",ce=st(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]),_e=st(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===_e||"OTransition"===_e?_e+"End":"transitionend";if("onselectstart"in document)fi=function(){mt(window,"selectstart",Pt)},gi=function(){ft(window,"selectstart",Pt)};else{var pe=st(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);fi=function(){if(pe){var t=document.documentElement.style;vi=t[pe],t[pe]="none"}},gi=function(){pe&&(document.documentElement.style[pe]=vi,vi=void 0)}}var me,fe,ge,ve=(Object.freeze||Object)({TRANSFORM:ce,TRANSITION:_e,TRANSITION_END:de,get:V,getStyle:q,create:G,remove:K,empty:Y,toFront:X,toBack:J,hasClass:$,addClass:Q,removeClass:tt,setClass:it,getClass:et,setOpacity:nt,testProp:st,setTransform:rt,setPosition:at,getPosition:ht,disableTextSelection:fi,enableTextSelection:gi,disableImageDrag:ut,enableImageDrag:lt,preventOutline:ct,restoreOutline:_t,getSizedParentNode:dt,getScale:pt}),ye="_leaflet_events",xe=Oi&&Ei?2*window.devicePixelRatio:ki?window.devicePixelRatio:1,we={},Pe=(Object.freeze||Object)({on:mt,off:ft,stopPropagation:yt,disableScrollPropagation:xt,disableClickPropagation:wt,preventDefault:Pt,stop:Lt,getMousePosition:bt,getWheelDelta:Tt,fakeStop:zt,skipped:Mt,isExternalTarget:Ct,addListener:mt,removeListener:ft}),Le=ci.extend({run:function(t,i,e,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=e||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=ht(t),this._offset=i.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=f(this._animate,this),this._step()},_step:function(t){var i=+new Date-this._startTime,e=1e3*this._duration;i<e?this._runFrame(this._easeOut(i/e),t):(this._runFrame(1),this._complete())},_runFrame:function(t,i){var e=this._startPos.add(this._offset.multiplyBy(t));i&&e._round(),at(this._el,e),this.fire("step")},_complete:function(){g(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),be=ci.extend({options:{crs:yi,center:void 0,zoom:void 0,minZoom:void 0,maxZoom:void 0,layers:[],maxBounds:void 0,renderer:void 0,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,i){i=l(this,i),this._initContainer(t),this._initLayout(),this._onResize=e(this._onResize,this),this._initEvents(),i.maxBounds&&this.setMaxBounds(i.maxBounds),void 0!==i.zoom&&(this._zoom=this._limitZoom(i.zoom)),i.center&&void 0!==i.zoom&&this.setView(C(i.center),i.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this.callInitHooks(),this._zoomAnimated=_e&&ji&&!Gi&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),mt(this._proxy,de,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(t,e,n){return e=void 0===e?this._zoom:this._limitZoom(e),t=this._limitCenter(C(t),e,this.options.maxBounds),n=n||{},this._stop(),this._loaded&&!n.reset&&!0!==n&&(void 0!==n.animate&&(n.zoom=i({animate:n.animate},n.zoom),n.pan=i({animate:n.animate,duration:n.duration},n.pan)),this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,n.zoom):this._tryAnimatedPan(t,n.pan))?(clearTimeout(this._sizeTimer),this):(this._resetView(t,e),this)},setZoom:function(t,i){return this._loaded?this.setView(this.getCenter(),t,{zoom:i}):(this._zoom=t,this)},zoomIn:function(t,i){return t=t||(ji?this.options.zoomDelta:1),this.setZoom(this._zoom+t,i)},zoomOut:function(t,i){return t=t||(ji?this.options.zoomDelta:1),this.setZoom(this._zoom-t,i)},setZoomAround:function(t,i,e){var n=this.getZoomScale(i),o=this.getSize().divideBy(2),s=(t instanceof x?t:this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1-1/n),r=this.containerPointToLatLng(o.add(s));return this.setView(r,i,{zoom:e})},_getBoundsCenterZoom:function(t,i){i=i||{},t=t.getBounds?t.getBounds():z(t);var e=w(i.paddingTopLeft||i.padding||[0,0]),n=w(i.paddingBottomRight||i.padding||[0,0]),o=this.getBoundsZoom(t,!1,e.add(n));if((o="number"==typeof i.maxZoom?Math.min(i.maxZoom,o):o)===1/0)return{center:t.getCenter(),zoom:o};var s=n.subtract(e).divideBy(2),r=this.project(t.getSouthWest(),o),a=this.project(t.getNorthEast(),o);return{center:this.unproject(r.add(a).divideBy(2).add(s),o),zoom:o}},fitBounds:function(t,i){if(!(t=z(t)).isValid())throw new Error("Bounds are not valid.");var e=this._getBoundsCenterZoom(t,i);return this.setView(e.center,e.zoom,i)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,i){return this.setView(t,this._zoom,{pan:i})},panBy:function(t,i){if(t=w(t).round(),i=i||{},!t.x&&!t.y)return this.fire("moveend");if(!0!==i.animate&&!this.getSize().contains(t))return this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this;if(this._panAnim||(this._panAnim=new Le,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),i.noMoveStart||this.fire("movestart"),!1!==i.animate){Q(this._mapPane,"leaflet-pan-anim");var e=this._getMapPanePos().subtract(t).round();this._panAnim.run(this._mapPane,e,i.duration||.25,i.easeLinearity)}else this._rawPanBy(t),this.fire("move").fire("moveend");return this},flyTo:function(t,i,e){function n(t){var i=(g*g-m*m+(t?-1:1)*x*x*v*v)/(2*(t?g:m)*x*v),e=Math.sqrt(i*i+1)-i;return e<1e-9?-18:Math.log(e)}function o(t){return(Math.exp(t)-Math.exp(-t))/2}function s(t){return(Math.exp(t)+Math.exp(-t))/2}function r(t){return o(t)/s(t)}function a(t){return m*(s(w)/s(w+y*t))}function h(t){return m*(s(w)*r(w+y*t)-o(w))/x}function u(t){return 1-Math.pow(1-t,1.5)}function l(){var e=(Date.now()-P)/b,n=u(e)*L;e<=1?(this._flyToFrame=f(l,this),this._move(this.unproject(c.add(_.subtract(c).multiplyBy(h(n)/v)),p),this.getScaleZoom(m/a(n),p),{flyTo:!0})):this._move(t,i)._moveEnd(!0)}if(!1===(e=e||{}).animate||!ji)return this.setView(t,i,e);this._stop();var c=this.project(this.getCenter()),_=this.project(t),d=this.getSize(),p=this._zoom;t=C(t),i=void 0===i?p:i;var m=Math.max(d.x,d.y),g=m*this.getZoomScale(p,i),v=_.distanceTo(c)||1,y=1.42,x=y*y,w=n(0),P=Date.now(),L=(n(1)-w)/y,b=e.duration?1e3*e.duration:1e3*L*.8;return this._moveStart(!0,e.noMoveStart),l.call(this),this},flyToBounds:function(t,i){var e=this._getBoundsCenterZoom(t,i);return this.flyTo(e.center,e.zoom,i)},setMaxBounds:function(t){return(t=z(t)).isValid()?(this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds)):(this.options.maxBounds=null,this.off("moveend",this._panInsideMaxBounds))},setMinZoom:function(t){var i=this.options.minZoom;return this.options.minZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()<this.options.minZoom)?this.setZoom(t):this},setMaxZoom:function(t){var i=this.options.maxZoom;return this.options.maxZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()>this.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var e=this.getCenter(),n=this._limitCenter(e,this._zoom,z(t));return e.equals(n)||this.panTo(n,i),this._enforcingBounds=!1,this},invalidateSize:function(t){if(!this._loaded)return this;t=i({animate:!1,pan:!0},!0===t?{animate:!0}:t);var n=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=n.divideBy(2).round(),r=o.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(e(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:n,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=i({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var n=e(this._handleGeolocationResponse,this),o=e(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(n,o,t):navigator.geolocation.getCurrentPosition(n,o,t),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 i=t.code,e=t.message||(1===i?"permission denied":2===i?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:i,message:"Geolocation error: "+e+"."})},_handleGeolocationResponse:function(t){var i=new M(t.coords.latitude,t.coords.longitude),e=i.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(e);this.setView(i,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:i,bounds:e,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)},addHandler:function(t,i){if(!i)return this;var e=this[t]=new i(this);return this._handlers.push(e),this.options[t]&&e.enable(),this},remove:function(){if(this._initEvents(!0),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}void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),K(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(g(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload");var t;for(t in this._layers)this._layers[t].remove();for(t in this._panes)K(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,i){var e=G("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),i||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new T(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,i,e){t=z(t),e=w(e||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(e),u=b(this.project(a,n),this.project(r,n)).getSize(),l=ji?this.options.zoomSnap:1,c=h.x/u.x,_=h.y/u.y,d=i?Math.max(c,_):Math.min(c,_);return n=this.getScaleZoom(d,n),l&&(n=Math.round(n/(l/100))*(l/100),n=i?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new x(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){var e=this._getTopLeftPoint(t,i);return new P(e,e.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,i){var e=this.options.crs;return i=void 0===i?this._zoom:i,e.scale(t)/e.scale(i)},getScaleZoom:function(t,i){var e=this.options.crs;i=void 0===i?this._zoom:i;var n=e.zoom(t*e.scale(i));return isNaN(n)?1/0:n},project:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.latLngToPoint(C(t),i)},unproject:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.pointToLatLng(w(t),i)},layerPointToLatLng:function(t){var i=w(t).add(this.getPixelOrigin());return this.unproject(i)},latLngToLayerPoint:function(t){return this.project(C(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(C(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(z(t))},distance:function(t,i){return this.options.crs.distance(C(t),C(i))},containerPointToLayerPoint:function(t){return w(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return w(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var i=this.containerPointToLayerPoint(w(t));return this.layerPointToLatLng(i)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(C(t)))},mouseEventToContainerPoint:function(t){return bt(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var i=this._container=V(t);if(!i)throw new Error("Map container not found.");if(i._leaflet_id)throw new Error("Map container is already initialized.");mt(i,"scroll",this._onScroll,this),this._containerId=n(i)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&ji,Q(t,"leaflet-container"+(qi?" leaflet-touch":"")+(Yi?" leaflet-retina":"")+(Li?" leaflet-oldie":"")+(Ai?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var i=q(t,"position");"absolute"!==i&&"relative"!==i&&"fixed"!==i&&(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),at(this._mapPane,new x(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(Q(t.markerPane,"leaflet-zoom-hide"),Q(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,i){at(this._mapPane,new x(0,0));var e=!this._loaded;this._loaded=!0,i=this._limitZoom(i),this.fire("viewprereset");var n=this._zoom!==i;this._moveStart(n,!1)._move(t,i)._moveEnd(n),this.fire("viewreset"),e&&this.fire("load")},_moveStart:function(t,i){return t&&this.fire("zoomstart"),i||this.fire("movestart"),this},_move:function(t,i,e){void 0===i&&(i=this._zoom);var n=this._zoom!==i;return this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||e&&e.pinch)&&this.fire("zoom",e),this.fire("move",e)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return g(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){at(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={},this._targets[n(this._container)]=this;var i=t?ft:mt;i(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress",this._handleDOMEvent,this),this.options.trackResize&&i(window,"resize",this._onResize,this),ji&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){g(this._resizeRequest),this._resizeRequest=f(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,i){for(var e,o=[],s="mouseout"===i||"mouseover"===i,r=t.target||t.srcElement,a=!1;r;){if((e=this._targets[n(r)])&&("click"===i||"preclick"===i)&&!t._simulated&&this._draggableMoved(e)){a=!0;break}if(e&&e.listens(i,!0)){if(s&&!Ct(r,t))break;if(o.push(e),s)break}if(r===this._container)break;r=r.parentNode}return o.length||a||s||!Ct(r,t)||(o=[this]),o},_handleDOMEvent:function(t){if(this._loaded&&!Mt(t)){var i=t.type;"mousedown"!==i&&"keypress"!==i||ct(t.target||t.srcElement),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,n){if("click"===t.type){var o=i({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}if(!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,e))).length){var s=n[0];"contextmenu"===e&&s.listens(e,!0)&&Pt(t);var r={originalEvent:t};if("keypress"!==t.type){var a=s.getLatLng&&(!s._radius||s._radius<=10);r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var h=0;h<n.length;h++)if(n[h].fire(e,r,!0),r.originalEvent._stopped||!1===n[h].options.bubblingMouseEvents&&-1!==d(this._mouseEvents,e))return}},_draggableMoved:function(t){return(t=t.dragging&&t.dragging.enabled()?t:this).dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var t=0,i=this._handlers.length;t<i;t++)this._handlers[t].disable()},whenReady:function(t,i){return this._loaded?t.call(i||this,{target:this}):this.on("load",t,i),this},_getMapPanePos:function(){return ht(this._mapPane)||new x(0,0)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(t,i){return(t&&void 0!==i?this._getNewPixelOrigin(t,i):this.getPixelOrigin()).subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,i){var e=this.getSize()._divideBy(2);return this.project(t,i)._subtract(e)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return this.project(t,i)._subtract(n)},_latLngBoundsToNewLayerBounds:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return b([this.project(t.getSouthWest(),i)._subtract(n),this.project(t.getNorthWest(),i)._subtract(n),this.project(t.getSouthEast(),i)._subtract(n),this.project(t.getNorthEast(),i)._subtract(n)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,i,e){if(!e)return t;var n=this.project(t,i),o=this.getSize().divideBy(2),s=new P(n.subtract(o),n.add(o)),r=this._getBoundsOffset(s,e,i);return r.round().equals([0,0])?t:this.unproject(n.add(r),i)},_limitOffset:function(t,i){if(!i)return t;var e=this.getPixelBounds(),n=new P(e.min.add(t),e.max.add(t));return t.add(this._getBoundsOffset(n,i))},_getBoundsOffset:function(t,i,e){var n=b(this.project(i.getNorthEast(),e),this.project(i.getSouthWest(),e)),o=n.min.subtract(t.min),s=n.max.subtract(t.max);return new x(this._rebound(o.x,-s.x),this._rebound(o.y,-s.y))},_rebound:function(t,i){return t+i>0?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var i=this.getMinZoom(),e=this.getMaxZoom(),n=ji?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(i,Math.min(e,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){tt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,i){var e=this._getCenterOffset(t)._trunc();return!(!0!==(i&&i.animate)&&!this.getSize().contains(e))&&(this.panBy(e,i),!0)},_createAnimProxy:function(){var t=this._proxy=G("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(t){var i=ce,e=this._proxy.style[i];rt(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),e===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",function(){var t=this.getCenter(),i=this.getZoom();rt(this._proxy,this.project(t,i),this.getZoomScale(i,1))},this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){K(this._proxy),delete this._proxy},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,i,e){if(this._animatingZoom)return!0;if(e=e||{},!this._zoomAnimated||!1===e.animate||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(i),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(o))&&(f(function(){this._moveStart(!0,!1)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,n,o){this._mapPane&&(n&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,Q(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:o}),setTimeout(e(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&tt(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),f(function(){this._moveEnd(!0)},this))}}),Te=v.extend({options:{position:"topright"},initialize:function(t){l(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),e=this.getPosition(),n=t._controlCorners[e];return Q(i,"leaflet-control"),-1!==e.indexOf("bottom")?n.insertBefore(i,n.firstChild):n.appendChild(i),this},remove:function(){return this._map?(K(this._container),this.onRemove&&this.onRemove(this._map),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),ze=function(t){return new Te(t)};be.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){function t(t,o){var s=e+t+" "+e+o;i[t+o]=G("div",s,n)}var i=this._controlCorners={},e="leaflet-",n=this._controlContainer=G("div",e+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)K(this._controlCorners[t]);K(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Me=Te.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,e,n){return e<n?-1:n<e?1:0}},initialize:function(t,i,e){l(this,e),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1;for(var n in t)this._addLayer(t[n],n);for(n in i)this._addLayer(i[n],n,!0)},onAdd:function(t){this._initLayout(),this._update(),this._map=t,t.on("zoomend",this._checkDisabledLayers,this);for(var i=0;i<this._layers.length;i++)this._layers[i].layer.on("add remove",this._onLayerChange,this);return this._container},addTo:function(t){return Te.prototype.addTo.call(this,t),this._expandIfNotCollapsed()},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this);for(var t=0;t<this._layers.length;t++)this._layers[t].layer.off("add remove",this._onLayerChange,this)},addBaseLayer:function(t,i){return this._addLayer(t,i),this._map?this._update():this},addOverlay:function(t,i){return this._addLayer(t,i,!0),this._map?this._update():this},removeLayer:function(t){t.off("add remove",this._onLayerChange,this);var i=this._getLayer(n(t));return i&&this._layers.splice(this._layers.indexOf(i),1),this._map?this._update():this},expand:function(){Q(this._container,"leaflet-control-layers-expanded"),this._form.style.height=null;var t=this._map.getSize().y-(this._container.offsetTop+50);return t<this._form.clientHeight?(Q(this._form,"leaflet-control-layers-scrollbar"),this._form.style.height=t+"px"):tt(this._form,"leaflet-control-layers-scrollbar"),this._checkDisabledLayers(),this},collapse:function(){return tt(this._container,"leaflet-control-layers-expanded"),this},_initLayout:function(){var t="leaflet-control-layers",i=this._container=G("div",t),e=this.options.collapsed;i.setAttribute("aria-haspopup",!0),wt(i),xt(i);var n=this._form=G("form",t+"-list");e&&(this._map.on("click",this.collapse,this),zi||mt(i,{mouseenter:this.expand,mouseleave:this.collapse},this));var o=this._layersLink=G("a",t+"-toggle",i);o.href="#",o.title="Layers",qi?(mt(o,"click",Lt),mt(o,"click",this.expand,this)):mt(o,"focus",this.expand,this),e||this.expand(),this._baseLayersList=G("div",t+"-base",n),this._separator=G("div",t+"-separator",n),this._overlaysList=G("div",t+"-overlays",n),i.appendChild(n)},_getLayer:function(t){for(var i=0;i<this._layers.length;i++)if(this._layers[i]&&n(this._layers[i].layer)===t)return this._layers[i]},_addLayer:function(t,i,n){this._map&&t.on("add remove",this._onLayerChange,this),this._layers.push({layer:t,name:i,overlay:n}),this.options.sortLayers&&this._layers.sort(e(function(t,i){return this.options.sortFunction(t.layer,i.layer,t.name,i.name)},this)),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(!this._container)return this;Y(this._baseLayersList),Y(this._overlaysList),this._layerControlInputs=[];var t,i,e,n,o=0;for(e=0;e<this._layers.length;e++)n=this._layers[e],this._addItem(n),i=i||n.overlay,t=t||!n.overlay,o+=n.overlay?0:1;return this.options.hideSingleBase&&(t=t&&o>1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=i&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var i=this._getLayer(n(t.target)),e=i.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;e&&this._map.fire(e,i)},_createRadioElement:function(t,i){var e='<input type="radio" class="leaflet-control-layers-selector" name="'+t+'"'+(i?' checked="checked"':"")+"/>",n=document.createElement("div");return n.innerHTML=e,n.firstChild},_addItem:function(t){var i,e=document.createElement("label"),o=this._map.hasLayer(t.layer);t.overlay?((i=document.createElement("input")).type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=o):i=this._createRadioElement("leaflet-base-layers",o),this._layerControlInputs.push(i),i.layerId=n(t.layer),mt(i,"click",this._onInputClick,this);var s=document.createElement("span");s.innerHTML=" "+t.name;var r=document.createElement("div");return e.appendChild(r),r.appendChild(i),r.appendChild(s),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=e.length-1;s>=0;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;s<o.length;s++)this._map.hasLayer(o[s])&&this._map.removeLayer(o[s]);for(s=0;s<n.length;s++)this._map.hasLayer(n[s])||this._map.addLayer(n[s]);this._handlingClick=!1,this._refocusOnMap()},_checkDisabledLayers:function(){for(var t,i,e=this._layerControlInputs,n=this._map.getZoom(),o=e.length-1;o>=0;o--)t=e[o],i=this._getLayer(t.layerId).layer,t.disabled=void 0!==i.options.minZoom&&n<i.options.minZoom||void 0!==i.options.maxZoom&&n>i.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),Ce=Te.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"&#x2212;",zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",e=G("div",i+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+"-in",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+"-out",e,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),e},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._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){var s=G("a",e,n);return s.innerHTML=t,s.href="#",s.title=i,s.setAttribute("role","button"),s.setAttribute("aria-label",i),wt(s),mt(s,"click",Lt),mt(s,"click",o,this),mt(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";tt(this._zoomInButton,i),tt(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMinZoom())&&Q(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMaxZoom())&&Q(this._zoomInButton,i)}});be.mergeOptions({zoomControl:!0}),be.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Ce,this.addControl(this.zoomControl))});var Se=Te.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i=G("div","leaflet-control-scale"),e=this.options;return this._addScales(e,"leaflet-control-scale-line",i),t.on(e.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,i,e){t.metric&&(this._mScale=G("div",i,e)),t.imperial&&(this._iScale=G("div",i,e))},_update:function(){var t=this._map,i=t.getSize().y/2,e=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(e)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),e=i<1e3?i+" m":i/1e3+" km";this._updateScale(this._mScale,e,i/t)},_updateImperial:function(t){var i,e,n,o=3.2808399*t;o>5280?(i=o/5280,e=this._getRoundNum(i),this._updateScale(this._iScale,e+" mi",e/i)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,i,e){t.style.width=Math.round(this.options.maxWidth*e)+"px",t.innerHTML=i},_getRoundNum:function(t){var i=Math.pow(10,(Math.floor(t)+"").length-1),e=t/i;return e=e>=10?10:e>=5?5:e>=3?3:e>=2?2:1,i*e}}),Ze=Te.extend({options:{position:"bottomright",prefix:'<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(t){l(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=G("div","leaflet-control-attribution"),wt(this._container);for(var i in t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),this._container},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):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var i in this._attributions)this._attributions[i]&&t.push(i);var e=[];this.options.prefix&&e.push(this.options.prefix),t.length&&e.push(t.join(", ")),this._container.innerHTML=e.join(" | ")}}});be.mergeOptions({attributionControl:!0}),be.addInitHook(function(){this.options.attributionControl&&(new Ze).addTo(this)});Te.Layers=Me,Te.Zoom=Ce,Te.Scale=Se,Te.Attribution=Ze,ze.layers=function(t,i,e){return new Me(t,i,e)},ze.zoom=function(t){return new Ce(t)},ze.scale=function(t){return new Se(t)},ze.attribution=function(t){return new Ze(t)};var Ee=v.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});Ee.addTo=function(t,i){return t.addHandler(i,this),this};var ke,Ae={Events:li},Be=qi?"touchstart mousedown":"mousedown",Ie={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},Oe={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},Re=ci.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){l(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(mt(this._dragStartTarget,Be,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Re._dragging===this&&this.finishDrag(),ft(this._dragStartTarget,Be,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!$(this._element,"leaflet-zoom-anim")&&!(Re._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(Re._dragging=this,this._preventOutline&&ct(this._element),ut(),fi(),this._moving)))){this.fire("down");var i=t.touches?t.touches[0]:t,e=dt(this._element);this._startPoint=new x(i.clientX,i.clientY),this._parentScale=pt(e),mt(document,Oe[t.type],this._onMove,this),mt(document,Ie[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var i=t.touches&&1===t.touches.length?t.touches[0]:t,e=new x(i.clientX,i.clientY)._subtract(this._startPoint);(e.x||e.y)&&(Math.abs(e.x)+Math.abs(e.y)<this.options.clickTolerance||(e.x/=this._parentScale.x,e.y/=this._parentScale.y,Pt(t),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=ht(this._element).subtract(e),Q(document.body,"leaflet-dragging"),this._lastTarget=t.target||t.srcElement,window.SVGElementInstance&&this._lastTarget instanceof SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),Q(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(e),this._moving=!0,g(this._animRequest),this._lastEvent=t,this._animRequest=f(this._updatePosition,this,!0)))}},_updatePosition:function(){var t={originalEvent:this._lastEvent};this.fire("predrag",t),at(this._element,this._newPos),this.fire("drag",t)},_onUp:function(t){!t._simulated&&this._enabled&&this.finishDrag()},finishDrag:function(){tt(document.body,"leaflet-dragging"),this._lastTarget&&(tt(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null);for(var t in Oe)ft(document,Oe[t],this._onMove,this),ft(document,Ie[t],this._onUp,this);lt(),gi(),this._moved&&this._moving&&(g(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1,Re._dragging=!1}}),Ne=(Object.freeze||Object)({simplify:Zt,pointToSegmentDistance:Et,closestPointOnSegment:function(t,i,e){return Dt(t,i,e)},clipSegment:It,_getEdgeIntersection:Ot,_getBitCode:Rt,_sqClosestPointOnSegment:Dt,isFlat:jt,_flat:Wt}),De=(Object.freeze||Object)({clipPolygon:Ht}),je={project:function(t){return new x(t.lng,t.lat)},unproject:function(t){return new M(t.y,t.x)},bounds:new P([-180,-90],[180,90])},We={R:6378137,R_MINOR:6356752.314245179,bounds:new P([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var i=Math.PI/180,e=this.R,n=t.lat*i,o=this.R_MINOR/e,s=Math.sqrt(1-o*o),r=s*Math.sin(n),a=Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2);return n=-e*Math.log(Math.max(a,1e-10)),new x(t.lng*i*e,n)},unproject:function(t){for(var i,e=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,u=.1;h<15&&Math.abs(u)>1e-7;h++)i=s*Math.sin(a),i=Math.pow((1-i)/(1+i),s/2),a+=u=Math.PI/2-2*Math.atan(r*i)-a;return new M(a*e,t.x*e/n)}},He=(Object.freeze||Object)({LonLat:je,Mercator:We,SphericalMercator:mi}),Fe=i({},pi,{code:"EPSG:3395",projection:We,transformation:function(){var t=.5/(Math.PI*We.R);return Z(t,.5,-t,.5)}()}),Ue=i({},pi,{code:"EPSG:4326",projection:je,transformation:Z(1/180,1,-1/180,.5)}),Ve=i({},di,{projection:je,transformation:Z(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,i){var e=i.lng-t.lng,n=i.lat-t.lat;return Math.sqrt(e*e+n*n)},infinite:!0});di.Earth=pi,di.EPSG3395=Fe,di.EPSG3857=yi,di.EPSG900913=xi,di.EPSG4326=Ue,di.Simple=Ve;var qe=ci.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[n(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[n(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var i=t.target;if(i.hasLayer(this)){if(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents){var e=this.getEvents();i.on(e,this),this.once("remove",function(){i.off(e,this)},this)}this.onAdd(i),this.getAttribution&&i.attributionControl&&i.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),i.fire("layeradd",{layer:this})}}});be.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var i=n(t);return this._layers[i]?this:(this._layers[i]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var i=n(t);return this._layers[i]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[i],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&n(t)in this._layers},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},_addLayers:function(t){for(var i=0,e=(t=t?oi(t)?t:[t]:[]).length;i<e;i++)this.addLayer(t[i])},_addZoomLimit:function(t){!isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[n(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){var i=n(t);this._zoomBoundLayers[i]&&(delete this._zoomBoundLayers[i],this._updateZoomLevels())},_updateZoomLevels:function(){var t=1/0,i=-1/0,e=this._getZoomSpan();for(var n in this._zoomBoundLayers){var o=this._zoomBoundLayers[n].options;t=void 0===o.minZoom?t:Math.min(t,o.minZoom),i=void 0===o.maxZoom?i:Math.max(i,o.maxZoom)}this._layersMaxZoom=i===-1/0?void 0:i,this._layersMinZoom=t===1/0?void 0:t,e!==this._getZoomSpan()&&this.fire("zoomlevelschange"),void 0===this.options.maxZoom&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}});var Ge=qe.extend({initialize:function(t,i){l(this,i),this._layers={};var e,n;if(t)for(e=0,n=t.length;e<n;e++)this.addLayer(t[e])},addLayer:function(t){var i=this.getLayerId(t);return this._layers[i]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var i=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[i]&&this._map.removeLayer(this._layers[i]),delete this._layers[i],this},hasLayer:function(t){return!!t&&(t in this._layers||this.getLayerId(t)in this._layers)},clearLayers:function(){return this.eachLayer(this.removeLayer,this)},invoke:function(t){var i,e,n=Array.prototype.slice.call(arguments,1);for(i in this._layers)(e=this._layers[i])[t]&&e[t].apply(e,n);return this},onAdd:function(t){this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t)},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];return this.eachLayer(t.push,t),t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:function(t){return n(t)}}),Ke=Ge.extend({addLayer:function(t){return this.hasLayer(t)?this:(t.addEventParent(this),Ge.prototype.addLayer.call(this,t),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?(t in this._layers&&(t=this._layers[t]),t.removeEventParent(this),Ge.prototype.removeLayer.call(this,t),this.fire("layerremove",{layer:t})):this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t=new T;for(var i in this._layers){var e=this._layers[i];t.extend(e.getBounds?e.getBounds():e.getLatLng())}return t}}),Ye=v.extend({options:{popupAnchor:[0,0],tooltipAnchor:[0,0]},initialize:function(t){l(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,i){var e=this._getIconUrl(t);if(!e){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var n=this._createImg(e,i&&"IMG"===i.tagName?i:null);return this._setIconStyles(n,t),n},_setIconStyles:function(t,i){var e=this.options,n=e[i+"Size"];"number"==typeof n&&(n=[n,n]);var o=w(n),s=w("shadow"===i&&e.shadowAnchor||e.iconAnchor||o&&o.divideBy(2,!0));t.className="leaflet-marker-"+i+" "+(e.className||""),s&&(t.style.marginLeft=-s.x+"px",t.style.marginTop=-s.y+"px"),o&&(t.style.width=o.x+"px",t.style.height=o.y+"px")},_createImg:function(t,i){return i=i||document.createElement("img"),i.src=t,i},_getIconUrl:function(t){return Yi&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}}),Xe=Ye.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return Xe.imagePath||(Xe.imagePath=this._detectIconPath()),(this.options.imagePath||Xe.imagePath)+Ye.prototype._getIconUrl.call(this,t)},_detectIconPath:function(){var t=G("div","leaflet-default-icon-path",document.body),i=q(t,"background-image")||q(t,"backgroundImage");return document.body.removeChild(t),i=null===i||0!==i.indexOf("url")?"":i.replace(/^url\(["']?/,"").replace(/marker-icon\.png["']?\)$/,"")}}),Je=Ee.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new Re(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),Q(t,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&tt(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_adjustPan:function(t){var i=this._marker,e=i._map,n=this._marker.options.autoPanSpeed,o=this._marker.options.autoPanPadding,s=ht(i._icon),r=e.getPixelBounds(),a=e.getPixelOrigin(),h=b(r.min._subtract(a).add(o),r.max._subtract(a).subtract(o));if(!h.contains(s)){var u=w((Math.max(h.max.x,s.x)-h.max.x)/(r.max.x-h.max.x)-(Math.min(h.min.x,s.x)-h.min.x)/(r.min.x-h.min.x),(Math.max(h.max.y,s.y)-h.max.y)/(r.max.y-h.max.y)-(Math.min(h.min.y,s.y)-h.min.y)/(r.min.y-h.min.y)).multiplyBy(n);e.panBy(u,{animate:!1}),this._draggable._newPos._add(u),this._draggable._startPos._add(u),at(i._icon,this._draggable._newPos),this._onDrag(t),this._panRequest=f(this._adjustPan.bind(this,t))}},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup().fire("movestart").fire("dragstart")},_onPreDrag:function(t){this._marker.options.autoPan&&(g(this._panRequest),this._panRequest=f(this._adjustPan.bind(this,t)))},_onDrag:function(t){var i=this._marker,e=i._shadow,n=ht(i._icon),o=i._map.layerPointToLatLng(n);e&&at(e,n),i._latlng=o,t.latlng=o,t.oldLatLng=this._oldLatLng,i.fire("move",t).fire("drag",t)},_onDragEnd:function(t){g(this._panRequest),delete this._oldLatLng,this._marker.fire("moveend").fire("dragend",t)}}),$e=qe.extend({options:{icon:new Xe,interactive:!0,draggable:!1,autoPan:!1,autoPanPadding:[50,50],autoPanSpeed:10,keyboard:!0,title:"",alt:"",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",bubblingMouseEvents:!1},initialize:function(t,i){l(this,i),this._latlng=C(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete this.dragging,this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var i=this._latlng;return this._latlng=C(t),this.update(),this.fire("move",{oldLatLng:i,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){if(this._icon&&this._map){var t=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(t)}return this},_initIcon:function(){var t=this.options,i="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),e=t.icon.createIcon(this._icon),n=!1;e!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(e.title=t.title),"IMG"===e.tagName&&(e.alt=t.alt||"")),Q(e,i),t.keyboard&&(e.tabIndex="0"),this._icon=e,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex});var o=t.icon.createShadow(this._shadow),s=!1;o!==this._shadow&&(this._removeShadow(),s=!0),o&&(Q(o,i),o.alt=""),this._shadow=o,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),o&&s&&this.getPane("shadowPane").appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),K(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&K(this._shadow),this._shadow=null},_setPos:function(t){at(this._icon,t),this._shadow&&at(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(i)},_initInteraction:function(){if(this.options.interactive&&(Q(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),Je)){var t=this.options.draggable;this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new Je(this),t&&this.dragging.enable()}},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;nt(this._icon,t),this._shadow&&nt(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor}}),Qe=qe.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:"evenodd",interactive:!0,bubblingMouseEvents:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return l(this,t),this._renderer&&this._renderer._updateStyle(this),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+this._renderer.options.tolerance}}),tn=Qe.extend({options:{fill:!0,radius:10},initialize:function(t,i){l(this,i),this._latlng=C(t),this._radius=this.options.radius},setLatLng:function(t){return this._latlng=C(t),this.redraw(),this.fire("move",{latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var i=t&&t.radius||this._radius;return Qe.prototype.setStyle.call(this,t),this.setRadius(i),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,i=this._radiusY||t,e=this._clickTolerance(),n=[t+e,i+e];this._pxBounds=new P(this._point.subtract(n),this._point.add(n))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)},_containsPoint:function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()}}),en=tn.extend({initialize:function(t,e,n){if("number"==typeof e&&(e=i({},n,{radius:e})),l(this,e),this._latlng=C(t),isNaN(this.options.radius))throw new Error("Circle radius cannot be NaN");this._mRadius=this.options.radius},setRadius:function(t){return this._mRadius=t,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var t=[this._radius,this._radiusY||this._radius];return new T(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:Qe.prototype.setStyle,_project:function(){var t=this._latlng.lng,i=this._latlng.lat,e=this._map,n=e.options.crs;if(n.distance===pi.distance){var o=Math.PI/180,s=this._mRadius/pi.R/o,r=e.project([i+s,t]),a=e.project([i-s,t]),h=r.add(a).divideBy(2),u=e.unproject(h).lat,l=Math.acos((Math.cos(s*o)-Math.sin(i*o)*Math.sin(u*o))/(Math.cos(i*o)*Math.cos(u*o)))/o;(isNaN(l)||0===l)&&(l=s/Math.cos(Math.PI/180*i)),this._point=h.subtract(e.getPixelOrigin()),this._radius=isNaN(l)?0:h.x-e.project([u,t-l]).x,this._radiusY=h.y-r.y}else{var c=n.unproject(n.project(this._latlng).subtract([this._mRadius,0]));this._point=e.latLngToLayerPoint(this._latlng),this._radius=this._point.x-e.latLngToLayerPoint(c).x}this._updateBounds()}}),nn=Qe.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,i){l(this,i),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var i,e,n=1/0,o=null,s=Dt,r=0,a=this._parts.length;r<a;r++)for(var h=this._parts[r],u=1,l=h.length;u<l;u++){var c=s(t,i=h[u-1],e=h[u],!0);c<n&&(n=c,o=s(t,i,e))}return o&&(o.distance=Math.sqrt(n)),o},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r,a=this._rings[0],h=a.length;if(!h)return null;for(t=0,i=0;t<h-1;t++)i+=a[t].distanceTo(a[t+1])/2;if(0===i)return this._map.layerPointToLatLng(a[0]);for(t=0,n=0;t<h-1;t++)if(o=a[t],s=a[t+1],e=o.distanceTo(s),(n+=e)>i)return r=(n-i)/e,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,i){return i=i||this._defaultShape(),t=C(t),i.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new T,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return jt(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var i=[],e=jt(t),n=0,o=t.length;n<o;n++)e?(i[n]=C(t[n]),this._bounds.extend(i[n])):i[n]=this._convertLatLngs(t[n]);return i},_project:function(){var t=new P;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t);var i=this._clickTolerance(),e=new x(i,i);this._bounds.isValid()&&t.isValid()&&(t.min._subtract(e),t.max._add(e),this._pxBounds=t)},_projectLatlngs:function(t,i,e){var n,o,s=t[0]instanceof M,r=t.length;if(s){for(o=[],n=0;n<r;n++)o[n]=this._map.latLngToLayerPoint(t[n]),e.extend(o[n]);i.push(o)}else for(n=0;n<r;n++)this._projectLatlngs(t[n],i,e)},_clipPoints:function(){var t=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else{var i,e,n,o,s,r,a,h=this._parts;for(i=0,n=0,o=this._rings.length;i<o;i++)for(e=0,s=(a=this._rings[i]).length;e<s-1;e++)(r=It(a[e],a[e+1],t,e,!0))&&(h[n]=h[n]||[],h[n].push(r[0]),r[1]===a[e+1]&&e!==s-2||(h[n].push(r[1]),n++))}},_simplifyPoints:function(){for(var t=this._parts,i=this.options.smoothFactor,e=0,n=t.length;e<n;e++)t[e]=Zt(t[e],i)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(t,i){var e,n,o,s,r,a,h=this._clickTolerance();if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(e=0,s=this._parts.length;e<s;e++)for(n=0,o=(r=(a=this._parts[e]).length)-1;n<r;o=n++)if((i||0!==n)&&Et(t,a[o],a[n])<=h)return!0;return!1}});nn._flat=Wt;var on=nn.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r,a,h,u=this._rings[0],l=u.length;if(!l)return null;for(s=r=a=0,t=0,i=l-1;t<l;i=t++)e=u[t],n=u[i],o=e.y*n.x-n.y*e.x,r+=(e.x+n.x)*o,a+=(e.y+n.y)*o,s+=3*o;return h=0===s?u[0]:[r/s,a/s],this._map.layerPointToLatLng(h)},_convertLatLngs:function(t){var i=nn.prototype._convertLatLngs.call(this,t),e=i.length;return e>=2&&i[0]instanceof M&&i[0].equals(i[e-1])&&i.pop(),i},_setLatLngs:function(t){nn.prototype._setLatLngs.call(this,t),jt(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return jt(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,i=this.options.weight,e=new x(i,i);if(t=new P(t.min.subtract(e),t.max.add(e)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;o<s;o++)(n=Ht(this._rings[o],t,!0)).length&&this._parts.push(n)},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(t){var i,e,n,o,s,r,a,h,u=!1;if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(o=0,a=this._parts.length;o<a;o++)for(s=0,r=(h=(i=this._parts[o]).length)-1;s<h;r=s++)e=i[s],n=i[r],e.y>t.y!=n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(u=!u);return u||nn.prototype._containsPoint.call(this,t,!0)}}),sn=Ke.extend({initialize:function(t,i){l(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i,e,n,o=oi(t)?t:t.features;if(o){for(i=0,e=o.length;i<e;i++)((n=o[i]).geometries||n.geometry||n.features||n.coordinates)&&this.addData(n);return this}var s=this.options;if(s.filter&&!s.filter(t))return this;var r=Ft(t,s);return r?(r.feature=Yt(t),r.defaultOptions=r.options,this.resetStyle(r),s.onEachFeature&&s.onEachFeature(t,r),this.addLayer(r)):this},resetStyle:function(t){return t.options=i({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this},setStyle:function(t){return this.eachLayer(function(i){this._setLayerStyle(i,t)},this)},_setLayerStyle:function(t,i){"function"==typeof i&&(i=i(t.feature)),t.setStyle&&t.setStyle(i)}}),rn={toGeoJSON:function(t){return Kt(this,{type:"Point",coordinates:qt(this.getLatLng(),t)})}};$e.include(rn),en.include(rn),tn.include(rn),nn.include({toGeoJSON:function(t){var i=!jt(this._latlngs),e=Gt(this._latlngs,i?1:0,!1,t);return Kt(this,{type:(i?"Multi":"")+"LineString",coordinates:e})}}),on.include({toGeoJSON:function(t){var i=!jt(this._latlngs),e=i&&!jt(this._latlngs[0]),n=Gt(this._latlngs,e?2:i?1:0,!0,t);return i||(n=[n]),Kt(this,{type:(e?"Multi":"")+"Polygon",coordinates:n})}}),Ge.include({toMultiPoint:function(t){var i=[];return this.eachLayer(function(e){i.push(e.toGeoJSON(t).geometry.coordinates)}),Kt(this,{type:"MultiPoint",coordinates:i})},toGeoJSON:function(t){var i=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===i)return this.toMultiPoint(t);var e="GeometryCollection"===i,n=[];return this.eachLayer(function(i){if(i.toGeoJSON){var o=i.toGeoJSON(t);if(e)n.push(o.geometry);else{var s=Yt(o);"FeatureCollection"===s.type?n.push.apply(n,s.features):n.push(s)}}}),e?Kt(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}});var an=Xt,hn=qe.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,i,e){this._url=t,this._bounds=z(i),l(this,e)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(Q(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){K(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&X(this._image),this},bringToBack:function(){return this._map&&J(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=z(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t="IMG"===this._url.tagName,i=this._image=t?this._url:G("img");Q(i,"leaflet-image-layer"),this._zoomAnimated&&Q(i,"leaflet-zoom-animated"),this.options.className&&Q(i,this.options.className),i.onselectstart=r,i.onmousemove=r,i.onload=e(this.fire,this,"load"),i.onerror=e(this._overlayOnError,this,"error"),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t?this._url=i.src:(i.src=this._url,i.alt=this.options.alt)},_animateZoom:function(t){var i=this._map.getZoomScale(t.zoom),e=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;rt(this._image,e,i)},_reset:function(){var t=this._image,i=new P(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),e=i.getSize();at(t,i.min),t.style.width=e.x+"px",t.style.height=e.y+"px"},_updateOpacity:function(){nt(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)}}),un=hn.extend({options:{autoplay:!0,loop:!0},_initImage:function(){var t="VIDEO"===this._url.tagName,i=this._image=t?this._url:G("video");if(Q(i,"leaflet-image-layer"),this._zoomAnimated&&Q(i,"leaflet-zoom-animated"),i.onselectstart=r,i.onmousemove=r,i.onloadeddata=e(this.fire,this,"load"),t){for(var n=i.getElementsByTagName("source"),o=[],s=0;s<n.length;s++)o.push(n[s].src);this._url=n.length>0?o:[i.src]}else{oi(this._url)||(this._url=[this._url]),i.autoplay=!!this.options.autoplay,i.loop=!!this.options.loop;for(var a=0;a<this._url.length;a++){var h=G("source");h.src=this._url[a],i.appendChild(h)}}}}),ln=qe.extend({options:{offset:[0,7],className:"",pane:"popupPane"},initialize:function(t,i){l(this,t),this._source=i},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&nt(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&nt(this._container,1),this.bringToFront()},onRemove:function(t){t._fadeAnimated?(nt(this._container,0),this._removeTimeout=setTimeout(e(K,void 0,this._container),200)):K(this._container)},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=C(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&X(this._container),this},bringToBack:function(){return this._map&&J(this._container),this},_updateContent:function(){if(this._content){var t=this._contentNode,i="function"==typeof this._content?this._content(this._source||this):this._content;if("string"==typeof i)t.innerHTML=i;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(i)}this.fire("contentupdate")}},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),i=w(this.options.offset),e=this._getAnchor();this._zoomAnimated?at(this._container,t.add(e)):i=i.add(t).add(e);var n=this._containerBottom=-i.y,o=this._containerLeft=-Math.round(this._containerWidth/2)+i.x;this._container.style.bottom=n+"px",this._container.style.left=o+"px"}},_getAnchor:function(){return[0,0]}}),cn=ln.extend({options:{maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,closeOnEscapeKey:!0,className:""},openOn:function(t){return t.openPopup(this),this},onAdd:function(t){ln.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof Qe||this._source.on("preclick",yt))},onRemove:function(t){ln.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof Qe||this._source.off("preclick",yt))},getEvents:function(){var t=ln.prototype.getEvents.call(this);return(void 0!==this.options.closeOnClick?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var t="leaflet-popup",i=this._container=G("div",t+" "+(this.options.className||"")+" leaflet-zoom-animated"),e=this._wrapper=G("div",t+"-content-wrapper",i);if(this._contentNode=G("div",t+"-content",e),wt(e),xt(this._contentNode),mt(e,"contextmenu",yt),this._tipContainer=G("div",t+"-tip-container",i),this._tip=G("div",t+"-tip",this._tipContainer),this.options.closeButton){var n=this._closeButton=G("a",t+"-close-button",i);n.href="#close",n.innerHTML="&#215;",mt(n,"click",this._onCloseButtonClick,this)}},_updateLayout:function(){var t=this._contentNode,i=t.style;i.width="",i.whiteSpace="nowrap";var e=t.offsetWidth;e=Math.min(e,this.options.maxWidth),e=Math.max(e,this.options.minWidth),i.width=e+1+"px",i.whiteSpace="",i.height="";var n=t.offsetHeight,o=this.options.maxHeight;o&&n>o?(i.height=o+"px",Q(t,"leaflet-popup-scrolled")):tt(t,"leaflet-popup-scrolled"),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),e=this._getAnchor();at(this._container,i.add(e))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var t=this._map,i=parseInt(q(this._container,"marginBottom"),10)||0,e=this._container.offsetHeight+i,n=this._containerWidth,o=new x(this._containerLeft,-e-this._containerBottom);o._add(ht(this._container));var s=t.layerPointToContainerPoint(o),r=w(this.options.autoPanPadding),a=w(this.options.autoPanPaddingTopLeft||r),h=w(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),l=0,c=0;s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+e+h.y>u.y&&(c=s.y+e-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c])}},_onCloseButtonClick:function(t){this._close(),Lt(t)},_getAnchor:function(){return w(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});be.mergeOptions({closePopupOnClick:!0}),be.include({openPopup:function(t,i,e){return t instanceof cn||(t=new cn(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),qe.include({bindPopup:function(t,i){return t instanceof cn?(l(t,i),this._popup=t,t._source=this):(this._popup&&!i||(this._popup=new cn(i,this)),this._popup.setContent(t)),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,i){if(t instanceof qe||(i=t,t=this),t instanceof Ke)for(var e in this._layers){t=this._layers[e];break}return i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._popup&&this._map&&(this._popup._source=t,this._popup.update(),this._map.openPopup(this._popup,i)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),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 i=t.layer||t.target;this._popup&&this._map&&(Lt(t),i instanceof Qe?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===i?this.closePopup():this.openPopup(i,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var _n=ln.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){ln.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){ln.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=ln.prototype.getEvents.call(this);return qi&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=G("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i=this._map,e=this._container,n=i.latLngToContainerPoint(i.getCenter()),o=i.layerPointToContainerPoint(t),s=this.options.direction,r=e.offsetWidth,a=e.offsetHeight,h=w(this.options.offset),u=this._getAnchor();"top"===s?t=t.add(w(-r/2+h.x,-a+h.y+u.y,!0)):"bottom"===s?t=t.subtract(w(r/2-h.x,-h.y,!0)):"center"===s?t=t.subtract(w(r/2+h.x,a/2-u.y+h.y,!0)):"right"===s||"auto"===s&&o.x<n.x?(s="right",t=t.add(w(h.x+u.x,u.y-a/2+h.y,!0))):(s="left",t=t.subtract(w(r+u.x-h.x,a/2-u.y-h.y,!0))),tt(e,"leaflet-tooltip-right"),tt(e,"leaflet-tooltip-left"),tt(e,"leaflet-tooltip-top"),tt(e,"leaflet-tooltip-bottom"),Q(e,"leaflet-tooltip-"+s),at(e,t)},_updatePosition:function(){var t=this._map.latLngToLayerPoint(this._latlng);this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&nt(this._container,t)},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);this._setPosition(i)},_getAnchor:function(){return w(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}});be.include({openTooltip:function(t,i,e){return t instanceof _n||(t=new _n(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:this.addLayer(t)},closeTooltip:function(t){return t&&this.removeLayer(t),this}}),qe.include({bindTooltip:function(t,i){return t instanceof _n?(l(t,i),this._tooltip=t,t._source=this):(this._tooltip&&!i||(this._tooltip=new _n(i,this)),this._tooltip.setContent(t)),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){if(t||!this._tooltipHandlersAdded){var i=t?"off":"on",e={remove:this.closeTooltip,move:this._moveTooltip};this._tooltip.options.permanent?e.add=this._openTooltip:(e.mouseover=this._openTooltip,e.mouseout=this.closeTooltip,this._tooltip.options.sticky&&(e.mousemove=this._moveTooltip),qi&&(e.click=this._openTooltip)),this[i](e),this._tooltipHandlersAdded=!t}},openTooltip:function(t,i){if(t instanceof qe||(i=t,t=this),t instanceof Ke)for(var e in this._layers){t=this._layers[e];break}return i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._tooltip&&this._map&&(this._tooltip._source=t,this._tooltip.update(),this._map.openTooltip(this._tooltip,i),this._tooltip.options.interactive&&this._tooltip._container&&(Q(this._tooltip._container,"leaflet-clickable"),this.addInteractiveTarget(this._tooltip._container))),this},closeTooltip:function(){return this._tooltip&&(this._tooltip._close(),this._tooltip.options.interactive&&this._tooltip._container&&(tt(this._tooltip._container,"leaflet-clickable"),this.removeInteractiveTarget(this._tooltip._container))),this},toggleTooltip:function(t){return this._tooltip&&(this._tooltip._map?this.closeTooltip():this.openTooltip(t)),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(t){return this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return this._tooltip},_openTooltip:function(t){var i=t.layer||t.target;this._tooltip&&this._map&&this.openTooltip(i,this._tooltip.options.sticky?t.latlng:void 0)},_moveTooltip:function(t){var i,e,n=t.latlng;this._tooltip.options.sticky&&t.originalEvent&&(i=this._map.mouseEventToContainerPoint(t.originalEvent),e=this._map.containerPointToLayerPoint(i),n=this._map.layerPointToLatLng(e)),this._tooltip.setLatLng(n)}});var dn=Ye.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var i=t&&"DIV"===t.tagName?t:document.createElement("div"),e=this.options;if(i.innerHTML=!1!==e.html?e.html:"",e.bgPos){var n=w(e.bgPos);i.style.backgroundPosition=-n.x+"px "+-n.y+"px"}return this._setIconStyles(i,"icon"),i},createShadow:function(){return null}});Ye.Default=Xe;var pn=qe.extend({options:{tileSize:256,opacity:1,updateWhenIdle:Wi,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,maxNativeZoom:void 0,minNativeZoom:void 0,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){l(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView(),this._update()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),K(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=void 0},bringToFront:function(){return this._map&&(X(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(J(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){return this._map&&(this._removeAllTiles(),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=o(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return document.createElement("div")},getTileSize:function(){var t=this.options.tileSize;return t instanceof x?t:new x(t,t)},_updateZIndex:function(){this._container&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var i,e=this.getPane().children,n=-t(-1/0,1/0),o=0,s=e.length;o<s;o++)i=e[o].style.zIndex,e[o]!==this._container&&i&&(n=t(n,+i));isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!Li){nt(this._container,this.options.opacity);var t=+new Date,i=!1,e=!1;for(var n in this._tiles){var o=this._tiles[n];if(o.current&&o.loaded){var s=Math.min(1,(t-o.loaded)/200);nt(o.el,s),s<1?i=!0:(o.active?e=!0:this._onOpaqueTile(o),o.active=!0)}}e&&!this._noPrune&&this._pruneTiles(),i&&(g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this))}},_onOpaqueTile:r,_initContainer:function(){this._container||(this._container=G("div","leaflet-layer "+(this.options.className||"")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var t=this._tileZoom,i=this.options.maxZoom;if(void 0!==t){for(var e in this._levels)this._levels[e].el.children.length||e===t?(this._levels[e].el.style.zIndex=i-Math.abs(t-e),this._onUpdateLevel(e)):(K(this._levels[e].el),this._removeTilesAtZoom(e),this._onRemoveLevel(e),delete this._levels[e]);var n=this._levels[t],o=this._map;return n||((n=this._levels[t]={}).el=G("div","leaflet-tile-container leaflet-zoom-animated",this._container),n.el.style.zIndex=i,n.origin=o.project(o.unproject(o.getPixelOrigin()),t).round(),n.zoom=t,this._setZoomTransform(n,o.getCenter(),o.getZoom()),n.el.offsetWidth,this._onCreateLevel(n)),this._level=n,n}},_onUpdateLevel:r,_onRemoveLevel:r,_onCreateLevel:r,_pruneTiles:function(){if(this._map){var t,i,e=this._map.getZoom();if(e>this.options.maxZoom||e<this.options.minZoom)this._removeAllTiles();else{for(t in this._tiles)(i=this._tiles[t]).retain=i.current;for(t in this._tiles)if((i=this._tiles[t]).current&&!i.active){var n=i.coords;this._retainParent(n.x,n.y,n.z,n.z-5)||this._retainChildren(n.x,n.y,n.z,n.z+2)}for(t in this._tiles)this._tiles[t].retain||this._removeTile(t)}}},_removeTilesAtZoom:function(t){for(var i in this._tiles)this._tiles[i].coords.z===t&&this._removeTile(i)},_removeAllTiles:function(){for(var t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t in this._levels)K(this._levels[t].el),this._onRemoveLevel(t),delete this._levels[t];this._removeAllTiles(),this._tileZoom=void 0},_retainParent:function(t,i,e,n){var o=Math.floor(t/2),s=Math.floor(i/2),r=e-1,a=new x(+o,+s);a.z=+r;var h=this._tileCoordsToKey(a),u=this._tiles[h];return u&&u.active?(u.retain=!0,!0):(u&&u.loaded&&(u.retain=!0),r>n&&this._retainParent(o,s,r,n))},_retainChildren:function(t,i,e,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*i;s<2*i+2;s++){var r=new x(o,s);r.z=e+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),e+1<n&&this._retainChildren(o,s,e+1,n))}},_resetView:function(t){var i=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),i,i)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_clampZoom:function(t){var i=this.options;return void 0!==i.minNativeZoom&&t<i.minNativeZoom?i.minNativeZoom:void 0!==i.maxNativeZoom&&i.maxNativeZoom<t?i.maxNativeZoom:t},_setView:function(t,i,e,n){var o=this._clampZoom(Math.round(i));(void 0!==this.options.maxZoom&&o>this.options.maxZoom||void 0!==this.options.minZoom&&o<this.options.minZoom)&&(o=void 0);var s=this.options.updateWhenZooming&&o!==this._tileZoom;n&&!s||(this._tileZoom=o,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),void 0!==o&&this._update(t),e||this._pruneTiles(),this._noPrune=!!e),this._setZoomTransforms(t,i)},_setZoomTransforms:function(t,i){for(var e in this._levels)this._setZoomTransform(this._levels[e],t,i)},_setZoomTransform:function(t,i,e){var n=this._map.getZoomScale(e,t.zoom),o=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(i,e)).round();ji?rt(t.el,o,n):at(t.el,o)},_resetGrid:function(){var t=this._map,i=t.options.crs,e=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom);o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=i.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,i.wrapLng[0]],n).x/e.x),Math.ceil(t.project([0,i.wrapLng[1]],n).x/e.y)],this._wrapY=i.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([i.wrapLat[0],0],n).y/e.x),Math.ceil(t.project([i.wrapLat[1],0],n).y/e.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var i=this._map,e=i._animatingZoom?Math.max(i._animateToZoom,i.getZoom()):i.getZoom(),n=i.getZoomScale(e,this._tileZoom),o=i.project(t,this._tileZoom).floor(),s=i.getSize().divideBy(2*n);return new P(o.subtract(s),o.add(s))},_update:function(t){var i=this._map;if(i){var e=this._clampZoom(i.getZoom());if(void 0===t&&(t=i.getCenter()),void 0!==this._tileZoom){var n=this._getTiledPixelBounds(t),o=this._pxBoundsToTileRange(n),s=o.getCenter(),r=[],a=this.options.keepBuffer,h=new P(o.getBottomLeft().subtract([a,-a]),o.getTopRight().add([a,-a]));if(!(isFinite(o.min.x)&&isFinite(o.min.y)&&isFinite(o.max.x)&&isFinite(o.max.y)))throw new Error("Attempted to load an infinite number of tiles");for(var u in this._tiles){var l=this._tiles[u].coords;l.z===this._tileZoom&&h.contains(new x(l.x,l.y))||(this._tiles[u].current=!1)}if(Math.abs(e-this._tileZoom)>1)this._setView(t,e);else{for(var c=o.min.y;c<=o.max.y;c++)for(var _=o.min.x;_<=o.max.x;_++){var d=new x(_,c);if(d.z=this._tileZoom,this._isValidTile(d)){var p=this._tiles[this._tileCoordsToKey(d)];p?p.current=!0:r.push(d)}}if(r.sort(function(t,i){return t.distanceTo(s)-i.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(_=0;_<r.length;_++)this._addTile(r[_],m);this._level.el.appendChild(m)}}}}},_isValidTile:function(t){var i=this._map.options.crs;if(!i.infinite){var e=this._globalTileRange;if(!i.wrapLng&&(t.x<e.min.x||t.x>e.max.x)||!i.wrapLat&&(t.y<e.min.y||t.y>e.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return z(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var i=this._map,e=this.getTileSize(),n=t.scaleBy(e),o=n.add(e);return[i.unproject(n,t.z),i.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var i=this._tileCoordsToNwSe(t),e=new T(i[0],i[1]);return this.options.noWrap||(e=this._map.wrapLatLngBounds(e)),e},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var i=t.split(":"),e=new x(+i[0],+i[1]);return e.z=+i[2],e},_removeTile:function(t){var i=this._tiles[t];i&&(Si||i.el.setAttribute("src",si),K(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){Q(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=r,t.onmousemove=r,Li&&this.options.opacity<1&&nt(t,this.options.opacity),zi&&!Mi&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,i){var n=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),e(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&f(e(this._tileReady,this,t,null,s)),at(s,n),this._tiles[o]={el:s,coords:t,current:!0},i.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,i,n){if(this._map&&n.getAttribute("src")!==si){i&&this.fire("tileerror",{error:i,tile:n,coords:t});var o=this._tileCoordsToKey(t);(n=this._tiles[o])&&(n.loaded=+new Date,this._map._fadeAnimated?(nt(n.el,0),g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this)):(n.active=!0,this._pruneTiles()),i||(Q(n.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:n.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Li||!this._map._fadeAnimated?f(this._pruneTiles,this):setTimeout(e(this._pruneTiles,this),250)))}},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new x(this._wrapX?s(t.x,this._wrapX):t.x,this._wrapY?s(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new P(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),mn=pn.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,i){this._url=t,(i=l(this,i)).detectRetina&&Yi&&i.maxZoom>0&&(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom++):(i.zoomOffset++,i.maxZoom--),i.minZoom=Math.max(0,i.minZoom)),"string"==typeof i.subdomains&&(i.subdomains=i.subdomains.split("")),zi||this.on("tileunload",this._onTileRemove)},setUrl:function(t,i){return this._url=t,i||this.redraw(),this},createTile:function(t,i){var n=document.createElement("img");return mt(n,"load",e(this._tileOnLoad,this,i,n)),mt(n,"error",e(this._tileOnError,this,i,n)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(n.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),n.alt="",n.setAttribute("role","presentation"),n.src=this.getTileUrl(t),n},getTileUrl:function(t){var e={r:Yi?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=n),e["-y"]=n}return _(this._url,i(e,this.options))},_tileOnLoad:function(t,i){Li?setTimeout(e(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,e){var n=this.options.errorTileUrl;n&&i.getAttribute("src")!==n&&(i.src=n),t(e,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,i=this.options.maxZoom,e=this.options.zoomReverse,n=this.options.zoomOffset;return e&&(t=i-t),t+n},_getSubdomain:function(t){var i=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[i]},_abortLoading:function(){var t,i;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((i=this._tiles[t].el).onload=r,i.onerror=r,i.complete||(i.src=si,K(i),delete this._tiles[t]))}}),fn=mn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var n=i({},this.defaultWmsParams);for(var o in e)o in this.options||(n[o]=e[o]);var s=(e=l(this,e)).detectRetina&&Yi?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var i=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[i]=this._crs.code,mn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var i=this._tileCoordsToNwSe(t),e=this._crs,n=b(e.project(i[0]),e.project(i[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===Ue?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=mn.prototype.getTileUrl.call(this,t);return a+c(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,e){return i(this.wmsParams,t),e||this.redraw(),this}});mn.WMS=fn,Jt.wms=function(t,i){return new fn(t,i)};var gn=qe.extend({options:{padding:.1,tolerance:0},initialize:function(t){l(this,t),n(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&Q(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,i){var e=this._map.getZoomScale(i,this._zoom),n=ht(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,i),r=this._map.project(t,i).subtract(s),a=o.multiplyBy(-e).add(n).add(o).subtract(r);ji?rt(this._container,a,e):at(this._container,a)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var t in this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,i=this._map.getSize(),e=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new P(e,e.add(i.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),vn=gn.extend({getEvents:function(){var t=gn.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){gn.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");mt(t,"mousemove",o(this._onMouseMove,32,this),this),mt(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),mt(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){g(this._redrawRequest),delete this._ctx,K(this._container),ft(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){this._redrawBounds=null;for(var t in this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){this._drawnLayers={},gn.prototype._update.call(this);var t=this._bounds,i=this._container,e=t.getSize(),n=Yi?2:1;at(i,t.min),i.width=n*e.x,i.height=n*e.y,i.style.width=e.x+"px",i.style.height=e.y+"px",Yi&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){gn.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[n(t)]=t;var i=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=i),this._drawLast=i,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var i=t._order,e=i.next,o=i.prev;e?e.prev=o:this._drawLast=o,o?o.next=e:this._drawFirst=e,delete this._drawnLayers[t._leaflet_id],delete t._order,delete this._layers[n(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var i,e=t.options.dashArray.split(","),n=[];for(i=0;i<e.length;i++)n.push(Number(e[i]));t.options._dashArray=n}else t.options._dashArray=t.options.dashArray},_requestRedraw:function(t){this._map&&(this._extendRedrawBounds(t),this._redrawRequest=this._redrawRequest||f(this._redraw,this))},_extendRedrawBounds:function(t){if(t._pxBounds){var i=(t.options.weight||0)+1;this._redrawBounds=this._redrawBounds||new P,this._redrawBounds.extend(t._pxBounds.min.subtract([i,i])),this._redrawBounds.extend(t._pxBounds.max.add([i,i]))}},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var t=this._redrawBounds;if(t){var i=t.getSize();this._ctx.clearRect(t.min.x,t.min.y,i.x,i.y)}else this._ctx.clearRect(0,0,this._container.width,this._container.height)},_draw:function(){var t,i=this._redrawBounds;if(this._ctx.save(),i){var e=i.getSize();this._ctx.beginPath(),this._ctx.rect(i.min.x,i.min.y,e.x,e.y),this._ctx.clip()}this._drawing=!0;for(var n=this._drawFirst;n;n=n.next)t=n.layer,(!i||t._pxBounds&&t._pxBounds.intersects(i))&&t._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(t,i){if(this._drawing){var e,n,o,s,r=t._parts,a=r.length,h=this._ctx;if(a){for(this._drawnLayers[t._leaflet_id]=t,h.beginPath(),e=0;e<a;e++){for(n=0,o=r[e].length;n<o;n++)s=r[e][n],h[n?"lineTo":"moveTo"](s.x,s.y);i&&h.closePath()}this._fillStroke(h,t)}}},_updateCircle:function(t){if(this._drawing&&!t._empty()){var i=t._point,e=this._ctx,n=Math.max(Math.round(t._radius),1),o=(Math.max(Math.round(t._radiusY),1)||n)/n;this._drawnLayers[t._leaflet_id]=t,1!==o&&(e.save(),e.scale(1,o)),e.beginPath(),e.arc(i.x,i.y/o,n,0,2*Math.PI,!1),1!==o&&e.restore(),this._fillStroke(e,t)}},_fillStroke:function(t,i){var e=i.options;e.fill&&(t.globalAlpha=e.fillOpacity,t.fillStyle=e.fillColor||e.color,t.fill(e.fillRule||"evenodd")),e.stroke&&0!==e.weight&&(t.setLineDash&&t.setLineDash(i.options&&i.options._dashArray||[]),t.globalAlpha=e.opacity,t.lineWidth=e.weight,t.strokeStyle=e.color,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.stroke())},_onClick:function(t){for(var i,e,n=this._map.mouseEventToLayerPoint(t),o=this._drawFirst;o;o=o.next)(i=o.layer).options.interactive&&i._containsPoint(n)&&!this._map._draggableMoved(i)&&(e=i);e&&(zt(t),this._fireEvent([e],t))},_onMouseMove:function(t){if(this._map&&!this._map.dragging.moving()&&!this._map._animatingZoom){var i=this._map.mouseEventToLayerPoint(t);this._handleMouseHover(t,i)}},_handleMouseOut:function(t){var i=this._hoveredLayer;i&&(tt(this._container,"leaflet-interactive"),this._fireEvent([i],t,"mouseout"),this._hoveredLayer=null)},_handleMouseHover:function(t,i){for(var e,n,o=this._drawFirst;o;o=o.next)(e=o.layer).options.interactive&&e._containsPoint(i)&&(n=e);n!==this._hoveredLayer&&(this._handleMouseOut(t),n&&(Q(this._container,"leaflet-interactive"),this._fireEvent([n],t,"mouseover"),this._hoveredLayer=n)),this._hoveredLayer&&this._fireEvent([this._hoveredLayer],t)},_fireEvent:function(t,i,e){this._map._fireDOMEvent(i,e||i.type,t)},_bringToFront:function(t){var i=t._order,e=i.next,n=i.prev;e&&(e.prev=n,n?n.next=e:e&&(this._drawFirst=e),i.prev=this._drawLast,this._drawLast.next=i,i.next=null,this._drawLast=i,this._requestRedraw(t))},_bringToBack:function(t){var i=t._order,e=i.next,n=i.prev;n&&(n.next=e,e?e.prev=n:n&&(this._drawLast=n),i.prev=null,i.next=this._drawFirst,this._drawFirst.prev=i,this._drawFirst=i,this._requestRedraw(t))}}),yn=function(){try{return document.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return document.createElement("<lvml:"+t+' class="lvml">')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),xn={_initContainer:function(){this._container=G("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(gn.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=yn("shape");Q(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=yn("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;K(i),t.removeInteractiveTarget(i),delete this._layers[n(t)]},_updateStyle:function(t){var i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i||(i=t._stroke=yn("stroke")),o.appendChild(i),i.weight=n.weight+"px",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=oi(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=n.lineCap.replace("butt","flat"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e||(e=t._fill=yn("fill")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+e+","+n+" 0,23592600")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){X(t._container)},_bringToBack:function(t){J(t._container)}},wn=$i?yn:E,Pn=gn.extend({getEvents:function(){var t=gn.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=wn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=wn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){K(this._container),ft(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){gn.prototype._update.call(this);var t=this._bounds,i=t.getSize(),e=this._container;this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute("width",i.x),e.setAttribute("height",i.y)),at(e,t.min),e.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update")}},_initPath:function(t){var i=t._path=wn("path");t.options.className&&Q(i,t.options.className),t.options.interactive&&Q(i,"leaflet-interactive"),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){K(t._path),t.removeInteractiveTarget(t._path),delete this._layers[n(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,e=t.options;i&&(e.stroke?(i.setAttribute("stroke",e.color),i.setAttribute("stroke-opacity",e.opacity),i.setAttribute("stroke-width",e.weight),i.setAttribute("stroke-linecap",e.lineCap),i.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?i.setAttribute("stroke-dasharray",e.dashArray):i.removeAttribute("stroke-dasharray"),e.dashOffset?i.setAttribute("stroke-dashoffset",e.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),e.fill?(i.setAttribute("fill",e.fillColor||e.color),i.setAttribute("fill-opacity",e.fillOpacity),i.setAttribute("fill-rule",e.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,k(t._parts,i))},_updateCircle:function(t){var i=t._point,e=Math.max(Math.round(t._radius),1),n="a"+e+","+(Math.max(Math.round(t._radiusY),1)||e)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(i.x-e)+","+i.y+n+2*e+",0 "+n+2*-e+",0 ";this._setPath(t,o)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){X(t._path)},_bringToBack:function(t){J(t._path)}});$i&&Pn.include(xn),be.include({getRenderer:function(t){var i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return i||(i=this._renderer=this._createRenderer()),this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var i=this._paneRenderers[t];return void 0===i&&(i=this._createRenderer({pane:t}),this._paneRenderers[t]=i),i},_createRenderer:function(t){return this.options.preferCanvas&&$t(t)||Qt(t)}});var Ln=on.extend({initialize:function(t,i){on.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=z(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Pn.create=wn,Pn.pointsToPath=k,sn.geometryToLayer=Ft,sn.coordsToLatLng=Ut,sn.coordsToLatLngs=Vt,sn.latLngToCoords=qt,sn.latLngsToCoords=Gt,sn.getFeature=Kt,sn.asFeature=Yt,be.mergeOptions({boxZoom:!0});var bn=Ee.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(){mt(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){ft(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){K(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(),fi(),ut(),this._startPoint=this._map.mouseEventToContainerPoint(t),mt(document,{contextmenu:Lt,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=G("div","leaflet-zoom-box",this._container),Q(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var i=new P(this._point,this._startPoint),e=i.getSize();at(this._box,i.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(K(this._box),tt(this._container,"leaflet-crosshair")),gi(),lt(),ft(document,{contextmenu:Lt,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(e(this._resetState,this),0);var i=new T(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});be.addInitHook("addHandler","boxZoom",bn),be.mergeOptions({doubleClickZoom:!0});var Tn=Ee.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,e=i.getZoom(),n=i.options.zoomDelta,o=t.originalEvent.shiftKey?e-n:e+n;"center"===i.options.doubleClickZoom?i.setZoom(o):i.setZoomAround(t.containerPoint,o)}});be.addInitHook("addHandler","doubleClickZoom",Tn),be.mergeOptions({dragging:!0,inertia:!Mi,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var zn=Ee.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new Re(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))}Q(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){tt(this._map._container,"leaflet-grab"),tt(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=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var i=z(this._map.options.maxBounds);this._offsetLimit=b(this._map.latLngToContainerPoint(i.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(i.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var i=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(e),this._times.push(i),this._prunePositions(i)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return t-(t-i)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit;t.x<i.min.x&&(t.x=this._viscousLimit(t.x,i.min.x)),t.y<i.min.y&&(t.y=this._viscousLimit(t.y,i.min.y)),t.x>i.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,s=(n+i+e)%t-i-e,r=Math.abs(o+e)<Math.abs(s+e)?o:s;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=r},_onDragEnd:function(t){var i=this._map,e=i.options,n=!e.inertia||this._times.length<2;if(i.fire("dragend",t),n)i.fire("moveend");else{this._prunePositions(+new Date);var o=this._lastPos.subtract(this._positions[0]),s=(this._lastTime-this._times[0])/1e3,r=e.easeLinearity,a=o.multiplyBy(r/s),h=a.distanceTo([0,0]),u=Math.min(e.inertiaMaxSpeed,h),l=a.multiplyBy(u/h),c=u/(e.inertiaDeceleration*r),_=l.multiplyBy(-c/2).round();_.x||_.y?(_=i._limitOffset(_,i.options.maxBounds),f(function(){i.panBy(_,{duration:c,easeLinearity:r,noMoveStart:!0,animate:!0})})):i.fire("moveend")}}});be.addInitHook("addHandler","dragging",zn),be.mergeOptions({keyboard:!0,keyboardPanDelta:80});var Mn=Ee.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex="0"),mt(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),ft(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){if(!this._focused){var t=document.body,i=document.documentElement,e=t.scrollTop||i.scrollTop,n=t.scrollLeft||i.scrollLeft;this._map._container.focus(),window.scrollTo(n,e)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){var i,e,n=this._panKeys={},o=this.keyCodes;for(i=0,e=o.left.length;i<e;i++)n[o.left[i]]=[-1*t,0];for(i=0,e=o.right.length;i<e;i++)n[o.right[i]]=[t,0];for(i=0,e=o.down.length;i<e;i++)n[o.down[i]]=[0,t];for(i=0,e=o.up.length;i<e;i++)n[o.up[i]]=[0,-1*t]},_setZoomDelta:function(t){var i,e,n=this._zoomKeys={},o=this.keyCodes;for(i=0,e=o.zoomIn.length;i<e;i++)n[o.zoomIn[i]]=t;for(i=0,e=o.zoomOut.length;i<e;i++)n[o.zoomOut[i]]=-t},_addHooks:function(){mt(document,"keydown",this._onKeyDown,this)},_removeHooks:function(){ft(document,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var i,e=t.keyCode,n=this._map;if(e in this._panKeys)n._panAnim&&n._panAnim._inProgress||(i=this._panKeys[e],t.shiftKey&&(i=w(i).multiplyBy(3)),n.panBy(i),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds));else if(e in this._zoomKeys)n.setZoom(n.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[e]);else{if(27!==e||!n._popup||!n._popup.options.closeOnEscapeKey)return;n.closePopup()}Lt(t)}}});be.addInitHook("addHandler","keyboard",Mn),be.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60});var Cn=Ee.extend({addHooks:function(){mt(this._map._container,"mousewheel",this._onWheelScroll,this),this._delta=0},removeHooks:function(){ft(this._map._container,"mousewheel",this._onWheelScroll,this)},_onWheelScroll:function(t){var i=Tt(t),n=this._map.options.wheelDebounceTime;this._delta+=i,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date);var o=Math.max(n-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(e(this._performZoom,this),o),Lt(t)},_performZoom:function(){var t=this._map,i=t.getZoom(),e=this._map.options.zoomSnap||0;t._stop();var n=this._delta/(4*this._map.options.wheelPxPerZoomLevel),o=4*Math.log(2/(1+Math.exp(-Math.abs(n))))/Math.LN2,s=e?Math.ceil(o/e)*e:o,r=t._limitZoom(i+(this._delta>0?s:-s))-i;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(i+r):t.setZoomAround(this._lastMousePos,i+r))}});be.addInitHook("addHandler","scrollWheelZoom",Cn),be.mergeOptions({tap:!0,tapTolerance:15});var Sn=Ee.extend({addHooks:function(){mt(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){ft(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(Pt(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new x(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&Q(n,"leaflet-active"),this._holdTimeout=setTimeout(e(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),this._simulateEvent("mousedown",i),mt(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),ft(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],e=i.target;e&&e.tagName&&"a"===e.tagName.toLowerCase()&&tt(e,"leaflet-active"),this._simulateEvent("mouseup",i),this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var i=t.touches[0];this._newPos=new x(i.clientX,i.clientY),this._simulateEvent("mousemove",i)},_simulateEvent:function(t,i){var e=document.createEvent("MouseEvents");e._simulated=!0,i.target._simulatedClick=!0,e.initMouseEvent(t,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(e)}});qi&&!Vi&&be.addInitHook("addHandler","tap",Sn),be.mergeOptions({touchZoom:qi&&!Mi,bounceAtZoomLimits:!0});var Zn=Ee.extend({addHooks:function(){Q(this._map._container,"leaflet-touch-zoom"),mt(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){tt(this._map._container,"leaflet-touch-zoom"),ft(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),"center"!==i.options.touchZoom&&(this._pinchStartLatLng=i.containerPointToLatLng(e.add(n)._divideBy(2))),this._startDist=e.distanceTo(n),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),mt(document,"touchmove",this._onTouchMove,this),mt(document,"touchend",this._onTouchEnd,this),Pt(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var i=this._map,n=i.mouseEventToContainerPoint(t.touches[0]),o=i.mouseEventToContainerPoint(t.touches[1]),s=n.distanceTo(o)/this._startDist;if(this._zoom=i.getScaleZoom(s,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoom<i.getMinZoom()&&s<1||this._zoom>i.getMaxZoom()&&s>1)&&(this._zoom=i._limitZoom(this._zoom)),"center"===i.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=n._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(i._moveStart(!0,!1),this._moved=!0),g(this._animRequest);var a=e(i._move,i,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=f(a,this,!0),Pt(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,g(this._animRequest),ft(document,"touchmove",this._onTouchMove),ft(document,"touchend",this._onTouchEnd),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});be.addInitHook("addHandler","touchZoom",Zn),be.BoxZoom=bn,be.DoubleClickZoom=Tn,be.Drag=zn,be.Keyboard=Mn,be.ScrollWheelZoom=Cn,be.Tap=Sn,be.TouchZoom=Zn,Object.freeze=ti,t.version="1.3.3+HEAD.b22aef4",t.Control=Te,t.control=ze,t.Browser=Qi,t.Evented=ci,t.Mixin=Ae,t.Util=ui,t.Class=v,t.Handler=Ee,t.extend=i,t.bind=e,t.stamp=n,t.setOptions=l,t.DomEvent=Pe,t.DomUtil=ve,t.PosAnimation=Le,t.Draggable=Re,t.LineUtil=Ne,t.PolyUtil=De,t.Point=x,t.point=w,t.Bounds=P,t.bounds=b,t.Transformation=S,t.transformation=Z,t.Projection=He,t.LatLng=M,t.latLng=C,t.LatLngBounds=T,t.latLngBounds=z,t.CRS=di,t.GeoJSON=sn,t.geoJSON=Xt,t.geoJson=an,t.Layer=qe,t.LayerGroup=Ge,t.layerGroup=function(t,i){return new Ge(t,i)},t.FeatureGroup=Ke,t.featureGroup=function(t){return new Ke(t)},t.ImageOverlay=hn,t.imageOverlay=function(t,i,e){return new hn(t,i,e)},t.VideoOverlay=un,t.videoOverlay=function(t,i,e){return new un(t,i,e)},t.DivOverlay=ln,t.Popup=cn,t.popup=function(t,i){return new cn(t,i)},t.Tooltip=_n,t.tooltip=function(t,i){return new _n(t,i)},t.Icon=Ye,t.icon=function(t){return new Ye(t)},t.DivIcon=dn,t.divIcon=function(t){return new dn(t)},t.Marker=$e,t.marker=function(t,i){return new $e(t,i)},t.TileLayer=mn,t.tileLayer=Jt,t.GridLayer=pn,t.gridLayer=function(t){return new pn(t)},t.SVG=Pn,t.svg=Qt,t.Renderer=gn,t.Canvas=vn,t.canvas=$t,t.Path=Qe,t.CircleMarker=tn,t.circleMarker=function(t,i){return new tn(t,i)},t.Circle=en,t.circle=function(t,i,e){return new en(t,i,e)},t.Polyline=nn,t.polyline=function(t,i){return new nn(t,i)},t.Polygon=on,t.polygon=function(t,i){return new on(t,i)},t.Rectangle=Ln,t.rectangle=function(t,i){return new Ln(t,i)},t.Map=be,t.map=function(t,i){return new be(t,i)};var En=window.L;t.noConflict=function(){return window.L=En,this},window.L=t});
\ No newline at end of file
diff --git a/searx/static/themes/simple/less/ion.less b/searx/static/themes/simple/less/ion.less
deleted file mode 100644
index c9e715591..000000000
--- a/searx/static/themes/simple/less/ion.less
+++ /dev/null
@@ -1,181 +0,0 @@
-// Generated by grunt-webfont
-
-
-@font-face {
-	font-family:"ion";
-	src:url("../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51");
-	src:url("../fonts/ion.eot?#iefix") format("embedded-opentype"),
-		url("../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51") format("woff2"),
-		url("../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51") format("woff"),
-		url("../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51") format("truetype"),
-		url("../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion") format("svg");
-	font-weight:normal;
-	font-style:normal;
-}
-
-.ion-icon {
-	&:before {
-		font-family:"ion";
-	}
-	display:inline-block;
-	vertical-align:middle;
-	line-height:1;
-	font-weight:normal;
-	font-style:normal;
-	speak:none;
-	text-decoration:inherit;
-	text-transform:none;
-	text-rendering:auto;
-	-webkit-font-smoothing:antialiased;
-	-moz-osx-font-smoothing:grayscale;
-}
-
-
-// Icons
-
-.ion-navicon-round {
-	&:before {
-		content:"\f101";
-	}
-}
-
-
-.ion-search {
-	&:before {
-		content:"\f102";
-	}
-}
-
-
-.ion-play {
-	&:before {
-		content:"\f103";
-	}
-}
-
-
-.ion-link {
-	&:before {
-		content:"\f104";
-	}
-}
-
-
-.ion-chevron-up {
-	&:before {
-		content:"\f105";
-	}
-}
-
-
-.ion-chevron-left {
-	&:before {
-		content:"\f106";
-	}
-}
-
-
-.ion-chevron-right {
-	&:before {
-		content:"\f107";
-	}
-}
-
-
-.ion-arrow-down-a {
-	&:before {
-		content:"\f108";
-	}
-}
-
-
-.ion-arrow-up-a {
-	&:before {
-		content:"\f109";
-	}
-}
-
-
-.ion-arrow-swap {
-	&:before {
-		content:"\f10a";
-	}
-}
-
-
-.ion-arrow-dropdown {
-	&:before {
-		content:"\f10b";
-	}
-}
-
-
-.ion-globe {
-	&:before {
-		content:"\f10c";
-	}
-}
-
-
-.ion-time {
-	&:before {
-		content:"\f10d";
-	}
-}
-
-
-.ion-location {
-	&:before {
-		content:"\f10e";
-	}
-}
-
-
-.ion-warning {
-	&:before {
-		content:"\f10f";
-	}
-}
-
-
-.ion-error {
-	&:before {
-		content:"\f110";
-	}
-}
-
-
-.ion-film-outline {
-	&:before {
-		content:"\f111";
-	}
-}
-
-
-.ion-music-note {
-	&:before {
-		content:"\f112";
-	}
-}
-
-
-.ion-more-vertical {
-	&:before {
-		content:"\f113";
-	}
-}
-
-
-.ion-magnet {
-	&:before {
-		content:"\f114";
-	}
-}
-
-
-.ion-close {
-	&:before {
-		content:"\f115";
-	}
-}
-
diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json
index e84489947..22357a4c7 100644
--- a/searx/static/themes/simple/package.json
+++ b/searx/static/themes/simple/package.json
@@ -1,20 +1,28 @@
 {
   "devDependencies": {
-    "grunt": "~1.0.3",
+    "grunt-cli": "^1.4.3",
+    "grunt": "~1.4.1",
+    "grunt-contrib-copy": "^1.0.0",
     "grunt-contrib-concat": "~1.0.1",
-    "grunt-contrib-cssmin": "^2.2.1",
-    "grunt-contrib-jshint": "~1.1.0",
+    "grunt-contrib-cssmin": "^4.0.0",
+    "grunt-contrib-jshint": "~3.0.0",
     "grunt-contrib-less": "~3.0.0",
-    "grunt-contrib-uglify": "~3.4.0",
+    "grunt-contrib-uglify": "~5.0.1",
     "grunt-contrib-watch": "~1.1.0",
-    "grunt-webfont": "^1.7.1",
+    "grunt-webfont": "^1.7.2",
     "ionicons-npm": "^2.0.1",
-    "jslint": "^0.12.0",
+    "jslint": "^0.12.1",
+    "less": "^4.1.1",
     "less-plugin-clean-css": "^1.5.1"
   },
+  "dependencies": {
+    "autocomplete-js": "2.7.1",
+    "leaflet": "^1.7.1"
+  },
   "scripts": {
-    "build": "npm install && grunt",
-    "start": "grunt watch",
-    "test": "grunt"
+    "all": "npm install && grunt",
+    "build": "grunt",
+    "watch": "grunt watch",
+    "clean": "rm -Rf node_modules package-lock.json ion.less"
   }
 }
diff --git a/searx/static/themes/simple/magnet.svg b/searx/static/themes/simple/src/fonts/magnet.svg
similarity index 100%
rename from searx/static/themes/simple/magnet.svg
rename to searx/static/themes/simple/src/fonts/magnet.svg
diff --git a/searx/static/themes/simple/js/searx_head/00_init.js b/searx/static/themes/simple/src/js/head/00_init.js
similarity index 98%
rename from searx/static/themes/simple/js/searx_head/00_init.js
rename to searx/static/themes/simple/src/js/head/00_init.js
index e6964400b..be7560451 100644
--- a/searx/static/themes/simple/js/searx_head/00_init.js
+++ b/searx/static/themes/simple/src/js/head/00_init.js
@@ -33,7 +33,7 @@
         infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true',
         static_path: script.getAttribute('data-static-path'),
         translations: JSON.parse(script.getAttribute('data-translations')),
-    }
+    };
 
     // update the css
     d.getElementsByTagName("html")[0].className = (w.searx.touch)?"js touch":"js";
diff --git a/searx/static/themes/simple/js/searx_src/00_searx_toolkit.js b/searx/static/themes/simple/src/js/main/00_searx_toolkit.js
similarity index 100%
rename from searx/static/themes/simple/js/searx_src/00_searx_toolkit.js
rename to searx/static/themes/simple/src/js/main/00_searx_toolkit.js
diff --git a/searx/static/themes/simple/js/searx_src/searx_keyboard.js b/searx/static/themes/simple/src/js/main/searx_keyboard.js
similarity index 100%
rename from searx/static/themes/simple/js/searx_src/searx_keyboard.js
rename to searx/static/themes/simple/src/js/main/searx_keyboard.js
diff --git a/searx/static/themes/simple/js/searx_src/searx_mapresult.js b/searx/static/themes/simple/src/js/main/searx_mapresult.js
similarity index 97%
rename from searx/static/themes/simple/js/searx_src/searx_mapresult.js
rename to searx/static/themes/simple/src/js/main/searx_mapresult.js
index 2ccdbd1c7..7b3982c11 100644
--- a/searx/static/themes/simple/js/searx_src/searx_mapresult.js
+++ b/searx/static/themes/simple/src/js/main/searx_mapresult.js
@@ -31,8 +31,8 @@
       var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);
       var map_geojson = JSON.parse(this.dataset.mapGeojson);
 
-      searx.loadStyle('leaflet/leaflet.css');
-      searx.loadScript('leaflet/leaflet.js', function() {
+      searx.loadStyle('css/leaflet.css');
+      searx.loadScript('js/leaflet.js', function() {
         var map_bounds = null;
         if(map_boundingbox) {
           var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);
diff --git a/searx/static/themes/simple/js/searx_src/searx_results.js b/searx/static/themes/simple/src/js/main/searx_results.js
similarity index 100%
rename from searx/static/themes/simple/js/searx_src/searx_results.js
rename to searx/static/themes/simple/src/js/main/searx_results.js
diff --git a/searx/static/themes/simple/js/searx_src/searx_search.js b/searx/static/themes/simple/src/js/main/searx_search.js
similarity index 100%
rename from searx/static/themes/simple/js/searx_src/searx_search.js
rename to searx/static/themes/simple/src/js/main/searx_search.js
diff --git a/searx/static/themes/simple/less/autocomplete.less b/searx/static/themes/simple/src/less/autocomplete.less
similarity index 100%
rename from searx/static/themes/simple/less/autocomplete.less
rename to searx/static/themes/simple/src/less/autocomplete.less
diff --git a/searx/static/themes/simple/less/code.less b/searx/static/themes/simple/src/less/code.less
similarity index 100%
rename from searx/static/themes/simple/less/code.less
rename to searx/static/themes/simple/src/less/code.less
diff --git a/searx/static/themes/simple/less/definitions.less b/searx/static/themes/simple/src/less/definitions.less
similarity index 100%
rename from searx/static/themes/simple/less/definitions.less
rename to searx/static/themes/simple/src/less/definitions.less
diff --git a/searx/static/themes/simple/less/index.less b/searx/static/themes/simple/src/less/index.less
similarity index 100%
rename from searx/static/themes/simple/less/index.less
rename to searx/static/themes/simple/src/less/index.less
diff --git a/searx/static/themes/simple/less/mixins.less b/searx/static/themes/simple/src/less/mixins.less
similarity index 100%
rename from searx/static/themes/simple/less/mixins.less
rename to searx/static/themes/simple/src/less/mixins.less
diff --git a/searx/static/themes/simple/less/normalize.less b/searx/static/themes/simple/src/less/normalize.less
similarity index 100%
rename from searx/static/themes/simple/less/normalize.less
rename to searx/static/themes/simple/src/less/normalize.less
diff --git a/searx/static/themes/simple/less/preferences.less b/searx/static/themes/simple/src/less/preferences.less
similarity index 100%
rename from searx/static/themes/simple/less/preferences.less
rename to searx/static/themes/simple/src/less/preferences.less
diff --git a/searx/static/themes/simple/less/pygments.less b/searx/static/themes/simple/src/less/pygments.less
similarity index 100%
rename from searx/static/themes/simple/less/pygments.less
rename to searx/static/themes/simple/src/less/pygments.less
diff --git a/searx/static/themes/simple/less/search.less b/searx/static/themes/simple/src/less/search.less
similarity index 100%
rename from searx/static/themes/simple/less/search.less
rename to searx/static/themes/simple/src/less/search.less
diff --git a/searx/static/themes/simple/less/style-rtl.less b/searx/static/themes/simple/src/less/style-rtl.less
similarity index 100%
rename from searx/static/themes/simple/less/style-rtl.less
rename to searx/static/themes/simple/src/less/style-rtl.less
diff --git a/searx/static/themes/simple/less/style.less b/searx/static/themes/simple/src/less/style.less
similarity index 99%
rename from searx/static/themes/simple/less/style.less
rename to searx/static/themes/simple/src/less/style.less
index 61c0a93de..82fcb00ed 100644
--- a/searx/static/themes/simple/less/style.less
+++ b/searx/static/themes/simple/src/less/style.less
@@ -22,7 +22,7 @@
 @import "autocomplete.less";
 
 // ion-icon
-@import "ion.less";
+@import "../../ion.less";
 
 .ion-icon-big {
   .ion-icon;
diff --git a/searx/static/themes/simple/less/toolkit.less b/searx/static/themes/simple/src/less/toolkit.less
similarity index 100%
rename from searx/static/themes/simple/less/toolkit.less
rename to searx/static/themes/simple/src/less/toolkit.less
diff --git a/searx/static/themes/simple/less/toolkit_loader.less b/searx/static/themes/simple/src/less/toolkit_loader.less
similarity index 100%
rename from searx/static/themes/simple/less/toolkit_loader.less
rename to searx/static/themes/simple/src/less/toolkit_loader.less
diff --git a/utils/searx.sh b/utils/searx.sh
index a5345c075..69068b914 100755
--- a/utils/searx.sh
+++ b/utils/searx.sh
@@ -51,7 +51,8 @@ shellcheck"
 BUILD_PACKAGES_debian="\
 firefox graphviz imagemagick texlive-xetex librsvg2-bin
 texlive-latex-recommended texlive-extra-utils fonts-dejavu
-latexmk"
+latexmk fontforge ttfautohint
+npm"
 
 # pacman packages
 SEARX_PACKAGES_arch="\
@@ -62,7 +63,8 @@ shellcheck"
 
 BUILD_PACKAGES_arch="\
 firefox graphviz imagemagick texlive-bin extra/librsvg
-texlive-core texlive-latexextra ttf-dejavu"
+texlive-core texlive-latexextra ttf-dejavu fontforge ttfautohint
+npm"
 
 # dnf packages
 SEARX_PACKAGES_fedora="\
@@ -75,9 +77,16 @@ BUILD_PACKAGES_fedora="\
 firefox graphviz graphviz-gd ImageMagick librsvg2-tools
 texlive-xetex-bin texlive-collection-fontsrecommended
 texlive-collection-latex dejavu-sans-fonts dejavu-serif-fonts
-dejavu-sans-mono-fonts"
+dejavu-sans-mono-fonts fontforge ttfautohint
+npm"
 
 # yum packages
+#
+# hint: We do no longer support yum packages, it is to complex to maintain
+#       automate installation of packages like npm.  In the firts step we ignore
+#       CentOS-7 as developer & build platform (the inital patch which brought
+#       CentOS-7 supports was not intended to be a developer platform).
+
 SEARX_PACKAGES_centos="\
 python36 python36-pip python36-lxml python-babel
 uwsgi uwsgi-plugin-python3