PageSourceSearch

https://pelastustieto.fi/wp-content/themes/pt-pelastustieto2020-th…/minified/js/scripts.min.js?ver=2026-09-24

js pelastustieto.fi collected 2026-09-25 00:14:00 UTC 36,427 bytes, 2 lines download raw bytes

1(e=>{window.onscroll=function(){window.pageYOffset>t?a.classList.add("sticky"):a.classList.remove("sticky")};var a=document.getElementById("paanavigaatio"),t=a.offsetTop;e("body").hasClass("page-template-page-paloautokilpailu")&&e("html, body").animate({scrollTop:e("#carform").offset().top},800),e(".load-more-posts").click(function(){var t=e(this),i=[];e(".home .sisaltoboksi_1_3").each(function(){r.preventDefault();var a=e(this);i.push(a.data("id"))});e.ajax({url:ajax_params.ajax_url,data:{action:"loadmore",excluded_posts:i},type:"POST",dataType:"html",beforeSend:function(a){t.text("Ladataan...")},success:function(a){a?t.text("Lataa lisää").after().before(a):t.remove()}})}),e(".avoimet-tyopaikat_ a.tyopaikka04").on("click",function(){var a=e(this).attr("href");ga("send","event","Keski-Uudenmaan turvallisuusviestintäpäällikkö Toukokuu 206","klikkaus",a)}),e(".avoimet-tyopaikat_ a.tyopaikka03").on("click",function(){var a=e(this).attr("href");ga("send","event","Palomestarin virka Jokilaakso Helmikuu 2016","klikkaus",a)}),e(".avoimet-tyopaikat_ a.tyopaikka02").on("click",function(){var a=e(this).attr("href");ga("send","event","Sisäministeriö Pelastusosasto Tammikuu 2016","klikkaus",a)}),e(".avoimet-tyopaikat_ a.tyopaikka01").on("click",function(){var a=e(this).attr("href");ga("send","event","Työpaikkailmoitus Pirkanmaan pelastuslaitos Joulukuu 2015","klikkaus",a)}),e(".avoimet-tyopaikat_ a.sisaministerio").on("click",function(){var a=e(this).attr("href");ga("send","event","Työpaikkailmoitus Jokipelastus palopaalikko Joulukuu 2015","klikkaus",a)}),e(".avoimet-tyopaikat_ a.jokipelastus-palomestari-palopaallikko").on("click",function(){var a=e(this).attr("href");ga("send","event","Työpaikkailmoitus Jokipelastus palopaalikko marraskuu 2015","klikkaus",a)}),e(".avoimet-tyopaikat_ a.turvata").on("click",function(){var a=e(this).attr("href");ga("send","event","Työpaikkailmoitus Turvata elokuu 2015","klikkaus",a)}),e(".avoimet-tyopaikat_ a.kuntarekry").on("click",function(){var a=e(this).attr("href");ga("send","event","Työpaikkailmoitus Kuntarekry pelastustoimen kehittämispäälikkö","klikkaus",a)}),e(".avoimet-tyopaikat_ a.aluehallintovirasto").on("click",function(){var a=e(this).attr("href");ga("send","event","Työpaikkailmoitus Aluehallintovirasto pelastusylitarkastaja","klikkaus",a)}),e(".avoimet-tyopaikat_ a.jokipelastus-palomestari-2015").on("click",function(){var a=e(this).attr("href");ga("send","event","Työpaikkailmoitus Jokipelastus palomestari elokuu 2015","klikkaus",a)}),e(".avoimet-tyopaikat_ a.jokipelastus-erityisasiantuntija").on("click",function(){var a=e(this).attr("href");ga("send","event","Työpaikkailmoitus Jokipelastus Palomestari Lokakuu 2015","klikkaus",a)}),e(".ylaosa-mainos .pelastustieto-banneri a").on("click",function(){var a=e(this).attr("href");ga("send","event","Mainosbanneri (yläosa)","klikkaus",a)}),e(".ylaosa-oikea .pelastustieto-banneri a").on("click",function(){var a=e(this).attr("href");ga("send","event","Mainosbanneri (logosta oikealla)","klikkaus",a)}),e("#alaosan-bannerit .pelastustieto-banneri a").on("click",function(){var a=e(this).attr("href");ga("send","event","Mainosbanneri (alaosa)","klikkaus",a)}),e("#sidebar .pelastustieto-banneri a").on("click",function(){var a=e(this).attr("href");ga("send","event","Mainosbanneri (sivupalkki)","klikkaus",a)}),e("#primary .entry-content img.aligncenter").parent().css("width","100%").css("text-align","center").css("display","inline-block"),e(".gallery-overlay").addClass("active"),e(".icon-to-top").click(function(){return e("html, body").animate({scrollTop:0},800),!1}),e(".toggle-overlay").click(function(){return e(".gallery-overlay").hasClass("active")?(e("h2.gallery-title").css("color","#000"),e("#megaMenu").css("z-index",3)):(e("h2.gallery-title").css("color","white"),e("#megaMenu").css("z-index",0)),e(".gallery-overlay").toggleClass("active"),!1}),e(".search-open").click(function(){e(this).toggleClass("active"),768<e(window).width()||e(window).width()<=768&&480<=e(window).width()?e(".search-area").fadeToggle("fast"):e(window).width()<481&&(e(".search-area").fadeToggle("fast"),e(".nav-mobile").fadeToggle("fast"))}),e(".sisaltoboksi .nosto:last-child .nosto-sisalto").css("border-bottom","0"),e(".sisaltoboksi.t
1yopaikat .nosto:last-child .nosto-sisalto").css("border-bottom","0"),e(".kategorialistaus li").last().css("border","0"),e(".sisaltoboksi .nosto").last().css("border","0"),e(".sisaltoboksi.tyopaikat .nosto-sisalto").last().css("border","0"),e(".bloginosto").last().css("border","0"),e(".viimeinen").css("border-bottom","0"),e("a").css("cursor","pointer"),window.attachEvent||window.addEventListener;var i,s,o,n,l,r="orientationchange",k=(e(".sisaltoboksi.levea").each(function(a){(a+1)%2==0&&e(this).css({marginLeft:0,marginRight:0})}),e("body")),c=e(window);e(function(){var a;k.is(".sidebar")&&(a=0===(a=e("#secondary .widget-area")).length?-40:a.height(),0<(a=e("#tertiary .widget-area").height()-e("#content").height()-a))&&999<c.innerWidth()&&e("#colophon").css("margin-top",a+"px")}),(i=e("#site-navigation"))&&(l=i.find(".menu-toggle"))&&((s=i.find(".nav-menu"))&&s.children().length?(l.on("click.twentythirteen",function(){i.toggleClass("toggled-on")}),s.find("a").on("focus.twentythirteen blur.twentythirteen",function(){e(this).parents(".menu-item, .page_item").toggleClass("focus")})):l.hide()),c.on("hashchange.twentythirteen",function(){var a=document.getElementById(location.hash.substring(1));a&&(/^(?:a|select|input|button|textarea)$/i.test(a.tagName)||(a.tabIndex=-1),a.focus())}),e.isFunction(e.fn.masonry)&&(s=k.is(".sidebar")?228:245,e("#secondary .widget-area").masonry({itemSelector:".widget",columnWidth:s,gutterWidth:20,isRTL:k.is(".rtl")})),e(".tab-container").length&&(e(".tab").first().addClass("show"),e(".tab-btn").first().parent().addClass("active"),o=e(".tab-btn"),n=e(".tab"),o.click(function(a){a.preventDefault();var a=e(this),t=a.attr("data-tab");a.hasClass("active")||(n.removeClass("show"),o.parent().removeClass("active"),a.parent().addClass("active"),e("#"+t).addClass("show"))})),e(".magazineListing").length&&(e("body").hasClass("kuntatekniikka"),e("#sidebar .magazineListing").append('<li class="lehtiarkisto-btn"><a href="http://pelastustieto.fi/digilehti" class="mainbtn">Lehtiarkisto</a></li>')),e(".tab-nav-mobile-toggle").length&&e(".tab-nav-mobile-toggle").click(function(){e(".tab-nav").toggleClass("show"),e(this).toggleClass("active")}),e(window).width()<=966&&(l=e(window).width()/940*230,e(".kaksi-elementtia .nostokuva, .kolme-elementtia .nostokuva").css("height",l),e(".paanosto .sisaltoboksi_1_3 .nostokuva").css("height",l)),e(window).resize(function(){var a;e(window).width()<=650&&(a=e(window).width()/940*300,e(".kaksi-elementtia .nostokuva, .kolme-elementtia .nostokuva").css("height",a),e(".paanosto .sisaltoboksi_1_3 .nostokuva").css("height",a))});let u=e(window).width(),h=e("#primary-menu");e("button.menu-toggle").click(function(a){a.preventDefault();a=e("button.menu-toggle");h.toggleClass("mobile-hidden"),a.each(function(){e(this).toggleClass("hidden")}),u<1200&&e("body").toggleClass("body-lock")}),u<=1199&&e("#primary-menu > li.menu-item-has-children > a").click(function(a){e(this).next(".sub-menu").toggleClass("open"),e(this).toggleClass("focused"),e(this).hasClass("open")||a.preventDefault(),e(this).toggleClass("focused");e(this).parent().find(".sub-menu").height()})})(jQuery);
2//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRoZW1lLmpzIl0sIm5hbWVzIjpbIiQiLCJ3aW5kb3ciLCJvbnNjcm9sbCIsInBhZ2VZT2Zmc2V0Iiwic3RpY2t5IiwiaGVhZGVyIiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsIm9mZnNldFRvcCIsImhhc0NsYXNzIiwiYW5pbWF0ZSIsInNjcm9sbFRvcCIsIm9mZnNldCIsInRvcCIsImNsaWNrIiwiYnV0dG9uIiwidGhpcyIsImV4Y2x1ZGVkUG9zdHMiLCJlYWNoIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsIiR0aGlzIiwicHVzaCIsImRhdGEiLCJhamF4IiwidXJsIiwiYWpheF9wYXJhbXMiLCJhamF4X3VybCIsImFjdGlvbiIsImV4Y2x1ZGVkX3Bvc3RzIiwidHlwZSIsImRhdGFUeXBlIiwiYmVmb3JlU2VuZCIsInhociIsInRleHQiLCJzdWNjZXNzIiwiYWZ0ZXIiLCJiZWZvcmUiLCJvbiIsImF0dHIiLCJnYSIsInBhcmVudCIsImNzcyIsImFkZENsYXNzIiwidG9nZ2xlQ2xhc3MiLCJ3aWR0aCIsImZhZGVUb2dnbGUiLCJsYXN0IiwiYXR0YWNoRXZlbnQiLCJhZGRFdmVudExpc3RlbmVyIiwibmF2IiwiY29sdW1uV2lkdGgiLCJ0YWJCdG4iLCJ0YWIiLCJoZWlnaHRpbWFnZSIsImJvZHkiLCJpbmRleCIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsIl93aW5kb3ciLCJtYXJnaW4iLCJpcyIsInNlY29uZGFyeSIsInNpZGViYXIiLCJsZW5ndGgiLCJoZWlnaHQiLCJpbm5lcldpZHRoIiwiZmluZCIsIm1lbnUiLCJjaGlsZHJlbiIsInBhcmVudHMiLCJoaWRlIiwiZWxlbWVudCIsImxvY2F0aW9uIiwiaGFzaCIsInN1YnN0cmluZyIsInRlc3QiLCJ0YWdOYW1lIiwidGFiSW5kZXgiLCJmb2N1cyIsImlzRnVuY3Rpb24iLCJmbiIsIm1hc29ucnkiLCJpdGVtU2VsZWN0b3IiLCJndXR0ZXJX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0FBQSxFQUNBMEIsS0FBQSxXQUFBLEVBQUFGLE9BQUEsQ0FFQSxDQUFBLENBY0EsR0FBQStCLE1BQUEiLCJmaWxlIjoic2NyaXB0cy5taW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyJcbiggZnVuY3Rpb24oICQgKSB7XG5cblxuICAvLyBXaGVuIHRoZSB1c2VyIHNjcm9sbHMgdGhlIHBhZ2UsIGV4ZWN1dGUgbXlGdW5jdGlvblxuICB3aW5kb3cub25zY3JvbGwgPSBmdW5jdGlvbigpIHtteUZ1bmN0aW9uKCl9O1xuXG4vLyBHZXQgdGhlIGhlYWRlclxudmFyIGhlYWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwicGFhbmF2aWdhYXRpb1wiKTtcblxuLy8gR2V0IHRoZSBvZmZzZXQgcG9zaXRpb24gb2YgdGhlIG5hdmJhclxudmFyIHN0aWNreSA9IGhlYWRlci5vZmZzZXRUb3A7XG5cbi8vIEFkZCB0aGUgc3RpY2t5IGNsYXNzIHRvIHRoZSBoZWFkZXIgd2hlbiB5b3UgcmVhY2ggaXRzIHNjcm9sbCBwb3NpdGlvbi4gUmVtb3ZlIFwic3RpY2t5XCIgd2hlbiB5b3UgbGVhdmUgdGhlIHNjcm9sbCBwb3NpdGlvblxuZnVuY3Rpb24gbXlGdW5jdGlvbigpIHtcbiAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA+IHN0aWNreSkge1xuICAgIGhlYWRlci5jbGFzc0xpc3QuYWRkKFwic3RpY2t5XCIpO1xuICB9IGVsc2Uge1xuICAgIGhlYWRlci5jbGFzc0xpc3QucmVtb3ZlKFwic3RpY2t5XCIpO1xuICB9XG59XG5cbmlmKCQoJ2JvZHknKS5oYXNDbGFzcygncGFnZS10ZW1wbGF0ZS1wYWdl
2LXBhbG9hdXRva2lscGFpbHUnKSkge1xuICAkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7XG4gICAgc2Nyb2xsVG9wOiAkKCcjY2FyZm9ybScpLm9mZnNldCgpLnRvcFxuICB9LCA4MDApO1xufTtcblxuXG4kKCcubG9hZC1tb3JlLXBvc3RzJykuY2xpY2soZnVuY3Rpb24oKXtcblxuICB2YXIgYnV0dG9uID0gJCh0aGlzKTtcbiAgdmFyIGV4Y2x1ZGVkUG9zdHMgPSBbXTtcbiAgJCgnLmhvbWUgLnNpc2FsdG9ib2tzaV8xXzMnKS5lYWNoKGZ1bmN0aW9uKCl7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB2YXIgJHRoaXMgPSAkKHRoaXMpO1xuICAgIGV4Y2x1ZGVkUG9zdHMucHVzaCggJHRoaXMuZGF0YSgnaWQnKSApO1xuICB9KTtcblxuICB2YXIgcG9zdHMgPSBleGNsdWRlZFBvc3RzO1xuICAkLmFqYXgoeyBcbiAgICB1cmwgOmFqYXhfcGFyYW1zLmFqYXhfdXJsLCBcbiAgICBkYXRhIDoge2FjdGlvbjogXCJsb2FkbW9yZVwiLCBleGNsdWRlZF9wb3N0czogZXhjbHVkZWRQb3N0c30sXG4gICAgdHlwZSA6ICdQT1NUJyxcbiAgICBkYXRhVHlwZSA6IFwiaHRtbFwiLFxuICAgIGJlZm9yZVNlbmQgOiBmdW5jdGlvbiAoIHhociApIHtcbiAgICAgIGJ1dHRvbi50ZXh0KCdMYWRhdGFhbi4uLicpOyBcbiAgICB9LFxuICAgIHN1Y2Nlc3MgOiBmdW5jdGlvbiggZGF0YSApe1xuICAgICAgaWYoIGRhdGEgKSB7IFxuICAgICAgICBidXR0b24udGV4dCggJ0xhdGFhIGxpc8Okw6QnICkuYWZ0ZXIoKS5iZWZvcmUoZGF0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBidXR0b24ucmVtb3ZlKCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxufSk7XG5cbiAgICAgIC8vIEdvb2dsZSBhbmFseXRpY3NcblxuICAgICAgJCgnLmF2b2ltZXQtdHlvcGFpa2F0XyBhLnR5b3BhaWtrYTA0Jykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB1cmwgPSAkKHRoaXMpLmF0dHIoJ2hyZWYnKTtcbiAgICAgICAgZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnS2Vza2ktVXVkZW5tYWFuIHR1cnZhbGxpc3V1c3ZpZXN0aW50w6Rww6TDpGxsaWtrw7YgVG91a29rdXUgMjA2JywgJ2tsaWtrYXVzJywgdXJsKTtcbiAgICAgIH0pO1xuXG4gICAgICAkKCcuYXZvaW1ldC10eW9wYWlrYXRfIGEud
2HlvcGFpa2thMDMnKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHVybCA9ICQodGhpcykuYXR0cignaHJlZicpO1xuICAgICAgICBnYSgnc2VuZCcsICdldmVudCcsICdQYWxvbWVzdGFyaW4gdmlya2EgSm9raWxhYWtzbyBIZWxtaWt1dSAyMDE2JywgJ2tsaWtrYXVzJywgdXJsKTtcbiAgICAgIH0pO1xuXG4gICAgICAkKCcuYXZvaW1ldC10eW9wYWlrYXRfIGEudHlvcGFpa2thMDInKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHVybCA9ICQodGhpcykuYXR0cignaHJlZicpO1xuICAgICAgICBnYSgnc2VuZCcsICdldmVudCcsICdTaXPDpG1pbmlzdGVyacO2IFBlbGFzdHVzb3Nhc3RvIFRhbW1pa3V1IDIwMTYnLCAna2xpa2thdXMnLCB1cmwpO1xuICAgICAgfSk7XG5cblxuICAgICAgJCgnLmF2b2ltZXQtdHlvcGFpa2F0XyBhLnR5b3BhaWtrYTAxJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB1cmwgPSAkKHRoaXMpLmF0dHIoJ2hyZWYnKTtcbiAgICAgICAgZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnVHnDtnBhaWtrYWlsbW9pdHVzIFBpcmthbm1hYW4gcGVsYXN0dXNsYWl0b3MgSm91bHVrdXUgMjAxNScsICdrbGlra2F1cycsIHVybCk7XG4gICAgICB9KTtcblxuICAgICAgJCgnLmF2b2ltZXQtdHlvcGFpa2F0XyBhLnNpc2FtaW5pc3RlcmlvJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB1cmwgPSAkKHRoaXMpLmF0dHIoJ2hyZWYnKTtcbiAgICAgICAgZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnVHnDtnBhaWtrYWlsbW9pdHVzIEpva2lwZWxhc3R1cyBwYWxvcGFhbGlra28gSm91bHVrdXUgMjAxNScsICdrbGlra2F1cycsIHVybCk7XG4gICAgICB9KTtcblxuICAgICAgJCgnLmF2b2ltZXQtdHlvcGFpa2F0XyBhLmpva2lwZWxhc3R1cy1wYWxvbWVzdGFyaS1wYWxvcGFhbGxpa2tvJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB1cmwgPSAkKHRoaXMpLmF0dHIoJ2hyZWYnKTtcbiAgICAgICAgZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnVHnDtnBhaWtrYWlsbW9pdHVzIEpva2lwZWxhc3R1cyBwYWxvcGFhbGlra28gbWFycmFza3V1IDIwMTUnLCAna2xpa2thdXMnLCB1cmwpO1xuICAgICAgfSk7XG5cbiAgICAgICQoJy5hdm9pbWV0LXR5b3BhaWthdF8gYS50dXJ2YXRhJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB1cmwgPSAkKHRoaXMpLmF0dHIoJ2hyZWYnKTtcbiAgICAgICAgZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnVHnDtnBhaWtrYWlsbW9pdHVzIFR1cnZhdGEgZWxva3V1IDIwMTUnLCAna2xpa2thdXMnLCB1cmwpO1xuICAgICAgfSk7XG5cbiAgICAgICQoJy5hdm9pbWV0LXR5b3BhaWthdF8gYS5rdW50YXJla3J5Jykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB1cmwgPSAkKHRoaXMpLmF0dHIoJ2hyZWYnKTtcbiAgICAgICAgZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnVHnDtnBhaWtrYWlsbW9pdHVzIEt1bnRhcmVrcnkgcGVsYXN0dXN0b2ltZW4ga2VoaXR0w6RtaXNww6TDpGxpa2vDticsICdrbGlra2F1cycsIHVybCk7XG4gICAgICB9KTtcblxuICAgICAgJCgnLmF2b2ltZXQtdHlvcGFpa2F0XyBhLmFsdWVoYWxsaW50b3ZpcmFzdG8nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHVybCA9ICQodGhpcykuYXR0cignaHJlZicpO1xuICAgICAgICBnYSgnc2VuZCcsICdldmVudCcsICdUecO2cGFpa2thaWxtb2l0dXMgQWx1ZWhhbGxpbnRvdmlyYXN0byBwZWxhc3R1c3lsaXRhcmthc3RhamEnLCAna2xpa2thdXMnLCB1cmwpO1xuICAgICAgfSk7XG5cbiAgICAgICQoJy5hdm9pbWV0LXR5b3BhaWthdF8gYS5qb2tpcGVsYXN0dXMtcGFsb21lc3RhcmktMjAxNScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuICAgICAgICB2Y
2XIgdXJsID0gJCh0aGlzKS5hdHRyKCdocmVmJyk7XG4gICAgICAgIGdhKCdzZW5kJywgJ2V2ZW50JywgJ1R5w7ZwYWlra2FpbG1vaXR1cyBKb2tpcGVsYXN0dXMgcGFsb21lc3RhcmkgZWxva3V1IDIwMTUnLCAna2xpa2thdXMnLCB1cmwpO1xuICAgICAgfSk7XG5cbiAgICAgICQoJy5hdm9pbWV0LXR5b3BhaWthdF8gYS5qb2tpcGVsYXN0dXMtZXJpdHlpc2FzaWFudHVudGlqYScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgdXJsID0gJCh0aGlzKS5hdHRyKCdocmVmJyk7XG4gICAgICAgIGdhKCdzZW5kJywgJ2V2ZW50JywgJ1R5w7ZwYWlra2FpbG1vaXR1cyBKb2tpcGVsYXN0dXMgUGFsb21lc3RhcmkgTG9rYWt1dSAyMDE1JywgJ2tsaWtrYXVzJywgdXJsKTtcbiAgICAgIH0pO1xuXG4gICAgICAkKCcueWxhb3NhLW1haW5vcyAucGVsYXN0dXN0aWV0by1iYW5uZXJpIGEnKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHVybCA9ICQodGhpcykuYXR0cignaHJlZicpO1xuICAgICAgICBnYSgnc2VuZCcsICdldmVudCcsICdNYWlub3NiYW5uZXJpICh5bMOkb3NhKScsICdrbGlra2F1cycsIHVybCk7XG4gICAgICB9KTtcblxuICAgICAgJCgnLnlsYW9zYS1vaWtlYSAucGVsYXN0dXN0aWV0by1iYW5uZXJpIGEnKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHVybCA9ICQodGhpcykuYXR0cignaHJlZicpO1xuICAgICAgICBnYSgnc2VuZCcsICdldmVudCcsICdNYWlub3NiYW5uZXJpIChsb2dvc3RhIG9pa2VhbGxhKScsICdrbGlra2F1cycsIHVybCk7XG4gICAgICB9KTtcblxuICAgICAgJCgnI2FsYW9zYW4tYmFubmVyaXQgLnBlbGFzdHVzdGlldG8tYmFubmVyaSBhJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB1cmwgPSAkKHRoaXMpLmF0dHIoJ2hyZWYnKTtcbiAgICAgICAgZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnTWFpbm9zYmFubmVyaSAoYWxhb3NhKScsICdrbGlra2F1cycsIHVybCk7XG4gICAgICB9KTtcblxuICAgICAgJCgnI3NpZGViYXIgLnBlbGFzdHVzdGlldG8tYmFubmVyaSBhJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB1cmwgPSAkKHRoaXMpLmF0dHIoJ2hyZWYnKTtcbiAgICAgICAgZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnTWFpbm9zYmFubmVyaSAoc2l2dXBhbGtraSknLCAna2xpa2thdXMnLCB1cmwpO1xuICAgICAgfSk7XG5cblxuICAgICAgJCgnI3ByaW1hcnkgLmVudHJ5LWNvbnRlbnQgaW1nLmFsaWduY2VudGVyJykucGFyZW50KCkuY3NzKFwid2lkdGhcIiwgXCIxMDAlXCIpLmNzcyhcInRleHQtYWxpZ25cIiwgXCJjZW50ZXJcIikuY3NzKFwiZGlzcGxheVwiLCBcImlubGluZS1ibG9ja1wiKTtcblxuICAgIC8vICEgR29vZ2xlIGFuYWx5dGljc1xuXG5cblxuICAgICQoJy5nYWxsZXJ5LW92ZXJsYXknKS5hZGRDbGFzcyhcImFjdGl2ZVwiKTtcblxuXG4gICAgLy8gU2l2dW4geWzDtnNcblxuICAgICQoJy5pY29uLXRvLXRvcCcpLmNsaWNrKGZ1bmN0aW9uKCl7XG4gICAgICAkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7c2Nyb2xsVG9wIDogMH0sODAwKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcblxuICAgICQoJy50b2dnbGUtb3ZlcmxheScpLmNsaWNrKGZ1bmN0aW9uKCl7XG5cbiAgICAgIGlmICgkKCcuZ2FsbGVyeS1vdmVybGF5JykuaGFzQ2xhc3MoJ2FjdGl2ZScpKSB7XG4gICAgICAgICQoJ2gyLmdhbGxlcnktdGl0bGUnKS5jc3MoXCJjb2xvclwiLCBcIiMwMDBcIik7XG4gICAgICAgICQoJyNtZWdhTWVudScpLmNzcyhcInotaW5kZXhcIiwgMyk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICQoJ2gyLmdhbGxlcnktdGl0bGUnKS5jc3MoXCJjb2xvclwiLCBcIndoaXRlXCIpO1xuICAgICAgICAkKCcjbWVnYU1lbnUnKS5jc3MoXCJ6LWluZGV4XCIsIDApO1xuICAgICAgfVxuXG4gICAgICAkKCcuZ2FsbGVyeS1vdmVybGF5JykudG9nZ2xlQ2xhc3MoXCJhY3RpdmVcIik7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcblxuICAgIFxuXG4gICAgdmFyIHNlYXJjaFRvZ2dsZSA9IDA7XG5cbiAgICAkK
2FwiLnNlYXJjaC1vcGVuXCIpLmNsaWNrKGZ1bmN0aW9uKCkge1xuXG4gICAgICBzZWFyY2hUb2dnbGUrKztcblxuICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcygnYWN0aXZlJyk7XG5cbiAgICAgIGlmKCQod2luZG93KS53aWR0aCgpID4gNzY4KSB7IFxuICAgICAgICAkKFwiLnNlYXJjaC1hcmVhXCIpLmZhZGVUb2dnbGUoJ2Zhc3QnKTtcbiAgICAgIH0gZWxzZSBpZigkKHdpbmRvdykud2lkdGgoKSA8PSA3NjggJiYgJCh3aW5kb3cpLndpZHRoKCkgPj0gNDgwKSB7XG4gICAgICAgICQoXCIuc2VhcmNoLWFyZWFcIikuZmFkZVRvZ2dsZSgnZmFzdCcpO1xuICAgICAgfSBlbHNlIGlmKCQod2luZG93KS53aWR0aCgpIDwgNDgxKSB7XG4gICAgICAgICQoXCIuc2VhcmNoLWFyZWFcIikuZmFkZVRvZ2dsZSgnZmFzdCcpO1xuICAgICAgICAvLyAkKFwiLmxvZ29cIikuZmFkZVRvZ2dsZSgnZmFzdCcpO1xuICAgICAgICAkKFwiLm5hdi1tb2JpbGVcIikuZmFkZVRvZ2dsZSgnZmFzdCcpO1xuICAgICAgfVxuICAgIH0pOyAgIFxuXG4gIC8vIFlsZWlzZXQgZnVua3Rpb3RcbiAgLy8gXG4gIC8vIFNpdnVzdG9uIHVsa29hc3VuIHZpaWxhYW1pc2VlbiB0YXJrb2l0ZXR1dCBwaWVuZXQgc8Okw6Rkw7Z0LlxuICBcbiAgJChcIi5zaXNhbHRvYm9rc2kgLm5vc3RvOmxhc3QtY2hpbGQgLm5vc3RvLXNpc2FsdG9cIikuY3NzKFwiYm9yZGVyLWJvdHRvbVwiLCBcIjBcIik7XG4gICQoXCIuc2lzYWx0b2Jva3NpLnR5b3BhaWthdCAubm9zdG86bGFzdC1jaGlsZCAubm9zdG8tc2lzYWx0b1wiKS5jc3MoXCJib3JkZXItYm90dG9tXCIsIFwiMFwiKTtcblxuICAkKFwiLmthdGVnb3JpYWxpc3RhdXMgbGlcIikubGFzdCgpLmNzcyhcImJvcmRlclwiLCBcIjBcIik7XG4gICQoXCIuc2lzYWx0b2Jva3NpIC5ub3N0b1wiKS5sYXN0KCkuY3NzKFwiYm9yZGVyXCIsIFwiMFwiKTtcbiAgJChcIi5zaXNhbHRvYm9rc2kudHlvcGFpa2F0IC5ub3N0by1zaXNhbHRvXCIpLmxhc3QoKS5jc3MoXCJib3JkZXJcIiwgXCIwXCIpO1xuICAkKFwiLmJsb2dpbm9zdG9cIikubGFzdCgpLmNzcyhcImJvcmRlclwiLCBcIjBcIik7XG4gICQoXCIudmlpbWVpbmVuXCIpLmNzcyhcImJvcmRlci1ib3R0b21cIiwgXCIwXCIpO1xuICAkKFwiYVwiKS5jc3MoXCJjdXJzb3JcIiwgXCJwb2ludGVyXCIpO1xuXG4gIHZhciBhZGRFdmVudCA9ICB3aW5kb3cuYXR0YWNoRXZlbnR8fHdpbmRvdy5hZGRFdmVudExpc3RlbmVyO1xuICB2YXIgZXZlbnQgPSB3aW5kb3cuYXR0YWNoRXZlbnQgPyAnb3JpZW50YXRpb25jaGFuZ2UnIDogJ29yaWVudGF0aW9uY2hhbmdlJztcblxuICAvLyBhZGRFdmVudChldmVudCwgZnVuY3Rpb24oKXtcblxuICAvLyAgICQoXCIjbWVnYU1lbnUubWVnYU1lbnVIb3Jpem9udGFsIHVsLm1lZ2FNZW51IGxpLm1lbnUtaXRlbS5zcy1uYXYtbWVudS1yZWcgPiB1bC5zdWItbWVudVwiKS5oaWRlKCk7XG5cblxuICAvLyB9KTtcbiAgXG4gIC8qIE5vc3RvamVuIGluZ3Jlc3NpbiBwaXR1dXMgKi9cblxuXG4gIC8vICQoXCIuc2lzYWx0b2Jva3NpXzFfM1wiKS5kb3Rkb3Rkb3Qoe1xuICAvLyAgIC8qICBUaGUgSFRNTCB0byBhZGQgYXMgZWxsaXBzaXMuICovXG4gIC8vICAgZWxsaXBzaXM6ICcuLi4gJyxcbiAgLy8gICB3cmFwOiAnd29yZCcsXG4gIC8vICAgaGVpZ2h0OiAzNzBcbiAgLy8gfSk7XG5cbiAgLy8gJChcIiNwYWFub3N0byAuc2lzYWx0b2Jva3NpXzFfM1wiKS5kb3Rkb3Rkb3Qoe1xuICAvLyAgIC8qICBUaGUgSFRNTCB0byBhZGQgYXMgZWxsaXBzaXMuICovXG4gIC8vICAgZWxsaXBzaXM6ICcuLi4gJyxcbiAgLy8gICB3cmFwOiAnd29yZCdcbiAgLy8gfSk7XG5cbiAgLy8gJChcIi5ibG9naW5vc3RvIC5ub3N0by1zaXNhbHRvXCIpLmRvdGRvdGRvdCh7XG4gIC8vICAgICBUaGUgSFRNTCB0byBhZGQgYXMgZWxsaXBzaXMuIFxuICAvLyAgIGVsbGlwc2lzOiAnLi4uICcsXG4gIC8vICAgd3JhcDogJ3dvcmQnLFxuICAvLyAgIGhlaWdodCAgICA6ICA2MFxuICAvLyB9KTtcbiAgXG4gIFxuICAvLyAvKiBQw6TDpG5vc3RvbGFhdGlrb24gbGlzw6Rub3N0b2plbiBpbmdyZXNzaW4gcGl0dXVzICovXG4gIFxuICAvLyAkKCcjcGFhbm9zdG8gLmxpc2Fub3N0bycpLmRvdGRvdGRvdCh7XG4gIC8vICAgZWxsaXBzaXM6ICcuLi4gJyxcbiAgLy8gICB3cmFwOiAnd29yZCdcbiAgLy8gfSk7XG5cbiAgLy8gJCgnI2Fya2lzdG9qdXR1dCAubm9zdG8tc2lzYWx0bycpLmRvdGRvdGRvdCh7XG4gIC8vICAgZWxsaXBzaXM6ICcuLi4gJyxcbiAgLy8gICB3cmFwOiAnd29yZCcsXG4gIC8vICAgaGVpZ2h0ICAgIDogIDYwXG4gIC8vIH0pO1xuXG4gIFxuXG4vLyQoJy5zaXNhbHRvYm9rc2lbZGF0YS13aWR0aD1cImthcGVhXCJdJykuZWFjaChmdW5jdGlvbihpbmRleCkge1xuLy8gICAgaWYgKChpbmRleCArIDEpICUgMyA9PSAwKSB7XG4vLyAgICAgICQodGhpcykuY3NzKFwibWFyZ2luLXJpZ2h0XCIsIFwiMFwiKTtcbi8vICAgIH1cbi8vICB9KTtcblxuJCgnLnNpc2FsdG9ib2tzaS5sZXZlYScpLmVhY2goZnVuY3Rpb24oaW5kZXgpIHtcbiAgaWYgKChpbmRleCArIDEpICUgMiA9PT0gMCkge1xuICAgICQodGhpcykuY3NzKHtcbiAgICAgIG1hcmdpbkxlZnQ6IDAsXG4gICAgICBtYXJnaW5SaWdodDogMFxuICAgIH0pO1xuICB9XG59KTtcblxudmFyIGJvZHkgICAgPSAkKCAnYm9keScgKSxcbl93aW5kb3cgPSAkKCB3aW5kb3cgKTtcblxuICAvKipcbiAgICogQWRkcyBhIHRvcCBtYXJnaW4gdG8gdGhlIGZvb3RlciBpZiB0aGUgc2lkZWJhciB3aWRnZXQgYXJlYSBpcyBoaWdoZXJcbiAgICogdGhhbiB0aGUgcmVzdCBvZiB0aGUgcGFnZSwgdG8gaGVscCB0aGUgZm9vdGVyIGFsd2F5cyB2aXN1YWxseSBjbGVhclxuICAgKiB0aGUgc2lkZWJhci5cbiAgICovXG4gICAkKCBmdW5jdGlvbigpIHtcbiAgICBpZiAoIGJvZHkuaXMoICcuc2lkZWJhcicgKSApIHtcbiAgICAgIHZhciBzaWRlYmFyICAgPSAkKCAnI3NlY29uZGFyeSAud2lkZ2V0LWFyZWEnICksXG4gICAgICBzZWNvbmRhcnkgPSAoIDAgPT09IHNpZGViYXIubGVuZ3RoICkgPyAtNDAgOiBzaWRlYmFyLmhlaWdodCgpLFxuICAgICAgbWFyZ2luICAgID0gJCggJyN0ZXJ0aWFyeSAud2lkZ2V0LWFyZWEnICkuaGVpZ2h0KCkgLSAkKCA
2nI2NvbnRlbnQnICkuaGVpZ2h0KCkgLSBzZWNvbmRhcnk7XG5cbiAgICAgIGlmICggbWFyZ2luID4gMCAmJiBfd2luZG93LmlubmVyV2lkdGgoKSA+IDk5OSApIHtcbiAgICAgICAgJCggJyNjb2xvcGhvbicgKS5jc3MoICdtYXJnaW4tdG9wJywgbWFyZ2luICsgJ3B4JyApO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgbWVudSB0b2dnbGUgZm9yIHNtYWxsIHNjcmVlbnMuXG4gICAqL1xuICAgKCBmdW5jdGlvbigpIHtcbiAgICB2YXIgbmF2ID0gJCggJyNzaXRlLW5hdmlnYXRpb24nICksIGJ1dHRvbiwgbWVudTtcbiAgICBpZiAoICEgbmF2ICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGJ1dHRvbiA9IG5hdi5maW5kKCAnLm1lbnUtdG9nZ2xlJyApO1xuICAgIGlmICggISBidXR0b24gKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSGlkZSBidXR0b24gaWYgbWVudSBpcyBtaXNzaW5nIG9yIGVtcHR5LlxuICAgIG1lbnUgPSBuYXYuZmluZCggJy5uYXYtbWVudScgKTtcbiAgICBpZiAoICEgbWVudSB8fCAhIG1lbnUuY2hpbGRyZW4oKS5sZW5ndGggKSB7XG4gICAgICBidXR0b24uaGlkZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGJ1dHRvbi5vbiggJ2NsaWNrLnR3ZW50eXRoaXJ0ZWVuJywgZnVuY3Rpb24oKSB7XG4gICAgICBuYXYudG9nZ2xlQ2xhc3MoICd0b2dnbGVkLW9uJyApO1xuICAgIH0gKTtcblxuICAgIC8vIEJldHRlciBmb2N1cyBmb3IgaGlkZGVuIHN1Ym1lbnUgaXRlbXMgZm9yIGFjY2Vzc2liaWxpdHkuXG4gICAgbWVudS5maW5kKCAnYScgKS5vbiggJ2ZvY3VzLnR3ZW50eXRoaXJ0ZWVuIGJsdXIudHdlbnR5dGhpcnRlZW4nLCBmdW5jdGlvbigpIHtcbiAgICAgICQoIHRoaXMgKS5wYXJlbnRzKCAnLm1lbnUtaXRlbSwgLnBhZ2VfaXRlbScgKS50b2dnbGVDbGFzcyggJ2ZvY3VzJyApO1xuICAgIH0gKTtcbiAgfSApKCk7XG5cblxuICAvKipcbiAgICogTWFrZXMgXCJza2lwIHRvIGNvbnRlbnRcIiBsaW5rIHdvcmsgY29ycmVjdGx5IGluIElFOSBhbmQgQ2hyb21lIGZvciBiZXR0ZXJcbiAgICogYWNjZXNzaWJpbGl0eS5cbiAgICpcbiAgICogQGxpbmsgaHR0cDovL3d3dy5uY3pvbmxpbmUubmV0L2Jsb2cvMjAxMy8wMS8xNS9maXhpbmctc2tpcC10by1jb250ZW50LWxpbmtzL1xuICAgKi9cbiAgIF93aW5kb3cub24oICdoYXNoY2hhbmdlLnR3ZW50eXRoaXJ0ZWVuJywgZnVuY3Rpb24oKSB7XG4gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggbG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoIDEgKSApO1xuXG4gICAgaWYgKCBlbGVtZW50ICkge1xuICAgICAgaWYgKCAhIC9eKD86YXxzZWxlY3R8aW5wdXR8YnV0dG9ufHRleHRhcmVhKSQvaS50ZXN0KCBlbGVtZW50LnRhZ05hbWUgKSApIHtcbiAgICAgICAgZWxlbWVudC50YWJJbmRleCA9IC0xO1xuICAgICAgfVxuXG4gICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9ICk7XG5cbiAgLyoqXG4gICAqIEFycmFuZ2VzIGZvb3RlciB3aWRnZXRzIHZlcnRpY2FsbHkuXG4gICAqL1xuICAgaWYgKCAkLmlzRnVuY3Rpb24oICQuZm4ubWFzb25yeSApICkge1xuICAgIHZhciBjb2x1bW5XaWR0aCA9IGJvZHkuaXMoICcuc2lkZWJhcicgKSA/IDIyOCA6IDI0NTtcblxuICAgICQoICcjc2Vjb25kYXJ5IC53aWRnZXQtYXJlYScgKS5tYXNvbnJ5KCB7XG4gICAgICBpdGVtU2VsZWN0b3I6ICcud2lkZ2V0JyxcbiAgICAgIGNvbHVtbldpZHRoOiBjb2x1bW5XaWR0aCxcbiAgICAgIGd1dHRlcldpZHRoOiAyMCxcbiAgICAgIGlzUlRMOiBib2R5LmlzKCAnLnJ0bCcgKVxuICAgIH0gKTtcbiAgfSAgXG5cbiAgLy9NZWRpYXRpZXRvLXNpdnVuIHRhYml0XG4gIGlmICgkKCcudGFiLWNvbnRhaW5lcicpLmxlbmd0aCkge1xuICAgICQoJy50YWInKS5maXJzdCgpLmFkZENsYXNzKCdzaG93Jyk7XG4gICAgJCgnLnRhYi1idG4nKS5maXJzdCgpLnBhcmVudCgpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICBcbiAgICB2YXIgdGFiQnRuID0gJCgnLnRhYi1idG4nKTtcbiAgICB2YXIgdGFiID0gJCgnLnRhYicpO1xuICAgIFxuICAgIHRhYkJ0bi5jbGljayhmdW5jdGlvbiAoZSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdmFyIHRoaXNCdG4gPSAkKHRoaXMpO1xuICAgICAgdmFyIHRoaXNUYWIgPSB0aGlzQnRuLmF0dHIoJ2RhdGEtdGFiJyk7XG4gICAgICBpZiAoIXRoaXNCdG4uaGFzQ2xhc3MoJ2FjdGl2ZScpKSB7XG4gICAgICAgIHRhYi5yZW1vdmVDbGFzcygnc2hvdycpO1xuICAgICAgICB0YWJCdG4ucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICB0aGlzQnRuLnBhcmVudCgpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJCgnIycgKyB0aGlzVGFiKS5hZGRDbGFzcygnc2hvdycpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIFxuICAvL0xpbmtraSBsZWh0aWFya2lzdG9vblxuICBpZiAoJCgnLm1hZ2F6aW5lTGlzdGluZycpLmxlbmd0aCkge1xuICAgIGlmKCQoJ2JvZHknKS5oYXNDbGFzcygna3VudGF0ZWtuaWlra2EnKSkge1xuICAgICAgJCgnI3NpZGViYXIgLm1hZ2F6aW5lTGlzdGluZycpLmFwcGVuZCgnPGxpIGNsYXNzPVwibGVodGlhcmtpc3RvLWJ0blwiPjxhIGhyZWY9XCJodHRwOi8vcGVsYXN0dXN0aWV0by5maS9kaWdpbGVodGlcIiBjbGFzcz1cIm1haW5idG5cIj5MZWh0aWFya2lzdG88L2E+PC9saT4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgJCgnI3NpZGViYXIgLm1hZ2F6aW5lTGlzdGluZycpLmFwcGVuZCgnPGxpIGNsYXNzPVwibGVodGlhcmtpc3RvLWJ0blwiPjxhIGhyZWY9XCJodHRwOi8vcGVsYXN0dXN0aWV0by5maS9kaWdpbGVodGlcIiBjbGFzcz1cIm1haW5idG5cIj5MZWh0aWFya2lzdG88L2E+PC9saT4nKTtcbiAgICB9XG4gIH1cbiAgXG4gIC8vVGFiaS1uYXZpbiBtb2JpaWxpdmVyc2lvbiBjbGljayBoYW5kbGVyXG4gIGlmICgkKCcudGFiLW5hdi1tb2JpbGUtdG9nZ2xlJykubGVuZ3RoKSB7XG4gICAgJCgnLnRhYi1uYXYtbW9iaWxlLXRvZ2dsZScpLmNsaWNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICQoJy50YWItbmF2JykudG9nZ2xlQ2xhc3MoJ3Nob3cnKTtcbiAgICAgICQo
2dGhpcykudG9nZ2xlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgIH0pO1xuICB9XG5cblxuICBpZiAoJCggd2luZG93ICkud2lkdGgoKSA8PSA5NjYpIHtcbiAgICB2YXIgc2NyZWVud2lkdGggPSAkKHdpbmRvdykud2lkdGgoKTtcbiAgICB2YXIgaGVpZ2h0aW1hZ2UgPSAoc2NyZWVud2lkdGggLzk0MCkgKiAyMzA7XG4gICAgJCgnLmtha3NpLWVsZW1lbnR0aWEgLm5vc3Rva3V2YSwgLmtvbG1lLWVsZW1lbnR0aWEgLm5vc3Rva3V2YScpLmNzcyhcImhlaWdodFwiLCBoZWlnaHRpbWFnZSk7XG4gICAgJCgnLnBhYW5vc3RvIC5zaXNhbHRvYm9rc2lfMV8zIC5ub3N0b2t1dmEnKS5jc3MoXCJoZWlnaHRcIiwgaGVpZ2h0aW1hZ2UpO1xuICB9XG5cbiAgJCh3aW5kb3cpLnJlc2l6ZShmdW5jdGlvbigpIHtcbiAgICBpZiAoJCggd2luZG93ICkud2lkdGgoKSA8PSA2NTApIHtcbiAgICAgIHZhciBzY3JlZW53aWR0aCA9ICQod2luZG93KS53aWR0aCgpO1xuICAgICAgdmFyIGhlaWdodGltYWdlID0gKHNjcmVlbndpZHRoIC85NDApICogMzAwO1xuICAgICAgJChcIi5rYWtzaS1lbGVtZW50dGlhIC5ub3N0b2t1dmEsIC5rb2xtZS1lbGVtZW50dGlhIC5ub3N0b2t1dmFcIikuY3NzKFwiaGVpZ2h0XCIsIGhlaWdodGltYWdlKTtcbiAgICAgICQoJy5wYWFub3N0byAuc2lzYWx0b2Jva3NpXzFfMyAubm9zdG9rdXZhJykuY3NzKFwiaGVpZ2h0XCIsIGhlaWdodGltYWdlKTtcbiAgICB9XG4gIH0pO1xuXG5cblxuICBjb25zdCB3aW5kb3dzaXplID0gJCh3aW5kb3cpLndpZHRoKCk7XG4gIGNvbnN0IG5hdiA9ICQoJyNwcmltYXJ5LW1lbnUnKTtcblxuICAkKCdidXR0b24ubWVudS10b2dnbGUnKS5jbGljayhmdW5jdGlvbihlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIFxuICAgIGNvbnN0IGJ1dHRvbnMgPSAkKCdidXR0b24ubWVudS10b2dnbGUnKTtcbiAgICBuYXYudG9nZ2xlQ2xhc3MoJ21vYmlsZS1oaWRkZW4nKTtcbiAgICBidXR0b25zLmVhY2goZnVuY3Rpb24oKXtcbiAgICAgICQodGhpcykudG9nZ2xlQ2xhc3MoJ2hpZGRlbicpO1xuICAgIH0pO1xuXG4gICAgaWYgKHdpbmRvd3NpemUgPCAxMjAwKSB7XG4gICAgICAkKCdib2R5JykudG9nZ2xlQ2xhc3MoJ2JvZHktbG9jaycpO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHdpbmRvd3NpemUgPD0gMTE5OSkge1xuICAgICQoJyNwcmltYXJ5LW1lbnUgPiBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYScpLmNsaWNrKCBmdW5jdGlvbihlKSB7XG5cbiAgICAgJCh0aGlzKS5uZXh0KCcuc3ViLW1lbnUnKS50b2dnbGVDbGFzcygnb3BlbicpO1xuICAgICAkKHRoaXMpLnRvZ2dsZUNsYXNzKCdmb2N1c2VkJyk7XG5cbiAgICAgaWYgKCEkKHRoaXMpLmhhc0NsYXNzKCdvcGVuJykpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAkKHRoaXMpLnRvZ2dsZUNsYXNzKCdmb2N1c2VkJyk7XG4gICAgY29uc3QgcGFyZW50ID0gJCh0aGlzKS5wYXJlbnQoKTtcbiAgICBjb25zdCBoZWlnaHQgPSBwYXJlbnQuZmluZCgnLnN1Yi1tZW51JykuaGVpZ2h0KCk7XG4gICAgICAvLyBwYXJlbnQubmV4dCgpLmNzcygnbWFyZ2luLXRvcCcsIChoZWlnaHQrMzIpKydweCcpO1xuICAgIH0pO1xuXG5cblxuXG4gICAgLy8gJCgnI3ByaW1hcnktbWVudSAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGEnKS5ibHVyKGZ1bmN0aW9uKCkge1xuICAgIC8vICAgJCh0aGlzKS50b2dnbGVDbGFzcygnZm9jdXNlZCcpO1xuICAgIC8vICAgY29uc3QgcGFyZW50ID0gJCh0aGlzKS5wYXJlbnQoKTtcbiAgICAvLyAgIHBhcmVudC5uZXh0KCkuY3NzKCdtYXJnaW4tdG9wJywgMCk7XG4gICAgLy8gfSk7XG4gIH1cblxuICBcblxufSApKCBqUXVlcnkgKTtcbiJdfQ==

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.