PageSourceSearch

https://www.acgme.org/dist/scripts/site.js?v=639258365516675616

js acgme.org collected 2026-09-24 08:49:21 UTC 103,578 bytes, 728 lines download raw bytes

1(() => {
2  var __getOwnPropNames = Object.getOwnPropertyNames;
3  var __commonJS = (cb, mod) => function __require() {
4    return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
5  };
6
7  // Static/Scripts/Site.js
8  var require_Site = __commonJS({
9    "Static/Scripts/Site.js"(exports, module) {
10      $(document).ready(function() {
11        var _header = $("header").get(0);
12        var _headerParent = $("header").parent().get(0);
13        var _headerNav = $(".header-navigation").get(0);
14        var _headerUtility = $(".header-utility").get(0);
15        var _searchPageFiltersPanel = $(".search-results-filters-panel").get(0);
16        var _headerHeight = _header ? $(_header).height() : 0;
17        var _utilityHeight = _headerUtility ? $(_headerUtility).height() : 0;
18        var _headerTriggerOffset = _headerParent ? $(_headerParent).offset().top + ($(window).width() >= 1200 ? _utilityHeight : 0) : 0;
19        if (_header && _headerParent) {
20          $(window).on("scroll", function() {
21            CalculateFixedHeader();
22          });
23          $(window).on("resize", function() {
24            _headerHeight = $(_header).height();
25            _utilityHeight = $(_headerUtility).height();
26            _headerTriggerOffset = $(_headerParent).offset().top + ($(window).width() >= 1200 ? _utilityHeight : 0);
27            CalculateFixedHeader();
28          });
29          CalculateFixedHeader();
30        }
31        function CalculateFixedHeader() {
32          if ($(window).scrollTop() > _headerTriggerOffset) {
33            $(_header).addClass("header-fixed");
34            $(_headerParent).addClass("header-fixed");
35            $(_headerParent).css({ "padding-top": _headerHeight + "px" });
36          } else {
37            $(_headerParent).css({ "padding-top": "0px" });
38            $(_header).removeClass("header-fixed");
39            $(_headerParent).removeClass("header-fixed");
40            closeNav();
41          }
42        }
43        $(".nav-hamburger").on("click", function(e) {
44          e.stopPropagation();
45          openNav();
46        });
47        $(".sort-filter-button").on("click", function(e) {
48          e.stopPropagation();
49          openSortAndFilters();
50        });
51        $(".sort-filter-close").on("click", function(e) {
52          closeSortAndFilters();
53        });
54        $(".header-navigation").on("click", function(e) {
55          e.stopPropagation();
56        });
57        $(".nav-close").on("click", function(e) {
58          closeNav();
59        });
60        function openNav() {
61          $("html").addClass("nav-open");
62          $(_header).addClass("nav-open");
63          $(_header).on("click.closeNavOnBlur", function(e) {
64            closeNav();
65          });
66          $(document).on("keyup.navopen", function(event) {
67            if (event.which == 27) {
68              closeNav();
69            }
70          });
71        }
72        function closeNav() {
73          $("html").removeClass("nav-open");
74          $(_header).removeClass("nav-open");
75          $(_header).off("click.closeNavOnBlur");
76          $(_header).off("keyup.navopen");
77        }
78        function openSortAndFilters() {
79          $("html").addClass("sort-filter-open");
80          $(_searchPageFiltersPanel).addClass("sort-filter-open");
81          $(document).on("keyup.SortAndFiltersopen", function(event) {
82            if (event.which == 27) {
83              closeSortAndFilters();
84            }
85          });
86        }
87        function closeSortAndFilters() {
88          $("html").removeClass("sort-filter-open");
89          $(_searchPageFiltersPanel).removeClass("sort-filter-open");
90          $(_searchPageFiltersPanel).off("keyup.SortAndFiltersopen");
91        }
92        $(window).on("resize", function() {
93          closeSortAndFilters();
94        });
95        var liNavEnter = null;
96        $("li.nav_lvl_0").on("mouseenter", function() {
97          var _this2 = $(this);
98          liNavEnter = setTimeout(function() {
99            $("a", $(this).siblings()).blur();
100            if ($(_this2).hasClass("HasChildren")) {
101              $("ul.nav_lvl_0").addClass("focused");
102            }
103            $("> a, > span", this).attr("aria-expanded", "true");
104          }, 200);
105        }).on("mouseleave", function() {
106          clearTimeout(liNavEnter);
107          $("ul.nav_lvl_0").removeClass("focused");
108          $("> a, > span", this).attr("aria-expanded", "false");
109        });
110        $(".nav_lvl_0.HasChildren > a, .nav_lvl_0.HasChildren > span").on("click", function(e) {
111          e.preventDefault();
112          if ($(this).hasClass("liextended")) {
113            $(this).removeClass("liextended");
114            $(this).parent().removeClass("liextended");
115            $(".navigation-main > nav").removeClass("liextended");
116            $(this).attr("aria-expanded", "false");
117          } else {
118            $(this).addClass("liextended");
119            $(this).parent().addClass("liextended");
120            $(".navigation-main > nav").addClass("liextended");
121            $(this).attr("aria-expanded", "true");
122          }
123        });
124        $(".nav_lvl_0.HasChildren").on("mouseleave", function(e) {
125          if (!$(_header).hasClass("header-fixed") && !$(_header).hasClass("nav-open")) {
126            $(".navigation-main a, .navigation-main span").blur();
127            $(".liextended").removeClass("liextended");
128          }
129        });
130        $(window).on("resize", function() {
131          $(".navigation-main a, .navigation-main span").blur();
132          $(".liextended").removeClass("liextended");
133        });
134        function onVisible(element, callback) {
135          const observer = new IntersectionObserver((entries, observer2) => {
136            entries.forEach((entry) => {
137              if (entry.isIntersecting) {
138                $(element).siblings('[role="menuitem"]').attr("aria-expanded", "true");
139              } else {
140                $(element).siblings('[role="menuitem"]').attr("aria-expanded", "false");
141              }
142            });
143          });
144          observer.observe(element);
145        }
146        $("li.HasChildren.nav_lvl_0 > .nav-dropdown").each(function() {
147          var _this2 = $(this)[0];
148          onVisible(_this2, function() {
149          });
150        });
151        $(".header-search-icon").on("click", function(e) {
152          openSearch();
153        });
154        $(".search-close").on("click", function(e) {
155          closeSearch($(this));
156        });
157        function openSearch() {
158          $(_header).addClass("search-open");
159          $(document).on("keyup.searchopen", function(event) {
160            if (event.which == 27) {
161              closeSearch();
162            }
163          });
164        }
165        function closeSearch(trigger = null) {
166          $(_header).removeClass("search-open");
167          if (trigger) {
168            $(trigger).prev("input").val("");
169            $(trigger).removeClass("show");
170          } else {
171            $(".global-search-input .searchInput > input").val("");
172            $(".global-search-input .searchInput > .search-close").removeClass("show");
173          }
174          $(document).off("keyup.searchopen");
175        }
176        $(".global-search-input .searchInput a.SearchButton").on("click", function() {
177          ValidateSearchTerm($(this).siblings("input"));
178        });
179        $(".global-search-input .searchInput > input").on("keyup", function() {
180          var _this2 = $(this);
181          var searchInputVal = $(_this2).val().trim();
182          if (searchInputVal != "" && searchInputVal !== null && searchInputVal !== void 0) {
183            $(_this2).next(".search-close").addClass("show");
184          } else {
185            $(_this2).next(".search-close").removeClass("show");
186          }
187        });
188        $(".global-search-input .searchInput > input").on("focus", function() {
189          var _this2 = $(this);
190          $(document).bind("keyup.SearchTypingStarted", function(event) {
191            if (event.which == 13) {
192              ValidateSearchTerm(_this2);
193            }
194          });
195        });
196        $(".global-search-input .searchInput > input").on("focusout", function() {
197          $(document).unbind("keyup.SearchTypingStarted");
198        });
199        function ValidateSearchTerm(elSearchInput) {
200          var searchInputVal = elSearchInput.val().trim();
201          if (searchInputVal != "" && searchInputVal !== null && searchInputVal !== void 0) {
202            var searchUrl = elSearchInput.attr("data-search-url");
203            if (searchUrl != "" && searchUrl !== null && searchUrl !== void 0) {
204              window.location.href = searchUrl + "?q=" + searchInputVal;
205            } else {
206              throw new Error("Error searching, please try again later");
207              return false;
208            }
209          } else {
210            throw new Error("Empty search not allowed");
211            return false;
212          }
213        }
214        $(".ads-login").on("click", function() {
215          $(this).toggleClass("ads-login-expanded").attr("aria-expanded", "true");
216        }).on("mouseleave", function() {
217          $(this).removeClass("ads-login-expanded").attr("aria-expanded", "false");
218          $(document).off("keyup.ads-login-focused");
219        }).on("focus", function() {
220          var _this2 = $(this);
221          $(document).on("keyup.ads-login-focused", function(event) {
222            if (event.key == "Enter" || event.keyCode == 13) {
223              if ($(_this2).attr("aria-expanded") == "false") {
224                $(_this2).addClass("ads-login-expanded");
225                $(_this2).attr("aria-expanded", "true");
226              } else {
227                $(_this2).removeClass("ads-login-expanded");
228                $(_this2).attr("aria-expanded", "false");
229              }
230            }
231          });
232        }).on("focusout", function() {
233          var _this2 = $(this);
234          if (!$(_this2).is(":focus-within")) {
235            $(_this2).removeClass("ads-login-expanded");
236            $(_this2).attr("aria-expanded", "false");
237            $(document).off("keyup.ads-login-focused");
238          }
239        });
240        $(".faq-block").on("click", function(event) {
241          var _this2 = $(this);
242          if (!$(_this2).data("faq-focus-lock")) {
243            $(_this2).data("faq-focus-lock", true);
244            setTimeout(() => {
245              $(_this2).data("faq-focus-lock", false);
246            }, 200);
247            $(_this2).toggleClass("faq-block-expanded");
248            if (!$(_this2).hasClass("faq-block-expanded")) {
249              $(_this2).attr("aria-expanded", "true");
250            } else {
251              $(_this2).attr("aria-expanded", "false");
252            }
253            $(_this2).parent().siblings().children().removeClass("faq-block-expanded");
254          }
255        }).on("focus", function(event) {
256          var _this2 = $(this);
257          if (!$(_this2).hasClass("faq-block-expanded")) {
258            $(_this2).data("faq-focus-lock", true);
259            setTimeout(() => {
260              $(_this2).data("faq-focus-lock", false);
261            }, 200);
262            $(_this2).addClass("faq-block-expanded");
263            $(_this2).parent().siblings().children().removeClass("faq-block-expanded");
264          }
265        }).on("focusin", function(event) {
266          var _this2 = $(this);
267          if ($(_this2).is(":focus-within")) {
268            $(_this2).attr("aria-expanded", "true");
269          } else {
270            $(_this2).attr("aria-expanded", "false");
271          }
272        }).on("focusout", function() {
273          var _this2 = $(this);
274          if (!$(_this2).is(":focus-within")) {
275            $(_this2).attr("aria-expanded", "false");
276          }
277        });
278        $(".faq-block-answer *").on("click", function(event) {
279          event.stopPropagation();
280        });
281        function getTimeRemaining(endtime) {
282          var t = endtime - Date.parse(/* @__PURE__ */ new Date());
283          var seconds = Math.floor(t / 1e3 % 60);
284          var minutes = Math.floor(t / 1e3 / 60 % 60);
285          var hours = Math.floor(t / (1e3 * 60 * 60) % 24);
286          var days = Math.floor(t / (1e3 * 60 * 60 * 24));
287          return { "total": t, "days": days, "hours": hours, "minutes": minutes, "seconds": seconds };
288        }
289        function updateTicker(_t, _days, _hours, _minutes, _seconds) {
290          $(_days).html(_t.days < 99 ? ("0" + _t.days).slice(-2) : _t.days);
291          $(_hours).html(("0" + _t.hours).slice(-2));
292          $(_minutes).html(("0" + _t.minutes).slice(-2));
293          $(_seconds).html(("0" + _t.seconds).slice(-2));
294        }
295        $(".timeticker").each(function() {
296          var _showTicker = true;
297          var _timeNow = Date.parse(/* @__PURE__ */ new Date());
298          var _displayStart = Date.parse($(this).data("displaystart")) || null;
299          var _displayEnd = Date.parse($(this).data("displayend")) || null;
300          var _eventTime = Date.parse($(this).data("eventtime")) || null;
301          if (_eventTime) {
302            if (_displayStart || _displayEnd) {
303              if (_displayStart && _displayStart > _timeNow) {
304                _showTicker = false;
305              }
306              if (_displayEnd && _displayEnd <= _timeNow) {
307                _showTicker = false;
308              }
309            }
310          } else {
311            _showTicker = false;
312          }
313          if (_showTicker) {
314            var _t = getTimeRemaining(_eventTime);
315            var _wrap = $("<div/>").addClass("timeticker_wrap");
316            var _days = $("<span/>").html("00");
317            var _dayswrap = $("<div/>").addClass("timeticker_days").html("days").prepend(_days);
318            var _hours = $("<span/>").html("00");
319            var _hourswrap = $("<div/>").addClass("timeticker_hours").html("hours").prepend(_hours);
320            var _minutes = $("<span/>").html("00");
321            var _minuteswrap = $("<div/>").addClass("timeticker_minutes").html("minutes").prepend(_minutes);
322            var _seconds = $("<span/>").html("00");
323            var _secondswrap = $("<div/>").addClass("timeticker_seconds").html("seconds").prepend(_seconds);
324            $(_wrap).append(_dayswrap).append(_hourswrap).append(_minuteswrap).append(_secondswrap);
325            if (_t.total > 0) {
326              updateTicker(_t, _days, _hours, _minutes, _seconds);
327              var tickinterval = setInterval(function() {
328                _t = getTimeRemaining(_eventTime);
329                updateTicker(_t, _days, _hours, _minutes, _seconds);
330                if (_t.total <= 0) {
331                  clearInterval(tickinterval);
332                }
333              }, 1e3);
334            }
335            $(this).show().append(_wrap);
336          }
337        });
338        $(".hero-banner-slider").each(function() {
339          var _this = $(this);
340          var _controls = $(".slick-controls", $(_this)).get(0);
341          var _controls_prev = $(".slick-backward", _controls).get(0);
342          var _controls_next = $(".slick-forward", _controls).get(0);
343          var _controls_pause = $(".slick-btn-pause", _controls).get(0);
344          var _controls_play = $(".slick-btn-play", _controls).get(0);
345          var _slider_images = $(".hero-banner-slider-images-slider", $(_this)).get(0);
346          var _slider_text = $(".hero-banner-slider-text-slider", $(_this)).get(0);
347          var _isVisible = true;
348          var hero_image_load = {};
349          $(_slider_images).on("init", function(slick) {
350            hero_image_load.heroLoadType = "init";
351            hero_image_load.slideDirection = "";
352            hero_image_load.nextCarouselPosition = 0;
353            pushDataLayer();
354            if ($(_this).data("autoplay")) {
355              bindObserver();
356            }
357          });
358          $(_slider_images).slick({
359            infinite: $(_this).data("autoplay") || false,
360            slidesToShow: 1,
361            slidesToScroll: 1,
362            arrows: false,
363            dots: false,
364            draggable: true,
365            autoplay: $(_this).data("autoplay") || false,
366            autoplaySpeed: $(_this).data("rotationintervals") || 3e3,
367            speed: $(_this).data("transitionspeed") || 300,
368            asNavFor: $(_slider_text),
369            useAutoplayToggleButton: false,
370            pauseOnHover: false
371            //pauseOnFocus: $(_this).data('autoplay') || false,
372            //pauseOnHover: $(_this).data('autoplay') || false,
373            //pauseOnDotsHover: $(_this).data('autoplay') || false,
374          });
375          $(_slider_text).slick({
376            infinite: $(_this).data("autoplay") || false,
377            slidesToShow: 1,
378            slidesToScroll: 1,
379            arrows: true,
380            dots: false,
381            draggable: true,
382            autoplay: false,
383            speed: $(_this).data("transitionspeed") || 300,
384            prevArrow: $(_controls_prev),
385            nextArrow: $(_controls_next),
386            //pauseIcon: $(_controls_pause),
387            //playIcon: $(_controls_play),
388            asNavFor: $(_slider_images),
389            useAutoplayToggleButton: false,
390            pauseOnHover: false
391          });
392          if ($(_this).data("autoplay")) {
393            $(_controls_pause).on("click", function(e) {
394              eventSlickPause(true);
395            });
396            $(_controls_play).on("click", function(e) {
397              eventSlickPlay(true);
398            });
399          }
400          var _permaPause = false;
401          function eventSlickPause(isPersistent = false) {
402            _permaPause = !_permaPause ? isPersistent : _permaPause;
403            if (!_permaPause || isPersistent) {
404              $(_slider_images).slick("slickPause");
405              if (isPersistent) {
406                $(_controls_pause).hide().trigger("blur");
407                $(_controls_play).show().trigger("focus");
408              }
409            }
410          }
411          function eventSlickPlay(isPersistent = false) {
412            _permaPause = isPersistent ? false : _permaPause;
413            if (!_permaPause || isPersistent) {
414              $(_slider_images).slick("slickPlay");
415              if (isPersistent) {
416                $(_controls_pause).show().trigger("focus");
417                $(_controls_play).hide().trigger("blur");
418              }
419            }
420          }
421          var eventCurrent = 0;
422          var eventNext = 0;
423          var hero_image_load = {};
424          var _maxAutoGtmLimit = 10;
425          $(_controls_prev).on("click", function(event) {
426            if (hero_image_load.slideChanged) {
427              hero_image_load.heroLoadType = event.type;
428              hero_image_load.slideDirection = "left";
429            }
430          });
431          $(_controls_next).on("click", function(event) {
432            if (hero_image_load.slideChanged) {
433              hero_image_load.heroLoadType = event.type;
434              hero_image_load.slideDirection = "right";
435            }
436          });
437          $([_slider_images, _slider_text]).on("swipe", function(event, slick, direction) {
438            if (hero_image_load.slideChanged) {
439              hero_image_load.heroLoadType = event.type;
440              hero_image_load.slideDirection = direction && direction == "left" ? "right" : "left";
441            }
442          });
443          $(_slider_text).on("beforeChange", function(event, slick, currentSlide2, nextSlide2) {
444            eventCurrent = currentSlide2;
445            eventNext = nextSlide2;
446            hero_image_load.heroLoadType = "auto";
447            hero_image_load.slideDirection = "right";
448            if (slideChanged()) {
449              hero_image_load.currentCarouselPosition = currentSlide2;
450              hero_image_load.nextCarouselPosition = nextSlide2;
451            }
452          });
453          $(_slider_text).on("afterChange", function(event, slick, currentSlide2) {
454            if (hero_image_load.slideChanged) {
455              pushDataLayer();
456            }
457          });
458          function slideChanged() {
459            if (eventCurrent != eventNext && eventCurrent != hero_image_load.currentCarouselPosition) {
460              hero_image_load.slideChanged = true;
461              return true;
462            }
463            hero_image_load.slideChanged = false;
464            return false;
465          }
466          function createDatalayer() {
467            var currentSlide = eval("hero" + $(_this).data("blockguid"))[hero_image_load.currentCarouselPosition];
468            var nextSlide = eval("hero" + $(_this).data("blockguid"))[hero_image_load.nextCarouselPosition];
469            var eventDL = {
470              "event": "hero_image_load",
471              "heroLoadType": hero_image_load.heroLoadType,
472              "slideDirection": hero_image_load.slideDirection,
473              "currentCarouselPosition": currentSlide ? currentSlide.slideIndex : "",
474              "currentImageName": currentSlide ? currentSlide.slideImage : "",
475              "currentSlideTitle": currentSlide ? currentSlide.slideTitle : "",
476              "currentSlideHref": currentSlide ? currentSlide.slideHref : "",
477              "nextCarouselPosition": nextSlide ? nextSlide.slideIndex : "",
478              "nextImageName": nextSlide ? nextSlide.slideImage : "",
479              "nextSlideTitle": nextSlide ? nextSlide.slideTitle : "",
480              "nextSlideHref": nextSlide ? nextSlide.slideHref : ""
481            };
482            return eventDL;
483          }
484          function pushDataLayer() {
485            var gtmdata = createDatalayer();
486            if ($(_this).data("autoplay") && gtmdata.heroLoadType == "auto") {
487              if (_maxAutoGtmLimit) {
488                _maxAutoGtmLimit--;
489              } else {
490                return;
491              }
492            }
493            dataLayer.push(gtmdata);
494          }
495          function bindObserver() {
496            var heroObserver = new IntersectionObserver(
497              (entries) => {
498                entries.forEach((entry) => {
499                  if (entry["isIntersecting"] === true) {
500                    if (entry["intersectionRatio"] >= 0 && entry["intersectionRatio"] <= 0.45) {
501                      eventSlickPause();
502                      _isVisible = false;
503                    } else {
504                      eventSlickPlay();
505                      _isVisible = true;
506                    }
507                  } else {
508                    eventSlickPause();
509                    _isVisible = false;
510                  }
511                });
512              },
513              { threshold: [0, 0.45, 1] }
514            );
515            heroObserver.observe($(_this).get(0));
516          }
517        });
518        $(".eventlist-block-rc-list").each(function() {
519          var _this2 = $(this);
520          var _slider = $(".eventlist-block-rc-slider", $(_this2)).get(0);
521          var _controls2 = $(".slick-controls", $(_this2)).get(0);
522          var _controls_prev2 = $(".slick-backward", _controls2).get(0);
523          var _controls_next2 = $(".slick-forward", _controls2).get(0);
524          var _controls_dots = $(".slick-controls-dots", $(_this2)).get(0);
525          $(_slider).slick({
526            infinite: false,
527            slidesToShow: 1,
528            slidesToScroll: 1,
529            arrows: true,
530            dots: true,
531            appendDots: $(_controls_dots),
532            draggable: true,
533            autoplay: false,
534            prevArrow: $(_controls_prev2),
535            nextArrow: $(_controls_next2),
536            accessibility: true
537          });
538        });
539        $(".linkitemcarousel-block-list").each(function() {
540          var _this2 = $(this);
541          var _slider = $(".linkitemcarousel-block-slider", $(_this2)).get(0);
542          var _controls2 = $(".slick-controls", $(_this2)).get(0);
543          var _controls_prev2 = $(".slick-backward", _controls2).get(0);
544          var _controls_next2 = $(".slick-forward", _controls2).get(0);
545          var _controls_dots = $(".slick-controls-dots", $(_this2)).get(0);
546          $(_slider).slick({
547            infinite: false,
548            slidesToShow: 4,
549            slidesToScroll: 4,
550            arrows: true,
551            dots: true,
552            appendDots: $(_controls_dots),
553            draggable: true,
554            autoplay: false,
555            prevArrow: $(_controls_prev2),
556            nextArrow: $(_controls_next2),
557            responsive: [
558              {
559                breakpoint: 1200,
560                settings: {
561                  slidesToShow: 3,
562                  slidesToScroll: 3
563                }
564              },
565              {
566                breakpoint: 992,
567                settings: {
568                  slidesToShow: 2,
569                  slidesToScroll: 2
570                }
571              },
572              {
573                breakpoint: 576,
574                settings: {
575                  slidesToShow: 1,
576                  slidesToScroll: 1
577                }
578              }
579            ]
580          });
581        });
582        $(".articlepage-slider").each(function() {
583          var _this2 = $(this);
584          var _controls2 = $(".slick-controls", $(_this2)).get(0);
585          var _controls_prev2 = $(".slick-backward", _controls2).get(0);
586          var _controls_next2 = $(".slick-forward", _controls2).get(0);
587          var _slider_images2 = $(".articlepage-images-slider", $(_this2)).get(0);
588          var _slider_thumbs = $(".articlepage-thumb-slider", $(_this2)).get(0);
589          var _slider_captions = $(".articlepage-caption-slider", $(_this2)).get(0);
590          var _thumbcount = $(_this2).data("thumbcount");
591          $(_slider_images2).slick({
592            infinite: false,
593            slidesToShow: 1,
594            slidesToScroll: 1,
595            arrows: false,
596            dots: false,
597            draggable: false,
598            autoplay: false
599            //,
600            //asNavFor: $(_slider_thumbs)
601          });
602          $(_slider_thumbs).slick({
603            infinite: false,
604            slidesToShow: _thumbcount,
605            slidesToScroll: _thumbcount,
606            arrows: true,
607            dots: false,
608            draggable: false,
609            autoplay: false,
610            prevArrow: $(_controls_prev2),
611            nextArrow: $(_controls_next2)
612            //,
613            //asNavFor: $(_slider_images)
614          });
615          $(_slider_captions).slick({
616            infinite: false,
617            slidesToShow: 1,
618            slidesToScroll: 1,
619            arrows: false,
620            dots: false,
621            draggable: false,
622            autoplay: false
623          });
624          $(".slick-slide", _slider_thumbs).on("click", function() {
625            var _index = $(this).data("slick-index");
626            $(_slider_images2).slick("slickGoTo", _index, true);
627            $(_slider_captions).slick("slickGoTo", _index, true);
628          });
629        });
630        $(".nav-scrollable").each(function() {
631          var _parent = $(this).data("target-parent") ? $($(this).data("target-parent")) : $(this);
632          var _navwrap = $(".nav-scrollable-wrap", this).get(0);
633          scrollableTabsCalcOverflow(_navwrap, _parent);
634          $(window).on("resize", function() {
635            scrollableTabsCalcOverflow(_navwrap, _parent);
636          });
637        });
638        function scrollableTabsCalcOverflow(_navwrap, _parent) {
639          if ($(_navwrap)[0].scrollWidth > Math.ceil($(_navwrap).width())) {
640            $(_parent).addClass("scrollable-overflow");
641            $(_navwrap).on("scroll.tab-scroll", function() {
642              scrollableTabsScrollControls(_parent, _navwrap, $(_navwrap).scrollLeft());
643            });
644            scrollableTabsScrollControls(_parent, _navwrap, $(_navwrap).scrollLeft());
645            $(".nav-scroll-left", _parent).on("click.scroll-left", function() {
646              var _scrollToVal = $(_navwrap).scrollLeft() - $(_navwrap).width();
647              scrollableTabsScrollControls(_parent, _navwrap, _scrollToVal);
648              $(_navwrap).stop(true, true);
649              $(_navwrap).animate({ "scrollLeft": _scrollToVal + "px" });
650            });
651            $(".nav-scroll-right", _parent).on("click.scroll-right", function() {
652              var _scrollToVal = $(_navwrap).scrollLeft() + $(_navwrap).width();
653              scrollableTabsScrollControls(_parent, _navwrap, _scrollToVal);
654              $(_navwrap).stop(true, true);
655              $(_navwrap).animate({ "scrollLeft": _scrollToVal + "px" });
656            });
657          } else {
658            $(_parent).removeClass("scrollable-overflow");
659            $(_navwrap).off("scroll.tab-scroll");
660            $(".nav-scroll-left", _parent).off("click.scroll-left");
661            $(".nav-scroll-right", _parent).off("click.scroll-right");
662          }
663        }
664        function scrollableTabsScrollControls(_parent, _navwrap, _scrollToVal) {
665          if (_scrollToVal <= 0) {
666            $(".nav-scroll-left", _parent).hide();
667          } else {
668            $(".nav-scroll-left", _parent).show();
669          }
670          if ($(_navwrap)[0].scrollWidth > _scrollToVal + $(_navwrap).width()) {
671            $(".nav-scroll-right", _parent).show();
672          } else {
673            $(".nav-scroll-right", _parent).hide();
674          }
675        }
676        $(".subnav.subnav-default select").on("change", function(e) {
677          window.location.href = $("option:selected", this).val();
678        });
679        $(".back-to-top").on("click", function() {
680          var _this2 = $(this);
681          $("html, body").stop(true, true);
682          $("html, body").animate({ scrollTop: 0 }, 350, "linear", function() {
683            $(_this2).blur();
684          });
685        });
686        $(".back-to-top").on("focus", function() {
687          var _this2 = $(this);
688          $(this).bind("keyup.BackToTop", function(event) {
689            if (event.which == 13) {
690              $(_this2).trigger("click");
691            }
692          });
693        });
694        $(".back-to-top").on("blur", function() {
695          $(this).unbind("keyup.BackToTop");
696        });
697        $(".back-to-top").on("mouseleave", function() {
698          $(this).blur();
699        });
700        $(".scroll-to-anchor").on("click", function(e) {
701          e.preventDefault();
702          var _this2 = $(this);
703          var voffset = $($(_this2).attr("href")).offset().top - 75;
704          $("html, body").stop(true, true);
705          $("html, body").animate({ scrollTop: voffset }, 250, "linear", function() {
706            $(_this2).blur();
707          });
708        });
709        $('.accordionblock .accordion-collapse[data-collapseothers="true"]').each(function() {
710          $(this).on("show.bs.collapse", function(event) {
711            $(".accordion-collapse").collapse("hide");
712          });
713        });
714        $(".articlepage-image-modal > .modal").each(function() {
715          var _this2 = $(this);
716          $(_this2).on("show.bs.modal", function(event) {
717            var button = event.relatedTarget;
718            var imgSrc = button.getAttribute("data-bs-img-src");
719            var modalBody = $(".modal-body", _this2);
720            $(modalBody).html(`<img src="${imgSrc}" />`);
721          });
722        });
723      });
724    }
725  });
726  require_Site();
727})();
728//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vU3RhdGljL1NjcmlwdHMvU2l0ZS5qcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiXHVGRUZGJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICAgIHZhciBfaGVhZGVyID0gJCgnaGVhZGVyJykuZ2V0KDApO1xuICAgIHZhciBfaGVhZGVyUGFyZW50ID0gJCgnaGVhZGVyJykucGFyZW50KCkuZ2V0KDApO1xuICAgIHZhciBfaGVhZGVyTmF2ID0gJCgnLmhlYWRlci1uYXZpZ2F0aW9uJykuZ2V0KDApO1xuICAgIHZhciBfaGVhZGVyVXRpbGl0eSA9ICQoJy5oZWFkZXItdXRpbGl0eScpLmdldCgwKTtcbiAgICB2YXIgX3NlYXJjaFBhZ2VGaWx0ZXJzUGFuZWwgPSAkKCcuc2VhcmNoLXJlc3VsdHMtZmlsdGVycy1wYW5lbCcpLmdldCgwKTtcbiAgICB2YXIgX2hlYWRlckhlaWdodCA9IChfaGVhZGVyKSA/ICQoX2hlYWRlcikuaGVpZ2h0KCkgOiAwO1xuICAgIHZhciBfdXRpbGl0eUhlaWdodCA9IChfaGVhZGVyVXRpbGl0eSkgPyAkKF9oZWFkZXJVdGlsaXR5KS5oZWlnaHQoKSA6IDA7XG4gICAgdmFyIF9oZWFkZXJUcmlnZ2VyT2Zmc2V0ID0gKF9oZWFkZXJQYXJlbnQpID8gJChfaGVhZGVyUGFyZW50KS5vZmZzZXQoKS50b3AgKyAoKCQod2luZG93KS53aWR0aCgpID49IDEyMDApID8gX3V0aWxpdHlIZWlnaHQgOiAwKSA6IDA7XG4gICAgaWYgKF9oZWFkZXIgJiYgX2hlYWRlclBhcmVudCkge1xuICAgICAgICAkKHdpbmRvdykub24oJ3Njcm9sbCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIENhbGN1bGF0ZUZpeGVkSGVhZGVyKCk7XG4gICAgICAgI
728H0pO1xuICAgICAgICAkKHdpbmRvdykub24oJ3Jlc2l6ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF9oZWFkZXJIZWlnaHQgPSAkKF9oZWFkZXIpLmhlaWdodCgpO1xuICAgICAgICAgICAgX3V0aWxpdHlIZWlnaHQgPSAkKF9oZWFkZXJVdGlsaXR5KS5oZWlnaHQoKTtcbiAgICAgICAgICAgIF9oZWFkZXJUcmlnZ2VyT2Zmc2V0ID0gJChfaGVhZGVyUGFyZW50KS5vZmZzZXQoKS50b3AgKyAoKCQod2luZG93KS53aWR0aCgpID49IDEyMDApID8gX3V0aWxpdHlIZWlnaHQgOiAwKTtcbiAgICAgICAgICAgIENhbGN1bGF0ZUZpeGVkSGVhZGVyKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBDYWxjdWxhdGVGaXhlZEhlYWRlcigpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBDYWxjdWxhdGVGaXhlZEhlYWRlcigpIHtcbiAgICAgICAgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSA+IF9oZWFkZXJUcmlnZ2VyT2Zmc2V0KSB7XG4gICAgICAgICAgICAkKF9oZWFkZXIpLmFkZENsYXNzKCdoZWFkZXItZml4ZWQnKTtcbiAgICAgICAgICAgICQoX2hlYWRlclBhcmVudCkuYWRkQ2xhc3MoJ2hlYWRlci1maXhlZCcpO1xuICAgICAgICAgICAgJChfaGVhZGVyUGFyZW50KS5jc3MoeyAncGFkZGluZy10b3AnOiBfaGVhZGVySGVpZ2h0ICsgJ3B4JyB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICQoX2hlYWRlclBhcmVudCkuY3NzKHsgJ3BhZGRpbmctdG9wJzogJzBweCcgfSk7XG4gICAgICAgICAgICAkKF9oZWFkZXIpLnJlbW92ZUNsYXNzKCdoZWFkZXItZml4ZWQnKTtcbiAgICAgICAgICAgICQoX2hlYWRlclBhcmVudCkucmVtb3ZlQ2xhc3MoJ2hlYWRlci1maXhlZCcpO1xuICAgICAgICAgICAgY2xvc2VOYXYoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICQoJy5uYXYtaGFtYnVyZ2VyJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgb3Blbk5hdigpO1xuICAgIH0pO1xuXG4gICAgJCgnLnNvcnQtZmlsdGVyLWJ1dHRvbicpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIG9wZW5Tb3J0QW5kRmlsdGVycygpO1xuICAgIH0pO1xuXG4gICAgJCgnLnNvcnQtZmlsdGVyLWNsb3NlJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgY2xvc2VTb3J0QW5kRmlsdGVycygpO1xuICAgIH0pO1xuXG4gICAgJCgnLmhlYWRlci1uYXZpZ2F0aW9uJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcblxuICAgICQoJy5uYXYtY2xvc2UnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBjbG9zZU5hdigpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gb3Blbk5hdigpIHtcbiAgICAgICAgJCgnaHRtbCcpLmFkZENsYXNzKCduYXYtb3BlbicpO1xuICAgICAgICAkKF9oZWFkZXIpLmFkZENsYXNzKCduYXYtb3BlbicpO1xuICAgICAgICAkKF9oZWFkZXIpLm9uKCdjbGljay5jbG9zZU5hdk9uQmx1cicsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBjbG9zZU5hdigpO1xuICAgICAgICB9KTtcbiAgICAgICAgJChkb2N1bWVudCkub24oJ2tleXVwLm5hdm9wZW4nLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChldmVudC53aGljaCA9PSAyNykge1xuICAgICAgICAgICAgICAgIGNsb3NlTmF2KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsb3NlTmF2KCkge1xuICAgICAgICAkKCdodG1sJykucmVtb3ZlQ2xhc3MoJ25hdi1vcGVuJyk7XG4gICAgICAgICQoX2hlYWRlcikucmVtb3ZlQ2xhc3MoJ25hdi1vcGVuJyk7XG4gICAgICAgICQoX2hlYWRlcikub2ZmKCdjbGljay5jbG9zZU5hdk9uQmx1cicpO1xuICAgICAgICAkKF9oZWFkZXIpLm9mZigna2V5dXAubmF2b3BlbicpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG9wZW5Tb3J0QW5kRmlsdGVycygpIHtcbiAgICAgICAgJCgnaHRtbCcpLmFkZENsYXNzKCdzb3J0LWZpbHRlci1vcGVuJyk7XG4gICAgICAgICQoX3NlYXJjaFBhZ2VGaWx0ZXJzUGFuZWwpLmFkZENsYXNzKCdzb3J0LWZpbHRlci1vcGVuJyk7XG4gICAgICAgIC8vICQoX3NlYXJjaFBhZ2VGaWx0ZXJzUGFuZWwpLm9uKCdjbGljay5jbG9zZVNvcnRBbmRGaWx0ZXJzT25CbHVyJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgLy8gICAgIGNsb3NlU29ydEFuZEZpbHRlcnMoKTtcbiAgICAgICAgLy8gfSk7XG4gICAgICAgICQoZG9jdW1lbnQpLm9uKCdrZXl1cC5Tb3J0QW5kRmlsdGVyc29wZW4nLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChldmVudC53aGljaCA9PSAyNykge1xuICAgICAgICAgICAgICAgIGNsb3NlU29ydEFuZEZpbHRlcnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2xvc2VTb3J0QW5kRmlsdGVycygpIHtcbiAgICAgICAgJCgnaHRtbCcpLnJlbW92ZUNsYXNzKCdzb3J0LWZpbHRlci1vcGVuJyk7XG4gICAgICAgICQoX3NlYXJjaFBhZ2VGaWx0ZXJzUGFuZWwpLnJlbW92ZUNsYXNzKCdzb3J0LWZpbHRlci1vcGVuJyk7XG4gICAgICAgIC8vJChfc2VhcmNoUGFnZUZpbHRlcnNQYW5lbCkub2ZmKCdjbGljay5jbG9zZVNvcnRBbmRGaWx0ZXJzT25CbHVyJyk7XG4gICAgICAgICQoX3NlYXJjaFBhZ2VGaWx0ZXJzUGFuZWwpLm9mZigna2V5dXAuU29ydEFuZEZpbHRlcnNvcGVuJyk7XG4gICAgfVxuXG4gICAgJCh3aW5kb3cpLm9uKCdyZXNpemUnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNsb3NlU29ydEFuZEZpbHRlcnMoKTtcbiAgICB9KTtcblxuICAgIHZhciBsaU5hdkVudGVyID0gbnVsbDtcbiAgICAkKCdsaS5uYXZfbHZsXzAnKS5vbignbW91c2VlbnRlcicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgbGlOYXZFbnRlciA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJCgnYScsICQodGhpcykuc2libGluZ3MoKSkuYmx1cigpO1xuICAgICAgICAgICAgaWYgKCQoX3RoaXMpLmhhc0NsYXNzKCdIYXNDaGlsZHJlbicpKSB7XG4gICAgICAgICAgICAgICAgJCgndWwubmF2X2x2bF8wJ
728ykuYWRkQ2xhc3MoJ2ZvY3VzZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQoJz4gYSwgPiBzcGFuJywgdGhpcykuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgICAgIH0sIDIwMCk7XG4gICAgfSlcbiAgICAub24oJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNsZWFyVGltZW91dChsaU5hdkVudGVyKTtcbiAgICAgICAgJCgndWwubmF2X2x2bF8wJykucmVtb3ZlQ2xhc3MoJ2ZvY3VzZWQnKTtcbiAgICAgICAgJCgnPiBhLCA+IHNwYW4nLCB0aGlzKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgfSk7XG5cbiAgICAkKCcubmF2X2x2bF8wLkhhc0NoaWxkcmVuID4gYSwgLm5hdl9sdmxfMC5IYXNDaGlsZHJlbiA+IHNwYW4nKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdsaWV4dGVuZGVkJykpIHtcbiAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2xpZXh0ZW5kZWQnKTtcbiAgICAgICAgICAgICQodGhpcykucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ2xpZXh0ZW5kZWQnKTtcbiAgICAgICAgICAgICQoJy5uYXZpZ2F0aW9uLW1haW4gPiBuYXYnKS5yZW1vdmVDbGFzcygnbGlleHRlbmRlZCcpO1xuICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdsaWV4dGVuZGVkJyk7XG4gICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmFkZENsYXNzKCdsaWV4dGVuZGVkJyk7XG4gICAgICAgICAgICAkKCcubmF2aWdhdGlvbi1tYWluID4gbmF2JykuYWRkQ2xhc3MoJ2xpZXh0ZW5kZWQnKTtcbiAgICAgICAgICAgICQodGhpcykuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgICQoJy5uYXZfbHZsXzAuSGFzQ2hpbGRyZW4nKS5vbignbW91c2VsZWF2ZScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGlmICghJChfaGVhZGVyKS5oYXNDbGFzcygnaGVhZGVyLWZpeGVkJykgJiYgISQoX2hlYWRlcikuaGFzQ2xhc3MoJ25hdi1vcGVuJykpIHtcbiAgICAgICAgICAgICQoJy5uYXZpZ2F0aW9uLW1haW4gYSwgLm5hdmlnYXRpb24tbWFpbiBzcGFuJykuYmx1cigpO1xuICAgICAgICAgICAgJCgnLmxpZXh0ZW5kZWQnKS5yZW1vdmVDbGFzcygnbGlleHRlbmRlZCcpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkKHdpbmRvdykub24oJ3Jlc2l6ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCgnLm5hdmlnYXRpb24tbWFpbiBhLCAubmF2aWdhdGlvbi1tYWluIHNwYW4nKS5ibHVyKCk7XG4gICAgICAgICQoJy5saWV4dGVuZGVkJykucmVtb3ZlQ2xhc3MoJ2xpZXh0ZW5kZWQnKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG9uVmlzaWJsZShlbGVtZW50LCBjYWxsYmFjaykge1xuICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcywgb2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuc2libGluZ3MoJ1tyb2xlPVwibWVudWl0ZW1cIl0nKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuc2libGluZ3MoJ1tyb2xlPVwibWVudWl0ZW1cIl0nKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuICAgIH1cblxuICAgICQoJ2xpLkhhc0NoaWxkcmVuLm5hdl9sdmxfMCA+IC5uYXYtZHJvcGRvd24nKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKVswXTtcbiAgICAgICAgb25WaXNpYmxlKF90aGlzLCBmdW5jdGlvbiAoKSB7fSk7XG4gICAgfSk7XG5cbiAgICAkKCcuaGVhZGVyLXNlYXJjaC1pY29uJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgb3BlblNlYXJjaCgpO1xuICAgIH0pO1xuICAgICQoJy5zZWFyY2gtY2xvc2UnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBjbG9zZVNlYXJjaCgkKHRoaXMpKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG9wZW5TZWFyY2goKSB7XG4gICAgICAgICQoX2hlYWRlcikuYWRkQ2xhc3MoJ3NlYXJjaC1vcGVuJyk7XG4gICAgICAgICQoZG9jdW1lbnQpLm9uKCdrZXl1cC5zZWFyY2hvcGVuJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQud2hpY2ggPT0gMjcpIHtcbiAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8kKF9oZWFkZXIpLm9uKCdjbGljay5jbG9zZVNlYXJjaE9uQmx1cicsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIC8vICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgIC8vfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2xvc2VTZWFyY2godHJpZ2dlciA9IG51bGwpIHtcbiAgICAgICAgJChfaGVhZGVyKS5yZW1vdmVDbGFzcygnc2VhcmNoLW9wZW4nKTtcbiAgICAgICAgaWYgKHRyaWdnZXIpIHtcbiAgICAgICAgICAgICQodHJpZ2dlcikucHJldignaW5wdXQnKS52YWwoJycpO1xuICAgICAgICAgICAgJCh0cmlnZ2VyKS5yZW1vdmVDbGFzcygnc2hvdycpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgJCgnLmdsb2JhbC1zZWFyY2gtaW5wdXQgLnNlYXJjaElucHV0ID4gaW5wdXQnKS52YWwoJycpO1xuICAgICAgICAgICAgJCgnLmdsb2JhbC1zZWFyY2gtaW5wdXQgLnNlYXJjaElucHV0ID4gLnNlYXJjaC1jbG9zZScpLnJlbW92ZUNsYXNzKCdzaG93Jyk7XG4gICAgICAgI
728H1cbiAgICAgICAgJChkb2N1bWVudCkub2ZmKCdrZXl1cC5zZWFyY2hvcGVuJyk7XG4gICAgICAgIC8vJChfaGVhZGVyKS5vZmYoJ2NsaWNrLmNsb3NlU2VhcmNoT25CbHVyJyk7XG4gICAgfVxuXG4gICAgJCgnLmdsb2JhbC1zZWFyY2gtaW5wdXQgLnNlYXJjaElucHV0IGEuU2VhcmNoQnV0dG9uJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBWYWxpZGF0ZVNlYXJjaFRlcm0oJCh0aGlzKS5zaWJsaW5ncygnaW5wdXQnKSk7XG4gICAgfSk7XG4gICAgJCgnLmdsb2JhbC1zZWFyY2gtaW5wdXQgLnNlYXJjaElucHV0ID4gaW5wdXQnKS5vbigna2V5dXAnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9ICQodGhpcyk7XG4gICAgICAgIHZhciBzZWFyY2hJbnB1dFZhbCA9ICQoX3RoaXMpLnZhbCgpLnRyaW0oKTtcbiAgICAgICAgaWYgKHNlYXJjaElucHV0VmFsICE9IFwiXCIgJiYgc2VhcmNoSW5wdXRWYWwgIT09IG51bGwgJiYgc2VhcmNoSW5wdXRWYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgJChfdGhpcykubmV4dCgnLnNlYXJjaC1jbG9zZScpLmFkZENsYXNzKCdzaG93Jyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAkKF90aGlzKS5uZXh0KCcuc2VhcmNoLWNsb3NlJykucmVtb3ZlQ2xhc3MoJ3Nob3cnKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgICQoJy5nbG9iYWwtc2VhcmNoLWlucHV0IC5zZWFyY2hJbnB1dCA+IGlucHV0Jykub24oJ2ZvY3VzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB2Y
728XIgX3RoaXMgPSAkKHRoaXMpO1xuICAgICAgICAkKGRvY3VtZW50KS5iaW5kKCdrZXl1cC5TZWFyY2hUeXBpbmdTdGFydGVkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQud2hpY2ggPT0gMTMpIHtcbiAgICAgICAgICAgICAgICBWYWxpZGF0ZVNlYXJjaFRlcm0oX3RoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICAkKCcuZ2xvYmFsLXNlYXJjaC1pbnB1dCAuc2VhcmNoSW5wdXQgPiBpbnB1dCcpLm9uKCdmb2N1c291dCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJChkb2N1bWVudCkudW5iaW5kKCdrZXl1cC5TZWFyY2hUeXBpbmdTdGFydGVkJyk7XG4gICAgfSk7XG4gICAgLy8kKCcuanMtc2VhcmNoLXNvcnQnKS5vbignY2hhbmdlJyxcbiAgICAvLyAgICBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAvLyAgICAgICAgdmFyIHNvcnQgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgLy8gICAgICAgIHZhciBxID0gJCh0aGlzKS5kYXRhKCdxJyk7XG4gICAgLy8gICAgICAgIHZhciBzZWFyY2hVcmwgPSBsb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyBsb2NhdGlvbi5ob3N0ICsgbG9jYXRpb24ucGF0aG5hbWU7XG4gICAgLy8gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gc2VhcmNoVXJsICsgJz9xPScgKyBxICsgJyZzb3J0PScgKyBzb3J0O1xuICAgIC8vICAgIH1cbiAgICAvLyk7XG4gICAgZnVuY3Rpb24gVmFsaWRhdGVTZWFyY2hUZXJtKGVsU2VhcmNoSW5wdXQpIHtcbiAgICAgICAgdmFyIHNlYXJjaElucHV0VmFsID0gZWxTZWFyY2hJbnB1dC52YWwoKS50cmltKCk7XG4gICAgICAgIGlmIChzZWFyY2hJbnB1dFZhbCAhPSBcIlwiICYmIHNlYXJjaElucHV0VmFsICE9PSBudWxsICYmIHNlYXJjaElucHV0VmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vR0FTZW5kU2VhcmNoVGVybShzZWFyY2hJbnB1dFZhbCk7XG4gICAgICAgICAgICB2Y
728XIgc2VhcmNoVXJsID0gZWxTZWFyY2hJbnB1dC5hdHRyKCdkYXRhLXNlYXJjaC11cmwnKTtcbiAgICAgICAgICAgIGlmIChzZWFyY2hVcmwgIT0gXCJcIiAmJiBzZWFyY2hVcmwgIT09IG51bGwgJiYgc2VhcmNoVXJsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHNlYXJjaFVybCArICc/cT0nICsgc2VhcmNoSW5wdXRWYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyQoJzxkaXYvPicpLmFkZENsYXNzKCdzZWFyY2hJbnB1dEVycm9yJykuaHRtbCgnPHNwYW4gY2xhc3M9XCJpY29uIGljb24tYW5nbGUtZG91YmxlLXVwXCI+PC9zcGFuPiBFcnJvciBzZWFyY2hpbmcsIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXInKS5hcHBlbmRUbygkKGVsU2VhcmNoSW5wdXQpLnBhcmVudCgpKS5mYWRlSW4oZnVuY3Rpb24gKCkgeyAkKHRoaXMpLmRlbGF5KDMwMDApLmZhZGVPdXQoZnVuY3Rpb24gKCkgeyAkKHRoaXMpLnJlbW92ZSgpOyB9KTsgfSk7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciBzZWFyY2hpbmcsIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXInKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyQoJzxkaXYvPicpLmFkZENsYXNzKCdzZWFyY2hJbnB1dEVycm9yJykuaHRtbCgnPHNwYW4gY2xhc3M9XCJpY29uIGljb24tYW5nbGUtZG91YmxlLXVwXCI+PC9zcGFuPiBFbnRlciBhIFNlYXJjaCBUZXJtJykuYXBwZW5kVG8oJChlbFNlYXJjaElucHV0KS5wYXJlbnQoKSkuZmFkZUluKGZ1bmN0aW9uICgpIHsgJCh0aGlzKS5kZWxheSgzMDAwKS5mYWRlT3V0KGZ1bmN0aW9uICgpIHsgJCh0aGlzKS5yZW1vdmUoKTsgfSk7IH0pO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbXB0eSBzZWFyY2ggbm90IGFsbG93ZWQnKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICQoJy5hZHMtbG9naW4nKVxuICAgICAgICAub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcygnYWRzLWxvZ2luLWV4cGFuZGVkJykuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignbW91c2VsZWF2ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2Fkcy1sb2dpbi1leHBhbmRlZCcpLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcbiAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZigna2V5dXAuYWRzLWxvZ2luLWZvY3VzZWQnKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdmb2N1cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBfdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAkKGRvY3VtZW50KS5vbigna2V5dXAuYWRzLWxvZ2luLWZvY3VzZWQnLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09IFwiRW50ZXJcIiB8fCBldmVudC5rZXlDb2RlID09IDEzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkKF90aGlzKS5hdHRyKCdhcmlhLWV4cGFuZGVkJykgPT0gJ2ZhbHNlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJChfdGhpcykuYWRkQ2xhc3MoJ2Fkcy1sb2dpbi1leHBhbmRlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJChfdGhpcykuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKF90aGlzKS5yZW1vdmVDbGFzcygnYWRzLWxvZ2luLWV4cGFuZGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKF90aGlzKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdmb2N1c291dCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBfdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICBpZiAoISQoX3RoaXMpLmlzKCc6Zm9jdXMtd2l0aGluJykpIHtcbiAgICAgICAgICAgICAgICAkKF90aGlzKS5yZW1vdmVDbGFzcygnYWRzLWxvZ2luLWV4cGFuZGVkJyk7XG4gICAgICAgICAgICAgICAgJChfdGhpcykuYXR0cignYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZigna2V5dXAuYWRzLWxvZ2luLWZvY3VzZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAkKCcuZmFxLWJsb2NrJylcbiAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgIGlmICghJChfdGhpcykuZGF0YSgnZmFxLWZvY3VzLWxvY2snKSkge1xuICAgICAgICAgICAgICAgICQoX3RoaXMpLmRhdGEoJ2ZhcS1mb2N1cy1sb2NrJywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7ICQoX3RoaXMpLmRhdGEoJ2ZhcS1mb2N1cy1sb2NrJywgZmFsc2UpOyB9LCAyMDApO1xuICAgICAgICAgICAgICAgICQoX3RoaXMpLnRvZ2dsZUNsYXNzKCdmYXEtYmxvY2stZXhwYW5kZWQnKTtcbiAgICAgICAgICAgICAgICBpZiAoISQoX3RoaXMpLmhhc0NsYXNzKCdmYXEtYmxvY2stZXhwYW5kZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAkKF90aGlzKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQoX3RoaXMpLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJChfdGhpcykucGFyZW50KCkuc2libGluZ3MoKS5jaGlsZHJlbigpLnJlbW92ZUNsYXNzKCdmYXEtYmxvY2stZXhwYW5kZWQnKTtcbiAgICAgICAgICAgI
728H1cbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdmb2N1cycsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgIGlmICghJChfdGhpcykuaGFzQ2xhc3MoJ2ZhcS1ibG9jay1leHBhbmRlZCcpKSB7XG4gICAgICAgICAgICAgICAgJChfdGhpcykuZGF0YSgnZmFxLWZvY3VzLWxvY2snLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgJChfdGhpcykuZGF0YSgnZmFxLWZvY3VzLWxvY2snLCBmYWxzZSk7IH0sIDIwMCk7XG4gICAgICAgICAgICAgICAgJChfdGhpcykuYWRkQ2xhc3MoJ2ZhcS1ibG9jay1leHBhbmRlZCcpO1xuICAgICAgICAgICAgICAgICQoX3RoaXMpLnBhcmVudCgpLnNpYmxpbmdzKCkuY2hpbGRyZW4oKS5yZW1vdmVDbGFzcygnZmFxLWJsb2NrLWV4cGFuZGVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignZm9jdXNpbicsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgIGlmICgkKF90aGlzKS5pcygnOmZvY3VzLXdpdGhpbicpKSB7XG4gICAgICAgICAgICAgICAgJChfdGhpcykuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKF90aGlzKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignZm9jdXNvdXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2Y
728XIgX3RoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgaWYgKCEkKF90aGlzKS5pcygnOmZvY3VzLXdpdGhpbicpKSB7XG4gICAgICAgICAgICAgICAgJChfdGhpcykuYXR0cignYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAkKCcuZmFxLWJsb2NrLWFuc3dlciAqJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIFxuICAgIGZ1bmN0aW9uIGdldFRpbWVSZW1haW5pbmcoZW5kdGltZSkge1xuICAgICAgICB2YXIgdCA9IGVuZHRpbWUgLSBEYXRlLnBhcnNlKG5ldyBEYXRlKCkpO1xuICAgICAgICB2YXIgc2Vjb25kcyA9IE1hdGguZmxvb3IoKHQgLyAxMDAwKSAlIDYwKTtcbiAgICAgICAgdmFyIG1pbnV0ZXMgPSBNYXRoLmZsb29yKCh0IC8gMTAwMCAvIDYwKSAlIDYwKTtcbiAgICAgICAgdmFyIGhvdXJzID0gTWF0aC5mbG9vcigodCAvICgxMDAwICogNjAgKiA2MCkpICUgMjQpO1xuICAgICAgICB2YXIgZGF5cyA9IE1hdGguZmxvb3IodCAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XG4gICAgICAgIHJldHVybiB7ICd0b3RhbCc6IHQsICdkYXlzJzogZGF5cywgJ2hvdXJzJzogaG91cnMsICdtaW51dGVzJzogbWludXRlcywgJ3NlY29uZHMnOiBzZWNvbmRzIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdXBkYXRlVGlja2VyKF90LCBfZGF5cywgX2hvdXJzLCBfbWludXRlcywgX3NlY29uZHMpIHtcbiAgICAgICAgJChfZGF5cykuaHRtbCgoX3QuZGF5cyA8IDk5KSA/ICgnMCcgKyBfdC5kYXlzKS5zbGljZSgtMikgOiBfdC5kYXlzKTtcbiAgICAgICAgJChfaG91cnMpLmh0bWwoKCcwJyArIF90LmhvdXJzKS5zbGljZSgtMikpO1xuICAgICAgICAkKF9taW51dGVzKS5odG1sKCgnMCcgKyBfdC5taW51dGVzKS5zbGljZSgtMikpO1xuICAgICAgICAkKF9zZWNvbmRzKS5odG1sKCgnMCcgKyBfdC5zZWNvbmRzKS5zbGljZSgtMikpO1xuICAgIH1cblxuICAgICQoJy50aW1ldGlja2VyJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfc2hvd1RpY2tlciA9IHRydWU7XG4gICAgICAgIHZhciBfdGltZU5vdyA9IERhdGUucGFyc2UobmV3IERhdGUoKSk7XG4gICAgICAgIHZhciBfZGlzcGxheVN0YXJ0ID0gRGF0ZS5wYXJzZSgkKHRoaXMpLmRhdGEoJ2Rpc3BsYXlzdGFydCcpKSB8fCBudWxsO1xuICAgICAgICB2Y
728XIgX2Rpc3BsYXlFbmQgPSBEYXRlLnBhcnNlKCQodGhpcykuZGF0YSgnZGlzcGxheWVuZCcpKSB8fCBudWxsO1xuICAgICAgICB2YXIgX2V2ZW50VGltZSA9IERhdGUucGFyc2UoJCh0aGlzKS5kYXRhKCdldmVudHRpbWUnKSkgfHwgbnVsbDtcbiAgICAgICAgaWYgKF9ldmVudFRpbWUpIHtcbiAgICAgICAgICAgIGlmIChfZGlzcGxheVN0YXJ0IHx8IF9kaXNwbGF5RW5kKSB7XG4gICAgICAgICAgICAgICAgaWYgKF9kaXNwbGF5U3RhcnQgJiYgX2Rpc3BsYXlTdGFydCA+IF90aW1lTm93KSB7XG4gICAgICAgICAgICAgICAgICAgIF9zaG93VGlja2VyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChfZGlzcGxheUVuZCAmJiBfZGlzcGxheUVuZCA8PSBfdGltZU5vdykge1xuICAgICAgICAgICAgICAgICAgICBfc2hvd1RpY2tlciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIF9zaG93VGlja2VyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF9zaG93VGlja2VyKSB7XG4gICAgICAgICAgICB2YXIgX3QgPSBnZXRUaW1lUmVtYWluaW5nKF9ldmVudFRpbWUpO1xuICAgICAgICAgICAgdmFyIF93cmFwID0gJCgnPGRpdi8+JykuYWRkQ2xhc3MoJ3RpbWV0aWNrZXJfd3JhcCcpO1xuICAgICAgICAgICAgdmFyIF9kYXlzID0gJCgnPHNwYW4vPicpLmh0bWwoJzAwJyk7XG4gICAgICAgICAgICB2YXIgX2RheXN3cmFwID0gJCgnPGRpdi8+JykuYWRkQ2xhc3MoJ3RpbWV0aWNrZXJfZGF5cycpLmh0bWwoJ2RheXMnKS5wcmVwZW5kKF9kYXlzKTtcbiAgICAgICAgICAgIHZhciBfaG91cnMgPSAkKCc8c3Bhbi8+JykuaHRtbCgnMDAnKTtcbiAgICAgICAgICAgIHZhciBfaG91cnN3cmFwID0gJCgnPGRpdi8+JykuYWRkQ2xhc3MoJ3RpbWV0aWNrZXJfaG91cnMnKS5odG1sKCdob3VycycpLnByZXBlbmQoX2hvdXJzKTtcbiAgICAgICAgICAgIHZhciBfbWludXRlcyA9ICQoJzxzcGFuLz4nKS5odG1sKCcwMCcpO1xuICAgICAgICAgICAgdmFyIF9taW51dGVzd3JhcCA9ICQoJzxkaXYvPicpLmFkZENsYXNzKCd0aW1ldGlja2VyX21pbnV0ZXMnKS5odG1sKCdtaW51dGVzJykucHJlcGVuZChfbWludXRlcyk7XG4gICAgICAgICAgICB2Y
728XIgX3NlY29uZHMgPSAkKCc8c3Bhbi8+JykuaHRtbCgnMDAnKTtcbiAgICAgICAgICAgIHZhciBfc2Vjb25kc3dyYXAgPSAkKCc8ZGl2Lz4nKS5hZGRDbGFzcygndGltZXRpY2tlcl9zZWNvbmRzJykuaHRtbCgnc2Vjb25kcycpLnByZXBlbmQoX3NlY29uZHMpO1xuICAgICAgICAgICAgJChfd3JhcCkuYXBwZW5kKF9kYXlzd3JhcCkuYXBwZW5kKF9ob3Vyc3dyYXApLmFwcGVuZChfbWludXRlc3dyYXApLmFwcGVuZChfc2Vjb25kc3dyYXApO1xuXG4gICAgICAgICAgICBpZiAoX3QudG90YWwgPiAwKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlVGlja2VyKF90LCBfZGF5cywgX2hvdXJzLCBfbWludXRlcywgX3NlY29uZHMpO1xuICAgICAgICAgICAgICAgIHZhciB0aWNraW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90ID0gZ2V0VGltZVJlbWFpbmluZyhfZXZlbnRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlVGlja2VyKF90LCBfZGF5cywgX2hvdXJzLCBfbWludXRlcywgX3NlY29uZHMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoX3QudG90YWwgPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aWNraW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICQodGhpcykuc2hvdygpLmFwcGVuZChfd3JhcCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vU2VhcmNoUGFnZVxuICAgIC8vJCgnLmJiU2VhcmNoRmN0c0J0dG5NYmwnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgIC8vICAgICQoJy5iYlNlYXJjaEZjdHNNYmwnKS5zdG9wKHRydWUsIHRydWUpO1xuICAgIC8vICAgIGlmICgkKCcuYmJTZWFyY2hGY3RzTWJsJykuaXMoJzp2aXNpYmxlJykpIHtcbiAgICAvLyAgICAgICAgJCgnLmJiU2VhcmNoRmN0c01ibCcpLmhpZGUoKTtcbiAgICAvLyAgICB9XG4gICAgLy8gICAgZWxzZSB7XG4gICAgLy8gICAgICAgICQoJy5iYlNlYXJjaEZjdHNNYmwnKS5zaG93KCk7XG4gICAgLy8gICAgfVxuICAgIC8vfSk7XG5cbiAgICAvLyQoJ
728y5iYlNlYXJjaEZjdEhkck1uJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAvLyAgICAkKCcuYmJTZWFyY2hGY3RJdG1NbicpLnN0b3AodHJ1ZSwgdHJ1ZSk7XG4gICAgLy8gICAgaWYgKCQodGhpcykubmV4dCgnLmJiU2VhcmNoRmN0SXRtTW4nKS5pcygnOnZpc2libGUnKSkge1xuICAgIC8vICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdpc09wZW4nKTtcbiAgICAvLyAgICAgICAgJCh0aGlzKS5uZXh0KCcuYmJTZWFyY2hGY3RJdG1NbicpLnNsaWRlVXAoMTUwKTtcbiAgICAvLyAgICB9XG4gICAgLy8gICAgZWxzZSB7XG4gICAgLy8gICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2lzT3BlbicpO1xuICAgIC8vICAgICAgICAkKHRoaXMpLm5leHQoJy5iYlNlYXJjaEZjdEl0bU1uJykuc2xpZGVEb3duKDI1MCk7XG4gICAgLy8gICAgfVxuICAgIC8vfSk7XG5cbiAgICAvLyQoJy5iYlNlYXJjaEZjdEl0bU1uIC5tYXhsaXN0LW1vcmUnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgIC8vICAgICQoJ3VsLnNob3dNb3JlJykuc3RvcCh0cnVlLCB0cnVlKTtcbiAgICAvLyAgICBpZiAoJCh0aGlzKS5wcmV2KCd1bC5zaG93TW9yZScpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgLy8gICAgICAgICQodGhpcykudGV4dCgkKHRoaXMpLmRhdGEoJ3RleHRtb3JlJykpO1xuICAgIC8vICAgICAgICAkKHRoaXMpLnByZXYoJ3VsLnNob3dNb3JlJykuc2xpZGVVcCgxNTApO1xuICAgIC8vICAgIH1cbiAgICAvLyAgICBlbHNlIHtcbiAgICAvLyAgICAgICAgJCh0aGlzKS50ZXh0KCQodGhpcykuZGF0YSgndGV4dGxlc3MnKSk7XG4gICAgLy8gICAgICAgICQodGhpcykucHJldigndWwuc2hvd01vcmUnKS5zbGlkZURvd24oMjUwKTtcbiAgICAvLyAgICB9XG4gICAgLy99KTtcblxuICAgICQoJy5oZXJvLWJhbm5lci1zbGlkZXInKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgdmFyIF9jb250cm9scyA9ICQoJy5zbGljay1jb250cm9scycsICQoX3RoaXMpKS5nZXQoMCk7XG4gICAgICAgIHZhciBfY29udHJvbHNfcHJldiA9ICQoJy5zbGljay1iYWNrd2FyZCcsIF9jb250cm9scykuZ2V0KDApO1xuICAgICAgICB2Y
728XIgX2NvbnRyb2xzX25leHQgPSAkKCcuc2xpY2stZm9yd2FyZCcsIF9jb250cm9scykuZ2V0KDApO1xuICAgICAgICB2YXIgX2NvbnRyb2xzX3BhdXNlID0gJCgnLnNsaWNrLWJ0bi1wYXVzZScsIF9jb250cm9scykuZ2V0KDApO1xuICAgICAgICB2YXIgX2NvbnRyb2xzX3BsYXkgPSAkKCcuc2xpY2stYnRuLXBsYXknLCBfY29udHJvbHMpLmdldCgwKTtcbiAgICAgICAgdmFyIF9zbGlkZXJfaW1hZ2VzID0gJCgnLmhlcm8tYmFubmVyLXNsaWRlci1pbWFnZXMtc2xpZGVyJywgJChfdGhpcykpLmdldCgwKTtcbiAgICAgICAgdmFyIF9zbGlkZXJfdGV4dCA9ICQoJy5oZXJvLWJhbm5lci1zbGlkZXItdGV4dC1zbGlkZXInLCAkKF90aGlzKSkuZ2V0KDApO1xuICAgICAgICB2YXIgX2lzVmlzaWJsZSA9IHRydWU7XG5cbiAgICAgICAgdmFyIGhlcm9faW1hZ2VfbG9hZCA9IHt9O1xuICAgICAgICAkKF9zbGlkZXJfaW1hZ2VzKS5vbignaW5pdCcsIGZ1bmN0aW9uIChzbGljaykge1xuICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLmhlcm9Mb2FkVHlwZSA9ICdpbml0JztcbiAgICAgICAgICAgIGhlcm9faW1hZ2VfbG9hZC5zbGlkZURpcmVjdGlvbiA9ICcnO1xuICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLm5leHRDYXJvdXNlbFBvc2l0aW9uID0gMDtcbiAgICAgICAgICAgIHB1c2hEYXRhTGF5ZXIoKTtcblxuICAgICAgICAgICAgaWYgKCQoX3RoaXMpLmRhdGEoJ2F1dG9wbGF5JykpIHtcbiAgICAgICAgICAgICAgICBiaW5kT2JzZXJ2ZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgJChfc2xpZGVyX2ltYWdlcykuc2xpY2soe1xuICAgICAgICAgICAgaW5maW5pdGU6ICQoX3RoaXMpLmRhdGEoJ2F1dG9wbGF5JykgfHwgZmFsc2UsXG4gICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsXG4gICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMSxcbiAgICAgICAgICAgIGFycm93czogZmFsc2UsXG4gICAgICAgICAgICBkb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGF1dG9wbGF5OiAkKF90aGlzKS5kYXRhKCdhdXRvcGxheScpIHx8IGZhbHNlLFxuICAgICAgICAgICAgYXV0b3BsYXlTcGVlZDogJChfdGhpcykuZGF0YSgncm90YXRpb25pbnRlcnZhbHMnKSB8fCAzMDAwLFxuICAgICAgICAgICAgc3BlZWQ6ICQoX3RoaXMpLmRhdGEoJ3RyYW5zaXRpb25zcGVlZCcpIHx8IDMwMCxcbiAgICAgICAgICAgIGFzTmF2Rm9yOiAkKF9zbGlkZXJfdGV4dCksXG4gICAgICAgICAgICB1c2VBdXRvcGxheVRvZ2dsZUJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICBwYXVzZU9uSG92ZXI6IGZhbHNlXG4gICAgICAgICAgICAvL3BhdXNlT25Gb2N1czogJChfdGhpcykuZGF0YSgnYXV0b3BsYXknKSB8fCBmYWxzZSxcbiAgICAgICAgICAgIC8vcGF1c2VPbkhvdmVyOiAkKF90aGlzKS5kYXRhKCdhdXRvcGxheScpIHx8IGZhbHNlLFxuICAgICAgICAgICAgLy9wYXVzZU9uRG90c0hvdmVyOiAkKF90aGlzKS5kYXRhKCdhdXRvcGxheScpIHx8IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgJChfc2xpZGVyX3RleHQpLnNsaWNrKHtcbiAgICAgICAgICAgIGluZmluaXRlOiAkKF90aGlzKS5kYXRhKCdhdXRvcGxheScpIHx8IGZhbHNlLFxuICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAxLFxuICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gICAgICAgICAgICBhcnJvd3M6IHRydWUsXG4gICAgICAgICAgICBkb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIHNwZWVkOiAkKF90aGlzKS5kYXRhKCd0cmFuc2l0aW9uc3BlZWQnKSB8fCAzMDAsXG4gICAgICAgICAgICBwcmV2QXJyb3c6ICQoX2NvbnRyb2xzX3ByZXYpLFxuICAgICAgICAgICAgbmV4dEFycm93OiAkKF9jb250cm9sc19uZXh0KSxcbiAgICAgICAgICAgIC8vcGF1c2VJY29uOiAkKF9jb250cm9sc19wYXVzZSksXG4gICAgICAgICAgICAvL3BsYXlJY29uOiAkKF9jb250cm9sc19wbGF5KSxcbiAgICAgICAgICAgIGFzTmF2Rm9yOiAkKF9zbGlkZXJfaW1hZ2VzKSxcbiAgICAgICAgICAgIHVzZUF1dG9wbGF5VG9nZ2xlQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgIHBhdXNlT25Ib3ZlcjogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICgkKF90aGlzKS5kYXRhKCdhdXRvcGxheScpKSB7XG4gICAgICAgICAgICAkKF9jb250cm9sc19wYXVzZSkub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICBldmVudFNsaWNrUGF1c2UodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICQoX2NvbnRyb2xzX3BsYXkpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgZXZlbnRTbGlja1BsYXkodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vJChfdGhpcykub24oJ21vdXNlZW50ZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAvLyAgICBldmVudFNsaWNrUGF1c2UoKTtcbiAgICAgICAgICAgIC8vfSkub24oJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgLy8gICAgaWYgKCEkKF90aGlzKS5pcygnOmZvY3VzLXdpdGhpbicpICYmIF9pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIC8vICAgICAgICBldmVudFNsaWNrUGxheSgpO1xuICAgICAgICAgICAgLy8gICAgfVxuICAgICAgICAgICAgLy99KTtcbiAgICAgICAgICAgIC8vJCgnKicsIF90aGlzKS5vbignZm9jdXNpbicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vICAgIGV2ZW50U2xpY2tQYXVzZSgpO1xuICAgICAgICAgICAgLy99KS5vbignZm9jdXNvdXQnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgLy8gICAgaWYgKCEkKF90aGlzKS5pcygnOmZvY3VzLXdpdGhpbicpICYmIF9pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIC8vICAgICAgICBldmVudFNsaWNrUGxheSgpO1xuICAgICAgICAgICAgLy8gICAgfVxuICAgICAgICAgICAgLy99KTtcbiAgICAgICAgfVxuXG4gICAgICAgI
728HZhciBfcGVybWFQYXVzZSA9IGZhbHNlO1xuXG4gICAgICAgIGZ1bmN0aW9uIGV2ZW50U2xpY2tQYXVzZShpc1BlcnNpc3RlbnQgPSBmYWxzZSkge1xuICAgICAgICAgICAgX3Blcm1hUGF1c2UgPSAoIV9wZXJtYVBhdXNlKSA/IGlzUGVyc2lzdGVudCA6IF9wZXJtYVBhdXNlO1xuICAgICAgICAgICAgaWYgKCFfcGVybWFQYXVzZSB8fCBpc1BlcnNpc3RlbnQpIHtcbiAgICAgICAgICAgICAgICAkKF9zbGlkZXJfaW1hZ2VzKS5zbGljaygnc2xpY2tQYXVzZScpO1xuICAgICAgICAgICAgICAgIC8vJChfc2xpZGVyX2ltYWdlcykuc2xpY2soXCJzbGlja1NldE9wdGlvblwiLCBcImF1dG9wbGF5XCIsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgaWYgKGlzUGVyc2lzdGVudCkge1xuICAgICAgICAgICAgICAgICAgICAkKF9jb250cm9sc19wYXVzZSkuaGlkZSgpLnRyaWdnZXIoJ2JsdXInKTtcbiAgICAgICAgICAgICAgICAgICAgJChfY29udHJvbHNfcGxheSkuc2hvdygpLnRyaWdnZXIoJ2ZvY3VzJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZXZlbnRTbGlja1BsYXkoaXNQZXJzaXN0ZW50ID0gZmFsc2UpIHtcbiAgICAgICAgICAgIF9wZXJtYVBhdXNlID0gKGlzUGVyc2lzdGVudCkgPyBmYWxzZSA6IF9wZXJtYVBhdXNlO1xuICAgICAgICAgICAgaWYgKCFfcGVybWFQYXVzZSB8fCBpc1BlcnNpc3RlbnQpIHtcbiAgICAgICAgICAgICAgICAkKF9zbGlkZXJfaW1hZ2VzKS5zbGljaygnc2xpY2tQbGF5Jyk7XG4gICAgICAgICAgICAgICAgLy8kKF9zbGlkZXJfaW1hZ2VzKS5zbGljayhcInNsaWNrU2V0T3B0aW9uXCIsIFwiYXV0b3BsYXlcIiwgZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgICAgIGlmIChpc1BlcnNpc3RlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgJChfY29udHJvbHNfcGF1c2UpLnNob3coKS50cmlnZ2VyKCdmb2N1cycpO1xuICAgICAgICAgICAgICAgICAgICAkKF9jb250cm9sc19wbGF5KS5oaWRlKCkudHJpZ2dlcignYmx1cicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vR1RNIEV2ZW50XG4gICAgICAgIHZhciBldmVudEN1cnJlbnQgPSAwO1xuICAgICAgICB2Y
728XIgZXZlbnROZXh0ID0gMDtcbiAgICAgICAgdmFyIGhlcm9faW1hZ2VfbG9hZCA9IHt9O1xuICAgICAgICB2YXIgX21heEF1dG9HdG1MaW1pdCA9IDEwO1xuXG4gICAgICAgICQoX2NvbnRyb2xzX3ByZXYpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgaWYgKGhlcm9faW1hZ2VfbG9hZC5zbGlkZUNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICBoZXJvX2ltYWdlX2xvYWQuaGVyb0xvYWRUeXBlID0gZXZlbnQudHlwZTtcbiAgICAgICAgICAgICAgICBoZXJvX2ltYWdlX2xvYWQuc2xpZGVEaXJlY3Rpb24gPSAnbGVmdCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAkKF9jb250cm9sc19uZXh0KS5vbignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChoZXJvX2ltYWdlX2xvYWQuc2xpZGVDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLmhlcm9Mb2FkVHlwZSA9IGV2ZW50LnR5cGU7XG4gICAgICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLnNsaWRlRGlyZWN0aW9uID0gJ3JpZ2h0JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgICQoW19zbGlkZXJfaW1hZ2VzLCBfc2xpZGVyX3RleHRdKS5vbignc3dpcGUnLCBmdW5jdGlvbiAoZXZlbnQsIHNsaWNrLCBkaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGlmIChoZXJvX2ltYWdlX2xvYWQuc2xpZGVDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLmhlcm9Mb2FkVHlwZSA9IGV2ZW50LnR5cGU7XG4gICAgICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLnNsaWRlRGlyZWN0aW9uID0gKGRpcmVjdGlvbiAmJiBkaXJlY3Rpb24gPT0gXCJsZWZ0XCIpID8gXCJyaWdodFwiIDogXCJsZWZ0XCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAkKF9zbGlkZXJfdGV4dCkub24oJ2JlZm9yZUNoYW5nZScsIGZ1bmN0aW9uIChldmVudCwgc2xpY2ssIGN1cnJlbnRTbGlkZSwgbmV4dFNsaWRlKSB7XG4gICAgICAgICAgICBldmVudEN1cnJlbnQgPSBjdXJyZW50U2xpZGU7XG4gICAgICAgICAgICBldmVudE5leHQgPSBuZXh0U2xpZGU7XG4gICAgICAgICAgICBoZXJvX2ltYWdlX2xvYWQuaGVyb0xvYWRUeXBlID0gJ2F1dG8nO1xuICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLnNsaWRlRGlyZWN0aW9uID0gJ3JpZ2h0JztcbiAgICAgICAgICAgIGlmIChzbGlkZUNoYW5nZWQoKSkge1xuICAgICAgICAgICAgICAgIGhlcm9faW1hZ2VfbG9hZC5jdXJyZW50Q2Fyb3VzZWxQb3NpdGlvbiA9IGN1cnJlbnRTbGlkZTtcbiAgICAgICAgICAgICAgICBoZXJvX2ltYWdlX2xvYWQubmV4dENhcm91c2VsUG9zaXRpb24gPSBuZXh0U2xpZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAkKF9zbGlkZXJfdGV4dCkub24oJ2FmdGVyQ2hhbmdlJywgZnVuY3Rpb24gKGV2ZW50LCBzbGljaywgY3VycmVudFNsaWRlKSB7XG4gICAgICAgICAgICBpZiAoaGVyb19pbWFnZV9sb2FkLnNsaWRlQ2hhbmdlZCkge1xuICAgICAgICAgICAgICAgIHB1c2hEYXRhTGF5ZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIHNsaWRlQ2hhbmdlZCgpIHtcbiAgICAgICAgICAgIGlmIChldmVudEN1cnJlbnQgIT0gZXZlbnROZXh0ICYmIGV2ZW50Q3VycmVudCAhPSBoZXJvX2ltYWdlX2xvYWQuY3VycmVudENhcm91c2VsUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICBoZXJvX2ltYWdlX2xvYWQuc2xpZGVDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhlcm9faW1hZ2VfbG9hZC5zbGlkZUNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVEYXRhbGF5ZXIoKSB7XG4gICAgICAgICAgICB2Y
728XIgY3VycmVudFNsaWRlID0gZXZhbCgnaGVybycgKyAkKF90aGlzKS5kYXRhKCdibG9ja2d1aWQnKSlbaGVyb19pbWFnZV9sb2FkLmN1cnJlbnRDYXJvdXNlbFBvc2l0aW9uXTtcbiAgICAgICAgICAgIHZhciBuZXh0U2xpZGUgPSBldmFsKCdoZXJvJyArICQoX3RoaXMpLmRhdGEoJ2Jsb2NrZ3VpZCcpKVtoZXJvX2ltYWdlX2xvYWQubmV4dENhcm91c2VsUG9zaXRpb25dO1xuICAgICAgICAgICAgdmFyIGV2ZW50REwgPSB7XG4gICAgICAgICAgICAgICAgXCJldmVudFwiOiBcImhlcm9faW1hZ2VfbG9hZFwiLFxuICAgICAgICAgICAgICAgIFwiaGVyb0xvYWRUeXBlXCI6IGhlcm9faW1hZ2VfbG9hZC5oZXJvTG9hZFR5cGUsXG4gICAgICAgICAgICAgICAgXCJzbGlkZURpcmVjdGlvblwiOiBoZXJvX2ltYWdlX2xvYWQuc2xpZGVEaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgXCJjdXJyZW50Q2Fyb3VzZWxQb3NpdGlvblwiOiAoY3VycmVudFNsaWRlKSA/IGN1cnJlbnRTbGlkZS5zbGlkZUluZGV4IDogXCJcIixcbiAgICAgICAgICAgICAgICBcImN1cnJlbnRJbWFnZU5hbWVcIjogKGN1cnJlbnRTbGlkZSkgPyBjdXJyZW50U2xpZGUuc2xpZGVJbWFnZSA6IFwiXCIsXG4gICAgICAgICAgICAgICAgXCJjdXJyZW50U2xpZGVUaXRsZVwiOiAoY3VycmVudFNsaWRlKSA/IGN1cnJlbnRTbGlkZS5zbGlkZVRpdGxlIDogXCJcIixcbiAgICAgICAgICAgICAgICBcImN1cnJlbnRTbGlkZUhyZWZcIjogKGN1cnJlbnRTbGlkZSkgPyBjdXJyZW50U2xpZGUuc2xpZGVIcmVmIDogXCJcIixcbiAgICAgICAgICAgICAgICBcIm5leHRDYXJvdXNlbFBvc2l0aW9uXCI6IChuZXh0U2xpZGUpID8gbmV4dFNsaWRlLnNsaWRlSW5kZXggOiBcIlwiLFxuICAgICAgICAgICAgICAgIFwibmV4dEltYWdlTmFtZVwiOiAobmV4dFNsaWRlKSA/IG5leHRTbGlkZS5zbGlkZUltYWdlIDogXCJcIixcbiAgICAgICAgICAgICAgICBcIm5leHRTbGlkZVRpdGxlXCI6IChuZXh0U2xpZGUpID8gbmV4dFNsaWRlLnNsaWRlVGl0bGUgOiBcIlwiLFxuICAgICAgICAgICAgICAgIFwibmV4dFNsaWRlSHJlZlwiOiAobmV4dFNsaWRlKSA/IG5leHRTbGlkZS5zbGlkZUhyZWYgOiBcIlwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50REw7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcHVzaERhdGFMYXllcigpIHtcbiAgICAgICAgICAgIHZhciBndG1kYXRhID0gY3JlYXRlRGF0YWxheWVyKCk7XG4gICAgICAgICAgICBpZiAoJChfdGhpcykuZGF0YSgnYXV0b3BsYXknKSAmJiBndG1kYXRhLmhlcm9Mb2FkVHlwZSA9PSBcImF1dG9cIikge1xuICAgICAgICAgICAgICAgIGlmIChfbWF4QXV0b0d0bUxpbWl0KSB7XG4gICAgICAgICAgICAgICAgICAgIF9tYXhBdXRvR3RtTGltaXQtLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhTGF5ZXIucHVzaChndG1kYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGJpbmRPYnNlcnZlcigpIHtcbiAgICAgICAgICAgIHZhciBoZXJvT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgICAgICAgICAgZW50cmllcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnlbJ2lzSW50ZXJzZWN0aW5nJ10gPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnlbJ2ludGVyc2VjdGlvblJhdGlvJ10gPj0gMCAmJiBlbnRyeVsnaW50ZXJzZWN0aW9uUmF0aW8nXSA8PSAwLjQ1KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2xpY2tQYXVzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNsaWNrUGxheSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNsaWNrUGF1c2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSwgeyB0aHJlc2hvbGQ6IFswLCAwLjQ1LCAxXSB9KTtcblxuICAgICAgICAgICAgaGVyb09ic2VydmVyLm9ic2VydmUoJChfdGhpcykuZ2V0KDApKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgJCgnLmV2ZW50bGlzdC1ibG9jay1yYy1saXN0JykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9ICQodGhpcyk7XG4gICAgICAgIHZhciBfc2xpZGVyID0gJCgnLmV2ZW50bGlzdC1ibG9jay1yYy1zbGlkZXInLCAkKF90aGlzKSkuZ2V0KDApO1xuICAgICAgICB2Y
728XIgX2NvbnRyb2xzID0gJCgnLnNsaWNrLWNvbnRyb2xzJywgJChfdGhpcykpLmdldCgwKTtcbiAgICAgICAgdmFyIF9jb250cm9sc19wcmV2ID0gJCgnLnNsaWNrLWJhY2t3YXJkJywgX2NvbnRyb2xzKS5nZXQoMCk7XG4gICAgICAgIHZhciBfY29udHJvbHNfbmV4dCA9ICQoJy5zbGljay1mb3J3YXJkJywgX2NvbnRyb2xzKS5nZXQoMCk7XG4gICAgICAgIHZhciBfY29udHJvbHNfZG90cyA9ICQoJy5zbGljay1jb250cm9scy1kb3RzJywgJChfdGhpcykpLmdldCgwKTtcbiAgICAgICAgJChfc2xpZGVyKS5zbGljayh7XG4gICAgICAgICAgICBpbmZpbml0ZTogZmFsc2UsXG4gICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsXG4gICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMSxcbiAgICAgICAgICAgIGFycm93czogdHJ1ZSxcbiAgICAgICAgICAgIGRvdHM6IHRydWUsXG4gICAgICAgICAgICBhcHBlbmREb3RzOiAkKF9jb250cm9sc19kb3RzKSxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIHByZXZBcnJvdzogJChfY29udHJvbHNfcHJldiksXG4gICAgICAgICAgICBuZXh0QXJyb3c6ICQoX2NvbnRyb2xzX25leHQpLFxuICAgICAgICAgICAgYWNjZXNzaWJpbGl0eTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoJy5saW5raXRlbWNhcm91c2VsLWJsb2NrLWxpc3QnKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgdmFyIF9zbGlkZXIgPSAkKCcubGlua2l0ZW1jYXJvdXNlbC1ibG9jay1zbGlkZXInLCAkKF90aGlzKSkuZ2V0KDApO1xuICAgICAgICB2Y
728XIgX2NvbnRyb2xzID0gJCgnLnNsaWNrLWNvbnRyb2xzJywgJChfdGhpcykpLmdldCgwKTtcbiAgICAgICAgdmFyIF9jb250cm9sc19wcmV2ID0gJCgnLnNsaWNrLWJhY2t3YXJkJywgX2NvbnRyb2xzKS5nZXQoMCk7XG4gICAgICAgIHZhciBfY29udHJvbHNfbmV4dCA9ICQoJy5zbGljay1mb3J3YXJkJywgX2NvbnRyb2xzKS5nZXQoMCk7XG4gICAgICAgIHZhciBfY29udHJvbHNfZG90cyA9ICQoJy5zbGljay1jb250cm9scy1kb3RzJywgJChfdGhpcykpLmdldCgwKTtcbiAgICAgICAgJChfc2xpZGVyKS5zbGljayh7XG4gICAgICAgICAgICBpbmZpbml0ZTogZmFsc2UsXG4gICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDQsXG4gICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogNCxcbiAgICAgICAgICAgIGFycm93czogdHJ1ZSxcbiAgICAgICAgICAgIGRvdHM6IHRydWUsXG4gICAgICAgICAgICBhcHBlbmREb3RzOiAkKF9jb250cm9sc19kb3RzKSxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIHByZXZBcnJvdzogJChfY29udHJvbHNfcHJldiksXG4gICAgICAgICAgICBuZXh0QXJyb3c6ICQoX2NvbnRyb2xzX25leHQpLFxuICAgICAgICAgICAgcmVzcG9uc2l2ZTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTIwMCxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogMyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2Nyb2xsOiAzXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogOTkyLFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAyLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiA1NzYsXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoJy5hcnRpY2xlcGFnZS1zbGlkZXInKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgdmFyIF9jb250cm9scyA9ICQoJy5zbGljay1jb250cm9scycsICQoX3RoaXMpKS5nZXQoMCk7XG4gICAgICAgIHZhciBfY29udHJvbHNfcHJldiA9ICQoJy5zbGljay1iYWNrd2FyZCcsIF9jb250cm9scykuZ2V0KDApO1xuICAgICAgICB2Y
728XIgX2NvbnRyb2xzX25leHQgPSAkKCcuc2xpY2stZm9yd2FyZCcsIF9jb250cm9scykuZ2V0KDApO1xuICAgICAgICB2YXIgX3NsaWRlcl9pbWFnZXMgPSAkKCcuYXJ0aWNsZXBhZ2UtaW1hZ2VzLXNsaWRlcicsICQoX3RoaXMpKS5nZXQoMCk7XG4gICAgICAgIHZhciBfc2xpZGVyX3RodW1icyA9ICQoJy5hcnRpY2xlcGFnZS10aHVtYi1zbGlkZXInLCAkKF90aGlzKSkuZ2V0KDApO1xuICAgICAgICB2YXIgX3NsaWRlcl9jYXB0aW9ucyA9ICQoJy5hcnRpY2xlcGFnZS1jYXB0aW9uLXNsaWRlcicsICQoX3RoaXMpKS5nZXQoMCk7XG4gICAgICAgIHZhciBfdGh1bWJjb3VudCA9ICQoX3RoaXMpLmRhdGEoJ3RodW1iY291bnQnKTtcbiAgICAgICAgJChfc2xpZGVyX2ltYWdlcykuc2xpY2soe1xuICAgICAgICAgICAgaW5maW5pdGU6IGZhbHNlLFxuICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAxLFxuICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gICAgICAgICAgICBhcnJvd3M6IGZhbHNlLFxuICAgICAgICAgICAgZG90czogZmFsc2UsXG4gICAgICAgICAgICBkcmFnZ2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgYXV0b3BsYXk6IGZhbHNlLy8sXG4gICAgICAgICAgICAvL2FzTmF2Rm9yOiAkKF9zbGlkZXJfdGh1bWJzKVxuICAgICAgICB9KTtcbiAgICAgICAgJChfc2xpZGVyX3RodW1icykuc2xpY2soe1xuICAgICAgICAgICAgaW5maW5pdGU6IGZhbHNlLFxuICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBfdGh1bWJjb3VudCxcbiAgICAgICAgICAgIHNsaWRlc1RvU2Nyb2xsOiBfdGh1bWJjb3VudCxcbiAgICAgICAgICAgIGFycm93czogdHJ1ZSxcbiAgICAgICAgICAgIGRvdHM6IGZhbHNlLFxuICAgICAgICAgICAgZHJhZ2dhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIHByZXZBcnJvdzogJChfY29udHJvbHNfcHJldiksXG4gICAgICAgICAgICBuZXh0QXJyb3c6ICQoX2NvbnRyb2xzX25leHQpLy8sXG4gICAgICAgICAgICAvL2FzTmF2Rm9yOiAkKF9zbGlkZXJfaW1hZ2VzKVxuICAgICAgICB9KTtcbiAgICAgICAgJChfc2xpZGVyX2NhcHRpb25zKS5zbGljayh7XG4gICAgICAgICAgICBpbmZpbml0ZTogZmFsc2UsXG4gICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsXG4gICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMSxcbiAgICAgICAgICAgIGFycm93czogZmFsc2UsXG4gICAgICAgICAgICBkb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBhdXRvcGxheTogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgICQoJy5zbGljay1zbGlkZScsIF9zbGlkZXJfdGh1bWJzKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2Y
728XIgX2luZGV4ID0gJCh0aGlzKS5kYXRhKCdzbGljay1pbmRleCcpO1xuICAgICAgICAgICAgJChfc2xpZGVyX2ltYWdlcykuc2xpY2soJ3NsaWNrR29UbycsIF9pbmRleCwgdHJ1ZSk7XG4gICAgICAgICAgICAkKF9zbGlkZXJfY2FwdGlvbnMpLnNsaWNrKCdzbGlja0dvVG8nLCBfaW5kZXgsIHRydWUpO1xuICAgICAgICAgICAgLy8kKF9zbGlkZXJfdGh1bWJzKS5zbGljaygnc2xpY2tHb1RvJywgX2luZGV4KTtcbiAgICAgICAgfSk7XG5cbiAgICB9KTtcblxuICAgICQoJy5uYXYtc2Nyb2xsYWJsZScpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3BhcmVudCA9ICgkKHRoaXMpLmRhdGEoJ3RhcmdldC1wYXJlbnQnKSkgPyAkKCQodGhpcykuZGF0YSgndGFyZ2V0LXBhcmVudCcpKSA6ICQodGhpcyk7XG4gICAgICAgIHZhciBfbmF2d3JhcCA9ICQoJy5uYXYtc2Nyb2xsYWJsZS13cmFwJywgdGhpcykuZ2V0KDApO1xuICAgICAgICBzY3JvbGxhYmxlVGFic0NhbGNPdmVyZmxvdyhfbmF2d3JhcCwgX3BhcmVudCk7XG4gICAgICAgICQod2luZG93KS5vbigncmVzaXplJywgZnVuY3Rpb24gKCkgeyBzY3JvbGxhYmxlVGFic0NhbGNPdmVyZmxvdyhfbmF2d3JhcCwgX3BhcmVudCk7IH0pO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gc2Nyb2xsYWJsZVRhYnNDYWxjT3ZlcmZsb3coX25hdndyYXAsIF9wYXJlbnQpIHtcbiAgICAgICAgaWYgKCQoX25hdndyYXApWzBdLnNjcm9sbFdpZHRoID4gTWF0aC5jZWlsKCQoX25hdndyYXApLndpZHRoKCkpKSB7XG4gICAgICAgICAgICAkKF9wYXJlbnQpLmFkZENsYXNzKCdzY3JvbGxhYmxlLW92ZXJmbG93Jyk7XG4gICAgICAgICAgICAkKF9uYXZ3cmFwKS5vbignc2Nyb2xsLnRhYi1zY3JvbGwnLCBmdW5jdGlvbiAoKSB7IHNjcm9sbGFibGVUYWJzU2Nyb2xsQ29udHJvbHMoX3BhcmVudCwgX25hdndyYXAsICQoX25hdndyYXApLnNjcm9sbExlZnQoKSk7IH0pO1xuICAgICAgICAgICAgc2Nyb2xsYWJsZVRhYnNTY3JvbGxDb250cm9scyhfcGFyZW50LCBfbmF2d3JhcCwgJChfbmF2d3JhcCkuc2Nyb2xsTGVmdCgpKTtcbiAgICAgICAgICAgICQoJy5uYXYtc2Nyb2xsLWxlZnQnLCBfcGFyZW50KS5vbignY2xpY2suc2Nyb2xsLWxlZnQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9zY3JvbGxUb1ZhbCA9ICQoX25hdndyYXApLnNjcm9sbExlZnQoKSAtICQoX25hdndyYXApLndpZHRoKCk7XG4gICAgICAgICAgICAgICAgc2Nyb2xsYWJsZVRhYnNTY3JvbGxDb250cm9scyhfcGFyZW50LCBfbmF2d3JhcCwgX3Njcm9sbFRvVmFsKTtcbiAgICAgICAgICAgICAgICAkKF9uYXZ3cmFwKS5zdG9wKHRydWUsIHRydWUpO1xuICAgICAgICAgICAgICAgICQoX25hdndyYXApLmFuaW1hdGUoeyAnc2Nyb2xsTGVmdCc6IF9zY3JvbGxUb1ZhbCArICdweCcgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICQoJy5uYXYtc2Nyb2xsLXJpZ2h0JywgX3BhcmVudCkub24oJ2NsaWNrLnNjcm9sbC1yaWdodCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2Y
728XIgX3Njcm9sbFRvVmFsID0gJChfbmF2d3JhcCkuc2Nyb2xsTGVmdCgpICsgJChfbmF2d3JhcCkud2lkdGgoKTtcbiAgICAgICAgICAgICAgICBzY3JvbGxhYmxlVGFic1Njcm9sbENvbnRyb2xzKF9wYXJlbnQsIF9uYXZ3cmFwLCBfc2Nyb2xsVG9WYWwpO1xuICAgICAgICAgICAgICAgICQoX25hdndyYXApLnN0b3AodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgJChfbmF2d3JhcCkuYW5pbWF0ZSh7ICdzY3JvbGxMZWZ0JzogX3Njcm9sbFRvVmFsICsgJ3B4JyB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgJChfcGFyZW50KS5yZW1vdmVDbGFzcygnc2Nyb2xsYWJsZS1vdmVyZmxvdycpO1xuICAgICAgICAgICAgJChfbmF2d3JhcCkub2ZmKCdzY3JvbGwudGFiLXNjcm9sbCcpO1xuICAgICAgICAgICAgJCgnLm5hdi1zY3JvbGwtbGVmdCcsIF9wYXJlbnQpLm9mZignY2xpY2suc2Nyb2xsLWxlZnQnKTtcbiAgICAgICAgICAgICQoJy5uYXYtc2Nyb2xsLXJpZ2h0JywgX3BhcmVudCkub2ZmKCdjbGljay5zY3JvbGwtcmlnaHQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjcm9sbGFibGVUYWJzU2Nyb2xsQ29udHJvbHMoX3BhcmVudCwgX25hdndyYXAsIF9zY3JvbGxUb1ZhbCkge1xuICAgICAgICBpZiAoX3Njcm9sbFRvVmFsIDw9IDApIHtcbiAgICAgICAgICAgICQoJy5uYXYtc2Nyb2xsLWxlZnQnLCBfcGFyZW50KS5oaWRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAkKCcubmF2LXNjcm9sbC1sZWZ0JywgX3BhcmVudCkuc2hvdygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgkKF9uYXZ3cmFwKVswXS5zY3JvbGxXaWR0aCA+IF9zY3JvbGxUb1ZhbCArICQoX25hdndyYXApLndpZHRoKCkpIHtcbiAgICAgICAgICAgICQoJy5uYXYtc2Nyb2xsLXJpZ2h0JywgX3BhcmVudCkuc2hvdygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgJCgnLm5hdi1zY3JvbGwtcmlnaHQnLCBfcGFyZW50KS5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAkKCcuc3VibmF2LnN1Ym5hdi1kZWZhdWx0IHNlbGVjdCcpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICQoJ29wdGlvbjpzZWxlY3RlZCcsIHRoaXMpLnZhbCgpO1xuICAgIH0pO1xuXG4gICAgJCgnLmJhY2stdG8tdG9wJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB2Y
728XIgX3RoaXMgPSAkKHRoaXMpO1xuICAgICAgICAkKFwiaHRtbCwgYm9keVwiKS5zdG9wKHRydWUsIHRydWUpO1xuICAgICAgICAkKFwiaHRtbCwgYm9keVwiKS5hbmltYXRlKHsgc2Nyb2xsVG9wOiAwIH0sIDM1MCwgJ2xpbmVhcicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQoX3RoaXMpLmJsdXIoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgJCgnLmJhY2stdG8tdG9wJykub24oJ2ZvY3VzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSAkKHRoaXMpO1xuICAgICAgICAkKHRoaXMpLmJpbmQoJ2tleXVwLkJhY2tUb1RvcCcsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgaWYgKGV2ZW50LndoaWNoID09IDEzKSB7XG4gICAgICAgICAgICAgICAgJChfdGhpcykudHJpZ2dlcignY2xpY2snKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgJCgnLmJhY2stdG8tdG9wJykub24oJ2JsdXInLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQodGhpcykudW5iaW5kKCdrZXl1cC5CYWNrVG9Ub3AnKTtcbiAgICB9KTtcbiAgICAkKCcuYmFjay10by10b3AnKS5vbignbW91c2VsZWF2ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCh0aGlzKS5ibHVyKCk7XG4gICAgfSk7XG5cbiAgICAkKCcuc2Nyb2xsLXRvLWFuY2hvcicpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgdmFyIHZvZmZzZXQgPSAkKCQoX3RoaXMpLmF0dHIoJ2hyZWYnKSkub2Zmc2V0KCkudG9wIC0gNzU7XG4gICAgICAgICQoXCJodG1sLCBib2R5XCIpLnN0b3AodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgICQoXCJodG1sLCBib2R5XCIpLmFuaW1hdGUoeyBzY3JvbGxUb3A6IHZvZmZzZXQgfSwgMjUwLCAnbGluZWFyJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJChfdGhpcykuYmx1cigpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoJy5hY2NvcmRpb25ibG9jayAuYWNjb3JkaW9uLWNvbGxhcHNlW2RhdGEtY29sbGFwc2VvdGhlcnM9XCJ0cnVlXCJdJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICQodGhpcykub24oJ3Nob3cuYnMuY29sbGFwc2UnLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICQoJy5hY2NvcmRpb24tY29sbGFwc2UnKS5jb2xsYXBzZSgnaGlkZScpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoJy5hcnRpY2xlcGFnZS1pbWFnZS1tb2RhbCA+IC5tb2RhbCcpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICB2Y
728XIgX3RoaXMgPSAkKHRoaXMpO1xuICAgICAgICAkKF90aGlzKS5vbignc2hvdy5icy5tb2RhbCcsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgdmFyIGJ1dHRvbiA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgICAgICB2YXIgaW1nU3JjID0gYnV0dG9uLmdldEF0dHJpYnV0ZSgnZGF0YS1icy1pbWctc3JjJyk7XG4gICAgICAgICAgICB2YXIgbW9kYWxCb2R5ID0gJCgnLm1vZGFsLWJvZHknLCBfdGhpcyk7XG4gICAgICAgICAgICAkKG1vZGFsQm9keSkuaHRtbChgPGltZyBzcmM9XCIke2ltZ1NyY31cIiAvPmApO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn0pOyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFBQTtBQUFBO0FBQUMsUUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFZO0FBQzNCLFlBQUksVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7QUFDL0IsWUFBSSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQztBQUM5QyxZQUFJLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUM7QUFDOUMsWUFBSSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUM7QUFDL0MsWUFBSSwwQkFBMEIsRUFBRSwrQkFBK0IsRUFBRSxJQUFJLENBQUM7QUFDdEUsWUFBSSxnQkFBaUIsVUFBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUk7QUFDdEQsWUFBSSxpQkFBa0IsaUJBQWtCLEVBQUUsY0FBYyxFQUFFLE9BQU8sSUFBSTtBQUNyRSxZQUFJLHVCQUF3QixnQkFBaUIsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE9BQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLE9BQVEsaUJBQWlCLEtBQUs7QUFDbEksWUFBSSxXQUFXLGVBQWU7QUFDMUIsWUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLFdBQVk7QUFDL0IsaUNBQXFCO0FBQUEsVUFDek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FLHFCQUFxQixFQUFFLFNBQVMsTUFBTTtBQUFBLFVBQzVDLENBQUM7QUFBQSxRQUNMLENBQUM7QUFFRCxVQUFFLG1DQUFtQyxFQUFFLEtBQUssV0FBWTtBQUNwRCxjQUFJQSxTQUFRLEVBQUUsSUFBSTtBQUNsQixZQUFFQSxNQUFLLEVBQUUsR0FBRyxpQkFBaUIsU0FBVSxPQUFPO0FBQzFDLGdCQUFJLFNBQVMsTUFBTTtBQUNuQixnQkFBSSxTQUFTLE9BQU8sYUFBYSxpQkFBaUI7QUFDbEQsZ0JBQUksWUFBWSxFQUFFLGVBQWVBLE1BQUs7QUFDdEMsY0FBRSxTQUFTLEVBQUUsS0FBSyxhQUFhLE1BQU0sTUFBTTtBQUFBLFVBQy9DLENBQUM7QUFBQSxRQUNMLENBQUM7QUFBQSxNQUNMLENBQUM7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogWyJfdGhpcyIsICJvYnNlcnZlciIsICJjdXJyZW50U2xpZGUiLCAibmV4dFNsaWRlIiwgIl9jb250cm9scyIsICJfY29udHJvbHNfcHJldiIsICJfY29udHJvbHNfbmV4dCIsICJfc2xpZGVyX2ltYWdlcyJdCn0K

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.