https://www.medishare.org/wp-content/themes/medishare-theme/dist/js/scripts-bundle.js?ver=1768577435
1function changeBg(){$(".switchmob").each((function(){var e=$(this).data("mob"),t=$(window).width();if(""!=e)if(t<650)$(this).css("background-image","url("+e+")");else{var n=$(this).data("main");$(this).css("background-image","url("+n+")")}}))}!function(e){function t(e){e=e.replace(/[*+?^$.\[\]{}()|\\\/]/g,"\\$&");var t=location.search.match(new RegExp("[?&]"+e+"=([^&]+)(&|$)"));return t&&decodeURIComponent(t[1].replace(/\+/g," "))}e(document).ready((function(){var n=e("html"),o=e("body"),a=e(window),i=window.navigator.userAgent,s=i.indexOf("MSIE "),r=i.indexOf("Trident/"),l=e("#wpadminbar");(s>-1||r>-1)&&(!0,n.addClass("ms_ie")),i.indexOf("Edge")>-1&&(!0,n.addClass("ms_edge")),changeBg(),e(window).resize((function(){changeBg()})),window.addEventListener("touchstart",(function e(){!0,n.addClass("touch-enabled"),window.removeEventListener("touchstart",e)}),!1);var d=navigator.userAgent.toLowerCase(),g=d.match(/(iphone|ipod|ipad|android|iemobile)/);console.log(d),d.match(/(iphone|ipod)/)&&n.addClass("iphone"),d.match(/(ipad)/)&&n.addClass("ipad"),d.match(/(iphone|ipod|ipad)/)&&n.addClass("ios"),d.match(/(android)/)&&n.addClass("android"),navigator.vendor&&navigator.vendor.indexOf("Apple")>-1&&navigator.userAgent&&n.addClass("safari"),o.admin_bar_fix(),e("li.has-sub-menu").dropdownMenu({isMobile:g});var p=0;l.length>0&&(p+=l.outerHeight()),a.scrollTop()>50?n.removeClass("attop"):n.addClass("attop"),a.on("scroll",(function(){a.scrollTop()>50?n.removeClass("attop"):n.addClass("attop")})),e('a[href^="#"]').on("click",(function(t){var n=e(this).attr("href");n.length&&"#"!==n&&(t.preventDefault(),e("html, body").stop().animate({scrollTop:e(n).offset().top-p},500))})),e("#video-pop").each((function(){var t=e(this).find("iframe"),n=t.attr("src"),o=t.attr("data-lazy-src");void 0!==o&&!1!==o&&""!=o?e(this).attr("data-frame",o):e(this).attr("data-frame",n),t.remove()})),e(".trigpop").on("click",(function(t){t.preventDefault();var n=e("#video-pop").attr("data-frame");e("#video-pop").fadeIn(),e("#video-pop").find(".resp-iframe").append('<iframe src="'+n+'" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>')})),e(".popclose").on("click",(function(t){t.preventDefault(),e("#video-pop").fadeOut(),e("#video-pop").find("iframe").remove()}));var u=t("utm_source"),c=t("utm_medium"),m=t("utm_campaign"),h=t("gclid"),f=t("msclkid");"string"==typeof u&&u.length>0&&e(".gf_utm_source input").val(u),"string"==typeof c&&c.length>0&&e(".gf_utm_medium input").val(c),"string"==typeof m&&m.length>0&&e(".gf_utm_campaign input").val(m),"string"==typeof h&&h.length>0&&e(".gf_gclid input").val(h),"string"==typeof f&&f.length>0&&e(".gf_msclkid input").val(f)})),e.fn.dropdownMenu=function(t){var n=e.extend({submenu:"ul.sub-menu",trigger:"> a > svg",isMobile:!1,mobileBP:768},t),o=e(window).width();return e(window).resize((function(){e(window).width()})),this.each((function(){var t=e(this);t.theTrigger=t.find(n.trigger),t.submenuList=t.find(n.submenu),n.isMobile&&t.find("a").off("mouseenter mouseleave"),t.on("click touchend",(function(a){"closed"===t.attr("data-toggle-dropdown")?(("touchend"===a.type||o<n.mobileBP)&&a.preventDefault(),t.attr("data-toggle-dropdown","opened"),t.siblings().attr("data-toggle-dropdown","closed").find(n.submenu).removeClass("show"),t.submenuList.toggleClass("show")):(e(a.target).is("svg")||e(a.target).is("i"))&&(a.preventDefault(),t.attr("data-toggle-dropdown","closed"),t.submenuList.removeClass("show"))})),t.on("mouseenter mouseleave",(function(){o>=n.mobileBP&&(t.submenuList.removeClass("show"),t.attr("data-toggle-dropdown","closed"),t.siblings().attr("data-toggle-dropdown","closed").find(n.submenu).removeClass("show"))}))}))},e.fn.admin_bar_fix=function(){var t=e("#wpadminbar");return this.each((function(){var n=this;n.$el=e(this);e(window).on("resize orientationchange load",(function(){e("body").hasClass("admin-bar")&&(e("html").addClass("m-0"),n.$el.css("padding-top",t.outerHeight()))}))}))},e.fn.equalHeight=function(t){var n=e.extend({element:".eqh-element",setMinHeight:!1,minHeight:"100%"},t),o=e(window),a=this;a.el=e(this),a.equalEls=e(n.element);o.on("resize orientationchange load",(function(){n.setMinHeight&&a.equalEls.css({"min-height":"auto"}),a.el.css({height:"auto"}),a.elementHeights=a.equalEls.map((function(){return e(this).height()})).get(),a.maxHeight=Math.max.apply(null,a.elementHeights),a.el.height(a.maxHeight),n.setMinHeight&&a.equalEls.css({"min-height":n.minHeight}),a.el.addClass("eq-heights-active")}))},e.fn.googleMap=function(t){var n=e.extend({mobileBP:768,mapTypeId:"roadmap",mapTypeControl:!1,scrollwheel:!1,draggable:!0,gestureHandling:"cooperative",zoom:13,hue:"#1ca4d6",styles:null},t);return this.each((function(){var t=e(this),o=new google.maps.LatLngBounds,a={mapTypeId:n.mapTypeId,mapTypeControl:n.mapTypeControl,draggable:n.draggable,scrollwheel:n.scrollwheel,gestureHandling:n.gestureHandling},i=n.styles,s=[{stylers:[{hue:t.data("hue")?t.data("hue"):n.hue}]},{featureType:"road",elementTyp:"labels",stylers:[{visibility:"off"}]},{featureType:"road",elementType:"geometry",stylers:[{lightness:100},{visibility:"simplified"}]}],r={url:t.data("pin"),size:new google.maps.Size(40,64),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(22,40)},l=new google.maps.InfoWindow({});null!==i&&"object"==typeof i||(i=s);var d=new google.maps.StyledMapType(i,{name:"Styled Map"}),g=[],p=t.data("coordinates"),u=new google.maps.Map(this,a);u.mapTypes.set("map_style",d),u.setMapTypeId("map_style"),e(p).each((function(){if(this.lat&&this.lng){var e=this.name?this.name:"",t=this.info_window?this.info_window:null;g.push([this.lat,this.lng,e,t])}}));for(var c=0;c<g.length;c++){var m=new google.maps.LatLng(g[c][0],g[c][1]);o.extend(m),new google.maps.Marker({position:m,map:u,icon:r,title:void 0!==g[c][2]?g[c][2]:"",contentString:null!==g[c][3]?'<div id="info-window">'+g[c][3]+"</div>":null}).addListener("click",(function(){null!==this.contentString&&(l.setContent(this.contentString),l.open(u,this))}))}e(window).on("load resize orientationchange",(function(){!function(){u.fitBounds(o);var e=google.maps.event.addListener(u,"bounds_changed",(function(t){this.setZoom(n.zoom),google.maps.event.removeListener(e)}))}()}))}))},e(".slider-block").slick({arrows:!1,dots:!0}),e(".rm-slider-block").slick({arrows:!0,dots:!0,autoplay:!0,prevArrow:'<button type="button" class="slick-prev" title="previous"><span></span></button>',nextArrow:'<button type="button" class="slick-next" title="next"><span></span></button>',responsive:[{breakpoint:1100,settings:{arrows:!1}
1}]})}(jQuery); 2//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdHMuanMiXSwibmFtZXMiOlsiY2hhbmdlQmciLCIkIiwiZWFjaCIsImhhc21vYiIsInRoaXMiLCJkYXRhIiwid2luZHciLCJ3aW5kb3ciLCJ3aWR0aCIsImNzcyIsIm1haW4iLCJxcyIsImtleSIsInJlcGxhY2UiLCJtYXRjaCIsImxvY2F0aW9uIiwic2VhcmNoIiwiUmVnRXhwIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZG9jdW1lbnQiLCJyZWFkeSIsIiRodG1sIiwiJGJvZHkiLCIkd2luZG93IiwidWEiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJvbGRfaWUiLCJpbmRleE9mIiwibmV3X2llIiwiJGFkbWluX2JhciIsImFkZENsYXNzIiwicmVzaXplIiwiYWRkRXZlbnRMaXN0ZW5lciIsInNldEhhc1RvdWNoIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImRldmljZUFnZW50IiwidG9Mb3dlckNhc2UiLCJpc01vYmlsZSIsImNvbnNvbGUiLCJsb2ciLCJ2ZW5kb3IiLCJhZG1pbl9iYXJfZml4IiwiZHJvcGRvd25NZW51IiwiaGVhZGVyX29mZnNldCIsImxlbmd0aCIsIm91dGVySGVpZ2h0Iiwic2Nyb2xsVG9wIiwicmVtb3ZlQ2xhc3MiLCJvbiIsImV2ZW50IiwidGFyZ2V0IiwiYXR0ciIsInByZXZlbnREZWZhdWx0Iiwic3RvcCIsImFuaW1hdGUiLCJvZmZzZXQiLCJ0b3AiLCJmcmFtZSIsImZpbmQiLCJmcnNyYyIsImxhenlzcmMiLCJyZW1vdmUiLCJmYWRlSW4iLCJhcHBlbmQiLCJmYWRlT3V0IiwiZ2ZfdXRtX3NvdXJjZSIsImdmX3V0bV9tZWRpdW0iLCJnZl91dG1fY2FtcGFpZ24iLCJnZl9nY2xpZCIsImdmX21zY2xraWQiLCJ2YWwiLCJmbiIsIm9wdGlvbnMiLCJzZXR0aW5ncyIsImV4dGVuZCIsInN1Ym1lbnUiLCJ0cmlnZ2VyIiwibW9iaWxlQlAiLCJ3aW5kb3dzaXplIiwiJGVsIiwidGhlVHJpZ2dlciIsInN1Ym1lbnVMaXN0Iiwib2ZmIiwiZSIsInR5cGUiLCJzaWJsaW5ncyIsInRvZ2dsZUNsYXNzIiwiaXMiLCJhZG1pbl9iYXIiLCJiYXNlIiwiaGFzQ2xhc3MiLCJlcXVhbEhlaWdodCIsImVsZW1lbnQiLCJzZXRNaW5IZWlnaHQiLCJtaW5IZWlnaHQiLCJlbCIsImVxdWFsRWxzIiwiaGVpZ2h0IiwiZWxlbWVudEhlaWdodHMiLCJtYXAiLCJnZXQiLCJtYXhIZWlnaHQiLCJNYXRoIiwibWF4IiwiYXBwbHkiLCJnb29nbGVNYXAiLCJtYXBUeXBlSWQiLCJtYXBUeXBlQ29udHJvbCIsInNjcm9sbHdoZWVsIiwiZHJhZ2dhYmxlIiwiZ2VzdHVyZUhhbmRsaW5nIiwiem9vbSIsImh1ZSIsInN0eWxlcyIsIiRiYXNlIiwiYm91bmRzIiwiZ29vZ2xlIiwibWFwcyIsIkxhdExuZ0JvdW5kcyIsIm1hcE9wdGlvbnMiLCJkZWZhdWx0X3N0eWxlcyIsInN0eWxlcnMiLCJmZWF0dXJlVHlwZSIsImVsZW1lbnRUeXAiLCJ2aXNpYmlsaXR5IiwiZWxlbWVudFR5cGUiLCJsaWdodG5lc3MiLCJpbWFnZSIsInVybCIsInNpemUiLCJTaXplIiwib3JpZ2luIiwiUG9pbnQiLCJhbmNob3IiLCJpbmZvd2luZG93IiwiSW5mb1dpbmRvdyIsInN0eWxlZE1hcCIsIlN0eWxlZE1hcFR5cGUiLCJuYW1lIiwibWFya2VycyIsInByb3BlcnR5RGF0YSIsIk1hcCIsIm1hcFR5cGVzIiwic2V0Iiwic2V0TWFwVHlwZUlkIiwibGF0IiwibG5nIiwibWFya2VyX25hbWUiLCJpbmZvX3dpbmRvdyIsInB1c2giLCJpIiwicG9zaXRpb24iLCJMYXRMbmciLCJNYXJrZXIiLCJpY29uIiwidGl0bGUiLCJ1bmRlZmluZWQiLCJjb250ZW50U3RyaW5nIiwiYWRkTGlzdGVuZXIiLCJzZXRDb250ZW50Iiwib3BlbiIsImZpdEJvdW5kcyIsImJvdW5kc0xpc3RlbmVyIiwic2V0Wm9vbSIsInJlbW92ZUxpc3RlbmVyIiwiZ2VuZXJhdGVNYXAiLCJzbGljayIsImFycm93cyIsImRvdHMiLCJhdXRvcGxheSIsInByZXZBcnJvdyIsIm5leHRBcnJvdyIsInJlc3BvbnNpdmUiLCJicmVha3BvaW50IiwialF1ZXJ5Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFBQSxXQUNBQyxFQUFBLGNBQUFDLE1BQUEsV0FDQSxJQUFBQyxFQUFBRixFQUFBRyxNQUFBQyxLQUFBLE9BQ0FDLEVBQUFMLEVBQUFNLFFBQUFDLFFBQ0EsR0FBQSxJQUFBTCxFQUNBLEdBQUFHLEVBQUEsSUFDQUwsRUFBQUcsTUFBQUssSUFBQSxtQkFBQSxPQUFBTixFQUFBLFNBQ0EsQ0FDQSxJQUFBTyxFQUFBVCxFQUFBRyxNQUFBQyxLQUFBLFFBQ0FKLEVBQUFHLE1BQUFLLElBQUEsbUJBQUEsT0FBQUMsRUFBQSxVQU1BLFNBQUFULEdBaUtBLFNBQUFVLEVBQUFDLEdBQ0FBLEVBQUFBLEVBQUFDLFFBQUEseUJBQUEsUUFDQSxJQUFBQyxFQUFBQyxTQUFBQyxPQUFBRixNQUFBLElBQUFHLE9BQUEsT0FBQUwsRUFBQSxrQkFDQSxPQUFBRSxHQUFBSSxtQkFBQUosRUFBQSxHQUFBRCxRQUFBLE1BQUEsTUE1SkFaLEVBQUFrQixVQUFBQyxPQUFBLFdBRUEsSUFBQUMsRUFBQXBCLEVBQUEsUUFDQXFCLEVBQUFyQixFQUFBLFFBQ0FzQixFQUFBdEIsRUFBQU0sUUFFQWlCLEVBQUFqQixPQUFBa0IsVUFBQUMsVUFDQUMsRUFBQUgsRUFBQUksUUFBQSxTQUNBQyxFQUFBTCxFQUFBSSxRQUFBLFlBT0FFLEVBQUE3QixFQUFBLGdCQUdBMEIsR0FBQSxHQUFBRSxHQU
2FBLE1BQ0EsRUFDQVIsRUFBQVUsU0FBQSxVQUdBUCxFQUFBSSxRQUFBLFNBQUEsS0FDQSxFQUNBUCxFQUFBVSxTQUFBLFlBR0EvQixXQUVBQyxFQUFBTSxRQUFBeUIsUUFBQSxXQUNBaEMsY0FJQU8sT0FBQTBCLGlCQUFBLGNBQUEsU0FBQUMsS0FDQSxFQUNBYixFQUFBVSxTQUFBLGlCQUdBeEIsT0FBQTRCLG9CQUFBLGFBQUFELE1BQ0EsR0FFQSxJQUFBRSxFQUFBWCxVQUFBQyxVQUFBVyxjQUNBQyxFQUFBRixFQUFBdEIsTUFBQSx1Q0FDQXlCLFFBQUFDLElBQUFKLEdBQ0FBLEVBQUF0QixNQUFBLGtCQUNBTyxFQUFBVSxTQUFBLFVBR0FLLEVBQUF0QixNQUFBLFdBQ0FPLEVBQUFVLFNBQUEsUUFHQUssRUFBQXRCLE1BQUEsdUJBQ0FPLEVBQUFVLFNBQUEsT0FHQUssRUFBQXRCLE1BQUEsY0FDQU8sRUFBQVUsU0FBQSxXQUlBTixVQUFBZ0IsUUFBQWhCLFVBQUFnQixPQUFBYixRQUFBLFVBQUEsR0FDQUgsVUFBQUMsV0FDQUwsRUFBQVUsU0FBQSxVQUtBVCxFQUFBb0IsZ0JBR0F6QyxFQUFBLG1CQUNBMEMsYUFBQSxDQUNBTCxTQUFBQSxJQUtBLElBQUFNLEVBQUEsRUFFQWQsRUFBQWUsT0FBQSxJQUNBRCxHQUFBZCxFQUFBZ0IsZUFHQXZCLEVBQUF3QixZQUFBLEdBQ0ExQixFQUFBMkIsWUFBQSxTQUVBM0IsRUFBQVUsU0FBQSxTQUVBUixFQUFBMEIsR0FBQSxVQUFBLFdBQ0ExQixFQUFBd0IsWUFBQSxHQUNBMUIsRUFBQTJCLFlBQUEsU0FFQTNCLEVBQUFVLFNBQUEsWUFVQTlCLEVBQUEsZ0JBQUFnRCxHQUFBLFNBQUEsU0FBQUMsR0FDQSxJQUFBQyxFQUFBbEQsRUFBQUcsTUFBQWdELEtBQUEsUUFDQUQsRUFBQU4sUUFBQSxNQUFBTSxJQUNBRCxFQUFBRyxpQkFDQXBELEVBQUEsY0FBQXFELE9BQUFDLFFBQUEsQ0FDQVIsVUFBQTlDLEVBQUFrRCxHQUFBSyxTQUFBQyxJQUFBYixHQUNBLFNBS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FQUFBTSxRQUFBMEMsR0FBQSxpQ0FBQSxZQVBBLFdBQ0FtRCxFQUFBOEQsVUFBQTlDLEdBQ0EsSUFBQStDLEVBQUE5QyxPQUFBQyxLQUFBcEUsTUFBQTZHLFlBQUEsRUFBQSxrQkFBQSxTQUFBN0csR0FDQTlDLEtBQUFnSyxRQUFBMUYsRUFBQXNDLE1BQ0FLLE9BQUFDLEtBQUFwRSxNQUFBbUgsZUFBQUYsTUFJQUcsVUFNQXJLLEVBQUEsaUJBQUFzSyxNQUFBLENBQ0FDLFFBQUEsRUFDQUMsTUFBQSxJQUlBeEssRUFBQSxvQkFBQXNLLE1BQUEsQ0FDQUMsUUFBQSxFQUNBQyxNQUFBLEVBQ0FDLFVBQUEsRUFDQUMsVUFBQSxtRkFDQUMsVUFBQSwrRUFDQUMsV0FBQSxDQUNBLENBQ0FDLFdBQUEsS0FDQXBHLFNBQUEsQ0FDQThGLFFBQUEsT0EzYUEsQ0FpYkFPIiwiZmlsZSI6InNjcmlwdHMtYnVuZGxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gY2hhbmdlQmcoKSB7XG5cdFx0JCgnLnN3aXRjaG1vYicpLmVhY2goZnVuY3Rpb24oKXtcblx0XHRcdHZhciBoYXNtb2IgPSAkKHRoaXMpLmRhdGEoJ21vYicpO1x0XHRcdFxuXHRcdFx0dmFyIHdpbmR3ID0gJCh3aW5kb3cpLndpZHRoKCk7XG5cdFx0XHRpZihoYXNtb2IgIT0gJycpe1xuXHRcdFx0XHRpZih3aW5kdyA8IDY1MCl7XG5cdFx0XHRcdFx0JCh0aGlzKS5jc3MoJ2JhY2tncm91bmQtaW1hZ2UnLCd1cmwoJysgaGFzbW9iICsnKScpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHZhciBtYWluPSAkKHRoaXMpLmRhdGEoJ21haW4nKTtcdFxuXHRcdFx0XHRcdCQodGhpcykuY3NzKCdiYWNrZ3JvdW5kLWltYWdlJywndXJsKCcrIG1haW4gKycpJyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG4oZnVuY3Rpb24gKCQpIHtcblxuICAgIC8qKlxuICAgICAqIEFsdGVyIHdpbmRvdy5pbml0TWFwIGJlbG93IHRvIGFkZCBpbiBHb29nbGVNYXAgd2l0aCBhc3luYyBkZWZlci5cbiAgICAgKi9cbiAgICAvLyB3aW5kb3cuaW5pdE1hcCA9IGZ1bmN0aW9uKCl7XG4gICAgLy8gICAgICAgICAkKCcjbG9jYXRpb25zLW1hcCcpLmdvb2dsZU1hcCgpO1xuICAgIC8vIH07XG4gICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuXG4gICAgICAgIHZhciAkaHRtbCA9ICQoJ2h0bWwnKSxcbiAgICAgICAgICAgICRib2R5ID0gJCgnYm9keScpLFxuICAgICAgICAgICAgJHdpbmRvdyA9ICQod2luZG93KSxcbiAgICAgICAgICAgIG1zX2llID0gZmFsc2UsXG4gICAgICAgICAgICB1YSA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LFxuICAgICAgICAgICAgb2xkX2llID0gdWEuaW5kZXhPZignTVNJRSAnKSxcbiAgICAgICAgICAgIG5ld19pZSA9IHVhLmluZGV4T2YoJ1RyaWRlbnQvJyksXG4gICAgICAgICAgICBpc01vYmlsZSA9IGZhbHNlLFxuICAgICAgICAgICAgbXNfZWRnZSA9IGZhbHNlLFxuICAgICAgICAgICAgaXNpUGhvbmUgPSBmYWxzZSxcbiAgICAgICAgICAgIGlzaVBhZCA9IGZhbHNlLFxuICAgICAgICAgICAgaXNJT1MgPSBmYWxzZSxcbiAgICAgICAgICAgIGlzQW5kcm9pZCA9IGZhbHNlLFxuICAgICAgICAgICAgJGFkbWluX2JhciA9ICQoJyN3cGFkbWluYmFyJyksXG4gICAgICAgICAgICBpc1NhZmFyaSA9IGZhbHNlLFxuICAgICAgICAgICAgaGFzVG91Y2ggPSBmYWxzZTtcbiAgICAgICAgaWYgKChvbGRfaWUgPiAtMSkgfHwgKG5ld19pZSA+IC0xKSkge1xuICAgICAgICAgICAgbXNfaWUgPSB0cnVlO1xuICAgICAgICAgICAgJGh0bWwuYWRkQ2xhc3MoJ21zX2llJyk7XG4gICAgICAgI
2H1cblxuICAgICAgICBpZiAodWEuaW5kZXhPZihcIkVkZ2VcIikgPiAtMSkge1xuICAgICAgICAgICAgbXNfZWRnZSA9IHRydWU7XG4gICAgICAgICAgICAkaHRtbC5hZGRDbGFzcygnbXNfZWRnZScpO1xuICAgICAgICB9XG5cdFx0XG5cdFx0Y2hhbmdlQmcoKTtcblx0XHRcblx0XHQkKHdpbmRvdykucmVzaXplKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNoYW5nZUJnKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIE9ubHkgYWRkcyB0aGUgY2xhc3MgYWZ0ZXIgdG91Y2ggZXZlbnQgaGFzIGJlZW4gZmlyZWQgc28gbm90IDEwMCUgcmVsaWFibGUgZm9yIGluaXRpYWwgbGF5b3V0c1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGZ1bmN0aW9uIHNldEhhc1RvdWNoKCkge1xuICAgICAgICAgICAgaGFzVG91Y2ggPSB0cnVlO1xuICAgICAgICAgICAgJGh0bWwuYWRkQ2xhc3MoJ3RvdWNoLWVuYWJsZWQnKTtcbiAgICAgICAgICAgIC8vIFJlbW92ZSBldmVudCBsaXN0ZW5lciBvbmNlIGZpcmVkLCBvdGhlcndpc2UgaXQnbGwga2lsbCBzY3JvbGxpbmdcbiAgICAgICAgICAgIC8vIHBlcmZvcm1hbmNlXG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHNldEhhc1RvdWNoKTtcbiAgICAgICAgfSwgZmFsc2UpO1xuXG4gICAgICAgIHZhciBkZXZpY2VBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgIGlzTW9iaWxlID0gZGV2aWNlQWdlbnQubWF0Y2goLyhpcGhvbmV8aXBvZHxpcGFkfGFuZHJvaWR8aWVtb2JpbGUpLyk7XG4gICAgICAgIGNvbnNvbGUubG9nKGRldmljZUFnZW50KTtcbiAgICAgICAgaWYgKGRldmljZUFnZW50Lm1hdGNoKC8oaXBob25lfGlwb2QpLykpIHtcbiAgICAgICAgICAgICRodG1sLmFkZENsYXNzKCdpcGhvbmUnKTtcbiAgICAgICAgICAgIGlzaVBob25lID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGV2aWNlQWdlbnQubWF0Y2goLyhpcGFkKS8pKSB7XG4gICAgICAgICAgICAkaHRtbC5hZGRDbGFzcygnaXBhZCcpO1xuICAgICAgICAgICAgaXNpUGFkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGV2aWNlQWdlbnQubWF0Y2goLyhpcGhvbmV8aXBvZHxpcGFkKS8pKSB7XG4gICAgICAgICAgICAkaHRtbC5hZGRDbGFzcygnaW9zJyk7XG4gICAgICAgICAgICBpc0lPUyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRldmljZUFnZW50Lm1hdGNoKC8oYW5kcm9pZCkvKSkge1xuICAgICAgICAgICAgJGh0bWwuYWRkQ2xhc3MoJ2FuZHJvaWQnKTtcbiAgICAgICAgICAgIGlzQW5kcm9pZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmF2aWdhdG9yLnZlbmRvciAmJiBuYXZpZ2F0b3IudmVuZG9yLmluZGV4T2YoJ0FwcGxlJykgPiAtMSAmJlxuICAgICAgICAgICAgbmF2aWdhdG9yLnVzZXJBZ2VudCkge1xuICAgICAgICAgICAgJGh0bWwuYWRkQ2xhc3MoJ3NhZmFyaScpO1xuICAgICAgICAgICAgaXNTYWZhcmkgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTW9kaWZ5IHRoZSBmb2xsb3dpbmcgbGluZSB0byBzcGVjaWZ5IHRoZSBlbGVtZW50IHRoYXQgc2hvdWxkIGhhdmUgdGhlIHdvcmRwcmVzcyBhZG1pbmJhciBzaXplIGFkanVzdGVkIG9uXG4gICAgICAgICRib2R5LmFkbWluX2Jhcl9maXgoKTtcblxuICAgICAgICAvLyBhZGQgZHJvcGRvd24gbWVudSBzdXBwb3J0XG4gICAgICAgIHZhciBzdWJNZW51cyA9ICQoJ2xpLmhhcy1zdWItbWVudScpO1xuICAgICAgICBzdWJNZW51cy5kcm9wZG93bk1lbnUoe1xuICAgICAgICAgICAgaXNNb2JpbGU6IGlzTW9iaWxlXG4gICAgICAgIH0pO1xuXG5cbiAgICAgICAgLy8gVGhpcyBjb2RlIGFkZHMgdGhlIGZpeGVkIGNsYXNzIHRvIGhlYWRlciB3aGVuIG5vdCBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW5cbiAgICAgICAgdmFyIGhlYWRlcl9vZmZzZXQgPSAwO1xuXG4gICAgICAgIGlmICgkYWRtaW5fYmFyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGhlYWRlcl9vZmZzZXQgPSBoZWFkZXJfb2Zmc2V0ICsgJGFkbWluX2Jhci5vdXRlckhlaWdodCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCR3aW5kb3cuc2Nyb2xsVG9wKCkgPiA1MCkge1xuICAgICAgICAgICAgJGh0bWwucmVtb3ZlQ2xhc3MoJ2F0dG9wJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkaHRtbC5hZGRDbGFzcygnYXR0b3AnKTtcbiAgICAgICAgfVxuICAgICAgICAkd2luZG93Lm9uKCdzY3JvbGwnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoJHdpbmRvdy5zY3JvbGxUb3AoKSA+IDUwKSB7XG4gICAgICAgICAgICAgICAgJGh0bWwucmVtb3ZlQ2xhc3MoJ2F0dG9wJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICRodG1sLmFkZENsYXNzKCdhdHRvcCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogQWRkcyB0aGUgYWJpbGl0eSB0byBhdXRvbWF0aWNhbGx5IHNjcm9sbCB0byB0aGUgaGFzaGVkIGxpbmsgaWYgdGhlIGxpbmsgaXNuJ3QgZW1wdHlcbiAgICAgICAgICogIC1oZWFkZXJfb2Zmc2V0IGFsbG93cyB5b3UgdG8gYWRqdXN0IHRoZSBzY3JvbGwgbG9jYXRpb24gYmFzZWQgb24gYSBmaXhlZCBzaXplIGlmIHVzaW5nXG4gICAgICAgICAqICAgICAgYSBmaXhlZCBoZWFkZXIuXG4gICAgICAgICAqL1xuXG4gICAgICAgICQoJ2FbaHJlZl49XCIjXCJdJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICB2Y
2XIgdGFyZ2V0ID0gJCh0aGlzKS5hdHRyKCdocmVmJyk7XG4gICAgICAgICAgICBpZiAodGFyZ2V0Lmxlbmd0aCAmJiB0YXJnZXQgIT09ICcjJykge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgJCgnaHRtbCwgYm9keScpLnN0b3AoKS5hbmltYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wOiAkKHRhcmdldCkub2Zmc2V0KCkudG9wIC0gaGVhZGVyX29mZnNldFxuICAgICAgICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXHRcdFxuXHRcdCQoJyN2aWRlby1wb3AnKS5lYWNoKGZ1bmN0aW9uKCl7XG5cdFx0XHR2YXIgZnJhbWUgPSAkKHRoaXMpLmZpbmQoJ2lmcmFtZScpO1xuXHRcdFx0dmFyIGZyc3JjID0gZnJhbWUuYXR0cignc3JjJyk7XG5cdFx0XHR2YXIgbGF6eXNyYyA9IGZyYW1lLmF0dHIoJ2RhdGEtbGF6eS1zcmMnKTtcblx0XHRcdFx0aWYodHlwZW9mIGxhenlzcmMgIT09IHR5cGVvZiB1bmRlZmluZWQgJiYgbGF6eXNyYyAhPT0gZmFsc2UgJiYgbGF6eXNyYyAhPSAnJyl7XG5cdFx0XHRcdFx0JCh0aGlzKS5hdHRyKCdkYXRhLWZyYW1lJyxsYXp5c3JjKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkKHRoaXMpLmF0dHIoJ2RhdGEtZnJhbWUnLGZyc3JjKTtcblx0XHRcdFx0fVx0XHRcdFxuXHRcdFx0ZnJhbWUucmVtb3ZlKCk7XHRcdFx0XG5cdFx0fSk7XG5cdFx0XG5cdFx0JCgnLnRyaWdwb3AnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHR2YXIgZnJzcmMgPSAkKCcjdmlkZW8tcG9wJykuYXR0cignZGF0YS1mcmFtZScpO1xuXHRcdFx0JCgnI3ZpZGVvLXBvcCcpLmZhZGVJbigpO1xuXHRcdFx0JCgnI3ZpZGVvLXBvcCcpLmZpbmQoJy5yZXNwLWlmcmFtZScpLmFwcGVuZCgnPGlmcmFtZSBzcmM9XCInK2Zyc3JjKydcIiBmcmFtZWJvcmRlcj1cIjBcIiBhbGxvdz1cImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlXCIgYWxsb3dmdWxsc2NyZWVuPVwiXCI+PC9pZnJhbWU+Jyk7ICAgICAgICAgICAgXG4gICAgICAgIH0pO1xuXHRcdFxuXHRcdCQoJy5wb3BjbG9zZScpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICQoJyN2aWRlby1wb3AnKS5mYWRlT3V0KCk7XG5cdFx0XHQkKCcjdmlkZW8tcG9wJykuZmluZCgnaWZyYW1lJykucmVtb3ZlKCk7XG4gICAgICAgIH0pO1xuXG5cdFx0dmFyIGdmX3V0bV9zb3VyY2UgPSBxcygndXRtX3NvdXJjZScpLFxuICAgICAgICAgICAgZ2ZfdXRtX21lZGl1bSA9IHFzKCd1dG1fbWVkaXVtJyksXG4gICAgICAgICAgICBnZl91dG1fY2FtcGFpZ24gPSBxcygndXRtX2NhbXBhaWduJyksXG4gICAgICAgICAgICBnZl9nY2xpZCA9IHFzKCdnY2xpZCcpLFxuICAgICAgICAgICAgZ2ZfbXNjbGtpZCA9IHFzKCdtc2Nsa2lkJyk7XG5cblx0XHRpZiAodHlwZW9mIGdmX3V0bV9zb3VyY2UgPT09ICdzdHJpbmcnICYmIGdmX3V0bV9zb3VyY2UubGVuZ3RoID4gMCkgJCgnLmdmX3V0bV9zb3VyY2UgaW5wdXQnKS52YWwoZ2ZfdXRtX3NvdXJjZSk7XG4gICAgICAgIGlmICh0eXBlb2YgZ2ZfdXRtX21lZGl1bSA9PT0gJ3N0cmluZycgJiYgZ2ZfdXRtX21lZGl1bS5sZW5ndGggPiAwKSAkKCcuZ2ZfdXRtX21lZGl1bSBpbnB1dCcpLnZhbChnZl91dG1fbWVkaXVtKTtcbiAgICAgICAgaWYgKHR5cGVvZiBnZl91dG1fY2FtcGFpZ24gPT09ICdzdHJpbmcnICYmIGdmX3V0bV9jYW1wYWlnbi5sZW5ndGggPiAwKSAkKCcuZ2ZfdXRtX2NhbXBhaWduIGlucHV0JykudmFsKGdmX3V0bV9jYW1wYWlnbik7XG4gICAgICAgIGlmICh0eXBlb2YgZ2ZfZ2NsaWQgPT09ICdzdHJpbmcnICYmIGdmX2djbGlkLmxlbmd0aCA+IDApICQoJy5nZl9nY2xpZCBpbnB1dCcpLnZhbChnZl9nY2xpZCk7XG4gICAgICAgIGlmICh0eXBlb2YgZ2ZfbXNjbGtpZCA9PT0gJ3N0cmluZycgJiYgZ2ZfbXNjbGtpZC5sZW5ndGggPiAwKSAkKCcuZ2ZfbXNjbGtpZCBpbnB1dCcpLnZhbChnZl9tc2Nsa2lkKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIHFzKGtleSkge1xuICAgICAgICBrZXkgPSBrZXkucmVwbGFjZSgvWyorP14kLlxcW1xcXXt9KCl8XFxcXFxcL10vZywgXCJcXFxcJCZcIik7IC8vIGVzY2FwZSBSZWdFeCBjb250cm9sIGNoYXJzXG4gICAgICAgIHZhciBtYXRjaCA9IGxvY2F0aW9uLnNlYXJjaC5tYXRjaChuZXcgUmVnRXhwKFwiWz8mXVwiICsga2V5ICsgXCI9KFteJl0rKSgmfCQpXCIpKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoICYmIGRlY29kZVVSSUNvbXBvbmVudChtYXRjaFsxXS5yZXBsYWNlKC9cXCsvZywgXCIgXCIpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGFkZHMgZHJvcGRvd24gbWVudSBzdXBwb3J0IHdoZW4gdXNpbmcgdGhlIFBhdGhUaGVtZV9EZXNrdG9wX01lbnUgbmF2d2Fsa2VyXG4gICAgICogQ2FsbCB0aGlzIG9uIGFuIGVsZW1lbnQgd2l0aCB0aGUgY2xhc3MgXCJsaS5oYXMtc3ViLW1lbnVcIlxuICAgICAqIFRoZSBzdWJtZW51IG9wdGlvbiBkZWZpbmVzIHRoZSBkcm9wZG93biBtZW51XG4gICAgICogdGhlIHRyaWdnZXIgaXMgZm9yIHRoZSBtb2JpbGUgcm90YXRpbmcgYXJyb3dcbiAgICAgKiBpc21vYmlsZTogb3B0aW9uYWxseSBwYXNzIGluIHRoaXMgdmFyaWFibGUgdG8gYWx0ZXIgc2V0dGluZ3MgZm9yIG1vYmlsZSBkZXZpY2VzXG4gICAgICogbW9iaWxlQlA6IGRldGVybWluZXMgd2hlbiBtb2JpbGUgYnJvd3NlciBzaG93cy
25cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zXG4gICAgICovXG4gICAgJC5mbi5kcm9wZG93bk1lbnUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB2YXIgc2V0dGluZ3MgPSAkLmV4dGVuZCh7XG4gICAgICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIGRlZmF1bHRzLlxuICAgICAgICAgICAgc3VibWVudTogJ3VsLnN1Yi1tZW51JyxcbiAgICAgICAgICAgIHRyaWdnZXI6ICc+IGEgPiBzdmcnLFxuICAgICAgICAgICAgaXNNb2JpbGU6IGZhbHNlLFxuICAgICAgICAgICAgbW9iaWxlQlA6IDc2OFxuICAgICAgICB9LCBvcHRpb25zKTtcblxuICAgICAgICB2YXIgd2luZG93c2l6ZSA9ICQod2luZG93KS53aWR0aCgpO1xuICAgICAgICAkKHdpbmRvdykucmVzaXplKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciB3aW5kb3dzaXplID0gJCh3aW5kb3cpLndpZHRoKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyICRlbCA9ICQodGhpcyk7XG4gICAgICAgICAgICAkZWwudGhlVHJpZ2dlciA9ICRlbC5maW5kKHNldHRpbmdzLnRyaWdnZXIpO1xuICAgICAgICAgICAgJGVsLnN1Ym1lbnVMaXN0ID0gJGVsLmZpbmQoc2V0dGluZ3Muc3VibWVudSk7XG5cbiAgICAgICAgICAgIGlmIChzZXR0aW5ncy5pc01vYmlsZSkge1xuICAgICAgICAgICAgICAgICRlbC5maW5kKCdhJykub2ZmKCdtb3VzZWVudGVyIG1vdXNlbGVhdmUnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJGVsLm9uKCdjbGljayB0b3VjaGVuZCcsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKFwiY2xvc2VkXCIgPT09ICRlbC5hdHRyKFwiZGF0YS10b2dnbGUtZHJvcGRvd25cIikpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ3RvdWNoZW5kJyB8fCB3aW5kb3dzaXplIDwgc2V0dGluZ3MubW9iaWxlQlApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAkZWwuYXR0cignZGF0YS10b2dnbGUtZHJvcGRvd24nLCAnb3BlbmVkJyk7XG4gICAgICAgICAgICAgICAgICAgICRlbC5zaWJsaW5ncygpLmF0dHIoJ2RhdGEtdG9nZ2xlLWRyb3Bkb3duJywgJ2Nsb3NlZCcpLmZpbmQoc2V0dGluZ3Muc3VibWVudSkucmVtb3ZlQ2xhc3MoXCJzaG93XCIpO1xuICAgICAgICAgICAgICAgICAgICAkZWwuc3VibWVudUxpc3QudG9nZ2xlQ2xhc3MoXCJzaG93XCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkKGUudGFyZ2V0KS5pcygnc3ZnJykgfHwgJChlLnRhcmdldCkuaXMoJ2knKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsLmF0dHIoJ2RhdGEtdG9nZ2xlLWRyb3Bkb3duJywgJ2Nsb3NlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsLnN1Ym1lbnVMaXN0LnJlbW92ZUNsYXNzKFwic2hvd1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAkZWwub24oJ21vdXNlZW50ZXIgbW91c2VsZWF2ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAod2luZG93c2l6ZSA+PSBzZXR0aW5ncy5tb2JpbGVCUCkge1xuICAgICAgICAgICAgICAgICAgICAkZWwuc3VibWVudUxpc3QucmVtb3ZlQ2xhc3MoJ3Nob3cnKTtcbiAgICAgICAgICAgICAgICAgICAgJGVsLmF0dHIoJ2RhdGEtdG9nZ2xlLWRyb3Bkb3duJywgJ2Nsb3NlZCcpO1xuICAgICAgICAgICAgICAgICAgICAkZWwuc2libGluZ3MoKS5hdHRyKCdkYXRhLXRvZ2dsZS1kcm9wZG93bicsICdjbG9zZWQnKS5maW5kKHNldHRpbmdzLnN1Ym1lbnUpLnJlbW92ZUNsYXNzKFwic2hvd1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBhcHBseSB0aGUgd29yZHByZXNzIGFkbWluYmFyIHNpemUgdG8gdGhlIHR5cGUgb2YgdGhlIGJvZHkgd2hlbiBuZWNlc3NhcnkuXG4gICAgICovXG4gICAgJC5mbi5hZG1pbl9iYXJfZml4ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2Y
2XIgYWRtaW5fYmFyID0gJCgnI3dwYWRtaW5iYXInKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYmFzZSA9IHRoaXM7XG4gICAgICAgICAgICBiYXNlLiRlbCA9ICQodGhpcyk7XG4gICAgICAgICAgICB2YXIgdXBkYXRlQmFyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICgkKCdib2R5JykuaGFzQ2xhc3MoJ2FkbWluLWJhcicpKSB7XG4gICAgICAgICAgICAgICAgICAgICQoJ2h0bWwnKS5hZGRDbGFzcygnbS0wJyk7XG4gICAgICAgICAgICAgICAgICAgIGJhc2UuJGVsLmNzcygncGFkZGluZy10b3AnLCBhZG1pbl9iYXIub3V0ZXJIZWlnaHQoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICQod2luZG93KS5vbigncmVzaXplIG9yaWVudGF0aW9uY2hhbmdlIGxvYWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlQmFyKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIGpxdWVyeSBmdW5jdGlvbiB0byBtYWtlIHNpYmxpbmcgZWxlbWVudHMgb2YgdGhlIHNwZWNpZmllZCBwYXJlbnQgZXF1YWwgaGVpZ2h0XG4gICAgICogQHBhcmFtIG9wdGlvbnNcbiAgICAgKi9cbiAgICAkLmZuLmVxdWFsSGVpZ2h0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHNldHRpbmdzID0gJC5leHRlbmQoe1xuICAgICAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBkZWZhdWx0cy5cbiAgICAgICAgICAgIGVsZW1lbnQ6ICcuZXFoLWVsZW1lbnQnLFxuICAgICAgICAgICAgc2V0TWluSGVpZ2h0OiBmYWxzZSxcbiAgICAgICAgICAgIG1pbkhlaWdodDogJzEwMCUnXG4gICAgICAgIH0sIG9wdGlvbnMpO1xuICAgICAgICB2Y
2XIgJHdpbmRvdyA9ICQod2luZG93KTtcbiAgICAgICAgdmFyIGJhc2UgPSB0aGlzO1xuICAgICAgICBiYXNlLmVsID0gJCh0aGlzKTtcbiAgICAgICAgYmFzZS5lcXVhbEVscyA9ICQoc2V0dGluZ3MuZWxlbWVudCk7XG5cbiAgICAgICAgdmFyIG1vZEhlaWdodCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChzZXR0aW5ncy5zZXRNaW5IZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBiYXNlLmVxdWFsRWxzLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIFwibWluLWhlaWdodFwiOiBcImF1dG9cIlxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBiYXNlLmVsLmNzcyh7XG4gICAgICAgICAgICAgICAgXCJoZWlnaHRcIjogXCJhdXRvXCJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYmFzZS5lbGVtZW50SGVpZ2h0cyA9IGJhc2UuZXF1YWxFbHMubWFwKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJCh0aGlzKS5oZWlnaHQoKTtcbiAgICAgICAgICAgIH0pLmdldCgpO1xuICAgICAgICAgICAgYmFzZS5tYXhIZWlnaHQgPSBNYXRoLm1heC5hcHBseShudWxsLCBiYXNlLmVsZW1lbnRIZWlnaHRzKTtcbiAgICAgICAgICAgIGJhc2UuZWwuaGVpZ2h0KGJhc2UubWF4SGVpZ2h0KTtcbiAgICAgICAgICAgIGlmIChzZXR0aW5ncy5zZXRNaW5IZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBiYXNlLmVxdWFsRWxzLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIFwibWluLWhlaWdodFwiOiBzZXR0aW5ncy5taW5IZWlnaHRcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYmFzZS5lbC5hZGRDbGFzcyhcImVxLWhlaWdodHMtYWN0aXZlXCIpO1xuICAgICAgICB9O1xuICAgICAgICAkd2luZG93Lm9uKCdyZXNpemUgb3JpZW50YXRpb25jaGFuZ2UgbG9hZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIG1vZEhlaWdodCgpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG5cbiAgICAvKipcbiAgICAgKiBqUXVlcnkgZnVuY3Rpb24gdG8gZ2VuZXJhdGUgZ29vZ2xlIG1hcHMuXG4gICAgICogQHBhcmFtIG9wdGlvbnNcbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cbiAgICAkLmZuLmdvb2dsZU1hcCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHZhciBzZXR0aW5ncyA9ICQuZXh0ZW5kKHtcbiAgICAgICAgICAgIC8vIFRoZXNlIGFyZSB0aGUgZGVmYXVsdHMuXG4gICAgICAgICAgICBtb2JpbGVCUDogNzY4LFxuICAgICAgICAgICAgbWFwVHlwZUlkOiAncm9hZG1hcCcsXG4gICAgICAgICAgICBtYXBUeXBlQ29udHJvbDogZmFsc2UsXG4gICAgICAgICAgICBzY3JvbGx3aGVlbDogZmFsc2UsXG4gICAgICAgICAgICBkcmFnZ2FibGU6IHRydWUsXG4gICAgICAgICAgICBnZXN0dXJlSGFuZGxpbmc6ICdjb29wZXJhdGl2ZScsXG4gICAgICAgICAgICB6b29tOiAxMyxcbiAgICAgICAgICAgIGh1ZTogXCIjMWNhNGQ2XCIsXG4gICAgICAgICAgICBzdHlsZXM6IG51bGxcblxuICAgICAgICB9LCBvcHRpb25zKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vIEtpbGxzIHNjcmlwdCBvZiBnb29nbGUgbWFwcyBhcGkgaXNuJ3QgbG9hZGVkXG4gICAgICAgICAgICB2Y
2XIgYmFzZSA9IHRoaXMsXG4gICAgICAgICAgICAgICAgJGJhc2UgPSAkKHRoaXMpLFxuICAgICAgICAgICAgICAgIG1hcmtlcixcbiAgICAgICAgICAgICAgICBib3VuZHMgPSBuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzKCksXG4gICAgICAgICAgICAgICAgbWFwT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgbWFwVHlwZUlkOiBzZXR0aW5ncy5tYXBUeXBlSWQsXG4gICAgICAgICAgICAgICAgICAgIG1hcFR5cGVDb250cm9sOiBzZXR0aW5ncy5tYXBUeXBlQ29udHJvbCxcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlOiBzZXR0aW5ncy5kcmFnZ2FibGUsXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbHdoZWVsOiBzZXR0aW5ncy5zY3JvbGx3aGVlbCxcbiAgICAgICAgICAgICAgICAgICAgZ2VzdHVyZUhhbmRsaW5nOiBzZXR0aW5ncy5nZXN0dXJlSGFuZGxpbmdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHN0eWxlcyA9IHNldHRpbmdzLnN0eWxlcyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0X3N0eWxlcyA9IFt7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlcnM6IFt7XG4gICAgICAgICAgICAgICAgICAgICAgICBodWU6ICgkYmFzZS5kYXRhKCdodWUnKSkgPyAkYmFzZS5kYXRhKCdodWUnKSA6IHNldHRpbmdzLmh1ZVxuICAgICAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmVUeXBlOiBcInJvYWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRUeXA6IFwibGFiZWxzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXJzOiBbe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IFwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmVUeXBlOiBcInJvYWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRUeXBlOiBcImdlb21ldHJ5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXJzOiBbe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0bmVzczogMTAwXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogXCJzaW1wbGlmaWVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGltYWdlID0ge1xuICAgICAgICAgICAgICAgICAgICB1cmw6ICRiYXNlLmRhdGEoJ3BpbicpLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiBuZXcgZ29vZ2xlLm1hcHMuU2l6ZSg0MCwgNjQpLFxuICAgICAgICAgICAgICAgICAgICBvcmlnaW46IG5ldyBnb29nbGUubWFwcy5Qb2ludCgwLCAwKSxcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yOiBuZXcgZ29vZ2xlLm1hcHMuUG9pbnQoMjIsIDQwKVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHZhciBpbmZvd2luZG93ID0gbmV3IGdvb2dsZS5tYXBzLkluZm9XaW5kb3coe30pO1xuXG4gICAgICAgICAgICBpZiAoc3R5bGVzID09PSBudWxsIHx8ICgodHlwZW9mIHN0eWxlcykgIT09IFwib2JqZWN0XCIpKSBzdHlsZXMgPSBkZWZhdWx0X3N0eWxlcztcbiAgICAgICAgICAgIHZhciBzdHlsZWRNYXAgPSBuZXcgZ29vZ2xlLm1hcHMuU3R5bGVkTWFwVHlwZShzdHlsZXMsIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTdHlsZWQgTWFwXCJcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXJrZXJzID0gW10sXG4gICAgICAgICAgICAgICAgcHJvcGVydHlEYXRhID0gJGJhc2UuZGF0YSgnY29vcmRpbmF0ZXMnKSxcbiAgICAgICAgICAgICAgICBtYXAgPSBuZXcgZ29vZ2xlLm1hcHMuTWFwKGJhc2UsIG1hcE9wdGlvbnMpO1xuXG4gICAgICAgICAgICBtYXAubWFwVHlwZXMuc2V0KCdtYXBfc3R5bGUnLCBzdHlsZWRNYXApO1xuICAgICAgICAgICAgbWFwLnNldE1hcFR5cGVJZCgnbWFwX3N0eWxlJyk7XG4gICAgICAgICAgICAkKHByb3BlcnR5RGF0YSkuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGF0ICYmIHRoaXMubG5nKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBtYXJrZXJfbmFtZSA9ICh0aGlzLm5hbWUpID8gdGhpcy5uYW1lIDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmZvX3dpbmRvdyA9ICh0aGlzLmluZm9fd2luZG93KSA/IHRoaXMuaW5mb193aW5kb3cgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICBtYXJrZXJzLnB1c2goW3RoaXMubGF0LCB0aGlzLmxuZywgbWFya2VyX25hbWUsIGluZm9fd2luZG93XSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9KTtcblxuXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1hcmtlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB2Y
2XIgcG9zaXRpb24gPSBuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nKG1hcmtlcnNbaV1bMF0sIG1hcmtlcnNbaV1bMV0pO1xuICAgICAgICAgICAgICAgIGJvdW5kcy5leHRlbmQocG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIG1hcmtlciA9IG5ldyBnb29nbGUubWFwcy5NYXJrZXIoe1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgIG1hcDogbWFwLFxuICAgICAgICAgICAgICAgICAgICBpY29uOiBpbWFnZSxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IChtYXJrZXJzW2ldWzJdICE9PSB1bmRlZmluZWQpID8gbWFya2Vyc1tpXVsyXSA6ICcnLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50U3RyaW5nOiAobWFya2Vyc1tpXVszXSAhPT0gbnVsbCkgPyAnPGRpdiBpZD1cImluZm8td2luZG93XCI+JyArIG1hcmtlcnNbaV1bM10gKyAnPC9kaXY+JyA6IG51bGxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIG1hcmtlci5hZGRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRlbnRTdHJpbmcgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZm93aW5kb3cuc2V0Q29udGVudCh0aGlzLmNvbnRlbnRTdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb3dpbmRvdy5vcGVuKG1hcCwgdGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXAuc2V0Q2VudGVyKHRoaXMuZ2V0UG9zaXRpb24oKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGdlbmVyYXRlTWFwID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIG1hcC5maXRCb3VuZHMoYm91bmRzKTtcbiAgICAgICAgICAgICAgICB2Y
2XIgYm91bmRzTGlzdGVuZXIgPSBnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcigobWFwKSwgJ2JvdW5kc19jaGFuZ2VkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Wm9vbShzZXR0aW5ncy56b29tKTtcbiAgICAgICAgICAgICAgICAgICAgZ29vZ2xlLm1hcHMuZXZlbnQucmVtb3ZlTGlzdGVuZXIoYm91bmRzTGlzdGVuZXIpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgJCh3aW5kb3cpLm9uKFwibG9hZCByZXNpemUgb3JpZW50YXRpb25jaGFuZ2VcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGdlbmVyYXRlTWFwKCk7XG4gICAgICAgICAgICB9KTtcblxuXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgJCgnLnNsaWRlci1ibG9jaycpLnNsaWNrKHtcbiAgICAgICAgYXJyb3dzOiBmYWxzZSxcbiAgICAgICAgZG90czogdHJ1ZVxuICAgIH0pXG5cbiAgICBcbiAgICAkKCcucm0tc2xpZGVyLWJsb2NrJykuc2xpY2soe1xuICAgICAgICBhcnJvd3M6IHRydWUsXG4gICAgICAgIGRvdHM6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5OnRydWUsXG4gICAgICAgIHByZXZBcnJvdzonPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzbGljay1wcmV2XCIgdGl0bGU9XCJwcmV2aW91c1wiPjxzcGFuPjwvc3Bhbj48L2J1dHRvbj4nLFxuICAgICAgICBuZXh0QXJyb3c6JzxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2xpY2stbmV4dFwiIHRpdGxlPVwibmV4dFwiPjxzcGFuPjwvc3Bhbj48L2J1dHRvbj4nLFxuICAgICAgICByZXNwb25zaXZlOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDExMDAsXG4gICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgYXJyb3dzOiBmYWxzZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcblxuICAgI
2H0pXG59KShqUXVlcnkpO1xuXG4iXX0=
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.