PageSourceSearch

https://www.it-hiroshima.ac.jp/common/js/faculty_department.js

js it-hiroshima.ac.jp collected 2026-09-24 09:40:24 UTC 37,488 bytes, 356 lines download raw bytes

1/******/ (function(modules) { // webpackBootstrap
2/******/ 	// The module cache
3/******/ 	var installedModules = {};
4/******/
5/******/ 	// The require function
6/******/ 	function __webpack_require__(moduleId) {
7/******/
8/******/ 		// Check if module is in cache
9/******/ 		if(installedModules[moduleId]) {
10/******/ 			return installedModules[moduleId].exports;
11/******/ 		}
12/******/ 		// Create a new module (and put it into the cache)
13/******/ 		var module = installedModules[moduleId] = {
14/******/ 			i: moduleId,
15/******/ 			l: false,
16/******/ 			exports: {}
17/******/ 		};
18/******/
19/******/ 		// Execute the module function
20/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21/******/
22/******/ 		// Flag the module as loaded
23/******/ 		module.l = true;
24/******/
25/******/ 		// Return the exports of the module
26/******/ 		return module.exports;
27/******/ 	}
28/******/
29/******/
30/******/ 	// expose the modules object (__webpack_modules__)
31/******/ 	__webpack_require__.m = modules;
32/******/
33/******/ 	// expose the module cache
34/******/ 	__webpack_require__.c = installedModules;
35/******/
36/******/ 	// define getter function for harmony exports
37/******/ 	__webpack_require__.d = function(exports, name, getter) {
38/******/ 		if(!__webpack_require__.o(exports, name)) {
39/******/ 			Object.defineProperty(exports, name, {
40/******/ 				configurable: false,
41/******/ 				enumerable: true,
42/******/ 				get: getter
43/******/ 			});
44/******/ 		}
45/******/ 	};
46/******/
47/******/ 	// getDefaultExport function for compatibility with non-harmony modules
48/******/ 	__webpack_require__.n = function(module) {
49/******/ 		var getter = module && module.__esModule ?
50/******/ 			function getDefault() { return module['default']; } :
51/******/ 			function getModuleExports() { return module; };
52/******/ 		__webpack_require__.d(getter, 'a', getter);
53/******/ 		return getter;
54/******/ 	};
55/******/
56/******/ 	// Object.prototype.hasOwnProperty.call
57/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
58/******/
59/******/ 	// __webpack_public_path__
60/******/ 	__webpack_require__.p = "/";
61/******/
62/******/ 	// Load entry module and return exports
63/******/ 	return __webpack_require__(__webpack_require__.s = 21);
64/******/ })
65/************************************************************************/
66/******/ ({
67
68/***/ 21:
69/***/ (function(module, exports, __webpack_require__) {
70
71module.exports = __webpack_require__(22);
72
73
74/***/ }),
75
76/***/ 22:
77/***/ (function(module, exports) {
78
79//import $ from "jquery"
80
81$(function () {
82
83  /* ********************
84   * ページ内遷移
85   * 学部名を押下でスクロール
86   ******************** */
87  var localNavTarget = $(".localNav01 a");
88  localNavTarget.on("click", function () {
89    var anc = $(event.currentTarget).attr('href');
90    if (anc.indexOf('#') === 0 || anc.indexOf('/#') === 0) {
91      if (anc.indexOf('/#') === 0) {
92        var anc = anc.replace('/', '');
93      }
94      var speed = 400;
95      var position = $(anc).offset().top - $('header.header').outerHeight(true);
96      $('body,html').animate({
97        scrollTop: position
98      }, speed, 'swing');
99      return false;
100    }
101  });
102
103  /* ********************
104   * アコーディオン
105   * 読み込み時.acOpenがない場合はクローズ状態
106   * 学部名を押下で表示非表示トグル
107   ******************** */
108  var acBtn = $(".acBtn");
109  acBtn.each(function () {
110    if (!$(this).hasClass('acOpen')) {
111      $(this).next('.acContents').hide();
112    }
113  });
114  acBtn.on("click", function () {
115    if ($(event.currentTarget).hasClass('acOpen')) {
116      $(event.currentTarget).removeClass('acOpen');
117      $(event.currentTarget).nextAll('.acContents').stop().slideUp();
118    } else {
119      $(event.currentTarget).addClass('acOpen');
120      $(event.currentTarget).nextAll('.acContents').stop().slideDown();
121    }
122  });
123
124  /* ********************
125   * アコーディオン
126   * SPのみ
127   ******************** */
128  var spAcBtn = $(".spAcBtn");
129  $(window).on('load resize', function () {
130    if (window.innerWidth < 800) {
131      spAcBtn.each(function () {
132        if (!$(this).hasClass('acOpen')) {
133          $(this).next('.spAcContents').hide();
134        }
135      });
136    } else {
137      spAcBtn.removeClass('acOpen');
138      $('.spAcContents').removeAttr('style');
139    }
140  });
141  spAcBtn.on("click", function (elem) {
142    if (window.innerWidth < 800) {
143      elem.preventDefault();
144      if ($(event.currentTarget).hasClass('acOpen')) {
145        $(event.currentTarget).removeClass('acOpen');
146        $(event.currentTarget).nextAll('.spAcContents').stop().slideUp();
147      } else {
148        $(event.currentTarget).addClass('acOpen');
149        $(event.currentTarget).nextAll('.spAcContents').stop().slideDown();
150      }
151    }
152  });
153
154  /* ********************
155   * サイドメニュー
156   * スクロール時追従
157   ******************** */
158  var topH = 279;
159  var fdSide = $('.fdSide');
160  var fdSideFixed = $('.fdSideFixed');
161  $(window).on('scroll', function () {
162    var headerH = $('header.header').outerHeight(true) + 20;
163    var funcPos = topH - headerH;
164    var fdSideH = fdSide.outerHeight(true);
165    var fdSideFixedH = fdSideFixed.outerHeight(true);
166    if (window.innerHeight - headerH > fdSideFixedH) {
167      // サイドメニューの高さが低いとき
168      fdSideFixed.css({
169        top: headerH
170      });
171      if ($(window).scrollTop() >= funcPos) {
172        fdSideFixed.addClass('fixed01');
173        fdSideFixed.removeClass('fixed02');
174      } else {
175        fdSideFixed.removeClass('fixed01');
176        fdSideFixed.removeClass('fixed02');
177      }
178
179      // 下で止まる
180      if ($(window).scrollTop() >= fdSideH + funcPos - fdSideFixedH) {
181        fdSide.addClass('fdSideFixedStop');
182      } else {
183        fdSide.removeClass('fdSideFixedStop');
184      }
185    } else {
186      // サイドメニューの高さが高いとき
187      if ($(window).scrollTop() >= funcPos && $(window).scrollTop() + window.innerHeight >= topH + fdSideFixedH) {
188        fdSideFixed.addClass('fixed02');
189        fdSideFixed.removeClass('fixed01');
190      } else {
191        fdSideFixed.removeClass('fixed01');
192        fdSideFixed.removeClass('fixed02');
193      }
194
195      // 下で止まる
196      if ($(window).scrollTop() + window.innerHeight >= topH + fdSideH) {
197        fdSide.addClass('fdSideFixedStop');
198      } else {
199        fdSide.removeClass('fdSideFixedStop');
200      }
201    }
202  });
203
204  // サイドメニューの高さが逆転したら追従の基準を変更
205  acBtn.on('click', function () {
206    if (window.innerHeight - $('header.header').outerHeight(true) > fdSideFixed.outerHeight(true)) {
207      if ($(window).scrollTop() >= fdSide.offset().top - $('header.header').outerHeight(true)) {
208        fdSideFixed.css({
209          top: $('header.header').outerHeight(true)
210        });
211        fdSideFixed.addClass('fixed01');
212        fdSideFixed.removeClass('fixed02');
213      }
214    }
215  });
216
217  /* ********************
218   * 高さ揃える
219   * pcHeightAjustContents()
220   ******************** */
221  $(window).on('load resize', function () {
222    if (window.innerWidth < 800) {
223      $('.pcHeightAjust01').removeAttr('style');
224      $('.pcHeightAjust02').removeAttr('style');
225      $('.acBtn').removeAttr('style');
226    } else {
227      $('.pcHeightAjustContents').each(function () {
228        var hList = new Array();
229        var hList2 = new Array();
230        $(this).find('.pcHeightAjust01').each(function (idx) {
231          hList[idx] = $(this).height();
232        });
233        $(this).find('.pcHeightAjust02').each(function (idy) {
234          hList2[idy] = $(this).height();
235        });
236        var maxH = Math.max.apply(null, hList);
237        var maxH2 = Math.max.apply(null, hList2);
238        $(this).find('.pcHeightAjust01').css({
239          height: maxH + 'px'
240        });
241        $(this).find('.pcHeightAjust02').css({
242          height: maxH2 + 'px'
243        });
244      });
245
246      $('.colEle3').each(function () {
247        if ($(this).find('.acBtn').length == 0) {
248          return;
249        }
250        var hList = new Array();
251        $(this).find('.acBtn').each(function (idx) {
252          hList[idx] = $(this).outerHeight(true);
253        });
254        var maxH = Math.max.apply(null, hList);
255        $(this).find('.acBtn').css({
256          height: maxH + 'px'
257        });
258      });
259    }
260  });
261
262  /* ********************
263   * 絞り込み
264   * モーダル
265   ******************** */
266  $('.iconSearch').on('click', function () {
267    $(this).next('.searchModal').addClass('modalOpen');
268  });
269  $('.searchModal').on('click', '.closeBtn', function () {
270    $(this).parents('.searchModal').removeClass('modalOpen');
271  });
272
273  /* ********************
274   * information
275   * 選択スイッチ
276   ******************** */
277  // var limit = function (limitNum) {
278  //   $('.info_tab.limit' + limitNum + ' .switchShow').each(function (index) {
279  //     if (index >= limitNum) {
280  //       $(this).addClass('is-hidden');
281  //     }
282  //   });
283  // }
284  // limit(6);
285  // $('.infoSwitch li').on('click', function () {
286  //   if($(this).hasClass('switchOn')){
287  //     // 押されてない状態で全て表示
288  //     $('.infoSwitch li').removeClass('switchOn');
289  //     $('.info_tab a').addClass('switchShow');
290  //     limit(6);
291  //   }else{
292  //     // 押したカテゴリーのみ表示
293  //     $('.infoSwitch li').removeClass('switchOn');
294  //     $('.info_tab a').removeClass('switchShow');
295  //     var thisSwitch = $(this).attr('data-switch');
296  //     $(this).addClass('switchOn');
297  //     $('.info_tab.limit6 .info_item').removeClass('is-hidden');
298  //     $('.info_tab a').each(function () {
299  //       if ($(this).attr('data-cat') == thisSwitch) {
300  //         $(this).addClass('switchShow');
301  //       }
302  //     });
303  //     limit(6);
304  //   }
305  // });
306
307  $('.infoSwitch li').on('click', function () {
308    if ($(this).hasClass('switchOn')) {
309      $('.infoSwitch li').removeClass('switchOn');
310      $('.info_art .info_tab').removeClass('show');
311      $('.info_art .info_tab[data-cat="all"]').addClass('show');
312    } else {
313      $('.infoSwitch li').removeClass('switchOn');
314      $(this).addClass('switchOn');
315      $('.info_art .info_tab').removeClass('show');
316      $('.info_art .info_tab[data-cat="' + $(this).attr('data-switch') + '"]').addClass('show');
317    }
318  });
319
320  /* ********************
321   * information
322   * 年月セレクト
323   ******************** */
324  $('.ymSelecter select').on('change', function () {
325    var $this = $(this);
326    var $option = $this.find('option:selected');
327    $(this).parents('.selectStyle01').find('label').text($option.text());
328
329    $this.blur();
330  });
331
332  /* ********************
333   * tab
334   * 汎用タブ
335   ******************** */
336  $('.tabContents .tcItem').hide();
337  $('.tabBtn .tbItem').each(function () {
338    if ($(this).hasClass('current')) {
339      var currentTab = $(this).attr('data-btn');
340    }
341    $('.tabContents [data-tab="' + currentTab + '"]').show();
342  });
343  $('.tabBtn .tbItem').on('click', function () {
344    if (!$(this).hasClass('current')) {
345      $('.tabBtn .tbItem').removeClass('current');
346      $('.tabContents .tcItem').hide();
347      $(this).addClass('current');
348      $('.tabContents [data-tab="' + $(this).attr('data-btn') + '"]').fadeIn();
349    }
350  });
351});
352
353/***/ })
354
355/******/ });
356//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAgZGEzNzBiNzY0MWU1NGM3NGYzYTAiLCJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9mYWN1bHR5X2RlcGFydG1lbnQuanMiXSwibmFtZXMiOlsiJCIsImxvY2FsTmF2VGFyZ2V0Iiwib24iLCJhbmMiLCJldmVudCIsImN1cnJlbnRUYXJnZXQiLCJhdHRyIiwiaW5kZXhPZiIsInJlcGxhY2UiLCJzcGVlZCIsInBvc2l0aW9uIiwib2Zmc2V0IiwidG9wIiwib3V0ZXJIZWlnaHQiLCJhbmltYXRlIiwic2Nyb2xsVG9wIiwiYWNCdG4iLCJlYWNoIiwiaGFzQ2xhc3MiLCJuZXh0IiwiaGlkZSIsInJlbW92ZUNsYXNzIiwibmV4dEFsbCIsInN0b3AiLCJzbGlkZVVwIiwiYWRkQ2xhc3MiLCJzbGlkZURvd24iLCJzcEFjQnRuIiwid2luZG93IiwiaW5uZXJXaWR0aCIsInJlbW92ZUF0dHIiLCJlbGVtIiwicHJldmVudERlZmF1bHQiLCJ0b3BIIiwiZmRTaWRlIiwiZmRTaWRlRml4ZWQiLCJoZWFkZXJIIiwiZnVuY1BvcyIsImZkU2lkZUgiLCJmZFNpZGVGaXhlZEgiLCJpbm5lckhlaWdodCIsImNzcyIsImhMaXN0IiwiQXJyYXkiLCJoTGlzdDIiLCJmaW5kIiwiaWR4IiwiaGVpZ2h0IiwiaWR5IiwibWF4SCIsIk1hdGgiLCJtYXgiLCJhcHBseSIsIm1heEgyIiwibGVuZ3RoIiwicGFyZW50cyIsIiR0aGlzIiwiJG9wdGlvbiIsInRleHQiLCJibHVyIiwiY3VycmVudFRhYiIsInNob3ciLCJmYWRlSW4iXSwibWFwcGluZ3MiOiI7UUFBQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTs7O1FBR0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNB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UUsSUFBRixFQUFRTSxJQUFSLENBQWEsVUFBYixDQUFqQjtBQUNEO0FBQ0ROLE1BQUUsNkJBQTRCNEQsVUFBNUIsR0FBd0MsSUFBMUMsRUFBZ0RDLElBQWhEO0FBQ0QsR0FMRDtBQU1BN0QsSUFBRSxpQkFBRixFQUFxQkUsRUFBckIsQ0FBd0IsT0FBeEIsRUFBZ0MsWUFBVTtBQUN4QyxRQUFHLENBQUNGLEVBQUUsSUFBRixFQUFRa0IsUUFBUixDQUFpQixTQUFqQixDQUFKLEVBQWdDO0FBQzlCbEIsUUFBRSxpQkFBRixFQUFxQnFCLFdBQXJCLENBQWlDLFNBQWpDO0FBQ0FyQixRQUFFLHNCQUFGLEVBQTBCb0IsSUFBMUI7QUFDQXBCLFFBQUUsSUFBRixFQUFReUIsUUFBUixDQUFpQixTQUFqQjtBQUNBekIsUUFBRSw2QkFBNEJBLEVBQUUsSUFBRixFQUFRTSxJQUFSLENBQWEsVUFBYixDQUE1QixHQUFzRCxJQUF4RCxFQUE4RHdELE1BQTlEO0FBQ0Q7QUFDRixHQVBEO0FBUUQsQ0EvUUQsRSIsImZpbGUiOiIvcHVibGljL2NvbW1vbi9qcy9mYWN1bHR5X2RlcGFydG1lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9k
356dWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMjEpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIGRhMzcwYjc2NDFlNTRjNzRmM2EwIiwiLy9pbXBvcnQgJCBmcm9tIFwianF1ZXJ5XCJcblxuJChmdW5jdGlvbiAoKSB7XG5cbiAgLyogKioqKioqKioqKioqKioqKioqKipcbiAgICog44Oa44O844K45YaF6YG356e7XG4gICAqIOWtpumDqOWQjeOCkuaKvOS4i+OBp+OCueOCr+ODreODvOODq1xuICAgKioqKioqKioqKioqKioqKioqKiogKi9cbiAgY29uc3QgbG9jYWxOYXZUYXJnZXQgPSAkKFwiLmxvY2FsTmF2MDEgYVwiKVxuICBsb2NhbE5hdlRhcmdldC5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICB2YXIgYW5jID0gJChldmVudC5jdXJyZW50VGFyZ2V0KS5hdHRyKCdocmVmJyk7XG4gICAgaWYgKGFuYy5pbmRleE9mKCcjJykgPT09IDAgfHwgYW5jLmluZGV4T2YoJy8jJykgPT09IDApIHtcbiAgICAgIGlmIChhbmMuaW5kZXhPZignLyMnKSA9PT0gMCkge1xuICAgICAgICB2YXIgYW5jID0gYW5jLnJlcGxhY2UoJy8nLCAnJyk7XG4gICAgICB9XG4gICAgICB2YXIgc3BlZWQgPSA0MDA7XG4gICAgICB2YXIgcG9zaXRpb24gPSAkKGFuYykub2Zmc2V0KCkudG9wIC0gJCgnaGVhZGVyLmhlYWRlcicpLm91dGVySGVpZ2h0KHRydWUpO1xuICAgICAgJCgnYm9keSxodG1sJykuYW5pbWF0ZSh7XG4gICAgICAgIHNjcm9sbFRvcDogcG9zaXRpb25cbiAgICAgIH0sIHNwZWVkLCAnc3dpbmcnKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0pO1xuXG4gIC8qICoqKioqKioqKioqKioqKioqKioqXG4gICAqIOOCouOCs+ODvOODh+OCo+OCquODs1xuICAgKiDoqq3jgb/ovrzjgb/mmYIuYWNPcGVu44GM44Gq44GE5aC05ZCI44Gv44Kv44Ot44O844K654q25oWLXG4gICAqIOWtpumDqOWQjeOCkuaKvOS4i+OBp+ihqOekuumdnuihqOekuuODiOOCsOODq1xuICAgKioqKioqKioqKioqKioqKioqKiogKi9cbiAgY29uc3QgYWNCdG4gPSAkKFwiLmFjQnRuXCIpXG4gIGFjQnRuLmVhY2goZnVuY3Rpb24gKCkge1xuICAgIGlmICghJCh0aGlzKS5oYXNDbGFzcygnYWNPcGVuJykpIHtcbiAgICAgICQodGhpcykubmV4dCgnLmFjQ29udGVudHMnKS5oaWRlKClcbiAgICB9XG4gIH0pO1xuICBhY0J0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICBpZiAoJChldmVudC5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygnYWNPcGVuJykpIHtcbiAgICAgICQoZXZlbnQuY3VycmVudFRhcmdldCkucmVtb3ZlQ2xhc3MoJ2FjT3BlbicpO1xuICAgICAgJChldmVudC5jdXJyZW50VGFyZ2V0KS5uZXh0QWxsKCcuYWNDb250ZW50cycpLnN0b3AoKS5zbGlkZVVwKClcbiAgICB9IGVsc2Uge1xuICAgICAgJChldmVudC5jdXJyZW50VGFyZ2V0KS5hZGRDbGFzcygnYWNPcGVuJyk7XG4gICAgICAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpLm5leHRBbGwoJy5hY0NvbnRlbnRzJykuc3RvcCgpLnNsaWRlRG93bigpXG4gICAgfVxuICB9KTtcblxuICAvKiAqKioqKioqKioqKioqKioqKioqKlxuICAgKiDjgqLjgrPjg7zjg4fjgqPjgqrjg7NcbiAgICogU1Djga7jgb9cbiAgICoqKioqKioqKioqKioqKioqKioqICovXG4gIGNvbnN0IHNwQWNCdG4gPSAkKFwiLnNwQWNCdG5cIilcbiAgJCh3aW5kb3cpLm9uKCdsb2FkIHJlc2l6ZScsIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCA4MDApIHtcbiAgICAgIHNwQWNCdG4uZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghJCh0aGlzKS5oYXNDbGFzcygnYWNPcGVuJykpIHtcbiAgICAgICAgICAkKHRoaXMpLm5leHQoJy5zcEFjQ29udGVudHMnKS5oaWRlKClcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNwQWNCdG4ucmVtb3ZlQ2xhc3MoJ2FjT3BlbicpO1xuICAgICAgJCgnLnNwQWNDb250ZW50cycpLnJlbW92ZUF0dHIoJ3N0eWxlJyk7XG4gICAgfVxuICB9KTtcbiAgc3BBY0J0bi5vbihcImNsaWNrXCIsIChlbGVtKSA9PiB7XG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgODAwKSB7XG4gICAgICBlbGVtLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAoJChldmVudC5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygnYWNPcGVuJykpIHtcbiAgICAgICAgJChldmVudC5jdXJyZW50VGFyZ2V0KS5yZW1vdmVDbGFzcygnYWNPcGVuJyk7XG4gICAgICAgICQoZXZlbnQuY3VycmVudFRhcmdldCkubmV4dEFsbCgnLnNwQWNDb250ZW50cycpLnN0b3AoKS5zbGlkZVVwKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICQoZXZlbnQuY3VycmVudFRhcmdldCkuYWRkQ2xhc3MoJ2FjT3BlbicpO1xuICAgICAgICAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpLm5leHRBbGwoJy5zcEFjQ29udGVudHMnKS5zdG9wKCkuc2xpZGVEb3duKClcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIC8qICoqKioqKioqKioqKioqKioqKioqXG4gICAqIOOCteOCpOODieODoeODi+ODpeODvFxuICAgKiDjgrnjgq/jg63jg7zjg6vmmYLov73lvpNcbiAgICoqKioqKioqKioqKioqKioqKioqICovXG4gIGNvbnN0IHRvcEggPSAyNzlcbiAgY29uc3QgZmRTaWRlID0gJCgnLmZkU2lkZScpXG4gIGNvbnN0IGZkU2lkZUZpeGVkID0gJCgnLmZkU2lkZUZpeGVkJylcbiAgJCh3aW5kb3cpLm9uKCdzY3JvbGwnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgaGVhZGVySCA9ICQoJ2hlYWRlci5oZWFkZXInKS5vdXRlckhlaWdodCh0cnVlKSArIDIwXG4gICAgY29uc3QgZnVuY1BvcyA9IHRvcEggLSBoZWFkZXJIXG4gICAgY29uc3QgZmRTaWRlSCA9IGZkU2lkZS5vdXRlckhlaWdodCh0cnVlKVxuICAgIGNvbnN0IGZkU2lkZUZpeGVkSCA9IGZkU2lkZUZpeGVkLm91dGVySGVpZ2h0KHRydWUpXG4gICAgaWYgKHdpbmRvdy5pbm5lckhlaWdodCAtIGhlYWRlckggPiBmZFNpZGVGaXhlZEgpIHtcbiAgICAgIC8vIOOCteOCpOODieODoeODi+ODpeODvOOBrumrmOOBleOBjOS9juOBhOOBqOOBjVxuICAgICAgZmRTaWRlRml4ZWQuY3NzKHtcbiAgICAgICAgdG9wOiBoZWFkZXJIXG4gICAgICB9KTtcbiAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gZnVuY1Bvcykge1xuICAgICAgICBmZFNpZGVGaXhlZC5hZGRDbGFzcygnZml4ZWQwMScpXG4gICAgICAgIGZkU2l
356kZUZpeGVkLnJlbW92ZUNsYXNzKCdmaXhlZDAyJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZkU2lkZUZpeGVkLnJlbW92ZUNsYXNzKCdmaXhlZDAxJylcbiAgICAgICAgZmRTaWRlRml4ZWQucmVtb3ZlQ2xhc3MoJ2ZpeGVkMDInKVxuICAgICAgfVxuXG4gICAgICAvLyDkuIvjgafmraLjgb7jgotcbiAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gKGZkU2lkZUggKyBmdW5jUG9zKSAtIGZkU2lkZUZpeGVkSCkge1xuICAgICAgICBmZFNpZGUuYWRkQ2xhc3MoJ2ZkU2lkZUZpeGVkU3RvcCcpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmZFNpZGUucmVtb3ZlQ2xhc3MoJ2ZkU2lkZUZpeGVkU3RvcCcpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIOOCteOCpOODieODoeODi+ODpeODvOOBrumrmOOBleOBjOmrmOOBhOOBqOOBjVxuICAgICAgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSA+PSBmdW5jUG9zICYmICQod2luZG93KS5zY3JvbGxUb3AoKSArIHdpbmRvdy5pbm5lckhlaWdodCA+PSB0b3BIICsgZmRTaWRlRml4ZWRIKSB7XG4gICAgICAgIGZkU2lkZUZpeGVkLmFkZENsYXNzKCdmaXhlZDAyJylcbiAgICAgICAgZmRTaWRlRml4ZWQucmVtb3ZlQ2xhc3MoJ2ZpeGVkMDEnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmRTaWRlRml4ZWQucmVtb3ZlQ2xhc3MoJ2ZpeGVkMDEnKVxuICAgICAgICBmZFNpZGVGaXhlZC5yZW1vdmVDbGFzcygnZml4ZWQwMicpXG4gICAgICB9XG5cbiAgICAgIC8vIOS4i+OBp+atouOBvuOCi1xuICAgICAgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSArIHdpbmRvdy5pbm5lckhlaWdodCA+PSB0b3BIICsgZmRTaWRlSCkge1xuICAgICAgICBmZFNpZGUuYWRkQ2xhc3MoJ2ZkU2lkZUZpeGVkU3RvcCcpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmZFNpZGUucmVtb3ZlQ2xhc3MoJ2ZkU2lkZUZpeGVkU3RvcCcpXG4gICAgICB9XG4gICAgfVxuXG4gIH0pO1xuXG4gIC8vIOOCteOCpOODieODoeODi+ODpeODvOOBrumrmOOBleOBjOmAhui7ouOBl+OBn+OCiei/veW+k+OBruWfuua6luOCkuWkieabtFxuICBhY0J0bi5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHdpbmRvdy5pbm5lckhlaWdodCAtICQoJ2hlYWRlci5oZWFkZXInKS5vdXRlckhlaWdodCh0cnVlKSA+IGZkU2lkZUZpeGVkLm91dGVySGVpZ2h0KHRydWUpKSB7XG4gICAgICBpZiAoJCh3aW5kb3cpLnNjcm9sbFRvcCgpID49IGZkU2lkZS5vZmZzZXQoKS50b3AgLSAkKCdoZWFkZXIuaGVhZGVyJykub3V0ZXJIZWlnaHQodHJ1ZSkpIHtcbiAgICAgICAgZmRTaWRlRml4ZWQuY3NzKHtcbiAgICAgICAgICB0b3A6ICQoJ2hlYWRlci5oZWFkZXInKS5vdXRlckhlaWdodCh0cnVlKVxuICAgICAgICB9KTtcbiAgICAgICAgZmRTaWRlRml4ZWQuYWRkQ2xhc3MoJ2ZpeGVkMDEnKVxuICAgICAgICBmZFNpZGVGaXhlZC5yZW1vdmVDbGFzcygnZml4ZWQwMicpXG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICAvKiAqKioqKioqKioqKioqKioqKioqKlxuICAgKiDpq5jjgZXmj4PjgYjjgotcbiAgICogcGNIZWlnaHRBanVzdENvbnRlbnRz77yI77yJXG4gICAqKioqKioqKioqKioqKioqKioqKiAqL1xuICAkKHdpbmRvdykub24oJ2xvYWQgcmVzaXplJywgZnVuY3Rpb24gKCkge1xuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IDgwMCkge1xuICAgICAgJCgnLnBjSGVpZ2h0QWp1c3QwMScpLnJlbW92ZUF0dHIoJ3N0eWxlJyk7XG4gICAgICAkKCcucGNIZWlnaHRBanVzdDAyJykucmVtb3ZlQXR0cignc3R5bGUnKTtcbiAgICAgICQoJy5hY0J0bicpLnJlbW92ZUF0dHIoJ3N0eWxlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICQoJy5wY0hlaWdodEFqdXN0Q29udGVudHMnKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGhMaXN0ID0gbmV3IEFycmF5KCk7XG4gICAgICAgIHZhciBoTGlzdDIgPSBuZXcgQXJyYXkoKTtcbiAgICAgICAgJCh0aGlzKS5maW5kKCcucGNIZWlnaHRBanVzdDAxJykuZWFjaChmdW5jdGlvbiAoaWR4KSB7XG4gICAgICAgICAgaExpc3RbaWR4XSA9ICQodGhpcykuaGVpZ2h0KCk7XG4gICAgICAgIH0pO1xuICAgICAgICAkKHRoaXMpLmZpbmQoJy5wY0hlaWdodEFqdXN0MDInKS5lYWNoKGZ1bmN0aW9uIChpZHkpIHtcbiAgICAgICAgICBoTGlzdDJbaWR5XSA9ICQodGhpcykuaGVpZ2h0KCk7XG4gICAgICAgIH0pO1xuICAgICAgICB2Y
356XIgbWF4SCA9IE1hdGgubWF4LmFwcGx5KG51bGwsIGhMaXN0KTtcbiAgICAgICAgdmFyIG1heEgyID0gTWF0aC5tYXguYXBwbHkobnVsbCwgaExpc3QyKTtcbiAgICAgICAgJCh0aGlzKS5maW5kKCcucGNIZWlnaHRBanVzdDAxJykuY3NzKHtcbiAgICAgICAgICBoZWlnaHQ6IG1heEggKyAncHgnXG4gICAgICAgIH0pO1xuICAgICAgICAkKHRoaXMpLmZpbmQoJy5wY0hlaWdodEFqdXN0MDInKS5jc3Moe1xuICAgICAgICAgIGhlaWdodDogbWF4SDIgKyAncHgnXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgICQoJy5jb2xFbGUzJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICgkKHRoaXMpLmZpbmQoJy5hY0J0bicpLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBoTGlzdCA9IG5ldyBBcnJheSgpO1xuICAgICAgICAkKHRoaXMpLmZpbmQoJy5hY0J0bicpLmVhY2goZnVuY3Rpb24gKGlkeCkge1xuICAgICAgICAgIGhMaXN0W2lkeF0gPSAkKHRoaXMpLm91dGVySGVpZ2h0KHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIG1heEggPSBNYXRoLm1heC5hcHBseShudWxsLCBoTGlzdCk7XG4gICAgICAgICQodGhpcykuZmluZCgnLmFjQnRuJykuY3NzKHtcbiAgICAgICAgICBoZWlnaHQ6IG1heEggKyAncHgnXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcblxuICAvKiAqKioqKioqKioqKioqKioqKioqKlxuICAgKiDntZ7jgorovrzjgb9cbiAgICog44Oi44O844OA44OrXG4gICAqKioqKioqKioqKioqKioqKioqKiAqL1xuICAkKCcuaWNvblNlYXJjaCcpLm9uKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAkKHRoaXMpLm5leHQoJy5zZWFyY2hNb2RhbCcpLmFkZENsYXNzKCdtb2RhbE9wZW4nKTtcbiAgfSk7XG4gICQoJy5zZWFyY2hNb2RhbCcpLm9uKCdjbGljaycsICcuY2xvc2VCdG4nLCBmdW5jdGlvbiAoKSB7XG4gICAgJCh0aGlzKS5wYXJlbnRzKCcuc2VhcmNoTW9kYWwnKS5yZW1vdmVDbGFzcygnbW9kYWxPcGVuJyk7XG4gIH0pO1xuXG4gIC8qICoqKioqKioqKioqKioqKioqKioqXG4gICAqIGluZm9ybWF0aW9uXG4gICAqIOmBuOaKnuOCueOCpOODg+ODgVxuICAgKioqKioqKioqKioqKioqKioqKiogKi9cbiAgLy8gdmFyIGxpbWl0ID0gZnVuY3Rpb24gKGxpbWl0TnVtKSB7XG4gIC8vICAgJCgnLmluZm9fdGFiLmxpbWl0JyArIGxpbWl0TnVtICsgJyAuc3dpdGNoU2hvdycpLmVhY2goZnVuY3Rpb24gKGluZGV4KSB7XG4gIC8vICAgICBpZiAoaW5kZXggPj0gbGltaXROdW0pIHtcbiAgLy8gICAgICAgJCh0aGlzKS5hZGRDbGFzcygnaXMtaGlkZGVuJyk7XG4gIC8vICAgICB9XG4gIC8vICAgfSk7XG4gIC8vIH1cbiAgLy8gbGltaXQoNik7XG4gIC8vICQoJy5pbmZvU3dpdGNoIGxpJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAvLyAgIGlmKCQodGhpcykuaGFzQ2xhc3MoJ3N3aXRjaE9uJykpe1xuICAvLyAgICAgLy/jgIDmirzjgZXjgozjgabjgarjgYTnirbmhYvjgaflhajjgabooajnpLpcbiAgLy8gICAgICQoJy5pbmZvU3dpdGNoIGxpJykucmVtb3ZlQ2xhc3MoJ3N3aXRjaE9uJyk7XG4gIC8vICAgICAkKCcuaW5mb190YWIgYScpLmFkZENsYXNzKCdzd2l0Y2hTaG93Jyk7XG4gIC8vICAgICBsaW1pdCg2KTtcbiAgLy8gICB9ZWxzZXtcbiAgLy8gICAgIC8vIOaKvOOBl+OBn+OCq+ODhuOCtOODquODvOOBruOBv+ihqOekulxuICAvLyAgICAgJCgnLmluZm9Td2l0Y2ggbGknKS5yZW1vdmVDbGFzcygnc3dpdGNoT24nKTtcbiAgLy8gICAgICQoJy5pbmZvX3RhYiBhJykucmVtb3ZlQ2xhc3MoJ3N3aXRjaFNob3cnKTtcbiAgLy8gICAgIHZhciB0aGlzU3dpdGNoID0gJCh0aGlzKS5hdHRyKCdkYXRhLXN3aXRjaCcpO1xuICAvLyAgICAgJCh0aGlzKS5hZGRDbGFzcygnc3dpdGNoT24nKTtcbiAgLy8gICAgICQoJy5pbmZvX3RhYi5saW1pdDYgLmluZm9faXRlbScpLnJlbW92ZUNsYXNzKCdpcy1oaWRkZW4nKTtcbiAgLy8gICAgICQoJy5pbmZvX3RhYiBhJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gIC8vICAgICAgIGlmICgkKHRoaXMpLmF0dHIoJ2RhdGEtY2F0JykgPT0gdGhpc1N3aXRjaCkge1xuICAvLyAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ3N3aXRjaFNob3cnKTtcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfSk7XG4gIC8vICAgICBsaW1pdCg2KTtcbiAgLy8gICB9XG4gIC8vIH0pO1xuXG4gICQoJy5pbmZvU3dpdGNoIGxpJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgIGlmKCQodGhpcykuaGFzQ2xhc3MoJ3N3aXRjaE9uJykpe1xuICAgICAgJCgnLmluZm9Td2l0Y2ggbGknKS5yZW1vdmVDbGFzcygnc3dpdGNoT24nKTtcbiAgICAgICQoJy5pbmZvX2FydCAuaW5mb190YWInKS5yZW1vdmVDbGFzcygnc2hvdycpO1xuICAgICAgJCgnLmluZm9fYXJ0IC5pbmZvX3RhYltkYXRhLWNhdD1cImFsbFwiXScpLmFkZENsYXNzKCdzaG93Jyk7XG4gICAgfWVsc2V7XG4gICAgICAkKCcuaW5mb1N3aXRjaCBsaScpLnJlbW92ZUNsYXNzKCdzd2l0Y2hPbicpO1xuICAgICAgJCh0aGlzKS5hZGRDbGFzcygnc3dpdGNoT24nKTtcbiAgICAgICQoJy5pbmZvX2FydCAuaW5mb190YWInKS5yZW1vdmVDbGFzcygnc2hvdycpO1xuICAgICAgJCgnLmluZm9fYXJ0IC5pbmZvX3RhYltkYXRhLWNhdD1cIicrICQodGhpcykuYXR0cignZGF0YS1zd2l0Y2gnKSArJ1wiXScpLmFkZENsYXNzKCdzaG93Jyk7XG4gICAgfVxuICB9KTtcblxuICAvKiAqKioqKioqKioqKioqKioqKioqKlxuICAgKiBpbmZvcm1hdGlvblxuICAgKiDlubTmnIjjgrvjg6zjgq/jg4hcbiAgICoqKioqKioqKioqKioqKioqKioqICovXG4gICQoJy55bVNlbGVjdGVyIHNlbGVjdCcpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbigpe1xuICAgIHZhciAkdGhpcyA9ICQodGhpcylcbiAgICB2YXIgJG9wdGlvbiA9ICR0aGlzLmZpbmQoJ29wdGlvbjpzZWxlY3RlZCcpO1xuICAgICQodGhpcykucGFyZW50cygnLnNlbGVjdFN0eWxlMDEnKS5maW5kKCdsYWJlbCcpLnRleHQoJG9wdGlvbi50ZXh0KCkpO1xuXG4gICAgJHRoaXMuYmx1cigpO1xuICB9KTtcblxuICAvKiAqKioqKioqKioqKioqKioqKioqKlxuICAgKiB0YWJcbiAgICog5rGO55So44K/44OWXG4gICAqKioqKioqKioqKioqKioqKioqKiAqL1xuICAkKCcudGFiQ29udGVudHMgLnRjSXRlbScpLmhpZGUoKTtcbiAgJCgnLnRhYkJ0biAudGJJdGVtJykuZWFjaChmdW5jdGlvbigpe1xuICAgIGlmKCQodGhpcykuaGFzQ2xhc3MoJ2N1cnJlbnQnKSl7XG4gICAgICB2Y
356XIgY3VycmVudFRhYiA9ICQodGhpcykuYXR0cignZGF0YS1idG4nKTtcbiAgICB9XG4gICAgJCgnLnRhYkNvbnRlbnRzIFtkYXRhLXRhYj1cIicrIGN1cnJlbnRUYWIgKydcIl0nKS5zaG93KCk7XG4gIH0pO1xuICAkKCcudGFiQnRuIC50Ykl0ZW0nKS5vbignY2xpY2snLGZ1bmN0aW9uKCl7XG4gICAgaWYoISQodGhpcykuaGFzQ2xhc3MoJ2N1cnJlbnQnKSl7XG4gICAgICAkKCcudGFiQnRuIC50Ykl0ZW0nKS5yZW1vdmVDbGFzcygnY3VycmVudCcpO1xuICAgICAgJCgnLnRhYkNvbnRlbnRzIC50Y0l0ZW0nKS5oaWRlKCk7XG4gICAgICAkKHRoaXMpLmFkZENsYXNzKCdjdXJyZW50Jyk7XG4gICAgICAkKCcudGFiQ29udGVudHMgW2RhdGEtdGFiPVwiJysgJCh0aGlzKS5hdHRyKCdkYXRhLWJ0bicpICsnXCJdJykuZmFkZUluKCk7XG4gICAgfVxuICB9KTtcbn0pXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2Fzc2V0cy9qcy9mYWN1bHR5X2RlcGFydG1lbnQuanMiXSwic291cmNlUm9vdCI6IiJ9

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.