{"version":3,"sources":["main.js"],"names":["invokeOnLoad","nav","document","querySelector","classList","add","window","addEventListener","wScroller","scrollY","navbarHeight","offsetHeight","remove","lastKnownScrollY","currentScrollY","ticking","idOfHeader","eleHeader","classes","pinned","unpinned","onScroll","pageYOffset","requestTick","requestAnimationFrame","update","console","log","pin","unpin","contains","onload","getElementById","hamburger","navToggle","menuBox","getElementsByTagName","doToggle","e","preventDefault","toggle","$","dropdown","on","ready","scroll","wS","scrollTop","each","hT","offset","top","eleId","attr","removeClass","addClass","click","hide","show","AOS","init","once","duration","easing","delay","location","hash","modals","indexOf","modal","closest","currentTimestamp","Date","now","localStorage","setItem","showAgainInMs","lastTimestamp","Number","getItem","setTimeout"],"mappings":";;AAAA;AACA,IAAMA,eAAe,SAAfA,YAAe,GAAM;AACzB,MAAMC,MAAMC,SAASC,aAAT,CAAuB,SAAvB,CAAZ;AACAF,MAAIG,SAAJ,CAAcC,GAAd,CAAkB,QAAlB;;AAEAC,SAAOC,gBAAP,CAAwB,QAAxB,EAAkC,YAAM;AACtC,QAAMC,YAAYF,OAAOG,OAAzB;AACA,QAAMC,eAAeR,SAASC,aAAT,CAAuB,SAAvB,EAAkCQ,YAAvD;;AAEA,QAAIH,YAAYE,YAAhB,EAA8B;AAC5BT,UAAIG,SAAJ,CAAcC,GAAd,CAAkB,QAAlB;AACD,KAFD,MAEO;AACLJ,UAAIG,SAAJ,CAAcQ,MAAd,CAAqB,QAArB;AACD;AACF,GATD;;AAWA;AACA,MAAIC,mBAAmB,CAAvB;AACA,MAAIC,iBAAiB,CAArB;AACA,MAAIC,UAAU,KAAd;AACA,MAAIC,aAAa,QAAjB;AACA,MAAIC,YAAY,IAAhB;AACA,MAAMC,UAAU;AACdC,YAAQ,YADM;AAEdC,cAAU;AAFI,GAAhB;;AAKA,WAASC,QAAT,GAAoB;AAClBP,qBAAiBR,OAAOgB,WAAxB;AACAC;AACD;;AAED,WAASA,WAAT,GAAuB;AACrB,QAAI,CAACR,OAAL,EAAc;AACZS,4BAAsBC,MAAtB;AACD;AACDV,cAAU,IAAV;AACD;;AAED,WAASU,MAAT,GAAkB;AAChB,QAAIX,iBAAiBD,gBAAjB,IAAqCC,iBAAiB,CAA1D,EAA6D;AAC3DY,cAAQC,GAAR,CAAY,mBAAmBb,cAA/B;AACAY,cAAQC,GAAR,CAAY,qBAAqBd,gBAAjC;AACAe;AACD,KAJD,MAIO,IAAId,iBAAiBD,gBAArB,EAAuC;AAC5CgB;AACD;AACDhB,uBAAmBC,cAAnB;AACAC,cAAU,KAAV;AACD;;AAED,WAASa,GAAT,GAAe;AACb,QAAIX,UAAUb,SAAV,CAAoB0B,QAApB,CAA6BZ,QAAQE,QAArC,CAAJ,EAAoD;AAClDH,gBAAUb,SAAV,CAAoBQ,MAApB,CAA2BM,QAAQE,QAAnC;AACAH,gBAAUb,SAAV,CAAoBC,GAApB,CAAwBa,QAAQC,MAAhC;AACD;AACF;;AAED,WAASU,KAAT,GAAiB;AACf,QACEZ,UAAUb,SAAV,CAAoB0B,QAApB,CAA6BZ,QAAQC,MAArC,KACA,CAACF,UAAUb,SAAV,CAAoB0B,QAApB,CAA6BZ,QAAQE,QAArC,CAFH,EAGE;AACAH,gBAAUb,SAAV,CAAoBQ,MAApB,CAA2BM,QAAQC,MAAnC;AACAF,gBAAUb,SAAV,CAAoBC,GAApB,CAAwBa,QAAQE,QAAhC;AACD;AACF;AACDd,SAAOyB,MAAP,GAAgB,YAAY;AAC1Bd,gBAAYf,SAAS8B,cAAT,CAAwBhB,UAAxB,CAAZ;AACAd,aAASK,gBAAT,CAA0B,QAA1B,EAAoCc,QAApC,EAA8C,KAA9C;AACD,GAHD;AAID,CAtED;;AAwEArB;;AAEA,CAAC,YAAY;AACX,MAAIiC,YAAY;AACdC,eAAWhC,SAASC,aAAT,CAAuB,oBAAvB,CADG;AAEdF,SAAKC,SAASC,aAAT,CAAuB,kBAAvB,CAFS;AAGdgC,aAASjC,SAASkC,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,CAHK;AAIdC,cAAU,SAASA,QAAT,CAAkBC,CAAlB,EAAqB;AAC7BA,QAAEC,cAAF;AACA,WAAKL,SAAL,CAAe9B,SAAf,CAAyBoC,MAAzB,CAAgC,QAAhC;AACA,WAAKvC,GAAL,CAASG,SAAT,CAAmBoC,MAAnB,CAA0B,cAA1B;AACA,WAAKL,OAAL,CAAa/B,SAAb,CAAuBoC,MAAvB,CAA8B,YAA9B;AACA;AACD;AAVa,GAAhB;;AAaAP,YAAUC,SAAV,CAAoB3B,gBAApB,CAAqC,OAArC,EAA8C,UAAU+B,CAAV,EAAa;AACzDL,cAAUI,QAAV,CAAmBC,CAAnB;AACD,GAFD;AAGD,CAjBD;;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAIA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEAG,EAAE,cAAF,EAAkBC,QAAlB;AACAD,EAAE,cAAF,EAAkBC,QAAlB,CAA2B,EAAEC,IAAI,OAAN,EAA3B;;AAEAF,EAAEvC,QAAF,EAAY0C,KAAZ,CAAkB,YAAY;AAC5BH,IAAEvC,QAAF,EAAY2C,MAAZ,CAAmB,YAAY;AAC7B;AACA,QAAIC,KAAKL,EAAE,IAAF,EAAQM,SAAR,EAAT;AACAN,MAAE,oBAAF,EAAwBO,IAAxB,CAA6B,YAAY;AACvC,UAAIC,KAAKR,EAAE,IAAF,EAAQS,MAAR,GAAiBC,GAA1B;AACA,UAAIL,KAAKG,KAAK,GAAd,EAAmB;AACjB,YAAIG,QAAQX,EAAE,IAAF,EAAQY,IAAR,CAAa,IAAb,CAAZ;;AAEA3B,gBAAQC,GAAR,CAAYyB,KAAZ;AACAX,UAAE,aAAF,EAAiBa,WAAjB,CAA6B,QAA7B;;AAEA5B,gBAAQC,GAAR,CAAYc,EAAE,wBAAwBW,KAAxB,GAAgC,IAAlC,EAAwCG,QAAxC,CAAiD,QAAjD,CAAZ;AACD;AACF,KAVD;AAWD,GAdD;;AAgBA;;AAEAd,IAAE,gBAAF,EAAoBe,KAApB,CAA0B,UAAUlB,CAAV,EAAa;AACrCA,MAAEC,cAAF;AACAE,MAAE,kBAAF,EAAsBgB,IAAtB;AACAhB,MAAE,iBAAF,EAAqBc,QAArB,CAA8B,QAA9B;AACAd,MAAE,sBAAF,EAA0BgB,IAA1B;AACD,GALD;AAMD,CAzBD;;AA2BAhB,EAAE,mBAAF,EAAuBe,KAAvB,CAA6B,UAAUlB,CAAV,EAAa;AACxCG,IAAE,kBAAF,EAAsBiB,IAAtB;AACAjB,IAAE,sBAAF,EAA0BiB,IAA1B;AACAjB,IAAE,iBAAF,EAAqBa,WAArB,CAAiC,QAAjC;AACD,CAJD;;AAQA;AACA;AACA;AACA;AACA;;;AAGAK,IAAIC,IAAJ,CAAS;AACP;AACAC,QAAM,KAFC;AAGP;AACAC,YAAU,IAJH,EAIS;AAChBC,UAAQ,MALD;AAMP;AACA;AACA;AACAC,SAAO;AACP;AAVO,CAAT;;AAaAvB,EAAEvC,QAAF,EAAY0C,KAAZ,CAAkB,YAAY;AAC5B,MAAItC,OAAO2D,QAAP,CAAgBC,IAAhB,IAAwB,CAACC,OAAOC,OAAP,CAAe9D,OAAO2D,QAAP,CAAgBC,IAA/B,CAA7B,EAAmE;AACjEzB,MAAEnC,OAAO2D,QAAP,CAAgBC,IAAlB,EAAwBG,KAAxB;AACD;AACD5B,IAAE,sBAAF,EAA0BE,EAA1B,CAA6B,OAA7B,EAAsC,GAAtC,EAA2C,YAAY;AACrDF,MAAE,IAAF,EAAQ6B,OAAR,CAAgB,QAAhB,EAA0BD,KAA1B,CAAgC,MAAhC;AACD,GAFD;;AAIA,MAAIE,mBAAmBC,KAAKC,GAAL,EAAvB;;AAEAhC,IAAE,mBAAF,EAAuBE,EAAvB,CAA0B,iBAA1B,EAA6C,YAAY;AACvD+B,iBAAaC,OAAb,CAAqB,gBAArB,EAAuCJ,gBAAvC;AACD,GAFD;;AAIA;AACA,MAAIK,gBAAgB,KAApB;AACA,MAAIC,gBAAgBC,OAAOJ,aAAaK,OAAb,CAAqB,gBAArB,CAAP,CAApB;;AAEA,MAAKR,mBAAmBM,aAApB,IAAsCD,aAA1C,EAAyD;AACvDI,eAAW,YAAY;AACrBN,mBAAaC,OAAb,CAAqB,gBAArB,EAAuCJ,gBAAvC;AACA9B,QAAE,mBAAF,EAAuB4B,KAAvB,CAA6B,MAA7B;AACD,KAHD,EAGG,IAHH;AAID;AAEF,CAzBD;AA0BA","file":"main.js","sourcesContent":["// LOAD MENU AFTER MENU ITEM IS FIXED\r\nconst invokeOnLoad = () => {\r\n const nav = document.querySelector(\".navbar\");\r\n nav.classList.add(\"loaded\");\r\n\r\n window.addEventListener(\"scroll\", () => {\r\n const wScroller = window.scrollY;\r\n const navbarHeight = document.querySelector(\".navbar\").offsetHeight;\r\n\r\n if (wScroller > navbarHeight) {\r\n nav.classList.add(\"sticky\");\r\n } else {\r\n nav.classList.remove(\"sticky\");\r\n }\r\n });\r\n\r\n // Smoth scrol Header hide and show\r\n var lastKnownScrollY = 0;\r\n var currentScrollY = 0;\r\n var ticking = false;\r\n var idOfHeader = \"header\";\r\n var eleHeader = null;\r\n const classes = {\r\n pinned: \"header-pin\",\r\n unpinned: \"header-unpin\",\r\n };\r\n\r\n function onScroll() {\r\n currentScrollY = window.pageYOffset;\r\n requestTick();\r\n }\r\n\r\n function requestTick() {\r\n if (!ticking) {\r\n requestAnimationFrame(update);\r\n }\r\n ticking = true;\r\n }\r\n\r\n function update() {\r\n if (currentScrollY < lastKnownScrollY || currentScrollY < 0) {\r\n console.log(\"currentScrollY\" + currentScrollY);\r\n console.log(\"lastKnownScrollY\" + lastKnownScrollY);\r\n pin();\r\n } else if (currentScrollY > lastKnownScrollY) {\r\n unpin();\r\n }\r\n lastKnownScrollY = currentScrollY;\r\n ticking = false;\r\n }\r\n\r\n function pin() {\r\n if (eleHeader.classList.contains(classes.unpinned)) {\r\n eleHeader.classList.remove(classes.unpinned);\r\n eleHeader.classList.add(classes.pinned);\r\n }\r\n }\r\n\r\n function unpin() {\r\n if (\r\n eleHeader.classList.contains(classes.pinned) ||\r\n !eleHeader.classList.contains(classes.unpinned)\r\n ) {\r\n eleHeader.classList.remove(classes.pinned);\r\n eleHeader.classList.add(classes.unpinned);\r\n }\r\n }\r\n window.onload = function () {\r\n eleHeader = document.getElementById(idOfHeader);\r\n document.addEventListener(\"scroll\", onScroll, false);\r\n };\r\n};\r\n\r\ninvokeOnLoad();\r\n\r\n(function () {\r\n var hamburger = {\r\n navToggle: document.querySelector(\".un-mobile-hamberg\"),\r\n nav: document.querySelector(\".navbar-collapse\"),\r\n menuBox: document.getElementsByTagName(\"BODY\")[0],\r\n doToggle: function doToggle(e) {\r\n e.preventDefault();\r\n this.navToggle.classList.toggle(\"active\");\r\n this.nav.classList.toggle(\"open-hamberg\");\r\n this.menuBox.classList.toggle(\"body-fixed\");\r\n // this.overlayDiv.classList.toggle(\"show\");\r\n },\r\n };\r\n\r\n hamburger.navToggle.addEventListener(\"click\", function (e) {\r\n hamburger.doToggle(e);\r\n });\r\n})();\r\n\r\n// // Dropdown\r\n// $(\"ul.nav li.dropdown\").hover(\r\n// function () {\r\n// $(this).find(\".dropdown-menu\").stop(true, true).delay(200).fadeIn(500);\r\n// },\r\n// function () {\r\n// $(this).find(\".dropdown-menu\").stop(true, true).delay(200).fadeOut(500);\r\n// }\r\n// );\r\n\r\n\r\n\r\n// // download document\r\n// $(document).ready(function () {\r\n// $(\".ui.dropdown\").dropdown();\r\n// $(\".ui.dropdown\").dropdown({ on: \"hover\" });\r\n\r\n\r\n// });\r\n\r\n// $(document).ready(function () {\r\n// $(\"#disclosure-link\").click(function (e) {\r\n// e.preventDefault();\r\n// // window.location.href = \"./assets/img/home/test-doc.pdf\";\r\n// window.open(\"./file/Form_MGT_7 Zetwerk draft FY 2020-21.pdf\", \"_blank\");\r\n// // var otherWindow = window.open();\r\n// // otherWindow.opener = null;\r\n// });\r\n// });\r\n\r\n// $(document).ready(function() {\r\n// $('.js-niceSelect').niceSelect();\r\n\r\n// //logo slider\r\n\r\n// // HOME PAGE BANNER SLIDER\r\n\r\n// AOS.init({\r\n// duration: 1200,\r\n// once: true,\r\n// })\r\n// });\r\n\r\n$(\".ui.dropdown\").dropdown();\r\n$(\".ui.dropdown\").dropdown({ on: \"hover\" });\r\n\r\n$(document).ready(function () {\r\n $(document).scroll(function () {\r\n // console.log($(\".service-container\").eq(1).scrollTop())\r\n let wS = $(this).scrollTop();\r\n $(\".service-container\").each(function () {\r\n var hT = $(this).offset().top;\r\n if (wS > hT - 100) {\r\n let eleId = $(this).attr(\"id\");\r\n\r\n console.log(eleId);\r\n $(\".js-lookfor\").removeClass(\"active\");\r\n\r\n console.log($('.js-lookfor[href=\"#' + eleId + '\"]').addClass(\"active\"));\r\n }\r\n });\r\n });\r\n\r\n //serach\r\n\r\n $(\".js-search-btn\").click(function (e) {\r\n e.preventDefault();\r\n $(\".navbar-collapse\").hide();\r\n $(\".js-search__wrp\").addClass(\"active\");\r\n $(\".js-search-btn__icon\").hide();\r\n });\r\n});\r\n\r\n$(\".js-search__close\").click(function (e) {\r\n $(\".navbar-collapse\").show();\r\n $(\".js-search-btn__icon\").show();\r\n $(\".js-search__wrp\").removeClass(\"active\");\r\n});\r\n\r\n\r\n\r\n// AOS.init({\r\n// duration: 500,\r\n// once:true,\r\n// easing: 'ease-out',\r\n// })\r\n\r\n\r\nAOS.init({\r\n // duration: 1500,\r\n once: false,\r\n // mirror: true,\r\n duration: 2500, // values from 0 to 3000, with step 50ms\r\n easing: 'ease',\r\n // anchorPlacement: 'bottom-top',\r\n // easing: 'ease-in-sine',\r\n // offset: 'center',\r\n delay: '100',\r\n // disable: 'mobile',\r\n});\r\n\r\n$(document).ready(function () {\r\n if (window.location.hash && ~modals.indexOf(window.location.hash)) {\r\n $(window.location.hash).modal();\r\n }\r\n $(\".modal:not(.noclose)\").on(\"click\", \"a\", function () {\r\n $(this).closest(\".modal\").modal(\"hide\");\r\n });\r\n\r\n var currentTimestamp = Date.now();\r\n\r\n $(\"#free-ebook-modal\").on(\"hidden.bs.modal\", function () {\r\n localStorage.setItem(\"last-showed-at\", currentTimestamp);\r\n });\r\n\r\n // Check for modal eligibility\r\n var showAgainInMs = 40000;\r\n var lastTimestamp = Number(localStorage.getItem(\"last-showed-at\"));\r\n\r\n if ((currentTimestamp - lastTimestamp) >= showAgainInMs) {\r\n setTimeout(function () {\r\n localStorage.setItem(\"last-showed-at\", currentTimestamp);\r\n $(\"#free-ebook-modal\").modal(\"show\");\r\n }, 5000);\r\n }\r\n\r\n});\r\n// "],"preExistingComment":"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiXSwibmFtZXMiOlsiaW52b2tlT25Mb2FkIiwibmF2IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiY2xhc3NMaXN0IiwiYWRkIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsIndTY3JvbGxlciIsInNjcm9sbFkiLCJuYXZiYXJIZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJyZW1vdmUiLCJsYXN0S25vd25TY3JvbGxZIiwiY3VycmVudFNjcm9sbFkiLCJ0aWNraW5nIiwiaWRPZkhlYWRlciIsImVsZUhlYWRlciIsImNsYXNzZXMiLCJwaW5uZWQiLCJ1bnBpbm5lZCIsIm9uU2Nyb2xsIiwicGFnZVlPZmZzZXQiLCJyZXF1ZXN0VGljayIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsInVwZGF0ZSIsImNvbnNvbGUiLCJsb2ciLCJwaW4iLCJ1bnBpbiIsImNvbnRhaW5zIiwib25sb2FkIiwiZ2V0RWxlbWVudEJ5SWQiLCJoYW1idXJnZXIiLCJuYXZUb2dnbGUiLCJtZW51Qm94IiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJkb1RvZ2dsZSIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInRvZ2dsZSIsIiQiLCJkcm9wZG93biIsIm9uIiwicmVhZHkiLCJzY3JvbGwiLCJ3UyIsInNjcm9sbFRvcCIsImVhY2giLCJoVCIsIm9mZnNldCIsInRvcCIsImVsZUlkIiwiYXR0ciIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJjbGljayIsImhpZGUiLCJzaG93IiwiQU9TIiwiaW5pdCIsIm9uY2UiLCJkdXJhdGlvbiIsImVhc2luZyIsImRlbGF5IiwibG9jYXRpb24iLCJoYXNoIiwibW9kYWxzIiwiaW5kZXhPZiIsIm1vZGFsIiwiY2xvc2VzdCIsImN1cnJlbnRUaW1lc3RhbXAiLCJEYXRlIiwibm93IiwibG9jYWxTdG9yYWdlIiwic2V0SXRlbSIsInNob3dBZ2FpbkluTXMiLCJsYXN0VGltZXN0YW1wIiwiTnVtYmVyIiwiZ2V0SXRlbSIsInNldFRpbWVv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LENBQWdCQyxJQUFsQixFQUF3QkcsS0FBeEI7QUFDRDtBQUNENUIsSUFBRSxzQkFBRixFQUEwQkUsRUFBMUIsQ0FBNkIsT0FBN0IsRUFBc0MsR0FBdEMsRUFBMkMsWUFBWTtBQUNyREYsTUFBRSxJQUFGLEVBQVE2QixPQUFSLENBQWdCLFFBQWhCLEVBQTBCRCxLQUExQixDQUFnQyxNQUFoQztBQUNELEdBRkQ7O0FBSUEsTUFBSUUsbUJBQW1CQyxLQUFLQyxHQUFMLEVBQXZCOztBQUVBaEMsSUFBRSxtQkFBRixFQUF1QkUsRUFBdkIsQ0FBMEIsaUJBQTFCLEVBQTZDLFlBQVk7QUFDdkQrQixpQkFBYUMsT0FBYixDQUFxQixnQkFBckIsRUFBdUNKLGdCQUF2QztBQUNELEdBRkQ7O0FBSUE7QUFDQSxNQUFJSyxnQkFBZ0IsS0FBcEI7QUFDQSxNQUFJQyxnQkFBZ0JDLE9BQU9KLGFBQWFLLE9BQWIsQ0FBcUIsZ0JBQXJCLENBQVAsQ0FBcEI7O0FBRUEsTUFBS1IsbUJBQW1CTSxhQUFwQixJQUFzQ0QsYUFBMUMsRUFBeUQ7QUFDdkRJLGVBQVcsWUFBWTtBQUNyQk4sbUJBQWFDLE9BQWIsQ0FBcUIsZ0JBQXJCLEVBQXVDSixnQkFBdkM7QUFDQTlCLFFBQUUsbUJBQUYsRUFBdUI0QixLQUF2QixDQUE2QixNQUE3QjtBQUNELEtBSEQsRUFHRyxJQUhIO0FBSUQ7QUFFRixDQXpCRDtBQTBCQSIsImZpbGUiOiJtYWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTE9BRCBNRU5VIEFGVEVSIE1FTlUgSVRFTSBJUyBGSVhFRFxyXG5jb25zdCBpbnZva2VPbkxvYWQgPSAoKSA9PiB7XHJcbiAgY29uc3QgbmF2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5uYXZiYXJcIik7XHJcbiAgbmF2LmNsYXNzTGlzdC5hZGQoXCJsb2FkZWRcIik7XHJcblxyXG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsICgpID0+IHtcclxuICAgIGNvbnN0IHdTY3JvbGxlciA9IHdpbmRvdy5zY3JvbGxZO1xyXG4gICAgY29uc3QgbmF2YmFySGVpZ2h0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5uYXZiYXJcIikub2Zmc2V0SGVpZ2h0O1xyXG5cclxuICAgIGlmICh3U2Nyb2xsZXIgPiBuYXZiYXJIZWlnaHQpIHtcclxuICAgICAgbmF2LmNsYXNzTGlzdC5hZGQoXCJzdGlja3lcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuYXYuY2xhc3NMaXN0LnJlbW92ZShcInN0aWNreVwiKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy8gU21vdGggc2Nyb2wgSGVhZGVyIGhpZGUgYW5kIHNob3dcclxuICB2YXIgbGFzdEtub3duU2Nyb2xsWSA9IDA7XHJcbiAgdmFyIGN1cnJlbnRTY3JvbGxZID0gMDtcclxuICB2YXIgdGlja2luZyA9IGZhbHNlO1xyXG4gIHZhciBpZE9mSGVhZGVyID0gXCJoZWFkZXJcIjtcclxuICB2YXIgZWxlSGVhZGVyID0gbnVsbDtcclxuICBjb25zdCBjbGFzc2VzID0ge1xyXG4gICAgcGlubmVkOiBcImhlYWRlci1waW5cIixcclxuICAgIHVucGlubmVkOiBcImhlYWRlci11bnBpblwiLFxyXG4gIH07XHJcblxyXG4gIGZ1bmN0aW9uIG9uU2Nyb2xsKCkge1xyXG4gICAgY3VycmVudFNjcm9sbFkgPSB3aW5kb3cucGFnZVlPZmZzZXQ7XHJcbiAgICByZXF1ZXN0VGljaygpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcmVxdWVzdFRpY2soKSB7XHJcbiAgICBpZiAoIXRpY2tpbmcpIHtcclxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHVwZGF0ZSk7XHJcbiAgICB9XHJcbiAgICB0aWNraW5nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcclxuICAgIGlmIChjdXJyZW50U2Nyb2xsWSA8IGxhc3RLbm93blNjcm9sbFkgfHwgY3VycmVudFNjcm9sbFkgPCAwKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiY3VycmVudFNjcm9sbFlcIiArIGN1cnJlbnRTY3JvbGxZKTtcclxuICAgICAgY29uc29sZS5sb2coXCJsYXN0S25vd25TY3JvbGxZXCIgKyBsYXN0S25vd25TY3JvbGxZKTtcclxuICAgICAgcGluKCk7XHJcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRTY3JvbGxZID4gbGFzdEtub3duU2Nyb2xsWSkge1xyXG4gICAgICB1bnBpbigpO1xyXG4gICAgfVxyXG4gICAgbGFzdEtub3duU2Nyb2xsWSA9IGN1cnJlbnRTY3JvbGxZO1xyXG4gICAgdGlja2luZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGluKCkge1xyXG4gICAgaWYgKGVsZUhlYWRlci5jbGFzc0xpc3QuY29udGFpbnMoY2xhc3Nlcy51bnBpbm5lZCkpIHtcclxuICAgICAgZWxlSGVhZGVyLmNsYXNzTGlzdC5yZW1vdmUoY2xhc3Nlcy51bnBpbm5lZCk7XHJcbiAgICAgIGVsZUhlYWRlci5jbGFzc0xpc3QuYWRkKGNsYXNzZXMucGlubmVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVucGluKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICBlbGVIZWFkZXIuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzZXMucGlubmVkKSB8fFxyXG4gICAgICAhZWxlSGVhZGVyLmNsYXNzTGlzdC5jb250YWlucyhjbGFzc2VzLnVucGlubmVkKVxyXG4gICAgKSB7XHJcbiAgICAgIGVsZUhlYWRlci5jbGFzc0xpc3QucmVtb3ZlKGNsYXNzZXMucGlubmVkKTtcclxuICAgICAgZWxlSGVhZGVyLmNsYXNzTGlzdC5hZGQoY2xhc3Nlcy51bnBpbm5lZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICBlbGVIZWFkZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZE9mSGVhZGVyKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgb25TY3JvbGwsIGZhbHNlKTtcclxuICB9O1xyXG59O1xyXG5cclxuaW52b2tlT25Mb2FkKCk7XHJcblxyXG4oZnVuY3Rpb24gKCkge1xyXG4gIHZhciBoYW1idXJnZXIgPSB7XHJcbiAgICBuYXZUb2dnbGU6IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIudW4tbW9iaWxlLWhhbWJlcmdcIiksXHJcbiAgICBuYXY6IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIubmF2YmFyLWNvbGxhcHNlXCIpLFxyXG4gICAgbWVudUJveDogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJCT0RZXCIpWzBdLFxyXG4gICAgZG9Ub2dnbGU6IGZ1bmN0aW9uIGRvVG9nZ2xlKGUpIHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLm5hdlRvZ2dsZS5jbGFzc0xpc3QudG9nZ2xlKFwiYWN0aXZlXCIpO1xyXG4gICAgICB0aGlzLm5hdi5jbGFzc0xpc3QudG9nZ2xlKFwib3Blbi1oYW1iZXJnXCIpO1xyXG4gICAgICB0aGlzLm1lbnVCb3guY2xhc3NMaXN0LnRvZ2dsZShcImJvZHktZml4ZWRcIik7XHJcbiAgICAgIC8vIHRoaXMub3ZlcmxheURpdi5jbGFzc0xpc3QudG9nZ2xlKFwic2hvd1wiKTtcclxuICAgIH0sXHJcbiAgfTtcclxuXHJcbiAgaGFtYnVyZ2VyLm5hdlRvZ2dsZS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGUpIHtcclxuICAgIGhhbWJ1cmdlci5kb1RvZ2dsZShlKTtcclxuICB9KTtcclxufSkoKTtcclxuXHJcbi8vIC8vIERyb3Bkb3duXHJcbi8vICQoXCJ1bC5uYXYgbGkuZHJvcGRvd25cIikuaG92ZXIoXHJcbi8vICAgZnVuY3Rpb24gKCkge1xyXG4vLyAgICAgJCh0aGlzKS5maW5kKFwiLmRyb3Bkb3duLW1lbnVcIikuc3RvcCh0cnVlLCB0cnVlKS5kZWxheSgyMDApLmZhZGVJbig1MDApO1xyXG4vLyAgIH0sXHJcbi8vICAgZnVuY3Rpb24gKCkge1xyXG4vLyAgICAgJCh0aGlzKS5maW5kKFwiLmRyb3Bkb3duLW1lbnVcIikuc3RvcCh0cnVlLCB0cnVlKS5kZWxheSgyMDApLmZhZGVPdXQoNTAwKTtcclxuLy8gICB9XHJcbi8vICk7XHJcblxyXG5cclxuXHJcbi8vIC8vIGRvd25sb2FkIGRvY3VtZW50XHJcbi8vICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcclxuLy8gICAkKFwiLnVpLmRyb3Bkb3duXCIpLmRyb3Bkb3duKCk7XHJcbi8vICAgJChcIi51aS5kcm9wZG93blwiKS5kcm9wZG93bih7IG9uOiBcImhvdmVyXCIgfSk7XHJcblxyXG5cclxuLy8gfSk7XHJcblxyXG4vLyAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcbi8vICAgJChcIiNkaXNjbG9zdXJlLWxpbmtcIikuY2xpY2soZnVuY3Rpb24gKGUpIHtcclxuLy8gICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuLy8gICAgIC8vIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gXCIuL2Fzc2V0cy9pbWcvaG9tZS90ZXN0LWRvYy5wZGZcIjtcclxuLy8gICAgIHdpbmRvdy5vcGVuKFwiLi9maWxlL0Zvcm1fTUdUXzcgWmV0d2VyayBkcmFmdCBGWSAyMDIwLTIxLnBkZlwiLCBcIl9ibGFua1wiKTtcclxuLy8gICAgIC8vIHZhciBvdGhlcldpbmRvdyA9IHdpbmRvdy5vcGVuKCk7XHJcbi8vICAgICAvLyBvdGhlcldpbmRvdy5vcGVuZXIgPSBudWxsO1xyXG4vLyAgIH0pO1xyXG4vLyB9KTtcclxuXHJcbi8vICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge1xyXG4vLyAgICAgJCgnLmpzLW5pY2VTZWxlY3QnKS5uaWNlU2VsZWN0KCk7XHJcblxyXG4vLyAgICAgLy9sb2dvIHNsaWRlclxyXG5cclxuLy8gICAgIC8vIEhPTUUgUEFHRSBCQU5ORVIgU0xJREVSXHJcblxyXG4vLyAgICAgQU9TLmluaXQoe1xyXG4vLyAgICAgICAgIGR1cmF0aW9uOiAxMjAwLFxyXG4vLyAgICAgICAgIG9uY2U6IHRydWUsXHJcbi8vICAgICB9KVxyXG4vLyB9KTtcclxuXHJcbiQoXCIudWkuZHJvcGRvd25cIikuZHJvcGRvd24oKTtcclxuJChcIi51aS5kcm9wZG93blwiKS5kcm9wZG93bih7IG9uOiBcImhvdmVyXCIgfSk7XHJcblxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcbiAgJChkb2N1bWVudCkuc2Nyb2xsKGZ1bmN0aW9uICgpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCQoXCIuc2VydmljZS1jb250YWluZXJcIikuZXEoMSkuc2Nyb2xsVG9wKCkpXHJcbiAgICBsZXQgd1MgPSAkKHRoaXMpLnNjcm9sbFRvcCgpO1xyXG4gICAgJChcIi5zZXJ2aWNlLWNvbnRhaW5lclwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyIGhUID0gJCh0aGlzKS5vZmZzZXQoKS50b3A7XHJcbiAgICAgIGlmICh3UyA+IGhUIC0gMTAwKSB7XHJcbiAgICAgICAgbGV0IGVsZUlkID0gJCh0aGlzKS5hdHRyKFwiaWRcIik7XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVsZUlkKTtcclxuICAgICAgICAkKFwiLmpzLWxvb2tmb3JcIikucmVtb3ZlQ2xhc3MoXCJhY3RpdmVcIik7XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKCQoJy5qcy1sb29rZm9yW2hyZWY9XCIjJyArIGVsZUlkICsgJ1wiXScpLmFkZENsYXNzKFwiYWN0aXZlXCIpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSk7XHJcblxyXG4gIC8vc2VyYWNoXHJcblxyXG4gICQoXCIuanMtc2VhcmNoLWJ0blwiKS5jbGljayhmdW5jdGlvbiAoZSkge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgJChcIi5uYXZiYXItY29sbGFwc2VcIikuaGlkZSgpO1xyXG4gICAgJChcIi5qcy1zZWFyY2hfX3dycFwiKS5hZGRDbGFzcyhcImFjdGl2ZVwiKTtcclxuICAgICQoXCIuanMtc2VhcmNoLWJ0bl9faWNvblwiKS5oaWRlKCk7XHJcbiAgfSk7XHJcbn0pO1xyXG5cclxuJChcIi5qcy1zZWFyY2hfX2Nsb3NlXCIpLmNsaWNrKGZ1bmN0aW9uIChlKSB7XHJcbiAgJChcIi5uYXZiYXItY29sbGFwc2VcIikuc2hvdygpO1xyXG4gICQoXCIuanMtc2VhcmNoLWJ0bl9faWNvblwiKS5zaG93KCk7XHJcbiAgJChcIi5qcy1zZWFyY2hfX3dycFwiKS5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKTtcclxufSk7XHJcblxyXG5cclxuXHJcbi8vIEFPUy5pbml0KHtcclxuLy8gICBkdXJhdGlvbjogNTAwLFxyXG4vLyAgIG9uY2U6dHJ1ZSxcclxuLy8gICBlYXNpbmc6ICdlYXNlLW91dCcsXHJcbi8vIH0pXHJcblxyXG5cclxuQU9TLmluaXQoe1xyXG4gIC8vIGR1cmF0aW9uOiAxNTAwLFxyXG4gIG9uY2U6IGZhbHNlLFxyXG4gIC8vIG1pcnJvcjogdHJ1ZSxcclxuICBkdXJhdGlvbjogMjUwMCwgLy8gdmFsdWVzIGZyb20gMCB0byAzMDAwLCB3aXRoIHN0ZXAgNTBtc1xyXG4gIGVhc2luZzogJ2Vhc2UnLFxyXG4gIC8vIGFuY2hvclBsYWNlbWVudDogJ2JvdHRvbS10b3AnLFxyXG4gIC8vIGVhc2luZzogJ2Vhc2UtaW4tc2luZScsXHJcbiAgLy8gb2Zmc2V0OiAnY2VudGVyJyxcclxuICBkZWxheTogJzEwMCcsXHJcbiAgLy8gZGlzYWJsZTogJ21vYmlsZScsXHJcbn0pO1xyXG5cclxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xyXG4gIGlmICh3aW5kb3cubG9jYXRpb24uaGFzaCAmJiB+bW9kYWxzLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhhc2gpKSB7XHJcbiAgICAkKHdpbmRvdy5sb2NhdGlvbi5oYXNoKS5tb2RhbCgpO1xyXG4gIH1cclxuICAkKFwiLm1vZGFsOm5vdCgubm9jbG9zZSlcIikub24oXCJjbGlja1wiLCBcImFcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgJCh0aGlzKS5jbG9zZXN0KFwiLm1vZGFsXCIpLm1vZGFsKFwiaGlkZVwiKTtcclxuICB9KTtcclxuXHJcbiAgdmFyIGN1cnJlbnRUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG5cclxuICAkKFwiI2ZyZWUtZWJvb2stbW9kYWxcIikub24oXCJoaWRkZW4uYnMubW9kYWxcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJsYXN0LXNob3dlZC1hdFwiLCBjdXJyZW50VGltZXN0YW1wKTtcclxuICB9KTtcclxuXHJcbiAgLy8gQ2hlY2sgZm9yIG1vZGFsIGVsaWdpYmlsaXR5XHJcbiAgdmFyIHNob3dBZ2FpbkluTXMgPSA0MDAwMDtcclxuICB2YXIgbGFzdFRpbWVzdGFtcCA9IE51bWJlcihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhc3Qtc2hvd2VkLWF0XCIpKTtcclxuXHJcbiAgaWYgKChjdXJyZW50VGltZXN0YW1wIC0gbGFzdFRpbWVzdGFtcCkgPj0gc2hvd0FnYWluSW5Ncykge1xyXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibGFzdC1zaG93ZWQtYXRcIiwgY3VycmVudFRpbWVzdGFtcCk7XHJcbiAgICAgICQoXCIjZnJlZS1lYm9vay1tb2RhbFwiKS5tb2RhbChcInNob3dcIik7XHJcbiAgICB9LCA1MDAwKTtcclxuICB9XHJcblxyXG59KTtcclxuLy8gIl19"}