diff options
| author | Alexandre Flament <alex@al-f.net> | 2021-11-05 15:29:48 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-05 15:29:48 +0100 |
| commit | 082d55e6c5c2f576396d4790179e13ad627f7253 (patch) | |
| tree | 474814ffa753995d05a7a92be40aa9377f3ce39e /searx/static/themes/simple/js | |
| parent | ba342db55e419a84b462bca17b16395f7a08c777 (diff) | |
| parent | 558e0c32419d9e3f78e543fea7c51b295f24c245 (diff) | |
Merge pull request #481 from dalf/simple-fix-hotkeys
Simple themes: fixes in keyboard.js
Diffstat (limited to 'searx/static/themes/simple/js')
| -rw-r--r-- | searx/static/themes/simple/js/searxng.head.js | 1 | ||||
| -rw-r--r-- | searx/static/themes/simple/js/searxng.head.min.js | 2 | ||||
| -rw-r--r-- | searx/static/themes/simple/js/searxng.head.min.js.map | 2 | ||||
| -rw-r--r-- | searx/static/themes/simple/js/searxng.js | 103 | ||||
| -rw-r--r-- | searx/static/themes/simple/js/searxng.min.js | 2 | ||||
| -rw-r--r-- | searx/static/themes/simple/js/searxng.min.js.map | 2 |
6 files changed, 69 insertions, 43 deletions
diff --git a/searx/static/themes/simple/js/searxng.head.js b/searx/static/themes/simple/js/searxng.head.js index 4406b764e..d359a9174 100644 --- a/searx/static/themes/simple/js/searxng.head.js +++ b/searx/static/themes/simple/js/searxng.head.js @@ -21,6 +21,7 @@ autocompleter: script.getAttribute('data-autocompleter') === 'true', search_on_category_select: script.getAttribute('data-search-on-category-select') === 'true', infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true', + hotkeys: script.getAttribute('data-hotkeys') === 'true', static_path: script.getAttribute('data-static-path'), translations: JSON.parse(script.getAttribute('data-translations')), }; diff --git a/searx/static/themes/simple/js/searxng.head.min.js b/searx/static/themes/simple/js/searxng.head.min.js index a914a2be2..af2f861e8 100644 --- a/searx/static/themes/simple/js/searxng.head.min.js +++ b/searx/static/themes/simple/js/searxng.head.min.js @@ -4,5 +4,5 @@ * (C) Copyright Contributors to the searx project (2014 - 2021). * SPDX-License-Identifier: AGPL-3.0-or-later */ -(function(t,e){"use strict";var a=e.currentScript||function(){var t=e.getElementsByTagName("script");return t[t.length-1]}();t.searxng={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.searxng.touch?"js touch":"js"})(window,document); +(function(t,e){"use strict";var a=e.currentScript||function(){var t=e.getElementsByTagName("script");return t[t.length-1]}();t.searxng={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",hotkeys:a.getAttribute("data-hotkeys")==="true",static_path:a.getAttribute("data-static-path"),translations:JSON.parse(a.getAttribute("data-translations"))};e.getElementsByTagName("html")[0].className=t.searxng.touch?"js touch":"js"})(window,document); //# sourceMappingURL=searxng.head.min.js.map
\ No newline at end of file diff --git a/searx/static/themes/simple/js/searxng.head.min.js.map b/searx/static/themes/simple/js/searxng.head.min.js.map index adb1fd0ab..a7533ce8b 100644 --- a/searx/static/themes/simple/js/searxng.head.min.js.map +++ b/searx/static/themes/simple/js/searxng.head.min.js.map @@ -1 +1 @@ -{"version":3,"file":"searxng.head.min.js","sources":["searxng.head.js"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searxng","touch","DocumentTouch","document","method","getAttribute","autocompleter","search_on_category_select","infinite_scroll","static_path","translations","JSON","parse","className","window"],"mappings":";;;;;;CAOA,SAAUA,EAAGC,gBAIT,IAAIC,EAASD,EAAEE,eAAkB,WAC7B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFH,GAMjCN,EAAEO,QAAU,CACRC,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,QAAa,MAAE,WAAW,MArB/E,CAsBGc,OAAQX"}
\ No newline at end of file +{"version":3,"file":"searxng.head.min.js","sources":["searxng.head.js"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searxng","touch","DocumentTouch","document","method","getAttribute","autocompleter","search_on_category_select","infinite_scroll","hotkeys","static_path","translations","JSON","parse","className","window"],"mappings":";;;;;;CAOA,SAAUA,EAAGC,gBAIT,IAAIC,EAASD,EAAEE,eAAkB,WAC7B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFH,GAMjCN,EAAEO,QAAU,CACRC,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,QAASd,EAAOU,aAAa,kBAAoB,OACjDK,YAAaf,EAAOU,aAAa,oBACjCM,aAAcC,KAAKC,MAAMlB,EAAOU,aAAa,uBAIjDX,EAAEI,qBAAqB,QAAQ,GAAGgB,UAAarB,EAAEO,QAAa,MAAE,WAAW,MAtB/E,CAuBGe,OAAQZ"}
\ No newline at end of file diff --git a/searx/static/themes/simple/js/searxng.js b/searx/static/themes/simple/js/searxng.js index 02a5b87ab..a65165bae 100644 --- a/searx/static/themes/simple/js/searxng.js +++ b/searx/static/themes/simple/js/searxng.js @@ -155,21 +155,56 @@ window.searxng = (function(w, d) { searxng.ready(function() { - searxng.on('.result', 'click', function() { - highlightResult(this)(true); - }); + function isElementInDetail(el) { + while (el !== undefined) { + if (el.classList.contains('detail')) { + return true; + } + if (el.classList.contains('result')) { + // we found a result, no need to go to the root of the document: + // el is not inside a <div class="detail"> element + return false; + } + el = el.parentNode; + } + return false; + } - searxng.on('.result a', 'focus', function(e) { - var el = e.target; + function getResultElement(el) { while (el !== undefined) { if (el.classList.contains('result')) { - if (el.getAttribute("data-vim-selected") === null) { - highlightResult(el)(true); - } - break; + return el; } el = el.parentNode; } + return undefined; + } + + function isImageResult(resultElement) { + return resultElement && resultElement.classList.contains('result-images'); + } + + searxng.on('.result', 'click', function(e) { + if (!isElementInDetail(e.target)) { + highlightResult(this)(true); + let resultElement = getResultElement(e.target); + if (isImageResult(resultElement)) { + e.preventDefault(); + searxng.selectImage(resultElement); + } + } + }); + + searxng.on('.result a', 'focus', function(e) { + if (!isElementInDetail(e.target)) { + let resultElement = getResultElement(e.target); + if (resultElement && resultElement.getAttribute("data-vim-selected") === null) { + highlightResult(resultElement)(true); + } + if (isImageResult(resultElement)) { + searxng.selectImage(resultElement); + } + } }, true); var vimKeys = { @@ -271,20 +306,22 @@ searxng.ready(function() { } }; - searxng.on(document, "keydown", function(e) { - // check for modifiers so we don't break browser's hotkeys - if (Object.prototype.hasOwnProperty.call(vimKeys, e.keyCode) && !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) { - var tagName = e.target.tagName.toLowerCase(); - if (e.keyCode === 27) { - vimKeys[e.keyCode].fun(e); - } else { - if (e.target === document.body || tagName === 'a' || tagName === 'button') { - e.preventDefault(); - vimKeys[e.keyCode].fun(); + if (searxng.hotkeys) { + searxng.on(document, "keydown", function(e) { + // check for modifiers so we don't break browser's hotkeys + if (Object.prototype.hasOwnProperty.call(vimKeys, e.keyCode) && !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) { + var tagName = e.target.tagName.toLowerCase(); + if (e.keyCode === 27) { + vimKeys[e.keyCode].fun(e); + } else { + if (e.target === document.body || tagName === 'a' || tagName === 'button') { + e.preventDefault(); + vimKeys[e.keyCode].fun(); + } } } - } - }); + }); + } function highlightResult(which) { return function(noScroll) { @@ -505,14 +542,12 @@ searxng.ready(function() { } function toggleHelp() { - var helpPanel = document.querySelector('#vim-hotkeys-help'); - console.log(helpPanel); + var helpPanel = document.querySelector('#vim-hotkeys-help'); if (helpPanel === undefined || helpPanel === null) { // first call helpPanel = document.createElement('div'); helpPanel.id = 'vim-hotkeys-help'; helpPanel.className='dialog-modal'; - helpPanel.style='width: 40%'; initHelpContent(helpPanel); initHelpContent(helpPanel); initHelpContent(helpPanel); @@ -664,17 +699,13 @@ searxng.ready(function() { } }); - function selectImage(e) { + searxng.selectImage = function(resultElement) { /*eslint no-unused-vars: 0*/ - let t = e.target; - while (t && t.nodeName != 'ARTICLE') { - t = t.parentNode; - } - if (t) { + if (resultElement) { // load full size image in background - const imgElement = t.querySelector('.result-images-source img'); - const thumbnailElement = t.querySelector('.image_thumbnail'); - const detailElement = t.querySelector('.detail'); + const imgElement = resultElement.querySelector('.result-images-source img'); + const thumbnailElement = resultElement.querySelector('.image_thumbnail'); + const detailElement = resultElement.querySelector('.detail'); if (imgElement) { const imgSrc = imgElement.getAttribute('data-src'); if (imgSrc) { @@ -707,12 +738,6 @@ searxng.ready(function() { searxng.image_thumbnail_layout.align(); searxng.scrollPageToSelected(); } - - searxng.on('.result-images', 'click', e => { - e.preventDefault(); - selectImage(e); - }); - searxng.on('.result-images a', 'focus', selectImage, true); searxng.on('.result-detail-close', 'click', e => { e.preventDefault(); searxng.closeDetail(); diff --git a/searx/static/themes/simple/js/searxng.min.js b/searx/static/themes/simple/js/searxng.min.js index a6d8e9b0a..a739d75e0 100644 --- a/searx/static/themes/simple/js/searxng.min.js +++ b/searx/static/themes/simple/js/searxng.min.js @@ -4,7 +4,7 @@ * (C) Copyright Contributors to the searx project (2014 - 2021). * SPDX-License-Identifier: AGPL-3.0-or-later */ -window.searxng=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.searxng||{};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){var n=new XMLHttpRequest,i=function(){},r=function(){},o={then:function(e){i=e;return o},catch:function(e){r=e;return o}};try{n.open(e,t,true);n.onload=function(){if(n.status==200){i(n.response,n.responseType)}else{r(Error(n.statusText))}};n.onerror=function(){r(Error("Network Error"))};n.onabort=function(){r(Error("Transaction is aborted"))};n.send()}catch(e){r(e)}return o};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){t.parentNode.insertBefore(e,t)};s.insertAfter=function(e,t){t.parentNode.insertAfter(e,t.nextSibling)};s.on(".close","click",function(){this.parentNode.classList.add("invisible")});return s}(window,document);searxng.ready(function(){searxng.on(".result","click",function(){n(this)(true)});searxng.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:l,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:a(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:a(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:a(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:a(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:s(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:s(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:o(),des:"go to previous page",cat:"Results"},78:{key:"n",fun:r(),des:"go to next page",cat:"Results"},79:{key:"o",fun:u(false),des:"open search result",cat:"Results"},84:{key:"t",fun:u(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:p,des:"toggle help window",cat:"Other"}};searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.keyCode)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.keyCode===27){d[e.keyCode].fun(e)}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(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function i(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function r(){return i('nav#pagination .next_page button[type="submit"]')}function o(){return i('nav#pagination .previous_page button[type="submit"]')}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 a(e){return function(){window.scrollBy(0,e);n("visible")()}}function s(e,t){return function(){window.scrollTo(0,e);n(t)()}}function l(){window.scrollTo(0,0);document.querySelector("#q").focus()}function u(n){return function(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null){e=document.querySelector(".result[data-vim-selected] > a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function c(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 p(){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%";c(e);c(e);c(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}searxng.scrollPageToSelected=f;searxng.selectNext=n("down");searxng.selectPrevious=n("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_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 g=JSON.parse(this.dataset.mapBoundingbox);var m=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(g){var t=L.latLng(g[0],g[2]);var n=L.latLng(g[1],g[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 | Maps data © <a href="https://openstreetmap.org">OpenStreetMap contributors</a>';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,"OSM Wikimedia":u};L.control.layers(c).addTo(i);if(m){L.geoJson(m).addTo(i)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,o,a){"use strict";a.ready(function(){let r=null;function e(){if(r==null){a.http("GET","engine_descriptions.json").then(function(e){r=JSON.parse(e);for(const[t,n]of Object.entries(r)){let e=o.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const i of e){let e=" (<i>"+a.translations["Source"]+": "+n[1]+"</i>)";i.innerHTML=n[0]+e}}})}}if(o.querySelector('body[class="preferences_endpoint"]')){for(const t of o.querySelectorAll("[data-engine-name]")){a.on(t,"mouseenter",e)}}})})(window,document,window.searxng);(function(e,l,u){"use strict";u.ready(function(){u.image_thumbnail_layout=new u.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",14,6,200);u.image_thumbnail_layout.watch();u.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var i=l.querySelector(n);var r=this.innerHTML;if(this.classList.contains("collapsed")){r=r.replace(e,t)}else{r=r.replace(t,e)}this.innerHTML=r;this.classList.toggle("collapsed");i.classList.toggle("invisible")});u.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=l.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});function t(e){let t=e.target;while(t&&t.nodeName!="ARTICLE"){t=t.parentNode}if(t){const n=t.querySelector(".result-images-source img");const i=t.querySelector(".image_thumbnail");const r=t.querySelector(".detail");if(n){const o=n.getAttribute("data-src");if(o){const a=l.createElement("div");const s=new Image;a.classList.add("loader");r.appendChild(a);s.onload=e=>{n.src=o;a.remove()};s.onerror=e=>{a.remove()};s.src=o;n.src=i.src;n.removeAttribute("data-src")}}}l.getElementById("results").classList.add("image-detail-open");u.image_thumbnail_layout.align();u.scrollPageToSelected()}u.closeDetail=function(e){l.getElementById("results").classList.remove("image-detail-open");u.image_thumbnail_layout.align();u.scrollPageToSelected()};u.on(".result-images","click",e=>{e.preventDefault();t(e)});u.on(".result-images a","focus",t,true);u.on(".result-detail-close","click",e=>{e.preventDefault();u.closeDetail()});u.on(".result-detail-previous","click",e=>u.selectPrevious(false));u.on(".result-detail-next","click",e=>u.selectNext(false));e.addEventListener("scroll",function(){var e=l.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=l.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(t,n,i){"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)}i.ready(function(){a=n.getElementById(o);function e(){if(r){s(a);r=false}else{}}if(a!==null){u(a);if(i.autocompleter){i.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:i.translations.no_item_found,HttpMethod:i.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.querySelector(".help")!=null&&i.search_on_category_select){n.querySelector(".help").className="invisible";i.on("#categories input","change",function(){var e,t=n.querySelectorAll('#categories input[type="checkbox"]');for(e=0;e<t.length;e++){if(t[e]!==this&&t[e].checked){t[e].click()}}if(!this.checked){this.click()}l();return false});i.on(n.getElementById("time_range"),"change",l);i.on(n.getElementById("language"),"change",l)}})})(window,document,window.searxng); +window.searxng=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.searxng||{};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){var n=new XMLHttpRequest,i=function(){},r=function(){},o={then:function(e){i=e;return o},catch:function(e){r=e;return o}};try{n.open(e,t,true);n.onload=function(){if(n.status==200){i(n.response,n.responseType)}else{r(Error(n.statusText))}};n.onerror=function(){r(Error("Network Error"))};n.onabort=function(){r(Error("Transaction is aborted"))};n.send()}catch(e){r(e)}return o};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){t.parentNode.insertBefore(e,t)};s.insertAfter=function(e,t){t.parentNode.insertAfter(e,t.nextSibling)};s.on(".close","click",function(){this.parentNode.classList.add("invisible")});return s}(window,document);searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function i(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){r(this)(true);let e=n(t.target);if(i(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){r(e)(true)}if(i(e)){searxng.selectImage(e)}}},true);var d={27:{key:"Escape",fun:o,des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:p,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:u(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:u(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:u(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:u(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:c(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:c(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:r("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:r("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:l(),des:"go to previous page",cat:"Results"},78:{key:"n",fun:s(),des:"go to next page",cat:"Results"},79:{key:"o",fun:h(false),des:"open search result",cat:"Results"},84:{key:"t",fun:h(true),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:t,des:"reload page from the server",cat:"Control"},72:{key:"h",fun:m,des:"toggle help window",cat:"Other"}};if(searxng.hotkeys){searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.keyCode)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.keyCode===27){d[e.keyCode].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.keyCode].fun()}}}})}function r(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 t(){document.location.reload(true)}function o(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function a(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function s(){return a('nav#pagination .next_page button[type="submit"]')}function l(){return a('nav#pagination .previous_page button[type="submit"]')}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 u(e){return function(){window.scrollBy(0,e);r("visible")()}}function c(e,t){return function(){window.scrollTo(0,e);r(t)()}}function p(){window.scrollTo(0,0);document.querySelector("#q").focus()}function h(n){return function(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null){e=document.querySelector(".result[data-vim-selected] > a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function g(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 m(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";g(e);g(e);g(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}searxng.scrollPageToSelected=f;searxng.selectNext=r("down");searxng.selectPrevious=r("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_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 g=JSON.parse(this.dataset.mapBoundingbox);var m=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(g){var t=L.latLng(g[0],g[2]);var n=L.latLng(g[1],g[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 | Maps data © <a href="https://openstreetmap.org">OpenStreetMap contributors</a>';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,"OSM Wikimedia":u};L.control.layers(c).addTo(i);if(m){L.geoJson(m).addTo(i)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,o,a){"use strict";a.ready(function(){let r=null;function e(){if(r==null){a.http("GET","engine_descriptions.json").then(function(e){r=JSON.parse(e);for(const[t,n]of Object.entries(r)){let e=o.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const i of e){let e=" (<i>"+a.translations["Source"]+": "+n[1]+"</i>)";i.innerHTML=n[0]+e}}})}}if(o.querySelector('body[class="preferences_endpoint"]')){for(const t of o.querySelectorAll("[data-engine-name]")){a.on(t,"mouseenter",e)}}})})(window,document,window.searxng);(function(e,s,l){"use strict";l.ready(function(){l.image_thumbnail_layout=new l.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",14,6,200);l.image_thumbnail_layout.watch();l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var i=s.querySelector(n);var r=this.innerHTML;if(this.classList.contains("collapsed")){r=r.replace(e,t)}else{r=r.replace(t,e)}this.innerHTML=r;this.classList.toggle("collapsed");i.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=s.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const i=e.querySelector(".detail");if(t){const r=t.getAttribute("data-src");if(r){const o=s.createElement("div");const a=new Image;o.classList.add("loader");i.appendChild(o);a.onload=e=>{t.src=r;o.remove()};a.onerror=e=>{o.remove()};a.src=r;t.src=n.src;t.removeAttribute("data-src")}}}s.getElementById("results").classList.add("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.closeDetail=function(e){s.getElementById("results").classList.remove("image-detail-open");l.image_thumbnail_layout.align();l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>l.selectPrevious(false));l.on(".result-detail-next","click",e=>l.selectNext(false));e.addEventListener("scroll",function(){var e=s.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=s.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(t,n,i){"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)}i.ready(function(){a=n.getElementById(o);function e(){if(r){s(a);r=false}else{}}if(a!==null){u(a);if(i.autocompleter){i.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:i.translations.no_item_found,HttpMethod:i.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.querySelector(".help")!=null&&i.search_on_category_select){n.querySelector(".help").className="invisible";i.on("#categories input","change",function(){var e,t=n.querySelectorAll('#categories input[type="checkbox"]');for(e=0;e<t.length;e++){if(t[e]!==this&&t[e].checked){t[e].click()}}if(!this.checked){this.click()}l();return false});i.on(n.getElementById("time_range"),"change",l);i.on(n.getElementById("language"),"change",l)}})})(window,document,window.searxng); /** * * Google Image Layout v0.0.1 diff --git a/searx/static/themes/simple/js/searxng.min.js.map b/searx/static/themes/simple/js/searxng.min.js.map index 41238c58d..3f941fbce 100644 --- a/searx/static/themes/simple/js/searxng.min.js.map +++ b/searx/static/themes/simple/js/searxng.min.js.map @@ -1 +1 @@ -{"version":3,"file":"searxng.min.js","sources":["searxng.js"],"names":["window","searxng","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","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","GoToPreviousPage","78","GoToNextPage","79","openResult","84","82","reloadPage","72","toggleHelp","Object","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","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","push","sorted","keys","sort","a","b","html","lastCategory","first","cj","innerHTML","helpPanel","className","style","getElementsByTagName","toggle","selectNext","selectPrevious","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","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","entries","elements","element","source","translations","image_thumbnail_layout","ImageLayout","watch","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","selectImage","t","nodeName","imgElement","thumbnailElement","detailElement","imgSrc","loader","imgLoader","Image","align","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","value","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","AutoComplete","Url","EmptyMessage","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","verticalMargin","horizontalMargin","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","results_selectorNode","results_length","previous","results_nodes","throttleAlign","f","exports","module","define","amd","g","global","self","n","o","c","require","u","code","p","1","ConditionOperator","EventType","params","Array","isArray","forEach","input","specificParams","merge","defaults","DOMResults","create","Input","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":";;;;;GAMAA;OAAOC,QAAU,SAAUC,EAAGC,gBAQ5B,GAAID,EAAEE,QAAS,EACb,SAAUC,GACRA,EAAiBC,QAAUD,EAAiBC,SAC5CD,EAAiBE,iBACjBF,EAAiBG,uBACjBH,EAAiBI,mBACjB,SAASC,GACP,IAAIC,EAAOC,KAAMC,GAASF,EAAKG,YAAcH,EAAKI,UAAUC,iBAAiBN,GAAWO,GAAK,EAC7F,MAAOJ,IAAQI,IAAMJ,EAAMI,IAAMN,GACjC,QAASE,EAAMI,KARnB,CAUGb,QAAQc,WAGb,SAASC,EAAaC,EAAUC,EAAIC,GAClC,IACEF,EAASG,KAAKF,EAAIC,GAClB,MAAOE,GACPC,QAAQC,IAAIF,IAIhB,IAAIvB,EAAUD,OAAOC,SAAW,GAEhCA,EAAQ0B,GAAK,SAASC,EAAKC,EAAWT,EAAUU,GAC9CA,EAAaA,GAAc,MAC3B,UAAWF,IAAQ,SAAU,CAE3BA,EAAIG,iBAAiBF,EAAWT,EAAUU,OACrC,CAEL3B,EAAE4B,iBAAiBF,EAAW,SAASP,GACrC,IAAID,EAAKC,EAAEU,QAAUV,EAAEW,WAAYC,EAAQ,MAC3C,MAAOb,GAAMA,EAAGf,SAAWe,IAAOlB,KAAO+B,EAAQb,EAAGf,QAAQsB,IAAOP,EAAKA,EAAGc,cAC3E,GAAID,EAAOf,EAAaC,EAAUC,EAAIC,IACrCQ,KAIP7B,EAAQmC,MAAQ,SAAShB,GACvB,GAAIL,SAASsB,YAAc,UAAW,CACpCjB,EAASG,KAAKrB,OACT,CACLA,EAAE6B,iBAAiB,mBAAoBX,EAASkB,KAAKpC,MAIzDD,EAAQsC,KAAO,SAASC,EAAQC,GAC9B,IAAIC,EAAM,IAAIC,eACdC,EAAU,aACVC,EAAS,aACTC,EAAU,CACRC,KAAM,SAAS3B,GAAYwB,EAAUxB,EAAU,OAAO0B,GACtDE,MAAO,SAAS5B,GAAYyB,EAASzB,EAAU,OAAO0B,IAGxD,IACEJ,EAAIO,KAAKT,EAAQC,EAAK,MAGtBC,EAAIQ,OAAS,WACX,GAAIR,EAAIS,QAAU,IAAK,CACrBP,EAAQF,EAAIU,SAAUV,EAAIW,kBACrB,CACLR,EAAOS,MAAMZ,EAAIa,eAKrBb,EAAIc,QAAU,WACZX,EAAOS,MAAM,mBAGfZ,EAAIe,QAAU,WACZZ,EAAOS,MAAM,4BAIfZ,EAAIgB,OACJ,MAAOC,GACPd,EAAOc,GAGT,OAAOb,GAGT7C,EAAQ2D,UAAY,SAASC,GAC3B,IAAIC,EAAO7D,EAAQ8D,YAAcF,EACjCG,EAAK,SAAWH,EAAII,QAAQ,IAAK,KACjCC,EAAI/D,EAAEgE,eAAeH,GACrB,GAAIE,IAAM,KAAM,CACdA,EAAI/D,EAAEiE,cAAc,QACpBF,EAAEG,aAAa,KAAML,GACrBE,EAAEG,aAAa,MAAO,cACtBH,EAAEG,aAAa,OAAQ,YACvBH,EAAEG,aAAa,OAAQP,GACvB3D,EAAEmE,KAAKC,YAAYL,KAIvBjE,EAAQuE,WAAa,SAASX,EAAKzC,GACjC,IAAI0C,EAAO7D,EAAQ8D,YAAcF,EACjCG,EAAK,UAAYH,EAAII,QAAQ,IAAK,KAClCC,EAAI/D,EAAEgE,eAAeH,GACrB,GAAIE,IAAM,KAAM,CACdA,EAAI/D,EAAEiE,cAAc,UACpBF,EAAEG,aAAa,KAAML,GACrBE,EAAEG,aAAa,MAAOP,GACtBI,EAAEhB,OAAS9B,EACX8C,EAAEV,QAAU,WACVU,EAAEG,aAAa,QAAS,MAE1BlE,EAAEmE,KAAKC,YAAYL,QACd,IAAKA,EAAEO,aAAa,SAAU,CACnC,IACErD,EAASsD,MAAMR,EAAG,IAClB,MAAO1C,GACPC,QAAQC,IAAIF,QAET,CACLC,QAAQC,IAAI,mCAAqCoC,EAAO,mBAI5D7D,EAAQ0E,aAAe,SAAUC,EAASC,GACxCA,EAAc/D,WAAW6D,aAAaC,EAASC,IAGjD5E,EAAQ6E,YAAc,SAASF,EAASC,GACtCA,EAAc/D,WAAWgE,YAAYF,EAASC,EAAcE,cAG9D9E,EAAQ0B,GAAG,SAAU,QAAS,WAC5Bf,KAAKE,WAAWkE,UAAUC,IAAI,eAGhC,OAAOhF,EAhJQ,CAiJdD,OAAQe,UAIXd,QAAQmC,MAAM,WAEZnC,QAAQ0B,GAAG,UAAW,QAAS,WAC7BuD,EAAgBtE,KAAhBsE,CAAsB,QAGxBjF,QAAQ0B,GAAG,YAAa,QAAS,SAASL,GACxC,IAAID,EAAKC,EAAEU,OACX,MAAOX,IAAO8D,UAAW,CACvB,GAAI9D,EAAG2D,UAAUI,SAAS,UAAW,CACnC,GAAI/D,EAAGgE,aAAa,uBAAyB,KAAM,CACjDH,EAAgB7D,EAAhB6D,CAAoB,MAEtB,MAEF7D,EAAKA,EAAGP,aAET,MAEH,IAAIwE,EAAU,CACZC,GAAI,CACFC,IAAK,SACLC,IAAKC,EACLC,IAAK,sCACLC,IAAK,WAEPC,GAAI,CACFL,IAAK,IACLC,IAAKK,EACLH,IAAK,4BACLC,IAAK,WAEPG,GAAI,CACFP,IAAK,IACLC,IAAKO,GAAYhG,OAAOiG,aACxBN,IAAK,qBACLC,IAAK,cAEPM,GAAI,CACFV,IAAK,IACLC,IAAKO,EAAWhG,OAAOiG,aACvBN,IAAK,uBACLC,IAAK,cAEPO,GAAI,CACFX,IAAK,IACLC,IAAKO,GAAYhG,OAAOiG,YAAc,GACtCN,IAAK,wBACLC,IAAK,cAEPQ,GAAI,CACFZ,IAAK,IACLC,IAAKO,EAAWhG,OAAOiG,YAAc,GACrCN,IAAK,0BACLC,IAAK,cAEPS,GAAI,CACFb,IAAK,IACLC,IAAKa,GAAcvF,SAASuD,KAAKiC,aAAc,OAC/CZ,IAAK,gCACLC,IAAK,cAEPY,GAAI,CACFhB,IAAK,IACLC,IAAKa,EAAavF,SAASuD,KAAKiC,aAAc,UAC9CZ,IAAK,mCACLC,IAAK,cAEPa,GAAI,CACFjB,IAAK,IACLC,IAAKP,EAAgB,MACrBS,IAAK,gCACLC,IAAK,WAEPc,GAAI,CACFlB,IAAK,IACLC,IAAKP,EAAgB,QACrBS,IAAK,4BACLC,IAAK,WAEPe,GAAI,CACFnB,IAAK,IACLC,IAAKmB,IACLjB,IAAK,sBACLC,IAAK,WAEPiB,GAAI,CACFrB,IAAK,IACLC,IAAKqB,IACLnB,IAAK,kBACLC,IAAK,WAEPmB,GAAI,CACFvB,IAAK,IACLC,IAAKuB,EAAW,OAChBrB,IAAK,qBACLC,IAAK,WAEPqB,GAAI,CACFzB,IAAK,IACLC,IAAKuB,EAAW,MAChBrB,IAAK,+BACLC,IAAK,WAEPsB,GAAI,CACF1B,IAAK,IACLC,IAAK0B,EACLxB,IAAK,8BACLC,IAAK,WAEPwB,GAAI,CACF5B,IAAK,IACLC,IAAK4B,EACL1B,IAAK,qBACLC,IAAK,UAIT3F,QAAQ0B,GAAGZ,SAAU,UAAW,SAASO,GAEvC,GAAIgG,OAAOpG,UAAUqG,eAAehG,KAAK+D,EAAShE,EAAEkG,WAAalG,EAAEmG,UAAYnG,EAAEoG,SAAWpG,EAAEqG,WAAarG,EAAEsG,QAAS,CACpH,IAAIC,EAAUvG,EAAEU,OAAO6F,QAAQC,cAC/B,GAAIxG,EAAEkG,UAAY,GAAI,CACpBlC,EAAQhE,EAAEkG,SAAS/B,IAAInE,OAClB,CACL,GAAIA,EAAEU,SAAWjB,SAASuD,MAAQuD,IAAY,KAAOA,IAAY,SAAU,CACzEvG,EAAEyG,iBACFzC,EAAQhE,EAAEkG,SAAS/B,WAM3B,SAASP,EAAgB8C,GACvB,OAAO,SAASC,GACd,IAAIC,EAAUnH,SAASoH,cAAc,8BACrCC,EAAiBJ,EACjB,GAAIE,IAAY,KAAM,CAEpBA,EAAUnH,SAASoH,cAAc,WACjC,GAAID,IAAY,KAAM,CAEpB,OAGF,GAAIF,IAAU,QAAUA,IAAU,KAAM,CACtCI,EAAiBF,GAIrB,IAAIG,EAAMC,EAAUvH,SAASC,iBAAiB,WAE9C,UAAWoH,IAAmB,SAAU,CACtCC,EAAOD,MACF,CACL,OAAQA,GACN,IAAK,UACL,IAAIG,EAAMxH,SAASyH,gBAAgBC,WAAa1H,SAASuD,KAAKmE,UAC9D,IAAIC,EAAMH,EAAMxH,SAASyH,gBAAgBG,aAEzC,IAAK,IAAI1H,EAAI,EAAGA,EAAIqH,EAAQM,OAAQ3H,IAAK,CACvCoH,EAAOC,EAAQrH,GACf,IAAI4H,EAAOR,EAAKS,UAChB,IAAIC,EAAOF,EAAOR,EAAKM,aAEvB,GAAKI,GAAQL,GAASG,EAAON,EAAM,CACjC,OAGJ,MACA,IAAK,OACLF,EAAOH,EAAQc,mBACf,GAAIX,IAAS,KAAM,CACjBA,EAAOC,EAAQ,GAEjB,MACA,IAAK,KACLD,EAAOH,EAAQe,uBACf,GAAIZ,IAAS,KAAM,CACjBA,EAAOC,EAAQA,EAAQM,OAAS,GAElC,MACA,IAAK,SACLP,EAAOC,EAAQA,EAAQM,OAAS,GAChC,MACA,IAAK,MAEL,QACAP,EAAOC,EAAQ,IAInB,GAAID,EAAM,CACRH,EAAQgB,gBAAgB,qBACxBb,EAAKhE,aAAa,oBAAqB,QACvC,IAAI8E,EAAOd,EAAKF,cAAc,SAAWE,EAAKF,cAAc,KAC5D,GAAIgB,IAAS,KAAM,CACjBA,EAAKC,QAEP,IAAKnB,EAAU,CACboB,OAMR,SAASlC,IACPpG,SAASuI,SAASC,OAAO,MAG3B,SAAS7D,EAAYpE,GACnB,MAAMuG,EAAUvG,EAAEU,OAAO6F,QAAQC,cACjC,GAAI/G,SAASyI,gBAAkB3B,IAAY,SAAWA,IAAY,UAAYA,IAAY,YAAa,CACrG9G,SAASyI,cAAcC,WAClB,CACLxJ,QAAQyJ,eAIZ,SAASC,EAAgBC,GACvB,OAAO,WACL,IAAIC,EAAS9I,SAASoH,cAAcyB,GACpC,GAAIC,EAAQ,CACVA,EAAOC,UAKb,SAAShD,IACP,OAAO6C,EAAgB,mDAGzB,SAAS/C,IACP,OAAO+C,EAAgB,uDAGzB,SAASN,IACP,IAAIU,EAAMhJ,SAASoH,cAAc,8BACjC,GAAI4B,IAAQ,KAAM,CAChB,OAEF,IAAIC,EAAOjJ,SAASyH,gBAAgBC,WAAa1H,SAASuD,KAAKmE,UAC/DwB,EAAUlJ,SAASyH,gBAAgBG,aACnCE,EAAOkB,EAAIjB,UACXC,EAAOF,EAAOkB,EAAIpB,aAClBuB,EAAS,IAET,GAAKH,EAAId,yBAA2B,MAAUF,EAAOkB,EAAU,CAG7DjK,OAAOmK,OAAOnK,OAAOoK,QAAS,GAC9B,OAEF,GAAIJ,EAAQnB,EAAOqB,EAAS,CAC1BlK,OAAOmK,OAAOnK,OAAOoK,QAASvB,EAAOqB,OAChC,CACL,IAAIG,EAAOL,EAAOC,EAClB,GAAII,EAAQtB,EAAOmB,EAAS,CAC1BlK,OAAOmK,OAAOnK,OAAOoK,QAASrB,EAAOkB,EAAUC,KAKrD,SAASlE,EAAWsE,GAClB,OAAO,WACLtK,OAAOuK,SAAS,EAAGD,GACnBpF,EAAgB,UAAhBA,IAIJ,SAASoB,EAAakE,EAAUC,GAC9B,OAAO,WACLzK,OAAO0K,SAAS,EAAGF,GACnBtF,EAAgBuF,EAAhBvF,IAIJ,SAASY,IACP9F,OAAO0K,SAAS,EAAG,GACnB3J,SAASoH,cAAc,MAAMiB,QAG/B,SAASpC,EAAW2D,GAClB,OAAO,WACL,IAAIxB,EAAOpI,SAASoH,cAAc,mCAClC,GAAIgB,IAAS,KAAM,CACjBA,EAAOpI,SAASoH,cAAc,kCAEhC,GAAIgB,IAAS,KAAM,CACjB,IAAI1G,EAAM0G,EAAK9D,aAAa,QAC5B,GAAIsF,EAAQ,CACV3K,OAAOiD,KAAKR,OACP,CACLzC,OAAOsJ,SAASsB,KAAOnI,KAM/B,SAASoI,EAAgBC,GACvB,IAAIC,EAAa,GAEjB,IAAK,IAAIC,KAAK1F,EAAS,CACrB,IAAIE,EAAMF,EAAQ0F,GAClBD,EAAWvF,EAAII,KAAOmF,EAAWvF,EAAII,MAAQ,GAC7CmF,EAAWvF,EAAII,KAAKqF,KAAKzF,GAG3B,IAAI0F,EAAS5D,OAAO6D,KAAKJ,GAAYK,KAAK,SAASC,EAAGC,GACpD,OAAOP,EAAWO,GAAG1C,OAASmC,EAAWM,GAAGzC,SAG9C,GAAIsC,EAAOtC,SAAW,EAAG,CACvB,OAGF,IAAI2C,EAAO,mEACXA,GAAQ,uDACRA,GAAQ,UAER,IAAK,IAAItK,EAAI,EAAGA,EAAIiK,EAAOtC,OAAQ3H,IAAK,CACtC,IAAI2E,EAAMmF,EAAWG,EAAOjK,IAE5B,IAAIuK,EAAevK,IAAOiK,EAAOtC,OAAS,EAC1C,IAAI6C,EAAQxK,EAAI,IAAM,EAEtB,GAAIwK,EAAO,CACTF,GAAQ,OAEVA,GAAQ,OAERA,GAAQ,OAAS3F,EAAI,GAAGA,IAAM,QAC9B2F,GAAQ,6BAER,IAAK,IAAIG,KAAM9F,EAAK,CAClB2F,GAAQ,YAAc3F,EAAI8F,GAAIlG,IAAM,UAAYI,EAAI8F,GAAI/F,IAAM,QAGhE4F,GAAQ,QACRA,GAAQ,QAER,IAAKE,GAASD,EAAc,CAC1BD,GAAQ,SAIZA,GAAQ,WAEPT,EAAWa,UAAYJ,EAG1B,SAASlE,IACL,IAAIuE,EAAY7K,SAASoH,cAAc,qBACvC1G,QAAQC,IAAIkK,GACd,GAAIA,IAAczG,WAAayG,IAAc,KAAM,CAEjDA,EAAY7K,SAASqD,cAAc,OAChCwH,EAAU5H,GAAK,mBAChB4H,EAAUC,UAAU,eACpBD,EAAUE,MAAM,aAClBjB,EAAgBe,GACnBf,EAAgBe,GACbf,EAAgBe,GAChB,IAAItH,EAAOvD,SAASgL,qBAAqB,QAAQ,GACjDzH,EAAKC,YAAYqH,OACZ,CAELA,EAAU5G,UAAUgH,OAAO,aAC3B,QAIJ/L,QAAQoJ,qBAAuBA,EAC/BpJ,QAAQgM,WAAa/G,EAAgB,QACrCjF,QAAQiM,eAAiBhH,EAAgB,SAI3C,SAAWhF,EAAGC,EAAGF,gBAGfA,EAAQmC,MAAM,WACZnC,EAAQ0B,GAAG,oBAAqB,QAAS,SAASwK,GAEhDvL,KAAKoE,UAAUoH,OAAO,oBAGtB,IAAIC,EAAiBzL,KAAK0L,QAAQC,cAClC,IAAIC,EAAUC,WAAW7L,KAAK0L,QAAQI,QACtC,IAAIC,EAAUF,WAAW7L,KAAK0L,QAAQM,QACtC,IAAIC,EAAWJ,WAAW7L,KAAK0L,QAAQQ,SACvC,IAAIC,EAAkBC,KAAKC,MAAMrM,KAAK0L,QAAQY,gBAC9C,IAAIC,EAAcH,KAAKC,MAAMrM,KAAK0L,QAAQc,YAE1CnN,EAAQ2D,UAAU,mBAClB3D,EAAQuE,WAAW,gBAAiB,WAClC,IAAI6I,EAAa,KACjB,GAAGN,EAAiB,CAClB,IAAIO,EAAYC,EAAEC,OAAOT,EAAgB,GAAIA,EAAgB,IAC7D,IAAIU,EAAYF,EAAEC,OAAOT,EAAgB,GAAIA,EAAgB,IAC7DM,EAAaE,EAAEG,aAAaJ,EAAWG,GAIzC,IAAIE,EAAMJ,EAAEI,IAAItB,GAEhB,IAAIuB,EAAa,qDACjB,IAAIC,EAAgB,gFACpB,IAAIC,EAAY,IAAIP,EAAEQ,UAAUH,EAAc,CAACI,QAAS,EAAGC,QAAS,GAAIC,YAAaL,IACrF,IAAIM,EAAgB,sDACpB,IAAIC,EAAqB,kGACzB,IAAIC,EAAe,IAAId,EAAEQ,UAAUI,EAAiB,CAACH,QAAS,EAAGC,QAAS,GAAIC,YAAaE,IAE3F,GAAGf,EAAY,CAGbiB,WAAW,WACTX,EAAIY,UAAUlB,EAAY,CACxBY,QAAQ,MAET,QACE,GAAIzB,GAAWG,EAAS,CAC7B,GAAGE,EAAU,CACXc,EAAIa,QAAQ,IAAIjB,EAAEC,OAAOb,EAASH,GAASK,OACtC,CACLc,EAAIa,QAAQ,IAAIjB,EAAEC,OAAOb,EAASH,GAAS,IAI/CmB,EAAIc,SAASX,GAEb,IAAIY,EAAa,CACfC,aAAcb,EACdc,gBAAiBP,GAGnBd,EAAEsB,QAAQC,OAAOJ,GAAYK,MAAMpB,GAEnC,GAAGR,EAAa,CACdI,EAAEyB,QAAQ7B,GAAa4B,MAAMpB,MAOjCxB,EAAMpE,sBApEZ,CAuEG/H,OAAQe,SAAUf,OAAOC,UAE5B,SAAWC,EAAGC,EAAGF,gBAGbA,EAAQmC,MAAM,WACV,IAAI6M,EAAsB,KAC1B,SAASC,IACL,GAAID,GAAuB,KAAM,CAC7BhP,EAAQsC,KAAK,MAAO,4BAA4BQ,KAAK,SAASoM,GAC1DF,EAAsBjC,KAAKC,MAAMkC,GACjC,IAAK,KAAM,CAACC,EAAaC,KAAgB/H,OAAOgI,QAAQL,GAAsB,CAC1E,IAAIM,EAAWpP,EAAEa,iBAAiB,sBAAwBoO,EAAc,0BACxE,IAAI,MAAMI,KAAWD,EAAU,CAC3B,IAAIE,EAAS,QAAUxP,EAAQyP,aAAa,UAAY,UAAYL,EAAY,GAAK,QACrFG,EAAQ7D,UAAY0D,EAAY,GAAKI,OAOzD,GAAItP,EAAEgI,cAAc,sCAAuC,CACvD,IAAI,MAAM9G,KAAMlB,EAAEa,iBAAiB,sBAAuB,CACtDf,EAAQ0B,GAAGN,EAAI,aAAc6N,QAtB7C,CA0BGlP,OAAQe,SAAUf,OAAOC,UAE5B,SAAUC,EAAGC,EAAGF,gBAGdA,EAAQmC,MAAM,WACZnC,EAAQ0P,uBAAyB,IAAI1P,EAAQ2P,YAAY,QAAS,uBAAwB,sBAAuB,GAAI,EAAG,KACxH3P,EAAQ0P,uBAAuBE,QAE/B5P,EAAQ0B,GAAG,gBAAiB,QAAS,WACnC,IAAImO,EAAoBlP,KAAKyE,aAAa,2BAC1C,IAAI0K,EAAuBnP,KAAKyE,aAAa,+BAC7C,IAAIrD,EAASpB,KAAKyE,aAAa,eAC/B,IAAI2K,EAAgB7P,EAAEgI,cAAcnG,GACpC,IAAIuJ,EAAO3K,KAAK+K,UAChB,GAAI/K,KAAKoE,UAAUI,SAAS,aAAc,CACxCmG,EAAOA,EAAKtH,QAAQ6L,EAAmBC,OAClC,CACLxE,EAAOA,EAAKtH,QAAQ8L,EAAsBD,GAE5ClP,KAAK+K,UAAYJ,EACjB3K,KAAKoE,UAAUgH,OAAO,aACtBgE,EAAchL,UAAUgH,OAAO,eAGjC/L,EAAQ0B,GAAG,gBAAiB,QAAS,WACnC,IAAIK,EAASpB,KAAKyE,aAAa,eAC/B,IAAI4K,EAAc9P,EAAEgI,cAAcnG,EAAS,aAC3C,IAAIkO,EAAUD,EAAY5K,aAAa,OACvC,GAAI6K,IAAY,MAAQA,IAAY/K,WAAa+K,IAAY,MAAO,CAClED,EAAY5L,aAAa,MAAO4L,EAAY5K,aAAa,gBAI7D,SAAS8K,EAAY7O,GAEnB,IAAI8O,EAAI9O,EAAEU,OACV,MAAOoO,GAAKA,EAAEC,UAAY,UAAW,CACnCD,EAAIA,EAAEtP,WAER,GAAIsP,EAAG,CAEL,MAAME,EAAaF,EAAEjI,cAAc,6BACnC,MAAMoI,EAAmBH,EAAEjI,cAAc,oBACzC,MAAMqI,EAAgBJ,EAAEjI,cAAc,WACtC,GAAImI,EAAY,CACd,MAAMG,EAASH,EAAWjL,aAAa,YACvC,GAAIoL,EAAQ,CACV,MAAMC,EAASvQ,EAAEiE,cAAc,OAC/B,MAAMuM,EAAY,IAAIC,MAEtBF,EAAO1L,UAAUC,IAAI,UACrBuL,EAAcjM,YAAYmM,GAE1BC,EAAUzN,OAAS5B,IACjBgP,EAAWzM,IAAM4M,EACjBC,EAAOtE,UAETuE,EAAUnN,QAAUlC,IAClBoP,EAAOtE,UAETuE,EAAU9M,IAAM4M,EAChBH,EAAWzM,IAAM0M,EAAiB1M,IAClCyM,EAAWpH,gBAAgB,cAIjC/I,EAAEgE,eAAe,WAAWa,UAAUC,IAAI,qBAC1ChF,EAAQ0P,uBAAuBkB,QAC/B5Q,EAAQoJ,uBAGVpJ,EAAQyJ,YAAc,SAASpI,GAC7BnB,EAAEgE,eAAe,WAAWa,UAAUoH,OAAO,qBAC7CnM,EAAQ0P,uBAAuBkB,QAC/B5Q,EAAQoJ,wBAGVpJ,EAAQ0B,GAAG,iBAAkB,QAASL,IACpCA,EAAEyG,iBACFoI,EAAY7O,KAEdrB,EAAQ0B,GAAG,mBAAoB,QAASwO,EAAa,MACrDlQ,EAAQ0B,GAAG,uBAAwB,QAASL,IAC1CA,EAAEyG,iBACF9H,EAAQyJ,gBAEVzJ,EAAQ0B,GAAG,0BAA2B,QAASL,GAAKrB,EAAQiM,eAAe,QAC3EjM,EAAQ0B,GAAG,sBAAuB,QAASL,GAAKrB,EAAQgM,WAAW,QAEnE/L,EAAE6B,iBAAiB,SAAU,WAC3B,IAAIT,EAAInB,EAAEgE,eAAe,aACzBsE,EAAY1H,SAASyH,gBAAgBC,WAAa1H,SAASuD,KAAKmE,UAChEH,EAAUnI,EAAEgE,eAAe,WAC3B,GAAI7C,IAAM,KAAM,CACd,GAAImH,GAAa,IAAK,CACpBH,EAAQtD,UAAUC,IAAI,iBACjB,CACLqD,EAAQtD,UAAUoH,OAAO,gBAG5B,SAnGP,CAuGGpM,OAAQe,SAAUf,OAAOC,UAG5B,SAAUC,EAAGC,EAAGF,gBAGd,IAAI6Q,EAAa,KAAMC,EAAY,IAAKC,EAExC,SAASC,EAAiBzB,GACxB,GAAIA,EAAQ0B,kBAAmB,CAC7B,IAAIC,EAAM3B,EAAQ4B,MAAMxI,OACxB4G,EAAQ0B,kBAAkBC,EAAKA,IAInC,SAASE,IACP,GAAIL,EAAOI,MAAMxI,OAAU,EAAG,CAC5B,IAAI0I,EAASvQ,SAASoD,eAAe,UACrCmK,WAAWgD,EAAOC,OAAOjP,KAAKgP,GAAS,IAI3C,SAASE,EAAkBR,GACzB,IAAIS,EAAK1Q,SAASoD,eAAe,gBACjC,IAAIuN,EAAoB,WACtB,GAAIV,EAAOI,MAAMxI,SAAW,EAAG,CACpC6I,EAAGzM,UAAUC,IAAI,aACL,CACZwM,EAAGzM,UAAUoH,OAAO,WAKjBsF,IACAD,EAAG1P,iBAAiB,QAAS,WAC3BiP,EAAOI,MAAM,GACbJ,EAAO5H,QACPsI,MAEFV,EAAOjP,iBAAiB,QAAS2P,EAAmB,OAGtDzR,EAAQmC,MAAM,WACZ4O,EAAS7Q,EAAEgE,eAAe4M,GAE1B,SAASY,IACP,GAAIb,EAAY,CACdG,EAAiBD,GACjBF,EAAa,UACR,GAKT,GAAIE,IAAW,KAAM,CAEnBQ,EAAkBR,GAGlB,GAAI/Q,EAAQ2R,cAAe,CACzB3R,EAAQ4R,aAAeC,aAAavQ,KAAKrB,EAAG,CAC1C6R,IAAK,kBACLC,aAAc/R,EAAQyP,aAAauC,cACnCC,WAAYjS,EAAQuC,OACpB2P,YAAa,CACXC,eAAgB,oCAChBC,mBAAoB,kBAEtBC,SAAU,EACVC,MAAO,KACN,IAAMxB,GAGT7Q,EAAE6B,iBAAiB,SAAU,WAC3B,IAAIoK,EAAQ,IAAIqG,YAAY,YAC5BxB,EAAOyB,cAActG,KAIzB6E,EAAOjP,iBAAiB,QAAS4P,EAAsB,OACvDX,EAAO5H,QAIT,GAAI4H,IAAW,MAAQ7Q,EAAEgI,cAAc,UAAY,MAAQlI,EAAQyS,0BAA2B,CAC5FvS,EAAEgI,cAAc,SAAS0D,UAAU,YAEnC5L,EAAQ0B,GAAG,oBAAqB,SAAU,WACxC,IAAIV,EAAG8J,EAAa5K,EAAEa,iBAAiB,sCACvC,IAAIC,EAAE,EAAGA,EAAE8J,EAAWnC,OAAQ3H,IAAK,CACjC,GAAI8J,EAAW9J,KAAOL,MAAQmK,EAAW9J,GAAG0R,QAAS,CACnD5H,EAAW9J,GAAG6I,SAGlB,IAAMlJ,KAAK+R,QAAS,CAClB/R,KAAKkJ,QAEPuH,IACA,OAAO,QAGTpR,EAAQ0B,GAAGxB,EAAEgE,eAAe,cAAe,SAAUkN,GACrDpR,EAAQ0B,GAAGxB,EAAEgE,eAAe,YAAa,SAAUkN,OAnGzD,CAwGGrR,OAAQe,SAAUf,OAAOC;;;;;;;;;;;;CAa3B,SAAUC,EAAGC,GACZ,SAASyP,EAAYgD,EAAoBC,EAAkBC,EAAcC,EAAgBC,EAAkBC,GACzGrS,KAAKgS,mBAAqBA,EAC1BhS,KAAKiS,iBAAmBA,EACxBjS,KAAKkS,aAAeA,EACpBlS,KAAKmS,eAAiBA,EACtBnS,KAAKoS,iBAAmBA,EACxBpS,KAAKqS,UAAYA,EACjBrS,KAAKsS,YAAc,KAcrBtD,EAAY1O,UAAUiS,WAAa,SAAUC,EAAQC,GACnD,IAAIpS,EAAGqS,EACP,IAAIC,EAAI,EAER,IAAKtS,EAAI,EAAGA,EAAImS,EAAOxK,OAAQ3H,IAAK,CAClCqS,EAAMF,EAAOnS,GACb,GAAKqS,EAAIE,aAAe,GAAOF,EAAIG,cAAgB,EAAI,CACrDF,GAAKD,EAAIE,aAAeF,EAAIG,kBACvB,CAELF,GAAK,GAIT,OAAQF,EAAQD,EAAOxK,OAAShI,KAAKmS,gBAAkBQ,GAGzD3D,EAAY1O,UAAUwS,SAAW,SAAUN,EAAQO,GACjD,IAAI1S,EAAGqS,EAAKM,EACZ,IAAIC,EAAeT,EAAOxK,OAAQkL,EAElC,IAAK7S,EAAI,EAAGA,EAAI4S,EAAc5S,IAAK,CACjCqS,EAAMF,EAAOnS,GACb,GAAKqS,EAAIE,aAAe,GAAOF,EAAIG,cAAgB,EAAI,CACrDG,EAAWD,EAASL,EAAIE,aAAeF,EAAIG,kBACtC,CAELG,EAAWD,EAEbL,EAAIxH,MAAMuH,MAAQO,EAAW,KAC7BN,EAAIxH,MAAM6H,OAASA,EAAS,KAC5BL,EAAIxH,MAAMiI,WAAanT,KAAKoS,iBAAmB,KAC/CM,EAAIxH,MAAMkI,UAAYpT,KAAKoS,iBAAmB,KAC9CM,EAAIxH,MAAMmI,YAAcrT,KAAKmS,eAAiB,EAAI,KAClDO,EAAIxH,MAAMoI,aAAetT,KAAKmS,eAAiB,EAAI,KACnDe,EAAaR,EAAIxS,WAAWA,WAC5B,IAAKgT,EAAW9O,UAAUI,SAAS,MAAO,CACxC0O,EAAW9O,UAAUC,IAAI,SAK/B2K,EAAY1O,UAAUiT,WAAa,SAAUC,GAC3C,IAAIC,EAAaC,EAAOrT,EAAGsT,EAC3B,IAAIC,EAAmBrU,EAAEgI,cAAcvH,KAAKgS,oBAC5C,IAAI6B,EAAsBzU,OAAO0U,iBAAiBF,GAClD,IAAIG,EAAuBC,SAASH,EAAoBI,iBAAiB,gBAAiB,IAC1F,IAAIC,EAAwBF,SAASH,EAAoBI,iBAAiB,iBAAkB,IAC5F,IAAIE,EAAiBP,EAAiBQ,YAAcL,EAAuBG,EAE3E,MAAOV,EAASxL,OAAS,EAAG,CAC1ByL,EAAc,KACd,IAAKpT,EAAI,EAAGA,GAAKmT,EAASxL,QAAUyL,EAAapT,IAAK,CACpDqT,EAAQF,EAASE,MAAM,EAAGrT,GAC1BsT,EAAI3T,KAAKuS,WAAWmB,EAAOS,GAC3B,GAAIR,EAAI3T,KAAKqS,UAAW,CACtBrS,KAAK8S,SAASY,EAAOC,GAErBH,EAAWA,EAASE,MAAMrT,GAC1BoT,EAAc,OAGlB,GAAIA,EAAa,CACfzT,KAAK8S,SAASY,EAAOW,KAAKC,IAAItU,KAAKqS,UAAWsB,IAC9C,SAKN3E,EAAY1O,UAAU2P,MAAQ,WAC5B,IAAI5P,EACJ,IAAIkU,EAAuBhV,EAAEa,iBAAiBJ,KAAKiS,kBACnD,IAAIuC,EAAiBD,EAAqBvM,OAC1C,IAAIyM,EAAW,KACf,IAAInN,EAAU,KACd,IAAIkM,EAAW,GAEf,IAAKnT,EAAI,EAAGA,EAAImU,EAAgBnU,IAAK,CACnCiH,EAAUiN,EAAqBlU,GAC/B,GAAIiH,EAAQe,yBAA2BoM,GAAYjB,EAASxL,OAAS,EAAG,CAItEhI,KAAKuT,WAAWC,GAEhBA,EAAW,GAGbA,EAASnJ,KAAK/C,EAAQC,cAAcvH,KAAKkS,eAEzCuC,EAAWnN,EAGb,GAAIkM,EAASxL,OAAS,EAAG,CACvBhI,KAAKuT,WAAWC,KAIpBxE,EAAY1O,UAAU2O,MAAQ,WAC5B,IAAI5O,EAAGqS,EACP,IAAI1R,EAAMhB,KACV,IAAI0U,EAAgBnV,EAAEa,iBAAiBJ,KAAKiS,kBAC5C,IAAIuC,EAAiBE,EAAc1M,OAEnC,SAAS2M,IACP,GAAI3T,EAAIsR,YAAa,CACnBtR,EAAIsR,YAAc,MAClB5E,WAAW,WACT1M,EAAIiP,QACJjP,EAAIsR,YAAc,MACjB,MAIPhT,EAAE6B,iBAAiB,WAAYwT,GAC/BrV,EAAE6B,iBAAiB,OAAQwT,GAC3BrV,EAAE6B,iBAAiB,SAAUwT,GAE7B,IAAKtU,EAAI,EAAGA,EAAImU,EAAgBnU,IAAK,CACnCqS,EAAMgC,EAAcrU,GAAGkH,cAAcvH,KAAKkS,cAC1C,GAAIQ,IAAQ,MAAQA,IAAQnO,UAAW,CACrCmO,EAAIvR,iBAAiB,OAAQwT,GAC7BjC,EAAIvR,iBAAiB,QAASwT,MAKpCrV,EAAED,QAAQ2P,YAAcA,GArJ1B,CAuJE5P,OAAQe,WACT,SAAUyU,GAAG,UAAUC,UAAU,iBAAiBC,SAAS,YAAY,CAACA,OAAOD,QAAQD,SAAS,UAAUG,SAAS,YAAYA,OAAOC,IAAI,CAACD,OAAO,GAAGH,OAAO,CAAC,IAAIK,EAAE,UAAU7V,SAAS,YAAY,CAAC6V,EAAE7V,YAAY,UAAU8V,SAAS,YAAY,CAACD,EAAEC,YAAY,UAAUC,OAAO,YAAY,CAACF,EAAEE,SAAS,CAACF,EAAEjV,KAAKiV,EAAE/D,aAAe0D,MAAjU,CAAwU,WAAW,IAAIG,EAAOD,EAAOD,EAAQ,OAAO,WAAY,SAASlC,EAAEjS,EAAE0U,EAAE5F,GAAG,SAAS6F,EAAEhV,EAAEuU,GAAG,IAAIQ,EAAE/U,GAAG,CAAC,IAAIK,EAAEL,GAAG,CAAC,IAAIiV,EAAE,mBAAmBC,SAASA,QAAQ,IAAIX,GAAGU,EAAE,OAAOA,EAAEjV,GAAG,GAAG,GAAGmV,EAAE,OAAOA,EAAEnV,GAAG,GAAG,IAAIoK,EAAE,IAAI/H,MAAM,uBAAuBrC,EAAE,KAAK,MAAMoK,EAAEgL,KAAK,mBAAmBhL,EAAE,IAAIiL,EAAEN,EAAE/U,GAAG,CAACwU,QAAQ,IAAInU,EAAEL,GAAG,GAAGM,KAAK+U,EAAEb,QAAQ,SAASlC,GAAG,IAAIyC,EAAE1U,EAAEL,GAAG,GAAGsS,GAAG,OAAO0C,EAAED,GAAGzC,IAAI+C,EAAEA,EAAEb,QAAQlC,EAAEjS,EAAE0U,EAAE5F,GAAG,OAAO4F,EAAE/U,GAAGwU,QAAQ,IAAI,IAAIW,EAAE,mBAAmBD,SAASA,QAAQlV,EAAE,EAAEA,EAAEmP,EAAExH,OAAO3H,IAAIgV,EAAE7F,EAAEnP,IAAI,OAAOgV,EAAE,OAAO1C,EAAtc,EAAA,CAA4c,CAACgD,EAAE,CAAC,SAASJ,EAAQT,EAAOD;;;;;;;;;;aAW71B,IAAIe,GACJ,SAAWA,GACPA,EAAkBA,EAAkB,OAAS,GAAK,MAClDA,EAAkBA,EAAkB,MAAQ,GAAK,MAFrD,CAGGA,IAAsBA,EAAoB,KAC7C,IAAIC,GACJ,SAAWA,GACPA,EAAUA,EAAU,WAAa,GAAK,UACtCA,EAAUA,EAAU,SAAW,GAAK,SAFxC,CAGGA,IAAcA,EAAY,KAO7B,IAAI3E,EAA8B,WAE9B,SAASA,EAAa4E,EAAQhW,GAC1B,GAAIgW,SAAgB,EAAG,CAAEA,EAAS,GAClC,GAAIhW,SAAkB,EAAG,CAAEA,EAAW,sBACtC,GAAIiW,MAAMC,QAAQlW,GAAW,CACzBA,EAASmW,QAAQ,SAAU3S,GACvB,IAAI4N,EAAa4E,EAAQxS,UAG5B,UAAWxD,GAAY,SAAU,CAClC,IAAI6O,EAAWxO,SAASC,iBAAiBN,GACzCiW,MAAMzV,UAAU2V,QAAQtV,KAAKgO,EAAU,SAAUuH,GAC7C,IAAIhF,EAAa4E,EAAQI,SAG5B,CACD,IAAIC,EAAiBjF,EAAakF,MAAMlF,EAAamF,SAAUP,EAAQ,CACnEQ,WAAYnW,SAASqD,cAAc,SAEvC0N,EAAa5Q,UAAUiW,OAAOJ,EAAgBrW,GAC9C,OAAOqW,GAGfjF,EAAa5Q,UAAUiW,OAAS,SAAUT,EAAQlH,GAC9CkH,EAAOU,MAAQ5H,EACf,GAAIkH,EAAOU,MAAM/G,SAASgH,MAAM,cAAgBX,EAAOU,MAAM3S,aAAa,UAAY,OAASiS,EAAOU,MAAM/R,aAAa,QAAQgS,MAAM,mBAAoB,CACvJX,EAAOU,MAAM/S,aAAa,eAAgB,OAC1CqS,EAAOY,UAAUZ,GACjBA,EAAOU,MAAMtW,WAAWyD,YAAYmS,EAAOQ,YAC3CR,EAAOa,WAAa,CAChB9N,KAAMiN,EAAOc,MAAMlV,KAAKoU,GACxBe,QAAS3F,EAAa5Q,UAAUuW,QAAQnV,KAAK,KAAMoU,GACnDtN,MAAOsN,EAAOgB,OAAOpV,KAAKoU,GAC1BiB,MAAO7F,EAAa5Q,UAAUiL,MAAM7J,KAAK,KAAMoU,EAAQD,EAAUmB,OACjEC,QAAS/F,EAAa5Q,UAAUiL,MAAM7J,KAAK,KAAMoU,EAAQD,EAAUqB,SACnEtN,SAAUkM,EAAOY,UAAUhV,KAAKoU,IAEpC,IAAK,IAAIvK,KAASuK,EAAOa,WAAY,CACjCb,EAAOU,MAAMrV,iBAAiBoK,EAAOuK,EAAOa,WAAWpL,OAInE2F,EAAa5Q,UAAU6W,gBAAkB,SAAUrB,EAAQsB,GACvD,IAAIC,EAAW,GACf,IAAK,IAAIzS,KAAOkR,EAAOwB,iBAAkB,CACrC,IAAI/L,EAAQsK,EAAUmB,MACtB,GAAIlB,EAAOwB,iBAAiB1S,GAAK2S,QAAUhT,UAAW,CAClDgH,EAAQuK,EAAOwB,iBAAiB1S,GAAK2S,MAEzC,GAAIhM,GAAS6L,EAAM,CACfC,EAASzS,GAAOkR,EAAOwB,iBAAiB1S,IAGhD,OAAOyS,GAEXnG,EAAa5Q,UAAUiL,MAAQ,SAAUuK,EAAQsB,EAAM7L,GACnD,IAAIiM,EAAkB,SAAUC,GAC5B,GAAKhB,IAAU,MAAQiB,EAAQC,UAAY/B,EAAkBgC,KAASnB,IAAU,OAASiB,EAAQC,UAAY/B,EAAkBiC,GAAK,CAChIJ,EAAYvG,EAAakF,MAAM,CAC3B0B,IAAK,OACNL,GACH,GAAIA,EAAU9Q,eAAe,MAAO,CAChC,GAAI8Q,EAAUM,IAAMxM,EAAM3E,QAAS,CAC/B6P,GAASgB,EAAUK,QAElB,CACDrB,EAAQgB,EAAUK,UAGrB,GAAIL,EAAU9Q,eAAe,SAAW8Q,EAAU9Q,eAAe,MAAO,CACzE,GAAI4E,EAAM3E,SAAW6Q,EAAUO,MAAQzM,EAAM3E,SAAW6Q,EAAUQ,GAAI,CAClExB,GAASgB,EAAUK,QAElB,CACDrB,EAAQgB,EAAUK,QAKlC,IAAK,IAAII,KAAQhH,EAAa5Q,UAAU6W,gBAAgBrB,EAAQsB,GAAO,CACnE,IAAIM,EAAUxG,EAAakF,MAAM,CAC7BuB,SAAU/B,EAAkBgC,KAC7B9B,EAAOwB,iBAAiBY,IAAQzB,EAAQb,EAAkBgC,KAAOF,EAAQC,SAC5ED,EAAQS,WAAWlC,QAAQuB,GAC3B,GAAIf,IAAU,KAAM,CAChBiB,EAAQU,SAASzX,KAAKmV,EAAQvK,MAI1C2F,EAAa5Q,UAAU+X,YAAc,SAAUvC,EAAQtV,EAAU8X,GAC7D,IAAIC,EAAsB7R,OAAO8R,oBAAoB1C,EAAOvE,aAAckH,EAAU,IAAI1W,eAAkBH,EAASkU,EAAO4C,cAAe7W,EAAMiU,EAAO6C,OAAQC,EAAc9C,EAAO+C,OAAQC,EAAuBC,mBAAmBjD,EAAOkD,aAAe,IAAMD,mBAAmBH,GACpR,GAAIhX,EAAO6U,MAAM,UAAW,CACxB,GAAI5U,EAAIoX,QAAQ,QAAU,EAAG,CACzBpX,GAAO,IAAMiX,MAEZ,CACDjX,GAAO,IAAMiX,GAGrBL,EAAQpW,KAAKT,EAAQC,EAAK,MAC1B,IAAK,IAAIxB,EAAIkY,EAAoBvQ,OAAS,EAAG3H,GAAK,EAAGA,IAAK,CACtDoY,EAAQS,iBAAiBX,EAAoBlY,GAAIyV,EAAOvE,YAAYgH,EAAoBlY,KAE5FoY,EAAQU,mBAAqB,WACzB,GAAIV,EAAQhX,YAAc,GAAKgX,EAAQlW,QAAU,IAAK,CAClDuT,EAAOsD,OAAOR,GAAeH,EAAQjW,SACrChC,EAASiY,EAAQjW,eAEhB,GAAIiW,EAAQlW,QAAU,IAAK,CAC5B+V,MAGR,OAAOG,GAEXvH,EAAa5Q,UAAU+Y,KAAO,SAAUvD,EAAQ2C,EAASa,GACrD,GAAIA,SAAiB,EAAG,CAAEA,EAAU,KACpC,GAAIxD,EAAOyD,WAAY,CACnBna,OAAOoa,aAAa1D,EAAOyD,YAE/B,GAAID,IAAY,KAAM,CAClBxD,EAAOyD,WAAana,OAAOsO,WAAWwD,EAAa5Q,UAAU+Y,KAAK3X,KAAK,KAAMoU,EAAQ2C,EAAS,OAAQ3C,EAAOnE,WAE5G,CACD,GAAImE,EAAO2D,QAAS,CAChB3D,EAAO2D,QAAQC,QAEnB5D,EAAO2D,QAAUhB,EACjB3C,EAAO2D,QAAQ3W,KAAKgT,EAAOkD,YAAc,IAAMlD,EAAO+C,UAG9D3H,EAAa5Q,UAAUqZ,MAAQ,SAAU7D,EAAQtV,EAAU8X,GACvD,IAAI9V,EAAWsT,EAAO8D,OAAO9D,EAAO+C,QACpC,GAAIrW,IAAa+B,UAAW,CACxB,IAAIkU,EAAUvH,EAAa5Q,UAAU+X,YAAYvC,EAAQtV,EAAU8X,GACnEpH,EAAa5Q,UAAU+Y,KAAKvD,EAAQ2C,OAEnC,CACDjY,EAASgC,KAGjB0O,EAAa5Q,UAAUuW,QAAU,SAAUf,GACvC,IAAK,IAAIvK,KAASuK,EAAOa,WAAY,CACjCb,EAAOU,MAAMqD,oBAAoBtO,EAAOuK,EAAOa,WAAWpL,IAE9DuK,EAAOQ,WAAWpW,WAAW4Z,YAAYhE,EAAOQ,aAEpDpF,EAAakF,MAAQ,WACjB,IAAIA,EAAQ,GAAI2D,EAChB,IAAK,IAAI1Z,EAAI,EAAGA,EAAI2Z,UAAUhS,OAAQ3H,IAAK,CACvC,IAAK0Z,KAAOC,UAAU3Z,GAAI,CACtB+V,EAAM2D,GAAOC,UAAU3Z,GAAG0Z,IAGlC,OAAO3D,GAEXlF,EAAamF,SAAW,CACpB1E,MAAO,IACPP,aAAc,iBACd6I,UAAW,CACPC,SAAU,SAAU1J,GAChB,OAAO,IAAI2J,OAAO3J,EAAO,OAE7B4J,UAAW,SAAU5J,GACjB,MAAO,WAAaA,EAAQ,cAGpCe,YAAa,CACTC,eAAgB,qCAEpB6I,MAAO,EACP3I,SAAU,EACVJ,WAAY,MACZgJ,SAAU,IACVnJ,IAAK,KACLmG,iBAAkB,CACdiD,MAAS,CACLpC,WAAY,CAAC,CACLJ,GAAI,GACJD,IAAK,QAEbM,SAAU,SAAU7M,GAChB,GAAIvL,KAAKsW,WAAW7R,aAAa,SAASwU,QAAQ,UAAY,EAAG,CAC7D,IAAIuB,EAAWxa,KAAKsW,WAAW/O,cAAc,aAC7C,GAAIiT,IAAa,KAAM,CACnBjP,EAAMpE,iBACNnH,KAAKya,QAAQD,GACbxa,KAAKsW,WAAW7S,aAAa,QAAS,mBAIlDkU,SAAU/B,EAAkBgC,IAC5BL,MAAO1B,EAAUqB,SAErBwD,kBAAqB,CACjBvC,WAAY,CAAC,CACLJ,GAAI,GACJD,IAAK,OAET,CACIC,GAAI,GACJD,IAAK,QAEbM,SAAU,SAAU7M,GAChBA,EAAMpE,kBAEVwQ,SAAU/B,EAAkBiC,GAC5BN,MAAO1B,EAAUqB,SAErByD,gBAAmB,CACfxC,WAAY,CAAC,CACLJ,GAAI,GACJD,IAAK,OAET,CACIC,GAAI,GACJD,IAAK,QAEbM,SAAU,SAAU7M,GAChBA,EAAMpE,iBACN,IAAI0D,EAAQ7K,KAAKsW,WAAW/O,cAAc,+BAAgCqT,EAAO5a,KAAKsW,WAAW/O,cAAc,8BAA+BsT,EAAS7a,KAAKsW,WAAW/O,cAAc,aACrL,GAAIsT,EAAQ,CACR,IAAIC,EAAe/E,MAAMzV,UAAU2Y,QAAQtY,KAAKka,EAAO3a,WAAW6a,SAAUF,GAASjR,EAAWkR,GAAgBvP,EAAM3E,QAAU,IAAKoU,EAAWhb,KAAKsW,WAAWnL,qBAAqB,MAAMnD,OAC3L,GAAI4B,EAAW,EAAG,CACdA,EAAWoR,EAAW,OAErB,GAAIpR,GAAYoR,EAAU,CAC3BpR,EAAW,EAEfiR,EAAOzW,UAAUoH,OAAO,UACxBqP,EAAOtZ,cAAcwZ,SAASE,KAAKrR,GAAUxF,UAAUC,IAAI,eAE1D,GAAIuW,GAAQrP,EAAM3E,SAAW,GAAI,CAClCgU,EAAKxW,UAAUC,IAAI,eAElB,GAAIwG,EAAO,CACZA,EAAMzG,UAAUC,IAAI,YAG5BsT,SAAU/B,EAAkBiC,GAC5BN,MAAO1B,EAAUmB,OAErBkE,SAAY,CACR/C,WAAY,CAAC,CACLJ,GAAI,GACJD,IAAK,MACN,CACCE,KAAM,GACNC,GAAI,GACJH,IAAK,OAEbM,SAAU,WACN,IAAI+C,EAAWnb,KAAKwW,MAAM/R,aAAa,+BAAgC2W,EAAepb,KAAK6Y,OAC3F,GAAIuC,IAAiB,IAAMA,EAAapT,QAAUhI,KAAKqb,YAAa,CAChE,IAAKF,GAAYC,GAAgBD,EAAU,CACvCnb,KAAKsW,WAAW7S,aAAa,QAAS,qBAE1CyN,EAAa5Q,UAAUqZ,MAAM3Z,KAAM,SAAUwC,GACzCxC,KAAKsb,QAAQtb,KAAKub,MAAM/Y,IACxBxC,KAAKwb,SACP9Z,KAAK1B,MAAOA,KAAKyb,YAElB,CACDzb,KAAK0b,WAGb/D,SAAU/B,EAAkBgC,IAC5BL,MAAO1B,EAAUmB,QAGzBV,WAAY,KACZmD,QAAS,KACTjD,MAAO,KAIPmF,cAAe,WACX,IAAIC,EAAe,GACnB,GAAI5b,KAAKwW,MAAM3S,aAAa,mCAAoC,CAC5D+X,EAAe5b,KAAKwW,MAAM/R,aAAa,wCAEtC,GAAIzE,KAAKoR,eAAiB,MAAO,CAClCwK,EAAe5b,KAAKoR,iBAEnB,CACDwK,EAAe,GAEnB,OAAOA,GAKXC,OAAQ,WACJ,IAAIC,EAAQ9b,KAAKwW,MAAM/R,aAAa,2BACpC,GAAIsX,MAAMD,IAAUA,IAAU,KAAM,CAChC,OAAO9b,KAAKqa,MAEhB,OAAOrG,SAAS8H,EAAO,KAK3BT,UAAW,WACP,IAAIW,EAAWhc,KAAKwW,MAAM/R,aAAa,8BACvC,GAAIsX,MAAMC,IAAaA,IAAa,KAAM,CACtC,OAAOhc,KAAK0R,SAEhB,OAAOsC,SAASgI,EAAU,KAK9BC,WAAY,SAAUC,GAClB,OAAOA,EAAM7Y,QAAQrD,KAAKia,UAAUC,SAASla,KAAK6Y,QAAS7Y,KAAKia,UAAUG,YAK9E1B,YAAa,WACT,GAAI1Y,KAAKwW,MAAM3S,aAAa,4BAA6B,CACrD,OAAO7D,KAAKwW,MAAM/R,aAAa,4BAEnC,OAAOzE,KAAKsR,YAKhB0H,UAAW,WACP,GAAIhZ,KAAKwW,MAAM3S,aAAa,gCAAiC,CACzD,OAAO7D,KAAKwW,MAAM/R,aAAa,gCAEnC,OAAOzE,KAAKsa,UAKhB3B,KAAM,WACF,GAAI3Y,KAAKwW,MAAM3S,aAAa,qBAAsB,CAC9C,OAAO7D,KAAKwW,MAAM/R,aAAa,qBAEnC,OAAOzE,KAAKmR,KAKhByF,MAAO,SAAUuF,GACb,GAAIA,SAAa,EAAG,CAAEA,EAAM,MAC5B,GAAIA,EAAK,CACLnc,KAAK0b,aAEJ,CACD,IAAI5F,EAAS9V,KACb0N,WAAW,WACPoI,EAAOc,MAAM,OACd,OAMXgD,OAAQ,SAAUpJ,GACd,OAAOxQ,KAAKoZ,OAAO5I,IAKvBsG,OAAQ,WACJ,IAAIqE,EAAWnb,KAAKwW,MAAM/R,aAAa,+BACvC,KAAM0W,GAAYnb,KAAKwW,MAAMhG,OAAS2K,IAAanb,KAAKqb,aAAerb,KAAKwW,MAAMhG,MAAMxI,OAAQ,CAC5FhI,KAAKsW,WAAW7S,aAAa,QAAS,uBAM9C+X,MAAO,WACH,IAAI1F,EAAS9V,KACb+V,MAAMzV,UAAU2V,QAAQtV,KAAKX,KAAKsW,WAAWnL,qBAAqB,MAAO,SAAUiR,GAC/E,GAAIA,EAAG3X,aAAa,UAAY,SAAU,CACtC2X,EAAGC,QAAU,WACTvG,EAAO2E,QAAQ2B,QAK/BV,OAAQ,WACJ1b,KAAKsW,WAAW7S,aAAa,QAAS,iBAK1CiT,UAAW,WACP1W,KAAKsW,WAAW7S,aAAa,QAAS,gBACtCzD,KAAKsW,WAAW7S,aAAa,QAAS,QAAUzD,KAAKwW,MAAMtO,UAAYlI,KAAKwW,MAAM8F,cAAgB,WAAatc,KAAKwW,MAAM+F,WAAa,YAAcvc,KAAKwW,MAAMpC,YAAc,QAKlLkH,QAAS,SAAU9Y,GACf,IAAIga,EACJ,UAAWha,GAAY,SAAU,CAC7Bga,EAAKxc,KAAKyc,WAAWja,OAEpB,CACDga,EAAKxc,KAAK0c,qBAAqBla,GAEnC,GAAIxC,KAAKsW,WAAWqG,gBAAiB,CACjC3c,KAAKsW,WAAWwD,YAAY9Z,KAAKsW,WAAWsG,WAAW,IAE3D5c,KAAKsW,WAAW3S,YAAY6Y,IAKhCE,qBAAsB,SAAUla,GAC5B,IAAIga,EAAKrc,SAASqD,cAAc,MAAO4Y,EAAKjc,SAASqD,cAAc,MAAOsY,EAAQ9b,KAAK6b,SAEvF,GAAIC,EAAQ,EAAG,CACXtZ,EAAWA,EAASqa,eAEnB,GAAIf,IAAU,EAAG,CAClBA,EAAQtZ,EAASwF,OAErB,IAAK,IAAIiT,EAAO,EAAGA,EAAO5G,KAAKC,IAAID,KAAKyI,IAAIhB,GAAQtZ,EAASwF,QAASiT,IAAQ,CAC1EmB,EAAGrR,UAAYvI,EAASyY,GAAM8B,MAC9BX,EAAG3Y,aAAa,0BAA2BjB,EAASyY,GAAM+B,OAC1DR,EAAG7Y,YAAYyY,GACfA,EAAKjc,SAASqD,cAAc,MAEhC,OAAOgZ,GAKXC,WAAY,SAAUja,GAClB,IAAIga,EAAKrc,SAASqD,cAAc,MAAO4Y,EAAKjc,SAASqD,cAAc,MACnE,GAAIhB,EAASwF,OAAS,EAAG,CACrBhI,KAAKsW,WAAWvL,UAAYvI,MAE3B,CACD,IAAIoZ,EAAe5b,KAAK2b,gBACxB,GAAIC,IAAiB,GAAI,CACrBQ,EAAGrR,UAAY6Q,EACfQ,EAAG3Y,aAAa,QAAS,UACzB+Y,EAAG7Y,YAAYyY,IAGvB,OAAOI,GAKXjB,MAAO,SAAU/Y,GACb,IACI,IAAIya,EAAiB,GAErB,IAAIC,EAAO9Q,KAAKC,MAAM7J,GACtB,GAAIkE,OAAO6D,KAAK2S,GAAMlV,SAAW,EAAG,CAChC,MAAO,GAEX,GAAI+N,MAAMC,QAAQkH,GAAO,CACrB,IAAK,IAAI7c,EAAI,EAAGA,EAAIqG,OAAO6D,KAAK2S,GAAMlV,OAAQ3H,IAAK,CAC/C4c,EAAeA,EAAejV,QAAU,CAAEgV,MAASE,EAAK7c,GAAI0c,MAAS/c,KAAKic,WAAWiB,EAAK7c,UAG7F,CACD,IAAK,IAAImQ,KAAS0M,EAAM,CACpBD,EAAe5S,KAAK,CAChB2S,MAASxM,EACTuM,MAAS/c,KAAKic,WAAWiB,EAAK1M,OAI1C,OAAOyM,EAEX,MAAO1R,GAEH,OAAO/I,IAMfqW,KAAM,WACF,OAAO7Y,KAAKwW,MAAMhG,OAKtBiK,QAAS,SAAUQ,GACf,GAAIA,EAAKpX,aAAa,2BAA4B,CAC9C7D,KAAKwW,MAAMhG,MAAQyK,EAAKxW,aAAa,+BAEpC,CACDzE,KAAKwW,MAAMhG,MAAQyK,EAAKlQ,UAE5B/K,KAAKwW,MAAM/S,aAAa,8BAA+BzD,KAAKwW,MAAMhG,QAKtEiL,OAAQ,aAERlC,WAAY,KACZH,OAAQ,GACRzC,WAAY,IAEhB,OAAOzF,EA3fsB,GA6fjC4D,EAAOD,QAAU3D,GAEf,KAAK,GAAG,CAAC,GA1hB0W,CA0hBtW"}
\ No newline at end of file +{"version":3,"file":"searxng.min.js","sources":["searxng.js"],"names":["window","searxng","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","insertAfter","nextSibling","classList","add","isElementInDetail","undefined","contains","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","getAttribute","vimKeys","27","key","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","scrollHeight","86","75","74","80","GoToPreviousPage","78","GoToNextPage","79","openResult","84","82","reloadPage","72","toggleHelp","hotkeys","Object","hasOwnProperty","keyCode","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","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","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","push","sorted","keys","sort","a","b","html","lastCategory","first","cj","innerHTML","helpPanel","className","getElementsByTagName","toggle","selectNext","selectPrevious","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","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","entries","elements","element","source","translations","image_thumbnail_layout","ImageLayout","watch","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","imgElement","thumbnailElement","detailElement","imgSrc","loader","imgLoader","Image","align","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","value","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","AutoComplete","Url","EmptyMessage","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","verticalMargin","horizontalMargin","maxHeight","isAlignDone","_getHeigth","images","width","img","r","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","resultNode","style","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","clientWidth","Math","min","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","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 |