PageSourceSearch

https://hushcore.net/wp-content/themes/hushcore/assets/super-scripts.js?ver=1.0

js hushcore.net collected 2026-10-08 16:02:15 UTC 159,766 bytes, 1,924 lines download raw bytes

1(self["webpackChunkhushcore"] = self["webpackChunkhushcore"] || []).push([["super-scripts"],{
2
3/***/ "./resources/js/super-scripts.js":
4/*!***************************************!*\
5  !*** ./resources/js/super-scripts.js ***!
6  \***************************************/
7/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
8
9__webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ "./node_modules/core-js/modules/web.dom-collections.for-each.js");
10
11__webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js");
12
13window.addEventListener('DOMContentLoaded', function (event) {
14  console.log('hello');
15  var mmt = document.querySelector('#mmt');
16
17  if (mmt) {
18    mmt.addEventListener('click', function (e) {
19      document.body.classList.toggle('smm');
20      console.log('show mobile menu');
21    });
22  }
23
24  var docSpecDownloads = document.querySelectorAll(".docs-and-specs ul li a");
25  console.log('docSpecDownloads: ', docSpecDownloads);
26  docSpecDownloads.forEach(function (v, i) {
27    console.log('wafu: ', v + ', ' + i + ', ' + this);
28    var re = /(?:\.([^.]+))?$/;
29    var ext = re.exec(v)[1]; // "txt"
30
31    docSpecDownloads[i].classList.add(ext);
32  });
33  var pdots = document.querySelectorAll(".pdot");
34
35  if (pdots) {
36    pdots.forEach(function (v, i) {
37      pdots[i].addEventListener('click', function (e) {
38        var children = pdots[i].parentNode.querySelectorAll('.pdot');
39        children.forEach(function (vv, ii) {
40          children[ii].classList.remove('active');
41        });
42        pdots[i].classList.add('active');
43      });
44    });
45  }
46  
47  /*
48
49  Reveal.initialize({
50    controls: false,
51    progress: false,
52    loop: true,
53    center: true,
54    hash: true,
55    transition: 'fade',
56    // none/fade/slide/convex/concave/zoom
57    disableLayout: false,
58    // The "normal" size of the presentation, aspect ratio will
59    // be preserved when the presentation is scaled to fit different
60    // resolutions. Can be specified using percentage units.
61    width: 960,
62    height: 700,
63    // Factor of the display size that should remain empty around
64    // the content
65    margin: 0.04,
66    // Bounds for smallest/largest possible scale to apply to content
67    minScale: 0.2,
68    maxScale: 2.0
69  });
70  
71 
72  	const slideShowDots = document.querySelectorAll(".slideShowDots li");
73  for (let i = 0; i < slideShowDots.length; i++) {
74  	slideShowDots[i].addEventListener('click', e => {
75  		changeSlide(e);
76  	});
77  }
78  
79  const slideShowArrows = document.querySelectorAll(".slideShowArrow");
80  for (let i = 0; i < slideShowArrows.length; i++) {
81  	slideShowArrows[i].addEventListener('click', e => {
82  		changeSlide(e);
83  	});
84  }
85  
86  const changeSlide = (e) => {
87  	const container = e.target.parentNode.parentNode,
88  			slides = container.querySelectorAll(".slideShowSlides li"),
89  			dots = container.querySelectorAll(".slideShowDots li");
90  	let x = 0,
91  			s = 0;
92  	
93  	// dots
94  	if(e.target.tagName === 'LI'){ s = [].indexOf.call(e.target.parentNode.children, e.target); }
95  	
96  	// both
97  	for (let a = 0; a < dots.length; a++) {
98  		if(e.target.tagName === 'DIV' && slides[a].classList.contains('active')){ x = a; }
99  		dots[a].classList.remove('active');
100  		slides[a].classList.remove('active');
101  	}
102  	
103  	// arrows
104  	if(e.target.tagName === 'DIV'){
105  		if(e.target.classList.contains('next')){ if(x + 1 >= slides.length) { s = 0; } else { s = x + 1; } }
106  		else { if(x - 1 < 0) { s = slides.length - 1; } else { s = x - 1; } }
107  	}
108  	dots[s].classList.add('active');
109  	slides[s].classList.add('active');
110  }
111  
112   */
113});
114
115/***/ }),
116
vendor: 415 bytes, lines 117-131
117/***/ "./node_modules/core-js/internals/a-function.js":
118/*!******************************************************!*\
119  !*** ./node_modules/core-js/internals/a-function.js ***!
120  \******************************************************/
121/***/ (function(module) {
122
123module.exports = function (it) {
124  if (typeof it != 'function') {
125    throw TypeError(String(it) + ' is not a function');
126  } return it;
127};
128
129
130/***/ }),
131
vendor: 563 bytes, lines 132-148
132/***/ "./node_modules/core-js/internals/an-object.js":
133/*!*****************************************************!*\
134  !*** ./node_modules/core-js/internals/an-object.js ***!
135  \*****************************************************/
136/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
137
138var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
139
140module.exports = function (it) {
141  if (!isObject(it)) {
142    throw TypeError(String(it) + ' is not an object');
143  } return it;
144};
145
146
147/***/ }),
148
vendor: 1,052 bytes, lines 149-171
149/***/ "./node_modules/core-js/internals/array-for-each.js":
150/*!**********************************************************!*\
151  !*** ./node_modules/core-js/internals/array-for-each.js ***!
152  \**********************************************************/
153/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
154
155"use strict";
156
157var $forEach = (__webpack_require__(/*! ../internals/array-iteration */ "./node_modules/core-js/internals/array-iteration.js").forEach);
158var arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ "./node_modules/core-js/internals/array-method-is-strict.js");
159
160var STRICT_METHOD = arrayMethodIsStrict('forEach');
161
162// `Array.prototype.forEach` method implementation
163// https://tc39.es/ecma262/#sec-array.prototype.foreach
164module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {
165  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
166// eslint-disable-next-line es/no-array-prototype-foreach -- safe
167} : [].forEach;
168
169
170/***/ }),
171
vendor: 1,844 bytes, lines 172-213
172/***/ "./node_modules/core-js/internals/array-includes.js":
173/*!**********************************************************!*\
174  !*** ./node_modules/core-js/internals/array-includes.js ***!
175  \**********************************************************/
176/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
177
178var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
179var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
180var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/core-js/internals/to-absolute-index.js");
181
182// `Array.prototype.{ indexOf, includes }` methods implementation
183var createMethod = function (IS_INCLUDES) {
184  return function ($this, el, fromIndex) {
185    var O = toIndexedObject($this);
186    var length = toLength(O.length);
187    var index = toAbsoluteIndex(fromIndex, length);
188    var value;
189    // Array#includes uses SameValueZero equality algorithm
190    // eslint-disable-next-line no-self-compare -- NaN check
191    if (IS_INCLUDES && el != el) while (length > index) {
192      value = O[index++];
193      // eslint-disable-next-line no-self-compare -- NaN check
194      if (value != value) return true;
195    // Array#indexOf ignores holes, Array#includes - not
196    } else for (;length > index; index++) {
197      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
198    } return !IS_INCLUDES && -1;
199  };
200};
201
202module.exports = {
203  // `Array.prototype.includes` method
204  // https://tc39.es/ecma262/#sec-array.prototype.includes
205  includes: createMethod(true),
206  // `Array.prototype.indexOf` method
207  // https://tc39.es/ecma262/#sec-array.prototype.indexof
208  indexOf: createMethod(false)
209};
210
211
212/***/ }),
213
vendor: 3,489 bytes, lines 214-295
214/***/ "./node_modules/core-js/internals/array-iteration.js":
215/*!***********************************************************!*\
216  !*** ./node_modules/core-js/internals/array-iteration.js ***!
217  \***********************************************************/
218/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
219
220var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js");
221var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js");
222var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
223var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js");
224var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ "./node_modules/core-js/internals/array-species-create.js");
225
226var push = [].push;
227
228// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation
229var createMethod = function (TYPE) {
230  var IS_MAP = TYPE == 1;
231  var IS_FILTER = TYPE == 2;
232  var IS_SOME = TYPE == 3;
233  var IS_EVERY = TYPE == 4;
234  var IS_FIND_INDEX = TYPE == 6;
235  var IS_FILTER_OUT = TYPE == 7;
236  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
237  return function ($this, callbackfn, that, specificCreate) {
238    var O = toObject($this);
239    var self = IndexedObject(O);
240    var boundFunction = bind(callbackfn, that, 3);
241    var length = toLength(self.length);
242    var index = 0;
243    var create = specificCreate || arraySpeciesCreate;
244    var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;
245    var value, result;
246    for (;length > index; index++) if (NO_HOLES || index in self) {
247      value = self[index];
248      result = boundFunction(value, index, O);
249      if (TYPE) {
250        if (IS_MAP) target[index] = result; // map
251        else if (result) switch (TYPE) {
252          case 3: return true;              // some
253          case 5: return value;             // find
254          case 6: return index;             // findIndex
255          case 2: push.call(target, value); // filter
256        } else switch (TYPE) {
257          case 4: return false;             // every
258          case 7: push.call(target, value); // filterOut
259        }
260      }
261    }
262    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
263  };
264};
265
266module.exports = {
267  // `Array.prototype.forEach` method
268  // https://tc39.es/ecma262/#sec-array.prototype.foreach
269  forEach: createMethod(0),
270  // `Array.prototype.map` method
271  // https://tc39.es/ecma262/#sec-array.prototype.map
272  map: createMethod(1),
273  // `Array.prototype.filter` method
274  // https://tc39.es/ecma262/#sec-array.prototype.filter
275  filter: createMethod(2),
276  // `Array.prototype.some` method
277  // https://tc39.es/ecma262/#sec-array.prototype.some
278  some: createMethod(3),
279  // `Array.prototype.every` method
280  // https://tc39.es/ecma262/#sec-array.prototype.every
281  every: createMethod(4),
282  // `Array.prototype.find` method
283  // https://tc39.es/ecma262/#sec-array.prototype.find
284  find: createMethod(5),
285  // `Array.prototype.findIndex` method
286  // https://tc39.es/ecma262/#sec-array.prototype.findIndex
287  findIndex: createMethod(6),
288  // `Array.prototype.filterOut` method
289  // https://github.com/tc39/proposal-array-filtering
290  filterOut: createMethod(7)
291};
292
293
294/***/ }),
295
vendor: 777 bytes, lines 296-316
296/***/ "./node_modules/core-js/internals/array-method-is-strict.js":
297/*!******************************************************************!*\
298  !*** ./node_modules/core-js/internals/array-method-is-strict.js ***!
299  \******************************************************************/
300/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
301
302"use strict";
303
304var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
305
306module.exports = function (METHOD_NAME, argument) {
307  var method = [][METHOD_NAME];
308  return !!method && fails(function () {
309    // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing
310    method.call(null, argument || function () { throw 1; }, 1);
311  });
312};
313
314
315/***/ }),
316
vendor: 1,278 bytes, lines 317-346
317/***/ "./node_modules/core-js/internals/array-species-create.js":
318/*!****************************************************************!*\
319  !*** ./node_modules/core-js/internals/array-species-create.js ***!
320  \****************************************************************/
321/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
322
323var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
324var isArray = __webpack_require__(/*! ../internals/is-array */ "./node_modules/core-js/internals/is-array.js");
325var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
326
327var SPECIES = wellKnownSymbol('species');
328
329// `ArraySpeciesCreate` abstract operation
330// https://tc39.es/ecma262/#sec-arrayspeciescreate
331module.exports = function (originalArray, length) {
332  var C;
333  if (isArray(originalArray)) {
334    C = originalArray.constructor;
335    // cross-realm fallback
336    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
337    else if (isObject(C)) {
338      C = C[SPECIES];
339      if (C === null) C = undefined;
340    }
341  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
342};
343
344
345/***/ }),
346
vendor: 385 bytes, lines 347-361
347/***/ "./node_modules/core-js/internals/classof-raw.js":
348/*!*******************************************************!*\
349  !*** ./node_modules/core-js/internals/classof-raw.js ***!
350  \*******************************************************/
351/***/ (function(module) {
352
353var toString = {}.toString;
354
355module.exports = function (it) {
356  return toString.call(it).slice(8, -1);
357};
358
359
360/***/ }),
361
vendor: 1,297 bytes, lines 362-385
362/***/ "./node_modules/core-js/internals/copy-constructor-properties.js":
363/*!***********************************************************************!*\
364  !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***!
365  \***********************************************************************/
366/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
367
368var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
369var ownKeys = __webpack_require__(/*! ../internals/own-keys */ "./node_modules/core-js/internals/own-keys.js");
370var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js");
371var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
372
373module.exports = function (target, source) {
374  var keys = ownKeys(source);
375  var defineProperty = definePropertyModule.f;
376  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
377  for (var i = 0; i < keys.length; i++) {
378    var key = keys[i];
379    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
380  }
381};
382
383
384/***/ }),
385
vendor: 1,067 bytes, lines 386-405
386/***/ "./node_modules/core-js/internals/create-non-enumerable-property.js":
387/*!**************************************************************************!*\
388  !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***!
389  \**************************************************************************/
390/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
391
392var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
393var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
394var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js");
395
396module.exports = DESCRIPTORS ? function (object, key, value) {
397  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
398} : function (object, key, value) {
399  object[key] = value;
400  return object;
401};
402
403
404/***/ }),
405
vendor: 512 bytes, lines 406-423
406/***/ "./node_modules/core-js/internals/create-property-descriptor.js":
407/*!**********************************************************************!*\
408  !*** ./node_modules/core-js/internals/create-property-descriptor.js ***!
409  \**********************************************************************/
410/***/ (function(module) {
411
412module.exports = function (bitmap, value) {
413  return {
414    enumerable: !(bitmap & 1),
415    configurable: !(bitmap & 2),
416    writable: !(bitmap & 4),
417    value: value
418  };
419};
420
421
422/***/ }),
423
vendor: 695 bytes, lines 424-440
424/***/ "./node_modules/core-js/internals/descriptors.js":
425/*!*******************************************************!*\
426  !*** ./node_modules/core-js/internals/descriptors.js ***!
427  \*******************************************************/
428/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
429
430var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
431
432// Detect IE8's incomplete defineProperty implementation
433module.exports = !fails(function () {
434  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
435  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
436});
437
438
439/***/ }),
440
vendor: 841 bytes, lines 441-460
441/***/ "./node_modules/core-js/internals/document-create-element.js":
442/*!*******************************************************************!*\
443  !*** ./node_modules/core-js/internals/document-create-element.js ***!
444  \*******************************************************************/
445/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
446
447var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
448var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
449
450var document = global.document;
451// typeof document.createElement is 'object' in old IE
452var EXISTS = isObject(document) && isObject(document.createElement);
453
454module.exports = function (it) {
455  return EXISTS ? document.createElement(it) : {};
456};
457
458
459/***/ }),
460
vendor: 1,040 bytes, lines 461-505
461/***/ "./node_modules/core-js/internals/dom-iterables.js":
462/*!*********************************************************!*\
463  !*** ./node_modules/core-js/internals/dom-iterables.js ***!
464  \*********************************************************/
465/***/ (function(module) {
466
467// iterable DOM collections
468// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
469module.exports = {
470  CSSRuleList: 0,
471  CSSStyleDeclaration: 0,
472  CSSValueList: 0,
473  ClientRectList: 0,
474  DOMRectList: 0,
475  DOMStringList: 0,
476  DOMTokenList: 1,
477  DataTransferItemList: 0,
478  FileList: 0,
479  HTMLAllCollection: 0,
480  HTMLCollection: 0,
481  HTMLFormElement: 0,
482  HTMLSelectElement: 0,
483  MediaList: 0,
484  MimeTypeArray: 0,
485  NamedNodeMap: 0,
486  NodeList: 1,
487  PaintRequestList: 0,
488  Plugin: 0,
489  PluginArray: 0,
490  SVGLengthList: 0,
491  SVGNumberList: 0,
492  SVGPathSegList: 0,
493  SVGPointList: 0,
494  SVGStringList: 0,
495  SVGTransformList: 0,
496  SourceBufferList: 0,
497  StyleSheetList: 0,
498  TextTrackCueList: 0,
499  TextTrackList: 0,
500  TouchList: 0
501};
502
503
504/***/ }),
505
vendor: 535 bytes, lines 506-518
506/***/ "./node_modules/core-js/internals/engine-user-agent.js":
507/*!*************************************************************!*\
508  !*** ./node_modules/core-js/internals/engine-user-agent.js ***!
509  \*************************************************************/
510/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
511
512var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
513
514module.exports = getBuiltIn('navigator', 'userAgent') || '';
515
516
517/***/ }),
518
vendor: 1,032 bytes, lines 519-548
519/***/ "./node_modules/core-js/internals/engine-v8-version.js":
520/*!*************************************************************!*\
521  !*** ./node_modules/core-js/internals/engine-v8-version.js ***!
522  \*************************************************************/
523/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
524
525var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
526var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ "./node_modules/core-js/internals/engine-user-agent.js");
527
528var process = global.process;
529var versions = process && process.versions;
530var v8 = versions && versions.v8;
531var match, version;
532
533if (v8) {
534  match = v8.split('.');
535  version = match[0] < 4 ? 1 : match[0] + match[1];
536} else if (userAgent) {
537  match = userAgent.match(/Edge\/(\d+)/);
538  if (!match || match[1] >= 74) {
539    match = userAgent.match(/Chrome\/(\d+)/);
540    if (match) version = match[1];
541  }
542}
543
544module.exports = version && +version;
545
546
547/***/ }),
548
vendor: 465 bytes, lines 549-568
549/***/ "./node_modules/core-js/internals/enum-bug-keys.js":
550/*!*********************************************************!*\
551  !*** ./node_modules/core-js/internals/enum-bug-keys.js ***!
552  \*********************************************************/
553/***/ (function(module) {
554
555// IE8- don't enum bug keys
556module.exports = [
557  'constructor',
558  'hasOwnProperty',
559  'isPrototypeOf',
560  'propertyIsEnumerable',
561  'toLocaleString',
562  'toString',
563  'valueOf'
564];
565
566
567/***/ }),
568
vendor: 3,343 bytes, lines 569-632
569/***/ "./node_modules/core-js/internals/export.js":
570/*!**************************************************!*\
571  !*** ./node_modules/core-js/internals/export.js ***!
572  \**************************************************/
573/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
574
575var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
576var getOwnPropertyDescriptor = (__webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f);
577var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
578var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
579var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js");
580var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "./node_modules/core-js/internals/copy-constructor-properties.js");
581var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js");
582
583/*
584  options.target      - name of the target object
585  options.global      - target is the global object
586  options.stat        - export as static methods of target
587  options.proto       - export as prototype methods of target
588  options.real        - real prototype method for the `pure` version
589  options.forced      - export even if the native feature is available
590  options.bind        - bind methods to the target, required for the `pure` version
591  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version
592  options.unsafe      - use the simple assignment of property instead of delete + defineProperty
593  options.sham        - add a flag to not completely full polyfills
594  options.enumerable  - export as enumerable property
595  options.noTargetGet - prevent calling a getter on target
596*/
597module.exports = function (options, source) {
598  var TARGET = options.target;
599  var GLOBAL = options.global;
600  var STATIC = options.stat;
601  var FORCED, target, key, targetProperty, sourceProperty, descriptor;
602  if (GLOBAL) {
603    target = global;
604  } else if (STATIC) {
605    target = global[TARGET] || setGlobal(TARGET, {});
606  } else {
607    target = (global[TARGET] || {}).prototype;
608  }
609  if (target) for (key in source) {
610    sourceProperty = source[key];
611    if (options.noTargetGet) {
612      descriptor = getOwnPropertyDescriptor(target, key);
613      targetProperty = descriptor && descriptor.value;
614    } else targetProperty = target[key];
615    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
616    // contained in target
617    if (!FORCED && targetProperty !== undefined) {
618      if (typeof sourceProperty === typeof targetProperty) continue;
619      copyConstructorProperties(sourceProperty, targetProperty);
620    }
621    // add a flag to not completely full polyfills
622    if (options.sham || (targetProperty && targetProperty.sham)) {
623      createNonEnumerableProperty(sourceProperty, 'sham', true);
624    }
625    // extend global
626    redefine(target, key, sourceProperty, options);
627  }
628};
629
630
631/***/ }),
632
vendor: 363 bytes, lines 633-649
633/***/ "./node_modules/core-js/internals/fails.js":
634/*!*************************************************!*\
635  !*** ./node_modules/core-js/internals/fails.js ***!
636  \*************************************************/
637/***/ (function(module) {
638
639module.exports = function (exec) {
640  try {
641    return !!exec();
642  } catch (error) {
643    return true;
644  }
645};
646
647
648/***/ }),
649
vendor: 1,031 bytes, lines 650-683
650/***/ "./node_modules/core-js/internals/function-bind-context.js":
651/*!*****************************************************************!*\
652  !*** ./node_modules/core-js/internals/function-bind-context.js ***!
653  \*****************************************************************/
654/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
655
656var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js");
657
658// optional / simple context binding
659module.exports = function (fn, that, length) {
660  aFunction(fn);
661  if (that === undefined) return fn;
662  switch (length) {
663    case 0: return function () {
664      return fn.call(that);
665    };
666    case 1: return function (a) {
667      return fn.call(that, a);
668    };
669    case 2: return function (a, b) {
670      return fn.call(that, a, b);
671    };
672    case 3: return function (a, b, c) {
673      return fn.call(that, a, b, c);
674    };
675  }
676  return function (/* ...args */) {
677    return fn.apply(that, arguments);
678  };
679};
680
681
682/***/ }),
683
vendor: 886 bytes, lines 684-704
684/***/ "./node_modules/core-js/internals/get-built-in.js":
685/*!********************************************************!*\
686  !*** ./node_modules/core-js/internals/get-built-in.js ***!
687  \********************************************************/
688/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
689
690var path = __webpack_require__(/*! ../internals/path */ "./node_modules/core-js/internals/path.js");
691var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
692
693var aFunction = function (variable) {
694  return typeof variable == 'function' ? variable : undefined;
695};
696
697module.exports = function (namespace, method) {
698  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])
699    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];
700};
701
702
703/***/ }),
704
vendor: 926 bytes, lines 705-728
705/***/ "./node_modules/core-js/internals/global.js":
706/*!**************************************************!*\
707  !*** ./node_modules/core-js/internals/global.js ***!
708  \**************************************************/
709/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
710
711var check = function (it) {
712  return it && it.Math == Math && it;
713};
714
715// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
716module.exports =
717  // eslint-disable-next-line es/no-global-this -- safe
718  check(typeof globalThis == 'object' && globalThis) ||
719  check(typeof window == 'object' && window) ||
720  // eslint-disable-next-line no-restricted-globals -- safe
721  check(typeof self == 'object' && self) ||
722  check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) ||
723  // eslint-disable-next-line no-new-func -- fallback
724  (function () { return this; })() || Function('return this')();
725
726
727/***/ }),
728
vendor: 564 bytes, lines 729-745
729/***/ "./node_modules/core-js/internals/has.js":
730/*!***********************************************!*\
731  !*** ./node_modules/core-js/internals/has.js ***!
732  \***********************************************/
733/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
734
735var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js");
736
737var hasOwnProperty = {}.hasOwnProperty;
738
739module.exports = Object.hasOwn || function hasOwn(it, key) {
740  return hasOwnProperty.call(toObject(it), key);
741};
742
743
744/***/ }),
745
vendor: 300 bytes, lines 746-756
746/***/ "./node_modules/core-js/internals/hidden-keys.js":
747/*!*******************************************************!*\
748  !*** ./node_modules/core-js/internals/hidden-keys.js ***!
749  \*******************************************************/
750/***/ (function(module) {
751
752module.exports = {};
753
754
755/***/ }),
756
vendor: 482 bytes, lines 757-769
757/***/ "./node_modules/core-js/internals/html.js":
758/*!************************************************!*\
759  !*** ./node_modules/core-js/internals/html.js ***!
760  \************************************************/
761/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
762
763var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
764
765module.exports = getBuiltIn('document', 'documentElement');
766
767
768/***/ }),
769
vendor: 1,004 bytes, lines 770-790
770/***/ "./node_modules/core-js/internals/ie8-dom-define.js":
771/*!**********************************************************!*\
772  !*** ./node_modules/core-js/internals/ie8-dom-define.js ***!
773  \**********************************************************/
774/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
775
776var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
777var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
778var createElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js");
779
780// Thank's IE8 for his funny defineProperty
781module.exports = !DESCRIPTORS && !fails(function () {
782  // eslint-disable-next-line es/no-object-defineproperty -- requied for testing
783  return Object.defineProperty(createElement('div'), 'a', {
784    get: function () { return 7; }
785  }).a != 7;
786});
787
788
789/***/ }),
790
vendor: 977 bytes, lines 791-813
791/***/ "./node_modules/core-js/internals/indexed-object.js":
792/*!**********************************************************!*\
793  !*** ./node_modules/core-js/internals/indexed-object.js ***!
794  \**********************************************************/
795/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
796
797var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
798var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
799
800var split = ''.split;
801
802// fallback for non-array-like ES3 and non-enumerable old V8 strings
803module.exports = fails(function () {
804  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
805  // eslint-disable-next-line no-prototype-builtins -- safe
806  return !Object('z').propertyIsEnumerable(0);
807}) ? function (it) {
808  return classof(it) == 'String' ? split.call(it, '') : Object(it);
809} : Object;
810
811
812/***/ }),
813
vendor: 752 bytes, lines 814-835
814/***/ "./node_modules/core-js/internals/inspect-source.js":
815/*!**********************************************************!*\
816  !*** ./node_modules/core-js/internals/inspect-source.js ***!
817  \**********************************************************/
818/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
819
820var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js");
821
822var functionToString = Function.toString;
823
824// this helper broken in `[email protected]`, so we can't use `shared` helper
825if (typeof store.inspectSource != 'function') {
826  store.inspectSource = function (it) {
827    return functionToString.call(it);
828  };
829}
830
831module.exports = store.inspectSource;
832
833
834/***/ }),
835
vendor: 2,802 bytes, lines 836-912
836/***/ "./node_modules/core-js/internals/internal-state.js":
837/*!**********************************************************!*\
838  !*** ./node_modules/core-js/internals/internal-state.js ***!
839  \**********************************************************/
840/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
841
842var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ "./node_modules/core-js/internals/native-weak-map.js");
843var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
844var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
845var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
846var objectHas = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
847var shared = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js");
848var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js");
849var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js");
850
851var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
852var WeakMap = global.WeakMap;
853var set, get, has;
854
855var enforce = function (it) {
856  return has(it) ? get(it) : set(it, {});
857};
858
859var getterFor = function (TYPE) {
860  return function (it) {
861    var state;
862    if (!isObject(it) || (state = get(it)).type !== TYPE) {
863      throw TypeError('Incompatible receiver, ' + TYPE + ' required');
864    } return state;
865  };
866};
867
868if (NATIVE_WEAK_MAP || shared.state) {
869  var store = shared.state || (shared.state = new WeakMap());
870  var wmget = store.get;
871  var wmhas = store.has;
872  var wmset = store.set;
873  set = function (it, metadata) {
874    if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
875    metadata.facade = it;
876    wmset.call(store, it, metadata);
877    return metadata;
878  };
879  get = function (it) {
880    return wmget.call(store, it) || {};
881  };
882  has = function (it) {
883    return wmhas.call(store, it);
884  };
885} else {
886  var STATE = sharedKey('state');
887  hiddenKeys[STATE] = true;
888  set = function (it, metadata) {
889    if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
890    metadata.facade = it;
891    createNonEnumerableProperty(it, STATE, metadata);
892    return metadata;
893  };
894  get = function (it) {
895    return objectHas(it, STATE) ? it[STATE] : {};
896  };
897  has = function (it) {
898    return objectHas(it, STATE);
899  };
900}
901
902module.exports = {
903  set: set,
904  get: get,
905  has: has,
906  enforce: enforce,
907  getterFor: getterFor
908};
909
910
911/***/ }),
912
vendor: 656 bytes, lines 913-930
913/***/ "./node_modules/core-js/internals/is-array.js":
914/*!****************************************************!*\
915  !*** ./node_modules/core-js/internals/is-array.js ***!
916  \****************************************************/
917/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
918
919var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
920
921// `IsArray` abstract operation
922// https://tc39.es/ecma262/#sec-isarray
923// eslint-disable-next-line es/no-array-isarray -- safe
924module.exports = Array.isArray || function isArray(arg) {
925  return classof(arg) == 'Array';
926};
927
928
929/***/ }),
930
vendor: 952 bytes, lines 931-961
931/***/ "./node_modules/core-js/internals/is-forced.js":
932/*!*****************************************************!*\
933  !*** ./node_modules/core-js/internals/is-forced.js ***!
934  \*****************************************************/
935/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
936
937var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
938
939var replacement = /#|\.prototype\./;
940
941var isForced = function (feature, detection) {
942  var value = data[normalize(feature)];
943  return value == POLYFILL ? true
944    : value == NATIVE ? false
945    : typeof detection == 'function' ? fails(detection)
946    : !!detection;
947};
948
949var normalize = isForced.normalize = function (string) {
950  return String(string).replace(replacement, '.').toLowerCase();
951};
952
953var data = isForced.data = {};
954var NATIVE = isForced.NATIVE = 'N';
955var POLYFILL = isForced.POLYFILL = 'P';
956
957module.exports = isForced;
958
959
960/***/ }),
961
vendor: 381 bytes, lines 962-974
962/***/ "./node_modules/core-js/internals/is-object.js":
963/*!*****************************************************!*\
964  !*** ./node_modules/core-js/internals/is-object.js ***!
965  \*****************************************************/
966/***/ (function(module) {
967
968module.exports = function (it) {
969  return typeof it === 'object' ? it !== null : typeof it === 'function';
970};
971
972
973/***/ }),
974
vendor: 287 bytes, lines 975-985
975/***/ "./node_modules/core-js/internals/is-pure.js":
976/*!***************************************************!*\
977  !*** ./node_modules/core-js/internals/is-pure.js ***!
978  \***************************************************/
979/***/ (function(module) {
980
981module.exports = false;
982
983
984/***/ }),
985
vendor: 1,177 bytes, lines 986-1008
986/***/ "./node_modules/core-js/internals/native-symbol.js":
987/*!*********************************************************!*\
988  !*** ./node_modules/core-js/internals/native-symbol.js ***!
989  \*********************************************************/
990/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
991
992/* eslint-disable es/no-symbol -- required for testing */
993var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ "./node_modules/core-js/internals/engine-v8-version.js");
994var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
995
996// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
997module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
998  var symbol = Symbol();
999  // Chrome 38 Symbol has incorrect toString conversion
1000  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
1001  return !String(symbol) || !(Object(symbol) instanceof Symbol) ||
1002    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
1003    !Symbol.sham && V8_VERSION && V8_VERSION < 41;
1004});
1005
1006
1007/***/ }),
1008
vendor: 705 bytes, lines 1009-1024
1009/***/ "./node_modules/core-js/internals/native-weak-map.js":
1010/*!***********************************************************!*\
1011  !*** ./node_modules/core-js/internals/native-weak-map.js ***!
1012  \***********************************************************/
1013/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1014
1015var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
1016var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js");
1017
1018var WeakMap = global.WeakMap;
1019
1020module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));
1021
1022
1023/***/ }),
1024
vendor: 3,705 bytes, lines 1025-1112
1025/***/ "./node_modules/core-js/internals/object-create.js":
1026/*!*********************************************************!*\
1027  !*** ./node_modules/core-js/internals/object-create.js ***!
1028  \*********************************************************/
1029/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1030
1031var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
1032var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ "./node_modules/core-js/internals/object-define-properties.js");
1033var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js");
1034var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js");
1035var html = __webpack_require__(/*! ../internals/html */ "./node_modules/core-js/internals/html.js");
1036var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js");
1037var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js");
1038
1039var GT = '>';
1040var LT = '<';
1041var PROTOTYPE = 'prototype';
1042var SCRIPT = 'script';
1043var IE_PROTO = sharedKey('IE_PROTO');
1044
1045var EmptyConstructor = function () { /* empty */ };
1046
1047var scriptTag = function (content) {
1048  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
1049};
1050
1051// Create object with fake `null` prototype: use ActiveX Object with cleared prototype
1052var NullProtoObjectViaActiveX = function (activeXDocument) {
1053  activeXDocument.write(scriptTag(''));
1054  activeXDocument.close();
1055  var temp = activeXDocument.parentWindow.Object;
1056  activeXDocument = null; // avoid memory leak
1057  return temp;
1058};
1059
1060// Create object with fake `null` prototype: use iframe Object with cleared prototype
1061var NullProtoObjectViaIFrame = function () {
1062  // Thrash, waste and sodomy: IE GC bug
1063  var iframe = documentCreateElement('iframe');
1064  var JS = 'java' + SCRIPT + ':';
1065  var iframeDocument;
1066  iframe.style.display = 'none';
1067  html.appendChild(iframe);
1068  // https://github.com/zloirock/core-js/issues/475
1069  iframe.src = String(JS);
1070  iframeDocument = iframe.contentWindow.document;
1071  iframeDocument.open();
1072  iframeDocument.write(scriptTag('document.F=Object'));
1073  iframeDocument.close();
1074  return iframeDocument.F;
1075};
1076
1077// Check for document.domain and active x support
1078// No need to use active x approach when document.domain is not set
1079// see https://github.com/es-shims/es5-shim/issues/150
1080// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
1081// avoid IE GC bug
1082var activeXDocument;
1083var NullProtoObject = function () {
1084  try {
1085    /* global ActiveXObject -- old IE */
1086    activeXDocument = document.domain && new ActiveXObject('htmlfile');
1087  } catch (error) { /* ignore */ }
1088  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
1089  var length = enumBugKeys.length;
1090  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
1091  return NullProtoObject();
1092};
1093
1094hiddenKeys[IE_PROTO] = true;
1095
1096// `Object.create` method
1097// https://tc39.es/ecma262/#sec-object.create
1098module.exports = Object.create || function create(O, Properties) {
1099  var result;
1100  if (O !== null) {
1101    EmptyConstructor[PROTOTYPE] = anObject(O);
1102    result = new EmptyConstructor();
1103    EmptyConstructor[PROTOTYPE] = null;
1104    // add "__proto__" for Object.getPrototypeOf polyfill
1105    result[IE_PROTO] = O;
1106  } else result = NullProtoObject();
1107  return Properties === undefined ? result : defineProperties(result, Properties);
1108};
1109
1110
1111/***/ }),
1112
vendor: 1,361 bytes, lines 1113-1139
1113/***/ "./node_modules/core-js/internals/object-define-properties.js":
1114/*!********************************************************************!*\
1115  !*** ./node_modules/core-js/internals/object-define-properties.js ***!
1116  \********************************************************************/
1117/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1118
1119var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
1120var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js");
1121var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
1122var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js");
1123
1124// `Object.defineProperties` method
1125// https://tc39.es/ecma262/#sec-object.defineproperties
1126// eslint-disable-next-line es/no-object-defineproperties -- safe
1127module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
1128  anObject(O);
1129  var keys = objectKeys(Properties);
1130  var length = keys.length;
1131  var index = 0;
1132  var key;
1133  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);
1134  return O;
1135};
1136
1137
1138/***/ }),
1139
vendor: 1,487 bytes, lines 1140-1170
1140/***/ "./node_modules/core-js/internals/object-define-property.js":
1141/*!******************************************************************!*\
1142  !*** ./node_modules/core-js/internals/object-define-property.js ***!
1143  \******************************************************************/
1144/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1145
1146var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
1147var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js");
1148var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
1149var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js");
1150
1151// eslint-disable-next-line es/no-object-defineproperty -- safe
1152var $defineProperty = Object.defineProperty;
1153
1154// `Object.defineProperty` method
1155// https://tc39.es/ecma262/#sec-object.defineproperty
1156exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {
1157  anObject(O);
1158  P = toPrimitive(P, true);
1159  anObject(Attributes);
1160  if (IE8_DOM_DEFINE) try {
1161    return $defineProperty(O, P, Attributes);
1162  } catch (error) { /* empty */ }
1163  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
1164  if ('value' in Attributes) O[P] = Attributes.value;
1165  return O;
1166};
1167
1168
1169/***/ }),
1170
vendor: 1,975 bytes, lines 1171-1201
1171/***/ "./node_modules/core-js/internals/object-get-own-property-descriptor.js":
1172/*!******************************************************************************!*\
1173  !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***!
1174  \******************************************************************************/
1175/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1176
1177var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js");
1178var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js");
1179var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js");
1180var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
1181var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js");
1182var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
1183var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js");
1184
1185// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
1186var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
1187
1188// `Object.getOwnPropertyDescriptor` method
1189// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
1190exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
1191  O = toIndexedObject(O);
1192  P = toPrimitive(P, true);
1193  if (IE8_DOM_DEFINE) try {
1194    return $getOwnPropertyDescriptor(O, P);
1195  } catch (error) { /* empty */ }
1196  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
1197};
1198
1199
1200/***/ }),
1201
vendor: 1,023 bytes, lines 1202-1222
1202/***/ "./node_modules/core-js/internals/object-get-own-property-names.js":
1203/*!*************************************************************************!*\
1204  !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***!
1205  \*************************************************************************/
1206/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1207
1208var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js");
1209var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js");
1210
1211var hiddenKeys = enumBugKeys.concat('length', 'prototype');
1212
1213// `Object.getOwnPropertyNames` method
1214// https://tc39.es/ecma262/#sec-object.getownpropertynames
1215// eslint-disable-next-line es/no-object-getownpropertynames -- safe
1216exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
1217  return internalObjectKeys(O, hiddenKeys);
1218};
1219
1220
1221/***/ }),
1222
vendor: 498 bytes, lines 1223-1234
1223/***/ "./node_modules/core-js/internals/object-get-own-property-symbols.js":
1224/*!***************************************************************************!*\
1225  !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***!
1226  \***************************************************************************/
1227/***/ (function(__unused_webpack_module, exports) {
1228
1229// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
1230exports.f = Object.getOwnPropertySymbols;
1231
1232
1233/***/ }),
1234
vendor: 1,215 bytes, lines 1235-1261
1235/***/ "./node_modules/core-js/internals/object-keys-internal.js":
1236/*!****************************************************************!*\
1237  !*** ./node_modules/core-js/internals/object-keys-internal.js ***!
1238  \****************************************************************/
1239/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1240
1241var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
1242var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
1243var indexOf = (__webpack_require__(/*! ../internals/array-includes */ "./node_modules/core-js/internals/array-includes.js").indexOf);
1244var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js");
1245
1246module.exports = function (object, names) {
1247  var O = toIndexedObject(object);
1248  var i = 0;
1249  var result = [];
1250  var key;
1251  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
1252  // Don't enum bug & hidden keys
1253  while (names.length > i) if (has(O, key = names[i++])) {
1254    ~indexOf(result, key) || result.push(key);
1255  }
1256  return result;
1257};
1258
1259
1260/***/ }),
1261
vendor: 821 bytes, lines 1262-1280
1262/***/ "./node_modules/core-js/internals/object-keys.js":
1263/*!*******************************************************!*\
1264  !*** ./node_modules/core-js/internals/object-keys.js ***!
1265  \*******************************************************/
1266/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1267
1268var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js");
1269var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js");
1270
1271// `Object.keys` method
1272// https://tc39.es/ecma262/#sec-object.keys
1273// eslint-disable-next-line es/no-object-keys -- safe
1274module.exports = Object.keys || function keys(O) {
1275  return internalObjectKeys(O, enumBugKeys);
1276};
1277
1278
1279/***/ }),
1280
vendor: 1,020 bytes, lines 1281-1305
1281/***/ "./node_modules/core-js/internals/object-property-is-enumerable.js":
1282/*!*************************************************************************!*\
1283  !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***!
1284  \*************************************************************************/
1285/***/ (function(__unused_webpack_module, exports) {
1286
1287"use strict";
1288
1289var $propertyIsEnumerable = {}.propertyIsEnumerable;
1290// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
1291var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
1292
1293// Nashorn ~ JDK8 bug
1294var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);
1295
1296// `Object.prototype.propertyIsEnumerable` method implementation
1297// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
1298exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
1299  var descriptor = getOwnPropertyDescriptor(this, V);
1300  return !!descriptor && descriptor.enumerable;
1301} : $propertyIsEnumerable;
1302
1303
1304/***/ }),
1305
vendor: 1,235 bytes, lines 1306-1326
1306/***/ "./node_modules/core-js/internals/own-keys.js":
1307/*!****************************************************!*\
1308  !*** ./node_modules/core-js/internals/own-keys.js ***!
1309  \****************************************************/
1310/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1311
1312var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js");
1313var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js");
1314var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js");
1315var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
1316
1317// all object keys, includes non-enumerable and symbols
1318module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
1319  var keys = getOwnPropertyNamesModule.f(anObject(it));
1320  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
1321  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
1322};
1323
1324
1325/***/ }),
1326
vendor: 431 bytes, lines 1327-1339
1327/***/ "./node_modules/core-js/internals/path.js":
1328/*!************************************************!*\
1329  !*** ./node_modules/core-js/internals/path.js ***!
1330  \************************************************/
1331/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1332
1333var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
1334
1335module.exports = global;
1336
1337
1338/***/ }),
1339
vendor: 2,316 bytes, lines 1340-1389
1340/***/ "./node_modules/core-js/internals/redefine.js":
1341/*!****************************************************!*\
1342  !*** ./node_modules/core-js/internals/redefine.js ***!
1343  \****************************************************/
1344/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1345
1346var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
1347var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
1348var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
1349var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js");
1350var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js");
1351var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js");
1352
1353var getInternalState = InternalStateModule.get;
1354var enforceInternalState = InternalStateModule.enforce;
1355var TEMPLATE = String(String).split('String');
1356
1357(module.exports = function (O, key, value, options) {
1358  var unsafe = options ? !!options.unsafe : false;
1359  var simple = options ? !!options.enumerable : false;
1360  var noTargetGet = options ? !!options.noTargetGet : false;
1361  var state;
1362  if (typeof value == 'function') {
1363    if (typeof key == 'string' && !has(value, 'name')) {
1364      createNonEnumerableProperty(value, 'name', key);
1365    }
1366    state = enforceInternalState(value);
1367    if (!state.source) {
1368      state.source = TEMPLATE.join(typeof key == 'string' ? key : '');
1369    }
1370  }
1371  if (O === global) {
1372    if (simple) O[key] = value;
1373    else setGlobal(key, value);
1374    return;
1375  } else if (!unsafe) {
1376    delete O[key];
1377  } else if (!noTargetGet && O[key]) {
1378    simple = true;
1379  }
1380  if (simple) O[key] = value;
1381  else createNonEnumerableProperty(O, key, value);
1382// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
1383})(Function.prototype, 'toString', function toString() {
1384  return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
1385});
1386
1387
1388/***/ }),
1389
vendor: 4,573 bytes, lines 1390-1511
1390/***/ "./node_modules/core-js/internals/regexp-exec.js":
1391/*!*******************************************************!*\
1392  !*** ./node_modules/core-js/internals/regexp-exec.js ***!
1393  \*******************************************************/
1394/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1395
1396"use strict";
1397
1398/* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
1399/* eslint-disable regexp/no-useless-quantifier -- testing */
1400var regexpFlags = __webpack_require__(/*! ../internals/regexp-flags */ "./node_modules/core-js/internals/regexp-flags.js");
1401var stickyHelpers = __webpack_require__(/*! ../internals/regexp-sticky-helpers */ "./node_modules/core-js/internals/regexp-sticky-helpers.js");
1402var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js");
1403var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js");
1404var getInternalState = (__webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js").get);
1405var UNSUPPORTED_DOT_ALL = __webpack_require__(/*! ../internals/regexp-unsupported-dot-all */ "./node_modules/core-js/internals/regexp-unsupported-dot-all.js");
1406var UNSUPPORTED_NCG = __webpack_require__(/*! ../internals/regexp-unsupported-ncg */ "./node_modules/core-js/internals/regexp-unsupported-ncg.js");
1407
1408var nativeExec = RegExp.prototype.exec;
1409var nativeReplace = shared('native-string-replace', String.prototype.replace);
1410
1411var patchedExec = nativeExec;
1412
1413var UPDATES_LAST_INDEX_WRONG = (function () {
1414  var re1 = /a/;
1415  var re2 = /b*/g;
1416  nativeExec.call(re1, 'a');
1417  nativeExec.call(re2, 'a');
1418  return re1.lastIndex !== 0 || re2.lastIndex !== 0;
1419})();
1420
1421var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;
1422
1423// nonparticipating capturing group, copied from es5-shim's String#split patch.
1424var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
1425
1426var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;
1427
1428if (PATCH) {
1429  // eslint-disable-next-line max-statements -- TODO
1430  patchedExec = function exec(str) {
1431    var re = this;
1432    var state = getInternalState(re);
1433    var raw = state.raw;
1434    var result, reCopy, lastIndex, match, i, object, group;
1435
1436    if (raw) {
1437      raw.lastIndex = re.lastIndex;
1438      result = patchedExec.call(raw, str);
1439      re.lastIndex = raw.lastIndex;
1440      return result;
1441    }
1442
1443    var groups = state.groups;
1444    var sticky = UNSUPPORTED_Y && re.sticky;
1445    var flags = regexpFlags.call(re);
1446    var source = re.source;
1447    var charsAdded = 0;
1448    var strCopy = str;
1449
1450    if (sticky) {
1451      flags = flags.replace('y', '');
1452      if (flags.indexOf('g') === -1) {
1453        flags += 'g';
1454      }
1455
1456      strCopy = String(str).slice(re.lastIndex);
1457      // Support anchored sticky behavior.
1458      if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
1459        source = '(?: ' + source + ')';
1460        strCopy = ' ' + strCopy;
1461        charsAdded++;
1462      }
1463      // ^(? + rx + ) is needed, in combination with some str slicing, to
1464      // simulate the 'y' flag.
1465      reCopy = new RegExp('^(?:' + source + ')', flags);
1466    }
1467
1468    if (NPCG_INCLUDED) {
1469      reCopy = new RegExp('^' + source + '$(?!\\s)', flags);
1470    }
1471    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
1472
1473    match = nativeExec.call(sticky ? reCopy : re, strCopy);
1474
1475    if (sticky) {
1476      if (match) {
1477        match.input = match.input.slice(charsAdded);
1478        match[0] = match[0].slice(charsAdded);
1479        match.index = re.lastIndex;
1480        re.lastIndex += match[0].length;
1481      } else re.lastIndex = 0;
1482    } else if (UPDATES_LAST_INDEX_WRONG && match) {
1483      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;
1484    }
1485    if (NPCG_INCLUDED && match && match.length > 1) {
1486      // Fix browsers whose `exec` methods don't consistently return `undefined`
1487      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
1488      nativeReplace.call(match[0], reCopy, function () {
1489        for (i = 1; i < arguments.length - 2; i++) {
1490          if (arguments[i] === undefined) match[i] = undefined;
1491        }
1492      });
1493    }
1494
1495    if (match && groups) {
1496      match.groups = object = create(null);
1497      for (i = 0; i < groups.length; i++) {
1498        group = groups[i];
1499        object[group[0]] = match[group[1]];
1500      }
1501    }
1502
1503    return match;
1504  };
1505}
1506
1507module.exports = patchedExec;
1508
1509
1510/***/ }),
1511
vendor: 881 bytes, lines 1512-1538
1512/***/ "./node_modules/core-js/internals/regexp-flags.js":
1513/*!********************************************************!*\
1514  !*** ./node_modules/core-js/internals/regexp-flags.js ***!
1515  \********************************************************/
1516/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1517
1518"use strict";
1519
1520var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
1521
1522// `RegExp.prototype.flags` getter implementation
1523// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
1524module.exports = function () {
1525  var that = anObject(this);
1526  var result = '';
1527  if (that.global) result += 'g';
1528  if (that.ignoreCase) result += 'i';
1529  if (that.multiline) result += 'm';
1530  if (that.dotAll) result += 's';
1531  if (that.unicode) result += 'u';
1532  if (that.sticky) result += 'y';
1533  return result;
1534};
1535
1536
1537/***/ }),
1538
vendor: 916 bytes, lines 1539-1567
1539/***/ "./node_modules/core-js/internals/regexp-sticky-helpers.js":
1540/*!*****************************************************************!*\
1541  !*** ./node_modules/core-js/internals/regexp-sticky-helpers.js ***!
1542  \*****************************************************************/
1543/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1544
1545var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
1546
1547// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,
1548var RE = function (s, f) {
1549  return RegExp(s, f);
1550};
1551
1552exports.UNSUPPORTED_Y = fails(function () {
1553  var re = RE('a', 'y');
1554  re.lastIndex = 2;
1555  return re.exec('abcd') != null;
1556});
1557
1558exports.BROKEN_CARET = fails(function () {
1559  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
1560  var re = RE('^r', 'gy');
1561  re.lastIndex = 2;
1562  return re.exec('str') != null;
1563});
1564
1565
1566/***/ }),
1567
vendor: 708 bytes, lines 1568-1584
1568/***/ "./node_modules/core-js/internals/regexp-unsupported-dot-all.js":
1569/*!**********************************************************************!*\
1570  !*** ./node_modules/core-js/internals/regexp-unsupported-dot-all.js ***!
1571  \**********************************************************************/
1572/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1573
1574var fails = __webpack_require__(/*! ./fails */ "./node_modules/core-js/internals/fails.js");
1575
1576module.exports = fails(function () {
1577  // babel-minify transpiles RegExp('.', 's') -> /./s and it causes SyntaxError
1578  var re = RegExp('.', (typeof '').charAt(0));
1579  return !(re.dotAll && re.exec('\n') && re.flags === 's');
1580});
1581
1582
1583/***/ }),
1584
vendor: 719 bytes, lines 1585-1602
1585/***/ "./node_modules/core-js/internals/regexp-unsupported-ncg.js":
1586/*!******************************************************************!*\
1587  !*** ./node_modules/core-js/internals/regexp-unsupported-ncg.js ***!
1588  \******************************************************************/
1589/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1590
1591var fails = __webpack_require__(/*! ./fails */ "./node_modules/core-js/internals/fails.js");
1592
1593module.exports = fails(function () {
1594  // babel-minify transpiles RegExp('.', 'g') -> /./g and it causes SyntaxError
1595  var re = RegExp('(?<a>b)', (typeof '').charAt(5));
1596  return re.exec('b').groups.a !== 'b' ||
1597    'b'.replace(re, '$<a>c') !== 'bc';
1598});
1599
1600
1601/***/ }),
1602
vendor: 552 bytes, lines 1603-1618
1603/***/ "./node_modules/core-js/internals/require-object-coercible.js":
1604/*!********************************************************************!*\
1605  !*** ./node_modules/core-js/internals/require-object-coercible.js ***!
1606  \********************************************************************/
1607/***/ (function(module) {
1608
1609// `RequireObjectCoercible` abstract operation
1610// https://tc39.es/ecma262/#sec-requireobjectcoercible
1611module.exports = function (it) {
1612  if (it == undefined) throw TypeError("Can't call method on " + it);
1613  return it;
1614};
1615
1616
1617/***/ }),
1618
vendor: 774 bytes, lines 1619-1638
1619/***/ "./node_modules/core-js/internals/set-global.js":
1620/*!******************************************************!*\
1621  !*** ./node_modules/core-js/internals/set-global.js ***!
1622  \******************************************************/
1623/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1624
1625var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
1626var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
1627
1628module.exports = function (key, value) {
1629  try {
1630    createNonEnumerableProperty(global, key, value);
1631  } catch (error) {
1632    global[key] = value;
1633  } return value;
1634};
1635
1636
1637/***/ }),
1638
vendor: 639 bytes, lines 1639-1656
1639/***/ "./node_modules/core-js/internals/shared-key.js":
1640/*!******************************************************!*\
1641  !*** ./node_modules/core-js/internals/shared-key.js ***!
1642  \******************************************************/
1643/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1644
1645var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js");
1646var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js");
1647
1648var keys = shared('keys');
1649
1650module.exports = function (key) {
1651  return keys[key] || (keys[key] = uid(key));
1652};
1653
1654
1655/***/ }),
1656
vendor: 669 bytes, lines 1657-1673
1657/***/ "./node_modules/core-js/internals/shared-store.js":
1658/*!********************************************************!*\
1659  !*** ./node_modules/core-js/internals/shared-store.js ***!
1660  \********************************************************/
1661/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1662
1663var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
1664var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js");
1665
1666var SHARED = '__core-js_shared__';
1667var store = global[SHARED] || setGlobal(SHARED, {});
1668
1669module.exports = store;
1670
1671
1672/***/ }),
1673
vendor: 790 bytes, lines 1674-1693
1674/***/ "./node_modules/core-js/internals/shared.js":
1675/*!**************************************************!*\
1676  !*** ./node_modules/core-js/internals/shared.js ***!
1677  \**************************************************/
1678/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1679
1680var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js");
1681var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js");
1682
1683(module.exports = function (key, value) {
1684  return store[key] || (store[key] = value !== undefined ? value : {});
1685})('versions', []).push({
1686  version: '3.15.2',
1687  mode: IS_PURE ? 'pure' : 'global',
1688  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
1689});
1690
1691
1692/***/ }),
1693
vendor: 855 bytes, lines 1694-1715
1694/***/ "./node_modules/core-js/internals/to-absolute-index.js":
1695/*!*************************************************************!*\
1696  !*** ./node_modules/core-js/internals/to-absolute-index.js ***!
1697  \*************************************************************/
1698/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1699
1700var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js");
1701
1702var max = Math.max;
1703var min = Math.min;
1704
1705// Helper for a popular repeating case of the spec:
1706// Let integer be ? ToInteger(index).
1707// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
1708module.exports = function (index, length) {
1709  var integer = toInteger(index);
1710  return integer < 0 ? max(integer + length, 0) : min(integer, length);
1711};
1712
1713
1714/***/ }),
1715
vendor: 785 bytes, lines 1716-1732
1716/***/ "./node_modules/core-js/internals/to-indexed-object.js":
1717/*!*************************************************************!*\
1718  !*** ./node_modules/core-js/internals/to-indexed-object.js ***!
1719  \*************************************************************/
1720/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1721
1722// toObject with fallback for non-array-like ES3 strings
1723var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js");
1724var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
1725
1726module.exports = function (it) {
1727  return IndexedObject(requireObjectCoercible(it));
1728};
1729
1730
1731/***/ }),
1732
vendor: 524 bytes, lines 1733-1750
1733/***/ "./node_modules/core-js/internals/to-integer.js":
1734/*!******************************************************!*\
1735  !*** ./node_modules/core-js/internals/to-integer.js ***!
1736  \******************************************************/
1737/***/ (function(module) {
1738
1739var ceil = Math.ceil;
1740var floor = Math.floor;
1741
1742// `ToInteger` abstract operation
1743// https://tc39.es/ecma262/#sec-tointeger
1744module.exports = function (argument) {
1745  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
1746};
1747
1748
1749/***/ }),
1750
vendor: 681 bytes, lines 1751-1769
1751/***/ "./node_modules/core-js/internals/to-length.js":
1752/*!*****************************************************!*\
1753  !*** ./node_modules/core-js/internals/to-length.js ***!
1754  \*****************************************************/
1755/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1756
1757var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js");
1758
1759var min = Math.min;
1760
1761// `ToLength` abstract operation
1762// https://tc39.es/ecma262/#sec-tolength
1763module.exports = function (argument) {
1764  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
1765};
1766
1767
1768/***/ }),
1769
vendor: 645 bytes, lines 1770-1786
1770/***/ "./node_modules/core-js/internals/to-object.js":
1771/*!*****************************************************!*\
1772  !*** ./node_modules/core-js/internals/to-object.js ***!
1773  \*****************************************************/
1774/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1775
1776var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js");
1777
1778// `ToObject` abstract operation
1779// https://tc39.es/ecma262/#sec-toobject
1780module.exports = function (argument) {
1781  return Object(requireObjectCoercible(argument));
1782};
1783
1784
1785/***/ }),
1786
vendor: 1,167 bytes, lines 1787-1810
1787/***/ "./node_modules/core-js/internals/to-primitive.js":
1788/*!********************************************************!*\
1789  !*** ./node_modules/core-js/internals/to-primitive.js ***!
1790  \********************************************************/
1791/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1792
1793var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js");
1794
1795// `ToPrimitive` abstract operation
1796// https://tc39.es/ecma262/#sec-toprimitive
1797// instead of the ES6 spec version, we didn't implement @@toPrimitive case
1798// and the second argument - flag - preferred type is a string
1799module.exports = function (input, PREFERRED_STRING) {
1800  if (!isObject(input)) return input;
1801  var fn, val;
1802  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
1803  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
1804  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
1805  throw TypeError("Can't convert object to primitive value");
1806};
1807
1808
1809/***/ }),
1810
vendor: 424 bytes, lines 1811-1826
1811/***/ "./node_modules/core-js/internals/uid.js":
1812/*!***********************************************!*\
1813  !*** ./node_modules/core-js/internals/uid.js ***!
1814  \***********************************************/
1815/***/ (function(module) {
1816
1817var id = 0;
1818var postfix = Math.random();
1819
1820module.exports = function (key) {
1821  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
1822};
1823
1824
1825/***/ }),
1826
vendor: 627 bytes, lines 1827-1842
1827/***/ "./node_modules/core-js/internals/use-symbol-as-uid.js":
1828/*!*************************************************************!*\
1829  !*** ./node_modules/core-js/internals/use-symbol-as-uid.js ***!
1830  \*************************************************************/
1831/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1832
1833/* eslint-disable es/no-symbol -- required for testing */
1834var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js");
1835
1836module.exports = NATIVE_SYMBOL
1837  && !Symbol.sham
1838  && typeof Symbol.iterator == 'symbol';
1839
1840
1841/***/ }),
1842
vendor: 1,580 bytes, lines 1843-1872
1843/***/ "./node_modules/core-js/internals/well-known-symbol.js":
1844/*!*************************************************************!*\
1845  !*** ./node_modules/core-js/internals/well-known-symbol.js ***!
1846  \*************************************************************/
1847/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1848
1849var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
1850var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js");
1851var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js");
1852var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js");
1853var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js");
1854var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "./node_modules/core-js/internals/use-symbol-as-uid.js");
1855
1856var WellKnownSymbolsStore = shared('wks');
1857var Symbol = global.Symbol;
1858var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;
1859
1860module.exports = function (name) {
1861  if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {
1862    if (NATIVE_SYMBOL && has(Symbol, name)) {
1863      WellKnownSymbolsStore[name] = Symbol[name];
1864    } else {
1865      WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
1866    }
1867  } return WellKnownSymbolsStore[name];
1868};
1869
1870
1871/***/ }),
1872
vendor: 751 bytes, lines 1873-1892
1873/***/ "./node_modules/core-js/modules/es.regexp.exec.js":
1874/*!********************************************************!*\
1875  !*** ./node_modules/core-js/modules/es.regexp.exec.js ***!
1876  \********************************************************/
1877/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1878
1879"use strict";
1880
1881var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
1882var exec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js");
1883
1884// `RegExp.prototype.exec` method
1885// https://tc39.es/ecma262/#sec-regexp.prototype.exec
1886$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {
1887  exec: exec
1888});
1889
1890
1891/***/ }),
1892
vendor: 1,378 bytes, lines 1893-1916
1893/***/ "./node_modules/core-js/modules/web.dom-collections.for-each.js":
1894/*!**********************************************************************!*\
1895  !*** ./node_modules/core-js/modules/web.dom-collections.for-each.js ***!
1896  \**********************************************************************/
1897/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1898
1899var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js");
1900var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ "./node_modules/core-js/internals/dom-iterables.js");
1901var forEach = __webpack_require__(/*! ../internals/array-for-each */ "./node_modules/core-js/internals/array-for-each.js");
1902var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js");
1903
1904for (var COLLECTION_NAME in DOMIterables) {
1905  var Collection = global[COLLECTION_NAME];
1906  var CollectionPrototype = Collection && Collection.prototype;
1907  // some Chrome versions have non-configurable methods on DOMTokenList
1908  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {
1909    createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);
1910  } catch (error) {
1911    CollectionPrototype.forEach = forEach;
1912  }
1913}
1914
1915
1916/***/ })
1916
1917
1918},
1919/******/ function(__webpack_require__) { // webpackRuntimeModules
1920/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
1921/******/ var __webpack_exports__ = (__webpack_exec__("./resources/js/super-scripts.js"));
1922/******/ }
1923]);
1924//# sourceMappingURL=data:application/json;charset=utf-8;base64,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sbUJBQU8sQ0FBQyx1RUFBcUI7QUFDMUMsVUFBVSxtQkFBTyxDQUFDLGlFQUFrQjtBQUNwQyxVQUFVLG1CQUFPLENBQUMsaUVBQWtCO0FBQ3BDLG9CQUFvQixtQkFBTyxDQUFDLHFGQUE0QjtBQUN4RCx3QkFBd0IsbUJBQU8sQ0FBQyw2RkFBZ0M7O0FBRWhFO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7Ozs7Ozs7Ozs7QUNuQmE7QUFDYixRQUFRLG1CQUFPLENBQUMsdUVBQXFCO0FBQ3JDLFdBQVcsbUJBQU8sQ0FBQyxpRkFBMEI7O0FBRTdDO0FBQ0E7QUFDQSxJQUFJLDBEQUEwRDtBQUM5RDtBQUNBLENBQUM7Ozs7Ozs7Ozs7O0FDUkQsYUFBYSxtQkFBTyxDQUFDLHVFQUFxQjtBQUMxQyxtQkFBbUIsbUJBQU8sQ0FBQyxxRkFBNEI7QUFDdkQsY0FBYyxtQkFBTyxDQUFDLHVGQUE2QjtBQUNuRCxrQ0FBa0MsbUJBQU8sQ0FBQyx1SEFBNkM7O0FBRXZGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9odXNoY29yZS8uL3Jlc291cmNlcy9qcy9zdXBlci1zY3JpcHRzLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2EtZnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYW4tb2JqZWN0LmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWZvci1lYWNoLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWluY2x1ZGVzLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbi5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1tZXRob2QtaXMtc3RyaWN0LmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NsYXNzb2YtcmF3LmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVzY3JpcHRvcnMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZG9tLWl0ZXJhYmxlcy5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbmdpbmUtdXNlci1hZ2VudC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbmdpbmUtdjgtdmVyc2lvbi5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2V4cG9ydC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mYWlscy5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dsb2JhbC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9oYXMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaGlkZGVuLWtleXMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaHRtbC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pZTgtZG9tLWRlZmluZS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbmRleGVkLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbnNwZWN0LXNvdXJjZS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1hcnJheS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1mb3JjZWQuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtb2JqZWN0LmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLXB1cmUuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9uYXRpdmUtd2Vhay1tYXAuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnRpZXMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWtleXMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LXByb3BlcnR5LWlzLWVudW1lcmFibGUuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb3duLWtleXMuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcGF0aC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWRlZmluZS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtZXhlYy5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtZmxhZ3MuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLXN0aWNreS1oZWxwZXJzLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC11bnN1cHBvcnRlZC1kb3QtYWxsLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC11bnN1cHBvcnRlZC1uY2cuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NldC1nbG9iYWwuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2hhcmVkLWtleS5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zaGFyZWQtc3RvcmUuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2hhcmVkLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4LmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0LmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWludGVnZXIuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tbGVuZ3RoLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vaHVzaGNvcmUvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdWlkLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLmpzIiwid2VicGFjazovL2h1c2hjb3JlLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyIsIndlYnBhY2s6Ly9odXNoY29yZS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xs
1924ZWN0aW9ucy5mb3ItZWFjaC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIChldmVudCkgPT4ge1xuXHRjb25zb2xlLmxvZygnaGVsbG8nKTtcblx0XG5cdGxldCBtbXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbW10Jyk7XG5cdGlmKG1tdCl7XG5cdFx0bW10LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZSA9PiB7XG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ3NtbScpO1xuXHRcdFx0Y29uc29sZS5sb2coJ3Nob3cgbW9iaWxlIG1lbnUnKTtcblx0XHR9KTtcblx0fVxuXHRcblx0Y29uc3QgZG9jU3BlY0Rvd25sb2FkcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZG9jcy1hbmQtc3BlY3MgdWwgbGkgYVwiKTtcblx0Y29uc29sZS5sb2coJ2RvY1NwZWNEb3dubG9hZHM6ICcsIGRvY1NwZWNEb3dubG9hZHMpO1xuXHRkb2NTcGVjRG93bmxvYWRzLmZvckVhY2goXG5cdFx0XHRmdW5jdGlvbih2LCBpKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCd3YWZ1OiAnLCB2ICsgJywgJyArIGkgKyAnLCAnICsgdGhpcyk7XG5cdFx0XHRcdGxldCByZSA9IC8oPzpcXC4oW14uXSspKT8kLztcblx0XHRcdFx0bGV0IGV4dCA9IHJlLmV4ZWModilbMV07ICAgLy8gXCJ0eHRcIlxuXHRcdFx0XHRkb2NTcGVjRG93bmxvYWRzW2ldLmNsYXNzTGlzdC5hZGQoZXh0KTtcblx0XHRcdH1cblx0KTtcblx0XG5cdGNvbnN0IHBkb3RzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5wZG90XCIpO1xuXHRpZihwZG90cyl7XG5cdFx0cGRvdHMuZm9yRWFjaChmdW5jdGlvbih2LCBpKSB7XG5cdFx0XHRwZG90c1tpXS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGUgPT4ge1xuXHRcdFx0XHRsZXQgY2hpbGRyZW4gPSBwZG90c1tpXS5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJy5wZG90Jyk7XG5cdFx0XHRcdGNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24odnYsIGlpKSB7XG5cdFx0XHRcdFx0Y2hpbGRyZW5baWldLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cGRvdHNbaV0uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXHRcblx0XG5cdFJldmVhbC5pbml0aWFsaXplKHtcblx0XHRjb250cm9sczogZmFsc2UsXG5cdFx0cHJvZ3Jlc3M6IGZhbHNlLFxuXHRcdGxvb3A6IHRydWUsXG5cdFx0Y2VudGVyOiB0cnVlLFxuXHRcdGhhc2g6IHRydWUsXG5cdFx0dHJhbnNpdGlvbjogJ2ZhZGUnLCAvLyBub25lL2ZhZGUvc2xpZGUvY29udmV4L2NvbmNhdmUvem9vbVxuXHRcdGRpc2FibGVMYXlvdXQ6IGZhbHNlLFxuXHRcdFxuXHRcdFxuXHRcdC8vIFRoZSBcIm5vcm1hbFwiIHNpemUgb2YgdGhlIHByZXNlbnRhdGlvbiwgYXNwZWN0IHJhdGlvIHdpbGxcblx0XHQvLyBiZSBwcmVzZXJ2ZWQgd2hlbiB0aGUgcHJlc2VudGF0aW9uIGlzIHNjYWxlZCB0byBmaXQgZGlmZmVyZW50XG5cdFx0Ly8gcmVzb2x1dGlvbnMuIENhbiBiZSBzcGVjaWZpZWQgdXNpbmcgcGVyY2VudGFnZSB1bml0cy5cblx0XHR3aWR0aDogOTYwLFxuXHRcdGhlaWdodDogNzAwLFxuXHRcdFxuXHRcdC8vIEZhY3RvciBvZiB0aGUgZGlzcGxheSBzaXplIHRoYXQgc2hvdWxkIHJlbWFpbiBlbXB0eSBhcm91bmRcblx0XHQvLyB0aGUgY29udGVudFxuXHRcdG1hcmdpbjogMC4wNCxcblx0XHRcblx0XHQvLyBCb3VuZHMgZm9yIHNtYWxsZXN0L2xhcmdlc3QgcG9zc2libGUgc2NhbGUgdG8gYXBwbHkgdG8gY29udGVudFxuXHRcdG1pblNjYWxlOiAwLjIsXG5cdFx0bWF4U2NhbGU6IDIuMFxuXHRcblx0XG5cdH0pO1xuXHRcblxuXHQvKlxuXG5cdGNvbnN0IHNsaWRlU2hvd0RvdHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWRlU2hvd0RvdHMgbGlcIik7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgc2xpZGVTaG93RG90cy5sZW5ndGg7IGkrKykge1xuXHRcdHNsaWRlU2hvd0RvdHNbaV0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBlID0+IHtcblx0XHRcdGNoYW5nZVNsaWRlKGUpO1xuXHRcdH0pO1xuXHR9XG5cdFxuXHRjb25zdCBzbGlkZVNob3dBcnJvd3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWRlU2hvd0Fycm93XCIpO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IHNsaWRlU2hvd0Fycm93cy5sZW5ndGg7IGkrKykge1xuXHRcdHNsaWRlU2hvd0Fycm93c1tpXS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGUgPT4ge1xuXHRcdFx0Y2hhbmdlU2xpZGUoZSk7XG5cdFx0fSk7XG5cdH1cblx0XG5cdGNvbnN0IGNoYW5nZVNsaWRlID0gKGUpID0+IHtcblx0XHRjb25zdCBjb250YWluZXIgPSBlLnRhcmdldC5wYXJlbnROb2RlLnBhcmVudE5vZGUsXG5cdFx0XHRcdHNsaWRlcyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWRlU2hvd1NsaWRlcyBsaVwiKSxcblx0XHRcdFx0ZG90cyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKFwiLnNsaWRlU2hvd0RvdHMgbGlcIik7XG5cdFx0bGV0IHggPSAwLFxuXHRcdFx0XHRzID0gMDtcblx0XHRcblx0XHQvLyBkb3RzXG5cdFx0aWYoZS50YXJnZXQudGFnTmFtZSA9PT0gJ0xJJyl7IHMgPSBbXS5pbmRleE9mLmNhbGwoZS50YXJnZXQucGFyZW50Tm9kZS5jaGlsZHJlbiwgZS50YXJnZXQpOyB9XG5cdFx0XG5cdFx0Ly8gYm90aFxuXHRcdGZvciAobGV0IGEgPSAwOyBhIDwgZG90cy5sZW5ndGg7IGErKykge1xuXHRcdFx0aWYoZS50YXJnZXQudGFnTmFtZSA9PT0gJ0RJVicgJiYgc2xpZGVzW2FdLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJykpeyB4ID0gYTsgfVxuXHRcdFx0ZG90c1thXS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcblx0XHRcdHNsaWRlc1thXS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcblx0XHR9XG5cdFx0XG5cdFx0Ly8gYXJyb3dzXG5cdFx0aWYoZS50YXJnZXQudGFnTmFtZSA9PT0gJ0RJVicpe1xuXHRcdFx0aWYoZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCduZXh0JykpeyBpZih4ICsgMSA+PSBzbGlkZXMubGVuZ3RoKSB7IHMgP
1924SAwOyB9IGVsc2UgeyBzID0geCArIDE7IH0gfVxuXHRcdFx0ZWxzZSB7IGlmKHggLSAxIDwgMCkgeyBzID0gc2xpZGVzLmxlbmd0aCAtIDE7IH0gZWxzZSB7IHMgPSB4IC0gMTsgfSB9XG5cdFx0fVxuXHRcdGRvdHNbc10uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG5cdFx0c2xpZGVzW3NdLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpO1xuXHR9XG5cdFxuXHQgKi9cblx0XG5cdFxufSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAodHlwZW9mIGl0ICE9ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKGl0KSArICcgaXMgbm90IGEgZnVuY3Rpb24nKTtcbiAgfSByZXR1cm4gaXQ7XG59O1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkge1xuICAgIHRocm93IFR5cGVFcnJvcihTdHJpbmcoaXQpICsgJyBpcyBub3QgYW4gb2JqZWN0Jyk7XG4gIH0gcmV0dXJuIGl0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5mb3JFYWNoO1xudmFyIGFycmF5TWV0aG9kSXNTdHJpY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdCcpO1xuXG52YXIgU1RSSUNUX01FVEhPRCA9IGFycmF5TWV0aG9kSXNTdHJpY3QoJ2ZvckVhY2gnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZvcmVhY2hcbm1vZHVsZS5leHBvcnRzID0gIVNUUklDVF9NRVRIT0QgPyBmdW5jdGlvbiBmb3JFYWNoKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gIHJldHVybiAkZm9yRWFjaCh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tYXJyYXktcHJvdG90eXBlLWZvcmVhY2ggLS0gc2FmZVxufSA6IFtdLmZvckVhY2g7XG4iLCJ2YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyBpbmRleE9mLCBpbmNsdWRlcyB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICBpZiAoSVNfSU5DTFVERVMgJiYgZWwgIT0gZWwpIHdoaWxlIChsZW5ndGggPiBpbmRleCkge1xuICAgICAgdmFsdWUgPSBPW2luZGV4KytdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgaWYgKChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSAmJiBPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5jbHVkZXNcbiAgaW5jbHVkZXM6IGNyZWF0ZU1ldGhvZCh0cnVlKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5pbmRleE9mYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5kZXhvZlxuICBpbmRleE9mOiBjcmVhdGVNZXRob2QoZmFsc2UpXG59O1xuIiwidmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIGFycmF5U3BlY2llc0NyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNyZWF0ZScpO1xuXG52YXIgcHVzaCA9IFtdLnB1c2g7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyBmb3JFYWNoLCBtYXAsIGZpbHRlciwgc29tZSwgZXZlcnksIGZpbmQsIGZpbmRJbmRleCwgZmlsdGVyT3V0IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoVFlQRSkge1xuICB2YXIgSVNfTUFQID0gVFlQRSA9PSAxO1xuICB2YXIgSVNfRklMVEVSID0gVFlQRSA9PSAyO1xuICB2YXIgSVNfU09NRSA9IFRZUEUgPT0gMztcbiAgdmFyIElTX0VWRVJZID0gVFlQRSA9PSA0O1xuICB2YXIgSVNfRklORF9JTkRFWCA9I
1924FRZUEUgPT0gNjtcbiAgdmFyIElTX0ZJTFRFUl9PVVQgPSBUWVBFID09IDc7XG4gIHZhciBOT19IT0xFUyA9IFRZUEUgPT0gNSB8fCBJU19GSU5EX0lOREVYO1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBjYWxsYmFja2ZuLCB0aGF0LCBzcGVjaWZpY0NyZWF0ZSkge1xuICAgIHZhciBPID0gdG9PYmplY3QoJHRoaXMpO1xuICAgIHZhciBzZWxmID0gSW5kZXhlZE9iamVjdChPKTtcbiAgICB2YXIgYm91bmRGdW5jdGlvbiA9IGJpbmQoY2FsbGJhY2tmbiwgdGhhdCwgMyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKHNlbGYubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBjcmVhdGUgPSBzcGVjaWZpY0NyZWF0ZSB8fCBhcnJheVNwZWNpZXNDcmVhdGU7XG4gICAgdmFyIHRhcmdldCA9IElTX01BUCA/IGNyZWF0ZSgkdGhpcywgbGVuZ3RoKSA6IElTX0ZJTFRFUiB8fCBJU19GSUxURVJfT1VUID8gY3JlYXRlKCR0aGlzLCAwKSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgdmFsdWUsIHJlc3VsdDtcbiAgICBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKE5PX0hPTEVTIHx8IGluZGV4IGluIHNlbGYpIHtcbiAgICAgIHZhbHVlID0gc2VsZltpbmRleF07XG4gICAgICByZXN1bHQgPSBib3VuZEZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgTyk7XG4gICAgICBpZiAoVFlQRSkge1xuICAgICAgICBpZiAoSVNfTUFQKSB0YXJnZXRbaW5kZXhdID0gcmVzdWx0OyAvLyBtYXBcbiAgICAgICAgZWxzZSBpZiAocmVzdWx0KSBzd2l0Y2ggKFRZUEUpIHtcbiAgICAgICAgICBjYXNlIDM6IHJldHVybiB0cnVlOyAgICAgICAgICAgICAgLy8gc29tZVxuICAgICAgICAgIGNhc2UgNTogcmV0dXJuIHZhbHVlOyAgICAgICAgICAgICAvLyBmaW5kXG4gICAgICAgICAgY2FzZSA2OiByZXR1cm4gaW5kZXg7ICAgICAgICAgICAgIC8vIGZpbmRJbmRleFxuICAgICAgICAgIGNhc2UgMjogcHVzaC5jYWxsKHRhcmdldCwgdmFsdWUpOyAvLyBmaWx0ZXJcbiAgICAgICAgfSBlbHNlIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICAgIGNhc2UgNDogcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAvLyBldmVyeVxuICAgICAgICAgIGNhc2UgNzogcHVzaC5jYWxsKHRhcmdldCwgdmFsdWUpOyAvLyBmaWx0ZXJPdXRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gSVNfRklORF9JTkRFWCA/IC0xIDogSVNfU09NRSB8fCBJU19FVkVSWSA/IElTX0VWRVJZIDogdGFyZ2V0O1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZvcmVhY2hcbiAgZm9yRWFjaDogY3JlYXRlTWV0aG9kKDApLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLm1hcGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLm1hcFxuICBtYXA6IGNyZWF0ZU1ldGhvZCgxKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maWx0ZXJgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maWx0ZXJcbiAgZmlsdGVyOiBjcmVhdGVNZXRob2QoMiksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuc29tZWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnNvbWVcbiAgc29tZTogY3JlYXRlTWV0aG9kKDMpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmV2ZXJ5YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZXZlcnlcbiAgZXZlcnk6IGNyZWF0ZU1ldGhvZCg0KSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maW5kYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmluZFxuICBmaW5kOiBjcmVhdGVNZXRob2QoNSksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmluZEluZGV4YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmluZEluZGV4XG4gIGZpbmRJbmRleDogY3JlYXRlTWV0aG9kKDYpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbHRlck91dGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWFycmF5LWZpbHRlcmluZ1xuICBmaWx0ZXJPdXQ6IGNyZWF0ZU1ldGhvZCg3KVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSwgYXJndW1lbnQpIHtcbiAgdmFyIG1ldGhvZCA9IFtdW01FVEhPRF9OQU1FXTtcbiAgcmV0dXJuICEhbWV0aG9kICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jYWxsLG5vLXRocm93LWxpdGVyYWwgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgICBtZXRob2QuY2FsbChudWxsLCBhcmd1bWVudCB8fCBmdW5jdGlvbiAoKSB7IHRocm93IDE7IH0sIDEpO1xuICB9KTtcbn07XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xuXG4vLyBgQXJyYXlTcGVjaWVzQ3JlYXRlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXlzcGVjaWVzY3JlYXRlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcmlnaW5hbEFycmF5LCBsZW5ndGgpIHtcbiAgdmFyIEM7XG4gIGlmIChpc0FycmF5KG9yaWdpbmFsQXJyYXkpKSB7XG4gICAgQyA9IG9yaWdpbmFsQXJyYXkuY29uc3RydWN0b3I7XG4gICAgLy8gY3Jvc3MtcmVhbG0gZmFsbGJhY2tcbiAgICBpZiAodHlwZW9mIEMgPT0gJ2Z1bmN0aW9uJyAmJiAoQyA9PT0gQXJyYXkgfHwgaXNBcnJheShDLnByb3RvdHlwZSkpKSBDID0gdW5kZWZpbmVkO1xuICAgIGVsc2UgaWYgKGlzT2JqZWN0KEMpKSB7XG4gICAgICBDID0gQ1tTUEVDSUVTXTtcbiAgICAgIGlmIChDID09PSBudWxsKSBDID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSByZXR1cm4gbmV3IChDID09PSB1bmRlZmluZWQgPyBBcnJheSA6IEMpKGxlbmd0aCA9PT0gMCA/IDAgOiBsZW5ndGgpO1xufTtcbiIsInZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChpdCkuc2xpY2UoOCwgLTEpO1xufTtcbiIsInZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgb3duS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vd24ta2V5cycpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuICB2YXIga2V5cyA9IG93bktleXMoc291cmNlKTtcbiAgdmFyIGRlZmluZVByb3BlcnR5ID0gZGVmaW5lUHJvcGVydHlNb2R1bGUuZjtcbiAgdmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZS5mO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICBpZiAoIWhhcyh0YXJnZXQsIGtleSkpIGRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTtcbiAgfVxufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBERVNDUklQVE9SUyA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5TW9kdWxlLmYob2JqZWN0LCBrZXksIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigxLCB2YWx1ZSkpO1xufSA6IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybi
1924B7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbi8vIERldGVjdCBJRTgncyBpbmNvbXBsZXRlIGRlZmluZVByb3BlcnR5IGltcGxlbWVudGF0aW9uXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgMSwgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSlbMV0gIT0gNztcbn0pO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyIGRvY3VtZW50ID0gZ2xvYmFsLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgRVhJU1RTID0gaXNPYmplY3QoZG9jdW1lbnQpICYmIGlzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gRVhJU1RTID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG4iLCIvLyBpdGVyYWJsZSBET00gY29sbGVjdGlvbnNcbi8vIGZsYWcgLSBgaXRlcmFibGVgIGludGVyZmFjZSAtICdlbnRyaWVzJywgJ2tleXMnLCAndmFsdWVzJywgJ2ZvckVhY2gnIG1ldGhvZHNcbm1vZHVsZS5leHBvcnRzID0ge1xuICBDU1NSdWxlTGlzdDogMCxcbiAgQ1NTU3R5bGVEZWNsYXJhdGlvbjogMCxcbiAgQ1NTVmFsdWVMaXN0OiAwLFxuICBDbGllbnRSZWN0TGlzdDogMCxcbiAgRE9NUmVjdExpc3Q6IDAsXG4gIERPTVN0cmluZ0xpc3Q6IDAsXG4gIERPTVRva2VuTGlzdDogMSxcbiAgRGF0YVRyYW5zZmVySXRlbUxpc3Q6IDAsXG4gIEZpbGVMaXN0OiAwLFxuICBIVE1MQWxsQ29sbGVjdGlvbjogMCxcbiAgSFRNTENvbGxlY3Rpb246IDAsXG4gIEhUTUxGb3JtRWxlbWVudDogMCxcbiAgSFRNTFNlbGVjdEVsZW1lbnQ6IDAsXG4gIE1lZGlhTGlzdDogMCxcbiAgTWltZVR5cGVBcnJheTogMCxcbiAgTmFtZWROb2RlTWFwOiAwLFxuICBOb2RlTGlzdDogMSxcbiAgUGFpbnRSZXF1ZXN0TGlzdDogMCxcbiAgUGx1Z2luOiAwLFxuICBQbHVnaW5BcnJheTogMCxcbiAgU1ZHTGVuZ3RoTGlzdDogMCxcbiAgU1ZHTnVtYmVyTGlzdDogMCxcbiAgU1ZHUGF0aFNlZ0xpc3Q6IDAsXG4gIFNWR1BvaW50TGlzdDogMCxcbiAgU1ZHU3RyaW5nTGlzdDogMCxcbiAgU1ZHVHJhbnNmb3JtTGlzdDogMCxcbiAgU291cmNlQnVmZmVyTGlzdDogMCxcbiAgU3R5bGVTaGVldExpc3Q6IDAsXG4gIFRleHRUcmFja0N1ZUxpc3Q6IDAsXG4gIFRleHRUcmFja0xpc3Q6IDAsXG4gIFRvdWNoTGlzdDogMFxufTtcbiIsInZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW4oJ25hdmlnYXRvcicsICd1c2VyQWdlbnQnKSB8fCAnJztcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VuZ2luZS11c2VyLWFnZW50Jyk7XG5cbnZhciBwcm9jZXNzID0gZ2xvYmFsLnByb2Nlc3M7XG52YXIgdmVyc2lvbnMgPSBwcm9jZXNzICYmIHByb2Nlc3MudmVyc2lvbnM7XG52YXIgdjggPSB2ZXJzaW9ucyAmJiB2ZXJzaW9ucy52ODtcbnZhciBtYXRjaCwgdmVyc2lvbjtcblxuaWYgKHY4KSB7XG4gIG1hdGNoID0gdjguc3BsaXQoJy4nKTtcbiAgdmVyc2lvbiA9IG1hdGNoWzBdIDwgNCA/IDEgOiBtYXRjaFswXSArIG1hdGNoWzFdO1xufSBlbHNlIGlmICh1c2VyQWdlbnQpIHtcbiAgbWF0Y2ggPSB1c2VyQWdlbnQubWF0Y2goL0VkZ2VcXC8oXFxkKykvKTtcbiAgaWYgKCFtYXRjaCB8fCBtYXRjaFsxXSA+PSA3NCkge1xuICAgIG1hdGNoID0gdXNlckFnZW50Lm1hdGNoKC9DaHJvbWVcXC8oXFxkKykvKTtcbiAgICBpZiAobWF0Y2gpIHZlcnNpb24gPSBtYXRjaFsxXTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHZlcnNpb24gJiYgK3ZlcnNpb247XG4iLCIvLyBJRTgtIGRvbid0IGVudW0gYnVnIGtleXNcbm1vZHVsZS5leHBvcnRzID0gW1xuICAnY29uc3RydWN0b3InLFxuICAnaGFzT3duUHJvcGVydHknLFxuICAnaXNQcm90b3R5cGVPZicsXG4gICdwcm9wZXJ0eUlzRW51bWVyYWJsZScsXG4gICd0b0xvY2FsZVN0cmluZycsXG4gICd0b1N0cmluZycsXG4gICd2YWx1ZU9mJ1xuXTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKS5mO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWRlZmluZScpO1xudmFyIHNldEdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtZ2xvYmFsJyk7XG52YXIgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3B5LWNvbnN0cnVjdG9yLXByb3BlcnRpZXMnKTtcbnZhciBpc0ZvcmNlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1mb3JjZWQnKTtcblxuLypcbiAgb3B0aW9ucy50YXJnZXQgICAgICAtIG5hbWUgb2YgdGhlIHRhcmdldCBvYmplY3RcbiAgb3B0aW9ucy5nbG9iYWwgICAgICAtIHRhcmdldCBpcyB0aGUgZ2xvYmFsIG9iamVjdFxuICBvcHRpb25zLnN0YXQgICAgICAgIC0gZXhwb3J0IGFzIHN0YXRpYyBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnByb3RvICAgICAgIC0gZXhwb3J0IGFzIHByb3RvdHlwZSBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnJlYWwgICAgICAgIC0gcmVhbCBwcm90b3R5cGUgbWV0aG9kIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy5mb3JjZWQgICAgICAtIGV4cG9ydCBldmVuIGlmIHRoZSBuYXRpdmUgZmVhdHVyZSBpcyBhdmFpbGFibGVcbiAgb3B0aW9ucy5iaW5kICAgICAgICAtIGJpbmQgbWV0aG9kcyB0byB0aGUgdGFyZ2V0LCByZXF1aXJlZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMud3JhcCAgICAgICAgLSB3cmFwIGNvbnN0cnVjdG9ycyB0byBwcmV2ZW50aW5nIGdsb2JhbCBwb2xsdXRpb24sIHJlcXVpcmVkIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy51bnNhZmUgICAgICAtIHVzZSB0aGUgc2ltcGxlIGFzc2lnbm1lbnQgb2YgcHJvcGVydHkgaW5zdGVhZCBvZiBkZWxldGUgKyBkZWZpbmVQcm9wZXJ0eVxuICBvcHRpb25zLnNoYW0gICAgICAgIC0gYWRkIGEgZmxhZyB0byBub3QgY29tcGxldGVseSBmdWxsIHBvbHlmaWxsc1xuICBvcHRpb25zLmVudW1lcmFibGUgIC0gZXhwb3J0IGFzIGVudW1lcmFibGUgcHJvcGVydHlcbiAgb3B0aW9ucy5ub1RhcmdldEdldCAtIHByZXZlbnQgY2FsbGluZyBhIGdldHRlciBvbiB0YXJnZXRcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcHRpb25zLCBzb3VyY2UpIHtcbiAgdmFyIFRBUkdFVCA9IG9wdGlvbnMudGFyZ2V0O1xuICB2YXIgR0xPQkFMID0gb3B0aW9ucy5nbG9iYWw7XG4gIHZhciBTVEFUSUMgPSBvcHRpb25zLnN0YXQ7XG4gIHZhciBGT1JDRUQsIHRhcmdldCwga2V5LCB0YXJnZXRQcm9wZXJ0eSwgc291cmNlUHJv
1924cGVydHksIGRlc2NyaXB0b3I7XG4gIGlmIChHTE9CQUwpIHtcbiAgICB0YXJnZXQgPSBnbG9iYWw7XG4gIH0gZWxzZSBpZiAoU1RBVElDKSB7XG4gICAgdGFyZ2V0ID0gZ2xvYmFsW1RBUkdFVF0gfHwgc2V0R2xvYmFsKFRBUkdFVCwge30pO1xuICB9IGVsc2Uge1xuICAgIHRhcmdldCA9IChnbG9iYWxbVEFSR0VUXSB8fCB7fSkucHJvdG90eXBlO1xuICB9XG4gIGlmICh0YXJnZXQpIGZvciAoa2V5IGluIHNvdXJjZSkge1xuICAgIHNvdXJjZVByb3BlcnR5ID0gc291cmNlW2tleV07XG4gICAgaWYgKG9wdGlvbnMubm9UYXJnZXRHZXQpIHtcbiAgICAgIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpO1xuICAgICAgdGFyZ2V0UHJvcGVydHkgPSBkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IudmFsdWU7XG4gICAgfSBlbHNlIHRhcmdldFByb3BlcnR5ID0gdGFyZ2V0W2tleV07XG4gICAgRk9SQ0VEID0gaXNGb3JjZWQoR0xPQkFMID8ga2V5IDogVEFSR0VUICsgKFNUQVRJQyA/ICcuJyA6ICcjJykgKyBrZXksIG9wdGlvbnMuZm9yY2VkKTtcbiAgICAvLyBjb250YWluZWQgaW4gdGFyZ2V0XG4gICAgaWYgKCFGT1JDRUQgJiYgdGFyZ2V0UHJvcGVydHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHR5cGVvZiBzb3VyY2VQcm9wZXJ0eSA9PT0gdHlwZW9mIHRhcmdldFByb3BlcnR5KSBjb250aW51ZTtcbiAgICAgIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMoc291cmNlUHJvcGVydHksIHRhcmdldFByb3BlcnR5KTtcbiAgICB9XG4gICAgLy8gYWRkIGEgZmxhZyB0byBub3QgY29tcGxldGVseSBmdWxsIHBvbHlmaWxsc1xuICAgIGlmIChvcHRpb25zLnNoYW0gfHwgKHRhcmdldFByb3BlcnR5ICYmIHRhcmdldFByb3BlcnR5LnNoYW0pKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoc291cmNlUHJvcGVydHksICdzaGFtJywgdHJ1ZSk7XG4gICAgfVxuICAgIC8vIGV4dGVuZCBnbG9iYWxcbiAgICByZWRlZmluZSh0YXJnZXQsIGtleSwgc291cmNlUHJvcGVydHksIG9wdGlvbnMpO1xuICB9XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcbiIsInZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xuXG4vLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcbiAgYUZ1bmN0aW9uKGZuKTtcbiAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZuO1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgMDogcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQpO1xuICAgIH07XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuICAgIH07XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwidmFyIHBhdGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcGF0aCcpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcblxudmFyIGFGdW5jdGlvbiA9IGZ1bmN0aW9uICh2YXJpYWJsZSkge1xuICByZXR1cm4gdHlwZW9mIHZhcmlhYmxlID09ICdmdW5jdGlvbicgPyB2YXJpYWJsZSA6IHVuZGVmaW5lZDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWVzcGFjZSwgbWV0aG9kKSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoIDwgMiA/IGFGdW5jdGlvbihwYXRoW25hbWVzcGFjZV0pIHx8IGFGdW5jdGlvbihnbG9iYWxbbmFtZXNwYWNlXSlcbiAgICA6IHBhdGhbbmFtZXNwYWNlXSAmJiBwYXRoW25hbWVzcGFjZV1bbWV0aG9kXSB8fCBnbG9iYWxbbmFtZXNwYWNlXSAmJiBnbG9iYWxbbmFtZXNwYWNlXVttZXRob2RdO1xufTtcbiIsInZhciBjaGVjayA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgJiYgaXQuTWF0aCA9PSBNYXRoICYmIGl0O1xufTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbm1vZHVsZS5leHBvcnRzID1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWdsb2JhbC10aGlzIC0tIHNhZmVcbiAgY2hlY2sodHlwZW9mIGdsb2JhbFRoaXMgPT0gJ29iamVjdCcgJiYgZ2xvYmFsVGhpcykgfHxcbiAgY2hlY2sodHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cpIHx8XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gc2FmZVxuICBjaGVjayh0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmKSB8fFxuICBjaGVjayh0eXBlb2YgZ2xvYmFsID09ICdvYmplY3QnICYmIGdsb2JhbCkgfHxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jIC0tIGZhbGxiYWNrXG4gIChmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9KSgpIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG4iLCJ2YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IHt9Lmhhc093blByb3BlcnR5O1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5oYXNPd24gfHwgZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwodG9PYmplY3QoaXQpLCBrZXkpO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0ge307XG4iLCJ2YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluKCdkb2N1bWVudCcsICdkb2N1bWVudEVsZW1lbnQnKTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY3JlYXRlRWxlbWVudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudCcpO1xuXG4vLyBUaGFuaydzIElFOCBmb3IgaGlzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5tb2R1bGUuZXhwb3J0cyA9ICFERVNDUklQVE9SUyAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjcmVhdGVFbGVtZW50KCdkaXYnKSwgJ2EnLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9XG4gIH0pLmEgIT0gNztcbn0pO1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xuXG52YXIgc3BsaXQgPSAnJy5zcGxpdDtcblxuLy8gZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBhbmQgbm9uLWVudW1lcmFibGUgb2xkIFY4IHN0cmluZ3Ncbm1vZHVsZS5leHBvcnRzID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyB0aHJvd3MgYW4gZXJyb3IgaW4gcmhpbm8s
1924IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9yaGluby9pc3N1ZXMvMzQ2XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgLS0gc2FmZVxuICByZXR1cm4gIU9iamVjdCgneicpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApO1xufSkgPyBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGNsYXNzb2YoaXQpID09ICdTdHJpbmcnID8gc3BsaXQuY2FsbChpdCwgJycpIDogT2JqZWN0KGl0KTtcbn0gOiBPYmplY3Q7XG4iLCJ2YXIgc3RvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbnZhciBmdW5jdGlvblRvU3RyaW5nID0gRnVuY3Rpb24udG9TdHJpbmc7XG5cbi8vIHRoaXMgaGVscGVyIGJyb2tlbiBpbiBgY29yZS1qc0AzLjQuMS0zLjQuNGAsIHNvIHdlIGNhbid0IHVzZSBgc2hhcmVkYCBoZWxwZXJcbmlmICh0eXBlb2Ygc3RvcmUuaW5zcGVjdFNvdXJjZSAhPSAnZnVuY3Rpb24nKSB7XG4gIHN0b3JlLmluc3BlY3RTb3VyY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub1N0cmluZy5jYWxsKGl0KTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdG9yZS5pbnNwZWN0U291cmNlO1xuIiwidmFyIE5BVElWRV9XRUFLX01BUCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uYXRpdmUtd2Vhay1tYXAnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIG9iamVjdEhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG52YXIgc2hhcmVkS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1rZXknKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG5cbnZhciBPQkpFQ1RfQUxSRUFEWV9JTklUSUFMSVpFRCA9ICdPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCc7XG52YXIgV2Vha01hcCA9IGdsb2JhbC5XZWFrTWFwO1xudmFyIHNldCwgZ2V0LCBoYXM7XG5cbnZhciBlbmZvcmNlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBoYXMoaXQpID8gZ2V0KGl0KSA6IHNldChpdCwge30pO1xufTtcblxudmFyIGdldHRlckZvciA9IGZ1bmN0aW9uIChUWVBFKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoaXQpIHtcbiAgICB2YXIgc3RhdGU7XG4gICAgaWYgKCFpc09iamVjdChpdCkgfHwgKHN0YXRlID0gZ2V0KGl0KSkudHlwZSAhPT0gVFlQRSkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICcgKyBUWVBFICsgJyByZXF1aXJlZCcpO1xuICAgIH0gcmV0dXJuIHN0YXRlO1xuICB9O1xufTtcblxuaWYgKE5BVElWRV9XRUFLX01BUCB8fCBzaGFyZWQuc3RhdGUpIHtcbiAgdmFyIHN0b3JlID0gc2hhcmVkLnN0YXRlIHx8IChzaGFyZWQuc3RhdGUgPSBuZXcgV2Vha01hcCgpKTtcbiAgdmFyIHdtZ2V0ID0gc3RvcmUuZ2V0O1xuICB2YXIgd21oYXMgPSBzdG9yZS5oYXM7XG4gIHZhciB3bXNldCA9IHN0b3JlLnNldDtcbiAgc2V0ID0gZnVuY3Rpb24gKGl0LCBtZXRhZGF0YSkge1xuICAgIGlmICh3bWhhcy5jYWxsKHN0b3JlLCBpdCkpIHRocm93IG5ldyBUeXBlRXJyb3IoT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQpO1xuICAgIG1ldGFkYXRhLmZhY2FkZSA9IGl0O1xuICAgIHdtc2V0LmNhbGwoc3RvcmUsIGl0LCBtZXRhZGF0YSk7XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9O1xuICBnZXQgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gd21nZXQuY2FsbChzdG9yZSwgaXQpIHx8IHt9O1xuICB9O1xuICBoYXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gd21oYXMuY2FsbChzdG9yZSwgaXQpO1xuICB9O1xufSBlbHNlIHtcbiAgdmFyIFNUQVRFID0gc2hhcmVkS2V5KCdzdGF0ZScpO1xuICBoaWRkZW5LZXlzW1NUQVRFXSA9IHRydWU7XG4gIHNldCA9IGZ1bmN0aW9uIChpdCwgbWV0YWRhdGEpIHtcbiAgICBpZiAob2JqZWN0SGFzKGl0LCBTVEFURSkpIHRocm93IG5ldyBUeXBlRXJyb3IoT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQpO1xuICAgIG1ldGFkYXRhLmZhY2FkZSA9IGl0O1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShpdCwgU1RBVEUsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBvYmplY3RIYXMoaXQsIFNUQVRFKSA/IGl0W1NUQVRFXSA6IHt9O1xuICB9O1xuICBoYXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gb2JqZWN0SGFzKGl0LCBTVEFURSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IHNldCxcbiAgZ2V0OiBnZXQsXG4gIGhhczogaGFzLFxuICBlbmZvcmNlOiBlbmZvcmNlLFxuICBnZXR0ZXJGb3I6IGdldHRlckZvclxufTtcbiIsInZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG5cbi8vIGBJc0FycmF5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNhcnJheVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWFycmF5LWlzYXJyYXkgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIGlzQXJyYXkoYXJnKSB7XG4gIHJldHVybiBjbGFzc29mKGFyZykgPT0gJ0FycmF5Jztcbn07XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxudmFyIHJlcGxhY2VtZW50ID0gLyN8XFwucHJvdG90eXBlXFwuLztcblxudmFyIGlzRm9yY2VkID0gZnVuY3Rpb24gKGZlYXR1cmUsIGRldGVjdGlvbikge1xuICB2YXIgdmFsdWUgPSBkYXRhW25vcm1hbGl6ZShmZWF0dXJlKV07XG4gIHJldHVybi
1924B2YWx1ZSA9PSBQT0xZRklMTCA/IHRydWVcbiAgICA6IHZhbHVlID09IE5BVElWRSA/IGZhbHNlXG4gICAgOiB0eXBlb2YgZGV0ZWN0aW9uID09ICdmdW5jdGlvbicgPyBmYWlscyhkZXRlY3Rpb24pXG4gICAgOiAhIWRldGVjdGlvbjtcbn07XG5cbnZhciBub3JtYWxpemUgPSBpc0ZvcmNlZC5ub3JtYWxpemUgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHJldHVybiBTdHJpbmcoc3RyaW5nKS5yZXBsYWNlKHJlcGxhY2VtZW50LCAnLicpLnRvTG93ZXJDYXNlKCk7XG59O1xuXG52YXIgZGF0YSA9IGlzRm9yY2VkLmRhdGEgPSB7fTtcbnZhciBOQVRJVkUgPSBpc0ZvcmNlZC5OQVRJVkUgPSAnTic7XG52YXIgUE9MWUZJTEwgPSBpc0ZvcmNlZC5QT0xZRklMTCA9ICdQJztcblxubW9kdWxlLmV4cG9ydHMgPSBpc0ZvcmNlZDtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiB0eXBlb2YgaXQgPT09ICdmdW5jdGlvbic7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmYWxzZTtcbiIsIi8qIGVzbGludC1kaXNhYmxlIGVzL25vLXN5bWJvbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZyAqL1xudmFyIFY4X1ZFUlNJT04gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXY4LXZlcnNpb24nKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5c3ltYm9scyAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xubW9kdWxlLmV4cG9ydHMgPSAhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHN5bWJvbCA9IFN5bWJvbCgpO1xuICAvLyBDaHJvbWUgMzggU3ltYm9sIGhhcyBpbmNvcnJlY3QgdG9TdHJpbmcgY29udmVyc2lvblxuICAvLyBgZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzYCBwb2x5ZmlsbCBzeW1ib2xzIGNvbnZlcnRlZCB0byBvYmplY3QgYXJlIG5vdCBTeW1ib2wgaW5zdGFuY2VzXG4gIHJldHVybiAhU3RyaW5nKHN5bWJvbCkgfHwgIShPYmplY3Qoc3ltYm9sKSBpbnN0YW5jZW9mIFN5bWJvbCkgfHxcbiAgICAvLyBDaHJvbWUgMzgtNDAgc3ltYm9scyBhcmUgbm90IGluaGVyaXRlZCBmcm9tIERPTSBjb2xsZWN0aW9ucyBwcm90b3R5cGVzIHRvIGluc3RhbmNlc1xuICAgICFTeW1ib2wuc2hhbSAmJiBWOF9WRVJTSU9OICYmIFY4X1ZFUlNJT04gPCA0MTtcbn0pO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBpbnNwZWN0U291cmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlJyk7XG5cbnZhciBXZWFrTWFwID0gZ2xvYmFsLldlYWtNYXA7XG5cbm1vZHVsZS5leHBvcnRzID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgJiYgL25hdGl2ZSBjb2RlLy50ZXN0KGluc3BlY3RTb3VyY2UoV2Vha01hcCkpO1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGRlZmluZVByb3BlcnRpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW51bS1idWcta2V5cycpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcbnZhciBodG1sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2h0bWwnKTtcbnZhciBkb2N1bWVudENyZWF0ZUVsZW1lbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xuXG52YXIgR1QgPSAnPic7XG52YXIgTFQgPSAnPCc7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG52YXIgU0NSSVBUID0gJ3NjcmlwdCc7XG52YXIgSUVfUFJPVE8gPSBzaGFyZWRLZXkoJ0lFX1BST1RPJyk7XG5cbnZhciBFbXB0eUNvbnN0cnVjdG9yID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuXG52YXIgc2NyaXB0VGFnID0gZnVuY3Rpb24gKGNvbnRlbnQpIHtcbiAgcmV0dXJuIExUICsgU0NSSVBUICsgR1QgKyBjb250ZW50ICsgTFQgKyAnLycgKyBTQ1JJUFQgKyBHVDtcbn07XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBBY3RpdmVYIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWCA9IGZ1bmN0aW9uIChhY3RpdmVYRG9jdW1lbnQpIHtcbiAgYWN0aXZlWERvY3VtZW50LndyaXRlKHNjcmlwdFRhZygnJykpO1xuICBhY3RpdmVYRG9jdW1lbnQuY2xvc2UoKTtcbiAgdmFyIHRlbXAgPSBhY3RpdmVYRG9jdW1lbnQucGFyZW50V2luZG93Lk9iamVjdDtcbiAgYWN0aXZlWERvY3VtZW50ID0gbnVsbDsgLy8gYXZvaWQgbWVtb3J5IGxlYWtcbiAgcmV0dXJuIHRlbXA7XG59O1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgaWZyYW1lIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gZG9jdW1lbnRDcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgdmFyIEpTID0gJ2phdmEnICsgU0NSSVBUICsgJzonO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBodG1sLmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy80NzVcbiAgaWZyYW1lLnNyYyA9IFN0cmluZyhKUyk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUoc2NyaXB0VGFnKCdkb2N1bWVudC5GPU9iamVjdCcpKTtcbiAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKTtcbiAgcmV0dXJuIGlmcmFtZURvY3VtZW50LkY7XG59O1xuXG4vLyBDaGVjayBmb3IgZG9jdW1lbnQuZG9tYWluIGFuZCBhY3RpdmUgeCBzdXBwb3J0XG4vLyBObyBuZWVkIHRvIHVzZSBhY3RpdmUgeCBhcHByb2FjaCB3aGVuIGRvY3VtZW50LmRvbWFpbiBpcyBub3Qgc2V0XG4vLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2VzLXNoaW1zL2VzNS1zaGltL2lzc3Vlcy8xNTBcbi8vIHZhcmlhdGlvbiBvZiBodHRwczovL2dpdGh1Yi5jb20va2l0Y2FtYnJpZGdlL2VzNS1zaGltL2NvbW1pdC80ZjczOGFjMDY2MzQ2XG4vLyBhdm9pZCBJRSBHQyBidWdcbnZhciBhY3RpdmVYRG9jdW1lbnQ7XG52YXIgTnVsbFByb3RvT2JqZWN0ID0gZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIC8qIGdsb2JhbCBBY3RpdmVYT2JqZWN0IC0tIG9sZCBJRSAqL1xuICAgIGFjdGl2ZVhEb2N1bWVudCA9IGRvY3VtZW50LmRvbWFpbiAmJiBuZXcgQWN0aXZlWE9iamVjdCgnaHRtbGZpbGUnKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogaWdub3JlICovIH1cbiAgTnVsbFByb3RvT2JqZWN0ID0gYWN0aXZlWERvY3VtZW50ID8gTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpIDogTnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lKCk7XG4gIHZhciBsZW5ndGggPSBlbnVtQnVnS2V5cy5sZW5ndGg7XG4gIHdoaWxlIChsZW5ndGgtLSkgZGVsZXRlIE51bGxQcm90b09iamVjdFtQUk9UT1RZUEVdW2VudW1CdWdLZXlzW2xlbmd0aF1dO1xuICByZXR1cm4gTnVsbFByb3RvT2JqZWN0KCk7XG59O1xuXG5oaWRkZW5L
1924ZXlzW0lFX1BST1RPXSA9IHRydWU7XG5cbi8vIGBPYmplY3QuY3JlYXRlYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmNyZWF0ZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuY3JlYXRlIHx8IGZ1bmN0aW9uIGNyZWF0ZShPLCBQcm9wZXJ0aWVzKSB7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChPICE9PSBudWxsKSB7XG4gICAgRW1wdHlDb25zdHJ1Y3RvcltQUk9UT1RZUEVdID0gYW5PYmplY3QoTyk7XG4gICAgcmVzdWx0ID0gbmV3IEVtcHR5Q29uc3RydWN0b3IoKTtcbiAgICBFbXB0eUNvbnN0cnVjdG9yW1BST1RPVFlQRV0gPSBudWxsO1xuICAgIC8vIGFkZCBcIl9fcHJvdG9fX1wiIGZvciBPYmplY3QuZ2V0UHJvdG90eXBlT2YgcG9seWZpbGxcbiAgICByZXN1bHRbSUVfUFJPVE9dID0gTztcbiAgfSBlbHNlIHJlc3VsdCA9IE51bGxQcm90b09iamVjdCgpO1xuICByZXR1cm4gUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogZGVmaW5lUHJvcGVydGllcyhyZXN1bHQsIFByb3BlcnRpZXMpO1xufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBvYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzJyk7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydGllc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5kZWZpbmVwcm9wZXJ0aWVzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnRpZXMgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBERVNDUklQVE9SUyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICB2YXIga2V5cyA9IG9iamVjdEtleXMoUHJvcGVydGllcyk7XG4gIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKE8sIGtleSA9IGtleXNbaW5kZXgrK10sIFByb3BlcnRpZXNba2V5XSk7XG4gIHJldHVybiBPO1xufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gc2FmZVxudmFyICRkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuLy8gYE9iamVjdC5kZWZpbmVQcm9wZXJ0eWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5kZWZpbmVwcm9wZXJ0eVxuZXhwb3J0cy5mID0gREVTQ1JJUFRPUlMgPyAkZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuICRkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkJyk7XG4gIGlmICgndmFsdWUnIGluIEF0dHJpYnV0ZXMpIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICByZXR1cm4gTztcbn07XG4iLCJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pZTgtZG9tLWRlZmluZScpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbi8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5ZGVzY3JpcHRvclxuZXhwb3J0cy5mID0gREVTQ1JJUFRPUlMgPyAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIDogZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApIHtcbiAgTyA9IHRvSW5kZXhlZE9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKGhhcyhPLCBQKSkgcmV0dXJuIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcighcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZi5jYWxsKE8sIFApLCBPW1BdKTtcbn07XG4iLCJ2YXIgaW50ZXJuYWxPYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW51bS1idWcta2V5cycpO1xuXG52YXIgaGlkZGVuS2V5cyA9IGVudW1CdWdLZXlzLmNvbmNhdCgnbGVuZ3RoJywgJ3Byb3RvdHlwZScpO1xuXG4vLyBgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXNgIG1ldGhvZFxuLy8gaH
1924R0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHluYW1lc1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eW5hbWVzIC0tIHNhZmVcbmV4cG9ydHMuZiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoTykge1xuICByZXR1cm4gaW50ZXJuYWxPYmplY3RLZXlzKE8sIGhpZGRlbktleXMpO1xufTtcbiIsIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlzeW1ib2xzIC0tIHNhZmVcbmV4cG9ydHMuZiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG4iLCJ2YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGluZGV4T2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMnKS5pbmRleE9mO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgIWhhcyhoaWRkZW5LZXlzLCBrZXkpICYmIGhhcyhPLCBrZXkpICYmIHJlc3VsdC5wdXNoKGtleSk7XG4gIC8vIERvbid0IGVudW0gYnVnICYgaGlkZGVuIGtleXNcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIGlmIChoYXMoTywga2V5ID0gbmFtZXNbaSsrXSkpIHtcbiAgICB+aW5kZXhPZihyZXN1bHQsIGtleSkgfHwgcmVzdWx0LnB1c2goa2V5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsInZhciBpbnRlcm5hbE9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG5cbi8vIGBPYmplY3Qua2V5c2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5rZXlzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWtleXMgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuIGludGVybmFsT2JqZWN0S2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbi8vIE5hc2hvcm4gfiBKREs4IGJ1Z1xudmFyIE5BU0hPUk5fQlVHID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICYmICEkcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh7IDE6IDIgfSwgMSk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eWlzZW51bWVyYWJsZVxuZXhwb3J0cy5mID0gTkFTSE9STl9CVUcgPyBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShWKSB7XG4gIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIFYpO1xuICByZXR1cm4gISFkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZTtcbn0gOiAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4iLCJ2YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxuLy8gYWxsIG9iamVjdCBrZXlzLCBpbmNsdWRlcyBub24tZW51bWVyYWJsZSBhbmQgc3ltYm9sc1xubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluKCdSZWZsZWN0JywgJ293bktleXMnKSB8fCBmdW5jdGlvbiBvd25LZXlzKGl0KSB7XG4gIHZhciBrZXlzID0gZ2V0T3duUHJvcGVydHlOYW1lc01vZHVsZS5mKGFuT2JqZWN0KGl0KSk7XG4gIHZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUuZjtcbiAgcmV0dXJuIGdldE93blByb3BlcnR5U3ltYm9scyA/IGtleXMuY29uY2F0KGdldE93blByb3BlcnR5U3ltYm9scyhpdCkpIDoga2V5cztcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdsb2JhbDtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBzZXRHbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LWdsb2JhbCcpO1xudmFyIGluc3BlY3RTb3VyY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG5cbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXQ7XG52YXIgZW5mb3JjZUludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9
1924kdWxlLmVuZm9yY2U7XG52YXIgVEVNUExBVEUgPSBTdHJpbmcoU3RyaW5nKS5zcGxpdCgnU3RyaW5nJyk7XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBrZXksIHZhbHVlLCBvcHRpb25zKSB7XG4gIHZhciB1bnNhZmUgPSBvcHRpb25zID8gISFvcHRpb25zLnVuc2FmZSA6IGZhbHNlO1xuICB2YXIgc2ltcGxlID0gb3B0aW9ucyA/ICEhb3B0aW9ucy5lbnVtZXJhYmxlIDogZmFsc2U7XG4gIHZhciBub1RhcmdldEdldCA9IG9wdGlvbnMgPyAhIW9wdGlvbnMubm9UYXJnZXRHZXQgOiBmYWxzZTtcbiAgdmFyIHN0YXRlO1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAodHlwZW9mIGtleSA9PSAnc3RyaW5nJyAmJiAhaGFzKHZhbHVlLCAnbmFtZScpKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkodmFsdWUsICduYW1lJywga2V5KTtcbiAgICB9XG4gICAgc3RhdGUgPSBlbmZvcmNlSW50ZXJuYWxTdGF0ZSh2YWx1ZSk7XG4gICAgaWYgKCFzdGF0ZS5zb3VyY2UpIHtcbiAgICAgIHN0YXRlLnNvdXJjZSA9IFRFTVBMQVRFLmpvaW4odHlwZW9mIGtleSA9PSAnc3RyaW5nJyA/IGtleSA6ICcnKTtcbiAgICB9XG4gIH1cbiAgaWYgKE8gPT09IGdsb2JhbCkge1xuICAgIGlmIChzaW1wbGUpIE9ba2V5XSA9IHZhbHVlO1xuICAgIGVsc2Ugc2V0R2xvYmFsKGtleSwgdmFsdWUpO1xuICAgIHJldHVybjtcbiAgfSBlbHNlIGlmICghdW5zYWZlKSB7XG4gICAgZGVsZXRlIE9ba2V5XTtcbiAgfSBlbHNlIGlmICghbm9UYXJnZXRHZXQgJiYgT1trZXldKSB7XG4gICAgc2ltcGxlID0gdHJ1ZTtcbiAgfVxuICBpZiAoc2ltcGxlKSBPW2tleV0gPSB2YWx1ZTtcbiAgZWxzZSBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoTywga2V5LCB2YWx1ZSk7XG4vLyBhZGQgZmFrZSBGdW5jdGlvbiN0b1N0cmluZyBmb3IgY29ycmVjdCB3b3JrIHdyYXBwZWQgbWV0aG9kcyAvIGNvbnN0cnVjdG9ycyB3aXRoIG1ldGhvZHMgbGlrZSBMb0Rhc2ggaXNOYXRpdmVcbn0pKEZ1bmN0aW9uLnByb3RvdHlwZSwgJ3RvU3RyaW5nJywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiB0eXBlb2YgdGhpcyA9PSAnZnVuY3Rpb24nICYmIGdldEludGVybmFsU3RhdGUodGhpcykuc291cmNlIHx8IGluc3BlY3RTb3VyY2UodGhpcyk7XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIHJlZ2V4cC9uby1hc3NlcnRpb24tY2FwdHVyaW5nLWdyb3VwLCByZWdleHAvbm8tZW1wdHktZ3JvdXAsIHJlZ2V4cC9uby1sYXp5LWVuZHMgLS0gdGVzdGluZyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVnZXhwL25vLXVzZWxlc3MtcXVhbnRpZmllciAtLSB0ZXN0aW5nICovXG52YXIgcmVnZXhwRmxhZ3MgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWZsYWdzJyk7XG52YXIgc3RpY2t5SGVscGVycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtc3RpY2t5LWhlbHBlcnMnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJykuZ2V0O1xudmFyIFVOU1VQUE9SVEVEX0RPVF9BTEwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLXVuc3VwcG9ydGVkLWRvdC1hbGwnKTtcbnZhciBVTlNVUFBPUlRFRF9OQ0cgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLXVuc3VwcG9ydGVkLW5jZycpO1xuXG52YXIgbmF0aXZlRXhlYyA9IFJlZ0V4cC5wcm90b3R5cGUuZXhlYztcbnZhciBuYXRpdmVSZXBsYWNlID0gc2hhcmVkKCduYXRpdmUtc3RyaW5nLXJlcGxhY2UnLCBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpO1xuXG52YXIgcGF0Y2hlZEV4ZWMgPSBuYXRpdmVFeGVjO1xuXG52YXIgVVBEQVRFU19MQVNUX0lOREVYX1dST05HID0gKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHJlMSA9IC9hLztcbiAgdmFyIHJlMiA9IC9iKi9nO1xuICBuYXRpdmVFeGVjLmNhbGwocmUxLCAnYScpO1xuICBuYXRpdmVFeGVjLmNhbGwocmUyLCAnYScpO1xuICByZXR1cm4gcmUxLmxhc3RJbmRleCAhPT0gMCB8fCByZTIubGFzdEluZGV4ICE9PSAwO1xufSkoKTtcblxudmFyIFVOU1VQUE9SVEVEX1kgPSBzdGlja3lIZWxwZXJzLlVOU1VQUE9SVEVEX1kgfHwgc3RpY2t5SGVscGVycy5CUk9LRU5fQ0FSRVQ7XG5cbi8vIG5vbnBhcnRpY2lwYXRpbmcgY2FwdHVyaW5nIGdyb3VwLCBjb3BpZWQgZnJvbSBlczUtc2hpbSdzIFN0cmluZyNzcGxpdCBwYXRjaC5cbnZhciBOUENHX0lOQ0xVREVEID0gLygpPz8vLmV4ZWMoJycpWzFdICE9PSB1bmRlZmluZWQ7XG5cbnZhciBQQVRDSCA9IFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyB8fCBOUENHX0lOQ0xVREVEIHx8IFVOU1VQUE9SVEVEX1kgfHwgVU5TVVBQT1JURURfRE9UX0FMTCB8fCBVTlNVUFBPUlRFRF9OQ0c7XG5cbmlmIChQQVRDSCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LXN0YXRlbWVudHMgLS0gVE9ET1xuICBwYXRjaGVkRXhlYyA9IGZ1bmN0aW9uIGV4ZWMoc3RyKSB7XG4gICAgdmFyIHJlID0gdGhpcztcbiAgICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHJlKTtcbiAgICB2YXIgcmF3ID0gc3RhdGUucmF3O1xuICAgIHZhciByZXN1bHQsIHJlQ29weSwgbGFzdEluZGV4LCBtYXRjaCwgaSwgb2JqZWN0LCBncm91cDtcblxuICAgIGlmIChyYXcpIHtcbiAgICAgIHJhdy5sYXN0SW5kZXggPSByZS5sYXN0SW5kZXg7XG4gICAgICByZXN1bHQgPSBwYXRjaGVkRXhlYy5jYWxsKHJhdywgc3RyKTtcbiAgICAgIHJlLmxhc3RJbmRleCA9IHJhdy5sYXN0SW5kZXg7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHZhciBncm91cHMgPSBzdGF0ZS5ncm91cHM7XG4gICAgdmFyIHN0aWNreSA9IFVOU1VQUE9SVEVEX1kgJiYgcmUuc3RpY2t5O1xuICAgIHZhciBmbGFncyA9IHJlZ2V4cEZsYWdzLmNhbGwocmUpO1xuICAgIHZhciBzb3VyY2UgPSByZS5zb3VyY2U7XG4gICAgdmFyIGNoYXJzQWRkZWQgPSAwO1xuICAgIHZhciBzdHJDb3B5ID0gc3RyO1xuXG4gICAgaWYgKHN0aWNreSkge1xuICAgICAgZmxhZ3MgPSBmbGFncy5yZXBsYWNlKCd5JywgJycpO1xuICAgICAgaWYgKGZsYWdzLmluZGV4T2YoJ2cnKSA9PT0gLTEpIHtcbiAgICAgICAgZmxhZ3MgKz0gJ2cnO1xuICAgICAgfVxuXG4gICAgICBzdHJDb3B5ID0gU3RyaW5nKHN0cikuc2xpY2UocmUubGFzdEluZGV4KTtcbiAgICAgIC8vIFN1cHBvcnQgYW5jaG9yZWQgc3RpY2t5IGJlaGF2aW9yLlxuICAgICAgaWYgKHJlLmxhc3RJbmRleCA+IDAgJiYgKCFyZS5tdWx0aWxpbmUgfHwgcmUubXVsdGlsaW5lICYmIHN0cltyZS5sYXN0SW5kZXggLSAxXSAhPT0gJ1xcbicpKSB7XG4gICAgICAgI
1924HNvdXJjZSA9ICcoPzogJyArIHNvdXJjZSArICcpJztcbiAgICAgICAgc3RyQ29weSA9ICcgJyArIHN0ckNvcHk7XG4gICAgICAgIGNoYXJzQWRkZWQrKztcbiAgICAgIH1cbiAgICAgIC8vIF4oPyArIHJ4ICsgKSBpcyBuZWVkZWQsIGluIGNvbWJpbmF0aW9uIHdpdGggc29tZSBzdHIgc2xpY2luZywgdG9cbiAgICAgIC8vIHNpbXVsYXRlIHRoZSAneScgZmxhZy5cbiAgICAgIHJlQ29weSA9IG5ldyBSZWdFeHAoJ14oPzonICsgc291cmNlICsgJyknLCBmbGFncyk7XG4gICAgfVxuXG4gICAgaWYgKE5QQ0dfSU5DTFVERUQpIHtcbiAgICAgIHJlQ29weSA9IG5ldyBSZWdFeHAoJ14nICsgc291cmNlICsgJyQoPyFcXFxccyknLCBmbGFncyk7XG4gICAgfVxuICAgIGlmIChVUERBVEVTX0xBU1RfSU5ERVhfV1JPTkcpIGxhc3RJbmRleCA9IHJlLmxhc3RJbmRleDtcblxuICAgIG1hdGNoID0gbmF0aXZlRXhlYy5jYWxsKHN0aWNreSA/IHJlQ29weSA6IHJlLCBzdHJDb3B5KTtcblxuICAgIGlmIChzdGlja3kpIHtcbiAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICBtYXRjaC5pbnB1dCA9IG1hdGNoLmlucHV0LnNsaWNlKGNoYXJzQWRkZWQpO1xuICAgICAgICBtYXRjaFswXSA9IG1hdGNoWzBdLnNsaWNlKGNoYXJzQWRkZWQpO1xuICAgICAgICBtYXRjaC5pbmRleCA9IHJlLmxhc3RJbmRleDtcbiAgICAgICAgcmUubGFzdEluZGV4ICs9IG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgIH0gZWxzZSByZS5sYXN0SW5kZXggPSAwO1xuICAgIH0gZWxzZSBpZiAoVVBEQVRFU19MQVNUX0lOREVYX1dST05HICYmIG1hdGNoKSB7XG4gICAgICByZS5sYXN0SW5kZXggPSByZS5nbG9iYWwgPyBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCA6IGxhc3RJbmRleDtcbiAgICB9XG4gICAgaWYgKE5QQ0dfSU5DTFVERUQgJiYgbWF0Y2ggJiYgbWF0Y2gubGVuZ3RoID4gMSkge1xuICAgICAgLy8gRml4IGJyb3dzZXJzIHdob3NlIGBleGVjYCBtZXRob2RzIGRvbid0IGNvbnNpc3RlbnRseSByZXR1cm4gYHVuZGVmaW5lZGBcbiAgICAgIC8vIGZvciBOUENHLCBsaWtlIElFOC4gTk9URTogVGhpcyBkb2Vzbicgd29yayBmb3IgLyguPyk/L1xuICAgICAgbmF0aXZlUmVwbGFjZS5jYWxsKG1hdGNoWzBdLCByZUNvcHksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLSAyOyBpKyspIHtcbiAgICAgICAgICBpZiAoYXJndW1lbnRzW2ldID09PSB1bmRlZmluZWQpIG1hdGNoW2ldID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAobWF0Y2ggJiYgZ3JvdXBzKSB7XG4gICAgICBtYXRjaC5ncm91cHMgPSBvYmplY3QgPSBjcmVhdGUobnVsbCk7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGdyb3VwID0gZ3JvdXBzW2ldO1xuICAgICAgICBvYmplY3RbZ3JvdXBbMF1dID0gbWF0Y2hbZ3JvdXBbMV1dO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXRjaDtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwYXRjaGVkRXhlYztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUuZmxhZ3NgIGdldHRlciBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXQtcmVnZXhwLnByb3RvdHlwZS5mbGFnc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciB0aGF0ID0gYW5PYmplY3QodGhpcyk7XG4gIHZhciByZXN1bHQgPSAnJztcbiAgaWYgKHRoYXQuZ2xvYmFsKSByZXN1bHQgKz0gJ2cnO1xuICBpZiAodGhhdC5pZ25vcmVDYXNlKSByZXN1bHQgKz0gJ2knO1xuICBpZiAodGhhdC5tdWx0aWxpbmUpIHJlc3VsdCArPSAnbSc7XG4gIGlmICh0aGF0LmRvdEFsbCkgcmVzdWx0ICs9ICdzJztcbiAgaWYgKHRoYXQudW5pY29kZSkgcmVzdWx0ICs9ICd1JztcbiAgaWYgKHRoYXQuc3RpY2t5KSByZXN1bHQgKz0gJ3knO1xuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBiYWJlbC1taW5pZnkgdHJhbnNwaWxlcyBSZWdFeHAoJ2EnLCAneScpIC0+IC9hL3kgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvcixcbnZhciBSRSA9IGZ1bmN0aW9uIChzLCBmKSB7XG4gIHJldHVybiBSZWdFeHAocywgZik7XG59O1xuXG5leHBvcnRzLlVOU1VQUE9SVEVEX1kgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciByZSA9IFJFKCdhJywgJ3knKTtcbiAgcmUubGFzdEluZGV4ID0gMjtcbiAgcmV0dXJuIHJlLmV4ZWMoJ2FiY2QnKSAhPSBudWxsO1xufSk7XG5cbmV4cG9ydHMuQlJPS0VOX0NBUkVUID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM2ODdcbiAgdmFyIHJlID0gUkUoJ15yJywgJ2d5Jyk7XG4gIHJlLmxhc3RJbmRleCA9IDI7XG4gIHJldHVybiByZS5leGVjKCdzdHInKSAhPSBudWxsO1xufSk7XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuL2ZhaWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBiYWJlbC1taW5pZnkgdHJhbnNwaWxlcyBSZWdFeHAoJy4nLCAncycpIC0+IC8uL3MgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvclxuICB2YXIgcmUgPSBSZWdFeHAoJy4nLCAodHlwZW9mICcnKS5jaGFyQXQoMCkpO1xuICByZXR1cm4gIShyZS5kb3RBbGwgJiYgcmUuZXhlYygnXFxuJykgJiYgcmUuZmxhZ3MgPT09ICdzJyk7XG59KTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4vZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGJhYmVsLW1pbmlmeSB0cmFuc3BpbGVzIFJlZ0V4cCgnLicsICdnJykgLT4gLy4vZyBhbmQgaXQgY2F1c2VzIFN5bnRheEVycm9yXG4gIHZhciByZSA9IFJlZ0V4cCgnKD88YT5iKScsICh0eXBlb2YgJycpLmNoYXJBdCg1KSk7XG4gIHJldHVybi
1924ByZS5leGVjKCdiJykuZ3JvdXBzLmEgIT09ICdiJyB8fFxuICAgICdiJy5yZXBsYWNlKHJlLCAnJDxhPmMnKSAhPT0gJ2JjJztcbn0pO1xuIiwiLy8gYFJlcXVpcmVPYmplY3RDb2VyY2libGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZXF1aXJlb2JqZWN0Y29lcmNpYmxlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgPT0gdW5kZWZpbmVkKSB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiBcIiArIGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHRyeSB7XG4gICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KGdsb2JhbCwga2V5LCB2YWx1ZSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgZ2xvYmFsW2tleV0gPSB2YWx1ZTtcbiAgfSByZXR1cm4gdmFsdWU7XG59O1xuIiwidmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG5cbnZhciBrZXlzID0gc2hhcmVkKCdrZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4ga2V5c1trZXldIHx8IChrZXlzW2tleV0gPSB1aWQoa2V5KSk7XG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBzZXRHbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LWdsb2JhbCcpO1xuXG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBnbG9iYWxbU0hBUkVEXSB8fCBzZXRHbG9iYWwoU0hBUkVELCB7fSk7XG5cbm1vZHVsZS5leHBvcnRzID0gc3RvcmU7XG4iLCJ2YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgc3RvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoge30pO1xufSkoJ3ZlcnNpb25zJywgW10pLnB1c2goe1xuICB2ZXJzaW9uOiAnMy4xNS4yJyxcbiAgbW9kZTogSVNfUFVSRSA/ICdwdXJlJyA6ICdnbG9iYWwnLFxuICBjb3B5cmlnaHQ6ICfCqSAyMDIxIERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpJ1xufSk7XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcblxudmFyIG1heCA9IE1hdGgubWF4O1xudmFyIG1pbiA9IE1hdGgubWluO1xuXG4vLyBIZWxwZXIgZm9yIGEgcG9wdWxhciByZXBlYXRpbmcgY2FzZSBvZiB0aGUgc3BlYzpcbi8vIExldCBpbnRlZ2VyIGJlID8gVG9JbnRlZ2VyKGluZGV4KS5cbi8vIElmIGludGVnZXIgPCAwLCBsZXQgcmVzdWx0IGJlIG1heCgobGVuZ3RoICsgaW50ZWdlciksIDApOyBlbHNlIGxldCByZXN1bHQgYmUgbWluKGludGVnZXIsIGxlbmd0aCkuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG4gIHZhciBpbnRlZ2VyID0gdG9JbnRlZ2VyKGluZGV4KTtcbiAgcmV0dXJuIGludGVnZXIgPCAwID8gbWF4KGludGVnZXIgKyBsZW5ndGgsIDApIDogbWluKGludGVnZXIsIGxlbmd0aCk7XG59O1xuIiwiLy8gdG9PYmplY3Qgd2l0aCBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIHN0cmluZ3NcbnZhciBJbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0Jyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIEluZGV4ZWRPYmplY3QocmVxdWlyZU9iamVjdENvZXJjaWJsZShpdCkpO1xufTtcbiIsInZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblxuLy8gYFRvSW50ZWdlcmAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvaW50ZWdlclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGlzTmFOKGFyZ3VtZW50ID0gK2FyZ3VtZW50KSA/IDAgOiAoYXJndW1lbnQgPiAwID8gZmxvb3IgOiBjZWlsKShhcmd1bWVudCk7XG59O1xuIiwidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyJyk7XG5cbnZhciBtaW4gPSBNYXRoLm1pbjtcblxuLy8gYFRvTGVuZ3RoYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9sZW5ndGhcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHJldHVybiBhcmd1bWVudCA+IDAgPyBtaW4odG9JbnRlZ2VyKGFyZ3VtZW50KSwgMHgxRkZGRkZGRkZGRkZGRikgOiAwOyAvLyAyICoqIDUzIC0gMSA9PSA5MDA3MTk5MjU0NzQwOTkxXG59O1xuIiwidmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbi8vIGBUb09iamVjdGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvb2JqZWN0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gT2JqZWN0KHJlcXVpcmVPYmplY3RDb2VyY2libGUoYXJndW1lbnQpKTtcbn07XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbi8vIGBUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvcHJpbWl0aXZlXG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlucHV0LCBQUkVGRVJSRURfU1RSSU5HKSB7XG4gIGlmICghaXNPYmplY3QoaW5wdXQpKSByZXR1cm4gaW5wdXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUFJFRkVSUkVEX1NUUklORyAmJiB0eXBlb2YgKGZuID0gaW5wdXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpbnB1dC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGlucHV0KSkpIHJldHVybi
1924B2YWw7XG4gIGlmICghUFJFRkVSUkVEX1NUUklORyAmJiB0eXBlb2YgKGZuID0gaW5wdXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcbiIsInZhciBpZCA9IDA7XG52YXIgcG9zdGZpeCA9IE1hdGgucmFuZG9tKCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnICsgU3RyaW5nKGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXkpICsgJylfJyArICgrK2lkICsgcG9zdGZpeCkudG9TdHJpbmcoMzYpO1xufTtcbiIsIi8qIGVzbGludC1kaXNhYmxlIGVzL25vLXN5bWJvbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZyAqL1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE5BVElWRV9TWU1CT0xcbiAgJiYgIVN5bWJvbC5zaGFtXG4gICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gJ3N5bWJvbCc7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbCcpO1xudmFyIFVTRV9TWU1CT0xfQVNfVUlEID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkJyk7XG5cbnZhciBXZWxsS25vd25TeW1ib2xzU3RvcmUgPSBzaGFyZWQoJ3drcycpO1xudmFyIFN5bWJvbCA9IGdsb2JhbC5TeW1ib2w7XG52YXIgY3JlYXRlV2VsbEtub3duU3ltYm9sID0gVVNFX1NZTUJPTF9BU19VSUQgPyBTeW1ib2wgOiBTeW1ib2wgJiYgU3ltYm9sLndpdGhvdXRTZXR0ZXIgfHwgdWlkO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIGlmICghaGFzKFdlbGxLbm93blN5bWJvbHNTdG9yZSwgbmFtZSkgfHwgIShOQVRJVkVfU1lNQk9MIHx8IHR5cGVvZiBXZWxsS25vd25TeW1ib2xzU3RvcmVbbmFtZV0gPT0gJ3N0cmluZycpKSB7XG4gICAgaWYgKE5BVElWRV9TWU1CT0wgJiYgaGFzKFN5bWJvbCwgbmFtZSkpIHtcbiAgICAgIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXSA9IFN5bWJvbFtuYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdID0gY3JlYXRlV2VsbEtub3duU3ltYm9sKCdTeW1ib2wuJyArIG5hbWUpO1xuICAgIH1cbiAgfSByZXR1cm4gV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMnKTtcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUuZXhlY2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUuZXhlY1xuJCh7IHRhcmdldDogJ1JlZ0V4cCcsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IC8uLy5leGVjICE9PSBleGVjIH0sIHtcbiAgZXhlYzogZXhlY1xufSk7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIERPTUl0ZXJhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb20taXRlcmFibGVzJyk7XG52YXIgZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1mb3ItZWFjaCcpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcblxuZm9yICh2YXIgQ09MTEVDVElPTl9OQU1FIGluIERPTUl0ZXJhYmxlcykge1xuICB2YXIgQ29sbGVjdGlvbiA9IGdsb2JhbFtDT0xMRUNUSU9OX05BTUVdO1xuICB2YXIgQ29sbGVjdGlvblByb3RvdHlwZSA9IENvbGxlY3Rpb24gJiYgQ29sbGVjdGlvbi5wcm90b3R5cGU7XG4gIC8vIHNvbWUgQ2hyb21lIHZlcnNpb25zIGhhdmUgbm9uLWNvbmZpZ3VyYWJsZSBtZXRob2RzIG9uIERPTVRva2VuTGlzdFxuICBpZiAoQ29sbGVjdGlvblByb3RvdHlwZSAmJiBDb2xsZWN0aW9uUHJvdG90eXBlLmZvckVhY2ggIT09IGZvckVhY2gpIHRyeSB7XG4gICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KENvbGxlY3Rpb25Qcm90b3R5cGUsICdmb3JFYWNoJywgZm9yRWFjaCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgQ29sbGVjdGlvblByb3RvdHlwZS5mb3JFYWNoID0gZm9yRWFjaDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJldmVudCIsImNvbnNvbGUiLCJsb2ciLCJtbXQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJlIiwiYm9keSIsImNsYXNzTGlzdCIsInRvZ2dsZSIsImRvY1NwZWNEb3dubG9hZHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsInYiLCJpIiwicmUiLCJleHQiLCJleGVjIiwiYWRkIiwicGRvdHMiLCJjaGlsZHJlbiIsInBhcmVudE5vZGUiLCJ2diIsImlpIiwicmVtb3ZlIiwiUmV2ZWFsIiwiaW5pdGlhbGl6ZSIsImNvbnRyb2xzIiwicHJvZ3Jlc3MiLCJsb29wIiwiY2VudGVyIiwiaGFzaCIsInRyYW5zaXRpb24iLCJkaXNhYmxlTGF5b3V0Iiwid2lkdGgiLCJoZWlnaHQiLCJtYXJnaW4iLCJtaW5TY2FsZSIsIm1heFNjYWxlIl0sInNvdXJjZVJvb3QiOiIifQ==

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.