israeli-bank-scrapers 3.1.2 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,3 +3,4 @@ export declare class TimeoutError extends Error {
3
3
  export declare const SECOND = 1000;
4
4
  export declare function waitUntil(asyncTest: () => Promise<any>, description?: string, timeout?: number, interval?: number): Promise<any>;
5
5
  export declare function raceTimeout(ms: number, promise: Promise<any>): Promise<any>;
6
+ export declare function runSerial<T>(actions: (() => Promise<T>)[]): Promise<T[]>;
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.waitUntil = waitUntil;
11
11
  exports.raceTimeout = raceTimeout;
12
+ exports.runSerial = runSerial;
12
13
  exports.SECOND = exports.TimeoutError = void 0;
13
14
 
14
15
  class TimeoutError extends Error {}
@@ -52,4 +53,8 @@ function raceTimeout(ms, promise) {
52
53
  if (!(err instanceof TimeoutError)) throw err;
53
54
  });
54
55
  }
55
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dhaXRpbmcudHMiXSwibmFtZXMiOlsiVGltZW91dEVycm9yIiwiRXJyb3IiLCJTRUNPTkQiLCJ0aW1lb3V0UHJvbWlzZSIsIm1zIiwicHJvbWlzZSIsImRlc2NyaXB0aW9uIiwidGltZW91dCIsIlByb21pc2UiLCJfIiwicmVqZWN0IiwiaWQiLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiZXJyb3IiLCJyYWNlIiwid2FpdFVudGlsIiwiYXN5bmNUZXN0IiwiaW50ZXJ2YWwiLCJyZXNvbHZlIiwid2FpdCIsInRoZW4iLCJ2YWx1ZSIsImNhdGNoIiwicmFjZVRpbWVvdXQiLCJlcnIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDTyxNQUFNQSxZQUFOLFNBQTJCQyxLQUEzQixDQUFpQzs7O0FBSWpDLE1BQU1DLE1BQU0sR0FBRyxJQUFmOzs7QUFFUCxTQUFTQyxjQUFULENBQXdCQyxFQUF4QixFQUFvQ0MsT0FBcEMsRUFBMkRDLFdBQTNELEVBQWdGO0FBQzlFLFFBQU1DLE9BQU8sR0FBRyxJQUFJQyxPQUFKLENBQVksQ0FBQ0MsQ0FBRCxFQUFJQyxNQUFKLEtBQWU7QUFDekMsVUFBTUMsRUFBRSxHQUFHQyxVQUFVLENBQUMsTUFBTTtBQUMxQkMsTUFBQUEsWUFBWSxDQUFDRixFQUFELENBQVo7QUFDQSxZQUFNRyxLQUFLLEdBQUcsSUFBSWQsWUFBSixDQUFpQk0sV0FBakIsQ0FBZDtBQUNBSSxNQUFBQSxNQUFNLENBQUNJLEtBQUQsQ0FBTjtBQUNELEtBSm9CLEVBSWxCVixFQUprQixDQUFyQjtBQUtELEdBTmUsQ0FBaEI7QUFRQSxTQUFPSSxPQUFPLENBQUNPLElBQVIsQ0FBYSxDQUNsQlYsT0FEa0IsRUFFbEJFLE9BRmtCLENBQWIsQ0FBUDtBQUlEOztBQUVNLFNBQVNTLFNBQVQsQ0FBbUJDLFNBQW5CLEVBQWtEWCxXQUFXLEdBQUcsRUFBaEUsRUFBb0VDLE9BQU8sR0FBRyxLQUE5RSxFQUFxRlcsUUFBUSxHQUFHLEdBQWhHLEVBQXFHO0FBQzFHLFFBQU1iLE9BQU8sR0FBRyxJQUFJRyxPQUFKLENBQVksQ0FBQ1csT0FBRCxFQUFVVCxNQUFWLEtBQXFCO0FBQy9DLGFBQVNVLElBQVQsR0FBZ0I7QUFDZEgsTUFBQUEsU0FBUyxHQUFHSSxJQUFaLENBQWtCQyxLQUFELElBQVc7QUFDMUIsWUFBSUEsS0FBSyxLQUFLLElBQWQsRUFBb0I7QUFDbEJILFVBQUFBLE9BQU87QUFDUixTQUZELE1BRU87QUFDTFAsVUFBQUEsVUFBVSxDQUFDUSxJQUFELEVBQU9GLFFBQVAsQ0FBVjtBQUNEO0FBQ0YsT0FORCxFQU1HSyxLQU5ILENBTVMsTUFBTTtBQUNiYixRQUFBQSxNQUFNO0FBQ1AsT0FSRDtBQVNEOztBQUNEVSxJQUFBQSxJQUFJO0FBQ0wsR0FiZSxDQUFoQjtBQWNBLFNBQU9qQixjQUFjLENBQUNJLE9BQUQsRUFBVUYsT0FBVixFQUFtQkMsV0FBbkIsQ0FBckI7QUFDRDs7QUFFTSxTQUFTa0IsV0FBVCxDQUFxQnBCLEVBQXJCLEVBQWlDQyxPQUFqQyxFQUF3RDtBQUM3RCxTQUFPRixjQUFjLENBQUNDLEVBQUQsRUFBS0MsT0FBTCxFQUFjLFNBQWQsQ0FBZCxDQUF1Q2tCLEtBQXZDLENBQThDRSxHQUFELElBQVM7QUFDM0QsUUFBSSxFQUFFQSxHQUFHLFlBQVl6QixZQUFqQixDQUFKLEVBQW9DLE1BQU15QixHQUFOO0FBQ3JDLEdBRk0sQ0FBUDtBQUdEIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgY2xhc3MgVGltZW91dEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuXG59XG5cbmV4cG9ydCBjb25zdCBTRUNPTkQgPSAxMDAwO1xuXG5mdW5jdGlvbiB0aW1lb3V0UHJvbWlzZShtczogbnVtYmVyLCBwcm9taXNlOiBQcm9taXNlPGFueT4sIGRlc2NyaXB0aW9uOiBzdHJpbmcpIHtcbiAgY29uc3QgdGltZW91dCA9IG5ldyBQcm9taXNlKChfLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBpZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0KGlkKTtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IFRpbWVvdXRFcnJvcihkZXNjcmlwdGlvbik7XG4gICAgICByZWplY3QoZXJyb3IpO1xuICAgIH0sIG1zKTtcbiAgfSk7XG5cbiAgcmV0dXJuIFByb21pc2UucmFjZShbXG4gICAgcHJvbWlzZSxcbiAgICB0aW1lb3V0LFxuICBdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhaXRVbnRpbChhc3luY1Rlc3Q6ICgpID0+IFByb21pc2U8YW55PiwgZGVzY3JpcHRpb24gPSAnJywgdGltZW91dCA9IDEwMDAwLCBpbnRlcnZhbCA9IDEwMCkge1xuICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGZ1bmN0aW9uIHdhaXQoKSB7XG4gICAgICBhc3luY1Rlc3QoKS50aGVuKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0VGltZW91dCh3YWl0LCBpbnRlcnZhbCk7XG4gICAgICAgIH1cbiAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgcmVqZWN0KCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgd2FpdCgpO1xuICB9KTtcbiAgcmV0dXJuIHRpbWVvdXRQcm9taXNlKHRpbWVvdXQsIHByb21pc2UsIGRlc2NyaXB0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJhY2VUaW1lb3V0KG1zOiBudW1iZXIsIHByb21pc2U6IFByb21pc2U8YW55Pikge1xuICByZXR1cm4gdGltZW91dFByb21pc2UobXMsIHByb21pc2UsICd0aW1lb3V0JykuY2F0Y2goKGVycikgPT4ge1xuICAgIGlmICghKGVyciBpbnN0YW5jZW9mIFRpbWVvdXRFcnJvcikpIHRocm93IGVycjtcbiAgfSk7XG59XG4iXX0=
56
+
57
+ function runSerial(actions) {
58
+ return actions.reduce((m, a) => m.then(async x => [...x, await a()]), Promise.resolve(new Array()));
59
+ }
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL3dhaXRpbmcudHMiXSwibmFtZXMiOlsiVGltZW91dEVycm9yIiwiRXJyb3IiLCJTRUNPTkQiLCJ0aW1lb3V0UHJvbWlzZSIsIm1zIiwicHJvbWlzZSIsImRlc2NyaXB0aW9uIiwidGltZW91dCIsIlByb21pc2UiLCJfIiwicmVqZWN0IiwiaWQiLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiZXJyb3IiLCJyYWNlIiwid2FpdFVudGlsIiwiYXN5bmNUZXN0IiwiaW50ZXJ2YWwiLCJyZXNvbHZlIiwid2FpdCIsInRoZW4iLCJ2YWx1ZSIsImNhdGNoIiwicmFjZVRpbWVvdXQiLCJlcnIiLCJydW5TZXJpYWwiLCJhY3Rpb25zIiwicmVkdWNlIiwibSIsImEiLCJ4IiwiQXJyYXkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQ08sTUFBTUEsWUFBTixTQUEyQkMsS0FBM0IsQ0FBaUM7OztBQUlqQyxNQUFNQyxNQUFNLEdBQUcsSUFBZjs7O0FBRVAsU0FBU0MsY0FBVCxDQUF3QkMsRUFBeEIsRUFBb0NDLE9BQXBDLEVBQTJEQyxXQUEzRCxFQUFnRjtBQUM5RSxRQUFNQyxPQUFPLEdBQUcsSUFBSUMsT0FBSixDQUFZLENBQUNDLENBQUQsRUFBSUMsTUFBSixLQUFlO0FBQ3pDLFVBQU1DLEVBQUUsR0FBR0MsVUFBVSxDQUFDLE1BQU07QUFDMUJDLE1BQUFBLFlBQVksQ0FBQ0YsRUFBRCxDQUFaO0FBQ0EsWUFBTUcsS0FBSyxHQUFHLElBQUlkLFlBQUosQ0FBaUJNLFdBQWpCLENBQWQ7QUFDQUksTUFBQUEsTUFBTSxDQUFDSSxLQUFELENBQU47QUFDRCxLQUpvQixFQUlsQlYsRUFKa0IsQ0FBckI7QUFLRCxHQU5lLENBQWhCO0FBUUEsU0FBT0ksT0FBTyxDQUFDTyxJQUFSLENBQWEsQ0FDbEJWLE9BRGtCLEVBRWxCRSxPQUZrQixDQUFiLENBQVA7QUFJRDs7QUFFTSxTQUFTUyxTQUFULENBQW1CQyxTQUFuQixFQUFrRFgsV0FBVyxHQUFHLEVBQWhFLEVBQW9FQyxPQUFPLEdBQUcsS0FBOUUsRUFBcUZXLFFBQVEsR0FBRyxHQUFoRyxFQUFxRztBQUMxRyxRQUFNYixPQUFPLEdBQUcsSUFBSUcsT0FBSixDQUFZLENBQUNXLE9BQUQsRUFBVVQsTUFBVixLQUFxQjtBQUMvQyxhQUFTVSxJQUFULEdBQWdCO0FBQ2RILE1BQUFBLFNBQVMsR0FBR0ksSUFBWixDQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFlBQUlBLEtBQUssS0FBSyxJQUFkLEVBQW9CO0FBQ2xCSCxVQUFBQSxPQUFPO0FBQ1IsU0FGRCxNQUVPO0FBQ0xQLFVBQUFBLFVBQVUsQ0FBQ1EsSUFBRCxFQUFPRixRQUFQLENBQVY7QUFDRDtBQUNGLE9BTkQsRUFNR0ssS0FOSCxDQU1TLE1BQU07QUFDYmIsUUFBQUEsTUFBTTtBQUNQLE9BUkQ7QUFTRDs7QUFDRFUsSUFBQUEsSUFBSTtBQUNMLEdBYmUsQ0FBaEI7QUFjQSxTQUFPakIsY0FBYyxDQUFDSSxPQUFELEVBQVVGLE9BQVYsRUFBbUJDLFdBQW5CLENBQXJCO0FBQ0Q7O0FBRU0sU0FBU2tCLFdBQVQsQ0FBcUJwQixFQUFyQixFQUFpQ0MsT0FBakMsRUFBd0Q7QUFDN0QsU0FBT0YsY0FBYyxDQUFDQyxFQUFELEVBQUtDLE9BQUwsRUFBYyxTQUFkLENBQWQsQ0FBdUNrQixLQUF2QyxDQUE4Q0UsR0FBRCxJQUFTO0FBQzNELFFBQUksRUFBRUEsR0FBRyxZQUFZekIsWUFBakIsQ0FBSixFQUFvQyxNQUFNeUIsR0FBTjtBQUNyQyxHQUZNLENBQVA7QUFHRDs7QUFFTSxTQUFTQyxTQUFULENBQXNCQyxPQUF0QixFQUFtRTtBQUN4RSxTQUFPQSxPQUFPLENBQUNDLE1BQVIsQ0FBZSxDQUFDQyxDQUFELEVBQUlDLENBQUosS0FBVUQsQ0FBQyxDQUFDUixJQUFGLENBQU8sTUFBT1UsQ0FBUCxJQUFhLENBQUMsR0FBR0EsQ0FBSixFQUFPLE1BQU1ELENBQUMsRUFBZCxDQUFwQixDQUF6QixFQUFpRXRCLE9BQU8sQ0FBQ1csT0FBUixDQUFxQixJQUFJYSxLQUFKLEVBQXJCLENBQWpFLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGNsYXNzIFRpbWVvdXRFcnJvciBleHRlbmRzIEVycm9yIHtcblxufVxuXG5leHBvcnQgY29uc3QgU0VDT05EID0gMTAwMDtcblxuZnVuY3Rpb24gdGltZW91dFByb21pc2UobXM6IG51bWJlciwgcHJvbWlzZTogUHJvbWlzZTxhbnk+LCBkZXNjcmlwdGlvbjogc3RyaW5nKSB7XG4gIGNvbnN0IHRpbWVvdXQgPSBuZXcgUHJvbWlzZSgoXywgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dChpZCk7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBUaW1lb3V0RXJyb3IoZGVzY3JpcHRpb24pO1xuICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICB9LCBtcyk7XG4gIH0pO1xuXG4gIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgIHByb21pc2UsXG4gICAgdGltZW91dCxcbiAgXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YWl0VW50aWwoYXN5bmNUZXN0OiAoKSA9PiBQcm9taXNlPGFueT4sIGRlc2NyaXB0aW9uID0gJycsIHRpbWVvdXQgPSAxMDAwMCwgaW50ZXJ2YWwgPSAxMDApIHtcbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBmdW5jdGlvbiB3YWl0KCkge1xuICAgICAgYXN5bmNUZXN0KCkudGhlbigodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldFRpbWVvdXQod2FpdCwgaW50ZXJ2YWwpO1xuICAgICAgICB9XG4gICAgICB9KS5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHJlamVjdCgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHdhaXQoKTtcbiAgfSk7XG4gIHJldHVybiB0aW1lb3V0UHJvbWlzZSh0aW1lb3V0LCBwcm9taXNlLCBkZXNjcmlwdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByYWNlVGltZW91dChtczogbnVtYmVyLCBwcm9taXNlOiBQcm9taXNlPGFueT4pIHtcbiAgcmV0dXJuIHRpbWVvdXRQcm9taXNlKG1zLCBwcm9taXNlLCAndGltZW91dCcpLmNhdGNoKChlcnIpID0+IHtcbiAgICBpZiAoIShlcnIgaW5zdGFuY2VvZiBUaW1lb3V0RXJyb3IpKSB0aHJvdyBlcnI7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuU2VyaWFsPFQ+KGFjdGlvbnM6ICgoKSA9PiBQcm9taXNlPFQ+KVtdKTogUHJvbWlzZTxUW10+IHtcbiAgcmV0dXJuIGFjdGlvbnMucmVkdWNlKChtLCBhKSA9PiBtLnRoZW4oYXN5bmMgKHgpID0+IFsuLi54LCBhd2FpdCBhKCldKSwgUHJvbWlzZS5yZXNvbHZlPFRbXT4obmV3IEFycmF5PFQ+KCkpKTtcbn1cbiJdfQ==
@@ -4,6 +4,8 @@ require("core-js/modules/es.array.iterator");
4
4
 
5
5
  require("core-js/modules/es.promise");
6
6
 
7
+ require("core-js/modules/es.string.trim");
8
+
7
9
  Object.defineProperty(exports, "__esModule", {
8
10
  value: true
9
11
  });
@@ -31,6 +33,8 @@ var _baseScraper = require("./base-scraper");
31
33
 
32
34
  var _debug = require("../helpers/debug");
33
35
 
36
+ var _waiting = require("../helpers/waiting");
37
+
34
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
39
 
36
40
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
@@ -158,6 +162,8 @@ async function fetchTransactions(page, options, startMoment, monthMoment) {
158
162
  const txnGroups = _lodash.default.get(dataResult, `CardsTransactionsListBean.Index${account.index}.CurrentCardTransactions`);
159
163
 
160
164
  if (txnGroups) {
165
+ var _options$outputData$e, _options$outputData;
166
+
161
167
  let allTxns = [];
162
168
  txnGroups.forEach(txnGroup => {
163
169
  if (txnGroup.txnIsrael) {
@@ -175,7 +181,10 @@ async function fetchTransactions(page, options, startMoment, monthMoment) {
175
181
  allTxns = (0, _transactions.fixInstallments)(allTxns);
176
182
  }
177
183
 
178
- allTxns = (0, _transactions.filterOldTransactions)(allTxns, startMoment, options.combineInstallments || false);
184
+ if ((_options$outputData$e = (_options$outputData = options.outputData) === null || _options$outputData === void 0 ? void 0 : _options$outputData.enableTransactionsFilterByDate) !== null && _options$outputData$e !== void 0 ? _options$outputData$e : true) {
185
+ allTxns = (0, _transactions.filterOldTransactions)(allTxns, startMoment, options.combineInstallments || false);
186
+ }
187
+
179
188
  accountTxns[account.accountNumber] = {
180
189
  accountNumber: account.accountNumber,
181
190
  index: account.index,
@@ -189,6 +198,49 @@ async function fetchTransactions(page, options, startMoment, monthMoment) {
189
198
  return {};
190
199
  }
191
200
 
201
+ function getTransactionExtraDetails(servicesUrl, month, accountIndex, transaction) {
202
+ const moedChiuv = month.format('MMYYYY');
203
+ return (0, _buildUrl.default)(servicesUrl, {
204
+ queryParams: {
205
+ reqName: 'PirteyIska_204',
206
+ CardIndex: accountIndex.toString(),
207
+ shovarRatz: transaction.identifier.toString(),
208
+ moedChiuv
209
+ }
210
+ });
211
+ }
212
+
213
+ async function getExtraScrapTransaction(page, options, month, accountIndex, transaction) {
214
+ const dataUrl = getTransactionExtraDetails(options.servicesUrl, month, accountIndex, transaction);
215
+ const data = await (0, _fetch.fetchGetWithinPage)(page, dataUrl);
216
+
217
+ const rawCategory = _lodash.default.get(data, 'PirteyIska_204Bean.sector');
218
+
219
+ return _objectSpread({}, transaction, {
220
+ category: rawCategory.trim()
221
+ });
222
+ }
223
+
224
+ function getExtraScrapTransactions(accountWithIndex, page, options, month) {
225
+ const promises = accountWithIndex.txns.map(t => getExtraScrapTransaction(page, options, month, accountWithIndex.index, t));
226
+ return Promise.all(promises);
227
+ }
228
+
229
+ async function getExtraScrapAccount(page, options, accountMap, month) {
230
+ const promises = Object.keys(accountMap).map(async a => _objectSpread({}, accountMap[a], {
231
+ txns: await getExtraScrapTransactions(accountMap[a], page, options, month)
232
+ }));
233
+ const accounts = await Promise.all(promises);
234
+ return accounts.reduce((m, x) => _objectSpread({}, m, {
235
+ [x.accountNumber]: x
236
+ }), {});
237
+ }
238
+
239
+ function getExtraScrap(accountsWithIndex, page, options, allMonths) {
240
+ const actions = accountsWithIndex.map((a, i) => () => getExtraScrapAccount(page, options, a, allMonths[i]));
241
+ return (0, _waiting.runSerial)(actions);
242
+ }
243
+
192
244
  async function fetchAllTransactions(page, options, startMoment) {
193
245
  var _options$futureMonths;
194
246
 
@@ -197,8 +249,9 @@ async function fetchAllTransactions(page, options, startMoment) {
197
249
  const results = await Promise.all(allMonths.map(async monthMoment => {
198
250
  return fetchTransactions(page, options, startMoment, monthMoment);
199
251
  }));
252
+ const finalResult = options.additionalTransactionInformation ? await getExtraScrap(results, page, options, allMonths) : results;
200
253
  const combinedTxns = {};
201
- results.forEach(result => {
254
+ finalResult.forEach(result => {
202
255
  Object.keys(result).forEach(accountNumber => {
203
256
  let txnsForAccount = combinedTxns[accountNumber];
204
257
 
@@ -338,4 +391,4 @@ class IsracardAmexBaseScraper extends _baseScraperWithBrowser.BaseScraperWithBro
338
391
 
339
392
  var _default = IsracardAmexBaseScraper;
340
393
  exports.default = _default;
341
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLWlzcmFjYXJkLWFtZXgudHMiXSwibmFtZXMiOlsiQ09VTlRSWV9DT0RFIiwiSURfVFlQRSIsIklOU1RBTExNRU5UU19LRVlXT1JEIiwiREFURV9GT1JNQVQiLCJkZWJ1ZyIsImdldEFjY291bnRzVXJsIiwic2VydmljZXNVcmwiLCJtb250aE1vbWVudCIsImJpbGxpbmdEYXRlIiwiZm9ybWF0IiwicXVlcnlQYXJhbXMiLCJyZXFOYW1lIiwiYWN0aW9uQ29kZSIsImZldGNoQWNjb3VudHMiLCJwYWdlIiwiZGF0YVVybCIsImRhdGFSZXN1bHQiLCJfIiwiZ2V0IiwiRGFzaGJvYXJkTW9udGhCZWFuIiwiY2FyZHNDaGFyZ2VzIiwibWFwIiwiY2FyZENoYXJnZSIsImluZGV4IiwicGFyc2VJbnQiLCJjYXJkSW5kZXgiLCJhY2NvdW50TnVtYmVyIiwiY2FyZE51bWJlciIsInByb2Nlc3NlZERhdGUiLCJ0b0lTT1N0cmluZyIsImdldFRyYW5zYWN0aW9uc1VybCIsIm1vbnRoIiwieWVhciIsIm1vbnRoU3RyIiwidG9TdHJpbmciLCJyZXF1aXJlZERhdGUiLCJjb252ZXJ0Q3VycmVuY3kiLCJjdXJyZW5jeVN0ciIsIlNIRUtFTF9DVVJSRU5DWV9LRVlXT1JEIiwiQUxUX1NIRUtFTF9DVVJSRU5DWSIsIlNIRUtFTF9DVVJSRU5DWSIsImdldEluc3RhbGxtZW50c0luZm8iLCJ0eG4iLCJtb3JlSW5mbyIsImluY2x1ZGVzIiwidW5kZWZpbmVkIiwibWF0Y2hlcyIsIm1hdGNoIiwibGVuZ3RoIiwibnVtYmVyIiwidG90YWwiLCJnZXRUcmFuc2FjdGlvblR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiSW5zdGFsbG1lbnRzIiwiTm9ybWFsIiwiY29udmVydFRyYW5zYWN0aW9ucyIsInR4bnMiLCJmaWx0ZXJlZFR4bnMiLCJmaWx0ZXIiLCJkZWFsU3VtVHlwZSIsInZvdWNoZXJOdW1iZXJSYXR6Iiwidm91Y2hlck51bWJlclJhdHpPdXRib3VuZCIsImlzT3V0Ym91bmQiLCJkZWFsU3VtT3V0Ym91bmQiLCJ0eG5EYXRlU3RyIiwiZnVsbFB1cmNoYXNlRGF0ZU91dGJvdW5kIiwiZnVsbFB1cmNoYXNlRGF0ZSIsInR4bk1vbWVudCIsImN1cnJlbnRQcm9jZXNzZWREYXRlIiwiZnVsbFBheW1lbnREYXRlIiwicmVzdWx0IiwidHlwZSIsImlkZW50aWZpZXIiLCJkYXRlIiwib3JpZ2luYWxBbW91bnQiLCJkZWFsU3VtIiwib3JpZ2luYWxDdXJyZW5jeSIsImN1cnJlbmN5SWQiLCJjaGFyZ2VkQW1vdW50IiwicGF5bWVudFN1bU91dGJvdW5kIiwicGF5bWVudFN1bSIsImRlc2NyaXB0aW9uIiwiZnVsbFN1cHBsaWVyTmFtZU91dGJvdW5kIiwiZnVsbFN1cHBsaWVyTmFtZUhlYiIsIm1lbW8iLCJpbnN0YWxsbWVudHMiLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiQ29tcGxldGVkIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJvcHRpb25zIiwic3RhcnRNb21lbnQiLCJhY2NvdW50cyIsIkNhcmRzVHJhbnNhY3Rpb25zTGlzdEJlYW4iLCJhY2NvdW50VHhucyIsImZvckVhY2giLCJhY2NvdW50IiwidHhuR3JvdXBzIiwiYWxsVHhucyIsInR4bkdyb3VwIiwidHhuSXNyYWVsIiwicHVzaCIsInR4bkFicm9hZCIsImNvbWJpbmVJbnN0YWxsbWVudHMiLCJmZXRjaEFsbFRyYW5zYWN0aW9ucyIsImZ1dHVyZU1vbnRoc1RvU2NyYXBlIiwiYWxsTW9udGhzIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJjb21iaW5lZFR4bnMiLCJPYmplY3QiLCJrZXlzIiwidHhuc0ZvckFjY291bnQiLCJ0b0JlQWRkZWRUeG5zIiwic3VjY2VzcyIsIklzcmFjYXJkQW1leEJhc2VTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImNvbnN0cnVjdG9yIiwiYmFzZVVybCIsImNvbXBhbnlDb2RlIiwibG9naW4iLCJjcmVkZW50aWFscyIsInNldFJlcXVlc3RJbnRlcmNlcHRpb24iLCJvbiIsInJlcXVlc3QiLCJ1cmwiLCJhYm9ydCIsImNvbnRpbnVlIiwibmF2aWdhdGVUbyIsImVtaXRQcm9ncmVzcyIsIlNjYXBlclByb2dyZXNzVHlwZXMiLCJMb2dnaW5nSW4iLCJ2YWxpZGF0ZVVybCIsInZhbGlkYXRlUmVxdWVzdCIsImlkIiwiY2FyZFN1ZmZpeCIsImNhcmQ2RGlnaXRzIiwiY291bnRyeUNvZGUiLCJpZFR5cGUiLCJjaGVja0xldmVsIiwidmFsaWRhdGVSZXN1bHQiLCJIZWFkZXIiLCJTdGF0dXMiLCJWYWxpZGF0ZUlkRGF0YUJlYW4iLCJFcnJvciIsInZhbGlkYXRlUmV0dXJuQ29kZSIsInJldHVybkNvZGUiLCJ1c2VyTmFtZSIsImxvZ2luVXJsIiwiS29kTWlzaHRhbWVzaCIsIk1pc3BhclppaHV5IiwiU2lzbWEiLCJwYXNzd29yZCIsImxvZ2luUmVzdWx0IiwiTG9naW5TdWNjZXNzIiwiQ2hhbmdlUGFzc3dvcmQiLCJlcnJvclR5cGUiLCJTY3JhcGVyRXJyb3JUeXBlcyIsIkxvZ2luRmFpbGVkIiwiSW52YWxpZFBhc3N3b3JkIiwiZmV0Y2hEYXRhIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJzdGFydERhdGUiLCJ0b0RhdGUiLCJtb21lbnQiLCJtYXgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBSUE7O0FBS0E7Ozs7Ozs7Ozs7QUFFQSxNQUFNQSxZQUFZLEdBQUcsS0FBckI7QUFDQSxNQUFNQyxPQUFPLEdBQUcsR0FBaEI7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRyxPQUE3QjtBQUVBLE1BQU1DLFdBQVcsR0FBRyxZQUFwQjtBQUVBLE1BQU1DLEtBQUssR0FBRyxxQkFBUyxvQkFBVCxDQUFkOztBQXNFQSxTQUFTQyxjQUFULENBQXdCQyxXQUF4QixFQUE2Q0MsV0FBN0MsRUFBa0U7QUFDaEUsUUFBTUMsV0FBVyxHQUFH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a0JDLGlDQUFvQjRCLFdBQXRDO0FBQ0EsYUFBTztBQUNMNUMsUUFBQUEsT0FBTyxFQUFFLEtBREo7QUFFTDBDLFFBQUFBLFNBQVMsRUFBRUMsK0JBQWtCRTtBQUZ4QixPQUFQO0FBSUQ7O0FBRUQsUUFBSWQsa0JBQWtCLEtBQUssR0FBM0IsRUFBZ0M7QUFDOUIsV0FBS2hCLFlBQUwsQ0FBa0JDLGlDQUFvQnlCLGNBQXRDO0FBQ0EsYUFBTztBQUNMekMsUUFBQUEsT0FBTyxFQUFFLEtBREo7QUFFTDBDLFFBQUFBLFNBQVMsRUFBRUMsK0JBQWtCRjtBQUZ4QixPQUFQO0FBSUQ7O0FBRUQsU0FBSzFCLFlBQUwsQ0FBa0JDLGlDQUFvQjRCLFdBQXRDO0FBQ0EsV0FBTztBQUNMNUMsTUFBQUEsT0FBTyxFQUFFLEtBREo7QUFFTDBDLE1BQUFBLFNBQVMsRUFBRUMsK0JBQWtCRTtBQUZ4QixLQUFQO0FBSUQ7O0FBRUQsUUFBTUMsU0FBTixHQUFrQjtBQUNoQixVQUFNQyxrQkFBa0IsR0FBRyx1QkFBU0MsUUFBVCxDQUFrQixDQUFsQixFQUFxQixPQUFyQixDQUEzQjtBQUNBLFVBQU1DLFNBQVMsR0FBRyxLQUFLMUUsT0FBTCxDQUFhMEUsU0FBYixJQUEwQkYsa0JBQWtCLENBQUNHLE1BQW5CLEVBQTVDOztBQUNBLFVBQU0xRSxXQUFXLEdBQUcyRSxnQkFBT0MsR0FBUCxDQUFXTCxrQkFBWCxFQUErQixxQkFBT0UsU0FBUCxDQUEvQixDQUFwQjs7QUFFQSxXQUFPNUQsb0JBQW9CLENBQUMsS0FBSzFGLElBQU4sb0JBQ3RCLEtBQUs0RSxPQURpQjtBQUV6QnBGLE1BQUFBLFdBQVcsRUFBRSxLQUFLQSxXQUZPO0FBR3pCa0gsTUFBQUEsV0FBVyxFQUFFLEtBQUtBO0FBSE8sUUFJeEI3QixXQUp3QixDQUEzQjtBQUtEOztBQTNHMEQ7O2VBOEc5Q3lCLHVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBidWlsZFVybCBmcm9tICdidWlsZC11cmwnO1xuaW1wb3J0IG1vbWVudCwgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuXG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgZmV0Y2hHZXRXaXRoaW5QYWdlLCBmZXRjaFBvc3RXaXRoaW5QYWdlIH0gZnJvbSAnLi4vaGVscGVycy9mZXRjaCc7XG5pbXBvcnQge1xuICBTSEVLRUxfQ1VSUkVOQ1lfS0VZV09SRCxcbiAgU0hFS0VMX0NVUlJFTkNZLFxuICBBTFRfU0hFS0VMX0NVUlJFTkNZLFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IGdldEFsbE1vbnRoTW9tZW50cyBmcm9tICcuLi9oZWxwZXJzL2RhdGVzJztcbmltcG9ydCB7IGZpeEluc3RhbGxtZW50cywgZmlsdGVyT2xkVHJhbnNhY3Rpb25zIH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb25zQWNjb3VudCwgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzLFxuICBUcmFuc2FjdGlvblN0YXR1c2VzLCBUcmFuc2FjdGlvblR5cGVzLFxufSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHtcbiAgU2NyYXBlckVycm9yVHlwZXMsXG4gIFNjcmFwZXJPcHRpb25zLCBTY2FwZXJTY3JhcGluZ1Jlc3VsdCwgU2NhcGVyUHJvZ3Jlc3NUeXBlcyxcbiAgU2NyYXBlckNyZWRlbnRpYWxzLFxufSBmcm9tICcuL2Jhc2Utc2NyYXBlcic7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuXG5jb25zdCBDT1VOVFJZX0NPREUgPSAnMjEyJztcbmNvbnN0IElEX1RZUEUgPSAnMSc7XG5jb25zdCBJTlNUQUxMTUVOVFNfS0VZV09SRCA9ICfXqtep15zXldedJztcblxuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVlZWSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ2Jhc2UtaXNyYWNhcmQtYW1leCcpO1xuXG5pbnRlcmZhY2UgRXh0ZW5kZWRTY3JhcGVyT3B0aW9ucyBleHRlbmRzIFNjcmFwZXJPcHRpb25zIHtcbiAgc2VydmljZXNVcmw6IHN0cmluZztcbiAgY29tcGFueUNvZGU6IHN0cmluZztcbn1cblxudHlwZSBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXggPSBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbnNBY2NvdW50ICYgeyBpbmRleDogbnVtYmVyIH0+O1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgZGVhbFN1bVR5cGU6IHN0cmluZztcbiAgdm91Y2hlck51bWJlclJhdHpPdXRib3VuZDogc3RyaW5nO1xuICB2b3VjaGVyTnVtYmVyUmF0ejogc3RyaW5nO1xuICBtb3JlSW5mbz86IHN0cmluZztcbiAgZGVhbFN1bU91dGJvdW5kOiBib29sZWFuO1xuICBjdXJyZW5jeUlkOiBzdHJpbmc7XG4gIGRlYWxTdW06IG51bWJlcjtcbiAgZnVsbFBheW1lbnREYXRlPzogc3RyaW5nO1xuICBmdWxsUHVyY2hhc2VEYXRlPzogc3RyaW5nO1xuICBmdWxsUHVyY2hhc2VEYXRlT3V0Ym91bmQ/OiBzdHJpbmc7XG4gIGZ1bGxTdXBwbGllck5hbWVIZWI6IHN0cmluZztcbiAgZnVsbFN1cHBsaWVyTmFtZU91dGJvdW5kOiBzdHJpbmc7XG4gIHBheW1lbnRTdW06IG51bWJlcjtcbiAgcGF5bWVudFN1bU91dGJvdW5kOiBudW1iZXI7XG59XG5cblxuaW50ZXJmYWNlIFNjcmFwZWRBY2NvdW50IHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgYWNjb3VudE51bWJlcjogc3RyaW5nO1xuICBwcm9jZXNzZWREYXRlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBTY3JhcGVkTG9naW5WYWxpZGF0aW9uIHtcbiAgSGVhZGVyOiB7XG4gICAgU3RhdHVzOiBzdHJpbmc7XG4gIH07XG4gIFZhbGlkYXRlSWREYXRhQmVhbj86IHtcbiAgICB1c2VyTmFtZT86IHN0cmluZztcbiAgICByZXR1cm5Db2RlOiBzdHJpbmc7XG4gIH07XG59XG5cbmludGVyZmFjZSBTY3JhcGVkQWNjb3VudHNXaXRoaW5QYWdlUmVzcG9uc2Uge1xuICBIZWFkZXI6IHtcbiAgICBTdGF0dXM6IHN0cmluZztcbiAgfTtcbiAgRGFzaGJvYXJkTW9udGhCZWFuPzoge1xuICAgIGNhcmRzQ2hhcmdlczoge1xuICAgICAgY2FyZEluZGV4OiBzdHJpbmc7XG4gICAgICBjYXJkTnVtYmVyOiBzdHJpbmc7XG4gICAgICBiaWxsaW5nRGF0ZTogc3RyaW5nO1xuICAgIH1bXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRDdXJyZW50Q2FyZFRyYW5zYWN0aW9ucyB7XG4gIHR4bklzcmFlbD86IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICB0eG5BYnJvYWQ/OiBTY3JhcGVkVHJhbnNhY3Rpb25bXTtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbkRhdGEge1xuICBIZWFkZXI/OiB7XG4gICAgU3RhdHVzOiBzdHJpbmc7XG4gIH07XG4gIENhcmRzVHJhbnNhY3Rpb25zTGlzdEJlYW4/OiBSZWNvcmQ8c3RyaW5nLCB7XG4gICAgQ3VycmVudENhcmRUcmFuc2FjdGlvbnM6IFNjcmFwZWRDdXJyZW50Q2FyZFRyYW5zYWN0aW9uc1tdO1xuICB9Pjtcbn1cblxuZnVuY3Rpb24gZ2V0QWNjb3VudHNVcmwoc2VydmljZXNVcmw6IHN0cmluZywgbW9udGhNb21lbnQ6IE1vbWVudCkge1xuICBjb25zdCBiaWxsaW5nRGF0ZSA9IG1vbnRoTW9tZW50LmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICByZXR1cm4gYnVpbGRVcmwoc2VydmljZXNVcmwsIHtcbiAgICBxdWVyeVBhcmFtczoge1xuICAgICAgcmVxTmFtZTogJ0Rhc2hib2FyZE1vbnRoJyxcbiAgICAgIGFjdGlvbkNvZGU6ICcwJyxcbiAgICAgIGJpbGxpbmdEYXRlLFxuICAgICAgZm9ybWF0OiAnSnNvbicsXG4gICAgfSxcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWNjb3VudHMocGFnZTogUGFnZSwgc2VydmljZXNVcmw6IHN0cmluZywgbW9udGhNb21lbnQ6IE1vbWVudCk6IFByb21pc2U8U2NyYXBlZEFjY291bnRbXT4ge1xuICBjb25zdCBkYXRhVXJsID0gZ2V0QWNjb3VudHNVcmwoc2VydmljZXNVcmwsIG1vbnRoTW9tZW50KTtcbiAgY29uc3QgZGF0YVJlc3VsdCA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkQWNjb3VudHNXaXRoaW5QYWdlUmVzcG9uc2U+KHBhZ2UsIGRhdGFVcmwpO1xuICBpZiAoZGF0YVJlc3VsdCAmJiBfLmdldChkYXRhUmVzdWx0LCAnSGVhZGVyLlN0YXR1cycpID09PSAnMScgJiYgZGF0YVJlc3VsdC5EYXNoYm9hcmRNb250aEJlYW4pIHtcbiAgICBjb25zdCB7IGNhcmRzQ2hhcmdlcyB9ID0gZGF0YVJlc3VsdC5EYXNoYm9hcmRNb250aEJlYW47XG4gICAgaWYgKGNhcmRzQ2hhcmdlcykge1xuICAgICAgcmV0dXJuIGNhcmRzQ2hhcmdlcy5tYXAoKGNhcmRDaGFyZ2UpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbmRleDogcGFyc2VJbnQoY2FyZENoYXJnZS5jYXJkSW5kZXgsIDEwKSxcbiAgICAgICAgICBhY2NvdW50TnVtYmVyOiBjYXJkQ2hhcmdlLmNhcmROdW1iZXIsXG4gICAgICAgICAgcHJvY2Vzc2VkRGF0ZTogbW9tZW50KGNhcmRDaGFyZ2UuYmlsbGluZ0RhdGUsIERBVEVfRk9STUFUKS50b0lTT1N0cmluZygpLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbXTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25zVXJsKHNlcnZpY2VzVXJsOiBzdHJpbmcsIG1vbnRoTW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgbW9udGggPSBtb250aE1vbWVudC5tb250aCgpICsgMTtcbiAgY29uc3QgeWVhciA9IG1vbnRoTW9tZW50LnllYXIoKTtcbiAgY29uc3QgbW9udGhTdHIgPSBtb250aCA8IDEwID8gYDAke21vbnRofWAgOiBtb250aC50b1N0cmluZygpO1xuICByZXR1cm4gYnVpbGRVcmwoc2VydmljZXNVcmwsIHtcbiAgICBxdWVyeVBhcmFtczoge1xuICAgICAgcmVxTmFtZTogJ0NhcmRzVHJhbnNhY3Rpb25zTGlzdCcsXG4gICAgICBtb250aDogbW9udGhTdHIsXG4gICAgICB5ZWFyOiBgJHt5ZWFyfWAsXG4gICAgICByZXF1aXJlZERhdGU6ICdOJyxcbiAgICB9LFxuICB9KTtcbn1cblxuZnVuY3Rpb24gY29udmVydEN1cnJlbmN5KGN1cnJlbmN5U3RyOiBzdHJpbmcpIHtcbiAgaWYgKGN1cnJlbmN5U3RyID09PSBTSEVLRUxfQ1VSUkVOQ1lfS0VZV09SRCB8fCBjdXJyZW5jeVN0ciA9PT0gQUxUX1NIRUtFTF9DVVJSRU5DWSkge1xuICAgIHJldHVybiBTSEVLRUxfQ1VSUkVOQ1k7XG4gIH1cbiAgcmV0dXJuIGN1cnJlbmN5U3RyO1xufVxuXG5mdW5jdGlvbiBnZXRJbnN0YWxsbWVudHNJbmZvKHR4bjogU2NyYXBlZFRyYW5zYWN0aW9uKTogVHJhbnNhY3Rpb25JbnN0YWxsbWVudHMgfCB1bmRlZmluZWQge1xuICBpZiAoIXR4bi5tb3JlSW5mbyB8fCAhdHhuLm1vcmVJbmZvLmluY2x1ZGVzKElOU1RBTExNRU5UU19LRVlXT1JEKSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgbWF0Y2hlcyA9IHR4bi5tb3JlSW5mby5tYXRjaCgvXFxkKy9nKTtcbiAgaWYgKCFtYXRjaGVzIHx8IG1hdGNoZXMubGVuZ3RoIDwgMikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG51bWJlcjogcGFyc2VJbnQobWF0Y2hlc1swXSwgMTApLFxuICAgIHRvdGFsOiBwYXJzZUludChtYXRjaGVzWzFdLCAxMCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uVHlwZSh0eG46IFNjcmFwZWRUcmFuc2FjdGlvbikge1xuICByZXR1cm4gZ2V0SW5zdGFsbG1lbnRzSW5mbyh0eG4pID8gVHJhbnNhY3Rpb25UeXBlcy5JbnN0YWxsbWVudHMgOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbDtcbn1cblxuZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9ucyh0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSwgcHJvY2Vzc2VkRGF0ZTogc3RyaW5nKTogVHJhbnNhY3Rpb25bXSB7XG4gIGNvbnN0IGZpbHRlcmVkVHhucyA9IHR4bnMuZmlsdGVyKCh0eG4pID0+IHR4bi5kZWFsU3VtVHlwZSAhPT0gJzEnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR4bi52b3VjaGVyTnVtYmVyUmF0eiAhPT0gJzAwMDAwMDAwMCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHhuLnZvdWNoZXJOdW1iZXJSYXR6T3V0Ym91bmQgIT09ICcwMDAwMDAwMDAnKTtcblxuICByZXR1cm4gZmlsdGVyZWRUeG5zLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgaXNPdXRib3VuZCA9IHR4bi5kZWFsU3VtT3V0Ym91bmQ7XG4gICAgY29uc3QgdHhuRGF0ZVN0ciA9IGlzT3V0Ym91bmQgPyB0eG4uZnVsbFB1cmNoYXNlRGF0ZU91dGJvdW5kIDogdHhuLmZ1bGxQdXJjaGFzZURhdGU7XG4gICAgY29uc3QgdHhuTW9tZW50ID0gbW9tZW50KHR4bkRhdGVTdHIsIERBVEVfRk9STUFUKTtcblxuICAgIGNvbnN0IGN1cnJlbnRQcm9jZXNzZWREYXRlID0gdHhuLmZ1bGxQYXltZW50RGF0ZSA/XG4gICAgICBtb21lbnQodHhuLmZ1bGxQYXltZW50RGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKCkgOlxuICAgICAgcHJvY2Vzc2VkRGF0ZTtcbiAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uID0ge1xuICAgICAgdHlwZTogZ2V0VHJhbnNhY3Rpb25UeXBlKHR4biksXG4gICAgICBpZGVudGlmaWVyOiBwYXJzZUludChpc091dGJvdW5kID8gdHhuLnZvdWNoZXJOdW1iZXJSYXR6T3V0Ym91bmQgOiB0eG4udm91Y2hlck51bWJlclJhdHosIDEwKSxcbiAgICAgIGRhdGU6IHR4bk1vbWVudC50b0lTT1N0cmluZygpLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogY3VycmVudFByb2Nlc3NlZERhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogaXNPdXRib3VuZCA/IC10eG4uZGVhbFN1bU91dGJvdW5kIDogLXR4bi5kZWFsU3VtLFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogY29udmVydEN1cnJlbmN5KHR4bi5jdXJyZW5jeUlkKSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGlzT3V0Ym91bmQgPyAtdHhuLnBheW1lbnRTdW1PdXRib3VuZCA6IC10eG4ucGF5bWVudFN1bSxcbiAgICAgIGRlc2NyaXB0aW9uOiBpc091dGJvdW5kID8gdHhuLmZ1bGxTdXBwbGllck5hbWVPdXRib3VuZCA6IHR4bi5mdWxsU3VwcGxpZXJOYW1lSGViLFxuICAgICAgbWVtbzogdHhuLm1vcmVJbmZvIHx8ICcnLFxuICAgICAgaW5zdGFsbG1lbnRzOiBnZXRJbnN0YWxsbWVudHNJbmZvKHR4bikgfHwgdW5kZWZpbmVkLFxuICAgICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIHN0YXJ0TW9tZW50OiBNb21lbnQsIG1vbnRoTW9tZW50OiBNb21lbnQpOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleD4ge1xuICBjb25zdCBhY2NvdW50cyA9IGF3YWl0IGZldGNoQWNjb3VudHMocGFnZSwgb3B0aW9ucy5zZXJ2aWNlc1VybCwgbW9udGhNb21lbnQpO1xuICBjb25zdCBkYXRhVXJsID0gZ2V0VHJhbnNhY3Rpb25zVXJsKG9wdGlvbnMuc2VydmljZXNVcmwsIG1vbnRoTW9tZW50KTtcbiAgY29uc3QgZGF0YVJlc3VsdCA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkVHJhbnNhY3Rpb25EYXRhPihwYWdlLCBkYXRhVXJsKTtcbiAgaWYgKGRhdGFSZXN1bHQgJiYgXy5nZXQoZGF0YVJlc3VsdCwgJ0hlYWRlci5TdGF0dXMnKSA9PT0gJzEnICYmIGRhdGFSZXN1bHQuQ2FyZHNUcmFuc2FjdGlvbnNMaXN0QmVhbikge1xuICAgIGNvbnN0IGFjY291bnRUeG5zOiBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXggPSB7fTtcbiAgICBhY2NvdW50cy5mb3JFYWNoKChhY2NvdW50KSA9PiB7XG4gICAgICBjb25zdCB0eG5Hcm91cHM6IFNjcmFwZWRDdXJyZW50Q2FyZFRyYW5zYWN0aW9uc1tdID0gXy5nZXQoZGF0YVJlc3VsdCwgYENhcmRzVHJhbnNhY3Rpb25zTGlzdEJlYW4uSW5kZXgke2FjY291bnQuaW5kZXh9LkN1cnJlbnRDYXJkVHJhbnNhY3Rpb25zYCk7XG4gICAgICBpZiAodHhuR3JvdXBzKSB7XG4gICAgICAgIGxldCBhbGxUeG5zOiBUcmFuc2FjdGlvbltdID0gW107XG4gICAgICAgIHR4bkdyb3Vwcy5mb3JFYWNoKCh0eG5Hcm91cCkgPT4ge1xuICAgICAgICAgIGlmICh0eG5Hcm91cC50eG5Jc3JhZWwpIHtcbiAgICAgICAgICAgIGNvbnN0IHR4bnMgPSBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bkdyb3VwLnR4bklzcmFlbCwgYWNjb3VudC5wcm9jZXNzZWREYXRlKTtcbiAgICAgICAgICAgIGFsbFR4bnMucHVzaCguLi50eG5zKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR4bkdyb3VwLnR4bkFicm9hZCkge1xuICAgICAgICAgICAgY29uc3QgdHhucyA9IGNvbnZlcnRUcmFuc2FjdGlvbnModHhuR3JvdXAudHhuQWJyb2FkLCBhY2NvdW50LnByb2Nlc3NlZERhdGUpO1xuICAgICAgICAgICAgYWxsVHhucy5wdXNoKC4uLnR4bnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLmNvbWJpbmVJbnN0YWxsbWVudHMpIHtcbiAgICAgICAgICBhbGxUeG5zID0gZml4SW5zdGFsbG1lbnRzKGFsbFR4bnMpO1xuICAgICAgICB9XG4gICAgICAgIGFsbFR4bnMgPSBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMoYWxsVHhucywgc3RhcnRNb21lbnQsIG9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSk7XG5cbiAgICAgICAgYWNjb3VudFR4bnNbYWNjb3VudC5hY2NvdW50TnVtYmVyXSA9IHtcbiAgICAgICAgICBhY2NvdW50TnVtYmVyOiBhY2NvdW50LmFjY291bnROdW1iZXIsXG4gICAgICAgICAgaW5kZXg6IGFjY291bnQuaW5kZXgsXG4gICAgICAgICAgdHhuczogYWxsVHhucyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYWNjb3VudFR4bnM7XG4gIH1cblxuICByZXR1cm4ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWxsVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIHN0YXJ0TW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSBvcHRpb25zLmZ1dHVyZU1vbnRoc1RvU2NyYXBlID8/IDE7XG4gIGNvbnN0IGFsbE1vbnRocyA9IGdldEFsbE1vbnRoTW9tZW50cyhzdGFydE1vbWVudCwgZnV0dXJlTW9udGhzVG9TY3JhcGUpO1xuICBjb25zdCByZXN1bHRzOiBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXhbXSA9IGF3YWl0IFByb21pc2UuYWxsKGFsbE1vbnRocy5tYXAoYXN5bmMgKG1vbnRoTW9tZW50KSA9PiB7XG4gICAgcmV0dXJuIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2UsIG9wdGlvbnMsIHN0YXJ0TW9tZW50LCBtb250aE1vbWVudCk7XG4gIH0pKTtcblxuICBjb25zdCBjb21iaW5lZFR4bnM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0ge307XG5cbiAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQpID0+IHtcbiAgICBPYmplY3Qua2V5cyhyZXN1bHQpLmZvckVhY2goKGFjY291bnROdW1iZXIpID0+IHtcbiAgICAgIGxldCB0eG5zRm9yQWNjb3VudCA9IGNvbWJpbmVkVHhuc1thY2NvdW50TnVtYmVyXTtcbiAgICAgIGlmICghdHhuc0ZvckFjY291bnQpIHtcbiAgICAgICAgdHhuc0ZvckFjY291bnQgPSBbXTtcbiAgICAgICAgY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdID0gdHhuc0ZvckFjY291bnQ7XG4gICAgICB9XG4gICAgICBjb25zdCB0b0JlQWRkZWRUeG5zID0gcmVzdWx0W2FjY291bnROdW1iZXJdLnR4bnM7XG4gICAgICBjb21iaW5lZFR4bnNbYWNjb3VudE51bWJlcl0ucHVzaCguLi50b0JlQWRkZWRUeG5zKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgYWNjb3VudHMgPSBPYmplY3Qua2V5cyhjb21iaW5lZFR4bnMpLm1hcCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50TnVtYmVyLFxuICAgICAgdHhuczogY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdLFxuICAgIH07XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogdHJ1ZSxcbiAgICBhY2NvdW50cyxcbiAgfTtcbn1cblxuXG5jbGFzcyBJc3JhY2FyZEFtZXhCYXNlU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBwcml2YXRlIGJhc2VVcmw6IHN0cmluZztcblxuICBwcml2YXRlIGNvbXBhbnlDb2RlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzZXJ2aWNlc1VybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNjcmFwZXJPcHRpb25zLCBiYXNlVXJsOiBzdHJpbmcsIGNvbXBhbnlDb2RlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMuYmFzZVVybCA9IGJhc2VVcmw7XG4gICAgdGhpcy5jb21wYW55Q29kZSA9IGNvbXBhbnlDb2RlO1xuICAgIHRoaXMuc2VydmljZXNVcmwgPSBgJHtiYXNlVXJsfS9zZXJ2aWNlcy9Qcm94eVJlcXVlc3RIYW5kbGVyLmFzaHhgO1xuICB9XG5cbiAgYXN5bmMgbG9naW4oY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscyk6IFByb21pc2U8U2NhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhZ2Uuc2V0UmVxdWVzdEludGVyY2VwdGlvbih0cnVlKTtcbiAgICB0aGlzLnBhZ2Uub24oJ3JlcXVlc3QnLCAocmVxdWVzdCkgPT4ge1xuICAgICAgaWYgKHJlcXVlc3QudXJsKCkuaW5jbHVkZXMoJ2RldGVjdG9yLWRvbS5taW4uanMnKSkge1xuICAgICAgICBkZWJ1ZygnZm9yY2UgYWJvcnQgZm9yIHJlcXVlc3QgZG8gZG93bmxvYWQgZGV0ZWN0b3ItZG9tLm1pbi5qcyByZXNvdXJjZScpO1xuICAgICAgICByZXF1ZXN0LmFib3J0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXF1ZXN0LmNvbnRpbnVlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkZWJ1ZygnbmF2aWdhdGUgdG8gbG9naW4gcGFnZScpO1xuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhgJHt0aGlzLmJhc2VVcmx9L3BlcnNvbmFsYXJlYS9Mb2dpbmApO1xuXG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dnaW5nSW4pO1xuXG4gICAgY29uc3QgdmFsaWRhdGVVcmwgPSBgJHt0aGlzLnNlcnZpY2VzVXJsfT9yZXFOYW1lPVZhbGlkYXRlSWREYXRhYDtcbiAgICBjb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSB7XG4gICAgICBpZDogY3JlZGVudGlhbHMuaWQsXG4gICAgICBjYXJkU3VmZml4OiBjcmVkZW50aWFscy5jYXJkNkRpZ2l0cyxcbiAgICAgIGNvdW50cnlDb2RlOiBDT1VOVFJZX0NPREUsXG4gICAgICBpZFR5cGU6IElEX1RZUEUsXG4gICAgICBjaGVja0xldmVsOiAnMScsXG4gICAgICBjb21wYW55Q29kZTogdGhpcy5jb21wYW55Q29kZSxcbiAgICB9O1xuICAgIGNvbnN0IHZhbGlkYXRlUmVzdWx0ID0gYXdhaXQgZmV0Y2hQb3N0V2l0aGluUGFnZTxTY3JhcGVkTG9naW5WYWxpZGF0aW9uPih0aGlzLnBhZ2UsIHZhbGlkYXRlVXJsLCB2YWxpZGF0ZVJlcXVlc3QpO1xuICAgIGlmICghdmFsaWRhdGVSZXN1bHQgfHwgIXZhbGlkYXRlUmVzdWx0LkhlYWRlciB8fCB2YWxpZGF0ZVJlc3VsdC5IZWFkZXIuU3RhdHVzICE9PSAnMScgfHwgIXZhbGlkYXRlUmVzdWx0LlZhbGlkYXRlSWREYXRhQmVhbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIGVycm9yIGR1cmluZyBsb2dpbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkYXRlUmV0dXJuQ29kZSA9IHZhbGlkYXRlUmVzdWx0LlZhbGlkYXRlSWREYXRhQmVhbi5yZXR1cm5Db2RlO1xuICAgIGRlYnVnKGB1c2VyIHZhbGlkYXRlIHdpdGggcmV0dXJuIGNvZGUgJyR7dmFsaWRhdGVSZXR1cm5Db2RlfSdgKTtcbiAgICBpZiAodmFsaWRhdGVSZXR1cm5Db2RlID09PSAnMScpIHtcbiAgICAgIGNvbnN0IHsgdXNlck5hbWUgfSA9IHZhbGlkYXRlUmVzdWx0LlZhbGlkYXRlSWREYXRhQmVhbjtcblxuICAgICAgY29uc3QgbG9naW5VcmwgPSBgJHt0aGlzLnNlcnZpY2VzVXJsfT9yZXFOYW1lPXBlcmZvcm1Mb2dvbklgO1xuICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgS29kTWlzaHRhbWVzaDogdXNlck5hbWUsXG4gICAgICAgIE1pc3BhclppaHV5OiBjcmVkZW50aWFscy5pZCxcbiAgICAgICAgU2lzbWE6IGNyZWRlbnRpYWxzLnBhc3N3b3JkLFxuICAgICAgICBjYXJkU3VmZml4OiBjcmVkZW50aWFscy5jYXJkNkRpZ2l0cyxcbiAgICAgICAgY291bnRyeUNvZGU6IENPVU5UUllfQ09ERSxcbiAgICAgICAgaWRUeXBlOiBJRF9UWVBFLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGxvZ2luUmVzdWx0ID0gYXdhaXQgZmV0Y2hQb3N0V2l0aGluUGFnZTx7c3RhdHVzOiBzdHJpbmd9Pih0aGlzLnBhZ2UsIGxvZ2luVXJsLCByZXF1ZXN0KTtcbiAgICAgIGRlYnVnKGB1c2VyIGxvZ2luIHdpdGggc3RhdHVzICcke2xvZ2luUmVzdWx0Py5zdGF0dXN9J2ApO1xuXG4gICAgICBpZiAobG9naW5SZXN1bHQgJiYgbG9naW5SZXN1bHQuc3RhdHVzID09PSAnMScpIHtcbiAgICAgICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpblN1Y2Nlc3MpO1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChsb2dpblJlc3VsdCAmJiBsb2dpblJlc3VsdC5zdGF0dXMgPT09ICczJykge1xuICAgICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkNoYW5nZVBhc3N3b3JkKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkNoYW5nZVBhc3N3b3JkLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2luRmFpbGVkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkludmFsaWRQYXNzd29yZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlUmV0dXJuQ29kZSA9PT0gJzQnKSB7XG4gICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkNoYW5nZVBhc3N3b3JkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkNoYW5nZVBhc3N3b3JkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2luRmFpbGVkKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkludmFsaWRQYXNzd29yZCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCkge1xuICAgIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMub3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICAgIHJldHVybiBmZXRjaEFsbFRyYW5zYWN0aW9ucyh0aGlzLnBhZ2UsIHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHNlcnZpY2VzVXJsOiB0aGlzLnNlcnZpY2VzVXJsLFxuICAgICAgY29tcGFueUNvZGU6IHRoaXMuY29tcGFueUNvZGUsXG4gICAgfSwgc3RhcnRNb21lbnQpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IElzcmFjYXJkQW1leEJhc2VTY3JhcGVyO1xuIl19
394
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLWlzcmFjYXJkLWFtZXgudHMiXSwibmFtZXMiOlsiQ09VTlRSWV9DT0RFIiwiSURfVFlQRSIsIklOU1RBTExNRU5UU19LRVlXT1JEIiwiREFURV9GT1JNQVQiLCJkZWJ1ZyIsImdldEFjY291bnRzVXJsIiwic2VydmljZXNVcmwiLCJtb250aE1vbWVudCIsImJpbGxpbmdEYXRlIiwiZm9ybWF0IiwicXVlcnlQYXJhbXMiLCJyZXFOYW1lIiwiYWN0aW9uQ29kZSIsImZldGNoQWNjb3VudHMiLCJwYWdlIiwiZGF0YVVybCIsImRhdGFSZXN1bHQiLCJfIiwiZ2V0IiwiRGFzaGJvYXJkTW9udGhCZWFuIiwiY2FyZHNDaGFyZ2VzIiwibWFwIiwiY2FyZENoYXJnZSIsImluZGV4IiwicGFyc2VJbnQiLCJjYXJkSW5kZXgiLCJhY2NvdW50TnVtYmVyIiwiY2FyZE51bWJlciIsInByb2Nlc3NlZERhdGUiLCJ0b0lTT1N0cmluZyIsImdldFRyYW5zYWN0aW9uc1VybCIsIm1vbnRoIiwieWVhciIsIm1vbnRoU3RyIiwidG9TdHJpbmciLCJyZXF1aXJlZERhdGUiLCJjb252ZXJ0Q3VycmVuY3kiLCJjdXJyZW5jeVN0ciIsIlNIRUtFTF9DVVJSRU5DWV9LRVlXT1JEIiwiQUxUX1NIRUtFTF9DVVJSRU5DWSIsIlNIRUtFTF9DVVJSRU5DWSIsImdldEluc3RhbGxtZW50c0luZm8iLCJ0eG4iLCJtb3JlSW5mbyIsImluY2x1ZGVzIiwidW5kZWZpbmVkIiwibWF0Y2hlcyIsIm1hdGNoIiwibGVuZ3RoIiwibnVtYmVyIiwidG90YWwiLCJnZXRUcmFuc2FjdGlvblR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiSW5zdGFsbG1lbnRzIiwiTm9ybWFsIiwiY29udmVydFRyYW5zYWN0aW9ucyIsInR4bnMiLCJmaWx0ZXJlZFR4bnMiLCJmaWx0ZXIiLCJkZWFsU3VtVHlwZSIsInZvdWNoZXJOdW1iZXJSYXR6Iiwidm91Y2hlck51bWJlclJhdHpPdXRib3VuZCIsImlzT3V0Ym91bmQiLCJkZWFsU3VtT3V0Ym91bmQiLCJ0eG5EYXRlU3RyIiwiZnVsbFB1cmNoYXNlRGF0ZU91dGJvdW5kIiwiZnVsbFB1cmNoYXNlRGF0ZSIsInR4bk1vbWVudCIsImN1cnJlbnRQcm9jZXNzZWREYXRlIiwiZnVsbFBheW1lbnREYXRlIiwicmVzdWx0IiwidHlwZSIsImlkZW50aWZpZXIiLCJkYXRlIiwib3JpZ2luYWxBbW91bnQiLCJkZWFsU3VtIiwib3JpZ2luYWxDdXJyZW5jeSIsImN1cnJlbmN5SWQiLCJjaGFyZ2VkQW1vdW50IiwicGF5bWVudFN1bU91dGJvdW5kIiwicGF5bWVudFN1bSIsImRlc2NyaXB0aW9uIiwiZnVsbFN1cHBsaWVyTmFtZU91dGJvdW5kIiwiZnVsbFN1cHBsaWVyTmFtZUhlYiIsIm1lbW8iLCJpbnN0YWxsbWVudHMiLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiQ29tcGxldGVkIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJvcHRpb25zIiwic3RhcnRNb21lbnQiLCJhY2NvdW50cyIsIkNhcmRzVHJhbnNhY3Rpb25zTGlzdEJlYW4iLCJhY2NvdW50VHhucyIsImZvckVhY2giLCJhY2NvdW50IiwidHhuR3JvdXBzIiwiYWxsVHhucyIsInR4bkdyb3VwIiwidHhuSXNyYWVsIiwicHVzaCIsInR4bkFicm9hZCIsImNvbWJpbmVJbnN0YWxsbWVudHMiLCJvdXRwdXREYXRhIiwiZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlIiwiZ2V0VHJhbnNhY3Rpb25FeHRyYURldGFpbHMiLCJhY2NvdW50SW5kZXgiLCJ0cmFuc2FjdGlvbiIsIm1vZWRDaGl1diIsIkNhcmRJbmRleCIsInNob3ZhclJhdHoiLCJnZXRFeHRyYVNjcmFwVHJhbnNhY3Rpb24iLCJkYXRhIiwicmF3Q2F0ZWdvcnkiLCJjYXRlZ29yeSIsInRyaW0iLCJnZXRFeHRyYVNjcmFwVHJhbnNhY3Rpb25zIiwiYWNjb3VudFdpdGhJbmRleCIsInByb21pc2VzIiwidCIsIlByb21pc2UiLCJhbGwiLCJnZXRFeHRyYVNjcmFwQWNjb3VudCIsImFjY291bnRNYXAiLCJPYmplY3QiLCJrZXlzIiwiYSIsInJlZHVjZSIsIm0iLCJ4IiwiZ2V0RXh0cmFTY3JhcCIsImFjY291bnRzV2l0aEluZGV4IiwiYWxsTW9udGhzIiwiYWN0aW9ucyIsImkiLCJmZXRjaEFsbFRyYW5zYWN0aW9ucyIsImZ1dHVyZU1vbnRoc1RvU2NyYXBlIiwicmVzdWx0cyIsImZpbmFsUmVzdWx0IiwiYWRkaXRpb25hbFRyYW5zYWN0aW9uSW5mb3JtYXRpb24iLCJjb21iaW5lZFR4bnMiLCJ0eG5zRm9yQWNjb3VudCIsInRvQmVBZGRlZFR4bnMiLCJzdWNjZXNzIiwiSXNyYWNhcmRBbWV4QmFzZVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiY29uc3RydWN0b3IiLCJiYXNlVXJsIiwiY29tcGFueUNvZGUiLCJsb2dpbiIsImNyZWRlbnRpYWxzIiwic2V0UmVxdWVzdEludGVyY2VwdGlvbiIsIm9uIiwicmVxdWVzdCIsInVybCIsImFib3J0IiwiY29udGludWUiLCJuYXZpZ2F0ZVRvIiwiZW1pdFByb2dyZXNzIiwiU2NhcGVyUHJvZ3Jlc3NUeXBlcyIsIkxvZ2dpbmdJbiIsInZhbGlkYXRlVXJsIiwidmFsaWRhdGVSZXF1ZXN0IiwiaWQiLCJjYXJkU3VmZml4IiwiY2FyZDZEaWdpdHMiLCJjb3VudHJ5Q29kZSIsImlkVHlwZSIsImNoZWNrTGV2ZWwiLCJ2YWxpZGF0ZVJlc3VsdCIsIkhlYWRlciIsIlN0YXR1cyIsIlZhbGlkYXRlSWREYXRhQmVhbiIsIkVycm9yIiwidmFsaWRhdGVSZXR1cm5Db2RlIiwicmV0dXJuQ29kZSIsInVzZXJOYW1lIiwibG9naW5VcmwiLCJLb2RNaXNodGFtZXNoIiwiTWlzcGFyWmlodXkiLCJTaXNtYSIsInBhc3N3b3JkIiwibG9naW5SZXN1bHQiLCJMb2dpblN1Y2Nlc3MiLCJDaGFuZ2VQYXNzd29yZCIsImVycm9yVHlwZSIsIlNjcmFwZXJFcnJvclR5cGVzIiwiTG9naW5GYWlsZWQiLCJJbnZhbGlkUGFzc3dvcmQiLCJmZXRjaERhdGEiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInN0YXJ0RGF0ZSIsInRvRGF0ZSIsIm1vbWVudCIsIm1heCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUtBOztBQUNBOztBQUNBOztBQUlBOztBQUtBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsTUFBTUEsWUFBWSxHQUFHLEtBQXJCO0FBQ0EsTUFBTUMsT0FBTyxHQUFHLEdBQWhCO0FBQ0EsTUFBTUMsb0JBQW9CLEdBQUcsT0FBN0I7QUFFQSxNQUFNQyxXQUFXLEdBQUcsWUFBcEI7QUFFQSxNQUFNQyxLQUFLLEdBQUcscUJBQVMsb0JBQVQsQ0FBZDs7QUFzRUEsU0FBU0MsY0FBVCxDQUF3QkMsV0FBeEIsRUFBNkNDLFdBQTdDLEVBQWtFO0FBQ2hFLFFBQU1DLFdBQVcsR0FBR0QsV0FBVyxDQUFDRSxNQUFaLENBQW1CLFlBQW5CLENBQXBCO0FBQ0EsU0FBTyx1QkFBU0gsV0FBVCxFQUFzQjtBQUMzQkksSUFBQUEsV0FBVyxFQUFFO0FBQ1hDLE1BQUFBLE9BQU8sRUFBRSxnQkFERTtBQUVYQyxNQUFBQSxVQUFVLEVBQUUsR0FGRDtBQUdYSixNQUFBQSxXQUhXO0FBSVhDLE1BQUFBLE1BQU0sRUFBRTtBQUpHO0FBRGMsR0FBdEIsQ0FBUDtBQVFEOztBQUVELGVBQWVJLGFBQWYsQ0FBNkJDLElBQTdCLEVBQXlDUixXQUF6QyxFQUE4REMsV0FBOUQsRUFBOEc7QUFDNUcsUUFBTVEsT0FBTyxHQUFHVixjQUFjLENBQUNDLFdBQUQsRUFBY0MsV0FBZCxDQUE5QjtBQUNBLFFBQU1TLFVBQVUsR0FBRyxNQUFNLCtCQUFzREYsSUFBdEQsRUFBNERDLE9BQTVELENBQXpCOztBQUNBLE1BQUlDLFVBQVUsSUFBSUMsZ0JBQUVDLEdBQUYsQ0FBTUYsVUFBTixFQUFrQixlQUFsQixNQUF1QyxHQUFyRCxJQUE0REEsVUFBVSxD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QU8sRUFBRSxLQURKO0FBRUwwQyxRQUFBQSxTQUFTLEVBQUVDLCtCQUFrQkY7QUFGeEIsT0FBUDtBQUlEOztBQUVELFNBQUsxQixZQUFMLENBQWtCQyxpQ0FBb0I0QixXQUF0QztBQUNBLFdBQU87QUFDTDVDLE1BQUFBLE9BQU8sRUFBRSxLQURKO0FBRUwwQyxNQUFBQSxTQUFTLEVBQUVDLCtCQUFrQkU7QUFGeEIsS0FBUDtBQUlEOztBQUVELFFBQU1DLFNBQU4sR0FBa0I7QUFDaEIsVUFBTUMsa0JBQWtCLEdBQUcsdUJBQVNDLFFBQVQsQ0FBa0IsQ0FBbEIsRUFBcUIsT0FBckIsQ0FBM0I7QUFDQSxVQUFNQyxTQUFTLEdBQUcsS0FBS3ZHLE9BQUwsQ0FBYXVHLFNBQWIsSUFBMEJGLGtCQUFrQixDQUFDRyxNQUFuQixFQUE1Qzs7QUFDQSxVQUFNdkcsV0FBVyxHQUFHd0csZ0JBQU9DLEdBQVAsQ0FBV0wsa0JBQVgsRUFBK0IscUJBQU9FLFNBQVAsQ0FBL0IsQ0FBcEI7O0FBRUEsV0FBT3pELG9CQUFvQixDQUFDLEtBQUsxSCxJQUFOLG9CQUN0QixLQUFLNEUsT0FEaUI7QUFFekJwRixNQUFBQSxXQUFXLEVBQUUsS0FBS0EsV0FGTztBQUd6QitJLE1BQUFBLFdBQVcsRUFBRSxLQUFLQTtBQUhPLFFBSXhCMUQsV0FKd0IsQ0FBM0I7QUFLRDs7QUEzRzBEOztlQThHOUNzRCx1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgYnVpbGRVcmwgZnJvbSAnYnVpbGQtdXJsJztcbmltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcblxuaW1wb3J0IHsgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSwgZmV0Y2hQb3N0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHtcbiAgU0hFS0VMX0NVUlJFTkNZX0tFWVdPUkQsXG4gIFNIRUtFTF9DVVJSRU5DWSxcbiAgQUxUX1NIRUtFTF9DVVJSRU5DWSxcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBnZXRBbGxNb250aE1vbWVudHMgZnJvbSAnLi4vaGVscGVycy9kYXRlcyc7XG5pbXBvcnQgeyBmaXhJbnN0YWxsbWVudHMsIGZpbHRlck9sZFRyYW5zYWN0aW9ucyB9IGZyb20gJy4uL2hlbHBlcnMvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uc0FjY291bnQsIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyxcbiAgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7XG4gIFNjcmFwZXJFcnJvclR5cGVzLFxuICBTY3JhcGVyT3B0aW9ucywgU2NhcGVyU2NyYXBpbmdSZXN1bHQsIFNjYXBlclByb2dyZXNzVHlwZXMsXG4gIFNjcmFwZXJDcmVkZW50aWFscyxcbn0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcbmltcG9ydCB7IHJ1blNlcmlhbCB9IGZyb20gJy4uL2hlbHBlcnMvd2FpdGluZyc7XG5cbmNvbnN0IENPVU5UUllfQ09ERSA9ICcyMTInO1xuY29uc3QgSURfVFlQRSA9ICcxJztcbmNvbnN0IElOU1RBTExNRU5UU19LRVlXT1JEID0gJ9eq16nXnNeV150nO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWVlZJztcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnYmFzZS1pc3JhY2FyZC1hbWV4Jyk7XG5cbmludGVyZmFjZSBFeHRlbmRlZFNjcmFwZXJPcHRpb25zIGV4dGVuZHMgU2NyYXBlck9wdGlvbnMge1xuICBzZXJ2aWNlc1VybDogc3RyaW5nO1xuICBjb21wYW55Q29kZTogc3RyaW5nO1xufVxuXG50eXBlIFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleCA9IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uc0FjY291bnQgJiB7IGluZGV4OiBudW1iZXIgfT47XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBkZWFsU3VtVHlwZTogc3RyaW5nO1xuICB2b3VjaGVyTnVtYmVyUmF0ek91dGJvdW5kOiBzdHJpbmc7XG4gIHZvdWNoZXJOdW1iZXJSYXR6OiBzdHJpbmc7XG4gIG1vcmVJbmZvPzogc3RyaW5nO1xuICBkZWFsU3VtT3V0Ym91bmQ6IGJvb2xlYW47XG4gIGN1cnJlbmN5SWQ6IHN0cmluZztcbiAgZGVhbFN1bTogbnVtYmVyO1xuICBmdWxsUGF5bWVudERhdGU/OiBzdHJpbmc7XG4gIGZ1bGxQdXJjaGFzZURhdGU/OiBzdHJpbmc7XG4gIGZ1bGxQdXJjaGFzZURhdGVPdXRib3VuZD86IHN0cmluZztcbiAgZnVsbFN1cHBsaWVyTmFtZUhlYjogc3RyaW5nO1xuICBmdWxsU3VwcGxpZXJOYW1lT3V0Ym91bmQ6IHN0cmluZztcbiAgcGF5bWVudFN1bTogbnVtYmVyO1xuICBwYXltZW50U3VtT3V0Ym91bmQ6IG51bWJlcjtcbn1cblxuXG5pbnRlcmZhY2UgU2NyYXBlZEFjY291bnQge1xuICBpbmRleDogbnVtYmVyO1xuICBhY2NvdW50TnVtYmVyOiBzdHJpbmc7XG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRMb2dpblZhbGlkYXRpb24ge1xuICBIZWFkZXI6IHtcbiAgICBTdGF0dXM6IHN0cmluZztcbiAgfTtcbiAgVmFsaWRhdGVJZERhdGFCZWFuPzoge1xuICAgIHVzZXJOYW1lPzogc3RyaW5nO1xuICAgIHJldHVybkNvZGU6IHN0cmluZztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRBY2NvdW50c1dpdGhpblBhZ2VSZXNwb25zZSB7XG4gIEhlYWRlcjoge1xuICAgIFN0YXR1czogc3RyaW5nO1xuICB9O1xuICBEYXNoYm9hcmRNb250aEJlYW4/OiB7XG4gICAgY2FyZHNDaGFyZ2VzOiB7XG4gICAgICBjYXJkSW5kZXg6IHN0cmluZztcbiAgICAgIGNhcmROdW1iZXI6IHN0cmluZztcbiAgICAgIGJpbGxpbmdEYXRlOiBzdHJpbmc7XG4gICAgfVtdO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZEN1cnJlbnRDYXJkVHJhbnNhY3Rpb25zIHtcbiAgdHhuSXNyYWVsPzogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gIHR4bkFicm9hZD86IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uRGF0YSB7XG4gIEhlYWRlcj86IHtcbiAgICBTdGF0dXM6IHN0cmluZztcbiAgfTtcbiAgQ2FyZHNUcmFuc2FjdGlvbnNMaXN0QmVhbj86IFJlY29yZDxzdHJpbmcsIHtcbiAgICBDdXJyZW50Q2FyZFRyYW5zYWN0aW9uczogU2NyYXBlZEN1cnJlbnRDYXJkVHJhbnNhY3Rpb25zW107XG4gIH0+O1xufVxuXG5mdW5jdGlvbiBnZXRBY2NvdW50c1VybChzZXJ2aWNlc1VybDogc3RyaW5nLCBtb250aE1vbWVudDogTW9tZW50KSB7XG4gIGNvbnN0IGJpbGxpbmdEYXRlID0gbW9udGhNb21lbnQuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gIHJldHVybiBidWlsZFVybChzZXJ2aWNlc1VybCwge1xuICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICByZXFOYW1lOiAnRGFzaGJvYXJkTW9udGgnLFxuICAgICAgYWN0aW9uQ29kZTogJzAnLFxuICAgICAgYmlsbGluZ0RhdGUsXG4gICAgICBmb3JtYXQ6ICdKc29uJyxcbiAgICB9LFxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hBY2NvdW50cyhwYWdlOiBQYWdlLCBzZXJ2aWNlc1VybDogc3RyaW5nLCBtb250aE1vbWVudDogTW9tZW50KTogUHJvbWlzZTxTY3JhcGVkQWNjb3VudFtdPiB7XG4gIGNvbnN0IGRhdGFVcmwgPSBnZXRBY2NvdW50c1VybChzZXJ2aWNlc1VybCwgbW9udGhNb21lbnQpO1xuICBjb25zdCBkYXRhUmVzdWx0ID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPFNjcmFwZWRBY2NvdW50c1dpdGhpblBhZ2VSZXNwb25zZT4ocGFnZSwgZGF0YVVybCk7XG4gIGlmIChkYXRhUmVzdWx0ICYmIF8uZ2V0KGRhdGFSZXN1bHQsICdIZWFkZXIuU3RhdHVzJykgPT09ICcxJyAmJiBkYXRhUmVzdWx0LkRhc2hib2FyZE1vbnRoQmVhbikge1xuICAgIGNvbnN0IHsgY2FyZHNDaGFyZ2VzIH0gPSBkYXRhUmVzdWx0LkRhc2hib2FyZE1vbnRoQmVhbjtcbiAgICBpZiAoY2FyZHNDaGFyZ2VzKSB7XG4gICAgICByZXR1cm4gY2FyZHNDaGFyZ2VzLm1hcCgoY2FyZENoYXJnZSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGluZGV4OiBwYXJzZUludChjYXJkQ2hhcmdlLmNhcmRJbmRleCwgMTApLFxuICAgICAgICAgIGFjY291bnROdW1iZXI6IGNhcmRDaGFyZ2UuY2FyZE51bWJlcixcbiAgICAgICAgICBwcm9jZXNzZWREYXRlOiBtb21lbnQoY2FyZENoYXJnZS5iaWxsaW5nRGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFtdO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbnNVcmwoc2VydmljZXNVcmw6IHN0cmluZywgbW9udGhNb21lbnQ6IE1vbWVudCkge1xuICBjb25zdCBtb250aCA9IG1vbnRoTW9tZW50Lm1vbnRoKCkgKyAxO1xuICBjb25zdCB5ZWFyID0gbW9udGhNb21lbnQueWVhcigpO1xuICBjb25zdCBtb250aFN0ciA9IG1vbnRoIDwgMTAgPyBgMCR7bW9udGh9YCA6IG1vbnRoLnRvU3RyaW5nKCk7XG4gIHJldHVybiBidWlsZFVybChzZXJ2aWNlc1VybCwge1xuICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICByZXFOYW1lOiAnQ2FyZHNUcmFuc2FjdGlvbnNMaXN0JyxcbiAgICAgIG1vbnRoOiBtb250aFN0cixcbiAgICAgIHllYXI6IGAke3llYXJ9YCxcbiAgICAgIHJlcXVpcmVkRGF0ZTogJ04nLFxuICAgIH0sXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0Q3VycmVuY3koY3VycmVuY3lTdHI6IHN0cmluZykge1xuICBpZiAoY3VycmVuY3lTdHIgPT09IFNIRUtFTF9DVVJSRU5DWV9LRVlXT1JEIHx8IGN1cnJlbmN5U3RyID09PSBBTFRfU0hFS0VMX0NVUlJFTkNZKSB7XG4gICAgcmV0dXJuIFNIRUtFTF9DVVJSRU5DWTtcbiAgfVxuICByZXR1cm4gY3VycmVuY3lTdHI7XG59XG5cbmZ1bmN0aW9uIGdldEluc3RhbGxtZW50c0luZm8odHhuOiBTY3JhcGVkVHJhbnNhY3Rpb24pOiBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyB8IHVuZGVmaW5lZCB7XG4gIGlmICghdHhuLm1vcmVJbmZvIHx8ICF0eG4ubW9yZUluZm8uaW5jbHVkZXMoSU5TVEFMTE1FTlRTX0tFWVdPUkQpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBtYXRjaGVzID0gdHhuLm1vcmVJbmZvLm1hdGNoKC9cXGQrL2cpO1xuICBpZiAoIW1hdGNoZXMgfHwgbWF0Y2hlcy5sZW5ndGggPCAyKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbnVtYmVyOiBwYXJzZUludChtYXRjaGVzWzBdLCAxMCksXG4gICAgdG90YWw6IHBhcnNlSW50KG1hdGNoZXNbMV0sIDEwKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25UeXBlKHR4bjogU2NyYXBlZFRyYW5zYWN0aW9uKSB7XG4gIHJldHVybiBnZXRJbnN0YWxsbWVudHNJbmZvKHR4bikgPyBUcmFuc2FjdGlvblR5cGVzLkluc3RhbGxtZW50cyA6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdLCBwcm9jZXNzZWREYXRlOiBzdHJpbmcpOiBUcmFuc2FjdGlvbltdIHtcbiAgY29uc3QgZmlsdGVyZWRUeG5zID0gdHhucy5maWx0ZXIoKHR4bikgPT4gdHhuLmRlYWxTdW1UeXBlICE9PSAnMScgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHhuLnZvdWNoZXJOdW1iZXJSYXR6ICE9PSAnMDAwMDAwMDAwJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eG4udm91Y2hlck51bWJlclJhdHpPdXRib3VuZCAhPT0gJzAwMDAwMDAwMCcpO1xuXG4gIHJldHVybiBmaWx0ZXJlZFR4bnMubWFwKCh0eG4pID0+IHtcbiAgICBjb25zdCBpc091dGJvdW5kID0gdHhuLmRlYWxTdW1PdXRib3VuZDtcbiAgICBjb25zdCB0eG5EYXRlU3RyID0gaXNPdXRib3VuZCA/IHR4bi5mdWxsUHVyY2hhc2VEYXRlT3V0Ym91bmQgOiB0eG4uZnVsbFB1cmNoYXNlRGF0ZTtcbiAgICBjb25zdCB0eG5Nb21lbnQgPSBtb21lbnQodHhuRGF0ZVN0ciwgREFURV9GT1JNQVQpO1xuXG4gICAgY29uc3QgY3VycmVudFByb2Nlc3NlZERhdGUgPSB0eG4uZnVsbFBheW1lbnREYXRlID9cbiAgICAgIG1vbWVudCh0eG4uZnVsbFBheW1lbnREYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKSA6XG4gICAgICBwcm9jZXNzZWREYXRlO1xuICAgIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb24gPSB7XG4gICAgICB0eXBlOiBnZXRUcmFuc2FjdGlvblR5cGUodHhuKSxcbiAgICAgIGlkZW50aWZpZXI6IHBhcnNlSW50KGlzT3V0Ym91bmQgPyB0eG4udm91Y2hlck51bWJlclJhdHpPdXRib3VuZCA6IHR4bi52b3VjaGVyTnVtYmVyUmF0eiwgMTApLFxuICAgICAgZGF0ZTogdHhuTW9tZW50LnRvSVNPU3RyaW5nKCksXG4gICAgICBwcm9jZXNzZWREYXRlOiBjdXJyZW50UHJvY2Vzc2VkRGF0ZSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiBpc091dGJvdW5kID8gLXR4bi5kZWFsU3VtT3V0Ym91bmQgOiAtdHhuLmRlYWxTdW0sXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiBjb252ZXJ0Q3VycmVuY3kodHhuLmN1cnJlbmN5SWQpLFxuICAgICAgY2hhcmdlZEFtb3VudDogaXNPdXRib3VuZCA/IC10eG4ucGF5bWVudFN1bU91dGJvdW5kIDogLXR4bi5wYXltZW50U3VtLFxuICAgICAgZGVzY3JpcHRpb246IGlzT3V0Ym91bmQgPyB0eG4uZnVsbFN1cHBsaWVyTmFtZU91dGJvdW5kIDogdHhuLmZ1bGxTdXBwbGllck5hbWVIZWIsXG4gICAgICBtZW1vOiB0eG4ubW9yZUluZm8gfHwgJycsXG4gICAgICBpbnN0YWxsbWVudHM6IGdldEluc3RhbGxtZW50c0luZm8odHhuKSB8fCB1bmRlZmluZWQsXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgb3B0aW9uczogRXh0ZW5kZWRTY3JhcGVyT3B0aW9ucywgc3RhcnRNb21lbnQ6IE1vbWVudCwgbW9udGhNb21lbnQ6IE1vbWVudCk6IFByb21pc2U8U2NyYXBlZEFjY291bnRzV2l0aEluZGV4PiB7XG4gIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hBY2NvdW50cyhwYWdlLCBvcHRpb25zLnNlcnZpY2VzVXJsLCBtb250aE1vbWVudCk7XG4gIGNvbnN0IGRhdGFVcmwgPSBnZXRUcmFuc2FjdGlvbnNVcmwob3B0aW9ucy5zZXJ2aWNlc1VybCwgbW9udGhNb21lbnQpO1xuICBjb25zdCBkYXRhUmVzdWx0ID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbkRhdGE+KHBhZ2UsIGRhdGFVcmwpO1xuICBpZiAoZGF0YVJlc3VsdCAmJiBfLmdldChkYXRhUmVzdWx0LCAnSGVhZGVyLlN0YXR1cycpID09PSAnMScgJiYgZGF0YVJlc3VsdC5DYXJkc1RyYW5zYWN0aW9uc0xpc3RCZWFuKSB7XG4gICAgY29uc3QgYWNjb3VudFR4bnM6IFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleCA9IHt9O1xuICAgIGFjY291bnRzLmZvckVhY2goKGFjY291bnQpID0+IHtcbiAgICAgIGNvbnN0IHR4bkdyb3VwczogU2NyYXBlZEN1cnJlbnRDYXJkVHJhbnNhY3Rpb25zW10gPSBfLmdldChkYXRhUmVzdWx0LCBgQ2FyZHNUcmFuc2FjdGlvbnNMaXN0QmVhbi5JbmRleCR7YWNjb3VudC5pbmRleH0uQ3VycmVudENhcmRUcmFuc2FjdGlvbnNgKTtcbiAgICAgIGlmICh0eG5Hcm91cHMpIHtcbiAgICAgICAgbGV0IGFsbFR4bnM6IFRyYW5zYWN0aW9uW10gPSBbXTtcbiAgICAgICAgdHhuR3JvdXBzLmZvckVhY2goKHR4bkdyb3VwKSA9PiB7XG4gICAgICAgICAgaWYgKHR4bkdyb3VwLnR4bklzcmFlbCkge1xuICAgICAgICAgICAgY29uc3QgdHhucyA9IGNvbnZlcnRUcmFuc2FjdGlvbnModHhuR3JvdXAudHhuSXNyYWVsLCBhY2NvdW50LnByb2Nlc3NlZERhdGUpO1xuICAgICAgICAgICAgYWxsVHhucy5wdXNoKC4uLnR4bnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHhuR3JvdXAudHhuQWJyb2FkKSB7XG4gICAgICAgICAgICBjb25zdCB0eG5zID0gY29udmVydFRyYW5zYWN0aW9ucyh0eG5Hcm91cC50eG5BYnJvYWQsIGFjY291bnQucHJvY2Vzc2VkRGF0ZSk7XG4gICAgICAgICAgICBhbGxUeG5zLnB1c2goLi4udHhucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cykge1xuICAgICAgICAgIGFsbFR4bnMgPSBmaXhJbnN0YWxsbWVudHMoYWxsVHhucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMub3V0cHV0RGF0YT8uZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlID8/IHRydWUpIHtcbiAgICAgICAgICBhbGxUeG5zID0gZmlsdGVyT2xkVHJhbnNhY3Rpb25zKGFsbFR4bnMsIHN0YXJ0TW9tZW50LCBvcHRpb25zLmNvbWJpbmVJbnN0YWxsbWVudHMgfHwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIGFjY291bnRUeG5zW2FjY291bnQuYWNjb3VudE51bWJlcl0gPSB7XG4gICAgICAgICAgYWNjb3VudE51bWJlcjogYWNjb3VudC5hY2NvdW50TnVtYmVyLFxuICAgICAgICAgIGluZGV4OiBhY2NvdW50LmluZGV4LFxuICAgICAgICAgIHR4bnM6IGFsbFR4bnMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjY291bnRUeG5zO1xuICB9XG5cbiAgcmV0dXJuIHt9O1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkV4dHJhRGV0YWlscyhzZXJ2aWNlc1VybDogc3RyaW5nLCBtb250aDogTW9tZW50LCBhY2NvdW50SW5kZXg6IG51bWJlciwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogc3RyaW5nIHtcbiAgY29uc3QgbW9lZENoaXV2ID0gbW9udGguZm9ybWF0KCdNTVlZWVknKTtcbiAgcmV0dXJuIGJ1aWxkVXJsKHNlcnZpY2VzVXJsLCB7XG4gICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgIHJlcU5hbWU6ICdQaXJ0ZXlJc2thXzIwNCcsXG4gICAgICBDYXJkSW5kZXg6IGFjY291bnRJbmRleC50b1N0cmluZygpLFxuICAgICAgc2hvdmFyUmF0ejogdHJhbnNhY3Rpb24uaWRlbnRpZmllciEudG9TdHJpbmcoKSxcbiAgICAgIG1vZWRDaGl1dixcbiAgICB9LFxuICB9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGdldEV4dHJhU2NyYXBUcmFuc2FjdGlvbihwYWdlOiBQYWdlLCBvcHRpb25zOiBFeHRlbmRlZFNjcmFwZXJPcHRpb25zLCBtb250aDogTW9tZW50LCBhY2NvdW50SW5kZXg6IG51bWJlciwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICBjb25zdCBkYXRhVXJsID0gZ2V0VHJhbnNhY3Rpb25FeHRyYURldGFpbHMob3B0aW9ucy5zZXJ2aWNlc1VybCwgbW9udGgsIGFjY291bnRJbmRleCwgdHJhbnNhY3Rpb24pO1xuICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbkRhdGE+KHBhZ2UsIGRhdGFVcmwpO1xuICBjb25zdCByYXdDYXRlZ29yeSA9IF8uZ2V0KGRhdGEsICdQaXJ0ZXlJc2thXzIwNEJlYW4uc2VjdG9yJyk7XG4gIHJldHVybiB7XG4gICAgLi4udHJhbnNhY3Rpb24sXG4gICAgY2F0ZWdvcnk6IHJhd0NhdGVnb3J5LnRyaW0oKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RXh0cmFTY3JhcFRyYW5zYWN0aW9ucyhhY2NvdW50V2l0aEluZGV4OiBUcmFuc2FjdGlvbnNBY2NvdW50ICYgeyBpbmRleDogbnVtYmVyIH0sIHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIG1vbnRoOiBtb21lbnQuTW9tZW50KTogUHJvbWlzZTxUcmFuc2FjdGlvbltdPiB7XG4gIGNvbnN0IHByb21pc2VzID0gYWNjb3VudFdpdGhJbmRleC50eG5zXG4gICAgLm1hcCgodCkgPT4gZ2V0RXh0cmFTY3JhcFRyYW5zYWN0aW9uKHBhZ2UsIG9wdGlvbnMsIG1vbnRoLCBhY2NvdW50V2l0aEluZGV4LmluZGV4LCB0KSk7XG4gIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEV4dHJhU2NyYXBBY2NvdW50KHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIGFjY291bnRNYXA6IFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleCwgbW9udGg6IG1vbWVudC5Nb21lbnQpOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleD4ge1xuICBjb25zdCBwcm9taXNlcyA9IE9iamVjdC5rZXlzKGFjY291bnRNYXApXG4gICAgLm1hcChhc3luYyAoYSkgPT4gKHtcbiAgICAgIC4uLmFjY291bnRNYXBbYV0sXG4gICAgICB0eG5zOiBhd2FpdCBnZXRFeHRyYVNjcmFwVHJhbnNhY3Rpb25zKGFjY291bnRNYXBbYV0sIHBhZ2UsIG9wdGlvbnMsIG1vbnRoKSxcbiAgICB9KSk7XG4gIGNvbnN0IGFjY291bnRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICByZXR1cm4gYWNjb3VudHMucmVkdWNlKChtLCB4KSA9PiAoeyAuLi5tLCBbeC5hY2NvdW50TnVtYmVyXTogeCB9KSwge30pO1xufVxuXG5mdW5jdGlvbiBnZXRFeHRyYVNjcmFwKGFjY291bnRzV2l0aEluZGV4OiBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXhbXSwgcGFnZTogUGFnZSwgb3B0aW9uczogRXh0ZW5kZWRTY3JhcGVyT3B0aW9ucywgYWxsTW9udGhzOiBtb21lbnQuTW9tZW50W10pOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleFtdPiB7XG4gIGNvbnN0IGFjdGlvbnMgPSBhY2NvdW50c1dpdGhJbmRleC5tYXAoKGEsIGkpID0+ICgpID0+IGdldEV4dHJhU2NyYXBBY2NvdW50KHBhZ2UsIG9wdGlvbnMsIGEsIGFsbE1vbnRoc1tpXSkpO1xuICByZXR1cm4gcnVuU2VyaWFsKGFjdGlvbnMpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFsbFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBvcHRpb25zOiBFeHRlbmRlZFNjcmFwZXJPcHRpb25zLCBzdGFydE1vbWVudDogTW9tZW50KSB7XG4gIGNvbnN0IGZ1dHVyZU1vbnRoc1RvU2NyYXBlID0gb3B0aW9ucy5mdXR1cmVNb250aHNUb1NjcmFwZSA/PyAxO1xuICBjb25zdCBhbGxNb250aHMgPSBnZXRBbGxNb250aE1vbWVudHMoc3RhcnRNb21lbnQsIGZ1dHVyZU1vbnRoc1RvU2NyYXBlKTtcbiAgY29uc3QgcmVzdWx0czogU2NyYXBlZEFjY291bnRzV2l0aEluZGV4W10gPSBhd2FpdCBQcm9taXNlLmFsbChhbGxNb250aHMubWFwKGFzeW5jIChtb250aE1vbWVudCkgPT4ge1xuICAgIHJldHVybiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlLCBvcHRpb25zLCBzdGFydE1vbWVudCwgbW9udGhNb21lbnQpO1xuICB9KSk7XG5cbiAgY29uc3QgZmluYWxSZXN1bHQgPSBvcHRpb25zLmFkZGl0aW9uYWxUcmFuc2FjdGlvbkluZm9ybWF0aW9uID9cbiAgICBhd2FpdCBnZXRFeHRyYVNjcmFwKHJlc3VsdHMsIHBhZ2UsIG9wdGlvbnMsIGFsbE1vbnRocykgOiByZXN1bHRzO1xuXG4gIGNvbnN0IGNvbWJpbmVkVHhuczogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4gPSB7fTtcblxuICBmaW5hbFJlc3VsdC5mb3JFYWNoKChyZXN1bHQpID0+IHtcbiAgICBPYmplY3Qua2V5cyhyZXN1bHQpLmZvckVhY2goKGFjY291bnROdW1iZXIpID0+IHtcbiAgICAgIGxldCB0eG5zRm9yQWNjb3VudCA9IGNvbWJpbmVkVHhuc1thY2NvdW50TnVtYmVyXTtcbiAgICAgIGlmICghdHhuc0ZvckFjY291bnQpIHtcbiAgICAgICAgdHhuc0ZvckFjY291bnQgPSBbXTtcbiAgICAgICAgY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdID0gdHhuc0ZvckFjY291bnQ7XG4gICAgICB9XG4gICAgICBjb25zdCB0b0JlQWRkZWRUeG5zID0gcmVzdWx0W2FjY291bnROdW1iZXJdLnR4bnM7XG4gICAgICBjb21iaW5lZFR4bnNbYWNjb3VudE51bWJlcl0ucHVzaCguLi50b0JlQWRkZWRUeG5zKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgYWNjb3VudHMgPSBPYmplY3Qua2V5cyhjb21iaW5lZFR4bnMpLm1hcCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50TnVtYmVyLFxuICAgICAgdHhuczogY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdLFxuICAgIH07XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogdHJ1ZSxcbiAgICBhY2NvdW50cyxcbiAgfTtcbn1cblxuXG5jbGFzcyBJc3JhY2FyZEFtZXhCYXNlU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBwcml2YXRlIGJhc2VVcmw6IHN0cmluZztcblxuICBwcml2YXRlIGNvbXBhbnlDb2RlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzZXJ2aWNlc1VybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNjcmFwZXJPcHRpb25zLCBiYXNlVXJsOiBzdHJpbmcsIGNvbXBhbnlDb2RlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMuYmFzZVVybCA9IGJhc2VVcmw7XG4gICAgdGhpcy5jb21wYW55Q29kZSA9IGNvbXBhbnlDb2RlO1xuICAgIHRoaXMuc2VydmljZXNVcmwgPSBgJHtiYXNlVXJsfS9zZXJ2aWNlcy9Qcm94eVJlcXVlc3RIYW5kbGVyLmFzaHhgO1xuICB9XG5cbiAgYXN5bmMgbG9naW4oY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscyk6IFByb21pc2U8U2NhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhZ2Uuc2V0UmVxdWVzdEludGVyY2VwdGlvbih0cnVlKTtcbiAgICB0aGlzLnBhZ2Uub24oJ3JlcXVlc3QnLCAocmVxdWVzdCkgPT4ge1xuICAgICAgaWYgKHJlcXVlc3QudXJsKCkuaW5jbHVkZXMoJ2RldGVjdG9yLWRvbS5taW4uanMnKSkge1xuICAgICAgICBkZWJ1ZygnZm9yY2UgYWJvcnQgZm9yIHJlcXVlc3QgZG8gZG93bmxvYWQgZGV0ZWN0b3ItZG9tLm1pbi5qcyByZXNvdXJjZScpO1xuICAgICAgICByZXF1ZXN0LmFib3J0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXF1ZXN0LmNvbnRpbnVlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkZWJ1ZygnbmF2aWdhdGUgdG8gbG9naW4gcGFnZScpO1xuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhgJHt0aGlzLmJhc2VVcmx9L3BlcnNvbmFsYXJlYS9Mb2dpbmApO1xuXG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dnaW5nSW4pO1xuXG4gICAgY29uc3QgdmFsaWRhdGVVcmwgPSBgJHt0aGlzLnNlcnZpY2VzVXJsfT9yZXFOYW1lPVZhbGlkYXRlSWREYXRhYDtcbiAgICBjb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSB7XG4gICAgICBpZDogY3JlZGVudGlhbHMuaWQsXG4gICAgICBjYXJkU3VmZml4OiBjcmVkZW50aWFscy5jYXJkNkRpZ2l0cyxcbiAgICAgIGNvdW50cnlDb2RlOiBDT1VOVFJZX0NPREUsXG4gICAgICBpZFR5cGU6IElEX1RZUEUsXG4gICAgICBjaGVja0xldmVsOiAnMScsXG4gICAgICBjb21wYW55Q29kZTogdGhpcy5jb21wYW55Q29kZSxcbiAgICB9O1xuICAgIGNvbnN0IHZhbGlkYXRlUmVzdWx0ID0gYXdhaXQgZmV0Y2hQb3N0V2l0aGluUGFnZTxTY3JhcGVkTG9naW5WYWxpZGF0aW9uPih0aGlzLnBhZ2UsIHZhbGlkYXRlVXJsLCB2YWxpZGF0ZVJlcXVlc3QpO1xuICAgIGlmICghdmFsaWRhdGVSZXN1bHQgfHwgIXZhbGlkYXRlUmVzdWx0LkhlYWRlciB8fCB2YWxpZGF0ZVJlc3VsdC5IZWFkZXIuU3RhdHVzICE9PSAnMScgfHwgIXZhbGlkYXRlUmVzdWx0LlZhbGlkYXRlSWREYXRhQmVhbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIGVycm9yIGR1cmluZyBsb2dpbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkYXRlUmV0dXJuQ29kZSA9IHZhbGlkYXRlUmVzdWx0LlZhbGlkYXRlSWREYXRhQmVhbi5yZXR1cm5Db2RlO1xuICAgIGRlYnVnKGB1c2VyIHZhbGlkYXRlIHdpdGggcmV0dXJuIGNvZGUgJyR7dmFsaWRhdGVSZXR1cm5Db2RlfSdgKTtcbiAgICBpZiAodmFsaWRhdGVSZXR1cm5Db2RlID09PSAnMScpIHtcbiAgICAgIGNvbnN0IHsgdXNlck5hbWUgfSA9IHZhbGlkYXRlUmVzdWx0LlZhbGlkYXRlSWREYXRhQmVhbjtcblxuICAgICAgY29uc3QgbG9naW5VcmwgPSBgJHt0aGlzLnNlcnZpY2VzVXJsfT9yZXFOYW1lPXBlcmZvcm1Mb2dvbklgO1xuICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgS29kTWlzaHRhbWVzaDogdXNlck5hbWUsXG4gICAgICAgIE1pc3BhclppaHV5OiBjcmVkZW50aWFscy5pZCxcbiAgICAgICAgU2lzbWE6IGNyZWRlbnRpYWxzLnBhc3N3b3JkLFxuICAgICAgICBjYXJkU3VmZml4OiBjcmVkZW50aWFscy5jYXJkNkRpZ2l0cyxcbiAgICAgICAgY291bnRyeUNvZGU6IENPVU5UUllfQ09ERSxcbiAgICAgICAgaWRUeXBlOiBJRF9UWVBFLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGxvZ2luUmVzdWx0ID0gYXdhaXQgZmV0Y2hQb3N0V2l0aGluUGFnZTx7c3RhdHVzOiBzdHJpbmd9Pih0aGlzLnBhZ2UsIGxvZ2luVXJsLCByZXF1ZXN0KTtcbiAgICAgIGRlYnVnKGB1c2VyIGxvZ2luIHdpdGggc3RhdHVzICcke2xvZ2luUmVzdWx0Py5zdGF0dXN9J2ApO1xuXG4gICAgICBpZiAobG9naW5SZXN1bHQgJiYgbG9naW5SZXN1bHQuc3RhdHVzID09PSAnMScpIHtcbiAgICAgICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpblN1Y2Nlc3MpO1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChsb2dpblJlc3VsdCAmJiBsb2dpblJlc3VsdC5zdGF0dXMgPT09ICczJykge1xuICAgICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkNoYW5nZVBhc3N3b3JkKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkNoYW5nZVBhc3N3b3JkLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2luRmFpbGVkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkludmFsaWRQYXNzd29yZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlUmV0dXJuQ29kZSA9PT0gJzQnKSB7XG4gICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkNoYW5nZVBhc3N3b3JkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkNoYW5nZVBhc3N3b3JkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2luRmFpbGVkKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkludmFsaWRQYXNzd29yZCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCkge1xuICAgIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMub3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICAgIHJldHVybiBmZXRjaEFsbFRyYW5zYWN0aW9ucyh0aGlzLnBhZ2UsIHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHNlcnZpY2VzVXJsOiB0aGlzLnNlcnZpY2VzVXJsLFxuICAgICAgY29tcGFueUNvZGU6IHRoaXMuY29tcGFueUNvZGUsXG4gICAgfSwgc3RhcnRNb21lbnQpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IElzcmFjYXJkQW1leEJhc2VTY3JhcGVyO1xuIl19
@@ -24,7 +24,7 @@ describe('Base scraper with browser', () => {
24
24
  beforeAll(() => {
25
25
  (0, _testsUtils.extendAsyncTimeout)(); // The default timeout is 5 seconds per async test, this function extends the timeout value
26
26
  });
27
- test('should pass custom args to scraper if provided', async () => {
27
+ xtest('should pass custom args to scraper if provided', async () => {
28
28
  const options = _objectSpread({}, testsConfig.options, {
29
29
  companyId: 'test',
30
30
  showBrowser: false,
@@ -63,4 +63,4 @@ describe('Base scraper with browser', () => {
63
63
  }
64
64
  });
65
65
  });
66
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyLnRlc3QudHMiXSwibmFtZXMiOlsidGVzdHNDb25maWciLCJpc05vU2FuZGJveCIsImJyb3dzZXIiLCJhcmdzIiwiX3Byb2Nlc3MiLCJzcGF3bmFyZ3MiLCJpbmNsdWRlcyIsImRlc2NyaWJlIiwiYmVmb3JlQWxsIiwidGVzdCIsIm9wdGlvbnMiLCJjb21wYW55SWQiLCJzaG93QnJvd3NlciIsImJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiaW5pdGlhbGl6ZSIsImV4cGVjdCIsInRvQmVEZWZpbmVkIiwidG9CZSIsInRlcm1pbmF0ZSIsImUiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFHQTs7Ozs7Ozs7QUFFQSxNQUFNQSxXQUFXLEdBQUcsaUNBQXBCOztBQUVBLFNBQVNDLFdBQVQsQ0FBcUJDLE9BQXJCLEVBQW1DO0FBQ2pDO0FBQ0EsUUFBTUMsSUFBSSxHQUFHRCxPQUFPLENBQUNFLFFBQVIsQ0FBaUJDLFNBQTlCO0FBQ0EsU0FBT0YsSUFBSSxDQUFDRyxRQUFMLENBQWMsY0FBZCxDQUFQO0FBQ0Q7O0FBRURDLFFBQVEsQ0FBQywyQkFBRCxFQUE4QixNQUFNO0FBQzFDQyxFQUFBQSxTQUFTLENBQUMsTUFBTTtBQUNkLDBDQURjLENBQ1E7QUFDdkIsR0FGUSxDQUFUO0FBSUFDLEVBQUFBLElBQUksQ0FBQyxnREFBRCxFQUFtRCxZQUFZO0FBQ2pFLFVBQU1DLE9BQU8scUJBQ1JWLFdBQVcsQ0FBQ1UsT0FESjtBQUVYQyxNQUFBQSxTQUFTLEVBQUUsTUFGQTtBQUdYQyxNQUFBQSxXQUFXLEVBQUUsS0FIRjtBQUlYVCxNQUFBQSxJQUFJLEVBQUU7QUFKSyxNQUFiLENBRGlFLENBUWpFOzs7QUFDQSxRQUFJVSxzQkFBc0IsR0FBRyxJQUFJQyw4Q0FBSixDQUEyQkosT0FBM0IsQ0FBN0I7O0FBQ0EsUUFBSTtBQUNGLFlBQU1HLHNCQUFzQixDQUFDRSxVQUF2QixFQUFOLENBREUsQ0FFRjs7QUFDQUMsTUFBQUEsTUFBTSxDQUFDSCxzQkFBc0IsQ0FBQ1gsT0FBeEIsQ0FBTixDQUF1Q2UsV0FBdkMsR0FIRSxDQUlGOztBQUNBRCxNQUFBQSxNQUFNLENBQUNmLFdBQVcsQ0FBQ1ksc0JBQXNCLENBQUNYLE9BQXhCLENBQVosQ0FBTixDQUFvRGdCLElBQXBELENBQXlELEtBQXpEO0FBQ0EsWUFBTUwsc0JBQXNCLENBQUNNLFNBQXZCLENBQWlDLElBQWpDLENBQU47QUFDRCxLQVBELENBT0UsT0FBT0MsQ0FBUCxFQUFVO0FBQ1YsWUFBTVAsc0JBQXNCLENBQUNNLFNBQXZCLENBQWlDLEtBQWpDLENBQU47QUFDQSxZQUFNQyxDQUFOO0FBQ0QsS0FwQmdFLENBc0JqRTs7O0FBQ0FWLElBQUFBLE9BQU8sQ0FBQ1AsSUFBUixHQUFlLENBQ2IsY0FEYSxFQUViLGVBRmEsRUFHYix5QkFIYSxDQUFmO0FBS0FVLElBQUFBLHNCQUFzQixHQUFHLElBQUlDLDhDQUFKLENBQTJCSixPQUEzQixDQUF6Qjs7QUFDQSxRQUFJO0FBQ0YsWUFBTUcsc0JBQXNCLENBQUNFLFVBQXZCLEVBQU4sQ0FERSxDQUVGOztBQUNBQyxNQUFBQSxNQUFNLENBQUNILHNCQUFzQixDQUFDWCxPQUF4QixDQUFOLENBQXVDZSxXQUF2QyxHQUhFLENBSUY7O0FBQ0FELE1BQUFBLE1BQU0sQ0FBQ2YsV0FBVyxDQUFDWSxzQkFBc0IsQ0FBQ1gsT0FBeEIsQ0FBWixDQUFOLENBQW9EZ0IsSUFBcEQsQ0FBeUQsSUFBekQ7QUFDQSxZQUFNTCxzQkFBc0IsQ0FBQ00sU0FBdkIsQ0FBaUMsSUFBakMsQ0FBTjtBQUNELEtBUEQsQ0FPRSxPQUFPQyxDQUFQLEVBQVU7QUFDVixZQUFNUCxzQkFBc0IsQ0FBQ00sU0FBdkIsQ0FBaUMsS0FBakMsQ0FBTjtBQUNBLFlBQU1DLENBQU47QUFDRDtBQUNGLEdBeENHLENBQUo7QUF5Q0QsQ0E5Q08sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGV4dGVuZEFzeW5jVGltZW91dCwgZ2V0VGVzdHNDb25maWcsXG59IGZyb20gJy4uL3Rlc3RzL3Rlc3RzLXV0aWxzJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuXG5jb25zdCB0ZXN0c0NvbmZpZyA9IGdldFRlc3RzQ29uZmlnKCk7XG5cbmZ1bmN0aW9uIGlzTm9TYW5kYm94KGJyb3dzZXI6IGFueSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgY29uc3QgYXJncyA9IGJyb3dzZXIuX3Byb2Nlc3Muc3Bhd25hcmdzO1xuICByZXR1cm4gYXJncy5pbmNsdWRlcygnLS1uby1zYW5kYm94Jyk7XG59XG5cbmRlc2NyaWJlKCdCYXNlIHNjcmFwZXIgd2l0aCBicm93c2VyJywgKCkgPT4ge1xuICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgIGV4dGVuZEFzeW5jVGltZW91dCgpOyAvLyBUaGUgZGVmYXVsdCB0aW1lb3V0IGlzIDUgc2Vjb25kcyBwZXIgYXN5bmMgdGVzdCwgdGhpcyBmdW5jdGlvbiBleHRlbmRzIHRoZSB0aW1lb3V0IHZhbHVlXG4gIH0pO1xuXG4gIHRlc3QoJ3Nob3VsZCBwYXNzIGN1c3RvbSBhcmdzIHRvIHNjcmFwZXIgaWYgcHJvdmlkZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIC4uLnRlc3RzQ29uZmlnLm9wdGlvbnMsXG4gICAgICBjb21wYW55SWQ6ICd0ZXN0JyxcbiAgICAgIHNob3dCcm93c2VyOiBmYWxzZSxcbiAgICAgIGFyZ3M6IFtdLFxuICAgIH07XG5cbiAgICAvLyBhdm9pZCBmYWxzZS1wb3NpdGl2ZSByZXN1bHQgYnkgY29uZmlybWluZyB0aGF0IC0tbm8tc2FuZGJveCBpcyBub3QgYSBkZWZhdWx0IGZsYWcgcHJvdmlkZWQgYnkgcHVwcGV0ZWVyXG4gICAgbGV0IGJhc2VTY3JhcGVyV2l0aEJyb3dzZXIgPSBuZXcgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcihvcHRpb25zKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgYmFzZVNjcmFwZXJXaXRoQnJvd3Nlci5pbml0aWFsaXplKCk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBleHBlY3QoYmFzZVNjcmFwZXJXaXRoQnJvd3Nlci5icm93c2VyKS50b0JlRGVmaW5lZCgpO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgZXhwZWN0KGlzTm9TYW5kYm94KGJhc2VTY3JhcGVyV2l0aEJyb3dzZXIuYnJvd3NlcikpLnRvQmUoZmFsc2UpO1xuICAgICAgYXdhaXQgYmFzZVNjcmFwZXJXaXRoQnJvd3Nlci50ZXJtaW5hdGUodHJ1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXdhaXQgYmFzZVNjcmFwZXJXaXRoQnJvd3Nlci50ZXJtaW5hdGUoZmFsc2UpO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG5cbiAgICAvLyBzZXQgLS1uby1zYW5kYm94IGZsYWcgYW5kIGV4cGVjdCBpdCB0byBiZSBwYXNzZWQgYnkgcHVwcGV0ZWVyLmx1bmNoIHRvIHRoZSBuZXcgY3JlYXRlZCBicm93c2VyIGluc3RhbmNlXG4gICAgb3B0aW9ucy5hcmdzID0gW1xuICAgICAgJy0tbm8tc2FuZGJveCcsXG4gICAgICAnLS1kaXNhYmxlLWdwdScsXG4gICAgICAnLS13aW5kb3ctc2l6ZT0xOTIweDEwODAnLFxuICAgIF07XG4gICAgYmFzZVNjcmFwZXJXaXRoQnJvd3NlciA9IG5ldyBCYXNlU2NyYXBlcldpdGhCcm93c2VyKG9wdGlvbnMpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBiYXNlU2NyYXBlcldpdGhCcm93c2VyLmluaXRpYWxpemUoKTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGV4cGVjdChiYXNlU2NyYXBlcldpdGhCcm93c2VyLmJyb3dzZXIpLnRvQmVEZWZpbmVkKCk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBleHBlY3QoaXNOb1NhbmRib3goYmFzZVNjcmFwZXJXaXRoQnJvd3Nlci5icm93c2VyKSkudG9CZSh0cnVlKTtcbiAgICAgIGF3YWl0IGJhc2VTY3JhcGVyV2l0aEJyb3dzZXIudGVybWluYXRlKHRydWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IGJhc2VTY3JhcGVyV2l0aEJyb3dzZXIudGVybWluYXRlKGZhbHNlKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9KTtcbn0pO1xuIl19
66
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyLnRlc3QudHMiXSwibmFtZXMiOlsidGVzdHNDb25maWciLCJpc05vU2FuZGJveCIsImJyb3dzZXIiLCJhcmdzIiwiX3Byb2Nlc3MiLCJzcGF3bmFyZ3MiLCJpbmNsdWRlcyIsImRlc2NyaWJlIiwiYmVmb3JlQWxsIiwieHRlc3QiLCJvcHRpb25zIiwiY29tcGFueUlkIiwic2hvd0Jyb3dzZXIiLCJiYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImluaXRpYWxpemUiLCJleHBlY3QiLCJ0b0JlRGVmaW5lZCIsInRvQmUiLCJ0ZXJtaW5hdGUiLCJlIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBR0E7Ozs7Ozs7O0FBRUEsTUFBTUEsV0FBVyxHQUFHLGlDQUFwQjs7QUFFQSxTQUFTQyxXQUFULENBQXFCQyxPQUFyQixFQUFtQztBQUNqQztBQUNBLFFBQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDRSxRQUFSLENBQWlCQyxTQUE5QjtBQUNBLFNBQU9GLElBQUksQ0FBQ0csUUFBTCxDQUFjLGNBQWQsQ0FBUDtBQUNEOztBQUVEQyxRQUFRLENBQUMsMkJBQUQsRUFBOEIsTUFBTTtBQUMxQ0MsRUFBQUEsU0FBUyxDQUFDLE1BQU07QUFDZCwwQ0FEYyxDQUNRO0FBQ3ZCLEdBRlEsQ0FBVDtBQUlBQyxFQUFBQSxLQUFLLENBQUMsZ0RBQUQsRUFBbUQsWUFBWTtBQUNsRSxVQUFNQyxPQUFPLHFCQUNSVixXQUFXLENBQUNVLE9BREo7QUFFWEMsTUFBQUEsU0FBUyxFQUFFLE1BRkE7QUFHWEMsTUFBQUEsV0FBVyxFQUFFLEtBSEY7QUFJWFQsTUFBQUEsSUFBSSxFQUFFO0FBSkssTUFBYixDQURrRSxDQVFsRTs7O0FBQ0EsUUFBSVUsc0JBQXNCLEdBQUcsSUFBSUMsOENBQUosQ0FBMkJKLE9BQTNCLENBQTdCOztBQUNBLFFBQUk7QUFDRixZQUFNRyxzQkFBc0IsQ0FBQ0UsVUFBdkIsRUFBTixDQURFLENBRUY7O0FBQ0FDLE1BQUFBLE1BQU0sQ0FBQ0gsc0JBQXNCLENBQUNYLE9BQXhCLENBQU4sQ0FBdUNlLFdBQXZDLEdBSEUsQ0FJRjs7QUFDQUQsTUFBQUEsTUFBTSxDQUFDZixXQUFXLENBQUNZLHNCQUFzQixDQUFDWCxPQUF4QixDQUFaLENBQU4sQ0FBb0RnQixJQUFwRCxDQUF5RCxLQUF6RDtBQUNBLFlBQU1MLHNCQUFzQixDQUFDTSxTQUF2QixDQUFpQyxJQUFqQyxDQUFOO0FBQ0QsS0FQRCxDQU9FLE9BQU9DLENBQVAsRUFBVTtBQUNWLFlBQU1QLHNCQUFzQixDQUFDTSxTQUF2QixDQUFpQyxLQUFqQyxDQUFOO0FBQ0EsWUFBTUMsQ0FBTjtBQUNELEtBcEJpRSxDQXNCbEU7OztBQUNBVixJQUFBQSxPQUFPLENBQUNQLElBQVIsR0FBZSxDQUNiLGNBRGEsRUFFYixlQUZhLEVBR2IseUJBSGEsQ0FBZjtBQUtBVSxJQUFBQSxzQkFBc0IsR0FBRyxJQUFJQyw4Q0FBSixDQUEyQkosT0FBM0IsQ0FBekI7O0FBQ0EsUUFBSTtBQUNGLFlBQU1HLHNCQUFzQixDQUFDRSxVQUF2QixFQUFOLENBREUsQ0FFRjs7QUFDQUMsTUFBQUEsTUFBTSxDQUFDSCxzQkFBc0IsQ0FBQ1gsT0FBeEIsQ0FBTixDQUF1Q2UsV0FBdkMsR0FIRSxDQUlGOztBQUNBRCxNQUFBQSxNQUFNLENBQUNmLFdBQVcsQ0FBQ1ksc0JBQXNCLENBQUNYLE9BQXhCLENBQVosQ0FBTixDQUFvRGdCLElBQXBELENBQXlELElBQXpEO0FBQ0EsWUFBTUwsc0JBQXNCLENBQUNNLFNBQXZCLENBQWlDLElBQWpDLENBQU47QUFDRCxLQVBELENBT0UsT0FBT0MsQ0FBUCxFQUFVO0FBQ1YsWUFBTVAsc0JBQXNCLENBQUNNLFNBQXZCLENBQWlDLEtBQWpDLENBQU47QUFDQSxZQUFNQyxDQUFOO0FBQ0Q7QUFDRixHQXhDSSxDQUFMO0FBeUNELENBOUNPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBleHRlbmRBc3luY1RpbWVvdXQsIGdldFRlc3RzQ29uZmlnLFxufSBmcm9tICcuLi90ZXN0cy90ZXN0cy11dGlscyc7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcblxuY29uc3QgdGVzdHNDb25maWcgPSBnZXRUZXN0c0NvbmZpZygpO1xuXG5mdW5jdGlvbiBpc05vU2FuZGJveChicm93c2VyOiBhbnkpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gIGNvbnN0IGFyZ3MgPSBicm93c2VyLl9wcm9jZXNzLnNwYXduYXJncztcbiAgcmV0dXJuIGFyZ3MuaW5jbHVkZXMoJy0tbm8tc2FuZGJveCcpO1xufVxuXG5kZXNjcmliZSgnQmFzZSBzY3JhcGVyIHdpdGggYnJvd3NlcicsICgpID0+IHtcbiAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICBleHRlbmRBc3luY1RpbWVvdXQoKTsgLy8gVGhlIGRlZmF1bHQgdGltZW91dCBpcyA1IHNlY29uZHMgcGVyIGFzeW5jIHRlc3QsIHRoaXMgZnVuY3Rpb24gZXh0ZW5kcyB0aGUgdGltZW91dCB2YWx1ZVxuICB9KTtcblxuICB4dGVzdCgnc2hvdWxkIHBhc3MgY3VzdG9tIGFyZ3MgdG8gc2NyYXBlciBpZiBwcm92aWRlZCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgLi4udGVzdHNDb25maWcub3B0aW9ucyxcbiAgICAgIGNvbXBhbnlJZDogJ3Rlc3QnLFxuICAgICAgc2hvd0Jyb3dzZXI6IGZhbHNlLFxuICAgICAgYXJnczogW10sXG4gICAgfTtcblxuICAgIC8vIGF2b2lkIGZhbHNlLXBvc2l0aXZlIHJlc3VsdCBieSBjb25maXJtaW5nIHRoYXQgLS1uby1zYW5kYm94IGlzIG5vdCBhIGRlZmF1bHQgZmxhZyBwcm92aWRlZCBieSBwdXBwZXRlZXJcbiAgICBsZXQgYmFzZVNjcmFwZXJXaXRoQnJvd3NlciA9IG5ldyBCYXNlU2NyYXBlcldpdGhCcm93c2VyKG9wdGlvbnMpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBiYXNlU2NyYXBlcldpdGhCcm93c2VyLmluaXRpYWxpemUoKTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGV4cGVjdChiYXNlU2NyYXBlcldpdGhCcm93c2VyLmJyb3dzZXIpLnRvQmVEZWZpbmVkKCk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBleHBlY3QoaXNOb1NhbmRib3goYmFzZVNjcmFwZXJXaXRoQnJvd3Nlci5icm93c2VyKSkudG9CZShmYWxzZSk7XG4gICAgICBhd2FpdCBiYXNlU2NyYXBlcldpdGhCcm93c2VyLnRlcm1pbmF0ZSh0cnVlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCBiYXNlU2NyYXBlcldpdGhCcm93c2VyLnRlcm1pbmF0ZShmYWxzZSk7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIC8vIHNldCAtLW5vLXNhbmRib3ggZmxhZyBhbmQgZXhwZWN0IGl0IHRvIGJlIHBhc3NlZCBieSBwdXBwZXRlZXIubHVuY2ggdG8gdGhlIG5ldyBjcmVhdGVkIGJyb3dzZXIgaW5zdGFuY2VcbiAgICBvcHRpb25zLmFyZ3MgPSBbXG4gICAgICAnLS1uby1zYW5kYm94JyxcbiAgICAgICctLWRpc2FibGUtZ3B1JyxcbiAgICAgICctLXdpbmRvdy1zaXplPTE5MjB4MTA4MCcsXG4gICAgXTtcbiAgICBiYXNlU2NyYXBlcldpdGhCcm93c2VyID0gbmV3IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIob3B0aW9ucyk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGJhc2VTY3JhcGVyV2l0aEJyb3dzZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgZXhwZWN0KGJhc2VTY3JhcGVyV2l0aEJyb3dzZXIuYnJvd3NlcikudG9CZURlZmluZWQoKTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGV4cGVjdChpc05vU2FuZGJveChiYXNlU2NyYXBlcldpdGhCcm93c2VyLmJyb3dzZXIpKS50b0JlKHRydWUpO1xuICAgICAgYXdhaXQgYmFzZVNjcmFwZXJXaXRoQnJvd3Nlci50ZXJtaW5hdGUodHJ1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXdhaXQgYmFzZVNjcmFwZXJXaXRoQnJvd3Nlci50ZXJtaW5hdGUoZmFsc2UpO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH0pO1xufSk7XG4iXX0=
@@ -95,6 +95,21 @@ export interface ScraperOptions {
95
95
  * if set, will set the timeout in milliseconds of puppeteer's `page.setDefaultTimeout`.
96
96
  */
97
97
  defaultTimeout?: number;
98
+ /**
99
+ * Options for manipulation of output data
100
+ */
101
+ outputData?: OutputDataOptions;
102
+ /**
103
+ * Perform additional operation for each transaction to get more information (Like category) about it.
104
+ * Please note: It will take more time to finish the process.
105
+ */
106
+ additionalTransactionInformation?: boolean;
107
+ }
108
+ export interface OutputDataOptions {
109
+ /**
110
+ * if true, the result wouldn't be filtered out by date, and you will return unfiltered scrapped data.
111
+ */
112
+ enableTransactionsFilterByDate?: boolean;
98
113
  }
99
114
  export declare enum ScaperProgressTypes {
100
115
  Initializing = "INITIALIZING",
@@ -140,4 +140,4 @@ class BaseScraper {
140
140
  }
141
141
 
142
142
  exports.BaseScraper = BaseScraper;
143
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXIudHMiXSwibmFtZXMiOlsiU0NSQVBFX1BST0dSRVNTIiwiU2NyYXBlckVycm9yVHlwZXMiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiY3JlYXRlRXJyb3JSZXN1bHQiLCJlcnJvclR5cGUiLCJlcnJvck1lc3NhZ2UiLCJzdWNjZXNzIiwiY3JlYXRlVGltZW91dEVycm9yIiwiVGltZW91dCIsImNyZWF0ZUdlbmVyaWNFcnJvciIsIkdlbmVyaWMiLCJCYXNlU2NyYXBlciIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsIkV2ZW50RW1pdHRlciIsImluaXRpYWxpemUiLCJlbWl0UHJvZ3Jlc3MiLCJJbml0aWFsaXppbmciLCJtb21lbnQiLCJ0eiIsInNldERlZmF1bHQiLCJzY3JhcGUiLCJjcmVkZW50aWFscyIsIlN0YXJ0U2NyYXBpbmciLCJsb2dpblJlc3VsdCIsImxvZ2luIiwiZSIsIlRpbWVvdXRFcnJvciIsIm1lc3NhZ2UiLCJzY3JhcGVSZXN1bHQiLCJmZXRjaERhdGEiLCJ0ZXJtaW5hdGUiLCJFbmRTY3JhcGluZyIsIl9jcmVkZW50aWFscyIsIkVycm9yIiwiY29tcGFueUlkIiwiX3N1Y2Nlc3MiLCJUZXJtaW5hdGluZyIsInR5cGUiLCJlbWl0IiwiZXZlbnROYW1lIiwicGF5bG9hZCIsImV2ZW50RW1pdHRlciIsIm9uUHJvZ3Jlc3MiLCJmdW5jIiwib24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOzs7Ozs7QUFJQSxNQUFNQSxlQUFlLEdBQUcsaUJBQXhCO0lBRVlDLGlCOzs7V0FBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7R0FBQUEsaUIsaUNBQUFBLGlCOztJQW1IQUMsbUI7OztXQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtBQUFBQSxFQUFB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LFNBQU4sR0FBaUQ7QUFDL0MsVUFBTSxJQUFJSSxLQUFKLENBQVcsaUNBQWdDLEtBQUtyQixPQUFMLENBQWFzQixTQUFVLEVBQWxFLENBQU47QUFDRCxHQTFEc0IsQ0E0RHZCOzs7QUFDQSxRQUFNSixTQUFOLENBQWdCSyxRQUFoQixFQUFtQztBQUNqQyxTQUFLcEIsWUFBTCxDQUFrQmQsbUJBQW1CLENBQUNtQyxXQUF0QztBQUNEOztBQUVEckIsRUFBQUEsWUFBWSxDQUFDc0IsSUFBRCxFQUE0QjtBQUN0QyxTQUFLQyxJQUFMLENBQVV2QyxlQUFWLEVBQTJCO0FBQUVzQyxNQUFBQTtBQUFGLEtBQTNCO0FBQ0Q7O0FBRURDLEVBQUFBLElBQUksQ0FBQ0MsU0FBRCxFQUFvQkMsT0FBcEIsRUFBa0Q7QUFDcEQsU0FBS0MsWUFBTCxDQUFrQkgsSUFBbEIsQ0FBdUJDLFNBQXZCLEVBQWtDLEtBQUszQixPQUFMLENBQWFzQixTQUEvQyxFQUEwRE0sT0FBMUQ7QUFDRDs7QUFFREUsRUFBQUEsVUFBVSxDQUFDQyxJQUFELEVBQWlDO0FBQ3pDLFNBQUtGLFlBQUwsQ0FBa0JHLEVBQWxCLENBQXFCN0MsZUFBckIsRUFBc0M0QyxJQUF0QztBQUNEOztBQTNFc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuaW1wb3J0IHsgQnJvd3NlciwgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC10aW1lem9uZSc7XG5pbXBvcnQgeyBUaW1lb3V0RXJyb3IgfSBmcm9tICcuLi9oZWxwZXJzL3dhaXRpbmcnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25zQWNjb3VudCB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBDb21wYW55VHlwZXMgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XG5cbmNvbnN0IFNDUkFQRV9QUk9HUkVTUyA9ICdTQ1JBUEVfUFJPR1JFU1MnO1xuXG5leHBvcnQgZW51bSBTY3JhcGVyRXJyb3JUeXBlcyB7XG4gIEludmFsaWRQYXNzd29yZCA9J0lOVkFMSURfUEFTU1dPUkQnLFxuICBDaGFuZ2VQYXNzd29yZCA9ICdDSEFOR0VfUEFTU1dPUkQnLFxuICBUaW1lb3V0ID0gJ1RJTUVPVVQnLFxuICBBY2NvdW50QmxvY2tlZCA9ICdBQ0NPVU5UX0JMT0NLRUQnLFxuICBHZW5lcmljID0gJ0dFTkVSSUMnLFxuICBHZW5lcmFsID0gJ0dFTkVSQUxfRVJST1InXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhcGVyTG9naW5SZXN1bHQge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBlcnJvclR5cGU/OiBTY3JhcGVyRXJyb3JUeXBlcztcbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nOyAvLyBvbmx5IG9uIHN1Y2Nlc3M9ZmFsc2Vcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdXR1cmVEZWJpdCB7XG4gIGFtb3VudDogbnVtYmVyO1xuICBhbW91bnRDdXJyZW5jeTogc3RyaW5nO1xuICBjaGFyZ2VEYXRlPzogc3RyaW5nO1xuICBiYW5rQWNjb3VudE51bWJlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2FwZXJTY3JhcGluZ1Jlc3VsdCB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGFjY291bnRzPzogVHJhbnNhY3Rpb25zQWNjb3VudFtdO1xuICBmdXR1cmVEZWJpdHM/OiBGdXR1cmVEZWJpdFtdO1xuICBlcnJvclR5cGU/OiBTY3JhcGVyRXJyb3JUeXBlcztcbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nOyAvLyBvbmx5IG9uIHN1Y2Nlc3M9ZmFsc2Vcbn1cblxuZXhwb3J0IHR5cGUgU2NyYXBlckNyZWRlbnRpYWxzID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBTY3JhcGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29tcGFueSB5b3Ugd2FudCB0byBzY3JhcGVcbiAgICovXG4gIGNvbXBhbnlJZDogQ29tcGFueVR5cGVzO1xuXG4gIC8qKlxuICAgKiBpbmNsdWRlIG1vcmUgZGVidWcgaW5mbyBhYm91dCBpbiB0aGUgb3V0cHV0XG4gICAqL1xuICB2ZXJib3NlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogdGhlIGRhdGUgdG8gZmV0Y2ggdHJhbnNhY3Rpb25zIGZyb20gKGNhbid0IGJlIGJlZm9yZSB0aGUgbWluaW11bSBhbGxvd2VkIHRpbWUgZGlmZmVyZW5jZSBmb3IgdGhlIHNjcmFwZXIpXG4gICAqL1xuICBzdGFydERhdGU6IERhdGU7XG5cbiAgLyoqXG4gICAqIHNob3dzIHRoZSBicm93c2VyIHdoaWxlIHNjcmFwaW5nLCBnb29kIGZvciBkZWJ1Z2dpbmcgKGRlZmF1bHQgZmFsc2UpXG4gICAqL1xuICBzaG93QnJvd3Nlcj86IGJvb2xlYW47XG5cblxuICAvKipcbiAgICogc2NyYXBlIHRyYW5zYWN0aW9ucyB0byBiZSBwcm9jZXNzZWQgWCBtb250aHMgaW4gdGhlIGZ1dHVyZVxuICAgKi9cbiAgZnV0dXJlTW9udGhzVG9TY3JhcGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIG9wdGlvbiBmcm9tIGluaXQgcHVwcGV0ZWVyIGJyb3dzZXIgaW5zdGFuY2Ugb3V0c2lkZSB0aGUgbGliYXJ5IHNjb3BlLiB5b3UgY2FuIGdldFxuICAgKiBicm93c2VyIGRpcmV0bHkgZnJvbSBwdXBwZXRlZXIgdmlhIGBwdXBwZXRlZXIubGF1bmNoKClgXG4gICAqL1xuICBicm93c2VyPzogYW55O1xuXG4gIC8qKlxuICAgKiBwcm92aWRlIGEgcGF0Y2ggdG8gbG9jYWwgY2hyb21pdW0gdG8gYmUgdXNlZCBieSBwdXBwZXRlZXIuIFJlbGV2YW50IHdoZW4gdXNpbmdcbiAgICogYGlzcmFlbGktYmFuay1zY3JhcGVycy1jb3JlYCBsaWJyYXJ5XG4gICAqL1xuICBleGVjdXRhYmxlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogaWYgc2V0IHRvIHRydWUsIGFsbCBpbnN0YWxsbWVudCB0cmFuc2FjdGlvbnMgd2lsbCBiZSBjb21iaW5lIGludG8gdGhlIGZpcnN0IG9uZVxuICAgKi9cbiAgY29tYmluZUluc3RhbGxtZW50cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGJyb3dzZXIgaW5zdGFuY2UuIFRoZSBsaXN0IG9mIGZsYWdzIGNhbiBiZSBmb3VuZCBpblxuICAgKlxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL01vemlsbGEvQ29tbWFuZF9MaW5lX09wdGlvbnNcbiAgICogaHR0cHM6Ly9wZXRlci5zaC9leHBlcmltZW50cy9jaHJvbWl1bS1jb21tYW5kLWxpbmUtc3dpdGNoZXMvXG4gICAqL1xuICBhcmdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbmF2aWdhdGlvbiB0aW1lIGluIG1pbGxpc2Vjb25kcywgcGFzcyAwIHRvIGRpc2FibGUgdGltZW91dC5cbiAgICogQGRlZmF1bHQgMzAwMDBcbiAgICovXG4gIHRpbWVvdXQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIGFkanVzdCB0aGUgYnJvd3NlciBpbnN0YW5jZSBiZWZvcmUgaXQgaXMgYmVpbmcgdXNlZFxuICAgKlxuICAgKiBAcGFyYW0gYnJvd3NlclxuICAgKi9cbiAgcHJlcGFyZUJyb3dzZXI/OiAoYnJvd3NlcjogQnJvd3NlcikgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogYWRqdXN0IHRoZSBwYWdlIGluc3RhbmNlIGJlZm9yZSBpdCBpcyBiZWluZyB1c2VkLlxuICAgKlxuICAgKiBAcGFyYW0gcGFnZVxuICAgKi9cbiAgcHJlcGFyZVBhZ2U/OiAocGFnZTogUGFnZSkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogaWYgc2V0LCBzdG9yZSBhIHNjcmVlbnNob3QgaWYgZmFpbGVkIHRvIHNjcmFwZS4gVXNlZCBmb3IgZGVidWcgcHVycG9zZXNcbiAgICovXG4gIHN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBpZiBzZXQsIHdpbGwgc2V0IHRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBvZiBwdXBwZXRlZXIncyBgcGFnZS5zZXREZWZhdWx0VGltZW91dGAuXG4gICAqL1xuICBkZWZhdWx0VGltZW91dD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gU2NhcGVyUHJvZ3Jlc3NUeXBlcyB7XG4gIEluaXRpYWxpemluZyA9ICdJTklUSUFMSVpJTkcnLFxuICBTdGFydFNjcmFwaW5nID0gJ1NUQVJUX1NDUkFQSU5HJyxcbiAgTG9nZ2luZ0luID0gJ0xPR0dJTkdfSU4nLFxuICBMb2dpblN1Y2Nlc3MgPSAnTE9HSU5fU1VDQ0VTUycsXG4gIExvZ2luRmFpbGVkID0gJ0xPR0lOX0ZBSUxFRCcsXG4gIENoYW5nZVBhc3N3b3JkID0gJ0NIQU5HRV9QQVNTV09SRCcsXG4gIEVuZFNjcmFwaW5nID0gJ0VORF9TQ1JBUElORycsXG4gIFRlcm1pbmF0aW5nID0gJ1RFUk1JTkFUSU5HJyxcbn1cblxuZnVuY3Rpb24gY3JlYXRlRXJyb3JSZXN1bHQoZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcywgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHtcbiAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICBlcnJvclR5cGUsXG4gICAgZXJyb3JNZXNzYWdlLFxuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVUaW1lb3V0RXJyb3IoZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUVycm9yUmVzdWx0KFNjcmFwZXJFcnJvclR5cGVzLlRpbWVvdXQsIGVycm9yTWVzc2FnZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUdlbmVyaWNFcnJvcihlcnJvck1lc3NhZ2U6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlRXJyb3JSZXN1bHQoU2NyYXBlckVycm9yVHlwZXMuR2VuZXJpYywgZXJyb3JNZXNzYWdlKTtcbn1cblxuZXhwb3J0IGNsYXNzIEJhc2VTY3JhcGVyIHtcbiAgcHJpdmF0ZSBldmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIG9wdGlvbnM6IFNjcmFwZXJPcHRpb25zKSB7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Jbml0aWFsaXppbmcpO1xuICAgIG1vbWVudC50ei5zZXREZWZhdWx0KCdBc2lhL0plcnVzYWxlbScpO1xuICB9XG5cbiAgYXN5bmMgc2NyYXBlKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5TdGFydFNjcmFwaW5nKTtcbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemUoKTtcblxuICAgIGxldCBsb2dpblJlc3VsdDtcbiAgICB0cnkge1xuICAgICAgbG9naW5SZXN1bHQgPSBhd2FpdCB0aGlzLmxvZ2luKGNyZWRlbnRpYWxzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsb2dpblJlc3VsdCA9IGUgaW5zdGFuY2VvZiBUaW1lb3V0RXJyb3IgP1xuICAgICAgICBjcmVhdGVUaW1lb3V0RXJyb3IoZS5tZXNzYWdlKSA6XG4gICAgICAgIGNyZWF0ZUdlbmVyaWNFcnJvcihlLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGxldCBzY3JhcGVSZXN1bHQ7XG4gICAgaWYgKGxvZ2luUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNjcmFwZVJlc3VsdCA9IGF3YWl0IHRoaXMuZmV0Y2hEYXRhKCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHNjcmFwZVJlc3VsdCA9XG4gICAgICAgICAgZSBpbnN0YW5jZW9mIFRpbWVvdXRFcnJvciA/XG4gICAgICAgICAgICBjcmVhdGVUaW1lb3V0RXJyb3IoZS5tZXNzYWdlKSA6XG4gICAgICAgICAgICBjcmVhdGVHZW5lcmljRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2NyYXBlUmVzdWx0ID0gbG9naW5SZXN1bHQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBzY3JhcGVSZXN1bHQgJiYgc2NyYXBlUmVzdWx0LnN1Y2Nlc3MgPT09IHRydWU7XG4gICAgICBhd2FpdCB0aGlzLnRlcm1pbmF0ZShzdWNjZXNzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBzY3JhcGVSZXN1bHQgPSBjcmVhdGVHZW5lcmljRXJyb3IoZS5tZXNzYWdlKTtcbiAgICB9XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5FbmRTY3JhcGluZyk7XG5cbiAgICByZXR1cm4gc2NyYXBlUmVzdWx0O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbiAgYXN5bmMgbG9naW4oX2NyZWRlbnRpYWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxTY2FwZXJMb2dpblJlc3VsdD4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgbG9naW4oKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGZldGNoRGF0YSgpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBmZXRjaERhdGEoKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvcmVxdWlyZS1hd2FpdFxuICBhc3luYyB0ZXJtaW5hdGUoX3N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLlRlcm1pbmF0aW5nKTtcbiAgfVxuXG4gIGVtaXRQcm9ncmVzcyh0eXBlOiBTY2FwZXJQcm9ncmVzc1R5cGVzKSB7XG4gICAgdGhpcy5lbWl0KFNDUkFQRV9QUk9HUkVTUywgeyB0eXBlIH0pO1xuICB9XG5cbiAgZW1pdChldmVudE5hbWU6IHN0cmluZywgcGF5bG9hZDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIHRoaXMuZXZlbnRFbWl0dGVyLmVtaXQoZXZlbnROYW1lLCB0aGlzLm9wdGlvbnMuY29tcGFueUlkLCBwYXlsb2FkKTtcbiAgfVxuXG4gIG9uUHJvZ3Jlc3MoZnVuYzogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5ldmVudEVtaXR0ZXIub24oU0NSQVBFX1BST0dSRVNTLCBmdW5jKTtcbiAgfVxufVxuIl19
143
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXIudHMiXSwibmFtZXMiOlsiU0NSQVBFX1BST0dSRVNTIiwiU2NyYXBlckVycm9yVHlwZXMiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiY3JlYXRlRXJyb3JSZXN1bHQiLCJlcnJvclR5cGUiLCJlcnJvck1lc3NhZ2UiLCJzdWNjZXNzIiwiY3JlYXRlVGltZW91dEVycm9yIiwiVGltZW91dCIsImNyZWF0ZUdlbmVyaWNFcnJvciIsIkdlbmVyaWMiLCJCYXNlU2NyYXBlciIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsIkV2ZW50RW1pdHRlciIsImluaXRpYWxpemUiLCJlbWl0UHJvZ3Jlc3MiLCJJbml0aWFsaXppbmciLCJtb21lbnQiLCJ0eiIsInNldERlZmF1bHQiLCJzY3JhcGUiLCJjcmVkZW50aWFscyIsIlN0YXJ0U2NyYXBpbmciLCJsb2dpblJlc3VsdCIsImxvZ2luIiwiZSIsIlRpbWVvdXRFcnJvciIsIm1lc3NhZ2UiLCJzY3JhcGVSZXN1bHQiLCJmZXRjaERhdGEiLCJ0ZXJtaW5hdGUiLCJFbmRTY3JhcGluZyIsIl9jcmVkZW50aWFscyIsIkVycm9yIiwiY29tcGFueUlkIiwiX3N1Y2Nlc3MiLCJUZXJtaW5hdGluZyIsInR5cGUiLCJlbWl0IiwiZXZlbnROYW1lIiwicGF5bG9hZCIsImV2ZW50RW1pdHRlciIsIm9uUHJvZ3Jlc3MiLCJmdW5jIiwib24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOzs7Ozs7QUFJQSxNQUFNQSxlQUFlLEdBQUcsaUJBQXhCO0lBRVlDLGlCOzs7V0FBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7QUFBQUEsRUFBQUEsaUI7R0FBQUEsaUIsaUNBQUFBLGlCOztJQXFJQUMsbUI7OztXQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtBQUFBQSxFQUFB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LFNBQU4sR0FBaUQ7QUFDL0MsVUFBTSxJQUFJSSxLQUFKLENBQVcsaUNBQWdDLEtBQUtyQixPQUFMLENBQWFzQixTQUFVLEVBQWxFLENBQU47QUFDRCxHQTFEc0IsQ0E0RHZCOzs7QUFDQSxRQUFNSixTQUFOLENBQWdCSyxRQUFoQixFQUFtQztBQUNqQyxTQUFLcEIsWUFBTCxDQUFrQmQsbUJBQW1CLENBQUNtQyxXQUF0QztBQUNEOztBQUVEckIsRUFBQUEsWUFBWSxDQUFDc0IsSUFBRCxFQUE0QjtBQUN0QyxTQUFLQyxJQUFMLENBQVV2QyxlQUFWLEVBQTJCO0FBQUVzQyxNQUFBQTtBQUFGLEtBQTNCO0FBQ0Q7O0FBRURDLEVBQUFBLElBQUksQ0FBQ0MsU0FBRCxFQUFvQkMsT0FBcEIsRUFBa0Q7QUFDcEQsU0FBS0MsWUFBTCxDQUFrQkgsSUFBbEIsQ0FBdUJDLFNBQXZCLEVBQWtDLEtBQUszQixPQUFMLENBQWFzQixTQUEvQyxFQUEwRE0sT0FBMUQ7QUFDRDs7QUFFREUsRUFBQUEsVUFBVSxDQUFDQyxJQUFELEVBQWlDO0FBQ3pDLFNBQUtGLFlBQUwsQ0FBa0JHLEVBQWxCLENBQXFCN0MsZUFBckIsRUFBc0M0QyxJQUF0QztBQUNEOztBQTNFc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuaW1wb3J0IHsgQnJvd3NlciwgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC10aW1lem9uZSc7XG5pbXBvcnQgeyBUaW1lb3V0RXJyb3IgfSBmcm9tICcuLi9oZWxwZXJzL3dhaXRpbmcnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25zQWNjb3VudCB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBDb21wYW55VHlwZXMgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XG5cbmNvbnN0IFNDUkFQRV9QUk9HUkVTUyA9ICdTQ1JBUEVfUFJPR1JFU1MnO1xuXG5leHBvcnQgZW51bSBTY3JhcGVyRXJyb3JUeXBlcyB7XG4gIEludmFsaWRQYXNzd29yZCA9J0lOVkFMSURfUEFTU1dPUkQnLFxuICBDaGFuZ2VQYXNzd29yZCA9ICdDSEFOR0VfUEFTU1dPUkQnLFxuICBUaW1lb3V0ID0gJ1RJTUVPVVQnLFxuICBBY2NvdW50QmxvY2tlZCA9ICdBQ0NPVU5UX0JMT0NLRUQnLFxuICBHZW5lcmljID0gJ0dFTkVSSUMnLFxuICBHZW5lcmFsID0gJ0dFTkVSQUxfRVJST1InXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhcGVyTG9naW5SZXN1bHQge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBlcnJvclR5cGU/OiBTY3JhcGVyRXJyb3JUeXBlcztcbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nOyAvLyBvbmx5IG9uIHN1Y2Nlc3M9ZmFsc2Vcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdXR1cmVEZWJpdCB7XG4gIGFtb3VudDogbnVtYmVyO1xuICBhbW91bnRDdXJyZW5jeTogc3RyaW5nO1xuICBjaGFyZ2VEYXRlPzogc3RyaW5nO1xuICBiYW5rQWNjb3VudE51bWJlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2FwZXJTY3JhcGluZ1Jlc3VsdCB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGFjY291bnRzPzogVHJhbnNhY3Rpb25zQWNjb3VudFtdO1xuICBmdXR1cmVEZWJpdHM/OiBGdXR1cmVEZWJpdFtdO1xuICBlcnJvclR5cGU/OiBTY3JhcGVyRXJyb3JUeXBlcztcbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nOyAvLyBvbmx5IG9uIHN1Y2Nlc3M9ZmFsc2Vcbn1cblxuZXhwb3J0IHR5cGUgU2NyYXBlckNyZWRlbnRpYWxzID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBTY3JhcGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29tcGFueSB5b3Ugd2FudCB0byBzY3JhcGVcbiAgICovXG4gIGNvbXBhbnlJZDogQ29tcGFueVR5cGVzO1xuXG4gIC8qKlxuICAgKiBpbmNsdWRlIG1vcmUgZGVidWcgaW5mbyBhYm91dCBpbiB0aGUgb3V0cHV0XG4gICAqL1xuICB2ZXJib3NlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogdGhlIGRhdGUgdG8gZmV0Y2ggdHJhbnNhY3Rpb25zIGZyb20gKGNhbid0IGJlIGJlZm9yZSB0aGUgbWluaW11bSBhbGxvd2VkIHRpbWUgZGlmZmVyZW5jZSBmb3IgdGhlIHNjcmFwZXIpXG4gICAqL1xuICBzdGFydERhdGU6IERhdGU7XG5cbiAgLyoqXG4gICAqIHNob3dzIHRoZSBicm93c2VyIHdoaWxlIHNjcmFwaW5nLCBnb29kIGZvciBkZWJ1Z2dpbmcgKGRlZmF1bHQgZmFsc2UpXG4gICAqL1xuICBzaG93QnJvd3Nlcj86IGJvb2xlYW47XG5cblxuICAvKipcbiAgICogc2NyYXBlIHRyYW5zYWN0aW9ucyB0byBiZSBwcm9jZXNzZWQgWCBtb250aHMgaW4gdGhlIGZ1dHVyZVxuICAgKi9cbiAgZnV0dXJlTW9udGhzVG9TY3JhcGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIG9wdGlvbiBmcm9tIGluaXQgcHVwcGV0ZWVyIGJyb3dzZXIgaW5zdGFuY2Ugb3V0c2lkZSB0aGUgbGliYXJ5IHNjb3BlLiB5b3UgY2FuIGdldFxuICAgKiBicm93c2VyIGRpcmV0bHkgZnJvbSBwdXBwZXRlZXIgdmlhIGBwdXBwZXRlZXIubGF1bmNoKClgXG4gICAqL1xuICBicm93c2VyPzogYW55O1xuXG4gIC8qKlxuICAgKiBwcm92aWRlIGEgcGF0Y2ggdG8gbG9jYWwgY2hyb21pdW0gdG8gYmUgdXNlZCBieSBwdXBwZXRlZXIuIFJlbGV2YW50IHdoZW4gdXNpbmdcbiAgICogYGlzcmFlbGktYmFuay1zY3JhcGVycy1jb3JlYCBsaWJyYXJ5XG4gICAqL1xuICBleGVjdXRhYmxlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogaWYgc2V0IHRvIHRydWUsIGFsbCBpbnN0YWxsbWVudCB0cmFuc2FjdGlvbnMgd2lsbCBiZSBjb21iaW5lIGludG8gdGhlIGZpcnN0IG9uZVxuICAgKi9cbiAgY29tYmluZUluc3RhbGxtZW50cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGJyb3dzZXIgaW5zdGFuY2UuIFRoZSBsaXN0IG9mIGZsYWdzIGNhbiBiZSBmb3VuZCBpblxuICAgKlxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL01vemlsbGEvQ29tbWFuZF9MaW5lX09wdGlvbnNcbiAgICogaHR0cHM6Ly9wZXRlci5zaC9leHBlcmltZW50cy9jaHJvbWl1bS1jb21tYW5kLWxpbmUtc3dpdGNoZXMvXG4gICAqL1xuICBhcmdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbmF2aWdhdGlvbiB0aW1lIGluIG1pbGxpc2Vjb25kcywgcGFzcyAwIHRvIGRpc2FibGUgdGltZW91dC5cbiAgICogQGRlZmF1bHQgMzAwMDBcbiAgICovXG4gIHRpbWVvdXQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIGFkanVzdCB0aGUgYnJvd3NlciBpbnN0YW5jZSBiZWZvcmUgaXQgaXMgYmVpbmcgdXNlZFxuICAgKlxuICAgKiBAcGFyYW0gYnJvd3NlclxuICAgKi9cbiAgcHJlcGFyZUJyb3dzZXI/OiAoYnJvd3NlcjogQnJvd3NlcikgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogYWRqdXN0IHRoZSBwYWdlIGluc3RhbmNlIGJlZm9yZSBpdCBpcyBiZWluZyB1c2VkLlxuICAgKlxuICAgKiBAcGFyYW0gcGFnZVxuICAgKi9cbiAgcHJlcGFyZVBhZ2U/OiAocGFnZTogUGFnZSkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogaWYgc2V0LCBzdG9yZSBhIHNjcmVlbnNob3QgaWYgZmFpbGVkIHRvIHNjcmFwZS4gVXNlZCBmb3IgZGVidWcgcHVycG9zZXNcbiAgICovXG4gIHN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBpZiBzZXQsIHdpbGwgc2V0IHRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBvZiBwdXBwZXRlZXIncyBgcGFnZS5zZXREZWZhdWx0VGltZW91dGAuXG4gICAqL1xuICBkZWZhdWx0VGltZW91dD86IG51bWJlcjtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgbWFuaXB1bGF0aW9uIG9mIG91dHB1dCBkYXRhXG4gICAqL1xuICBvdXRwdXREYXRhPzogT3V0cHV0RGF0YU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gYWRkaXRpb25hbCBvcGVyYXRpb24gZm9yIGVhY2ggdHJhbnNhY3Rpb24gdG8gZ2V0IG1vcmUgaW5mb3JtYXRpb24gKExpa2UgY2F0ZWdvcnkpIGFib3V0IGl0LlxuICAgKiBQbGVhc2Ugbm90ZTogSXQgd2lsbCB0YWtlIG1vcmUgdGltZSB0byBmaW5pc2ggdGhlIHByb2Nlc3MuXG4gICAqL1xuICBhZGRpdGlvbmFsVHJhbnNhY3Rpb25JbmZvcm1hdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0RGF0YU9wdGlvbnMge1xuICAvKipcbiAgICogaWYgdHJ1ZSwgdGhlIHJlc3VsdCB3b3VsZG4ndCBiZSBmaWx0ZXJlZCBvdXQgYnkgZGF0ZSwgYW5kIHlvdSB3aWxsIHJldHVybiB1bmZpbHRlcmVkIHNjcmFwcGVkIGRhdGEuXG4gICAqL1xuICBlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZW51bSBTY2FwZXJQcm9ncmVzc1R5cGVzIHtcbiAgSW5pdGlhbGl6aW5nID0gJ0lOSVRJQUxJWklORycsXG4gIFN0YXJ0U2NyYXBpbmcgPSAnU1RBUlRfU0NSQVBJTkcnLFxuICBMb2dnaW5nSW4gPSAnTE9HR0lOR19JTicsXG4gIExvZ2luU3VjY2VzcyA9ICdMT0dJTl9TVUNDRVNTJyxcbiAgTG9naW5GYWlsZWQgPSAnTE9HSU5fRkFJTEVEJyxcbiAgQ2hhbmdlUGFzc3dvcmQgPSAnQ0hBTkdFX1BBU1NXT1JEJyxcbiAgRW5kU2NyYXBpbmcgPSAnRU5EX1NDUkFQSU5HJyxcbiAgVGVybWluYXRpbmcgPSAnVEVSTUlOQVRJTkcnLFxufVxuXG5mdW5jdGlvbiBjcmVhdGVFcnJvclJlc3VsdChlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLCBlcnJvck1lc3NhZ2U6IHN0cmluZykge1xuICByZXR1cm4ge1xuICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgIGVycm9yVHlwZSxcbiAgICBlcnJvck1lc3NhZ2UsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVRpbWVvdXRFcnJvcihlcnJvck1lc3NhZ2U6IHN0cmluZykge1xuICByZXR1cm4gY3JlYXRlRXJyb3JSZXN1bHQoU2NyYXBlckVycm9yVHlwZXMuVGltZW91dCwgZXJyb3JNZXNzYWdlKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlR2VuZXJpY0Vycm9yKGVycm9yTWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVFcnJvclJlc3VsdChTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmljLCBlcnJvck1lc3NhZ2UpO1xufVxuXG5leHBvcnQgY2xhc3MgQmFzZVNjcmFwZXIge1xuICBwcml2YXRlIGV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3B0aW9uczogU2NyYXBlck9wdGlvbnMpIHtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSAgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbiAgYXN5bmMgaW5pdGlhbGl6ZSgpIHtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkluaXRpYWxpemluZyk7XG4gICAgbW9tZW50LnR6LnNldERlZmF1bHQoJ0FzaWEvSmVydXNhbGVtJyk7XG4gIH1cblxuICBhc3luYyBzY3JhcGUoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscyk6IFByb21pc2U8U2NhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLlN0YXJ0U2NyYXBpbmcpO1xuICAgIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZSgpO1xuXG4gICAgbGV0IGxvZ2luUmVzdWx0O1xuICAgIHRyeSB7XG4gICAgICBsb2dpblJlc3VsdCA9IGF3YWl0IHRoaXMubG9naW4oY3JlZGVudGlhbHMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZ2luUmVzdWx0ID0gZSBpbnN0YW5jZW9mIFRpbWVvdXRFcnJvciA/XG4gICAgICAgIGNyZWF0ZVRpbWVvdXRFcnJvcihlLm1lc3NhZ2UpIDpcbiAgICAgICAgY3JlYXRlR2VuZXJpY0Vycm9yKGUubWVzc2FnZSk7XG4gICAgfVxuXG4gICAgbGV0IHNjcmFwZVJlc3VsdDtcbiAgICBpZiAobG9naW5SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgc2NyYXBlUmVzdWx0ID0gYXdhaXQgdGhpcy5mZXRjaERhdGEoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgc2NyYXBlUmVzdWx0ID1cbiAgICAgICAgICBlIGluc3RhbmNlb2YgVGltZW91dEVycm9yID9cbiAgICAgICAgICAgIGNyZWF0ZVRpbWVvdXRFcnJvcihlLm1lc3NhZ2UpIDpcbiAgICAgICAgICAgIGNyZWF0ZUdlbmVyaWNFcnJvcihlLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzY3JhcGVSZXN1bHQgPSBsb2dpblJlc3VsdDtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IHNjcmFwZVJlc3VsdCAmJiBzY3JhcGVSZXN1bHQuc3VjY2VzcyA9PT0gdHJ1ZTtcbiAgICAgIGF3YWl0IHRoaXMudGVybWluYXRlKHN1Y2Nlc3MpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHNjcmFwZVJlc3VsdCA9IGNyZWF0ZUdlbmVyaWNFcnJvcihlLm1lc3NhZ2UpO1xuICAgIH1cbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkVuZFNjcmFwaW5nKTtcblxuICAgIHJldHVybiBzY3JhcGVSZXN1bHQ7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvcmVxdWlyZS1hd2FpdFxuICBhc3luYyBsb2dpbihfY3JlZGVudGlhbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBQcm9taXNlPFNjYXBlckxvZ2luUmVzdWx0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBsb2dpbigpIGlzIG5vdCBjcmVhdGVkIGluICR7dGhpcy5vcHRpb25zLmNvbXBhbnlJZH1gKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSAgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbiAgYXN5bmMgZmV0Y2hEYXRhKCk6IFByb21pc2U8U2NhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGZldGNoRGF0YSgpIGlzIG5vdCBjcmVhdGVkIGluICR7dGhpcy5vcHRpb25zLmNvbXBhbnlJZH1gKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIHRlcm1pbmF0ZShfc3VjY2VzczogYm9vbGVhbikge1xuICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuVGVybWluYXRpbmcpO1xuICB9XG5cbiAgZW1pdFByb2dyZXNzKHR5cGU6IFNjYXBlclByb2dyZXNzVHlwZXMpIHtcbiAgICB0aGlzLmVtaXQoU0NSQVBFX1BST0dSRVNTLCB7IHR5cGUgfSk7XG4gIH1cblxuICBlbWl0KGV2ZW50TmFtZTogc3RyaW5nLCBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgdGhpcy5ldmVudEVtaXR0ZXIuZW1pdChldmVudE5hbWUsIHRoaXMub3B0aW9ucy5jb21wYW55SWQsIHBheWxvYWQpO1xuICB9XG5cbiAgb25Qcm9ncmVzcyhmdW5jOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpIHtcbiAgICB0aGlzLmV2ZW50RW1pdHRlci5vbihTQ1JBUEVfUFJPR1JFU1MsIGZ1bmMpO1xuICB9XG59XG4iXX0=
@@ -84,6 +84,8 @@ function convertTransactions(txns) {
84
84
  }
85
85
 
86
86
  async function fetchTransactions(page, options) {
87
+ var _options$outputData$e, _options$outputData;
88
+
87
89
  await page.goto(CARD_URL);
88
90
  await (0, _elementsInteractions.waitUntilElementFound)(page, '.react-loading.hide', false);
89
91
  const defaultStartMoment = (0, _moment.default)().subtract(1, 'years');
@@ -118,7 +120,7 @@ async function fetchTransactions(page, options) {
118
120
  debug(`fetched ${rawTransactions.length} raw transactions from page`);
119
121
  const accountTransactions = convertTransactions(rawTransactions.filter(item => !!item));
120
122
  debug('filer out old transactions');
121
- const txns = (0, _transactions2.filterOldTransactions)(accountTransactions, startMoment, false);
123
+ const txns = ((_options$outputData$e = (_options$outputData = options.outputData) === null || _options$outputData === void 0 ? void 0 : _options$outputData.enableTransactionsFilterByDate) !== null && _options$outputData$e !== void 0 ? _options$outputData$e : true) ? (0, _transactions2.filterOldTransactions)(accountTransactions, startMoment, false) : accountTransactions;
122
124
  debug(`found ${txns.length} valid transactions out of ${accountTransactions.length} transactions for account ending with ${accountNumber.substring(accountNumber.length - 2)}`);
123
125
  return {
124
126
  accountNumber,
@@ -184,4 +186,4 @@ class BeyahadBishvilhaScraper extends _baseScraperWithBrowser.BaseScraperWithBro
184
186
 
185
187
  var _default = BeyahadBishvilhaScraper;
186
188
  exports.default = _default;
187
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iZXlhaGFkLWJpc2h2aWxoYS50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsIkRBVEVfRk9STUFUIiwiTE9HSU5fVVJMIiwiU1VDQ0VTU19VUkwiLCJDQVJEX1VSTCIsImdldEFtb3VudERhdGEiLCJhbW91bnRTdHIiLCJhbW91bnRTdHJDbG4iLCJyZXBsYWNlIiwiY3VycmVuY3kiLCJhbW91bnQiLCJpbmNsdWRlcyIsIlNIRUtFTF9DVVJSRU5DWV9TWU1CT0wiLCJwYXJzZUZsb2F0IiwiU0hFS0VMX0NVUlJFTkNZIiwiRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCIsIkRPTExBUl9DVVJSRU5DWSIsIkVVUk9fQ1VSUkVOQ1lfU1lNQk9MIiwiRVVST19DVVJSRU5DWSIsInBhcnRzIiwic3BsaXQiLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsImxlbmd0aCIsIm1hcCIsInR4biIsImNoYXJnZWRBbW91bnRUdXBsZSIsImNoYXJnZWRBbW91bnQiLCJ0eG5Qcm9jZXNzZWREYXRlIiwiZGF0ZSIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsInRvSVNPU3RyaW5nIiwicHJvY2Vzc2VkRGF0ZSIsIm9yaWdpbmFsQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwibWVtbyIsImlkZW50aWZpZXIiLCJmZXRjaFRyYW5zYWN0aW9ucyIsInBhZ2UiLCJvcHRpb25zIiwiZ290byIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0Iiwic3RhcnREYXRlIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJhY2NvdW50TnVtYmVyIiwiZWxlbWVudCIsImlubmVyVGV4dCIsImJhbGFuY2UiLCJyYXdUcmFuc2FjdGlvbnMiLCJpdGVtcyIsImVsIiwiY29sdW1ucyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJhY2NvdW50VHJhbnNhY3Rpb25zIiwiZmlsdGVyIiwiaXRlbSIsInN1YnN0cmluZyIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJDaGFuZ2VQYXNzd29yZCIsIkludmFsaWRQYXNzd29yZCIsIlVua25vd25FcnJvciIsImNyZWF0ZUxvZ2luRmllbGRzIiwiY3JlZGVudGlhbHMiLCJzZWxlY3RvciIsInZhbHVlIiwiaWQiLCJwYXNzd29yZCIsIkJleWFoYWRCaXNodmlsaGFTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldFZpZXdQb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiYnV0dG9uIiwiJHgiLCJjbGljayIsInBvc3NpYmxlUmVzdWx0cyIsImZldGNoRGF0YSIsImFjY291bnQiLCJzdWNjZXNzIiwiYWNjb3VudHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBUUEsTUFBTUEsS0FBSyxHQUFHLHFCQUFTLGtCQUFULENBQWQ7QUFFQSxNQUFNQyxXQUFXLEdBQUcsVUFBcEI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsK0JBQWxCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLDBCQUFwQjtBQUNBLE1BQU1DLFFBQVEsR0FBRyw2Q0FBakI7O0FBVUEsU0FBU0MsYUFBVCxDQUF1QkMsU0FBdkIsRUFBMEM7QUFDeEMsUUFBTUMsWUFBWSxHQUFHRCxTQUFTLENBQUNFLE9BQVYsQ0FBa0IsR0FBbEIsRUFBdUIsRUFBdkIsQ0FBckI7QUFDQSxNQUFJQyxRQUF1QixHQUFHLElBQTlCO0FBQ0EsTUFBSUMsTUFBcUIsR0FBRyxJQUE1Qjs7QUFDQSxNQUFJSCxZQUFZLENBQUNJLFFBQWIsQ0FBc0JDLGlDQUF0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TEMsTUFBQUEsUUFBUSxFQUFFLENBQUNGLE9BQUQ7QUFGTCxLQUFQO0FBSUQ7O0FBNUIwRDs7ZUErQjlDZCx1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyBTY3JhcGVyT3B0aW9ucywgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMgfSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgcGFnZUV2YWwsIHBhZ2VFdmFsQWxsLCB3YWl0VW50aWxFbGVtZW50Rm91bmQgfSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHsgZmlsdGVyT2xkVHJhbnNhY3Rpb25zIH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHtcbiAgRE9MTEFSX0NVUlJFTkNZLFxuICBET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MLCBFVVJPX0NVUlJFTkNZLFxuICBFVVJPX0NVUlJFTkNZX1NZTUJPTCxcbiAgU0hFS0VMX0NVUlJFTkNZLFxuICBTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MLFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCdiZXlhaGFkQmlzaHZpbGhhJyk7XG5cbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZJztcbmNvbnN0IExPR0lOX1VSTCA9ICdodHRwczovL3d3dy5oaXN0Lm9yZy5pbC9sb2dpbic7XG5jb25zdCBTVUNDRVNTX1VSTCA9ICdodHRwczovL3d3dy5oaXN0Lm9yZy5pbC8nO1xuY29uc3QgQ0FSRF9VUkwgPSAnaHR0cHM6Ly93d3cuaGlzdC5vcmcuaWwvY2FyZC9iYWxhbmNlQW5kVXNlcyc7XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBkYXRlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgY2hhcmdlZEFtb3VudDogc3RyaW5nO1xuICBpZGVudGlmaWVyOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgYW1vdW50U3RyQ2xuID0gYW1vdW50U3RyLnJlcGxhY2UoJywnLCAnJyk7XG4gIGxldCBjdXJyZW5jeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGxldCBhbW91bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBpZiAoYW1vdW50U3RyQ2xuLmluY2x1ZGVzKFNIRUtFTF9DVVJSRU5DWV9TWU1CT0wpKSB7XG4gICAgYW1vdW50ID0gcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MLCAnJykpO1xuICAgIGN1cnJlbmN5ID0gU0hFS0VMX0NVUlJFTkNZO1xuICB9IGVsc2UgaWYgKGFtb3VudFN0ckNsbi5pbmNsdWRlcyhET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MKSkge1xuICAgIGFtb3VudCA9IHBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuLnJlcGxhY2UoRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IERPTExBUl9DVVJSRU5DWTtcbiAgfSBlbHNlIGlmIChhbW91bnRTdHJDbG4uaW5jbHVkZXMoRVVST19DVVJSRU5DWV9TWU1CT0wpKSB7XG4gICAgYW1vdW50ID0gcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShFVVJPX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IEVVUk9fQ1VSUkVOQ1k7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcGFydHMgPSBhbW91bnRTdHJDbG4uc3BsaXQoJyAnKTtcbiAgICBbY3VycmVuY3ldID0gcGFydHM7XG4gICAgYW1vdW50ID0gcGFyc2VGbG9hdChwYXJ0c1sxXSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFtb3VudCxcbiAgICBjdXJyZW5jeSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9ucyh0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10ge1xuICBkZWJ1ZyhgY29udmVydCAke3R4bnMubGVuZ3RofSByYXcgdHJhbnNhY3Rpb25zIHRvIG9mZmljaWFsIFRyYW5zYWN0aW9uIHN0cnVjdHVyZWApO1xuICByZXR1cm4gdHhucy5tYXAoKHR4bikgPT4ge1xuICAgIGNvbnN0IGNoYXJnZWRBbW91bnRUdXBsZSA9IGdldEFtb3VudERhdGEodHhuLmNoYXJnZWRBbW91bnQgfHwgJycpO1xuICAgIGNvbnN0IHR4blByb2Nlc3NlZERhdGUgPSBtb21lbnQodHhuLmRhdGUsIERBVEVfRk9STUFUKTtcblxuICAgIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb24gPSB7XG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsXG4gICAgICBkYXRlOiB0eG5Qcm9jZXNzZWREYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICBwcm9jZXNzZWREYXRlOiB0eG5Qcm9jZXNzZWREYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICBvcmlnaW5hbEFtb3VudDogY2hhcmdlZEFtb3VudFR1cGxlLmFtb3VudCxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IGNoYXJnZWRBbW91bnRUdXBsZS5jdXJyZW5jeSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGNoYXJnZWRBbW91bnRUdXBsZS5hbW91bnQsXG4gICAgICBjaGFyZ2VkQ3VycmVuY3k6IGNoYXJnZWRBbW91bnRUdXBsZS5jdXJyZW5jeSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0eG4uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICBtZW1vOiAnJyxcbiAgICAgIGlkZW50aWZpZXI6IHR4bi5pZGVudGlmaWVyLFxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbn1cblxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBvcHRpb25zOiBTY3JhcGVyT3B0aW9ucykge1xuICBhd2FpdCBwYWdlLmdvdG8oQ0FSRF9VUkwpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJy5yZWFjdC1sb2FkaW5nLmhpZGUnLCBmYWxzZSk7XG4gIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpO1xuICBjb25zdCBzdGFydERhdGUgPSBvcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICBjb25zdCBhY2NvdW50TnVtYmVyID0gYXdhaXQgcGFnZUV2YWwocGFnZSwgJy53YWxsZXQtZGV0YWlscyBkaXY6bnRoLW9mLXR5cGUoMiknLCBudWxsLCAoZWxlbWVudCkgPT4ge1xuICAgIHJldHVybiAoZWxlbWVudCBhcyBhbnkpLmlubmVyVGV4dC5yZXBsYWNlKCfXnteh16TXqCDXm9eo15jXmdehICcsICcnKTtcbiAgfSk7XG5cbiAgY29uc3QgYmFsYW5jZSA9IGF3YWl0IHBhZ2VFdmFsKHBhZ2UsICcud2FsbGV0LWRldGFpbHMgZGl2Om50aC1vZi10eXBlKDQpID4gc3BhbjpudGgtb2YtdHlwZSgyKScsIG51bGwsIChlbGVtZW50KSA9PiB7XG4gICAgcmV0dXJuIChlbGVtZW50IGFzIGFueSkuaW5uZXJUZXh0O1xuICB9KTtcblxuICBkZWJ1ZygnZmV0Y2ggcmF3IHRyYW5zYWN0aW9ucyBmcm9tIHBhZ2UnKTtcblxuICBjb25zdCByYXdUcmFuc2FjdGlvbnM6IChTY3JhcGVkVHJhbnNhY3Rpb24gfCBudWxsKVtdID0gYXdhaXQgcGFnZUV2YWxBbGw8KFNjcmFwZWRUcmFuc2FjdGlvbiB8IG51bGwpW10+KHBhZ2UsICcudHJhbnNhY3Rpb24tY29udGFpbmVyLCAudHJhbnNhY3Rpb24tY29tcG9uZW50LWNvbnRhaW5lcicsIFtdLCAoaXRlbXMpID0+IHtcbiAgICByZXR1cm4gKGl0ZW1zKS5tYXAoKGVsKSA9PiB7XG4gICAgICBjb25zdCBjb2x1bW5zOiBOb2RlTGlzdE9mPEhUTUxTcGFuRWxlbWVudD4gPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCcudHJhbnNhY3Rpb24taXRlbSA+IHNwYW4nKTtcbiAgICAgIGlmIChjb2x1bW5zLmxlbmd0aCA9PT0gNykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGU6IGNvbHVtbnNbMF0uaW5uZXJUZXh0LFxuICAgICAgICAgIGlkZW50aWZpZXI6IGNvbHVtbnNbMV0uaW5uZXJUZXh0LFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBjb2x1bW5zWzNdLmlubmVyVGV4dCxcbiAgICAgICAgICB0eXBlOiBjb2x1bW5zWzVdLmlubmVyVGV4dCxcbiAgICAgICAgICBjaGFyZ2VkQW1vdW50OiBjb2x1bW5zWzZdLmlubmVyVGV4dCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuICB9KTtcbiAgZGVidWcoYGZldGNoZWQgJHtyYXdUcmFuc2FjdGlvbnMubGVuZ3RofSByYXcgdHJhbnNhY3Rpb25zIGZyb20gcGFnZWApO1xuXG4gIGNvbnN0IGFjY291bnRUcmFuc2FjdGlvbnMgPSBjb252ZXJ0VHJhbnNhY3Rpb25zKHJhd1RyYW5zYWN0aW9ucy5maWx0ZXIoKGl0ZW0pID0+ICEhaXRlbSkgYXMgU2NyYXBlZFRyYW5zYWN0aW9uW10pO1xuXG4gIGRlYnVnKCdmaWxlciBvdXQgb2xkIHRyYW5zYWN0aW9ucycpO1xuICBjb25zdCB0eG5zID0gZmlsdGVyT2xkVHJhbnNhY3Rpb25zKGFjY291bnRUcmFuc2FjdGlvbnMsIHN0YXJ0TW9tZW50LCBmYWxzZSk7XG4gIGRlYnVnKGBmb3VuZCAke3R4bnMubGVuZ3RofSB2YWxpZCB0cmFuc2FjdGlvbnMgb3V0IG9mICR7YWNjb3VudFRyYW5zYWN0aW9ucy5sZW5ndGh9IHRyYW5zYWN0aW9ucyBmb3IgYWNjb3VudCBlbmRpbmcgd2l0aCAke2FjY291bnROdW1iZXIuc3Vic3RyaW5nKGFjY291bnROdW1iZXIubGVuZ3RoIC0gMil9YCk7XG5cbiAgcmV0dXJuIHtcbiAgICBhY2NvdW50TnVtYmVyLFxuICAgIGJhbGFuY2U6IGdldEFtb3VudERhdGEoYmFsYW5jZSkuYW1vdW50LFxuICAgIHR4bnMsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCk6IFBvc3NpYmxlTG9naW5SZXN1bHRzIHtcbiAgY29uc3QgdXJsczogUG9zc2libGVMb2dpblJlc3VsdHMgPSB7fTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuU3VjY2Vzc10gPSBbU1VDQ0VTU19VUkxdO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF0gPSBbXTsgLy8gVE9ET1xuICB1cmxzW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdID0gW107IC8vIFRPRE9cbiAgdXJsc1tMb2dpblJlc3VsdHMuVW5rbm93bkVycm9yXSA9IFtdOyAvLyBUT0RPXG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJyNsb2dpbklkJywgdmFsdWU6IGNyZWRlbnRpYWxzLmlkIH0sXG4gICAgeyBzZWxlY3RvcjogJyNsb2dpblBhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmNsYXNzIEJleWFoYWRCaXNodmlsaGFTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciB7XG4gIHByb3RlY3RlZCBnZXRWaWV3UG9ydCgpOiB7IHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyIH0ge1xuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogMTUwMCxcbiAgICAgIGhlaWdodDogODAwLFxuICAgIH07XG4gIH1cblxuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogTE9HSU5fVVJMLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBbYnV0dG9uXSA9IGF3YWl0IHRoaXMucGFnZS4keChcIi8vYnV0dG9uW2NvbnRhaW5zKC4sICfXlNeq15fXkdeoJyldXCIpO1xuICAgICAgICBpZiAoYnV0dG9uKSB7XG4gICAgICAgICAgYXdhaXQgYnV0dG9uLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCB0aGlzLm9wdGlvbnMpO1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHM6IFthY2NvdW50XSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJleWFoYWRCaXNodmlsaGFTY3JhcGVyO1xuIl19
189
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iZXlhaGFkLWJpc2h2aWxoYS50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsIkRBVEVfRk9STUFUIiwiTE9HSU5fVVJMIiwiU1VDQ0VTU19VUkwiLCJDQVJEX1VSTCIsImdldEFtb3VudERhdGEiLCJhbW91bnRTdHIiLCJhbW91bnRTdHJDbG4iLCJyZXBsYWNlIiwiY3VycmVuY3kiLCJhbW91bnQiLCJpbmNsdWRlcyIsIlNIRUtFTF9DVVJSRU5DWV9TWU1CT0wiLCJwYXJzZUZsb2F0IiwiU0hFS0VMX0NVUlJFTkNZIiwiRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCIsIkRPTExBUl9DVVJSRU5DWSIsIkVVUk9fQ1VSUkVOQ1lfU1lNQk9MIiwiRVVST19DVVJSRU5DWSIsInBhcnRzIiwic3BsaXQiLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsImxlbmd0aCIsIm1hcCIsInR4biIsImNoYXJnZWRBbW91bnRUdXBsZSIsImNoYXJnZWRBbW91bnQiLCJ0eG5Qcm9jZXNzZWREYXRlIiwiZGF0ZSIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsInRvSVNPU3RyaW5nIiwicHJvY2Vzc2VkRGF0ZSIsIm9yaWdpbmFsQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwibWVtbyIsImlkZW50aWZpZXIiLCJmZXRjaFRyYW5zYWN0aW9ucyIsInBhZ2UiLCJvcHRpb25zIiwiZ290byIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0Iiwic3RhcnREYXRlIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJhY2NvdW50TnVtYmVyIiwiZWxlbWVudCIsImlubmVyVGV4dCIsImJhbGFuY2UiLCJyYXdUcmFuc2FjdGlvbnMiLCJpdGVtcyIsImVsIiwiY29sdW1ucyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJhY2NvdW50VHJhbnNhY3Rpb25zIiwiZmlsdGVyIiwiaXRlbSIsIm91dHB1dERhdGEiLCJlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUiLCJzdWJzdHJpbmciLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiQ2hhbmdlUGFzc3dvcmQiLCJJbnZhbGlkUGFzc3dvcmQiLCJVbmtub3duRXJyb3IiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsImlkIiwicGFzc3dvcmQiLCJCZXlhaGFkQmlzaHZpbGhhU2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJnZXRWaWV3UG9ydCIsIndpZHRoIiwiaGVpZ2h0IiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImJ1dHRvbiIsIiR4IiwiY2xpY2siLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJhY2NvdW50Iiwic3VjY2VzcyIsImFjY291bnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQVFBLE1BQU1BLEtBQUssR0FBRyxxQkFBUyxrQkFBVCxDQUFkO0FBRUEsTUFBTUMsV0FBVyxHQUFHLFVBQXBCO0FBQ0EsTUFBTUMsU0FBUyxHQUFHLCtCQUFsQjtBQUNBLE1BQU1DLFdBQVcsR0FBRywwQkFBcEI7QUFDQSxNQUFNQyxRQUFRLEdBQUcsNkNBQWpCOztBQVVBLFNBQVNDLGFBQVQsQ0FBdUJDLFNBQXZCLEVBQTBDO0FBQ3hDLFFBQU1DLFlBQVksR0FBR0QsU0FBUyxDQUFDRSxPQUFWLENBQWtCLEdBQWxCLEVBQXVCLEVBQXZCLENBQXJCO0FBQ0EsTUFBSUMsUUFBdUIsR0FBRyxJQUE5QjtBQUNBLE1BQUlDLE1BQXFCLEdBQUcs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U0FBTixHQUFrQjtBQUNoQixVQUFNQyxPQUFPLEdBQUcsTUFBTXJELGlCQUFpQixDQUFDLEtBQUtDLElBQU4sRUFBWSxLQUFLQyxPQUFqQixDQUF2QztBQUNBLFdBQU87QUFDTG9ELE1BQUFBLE9BQU8sRUFBRSxJQURKO0FBRUxDLE1BQUFBLFFBQVEsRUFBRSxDQUFDRixPQUFEO0FBRkwsS0FBUDtBQUlEOztBQTVCMEQ7O2VBK0I5Q2QsdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgU2NyYXBlck9wdGlvbnMsIFNjcmFwZXJDcmVkZW50aWFscyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblN0YXR1c2VzLCBUcmFuc2FjdGlvblR5cGVzIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IHBhZ2VFdmFsLCBwYWdlRXZhbEFsbCwgd2FpdFVudGlsRWxlbWVudEZvdW5kIH0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcbmltcG9ydCB7IGZpbHRlck9sZFRyYW5zYWN0aW9ucyB9IGZyb20gJy4uL2hlbHBlcnMvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7XG4gIERPTExBUl9DVVJSRU5DWSxcbiAgRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCwgRVVST19DVVJSRU5DWSxcbiAgRVVST19DVVJSRU5DWV9TWU1CT0wsXG4gIFNIRUtFTF9DVVJSRU5DWSxcbiAgU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCxcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnYmV5YWhhZEJpc2h2aWxoYScpO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWSc7XG5jb25zdCBMT0dJTl9VUkwgPSAnaHR0cHM6Ly93d3cuaGlzdC5vcmcuaWwvbG9naW4nO1xuY29uc3QgU1VDQ0VTU19VUkwgPSAnaHR0cHM6Ly93d3cuaGlzdC5vcmcuaWwvJztcbmNvbnN0IENBUkRfVVJMID0gJ2h0dHBzOi8vd3d3Lmhpc3Qub3JnLmlsL2NhcmQvYmFsYW5jZUFuZFVzZXMnO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgZGF0ZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGNoYXJnZWRBbW91bnQ6IHN0cmluZztcbiAgaWRlbnRpZmllcjogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRBbW91bnREYXRhKGFtb3VudFN0cjogc3RyaW5nKSB7XG4gIGNvbnN0IGFtb3VudFN0ckNsbiA9IGFtb3VudFN0ci5yZXBsYWNlKCcsJywgJycpO1xuICBsZXQgY3VycmVuY3k6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBsZXQgYW1vdW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgaWYgKGFtb3VudFN0ckNsbi5pbmNsdWRlcyhTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MKSkge1xuICAgIGFtb3VudCA9IHBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuLnJlcGxhY2UoU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IFNIRUtFTF9DVVJSRU5DWTtcbiAgfSBlbHNlIGlmIChhbW91bnRTdHJDbG4uaW5jbHVkZXMoRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSBwYXJzZUZsb2F0KGFtb3VudFN0ckNsbi5yZXBsYWNlKERPTExBUl9DVVJSRU5DWV9TWU1CT0wsICcnKSk7XG4gICAgY3VycmVuY3kgPSBET0xMQVJfQ1VSUkVOQ1k7XG4gIH0gZWxzZSBpZiAoYW1vdW50U3RyQ2xuLmluY2x1ZGVzKEVVUk9fQ1VSUkVOQ1lfU1lNQk9MKSkge1xuICAgIGFtb3VudCA9IHBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuLnJlcGxhY2UoRVVST19DVVJSRU5DWV9TWU1CT0wsICcnKSk7XG4gICAgY3VycmVuY3kgPSBFVVJPX0NVUlJFTkNZO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHBhcnRzID0gYW1vdW50U3RyQ2xuLnNwbGl0KCcgJyk7XG4gICAgW2N1cnJlbmN5XSA9IHBhcnRzO1xuICAgIGFtb3VudCA9IHBhcnNlRmxvYXQocGFydHNbMV0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhbW91bnQsXG4gICAgY3VycmVuY3ksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgZGVidWcoYGNvbnZlcnQgJHt0eG5zLmxlbmd0aH0gcmF3IHRyYW5zYWN0aW9ucyB0byBvZmZpY2lhbCBUcmFuc2FjdGlvbiBzdHJ1Y3R1cmVgKTtcbiAgcmV0dXJuIHR4bnMubWFwKCh0eG4pID0+IHtcbiAgICBjb25zdCBjaGFyZ2VkQW1vdW50VHVwbGUgPSBnZXRBbW91bnREYXRhKHR4bi5jaGFyZ2VkQW1vdW50IHx8ICcnKTtcbiAgICBjb25zdCB0eG5Qcm9jZXNzZWREYXRlID0gbW9tZW50KHR4bi5kYXRlLCBEQVRFX0ZPUk1BVCk7XG5cbiAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uID0ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgICAgZGF0ZTogdHhuUHJvY2Vzc2VkRGF0ZS50b0lTT1N0cmluZygpLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogdHhuUHJvY2Vzc2VkRGF0ZS50b0lTT1N0cmluZygpLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IGNoYXJnZWRBbW91bnRUdXBsZS5hbW91bnQsXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiBjaGFyZ2VkQW1vdW50VHVwbGUuY3VycmVuY3ksXG4gICAgICBjaGFyZ2VkQW1vdW50OiBjaGFyZ2VkQW1vdW50VHVwbGUuYW1vdW50LFxuICAgICAgY2hhcmdlZEN1cnJlbmN5OiBjaGFyZ2VkQW1vdW50VHVwbGUuY3VycmVuY3ksXG4gICAgICBkZXNjcmlwdGlvbjogdHhuLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgbWVtbzogJycsXG4gICAgICBpZGVudGlmaWVyOiB0eG4uaWRlbnRpZmllcixcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgb3B0aW9uczogU2NyYXBlck9wdGlvbnMpIHtcbiAgYXdhaXQgcGFnZS5nb3RvKENBUkRfVVJMKTtcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICcucmVhY3QtbG9hZGluZy5oaWRlJywgZmFsc2UpO1xuICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gb3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgY29uc3QgYWNjb3VudE51bWJlciA9IGF3YWl0IHBhZ2VFdmFsKHBhZ2UsICcud2FsbGV0LWRldGFpbHMgZGl2Om50aC1vZi10eXBlKDIpJywgbnVsbCwgKGVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gKGVsZW1lbnQgYXMgYW55KS5pbm5lclRleHQucmVwbGFjZSgn157Xodek16gg15vXqNeY15nXoSAnLCAnJyk7XG4gIH0pO1xuXG4gIGNvbnN0IGJhbGFuY2UgPSBhd2FpdCBwYWdlRXZhbChwYWdlLCAnLndhbGxldC1kZXRhaWxzIGRpdjpudGgtb2YtdHlwZSg0KSA+IHNwYW46bnRoLW9mLXR5cGUoMiknLCBudWxsLCAoZWxlbWVudCkgPT4ge1xuICAgIHJldHVybiAoZWxlbWVudCBhcyBhbnkpLmlubmVyVGV4dDtcbiAgfSk7XG5cbiAgZGVidWcoJ2ZldGNoIHJhdyB0cmFuc2FjdGlvbnMgZnJvbSBwYWdlJyk7XG5cbiAgY29uc3QgcmF3VHJhbnNhY3Rpb25zOiAoU2NyYXBlZFRyYW5zYWN0aW9uIHwgbnVsbClbXSA9IGF3YWl0IHBhZ2VFdmFsQWxsPChTY3JhcGVkVHJhbnNhY3Rpb24gfCBudWxsKVtdPihwYWdlLCAnLnRyYW5zYWN0aW9uLWNvbnRhaW5lciwgLnRyYW5zYWN0aW9uLWNvbXBvbmVudC1jb250YWluZXInLCBbXSwgKGl0ZW1zKSA9PiB7XG4gICAgcmV0dXJuIChpdGVtcykubWFwKChlbCkgPT4ge1xuICAgICAgY29uc3QgY29sdW1uczogTm9kZUxpc3RPZjxIVE1MU3BhbkVsZW1lbnQ+ID0gZWwucXVlcnlTZWxlY3RvckFsbCgnLnRyYW5zYWN0aW9uLWl0ZW0gPiBzcGFuJyk7XG4gICAgICBpZiAoY29sdW1ucy5sZW5ndGggPT09IDcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRlOiBjb2x1bW5zWzBdLmlubmVyVGV4dCxcbiAgICAgICAgICBpZGVudGlmaWVyOiBjb2x1bW5zWzFdLmlubmVyVGV4dCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogY29sdW1uc1szXS5pbm5lclRleHQsXG4gICAgICAgICAgdHlwZTogY29sdW1uc1s1XS5pbm5lclRleHQsXG4gICAgICAgICAgY2hhcmdlZEFtb3VudDogY29sdW1uc1s2XS5pbm5lclRleHQsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgfSk7XG4gIGRlYnVnKGBmZXRjaGVkICR7cmF3VHJhbnNhY3Rpb25zLmxlbmd0aH0gcmF3IHRyYW5zYWN0aW9ucyBmcm9tIHBhZ2VgKTtcblxuICBjb25zdCBhY2NvdW50VHJhbnNhY3Rpb25zID0gY29udmVydFRyYW5zYWN0aW9ucyhyYXdUcmFuc2FjdGlvbnMuZmlsdGVyKChpdGVtKSA9PiAhIWl0ZW0pIGFzIFNjcmFwZWRUcmFuc2FjdGlvbltdKTtcblxuICBkZWJ1ZygnZmlsZXIgb3V0IG9sZCB0cmFuc2FjdGlvbnMnKTtcbiAgY29uc3QgdHhucyA9IChvcHRpb25zLm91dHB1dERhdGE/LmVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSA/PyB0cnVlKSA/XG4gICAgZmlsdGVyT2xkVHJhbnNhY3Rpb25zKGFjY291bnRUcmFuc2FjdGlvbnMsIHN0YXJ0TW9tZW50LCBmYWxzZSkgOlxuICAgIGFjY291bnRUcmFuc2FjdGlvbnM7XG4gIGRlYnVnKGBmb3VuZCAke3R4bnMubGVuZ3RofSB2YWxpZCB0cmFuc2FjdGlvbnMgb3V0IG9mICR7YWNjb3VudFRyYW5zYWN0aW9ucy5sZW5ndGh9IHRyYW5zYWN0aW9ucyBmb3IgYWNjb3VudCBlbmRpbmcgd2l0aCAke2FjY291bnROdW1iZXIuc3Vic3RyaW5nKGFjY291bnROdW1iZXIubGVuZ3RoIC0gMil9YCk7XG5cbiAgcmV0dXJuIHtcbiAgICBhY2NvdW50TnVtYmVyLFxuICAgIGJhbGFuY2U6IGdldEFtb3VudERhdGEoYmFsYW5jZSkuYW1vdW50LFxuICAgIHR4bnMsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCk6IFBvc3NpYmxlTG9naW5SZXN1bHRzIHtcbiAgY29uc3QgdXJsczogUG9zc2libGVMb2dpblJlc3VsdHMgPSB7fTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuU3VjY2Vzc10gPSBbU1VDQ0VTU19VUkxdO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF0gPSBbXTsgLy8gVE9ET1xuICB1cmxzW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdID0gW107IC8vIFRPRE9cbiAgdXJsc1tMb2dpblJlc3VsdHMuVW5rbm93bkVycm9yXSA9IFtdOyAvLyBUT0RPXG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJyNsb2dpbklkJywgdmFsdWU6IGNyZWRlbnRpYWxzLmlkIH0sXG4gICAgeyBzZWxlY3RvcjogJyNsb2dpblBhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmNsYXNzIEJleWFoYWRCaXNodmlsaGFTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciB7XG4gIHByb3RlY3RlZCBnZXRWaWV3UG9ydCgpOiB7IHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyIH0ge1xuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogMTUwMCxcbiAgICAgIGhlaWdodDogODAwLFxuICAgIH07XG4gIH1cblxuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogTE9HSU5fVVJMLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBbYnV0dG9uXSA9IGF3YWl0IHRoaXMucGFnZS4keChcIi8vYnV0dG9uW2NvbnRhaW5zKC4sICfXlNeq15fXkdeoJyldXCIpO1xuICAgICAgICBpZiAoYnV0dG9uKSB7XG4gICAgICAgICAgYXdhaXQgYnV0dG9uLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCB0aGlzLm9wdGlvbnMpO1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHM6IFthY2NvdW50XSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJleWFoYWRCaXNodmlsaGFTY3JhcGVyO1xuIl19
@@ -109,7 +109,7 @@ async function fetchPoalimXSRFWithinPage(page, url, pageUuid) {
109
109
  async function getAccountTransactions(apiSiteUrl, page, accountNumber, startDate, endDate) {
110
110
  var _txnsResult$transacti;
111
111
 
112
- const txnsUrl = `${apiSiteUrl}/current-account/transactions?accountId=${accountNumber}&numItemsPerPage=150&retrievalEndDate=${endDate}&retrievalStartDate=${startDate}&sortCode=1`;
112
+ const txnsUrl = `${apiSiteUrl}/current-account/transactions?accountId=${accountNumber}&numItemsPerPage=1000&retrievalEndDate=${endDate}&retrievalStartDate=${startDate}&sortCode=1`;
113
113
  const txnsResult = await fetchPoalimXSRFWithinPage(page, txnsUrl, '/current-account/transactions');
114
114
  return convertTransactions((_txnsResult$transacti = txnsResult === null || txnsResult === void 0 ? void 0 : txnsResult.transactions) !== null && _txnsResult$transacti !== void 0 ? _txnsResult$transacti : []);
115
115
  }
@@ -205,4 +205,4 @@ class HapoalimScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
205
205
 
206
206
  var _default = HapoalimScraper;
207
207
  exports.default = _default;
208
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9oYXBvYWxpbS50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsIkRBVEVfRk9STUFUIiwiY29udmVydFRyYW5zYWN0aW9ucyIsInR4bnMiLCJtYXAiLCJ0eG4iLCJpc091dGJvdW5kIiwiZXZlbnRBY3Rpdml0eVR5cGVDb2RlIiwibWVtbyIsImJlbmVmaWNpYXJ5RGV0YWlsc0RhdGEiLCJwYXJ0eUhlYWRsaW5lIiwicGFydHlOYW1lIiwibWVzc2FnZUhlYWRsaW5lIiwibWVzc2FnZURldGFpbCIsIm1lbW9MaW5lcyIsInB1c2giLCJsZW5ndGgiLCJqb2luIiwicmVzdWx0IiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJpZGVudGlmaWVyIiwicmVmZXJlbmNlTnVtYmVyIiwiZGF0ZSIsImV2ZW50RGF0ZSIsInRvSVNPU3RyaW5nIiwicHJvY2Vzc2VkRGF0ZSIsInZhbHVlRGF0ZSIsIm9yaWdpbmFsQW1vdW50IiwiZXZlbnRBbW91bnQiLCJvcmlnaW5hbEN1cnJlbmN5IiwiY2hhcmdlZEFtb3VudCIsImRlc2NyaXB0aW9uIiwiYWN0aXZpdHlEZXNjcmlwdGlvbiIsInN0YXR1cyIsInNlcmlhbE51bWJlciIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJQZW5kaW5nIiwiQ29tcGxldGVkIiwiZ2V0UmVzdENvbnRleHQiLCJwYWdlIiwiZXZhbHVhdGUiLCJ3aW5kb3ciLCJibmhwQXBwIiwicmVzdENvbnRleHQiLCJzbGljZSIsImZldGNoUG9hbGltWFNSRldpdGhpblBhZ2UiLCJ1cmwiLCJwYWdlVXVpZCIsImNvb2tpZXMiLCJYU1JGQ29va2llIiwiZmluZCIsImNvb2tpZSIsIm5hbWUiLCJoZWFkZXJzIiwidmFsdWUiLCJ1dWlkIiwiZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyIsImFwaVNpdGVVcmwiLCJhY2NvdW50TnVtYmVyIiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsInR4bnNVcmwiLCJ0eG5zUmVzdWx0IiwidHJhbnNhY3Rpb25zIiwiZ2V0QWNjb3VudEJhbGFuY2UiLCJiYWxhbmNlQW5kQ3JlZGl0TGltaXRVcmwiLCJiYWxhbmNlQW5kQ3JlZGl0TGltaXQiLCJjdXJyZW50QmFsYW5jZSIsImZldGNoQWNjb3VudERhdGEiLCJiYXNlVXJsIiwib3B0aW9ucyIsImFjY291bnREYXRhVXJsIiwiYWNjb3VudHNJbmZvIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJhZGQiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1vbWVudCIsIm1heCIsInN0YXJ0RGF0ZVN0ciIsImZvcm1hdCIsImVuZERhdGVTdHIiLCJhY2NvdW50cyIsImFjY291bnQiLCJiYWxhbmNlIiwiYmFua051bWJlciIsImJyYW5jaE51bWJlciIsImlzQWN0aXZlQWNjb3VudCIsImFjY291bnRDbG9zaW5nUmVhc29uQ29kZSIsImFjY291bnREYXRhIiwic3VjY2VzcyIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJDaGFuZ2VQYXNzd29yZCIsImNyZWF0ZUxvZ2luRmllbGRzIiwiY3JlZGVudGlhbHMiLCJzZWxlY3RvciIsInVzZXJDb2RlIiwicGFzc3dvcmQiLCJIYXBvYWxpbVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBSUE7Ozs7QUFFQSxNQUFNQSxLQUFLLEdBQUcscUJBQVMsVUFBVCxDQUFkO0FBRUEsTUFBTUMsV0FBVyxHQUFHLFVBQXBCLEMsQ0FFQTs7QUE2Q0EsU0FBU0MsbUJBQVQsQ0FBNkJDLElBQTdCLEVBQXdFO0FB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XG5pbXBvcnQgdXVpZDQgZnJvbSAndXVpZC92NCc7XG5cbmltcG9ydCB7IFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyB3YWl0Rm9yUmVkaXJlY3QgfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgd2FpdFVudGlsIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSwgZmV0Y2hQb3N0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb25zQWNjb3VudCwgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBTY3JhcGVyT3B0aW9ucywgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnaGFwb2FsaW0nKTtcblxuY29uc3QgREFURV9GT1JNQVQgPSAnWVlZWU1NREQnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVxuZGVjbGFyZSBuYW1lc3BhY2Ugd2luZG93IHtcbiAgY29uc3QgYm5ocEFwcDogYW55O1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgc2VyaWFsTnVtYmVyPzogbnVtYmVyO1xuICBhY3Rpdml0eURlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBldmVudEFtb3VudDogbnVtYmVyO1xuICB2YWx1ZURhdGU/OiBzdHJpbmc7XG4gIGV2ZW50RGF0ZT86IHN0cmluZztcbiAgcmVmZXJlbmNlTnVtYmVyPzogbnVtYmVyO1xuICBTY3JhcGVkVHJhbnNhY3Rpb24/OiBzdHJpbmc7XG4gIGV2ZW50QWN0aXZpdHlUeXBlQ29kZTogbnVtYmVyO1xuICBjdXJyZW50QmFsYW5jZTogbnVtYmVyO1xuICBiZW5lZmljaWFyeURldGFpbHNEYXRhPzoge1xuICAgIHBhcnR5SGVhZGxpbmU/OiBzdHJpbmc7XG4gICAgcGFydHlOYW1lPzogc3RyaW5nO1xuICAgIG1lc3NhZ2VIZWFkbGluZT86IHN0cmluZztcbiAgICBtZXNzYWdlRGV0YWlsPzogc3RyaW5nO1xuICB9O1xufVxuXG50eXBlIEZldGNoZWRBY2NvdW50RGF0YSA9IHtcbiAgYmFua051bWJlcjogc3RyaW5nO1xuICBhY2NvdW50TnVtYmVyOiBzdHJpbmc7XG4gIGJyYW5jaE51bWJlcjogc3RyaW5nO1xuICBhY2NvdW50Q2xvc2luZ1JlYXNvbkNvZGU6IG51bWJlcjtcbn1bXTtcblxudHlwZSBGZXRjaGVkQWNjb3VudFRyYW5zYWN0aW9uc0RhdGEgPSB7XG4gIHRyYW5zYWN0aW9uczogU2NyYXBlZFRyYW5zYWN0aW9uW107XG59O1xuXG50eXBlIEJhbGFuY2VBbmRDcmVkaXRMaW1pdCA9IHtcbiAgY3JlZGl0TGltaXRBbW91bnQ6IG51bWJlcjtcbiAgY3JlZGl0TGltaXREZXNjcmlwdGlvbjogc3RyaW5nO1xuICBjcmVkaXRMaW1pdFV0aWxpemF0aW9uQW1vdW50OiBudW1iZXI7XG4gIGNyZWRpdExpbWl0VXRpbGl6YXRpb25FeGlzdGFuY2VDb2RlOiBudW1iZXI7XG4gIGNyZWRpdExpbWl0VXRpbGl6YXRpb25QZXJjZW50OiBudW1iZXI7XG4gIGN1cnJlbnRBY2NvdW50TGltaXRzQW1vdW50OiBudW1iZXI7XG4gIGN1cnJlbnRCYWxhbmNlOiBudW1iZXI7XG4gIHdpdGhkcmF3YWxCYWxhbmNlOiBudW1iZXI7XG59O1xuXG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSB7XG4gIHJldHVybiB0eG5zLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgaXNPdXRib3VuZCA9IHR4bi5ldmVudEFjdGl2aXR5VHlwZUNvZGUgPT09IDI7XG5cbiAgICBsZXQgbWVtbyA9ICcnO1xuICAgIGlmICh0eG4uYmVuZWZpY2lhcnlEZXRhaWxzRGF0YSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBwYXJ0eUhlYWRsaW5lLFxuICAgICAgICBwYXJ0eU5hbWUsXG4gICAgICAgIG1lc3NhZ2VIZWFkbGluZSxcbiAgICAgICAgbWVzc2FnZURldGFpbCxcbiAgICAgIH0gPSB0eG4uYmVuZWZpY2lhcnlEZXRhaWxzRGF0YTtcbiAgICAgIGNvbnN0IG1lbW9MaW5lczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGlmIChwYXJ0eUhlYWRsaW5lKSB7XG4gICAgICAgIG1lbW9MaW5lcy5wdXNoKHBhcnR5SGVhZGxpbmUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocGFydHlOYW1lKSB7XG4gICAgICAgIG1lbW9MaW5lcy5wdXNoKGAke3BhcnR5TmFtZX0uYCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZXNzYWdlSGVhZGxpbmUpIHtcbiAgICAgICAgbWVtb0xpbmVzLnB1c2gobWVzc2FnZUhlYWRsaW5lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1lc3NhZ2VEZXRhaWwpIHtcbiAgICAgICAgbWVtb0xpbmVzLnB1c2goYCR7bWVzc2FnZURldGFpbH0uYCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZW1vTGluZXMubGVuZ3RoKSB7XG4gICAgICAgIG1lbW8gPSBtZW1vTGluZXMuam9pbignICcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb24gPSB7XG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICAgIGlkZW50aWZpZXI6IHR4bi5yZWZlcmVuY2VOdW1iZXIsXG4gICAgICBkYXRlOiBtb21lbnQodHhuLmV2ZW50RGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKCksXG4gICAgICBwcm9jZXNzZWREYXRlOiBtb21lbnQodHhuLnZhbHVlRGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKCksXG4gICAgICBvcmlnaW5hbEFtb3VudDogaXNPdXRib3VuZCA/IC10eG4uZXZlbnRBbW91bnQgOiB0eG4uZXZlbnRBbW91bnQsXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiAnSUxTJyxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGlzT3V0Ym91bmQgPyAtdHhuLmV2ZW50QW1vdW50IDogdHhuLmV2ZW50QW1vdW50LFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5hY3Rpdml0eURlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgc3RhdHVzOiB0eG4uc2VyaWFsTnVtYmVyID09PSAwID8gVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nIDogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsXG4gICAgICBtZW1vLFxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0UmVzdENvbnRleHQocGFnZTogUGFnZSkge1xuICBhd2FpdCB3YWl0VW50aWwoKCkgPT4ge1xuICAgIHJldHVybiBwYWdlLmV2YWx1YXRlKCgpID0+ICEhd2luZG93LmJuaHBBcHApO1xuICB9LCAnd2FpdGluZyBmb3IgYXBwIGRhdGEgbG9hZCcpO1xuXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBhZ2UuZXZhbHVhdGUoKCkgPT4ge1xuICAgIHJldHVybiB3aW5kb3cuYm5ocEFwcC5yZXN0Q29udGV4dDtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdC5zbGljZSgxKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hQb2FsaW1YU1JGV2l0aGluUGFnZShwYWdlOiBQYWdlLCB1cmw6IHN0cmluZywgcGFnZVV1aWQ6IHN0cmluZyk6IFByb21pc2U8RmV0Y2hlZEFjY291bnRUcmFuc2FjdGlvbnNEYXRhIHwgbnVsbD4ge1xuICBjb25zdCBjb29raWVzID0gYXdhaXQgcGFnZS5jb29raWVzKCk7XG4gIGNvbnN0IFhTUkZDb29raWUgPSBjb29raWVzLmZpbmQoKGNvb2tpZSkgPT4gY29va2llLm5hbWUgPT09ICdYU1JGLVRPS0VOJyk7XG4gIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgaWYgKFhTUkZDb29raWUgIT0gbnVsbCkge1xuICAgIGhlYWRlcnNbJ1gtWFNSRi1UT0tFTiddID0gWFNSRkNvb2tpZS52YWx1ZTtcbiAgfVxuICBoZWFkZXJzLnBhZ2VVdWlkID0gcGFnZVV1aWQ7XG4gIGhlYWRlcnMudXVpZCA9IHV1aWQ0KCk7XG4gIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCc7XG4gIHJldHVybiBmZXRjaFBvc3RXaXRoaW5QYWdlPEZldGNoZWRBY2NvdW50VHJhbnNhY3Rpb25zRGF0YT4ocGFnZSwgdXJsLCBbXSwgaGVhZGVycyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFjY291bnRUcmFuc2FjdGlvbnMoYXBpU2l0ZVVybDogc3RyaW5nLCBwYWdlOiBQYWdlLCBhY2NvdW50TnVtYmVyOiBzdHJpbmcsIHN0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmcpIHtcbiAgY29uc3QgdHhuc1VybCA9IGAke2FwaVNpdGVVcmx9L2N1cnJlbnQtYWNjb3VudC90cmFuc2FjdGlvbnM/YWNjb3VudElkPSR7YWNjb3VudE51bWJlcn0mbnVtSXRlbXNQZXJQYWdlPTE1MCZyZXRyaWV2YWxFbmREYXRlPSR7ZW5kRGF0ZX0mcmV0cmlldmFsU3RhcnREYXRlPSR7c3RhcnREYXRlfSZzb3J0Q29kZT0xYDtcbiAgY29uc3QgdHhuc1Jlc3VsdCA9IGF3YWl0IGZldGNoUG9hbGltWFNSRldpdGhpblBhZ2UocGFnZSwgdHhuc1VybCwgJy9jdXJyZW50LWFjY291bnQvdHJhbnNhY3Rpb25zJyk7XG5cbiAgcmV0dXJuIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuc1Jlc3VsdD8udHJhbnNhY3Rpb25zID8/IFtdKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWNjb3VudEJhbGFuY2UoYXBpU2l0ZVVybDogc3RyaW5nLCBwYWdlOiBQYWdlLCBhY2NvdW50TnVtYmVyOiBzdHJpbmcpIHtcbiAgY29uc3QgYmFsYW5jZUFuZENyZWRpdExpbWl0VXJsID0gYCR7YXBpU2l0ZVVybH0vY3VycmVudC1hY2NvdW50L2NvbXBvc2l0ZS9iYWxhbmNlQW5kQ3JlZGl0TGltaXQ/YWNjb3VudElkPSR7YWNjb3VudE51bWJlcn0mdmlldz1kZXRhaWxzJmxhbmc9aGVgO1xuICBjb25zdCBiYWxhbmNlQW5kQ3JlZGl0TGltaXQgPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8QmFsYW5jZUFuZENyZWRpdExpbWl0PihwYWdlLCBiYWxhbmNlQW5kQ3JlZGl0TGltaXRVcmwpO1xuXG4gIHJldHVybiBiYWxhbmNlQW5kQ3JlZGl0TGltaXQ/LmN1cnJlbnRCYWxhbmNlO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFjY291bnREYXRhKHBhZ2U6IFBhZ2UsIGJhc2VVcmw6IHN0cmluZywgb3B0aW9uczogU2NyYXBlck9wdGlvbnMpIHtcbiAgY29uc3QgcmVzdENvbnRleHQgPSBhd2FpdCBnZXRSZXN0Q29udGV4dChwYWdlKTtcbiAgY29uc3QgYXBpU2l0ZVVybCA9IGAke2Jhc2VVcmx9LyR7cmVzdENvbnRleHR9YDtcbiAgY29uc3QgYWNjb3VudERhdGFVcmwgPSBgJHtiYXNlVXJsfS9TZXJ2ZXJTZXJ2aWNlcy9nZW5lcmFsL2FjY291bnRzYDtcblxuICBkZWJ1ZygnZmV0Y2hpbmcgYWNjb3VudHMgZGF0YScpO1xuICBjb25zdCBhY2NvdW50c0luZm8gPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8RmV0Y2hlZEFjY291bnREYXRhPihwYWdlLCBhY2NvdW50RGF0YVVybCkgfHwgW107XG4gIGRlYnVnKCdnb3QgJWQgYWNjb3VudHMsIGZldGNoaW5nIHR4bnMgYW5kIGJhbGFuY2UnLCBhY2NvdW50c0luZm8ubGVuZ3RoKTtcblxuICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKS5hZGQoMSwgJ2RheScpO1xuICBjb25zdCBzdGFydERhdGUgPSBvcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICBjb25zdCBzdGFydERhdGVTdHIgPSBzdGFydE1vbWVudC5mb3JtYXQoREFURV9GT1JNQVQpO1xuICBjb25zdCBlbmREYXRlU3RyID0gbW9tZW50KCkuZm9ybWF0KERBVEVfRk9STUFUKTtcblxuICBjb25zdCBhY2NvdW50czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG5cbiAgZm9yIChjb25zdCBhY2NvdW50IG9mIGFjY291bnRzSW5mbykge1xuICAgIGxldCBiYWxhbmNlOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgYWNjb3VudE51bWJlciA9IGAke2FjY291bnQuYmFua051bWJlcn0tJHthY2NvdW50LmJyYW5jaE51bWJlcn0tJHthY2NvdW50LmFjY291bnROdW1iZXJ9YDtcblxuICAgIGNvbnN0IGlzQWN0aXZlQWNjb3VudCA9IGFjY291bnQuYWNjb3VudENsb3NpbmdSZWFzb25Db2RlID09PSAwO1xuICAgIGlmIChpc0FjdGl2ZUFjY291bnQpIHtcbiAgICAgIGJhbGFuY2UgPSBhd2FpdCBnZXRBY2NvdW50QmFsYW5jZShhcGlTaXRlVXJsLCBwYWdlLCBhY2NvdW50TnVtYmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoJ1NraXBwaW5nIGJhbGFuY2UgZm9yIGEgY2xvc2VkIGFjY291bnQsIGJhbGFuY2Ugd2lsbCBiZSB1bmRlZmluZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eG5zID0gYXdhaXQgZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyhhcGlTaXRlVXJsLCBwYWdlLCBhY2NvdW50TnVtYmVyLCBzdGFydERhdGVTdHIsIGVuZERhdGVTdHIpO1xuXG4gICAgYWNjb3VudHMucHVzaCh7XG4gICAgICBhY2NvdW50TnVtYmVyLFxuICAgICAgYmFsYW5jZSxcbiAgICAgIHR4bnMsXG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBhY2NvdW50RGF0YSA9IHtcbiAgICBzdWNjZXNzOiB0cnVlLFxuICAgIGFjY291bnRzLFxuICB9O1xuICBkZWJ1ZygnZmV0Y2hpbmcgZW5kZWQnKTtcbiAgcmV0dXJuIGFjY291bnREYXRhO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyhiYXNlVXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsczogUG9zc2libGVMb2dpblJlc3VsdHMgPSB7fTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuU3VjY2Vzc10gPSBbXG4gICAgYCR7YmFzZVVybH0vcG9ydGFsc2VydmVyL0hvbWVQYWdlYCxcbiAgICBgJHtiYXNlVXJsfS9uZy1wb3J0YWxzLWJ0L3JiL2hlL2hvbWVwYWdlYCxcbiAgICBgJHtiYXNlVXJsfS9uZy1wb3J0YWxzL3JiL2hlL2hvbWVwYWdlYF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF0gPSBbYCR7YmFzZVVybH0vQVVUSEVOVElDQVRFL0xPR09OP2Zsb3c9QVVUSEVOVElDQVRFJnN0YXRlPUxPR09OJmVycm9yY29kZT0xLjYmY2FsbG1lPWZhbHNlYF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkXSA9IFtcbiAgICBgJHtiYXNlVXJsfS9NQ1AvU1RBUlQ/Zmxvdz1NQ1Amc3RhdGU9U1RBUlQmZXhwaXJlZERhdGU9bnVsbGAsXG4gICAgL1xcL0FCT1VUVE9FWFBJUkVcXC9TVEFSVC9pLFxuICBdO1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICcjdXNlckNvZGUnLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlckNvZGUgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3Bhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmNsYXNzIEhhcG9hbGltU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICBnZXQgYmFzZVVybCgpIHtcbiAgICByZXR1cm4gJ2h0dHBzOi8vbG9naW4uYmFua2hhcG9hbGltLmNvLmlsJztcbiAgfVxuXG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBgJHt0aGlzLmJhc2VVcmx9L2NnaS1iaW4vcG9hbHd3d2M/cmVxTmFtZT1nZXRMb2dvblBhZ2VgLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJy5sb2dpbi1idG4nLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gd2FpdEZvclJlZGlyZWN0KHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHRoaXMuYmFzZVVybCksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICByZXR1cm4gZmV0Y2hBY2NvdW50RGF0YSh0aGlzLnBhZ2UsIHRoaXMuYmFzZVVybCwgdGhpcy5vcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBIYXBvYWxpbVNjcmFwZXI7XG4iXX0=
208
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9oYXBvYWxpbS50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsIkRBVEVfRk9STUFUIiwiY29udmVydFRyYW5zYWN0aW9ucyIsInR4bnMiLCJtYXAiLCJ0eG4iLCJpc091dGJvdW5kIiwiZXZlbnRBY3Rpdml0eVR5cGVDb2RlIiwibWVtbyIsImJlbmVmaWNpYXJ5RGV0YWlsc0RhdGEiLCJwYXJ0eUhlYWRsaW5lIiwicGFydHlOYW1lIiwibWVzc2FnZUhlYWRsaW5lIiwibWVzc2FnZURldGFpbCIsIm1lbW9MaW5lcyIsInB1c2giLCJsZW5ndGgiLCJqb2luIiwicmVzdWx0IiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJpZGVudGlmaWVyIiwicmVmZXJlbmNlTnVtYmVyIiwiZGF0ZSIsImV2ZW50RGF0ZSIsInRvSVNPU3RyaW5nIiwicHJvY2Vzc2VkRGF0ZSIsInZhbHVlRGF0ZSIsIm9yaWdpbmFsQW1vdW50IiwiZXZlbnRBbW91bnQiLCJvcmlnaW5hbEN1cnJlbmN5IiwiY2hhcmdlZEFtb3VudCIsImRlc2NyaXB0aW9uIiwiYWN0aXZpdHlEZXNjcmlwdGlvbiIsInN0YXR1cyIsInNlcmlhbE51bWJlciIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJQZW5kaW5nIiwiQ29tcGxldGVkIiwiZ2V0UmVzdENvbnRleHQiLCJwYWdlIiwiZXZhbHVhdGUiLCJ3aW5kb3ciLCJibmhwQXBwIiwicmVzdENvbnRleHQiLCJzbGljZSIsImZldGNoUG9hbGltWFNSRldpdGhpblBhZ2UiLCJ1cmwiLCJwYWdlVXVpZCIsImNvb2tpZXMiLCJYU1JGQ29va2llIiwiZmluZCIsImNvb2tpZSIsIm5hbWUiLCJoZWFkZXJzIiwidmFsdWUiLCJ1dWlkIiwiZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyIsImFwaVNpdGVVcmwiLCJhY2NvdW50TnVtYmVyIiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsInR4bnNVcmwiLCJ0eG5zUmVzdWx0IiwidHJhbnNhY3Rpb25zIiwiZ2V0QWNjb3VudEJhbGFuY2UiLCJiYWxhbmNlQW5kQ3JlZGl0TGltaXRVcmwiLCJiYWxhbmNlQW5kQ3JlZGl0TGltaXQiLCJjdXJyZW50QmFsYW5jZSIsImZldGNoQWNjb3VudERhdGEiLCJiYXNlVXJsIiwib3B0aW9ucyIsImFjY291bnREYXRhVXJsIiwiYWNjb3VudHNJbmZvIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJhZGQiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1vbWVudCIsIm1heCIsInN0YXJ0RGF0ZVN0ciIsImZvcm1hdCIsImVuZERhdGVTdHIiLCJhY2NvdW50cyIsImFjY291bnQiLCJiYWxhbmNlIiwiYmFua051bWJlciIsImJyYW5jaE51bWJlciIsImlzQWN0aXZlQWNjb3VudCIsImFjY291bnRDbG9zaW5nUmVhc29uQ29kZSIsImFjY291bnREYXRhIiwic3VjY2VzcyIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJDaGFuZ2VQYXNzd29yZCIsImNyZWF0ZUxvZ2luRmllbGRzIiwiY3JlZGVudGlhbHMiLCJzZWxlY3RvciIsInVzZXJDb2RlIiwicGFzc3dvcmQiLCJIYXBvYWxpbVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBSUE7Ozs7QUFFQSxNQUFNQSxLQUFLLEdBQUcscUJBQVMsVUFBVCxDQUFkO0FBRUEsTUFBTUMsV0FBVyxHQUFHLFVBQXBCLEMsQ0FFQTs7QUE2Q0EsU0FBU0MsbUJBQVQsQ0FBNkJDLElBQTdCLEVBQXdFO0FB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XG5pbXBvcnQgdXVpZDQgZnJvbSAndXVpZC92NCc7XG5cbmltcG9ydCB7IFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyB3YWl0Rm9yUmVkaXJlY3QgfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgd2FpdFVudGlsIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSwgZmV0Y2hQb3N0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb25zQWNjb3VudCwgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBTY3JhcGVyT3B0aW9ucywgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnaGFwb2FsaW0nKTtcblxuY29uc3QgREFURV9GT1JNQVQgPSAnWVlZWU1NREQnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVxuZGVjbGFyZSBuYW1lc3BhY2Ugd2luZG93IHtcbiAgY29uc3QgYm5ocEFwcDogYW55O1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgc2VyaWFsTnVtYmVyPzogbnVtYmVyO1xuICBhY3Rpdml0eURlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBldmVudEFtb3VudDogbnVtYmVyO1xuICB2YWx1ZURhdGU/OiBzdHJpbmc7XG4gIGV2ZW50RGF0ZT86IHN0cmluZztcbiAgcmVmZXJlbmNlTnVtYmVyPzogbnVtYmVyO1xuICBTY3JhcGVkVHJhbnNhY3Rpb24/OiBzdHJpbmc7XG4gIGV2ZW50QWN0aXZpdHlUeXBlQ29kZTogbnVtYmVyO1xuICBjdXJyZW50QmFsYW5jZTogbnVtYmVyO1xuICBiZW5lZmljaWFyeURldGFpbHNEYXRhPzoge1xuICAgIHBhcnR5SGVhZGxpbmU/OiBzdHJpbmc7XG4gICAgcGFydHlOYW1lPzogc3RyaW5nO1xuICAgIG1lc3NhZ2VIZWFkbGluZT86IHN0cmluZztcbiAgICBtZXNzYWdlRGV0YWlsPzogc3RyaW5nO1xuICB9O1xufVxuXG50eXBlIEZldGNoZWRBY2NvdW50RGF0YSA9IHtcbiAgYmFua051bWJlcjogc3RyaW5nO1xuICBhY2NvdW50TnVtYmVyOiBzdHJpbmc7XG4gIGJyYW5jaE51bWJlcjogc3RyaW5nO1xuICBhY2NvdW50Q2xvc2luZ1JlYXNvbkNvZGU6IG51bWJlcjtcbn1bXTtcblxudHlwZSBGZXRjaGVkQWNjb3VudFRyYW5zYWN0aW9uc0RhdGEgPSB7XG4gIHRyYW5zYWN0aW9uczogU2NyYXBlZFRyYW5zYWN0aW9uW107XG59O1xuXG50eXBlIEJhbGFuY2VBbmRDcmVkaXRMaW1pdCA9IHtcbiAgY3JlZGl0TGltaXRBbW91bnQ6IG51bWJlcjtcbiAgY3JlZGl0TGltaXREZXNjcmlwdGlvbjogc3RyaW5nO1xuICBjcmVkaXRMaW1pdFV0aWxpemF0aW9uQW1vdW50OiBudW1iZXI7XG4gIGNyZWRpdExpbWl0VXRpbGl6YXRpb25FeGlzdGFuY2VDb2RlOiBudW1iZXI7XG4gIGNyZWRpdExpbWl0VXRpbGl6YXRpb25QZXJjZW50OiBudW1iZXI7XG4gIGN1cnJlbnRBY2NvdW50TGltaXRzQW1vdW50OiBudW1iZXI7XG4gIGN1cnJlbnRCYWxhbmNlOiBudW1iZXI7XG4gIHdpdGhkcmF3YWxCYWxhbmNlOiBudW1iZXI7XG59O1xuXG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSB7XG4gIHJldHVybiB0eG5zLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgaXNPdXRib3VuZCA9IHR4bi5ldmVudEFjdGl2aXR5VHlwZUNvZGUgPT09IDI7XG5cbiAgICBsZXQgbWVtbyA9ICcnO1xuICAgIGlmICh0eG4uYmVuZWZpY2lhcnlEZXRhaWxzRGF0YSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBwYXJ0eUhlYWRsaW5lLFxuICAgICAgICBwYXJ0eU5hbWUsXG4gICAgICAgIG1lc3NhZ2VIZWFkbGluZSxcbiAgICAgICAgbWVzc2FnZURldGFpbCxcbiAgICAgIH0gPSB0eG4uYmVuZWZpY2lhcnlEZXRhaWxzRGF0YTtcbiAgICAgIGNvbnN0IG1lbW9MaW5lczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGlmIChwYXJ0eUhlYWRsaW5lKSB7XG4gICAgICAgIG1lbW9MaW5lcy5wdXNoKHBhcnR5SGVhZGxpbmUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocGFydHlOYW1lKSB7XG4gICAgICAgIG1lbW9MaW5lcy5wdXNoKGAke3BhcnR5TmFtZX0uYCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZXNzYWdlSGVhZGxpbmUpIHtcbiAgICAgICAgbWVtb0xpbmVzLnB1c2gobWVzc2FnZUhlYWRsaW5lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1lc3NhZ2VEZXRhaWwpIHtcbiAgICAgICAgbWVtb0xpbmVzLnB1c2goYCR7bWVzc2FnZURldGFpbH0uYCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZW1vTGluZXMubGVuZ3RoKSB7XG4gICAgICAgIG1lbW8gPSBtZW1vTGluZXMuam9pbignICcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb24gPSB7XG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICAgIGlkZW50aWZpZXI6IHR4bi5yZWZlcmVuY2VOdW1iZXIsXG4gICAgICBkYXRlOiBtb21lbnQodHhuLmV2ZW50RGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKCksXG4gICAgICBwcm9jZXNzZWREYXRlOiBtb21lbnQodHhuLnZhbHVlRGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKCksXG4gICAgICBvcmlnaW5hbEFtb3VudDogaXNPdXRib3VuZCA/IC10eG4uZXZlbnRBbW91bnQgOiB0eG4uZXZlbnRBbW91bnQsXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiAnSUxTJyxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGlzT3V0Ym91bmQgPyAtdHhuLmV2ZW50QW1vdW50IDogdHhuLmV2ZW50QW1vdW50LFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5hY3Rpdml0eURlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgc3RhdHVzOiB0eG4uc2VyaWFsTnVtYmVyID09PSAwID8gVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nIDogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsXG4gICAgICBtZW1vLFxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0UmVzdENvbnRleHQocGFnZTogUGFnZSkge1xuICBhd2FpdCB3YWl0VW50aWwoKCkgPT4ge1xuICAgIHJldHVybiBwYWdlLmV2YWx1YXRlKCgpID0+ICEhd2luZG93LmJuaHBBcHApO1xuICB9LCAnd2FpdGluZyBmb3IgYXBwIGRhdGEgbG9hZCcpO1xuXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBhZ2UuZXZhbHVhdGUoKCkgPT4ge1xuICAgIHJldHVybiB3aW5kb3cuYm5ocEFwcC5yZXN0Q29udGV4dDtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdC5zbGljZSgxKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hQb2FsaW1YU1JGV2l0aGluUGFnZShwYWdlOiBQYWdlLCB1cmw6IHN0cmluZywgcGFnZVV1aWQ6IHN0cmluZyk6IFByb21pc2U8RmV0Y2hlZEFjY291bnRUcmFuc2FjdGlvbnNEYXRhIHwgbnVsbD4ge1xuICBjb25zdCBjb29raWVzID0gYXdhaXQgcGFnZS5jb29raWVzKCk7XG4gIGNvbnN0IFhTUkZDb29raWUgPSBjb29raWVzLmZpbmQoKGNvb2tpZSkgPT4gY29va2llLm5hbWUgPT09ICdYU1JGLVRPS0VOJyk7XG4gIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgaWYgKFhTUkZDb29raWUgIT0gbnVsbCkge1xuICAgIGhlYWRlcnNbJ1gtWFNSRi1UT0tFTiddID0gWFNSRkNvb2tpZS52YWx1ZTtcbiAgfVxuICBoZWFkZXJzLnBhZ2VVdWlkID0gcGFnZVV1aWQ7XG4gIGhlYWRlcnMudXVpZCA9IHV1aWQ0KCk7XG4gIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCc7XG4gIHJldHVybiBmZXRjaFBvc3RXaXRoaW5QYWdlPEZldGNoZWRBY2NvdW50VHJhbnNhY3Rpb25zRGF0YT4ocGFnZSwgdXJsLCBbXSwgaGVhZGVycyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFjY291bnRUcmFuc2FjdGlvbnMoYXBpU2l0ZVVybDogc3RyaW5nLCBwYWdlOiBQYWdlLCBhY2NvdW50TnVtYmVyOiBzdHJpbmcsIHN0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmcpIHtcbiAgY29uc3QgdHhuc1VybCA9IGAke2FwaVNpdGVVcmx9L2N1cnJlbnQtYWNjb3VudC90cmFuc2FjdGlvbnM/YWNjb3VudElkPSR7YWNjb3VudE51bWJlcn0mbnVtSXRlbXNQZXJQYWdlPTEwMDAmcmV0cmlldmFsRW5kRGF0ZT0ke2VuZERhdGV9JnJldHJpZXZhbFN0YXJ0RGF0ZT0ke3N0YXJ0RGF0ZX0mc29ydENvZGU9MWA7XG4gIGNvbnN0IHR4bnNSZXN1bHQgPSBhd2FpdCBmZXRjaFBvYWxpbVhTUkZXaXRoaW5QYWdlKHBhZ2UsIHR4bnNVcmwsICcvY3VycmVudC1hY2NvdW50L3RyYW5zYWN0aW9ucycpO1xuXG4gIHJldHVybiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnNSZXN1bHQ/LnRyYW5zYWN0aW9ucyA/PyBbXSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFjY291bnRCYWxhbmNlKGFwaVNpdGVVcmw6IHN0cmluZywgcGFnZTogUGFnZSwgYWNjb3VudE51bWJlcjogc3RyaW5nKSB7XG4gIGNvbnN0IGJhbGFuY2VBbmRDcmVkaXRMaW1pdFVybCA9IGAke2FwaVNpdGVVcmx9L2N1cnJlbnQtYWNjb3VudC9jb21wb3NpdGUvYmFsYW5jZUFuZENyZWRpdExpbWl0P2FjY291bnRJZD0ke2FjY291bnROdW1iZXJ9JnZpZXc9ZGV0YWlscyZsYW5nPWhlYDtcbiAgY29uc3QgYmFsYW5jZUFuZENyZWRpdExpbWl0ID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPEJhbGFuY2VBbmRDcmVkaXRMaW1pdD4ocGFnZSwgYmFsYW5jZUFuZENyZWRpdExpbWl0VXJsKTtcblxuICByZXR1cm4gYmFsYW5jZUFuZENyZWRpdExpbWl0Py5jdXJyZW50QmFsYW5jZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hBY2NvdW50RGF0YShwYWdlOiBQYWdlLCBiYXNlVXJsOiBzdHJpbmcsIG9wdGlvbnM6IFNjcmFwZXJPcHRpb25zKSB7XG4gIGNvbnN0IHJlc3RDb250ZXh0ID0gYXdhaXQgZ2V0UmVzdENvbnRleHQocGFnZSk7XG4gIGNvbnN0IGFwaVNpdGVVcmwgPSBgJHtiYXNlVXJsfS8ke3Jlc3RDb250ZXh0fWA7XG4gIGNvbnN0IGFjY291bnREYXRhVXJsID0gYCR7YmFzZVVybH0vU2VydmVyU2VydmljZXMvZ2VuZXJhbC9hY2NvdW50c2A7XG5cbiAgZGVidWcoJ2ZldGNoaW5nIGFjY291bnRzIGRhdGEnKTtcbiAgY29uc3QgYWNjb3VudHNJbmZvID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPEZldGNoZWRBY2NvdW50RGF0YT4ocGFnZSwgYWNjb3VudERhdGFVcmwpIHx8IFtdO1xuICBkZWJ1ZygnZ290ICVkIGFjY291bnRzLCBmZXRjaGluZyB0eG5zIGFuZCBiYWxhbmNlJywgYWNjb3VudHNJbmZvLmxlbmd0aCk7XG5cbiAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gb3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgY29uc3Qgc3RhcnREYXRlU3RyID0gc3RhcnRNb21lbnQuZm9ybWF0KERBVEVfRk9STUFUKTtcbiAgY29uc3QgZW5kRGF0ZVN0ciA9IG1vbWVudCgpLmZvcm1hdChEQVRFX0ZPUk1BVCk7XG5cbiAgY29uc3QgYWNjb3VudHM6IFRyYW5zYWN0aW9uc0FjY291bnRbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgYWNjb3VudCBvZiBhY2NvdW50c0luZm8pIHtcbiAgICBsZXQgYmFsYW5jZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGFjY291bnROdW1iZXIgPSBgJHthY2NvdW50LmJhbmtOdW1iZXJ9LSR7YWNjb3VudC5icmFuY2hOdW1iZXJ9LSR7YWNjb3VudC5hY2NvdW50TnVtYmVyfWA7XG5cbiAgICBjb25zdCBpc0FjdGl2ZUFjY291bnQgPSBhY2NvdW50LmFjY291bnRDbG9zaW5nUmVhc29uQ29kZSA9PT0gMDtcbiAgICBpZiAoaXNBY3RpdmVBY2NvdW50KSB7XG4gICAgICBiYWxhbmNlID0gYXdhaXQgZ2V0QWNjb3VudEJhbGFuY2UoYXBpU2l0ZVVybCwgcGFnZSwgYWNjb3VudE51bWJlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCdTa2lwcGluZyBiYWxhbmNlIGZvciBhIGNsb3NlZCBhY2NvdW50LCBiYWxhbmNlIHdpbGwgYmUgdW5kZWZpbmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdHhucyA9IGF3YWl0IGdldEFjY291bnRUcmFuc2FjdGlvbnMoYXBpU2l0ZVVybCwgcGFnZSwgYWNjb3VudE51bWJlciwgc3RhcnREYXRlU3RyLCBlbmREYXRlU3RyKTtcblxuICAgIGFjY291bnRzLnB1c2goe1xuICAgICAgYWNjb3VudE51bWJlcixcbiAgICAgIGJhbGFuY2UsXG4gICAgICB0eG5zLFxuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgYWNjb3VudERhdGEgPSB7XG4gICAgc3VjY2VzczogdHJ1ZSxcbiAgICBhY2NvdW50cyxcbiAgfTtcbiAgZGVidWcoJ2ZldGNoaW5nIGVuZGVkJyk7XG4gIHJldHVybiBhY2NvdW50RGF0YTtcbn1cblxuZnVuY3Rpb24gZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoYmFzZVVybDogc3RyaW5nKSB7XG4gIGNvbnN0IHVybHM6IFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge307XG4gIHVybHNbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdID0gW1xuICAgIGAke2Jhc2VVcmx9L3BvcnRhbHNlcnZlci9Ib21lUGFnZWAsXG4gICAgYCR7YmFzZVVybH0vbmctcG9ydGFscy1idC9yYi9oZS9ob21lcGFnZWAsXG4gICAgYCR7YmFzZVVybH0vbmctcG9ydGFscy9yYi9oZS9ob21lcGFnZWBdO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdID0gW2Ake2Jhc2VVcmx9L0FVVEhFTlRJQ0FURS9MT0dPTj9mbG93PUFVVEhFTlRJQ0FURSZzdGF0ZT1MT0dPTiZlcnJvcmNvZGU9MS42JmNhbGxtZT1mYWxzZWBdO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF0gPSBbXG4gICAgYCR7YmFzZVVybH0vTUNQL1NUQVJUP2Zsb3c9TUNQJnN0YXRlPVNUQVJUJmV4cGlyZWREYXRlPW51bGxgLFxuICAgIC9cXC9BQk9VVFRPRVhQSVJFXFwvU1RBUlQvaSxcbiAgXTtcbiAgcmV0dXJuIHVybHM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpIHtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnI3VzZXJDb2RlJywgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJDb2RlIH0sXG4gICAgeyBzZWxlY3RvcjogJyNwYXNzd29yZCcsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5jbGFzcyBIYXBvYWxpbVNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgZ2V0IGJhc2VVcmwoKSB7XG4gICAgcmV0dXJuICdodHRwczovL2xvZ2luLmJhbmtoYXBvYWxpbS5jby5pbCc7XG4gIH1cblxuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogYCR7dGhpcy5iYXNlVXJsfS9jZ2ktYmluL3BvYWx3d3djP3JlcU5hbWU9Z2V0TG9nb25QYWdlYCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICcubG9naW4tYnRuJyxcbiAgICAgIHBvc3RBY3Rpb246IGFzeW5jICgpID0+IHdhaXRGb3JSZWRpcmVjdCh0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyh0aGlzLmJhc2VVcmwpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgcmV0dXJuIGZldGNoQWNjb3VudERhdGEodGhpcy5wYWdlLCB0aGlzLmJhc2VVcmwsIHRoaXMub3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSGFwb2FsaW1TY3JhcGVyO1xuIl19
@@ -209,7 +209,7 @@ function addResult(allResults, result) {
209
209
  return clonedResults;
210
210
  }
211
211
 
212
- function prepareTransactions(txns, startMoment, combineInstallments) {
212
+ function prepareTransactions(txns, startMoment, combineInstallments, enableTransactionsFilterByDate) {
213
213
  let clonedTxns = Array.from(txns);
214
214
 
215
215
  if (!combineInstallments) {
@@ -217,7 +217,7 @@ function prepareTransactions(txns, startMoment, combineInstallments) {
217
217
  }
218
218
 
219
219
  clonedTxns = (0, _transactions.sortTransactionsByDate)(clonedTxns);
220
- clonedTxns = (0, _transactions.filterOldTransactions)(clonedTxns, startMoment, combineInstallments || false);
220
+ clonedTxns = enableTransactionsFilterByDate ? (0, _transactions.filterOldTransactions)(clonedTxns, startMoment, combineInstallments || false) : clonedTxns;
221
221
  return clonedTxns;
222
222
  }
223
223
 
@@ -240,8 +240,10 @@ async function fetchTransactions(page, options) {
240
240
  }
241
241
 
242
242
  Object.keys(allResults).forEach(accountNumber => {
243
+ var _options$outputData$e, _options$outputData;
244
+
243
245
  let txns = allResults[accountNumber];
244
- txns = prepareTransactions(txns, startMoment, options.combineInstallments || false);
246
+ txns = prepareTransactions(txns, startMoment, options.combineInstallments || false, (_options$outputData$e = (_options$outputData = options.outputData) === null || _options$outputData === void 0 ? void 0 : _options$outputData.enableTransactionsFilterByDate) !== null && _options$outputData$e !== void 0 ? _options$outputData$e : true);
245
247
  allResults[accountNumber] = txns;
246
248
  });
247
249
  return allResults;
@@ -312,4 +314,4 @@ class MaxScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
312
314
 
313
315
  var _default = MaxScraper;
314
316
  exports.default = _default;
315
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9tYXgudHMiXSwibmFtZXMiOlsiZGVidWciLCJCQVNFX0FDVElPTlNfVVJMIiwiQkFTRV9BUElfQUNUSU9OU19VUkwiLCJCQVNFX1dFTENPTUVfVVJMIiwiTE9HSU5fVVJMIiwiUEFTU1dPUkRfRVhQSVJFRF9VUkwiLCJTVUNDRVNTX1VSTCIsIk5PUk1BTF9UWVBFX05BTUUiLCJBVE1fVFlQRV9OQU1FIiwiSU5URVJORVRfU0hPUFBJTkdfVFlQRV9OQU1FIiwiSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSIsIk1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRSIsIk9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QQVlNRU5UX1RZUEVfTkFNRSIsIkZVVFVSRV9QVVJDSEFTRV9GSU5BTkNJTkciLCJNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FIiwiVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUUiLCJUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUiLCJNT05USExZX0NIQVJHRV9QTFVTX0lOVEVSRVNUX1RZUEVfTkFNRSIsIkNSRURJVF9UWVBFX05BTUUiLCJBQ0NVTVVMQVRJTkdfQkFTS0VUIiwiUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUyIsIlJFUExBQ0VNRU5UX0NBUkQiLCJFQVJMWV9SRVBBWU1FTlQiLCJNT05USExZX0NBUkRfRkVFIiwiSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SIiwiTE9HSU5fRVJST1JfU0VMRUNUT1IiLCJjYXRlZ29yaWVzIiwiTWFwIiwicmVkaXJlY3RPckRpYWxvZyIsInBhZ2UiLCJQcm9taXNlIiwicmFjZSIsImdldFRyYW5zYWN0aW9uc1VybCIsIm1vbnRoTW9tZW50IiwibW9udGgiLCJ5ZWFyIiwiZGF0ZSIsInBhdGgiLCJsb2FkQ2F0ZWdvcmllcyIsInJlcyIsIkFycmF5IiwiaXNBcnJheSIsInJlc3VsdCIsImxlbmd0aCIsImZvckVhY2giLCJpZCIsIm5hbWUiLCJzZXQiLCJnZXRUcmFuc2FjdGlvblR5cGUiLCJ0eG5UeXBlU3RyIiwiY2xlYW5lZFVwVHhuVHlwZVN0ciIsInJlcGxhY2UiLCJ0cmltIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsIkluc3RhbGxtZW50cyIsIkVycm9yIiwiZ2V0SW5zdGFsbG1lbnRzSW5mbyIsImNvbW1lbnRzIiwidW5kZWZpbmVkIiwibWF0Y2hlcyIsIm1hdGNoIiwibnVtYmVyIiwicGFyc2VJbnQiLCJ0b3RhbCIsIm1hcFRyYW5zYWN0aW9uIiwicmF3VHJhbnNhY3Rpb24iLCJpc1BlbmRpbmciLCJwYXltZW50RGF0ZSIsInByb2Nlc3NlZERhdGUiLCJwdXJjaGFzZURhdGUiLCJ0b0lTT1N0cmluZyIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJQZW5kaW5nIiwiQ29tcGxldGVkIiwiaW5zdGFsbG1lbnRzIiwiaWRlbnRpZmllciIsImRlYWxEYXRhIiwiYXJuIiwidHlwZSIsInBsYW5OYW1lIiwib3JpZ2luYWxBbW91bnQiLCJvcmlnaW5hbEN1cnJlbmN5IiwiY2hhcmdlZEFtb3VudCIsImFjdHVhbFBheW1lbnRBbW91bnQiLCJkZXNjcmlwdGlvbiIsIm1lcmNoYW50TmFtZSIsIm1lbW8iLCJjYXRlZ29yeSIsImdldCIsImNhdGVnb3J5SWQiLCJmZXRjaFRyYW5zYWN0aW9uc0Zvck1vbnRoIiwidXJsIiwiZGF0YSIsInRyYW5zYWN0aW9uc0J5QWNjb3VudCIsInRyYW5zYWN0aW9ucyIsImZpbHRlciIsInRyYW5zYWN0aW9uIiwic2hvcnRDYXJkTnVtYmVyIiwibWFwcGVkVHJhbnNhY3Rpb24iLCJwdXNoIiwiYWRkUmVzdWx0IiwiYWxsUmVzdWx0cyIsImNsb25lZFJlc3VsdHMiLCJPYmplY3QiLCJrZXlzIiwiYWNjb3VudE51bWJlciIsInByZXBhcmVUcmFuc2FjdGlvbnMiLCJ0eG5zIiwic3RhcnRNb21lbnQiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwiY2xvbmVkVHhucyIsImZyb20iLCJmZXRjaFRyYW5zYWN0aW9ucyIsIm9wdGlvbnMiLCJmdXR1cmVNb250aHNUb1NjcmFwZSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0Iiwic3RhcnREYXRlIiwidG9EYXRlIiwibW9tZW50IiwibWF4IiwiYWxsTW9udGhzIiwiaSIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJDaGFuZ2VQYXNzd29yZCIsIkludmFsaWRQYXNzd29yZCIsIlVua25vd25FcnJvciIsImNyZWF0ZUxvZ2luRmllbGRzIiwiY3JlZGVudGlhbHMiLCJzZWxlY3RvciIsInZhbHVlIiwidXNlcm5hbWUiLCJwYXNzd29yZCIsIk1heFNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInByZUFjdGlvbiIsImNoZWNrUmVhZGluZXNzIiwicG9zdEFjdGlvbiIsInBvc3NpYmxlUmVzdWx0cyIsImZldGNoRGF0YSIsInJlc3VsdHMiLCJhY2NvdW50cyIsIm1hcCIsInN1Y2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7Ozs7O0FBRUEsTUFBTUEsS0FBSyxHQUFHLHFCQUFTLEtBQVQsQ0FBZDtBQWtCQSxNQUFNQyxnQkFBZ0IsR0FBRywwQkFBekI7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRywrQkFBN0I7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyx1QkFBekI7QUFFQSxNQUFNQyxTQUFTLEdBQUksR0FBRUQsZ0JBQWlCLG1CQUF0QztBQUNBLE1BQU1FLG9CQUFvQixHQUFJLEdBQUVKLGdCQUFpQix1Q0FBakQ7QUFDQSxNQUFNSyxXQUFXLEdBQUksR0FB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QUFOO0FBQ0EsY0FBTSxpREFBc0IsS0FBS0EsSUFBM0IsRUFBaUMscURBQWpDLEVBQXdGLElBQXhGLENBQU47QUFDRCxPQVpJO0FBYUxvSCxNQUFBQSxjQUFjLEVBQUUsWUFBWTtBQUMxQixjQUFNLGlEQUFzQixLQUFLcEgsSUFBM0IsRUFBaUMsd0NBQWpDLEVBQTJFLElBQTNFLENBQU47QUFDRCxPQWZJO0FBZ0JMcUgsTUFBQUEsVUFBVSxFQUFFLFlBQVl0SCxnQkFBZ0IsQ0FBQyxLQUFLQyxJQUFOLENBaEJuQztBQWlCTHNILE1BQUFBLGVBQWUsRUFBRXRCLHVCQUF1QixDQUFDLEtBQUtoRyxJQUFOO0FBakJuQyxLQUFQO0FBbUJEOztBQUVELFFBQU11SCxTQUFOLEdBQWtCO0FBQ2hCLFVBQU1DLE9BQU8sR0FBRyxNQUFNbkMsaUJBQWlCLENBQUMsS0FBS3JGLElBQU4sRUFBWSxLQUFLc0YsT0FBakIsQ0FBdkM7QUFDQSxVQUFNbUMsUUFBUSxHQUFHN0MsTUFBTSxDQUFDQyxJQUFQLENBQVkyQyxPQUFaLEVBQXFCRSxHQUFyQixDQUEwQjVDLGFBQUQsSUFBbUI7QUFDM0QsYUFBTztBQUNMQSxRQUFBQSxhQURLO0FBRUxFLFFBQUFBLElBQUksRUFBRXdDLE9BQU8sQ0FBQzFDLGFBQUQ7QUFGUixPQUFQO0FBSUQsS0FMZ0IsQ0FBakI7QUFPQSxXQUFPO0FBQ0w2QyxNQUFBQSxPQUFPLEVBQUUsSUFESjtBQUVMRixNQUFBQTtBQUZLLEtBQVA7QUFJRDs7QUFwQzZDOztlQXVDakNaLFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYnVpbGRVcmwgZnJvbSAnYnVpbGQtdXJsJztcbmltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgZmV0Y2hHZXRXaXRoaW5QYWdlIH0gZnJvbSAnLi4vaGVscGVycy9mZXRjaCc7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBMb2dpblJlc3VsdHMsIFBvc3NpYmxlTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IHdhaXRGb3JSZWRpcmVjdCB9IGZyb20gJy4uL2hlbHBlcnMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyB3YWl0VW50aWxFbGVtZW50Rm91bmQsIGVsZW1lbnRQcmVzZW50T25QYWdlLCBjbGlja0J1dHRvbiB9IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCBnZXRBbGxNb250aE1vbWVudHMgZnJvbSAnLi4vaGVscGVycy9kYXRlcyc7XG5pbXBvcnQgeyBmaXhJbnN0YWxsbWVudHMsIHNvcnRUcmFuc2FjdGlvbnNCeURhdGUsIGZpbHRlck9sZFRyYW5zYWN0aW9ucyB9IGZyb20gJy4uL2hlbHBlcnMvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblN0YXR1c2VzLCBUcmFuc2FjdGlvblR5cGVzIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IFNjcmFwZXJPcHRpb25zLCBTY3JhcGVyQ3JlZGVudGlhbHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlcic7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCdtYXgnKTtcblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbiB7XG4gIHNob3J0Q2FyZE51bWJlcjogc3RyaW5nO1xuICBwYXltZW50RGF0ZT86IHN0cmluZztcbiAgcHVyY2hhc2VEYXRlOiBzdHJpbmc7XG4gIGFjdHVhbFBheW1lbnRBbW91bnQ6IHN0cmluZztcbiAgb3JpZ2luYWxDdXJyZW5jeTogc3RyaW5nO1xuICBvcmlnaW5hbEFtb3VudDogbnVtYmVyO1xuICBwbGFuTmFtZTogc3RyaW5nO1xuICBjb21tZW50czogc3RyaW5nO1xuICBtZXJjaGFudE5hbWU6IHN0cmluZztcbiAgY2F0ZWdvcnlJZDogbnVtYmVyO1xuICBkZWFsRGF0YT86IHtcbiAgICBhcm46IHN0cmluZztcbiAgfTtcbn1cblxuY29uc3QgQkFTRV9BQ1RJT05TX1VSTCA9ICdodHRwczovL29ubGluZS5tYXguY28uaWwnO1xuY29uc3QgQkFTRV9BUElfQUNUSU9OU19VUkwgPSAnaHR0cHM6Ly9vbmxpbmVsY2FwaS5tYXguY28uaWwnO1xuY29uc3QgQkFTRV9XRUxDT01FX1VSTCA9ICdodHRwczovL3d3dy5tYXguY28uaWwnO1xuXG5jb25zdCBMT0dJTl9VUkwgPSBgJHtCQVNFX1dFTENPTUVfVVJMfS9ob21lcGFnZS93ZWxjb21lYDtcbmNvbnN0IFBBU1NXT1JEX0VYUElSRURfVVJMID0gYCR7QkFTRV9BQ1RJT05TX1VSTH0vQW5vbnltb3VzL0xvZ2luL1Bhc3N3b3JkRXhwaXJlZC5hc3B4YDtcbmNvbnN0IFNVQ0NFU1NfVVJMID0gYCR7QkFTRV9XRUxDT01FX1VSTH0vaG9tZXBhZ2UvcGVyc29uYWxgO1xuXG5jb25zdCBOT1JNQUxfVFlQRV9OQU1FID0gJ9eo15LXmdec15QnO1xuY29uc3QgQVRNX1RZUEVfTkFNRSA9ICfXl9eZ15XXkSDXoteh16fXldeqINee15nXmdeT15knO1xuY29uc3QgSU5URVJORVRfU0hPUFBJTkdfVFlQRV9OQU1FID0gJ9eQ15nXoNeY16jXoNeYL9eX15VcItecJztcbmNvbnN0IElOU1RBTExNRU5UU19UWVBFX05BTUUgPSAn16rXqdec15XXnteZ150nO1xuY29uc3QgTU9OVEhMWV9DSEFSR0VfVFlQRV9OQU1FID0gJ9eX15nXldeRINeX15XXk9ep15knO1xuY29uc3QgT05FX01PTlRIX1BPU1RQT05FRF9UWVBFX05BTUUgPSAn15PXl9eV15kg15fXldeT16knO1xuY29uc3QgTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FID0gJ9eT15fXldeZINec15fXmdeV15Eg15TXl9eV15PXqdeZJztcbmNvbnN0IE1PTlRITFlfUEFZTUVOVF9UWVBFX05BTUUgPSAn16rXqdec15XXnSDXl9eV15PXqdeZJztcbmNvbnN0IEZVVFVSRV9QVVJDSEFTRV9GSU5BTkNJTkcgPSAn157Xmdee15XXnyDXnNeo15vXmdep15Qg16LXqteZ15PXmdeqJztcbmNvbnN0IE1PTlRITFlfUE9TVFBPTkVEX0lOU1RBTExNRU5UU19UWVBFX05BTUUgPSAn15PXl9eV15kg15fXldeT16kg16rXqdec15XXnteZ150nO1xuY29uc3QgVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUUgPSAn16LXoden16ogMzAg16TXnNeV16EnO1xuY29uc3QgVFdPX01PTlRIU19QT1NUUE9ORURfVFlQRV9OQU1FID0gJ9eT15fXldeZINeX15XXk9ep15nXmdedJztcbmNvbnN0IE1PTlRITFlfQ0hBUkdFX1BMVVNfSU5URVJFU1RfVFlQRV9OQU1FID0gJ9eX15XXk9ep15kgKyDXqNeZ15HXmdeqJztcbmNvbnN0IENSRURJVF9UWVBFX05BTUUgPSAn16fXqNeT15nXmCc7XG5jb25zdCBBQ0NVTVVMQVRJTkdfQkFTS0VUID0gJ9eh15wg157XpteY15HXqCc7XG5jb25zdCBQT1NUUE9ORURfVFJBTlNBQ1RJT05fSU5TVEFMTE1FTlRTID0gJ9ek16jXmdeh16og15TXoteh16fXlCDXlNeT15fXldeZ15QnO1xuY29uc3QgUkVQTEFDRU1FTlRfQ0FSRCA9ICfXm9eo15jXmdehINeX15zXmdek15knO1xuY29uc3QgRUFSTFlfUkVQQVlNRU5UID0gJ9ek16jXoteV158g157Xlden15PXnSc7XG5jb25zdCBNT05USExZX0NBUkRfRkVFID0gJ9eT157XmSDXm9eo15jXmdehJztcblxuY29uc3QgSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SID0gJyNwb3B1cFdyb25nRGV0YWlscyc7XG5jb25zdCBMT0dJTl9FUlJPUl9TRUxFQ1RPUiA9ICcjcG9wdXBDYXJkSG9sZGVyc0xvZ2luRXJyb3InO1xuXG5jb25zdCBjYXRlZ29yaWVzID0gbmV3IE1hcDxudW1iZXIsIHN0cmluZz4oKTtcblxuZnVuY3Rpb24gcmVkaXJlY3RPckRpYWxvZyhwYWdlOiBQYWdlKSB7XG4gIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRGb3JSZWRpcmVjdChwYWdlLCAyMDAwMCwgZmFsc2UsIFtCQVNFX1dFTENPTUVfVVJMLCBgJHtCQVNFX1dFTENPTUVfVVJMfS9gXSksXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIElOVkFMSURfREVUQUlMU19TRUxFQ1RPUiwgdHJ1ZSksXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIExPR0lOX0VSUk9SX1NFTEVDVE9SLCB0cnVlKSxcbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uc1VybChtb250aE1vbWVudDogTW9tZW50KSB7XG4gIGNvbnN0IG1vbnRoID0gbW9udGhNb21lbnQubW9udGgoKSArIDE7XG4gIGNvbnN0IHllYXIgPSBtb250aE1vbWVudC55ZWFyKCk7XG4gIGNvbnN0IGRhdGUgPSBgJHt5ZWFyfS0ke21vbnRofS0wMWA7XG5cbiAgLyoqXG4gICAgICogdXJsIGV4cGxhbmF0aW9uOlxuICAgICAqIHVzZXJJbmRleDogLTEgZm9yIGFsbCBhY2NvdW50IG93bmVyc1xuICAgICAqIGNhcmRJbmRleDogLTEgZm9yIGFsbCBjYXJkcyB1bmRlciB0aGUgYWNjb3VudFxuICAgICAqIGFsbCBvdGhlciBxdWVyeSBwYXJhbXMgYXJlIHN0YXRpYywgYmVzaWRlIHRoZSBkYXRlIHdoaWNoIGNoYW5nZXMgZm9yIHJlcXVlc3QgcGVyIG1vbnRoXG4gICAgICovXG4gIHJldHVybiBidWlsZFVybChCQVNFX0FQSV9BQ1RJT05TX1VSTCwge1xuICAgIHBhdGg6IGAvYXBpL3JlZ2lzdGVyZWQvdHJhbnNhY3Rpb25EZXRhaWxzL2dldFRyYW5zYWN0aW9uc0FuZEdyYXBocz9maWx0ZXJEYXRhPXtcInVzZXJJbmRleFwiOi0xLFwiY2FyZEluZGV4XCI6LTEsXCJtb250aFZpZXdcIjp0cnVlLFwiZGF0ZVwiOlwiJHtkYXRlfVwiLFwiZGF0ZXNcIjp7XCJzdGFydERhdGVcIjpcIjBcIixcImVuZERhdGVcIjpcIjBcIn0sXCJiYW5rQWNjb3VudFwiOntcImJhbmtBY2NvdW50SW5kZXhcIjotMSxcImNhcmRzXCI6bnVsbH19JmZpcnN0Q2FsbENhcmRJbmRleD0tMWAsXG4gIH0pO1xufVxuXG5pbnRlcmZhY2UgRmV0Y2hDYXRlZ29yeVJlc3VsdCB7XG4gIHJlc3VsdD8gOiBBcnJheTx7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH0+O1xufVxuXG5hc3luYyBmdW5jdGlvbiBsb2FkQ2F0ZWdvcmllcyhwYWdlOiBQYWdlKSB7XG4gIGRlYnVnKCdMb2FkaW5nIGNhdGVnb3JpZXMnKTtcbiAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPEZldGNoQ2F0ZWdvcnlSZXN1bHQ+KHBhZ2UsIGAke0JBU0VfQVBJX0FDVElPTlNfVVJMfS9hcGkvY29udGVudHMvZ2V0Q2F0ZWdvcmllc2ApO1xuICBpZiAocmVzICYmIEFycmF5LmlzQXJyYXkocmVzLnJlc3VsdCkpIHtcbiAgICBkZWJ1ZyhgJHtyZXMucmVzdWx0Lmxlbmd0aH0gY2F0ZWdvcmllcyBsb2FkZWRgKTtcbiAgICAgIHJlcy5yZXN1bHQ/LmZvckVhY2goKHsgaWQsIG5hbWUgfSkgPT4gY2F0ZWdvcmllcy5zZXQoaWQsIG5hbWUpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvblR5cGUodHhuVHlwZVN0cjogc3RyaW5nKSB7XG4gIGNvbnN0IGNsZWFuZWRVcFR4blR5cGVTdHIgPSB0eG5UeXBlU3RyLnJlcGxhY2UoJ1xcdCcsICcgJykudHJpbSgpO1xuICBzd2l0Y2ggKGNsZWFuZWRVcFR4blR5cGVTdHIpIHtcbiAgICBjYXNlIEFUTV9UWVBFX05BTUU6XG4gICAgY2FzZSBOT1JNQUxfVFlQRV9OQU1FOlxuICAgIGNhc2UgTU9OVEhMWV9DSEFSR0VfVFlQRV9OQU1FOlxuICAgIGNhc2UgT05FX01PTlRIX1BPU1RQT05FRF9UWVBFX05BTUU6XG4gICAgY2FzZSBNT05USExZX1BPU1RQT05FRF9UWVBFX05BTUU6XG4gICAgY2FzZSBGVVRVUkVfUFVSQ0hBU0VfRklOQU5DSU5HOlxuICAgIGNhc2UgTU9OVEhMWV9QQVlNRU5UX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfUE9TVFBPTkVEX0lOU1RBTExNRU5UU19UWVBFX05BTUU6XG4gICAgY2FzZSBUSElSVFlfREFZU19QTFVTX1RZUEVfTkFNRTpcbiAgICBjYXNlIFRXT19NT05USFNfUE9TVFBPTkVEX1RZUEVfTkFNRTpcbiAgICBjYXNlIEFDQ1VNVUxBVElOR19CQVNLRVQ6XG4gICAgY2FzZSBJTlRFUk5FVF9TSE9QUElOR19UWVBFX05BTUU6XG4gICAgY2FzZSBNT05USExZX0NIQVJHRV9QTFVTX0lOVEVSRVNUX1RZUEVfTkFNRTpcbiAgICBjYXNlIFBPU1RQT05FRF9UUkFOU0FDVElPTl9JTlNUQUxMTUVOVFM6XG4gICAgY2FzZSBSRVBMQUNFTUVOVF9DQVJEOlxuICAgIGNhc2UgRUFSTFlfUkVQQVlNRU5UOlxuICAgIGNhc2UgTU9OVEhMWV9DQVJEX0ZFRTpcbiAgICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbDtcbiAgICBjYXNlIElOU1RBTExNRU5UU19UWVBFX05BTUU6XG4gICAgY2FzZSBDUkVESVRfVFlQRV9OQU1FOlxuICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHJhbnNhY3Rpb24gdHlwZSAke2NsZWFuZWRVcFR4blR5cGVTdHJ9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SW5zdGFsbG1lbnRzSW5mbyhjb21tZW50czogc3RyaW5nKSB7XG4gIGlmICghY29tbWVudHMpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IG1hdGNoZXMgPSBjb21tZW50cy5tYXRjaCgvXFxkKy9nKTtcbiAgaWYgKCFtYXRjaGVzIHx8IG1hdGNoZXMubGVuZ3RoIDwgMikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG51bWJlcjogcGFyc2VJbnQobWF0Y2hlc1swXSwgMTApLFxuICAgIHRvdGFsOiBwYXJzZUludChtYXRjaGVzWzFdLCAxMCksXG4gIH07XG59XG5mdW5jdGlvbiBtYXBUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogU2NyYXBlZFRyYW5zYWN0aW9uKTogVHJhbnNhY3Rpb24ge1xuICBjb25zdCBpc1BlbmRpbmcgPSByYXdUcmFuc2FjdGlvbi5wYXltZW50RGF0ZSA9PT0gbnVsbDtcbiAgY29uc3QgcHJvY2Vzc2VkRGF0ZSA9IG1vbWVudChpc1BlbmRpbmcgP1xuICAgIHJhd1RyYW5zYWN0aW9uLnB1cmNoYXNlRGF0ZSA6XG4gICAgcmF3VHJhbnNhY3Rpb24ucGF5bWVudERhdGUpLnRvSVNPU3RyaW5nKCk7XG4gIGNvbnN0IHN0YXR1cyA9IGlzUGVuZGluZyA/IFRyYW5zYWN0aW9uU3RhdHVzZXMuUGVuZGluZyA6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkO1xuXG4gIGNvbnN0IGluc3RhbGxtZW50cyA9IGdldEluc3RhbGxtZW50c0luZm8ocmF3VHJhbnNhY3Rpb24uY29tbWVudHMpO1xuICBjb25zdCBpZGVudGlmaWVyID0gaW5zdGFsbG1lbnRzID9cbiAgICBgJHtyYXdUcmFuc2FjdGlvbi5kZWFsRGF0YT8uYXJufV8ke2luc3RhbGxtZW50cy5udW1iZXJ9YCA6XG4gICAgcmF3VHJhbnNhY3Rpb24uZGVhbERhdGE/LmFybjtcblxuICByZXR1cm4ge1xuICAgIHR5cGU6IGdldFRyYW5zYWN0aW9uVHlwZShyYXdUcmFuc2FjdGlvbi5wbGFuTmFtZSksXG4gICAgZGF0ZTogbW9tZW50KHJhd1RyYW5zYWN0aW9uLnB1cmNoYXNlRGF0ZSkudG9JU09TdHJpbmcoKSxcbiAgICBwcm9jZXNzZWREYXRlLFxuICAgIG9yaWdpbmFsQW1vdW50OiAtcmF3VHJhbnNhY3Rpb24ub3JpZ2luYWxBbW91bnQsXG4gICAgb3JpZ2luYWxDdXJyZW5jeTogcmF3VHJhbnNhY3Rpb24ub3JpZ2luYWxDdXJyZW5jeSxcbiAgICBjaGFyZ2VkQW1vdW50OiAtcmF3VHJhbnNhY3Rpb24uYWN0dWFsUGF5bWVudEFtb3VudCxcbiAgICBkZXNjcmlwdGlvbjogcmF3VHJhbnNhY3Rpb24ubWVyY2hhbnROYW1lLnRyaW0oKSxcbiAgICBtZW1vOiByYXdUcmFuc2FjdGlvbi5jb21tZW50cyxcbiAgICBjYXRlZ29yeTogY2F0ZWdvcmllcy5nZXQocmF3VHJhbnNhY3Rpb24/LmNhdGVnb3J5SWQpLFxuICAgIGluc3RhbGxtZW50cyxcbiAgICBpZGVudGlmaWVyLFxuICAgIHN0YXR1cyxcbiAgfTtcbn1cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb25zUmVzdWx0e1xuICByZXN1bHQ/OiB7XG4gICAgdHJhbnNhY3Rpb25zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXTtcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnNGb3JNb250aChwYWdlOiBQYWdlLCBtb250aE1vbWVudDogTW9tZW50KSB7XG4gIGNvbnN0IHVybCA9IGdldFRyYW5zYWN0aW9uc1VybChtb250aE1vbWVudCk7XG5cbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkVHJhbnNhY3Rpb25zUmVzdWx0PihwYWdlLCB1cmwpO1xuICBjb25zdCB0cmFuc2FjdGlvbnNCeUFjY291bnQ6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0ge307XG5cbiAgaWYgKCFkYXRhIHx8ICFkYXRhLnJlc3VsdCkgcmV0dXJuIHRyYW5zYWN0aW9uc0J5QWNjb3VudDtcblxuICBkYXRhLnJlc3VsdC50cmFuc2FjdGlvbnNcbiAgICAvLyBGaWx0ZXIgb3V0IG5vbi10cmFuc2FjdGlvbnMgd2l0aG91dCBhIHBsYW4gdHlwZSwgZS5nLiBzdW1tYXJ5IHJvd3NcbiAgICAuZmlsdGVyKCh0cmFuc2FjdGlvbikgPT4gISF0cmFuc2FjdGlvbi5wbGFuTmFtZSlcbiAgICAuZm9yRWFjaCgodHJhbnNhY3Rpb246IFNjcmFwZWRUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgaWYgKCF0cmFuc2FjdGlvbnNCeUFjY291bnRbdHJhbnNhY3Rpb24uc2hvcnRDYXJkTnVtYmVyXSkge1xuICAgICAgICB0cmFuc2FjdGlvbnNCeUFjY291bnRbdHJhbnNhY3Rpb24uc2hvcnRDYXJkTnVtYmVyXSA9IFtdO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtYXBwZWRUcmFuc2FjdGlvbiA9IG1hcFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTtcbiAgICAgIHRyYW5zYWN0aW9uc0J5QWNjb3VudFt0cmFuc2FjdGlvbi5zaG9ydENhcmROdW1iZXJdLnB1c2gobWFwcGVkVHJhbnNhY3Rpb24pO1xuICAgIH0pO1xuXG4gIHJldHVybiB0cmFuc2FjdGlvbnNCeUFjY291bnQ7XG59XG5cbmZ1bmN0aW9uIGFkZFJlc3VsdChhbGxSZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbltdPiwgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbltdPikge1xuICBjb25zdCBjbG9uZWRSZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbltdPiA9IHsgLi4uYWxsUmVzdWx0cyB9O1xuICBPYmplY3Qua2V5cyhyZXN1bHQpLmZvckVhY2goKGFjY291bnROdW1iZXIpID0+IHtcbiAgICBpZiAoIWNsb25lZFJlc3VsdHNbYWNjb3VudE51bWJlcl0pIHtcbiAgICAgIGNsb25lZFJlc3VsdHNbYWNjb3VudE51bWJlcl0gPSBbXTtcbiAgICB9XG4gICAgY2xvbmVkUmVzdWx0c1thY2NvdW50TnVtYmVyXS5wdXNoKC4uLnJlc3VsdFthY2NvdW50TnVtYmVyXSk7XG4gIH0pO1xuICByZXR1cm4gY2xvbmVkUmVzdWx0cztcbn1cblxuZnVuY3Rpb24gcHJlcGFyZVRyYW5zYWN0aW9ucyh0eG5zOiBUcmFuc2FjdGlvbltdLCBzdGFydE1vbWVudDogbW9tZW50Lk1vbWVudCwgY29tYmluZUluc3RhbGxtZW50czogYm9vbGVhbikge1xuICBsZXQgY2xvbmVkVHhucyA9IEFycmF5LmZyb20odHhucyk7XG4gIGlmICghY29tYmluZUluc3RhbGxtZW50cykge1xuICAgIGNsb25lZFR4bnMgPSBmaXhJbnN0YWxsbWVudHMoY2xvbmVkVHhucyk7XG4gIH1cbiAgY2xvbmVkVHhucyA9IHNvcnRUcmFuc2FjdGlvbnNCeURhdGUoY2xvbmVkVHhucyk7XG4gIGNsb25lZFR4bnMgPSBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMoY2xvbmVkVHhucywgc3RhcnRNb21lbnQsIGNvbWJpbmVJbnN0YWxsbWVudHMgfHwgZmFsc2UpO1xuICByZXR1cm4gY2xvbmVkVHhucztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgb3B0aW9uczogU2NyYXBlck9wdGlvbnMpIHtcbiAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSBvcHRpb25zLmZ1dHVyZU1vbnRoc1RvU2NyYXBlID8/IDE7XG4gIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpO1xuICBjb25zdCBzdGFydERhdGUgPSBvcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcbiAgY29uc3QgYWxsTW9udGhzID0gZ2V0QWxsTW9udGhNb21lbnRzKHN0YXJ0TW9tZW50LCBmdXR1cmVNb250aHNUb1NjcmFwZSk7XG5cbiAgYXdhaXQgbG9hZENhdGVnb3JpZXMocGFnZSk7XG5cbiAgbGV0IGFsbFJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0ge307XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsTW9udGhzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnNGb3JNb250aChwYWdlLCBhbGxNb250aHNbaV0pO1xuICAgIGFsbFJlc3VsdHMgPSBhZGRSZXN1bHQoYWxsUmVzdWx0cywgcmVzdWx0KTtcbiAgfVxuXG4gIE9iamVjdC5rZXlzKGFsbFJlc3VsdHMpLmZvckVhY2goKGFjY291bnROdW1iZXIpID0+IHtcbiAgICBsZXQgdHhucyA9IGFsbFJlc3VsdHNbYWNjb3VudE51bWJlcl07XG4gICAgdHhucyA9IHByZXBhcmVUcmFuc2FjdGlvbnModHhucywgc3RhcnRNb21lbnQsIG9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSk7XG4gICAgYWxsUmVzdWx0c1thY2NvdW50TnVtYmVyXSA9IHR4bnM7XG4gIH0pO1xuXG4gIHJldHVybiBhbGxSZXN1bHRzO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyhwYWdlOiBQYWdlKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICBjb25zdCB1cmxzOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyA9IHt9O1xuICB1cmxzW0xvZ2luUmVzdWx0cy5TdWNjZXNzXSA9IFtTVUNDRVNTX1VSTF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkXSA9IFtQQVNTV09SRF9FWFBJUkVEX1VSTF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF0gPSBbYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBJTlZBTElEX0RFVEFJTFNfU0VMRUNUT1IpO1xuICB9XTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuVW5rbm93bkVycm9yXSA9IFthc3luYyAoKSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIExPR0lOX0VSUk9SX1NFTEVDVE9SKTtcbiAgfV07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJyN1c2VyLW5hbWUnLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3Bhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmNsYXNzIE1heFNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIHtcbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IExPR0lOX1VSTCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICcjbG9naW4tcGFzc3dvcmQgI3NlbmQtY29kZScsXG4gICAgICBwcmVBY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKHRoaXMucGFnZSwgJyNjbG9zZVBvcHVwJykpIHtcbiAgICAgICAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICcjY2xvc2VQb3B1cCcpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJy5wZXJzb25hbC1hcmVhID4gYS5nby10by1wZXJzb25hbC1hcmVhJyk7XG4gICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjbG9naW4tcGFzc3dvcmQtbGluaycsIHRydWUpO1xuICAgICAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICcjbG9naW4tcGFzc3dvcmQtbGluaycpO1xuICAgICAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI2xvZ2luLXBhc3N3b3JkLnRhYi1wYW5lLmFjdGl2ZSBhcHAtdXNlci1sb2dpbi1mb3JtJywgdHJ1ZSk7XG4gICAgICB9LFxuICAgICAgY2hlY2tSZWFkaW5lc3M6IGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJy5wZXJzb25hbC1hcmVhID4gYS5nby10by1wZXJzb25hbC1hcmVhJywgdHJ1ZSk7XG4gICAgICB9LFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gcmVkaXJlY3RPckRpYWxvZyh0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyh0aGlzLnBhZ2UpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zKHRoaXMucGFnZSwgdGhpcy5vcHRpb25zKTtcbiAgICBjb25zdCBhY2NvdW50cyA9IE9iamVjdC5rZXlzKHJlc3VsdHMpLm1hcCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWNjb3VudE51bWJlcixcbiAgICAgICAgdHhuczogcmVzdWx0c1thY2NvdW50TnVtYmVyXSxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTWF4U2NyYXBlcjtcbiJdfQ==
317
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9tYXgudHMiXSwibmFtZXMiOlsiZGVidWciLCJCQVNFX0FDVElPTlNfVVJMIiwiQkFTRV9BUElfQUNUSU9OU19VUkwiLCJCQVNFX1dFTENPTUVfVVJMIiwiTE9HSU5fVVJMIiwiUEFTU1dPUkRfRVhQSVJFRF9VUkwiLCJTVUNDRVNTX1VSTCIsIk5PUk1BTF9UWVBFX05BTUUiLCJBVE1fVFlQRV9OQU1FIiwiSU5URVJORVRfU0hPUFBJTkdfVFlQRV9OQU1FIiwiSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSIsIk1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRSIsIk9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QQVlNRU5UX1RZUEVfTkFNRSIsIkZVVFVSRV9QVVJDSEFTRV9GSU5BTkNJTkciLCJNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FIiwiVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUUiLCJUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUiLCJNT05USExZX0NIQVJHRV9QTFVTX0lOVEVSRVNUX1RZUEVfTkFNRSIsIkNSRURJVF9UWVBFX05BTUUiLCJBQ0NVTVVMQVRJTkdfQkFTS0VUIiwiUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUyIsIlJFUExBQ0VNRU5UX0NBUkQiLCJFQVJMWV9SRVBBWU1FTlQiLCJNT05USExZX0NBUkRfRkVFIiwiSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SIiwiTE9HSU5fRVJST1JfU0VMRUNUT1IiLCJjYXRlZ29yaWVzIiwiTWFwIiwicmVkaXJlY3RPckRpYWxvZyIsInBhZ2UiLCJQcm9taXNlIiwicmFjZSIsImdldFRyYW5zYWN0aW9uc1VybCIsIm1vbnRoTW9tZW50IiwibW9udGgiLCJ5ZWFyIiwiZGF0ZSIsInBhdGgiLCJsb2FkQ2F0ZWdvcmllcyIsInJlcyIsIkFycmF5IiwiaXNBcnJheSIsInJlc3VsdCIsImxlbmd0aCIsImZvckVhY2giLCJpZCIsIm5hbWUiLCJzZXQiLCJnZXRUcmFuc2FjdGlvblR5cGUiLCJ0eG5UeXBlU3RyIiwiY2xlYW5lZFVwVHhuVHlwZVN0ciIsInJlcGxhY2UiLCJ0cmltIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsIkluc3RhbGxtZW50cyIsIkVycm9yIiwiZ2V0SW5zdGFsbG1lbnRzSW5mbyIsImNvbW1lbnRzIiwidW5kZWZpbmVkIiwibWF0Y2hlcyIsIm1hdGNoIiwibnVtYmVyIiwicGFyc2VJbnQiLCJ0b3RhbCIsIm1hcFRyYW5zYWN0aW9uIiwicmF3VHJhbnNhY3Rpb24iLCJpc1BlbmRpbmciLCJwYXltZW50RGF0ZSIsInByb2Nlc3NlZERhdGUiLCJwdXJjaGFzZURhdGUiLCJ0b0lTT1N0cmluZyIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJQZW5kaW5nIiwiQ29tcGxldGVkIiwiaW5zdGFsbG1lbnRzIiwiaWRlbnRpZmllciIsImRlYWxEYXRhIiwiYXJuIiwidHlwZSIsInBsYW5OYW1lIiwib3JpZ2luYWxBbW91bnQiLCJvcmlnaW5hbEN1cnJlbmN5IiwiY2hhcmdlZEFtb3VudCIsImFjdHVhbFBheW1lbnRBbW91bnQiLCJkZXNjcmlwdGlvbiIsIm1lcmNoYW50TmFtZSIsIm1lbW8iLCJjYXRlZ29yeSIsImdldCIsImNhdGVnb3J5SWQiLCJmZXRjaFRyYW5zYWN0aW9uc0Zvck1vbnRoIiwidXJsIiwiZGF0YSIsInRyYW5zYWN0aW9uc0J5QWNjb3VudCIsInRyYW5zYWN0aW9ucyIsImZpbHRlciIsInRyYW5zYWN0aW9uIiwic2hvcnRDYXJkTnVtYmVyIiwibWFwcGVkVHJhbnNhY3Rpb24iLCJwdXNoIiwiYWRkUmVzdWx0IiwiYWxsUmVzdWx0cyIsImNsb25lZFJlc3VsdHMiLCJPYmplY3QiLCJrZXlzIiwiYWNjb3VudE51bWJlciIsInByZXBhcmVUcmFuc2FjdGlvbnMiLCJ0eG5zIiwic3RhcnRNb21lbnQiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwiZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlIiwiY2xvbmVkVHhucyIsImZyb20iLCJmZXRjaFRyYW5zYWN0aW9ucyIsIm9wdGlvbnMiLCJmdXR1cmVNb250aHNUb1NjcmFwZSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0Iiwic3RhcnREYXRlIiwidG9EYXRlIiwibW9tZW50IiwibWF4IiwiYWxsTW9udGhzIiwiaSIsIm91dHB1dERhdGEiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiQ2hhbmdlUGFzc3dvcmQiLCJJbnZhbGlkUGFzc3dvcmQiLCJVbmtub3duRXJyb3IiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJNYXhTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJwcmVBY3Rpb24iLCJjaGVja1JlYWRpbmVzcyIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJyZXN1bHRzIiwiYWNjb3VudHMiLCJtYXAiLCJzdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7OztBQUVBLE1BQU1BLEtBQUssR0FBRyxxQkFBUyxLQUFULENBQWQ7QUFrQkEsTUFBTUMsZ0JBQWdCLEdBQUcsMEJBQXpCO0FBQ0EsTUFBTUMsb0JBQW9CLEdBQUcsK0JBQTdCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsdUJBQXpCO0FBRUEsTUFBTUMsU0FBUyxHQUFJLEdBQUVELGdCQUFpQixtQkFBdEM7QUFDQSxNQUFNRSxvQkFBb0IsR0FBSSxHQUFFSixnQkFBaUIsdUNBQWpEO0FBQ0EsTUFBTUssV0FBVyxHQUFJLEdBQUVILGdCQUFpQixvQkFBeEM7QUFFQSxNQUFNSSxnQkFBZ0IsR0FBRyxPQUF6QjtBQUNBLE1BQU1DLGFBQWEsR0FBRyxrQkFBdEI7QUFDQSxNQUFNQywyQkFBMkIsR0FBRyxjQUFwQztBQUNBLE1BQU1DLHNCQUFzQixHQUFHLFNBQS9CO0FBQ0EsTUFBTUMsd0JBQXdCLEdBQUcsWUFBakM7QUFDQSxNQUFNQyw2QkFBNkIsR0FBRyxXQUF0QztBQUNBLE1BQU1DLDJCQUEyQixHQUFHLG1CQUFwQztBQUNBLE1BQU1DLHlCQUF5QixHQUFHLGFBQWxDO0FBQ0EsTUFBTUMseUJBQXlCLEdBQUcscUJBQWxDO0FBQ0EsTUFBTUMsd0NBQXdDLEdBQUcsbUJBQWpEO0FBQ0EsTUFBTUMsMEJBQTBCLEdBQUcsY0FBbkM7QUFDQSxNQUFNQyw4QkFBOEIsR0FBRyxjQUF2QztBQUNBLE1BQU1DLHNDQUFzQyxHQUFHLGVBQS9DO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsT0FBekI7QUFDQSxNQUFNQyxtQkFBbUIsR0FBRyxVQUE1QjtBQUNBLE1BQU1DLGtDQUFrQyxHQUFHLG9CQUEzQztBQUNBLE1BQU1DLGdCQUFnQixHQUFHLGFBQXpCO0FBQ0EsTUFBTUMsZUFBZSxHQUFHLGFBQXhCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsV0FBekI7QUFFQSxNQUFNQyx3QkFBd0IsR0FBRyxvQkFBakM7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRyw2QkFBN0I7QUFFQSxNQUFNQyxVQUFVLEdBQUcsSUFBSUMsR0FBSixFQUFuQjs7QUFFQSxTQUFTQyxnQkFBVCxDQUEwQkMsSUFBMUIsRUFBc0M7QUFDcEMsU0FBT0MsT0FBTyxDQUFDQyxJQUFSLENBQWEsQ0FDbEIsaUNBQWdCRixJQUFoQixFQUFzQixLQUF0QixFQUE2QixLQUE3QixFQUFvQyxDQUFDNUIsZ0JBQUQsRUFBb0IsR0FBRUEsZ0JBQWlCLEdBQXZDLENBQXBDLENBRGtCLEVBRWxCLGlEQUFzQjRCLElBQXRCLEVBQTRCTCx3QkFBNUIsRUFBc0QsSUFBdEQsQ0FGa0IsRUFHbEIsaURBQXNCSyxJQUF0QixFQUE0Qkosb0JBQTVCLEVBQWtELElBQWxELENBSGtCLENBQWIsQ0FBUDtBQUtEOztBQUVELFNBQVNPLGtCQUFULENBQTRCQyxXQUE1QixFQUFpRDtBQUMvQyxRQUFNQyxLQUFLLEdBQUdELFdBQVcsQ0FBQ0MsS0FBWixLQUFzQixDQUFwQztBQUNBLFFBQU1DLElBQUksR0FBR0YsV0FBVyxDQUFDRSxJQUFaLEVBQWI7QUFDQSxRQUFNQyxJQUFJLEdBQUksR0FBRUQsSUFBSyxJQUFHRCxLQUFNLEtBQTlCO0FBRUE7Ozs7Ozs7QUFNQSxTQUFPLHVCQUFTbEMsb0JBQVQsRUFBK0I7QUFDcENxQyxJQUFBQSxJQUFJLEVBQUcsa0lBQWlJRCxJQUFLO0FBRHpHLEdBQS9CLENBQVA7QUFHRDs7QUFTRCxlQUFlRSxjQUFmLENBQThCVCxJQUE5QixFQUEwQztBQUN4Qy9CLEVBQUFBLEtBQUssQ0FBQyxvQkFBRCxDQUFMO0FBQ0EsUUFBTXlDLEdBQUcsR0FBRyxNQUFNLCtCQUF3Q1YsSUFBeEMsRUFBK0MsR0FBRTdCLG9CQUFxQiw2QkFBdEUsQ0FBbEI7O0FBQ0EsTUFBSXVDLEdBQUcsSUFBSUMsS0FBSyxDQUFDQyxPQUFOLENBQWNGLEdBQUcsQ0FBQ0csTUFBbEIsQ0FBWCxFQUFzQztBQUFBOztBQUNwQzVDLElBQUFBLEtBQUssQ0FBRSxHQUFFeUMsR0FBRyxDQUFDRyxNQUFKLENBQVdDLE1BQU8sb0JBQXRCLENBQUw7QUFDRSxtQkFBQUosR0FBRyxDQUFDRyxNQUFKLDREQUFZRSxPQUFaLENBQW9CLENBQUM7QUFBRUMsTUFBQUEsRUFBRjtBQUFNQyxNQUFBQTtBQUFOLEtBQUQsS0FBa0JwQixVQUFVLENBQUNxQixHQUFYLENBQWVGLEVBQWYsRUFBbUJDLElBQW5CLENBQXRDO0FBQ0g7QUFDRjs7QUFFRCxTQUFTRSxrQkFBVCxDQUE0QkMsVUFBNUIsRUFBZ0Q7QUFDOUMsUUFBTUMsbUJBQW1CLEdBQUdELFVBQVUsQ0FBQ0UsT0FBWCxDQUFtQixJQUFuQixFQUF5QixHQUF6QixFQUE4QkMsSUFBOUIsRUFBNUI7O0FBQ0EsVUFBUUYsbUJBQVI7QUFDRSxTQUFLNUMsYUFBTDtBQUNBLFNBQUtELGdCQUFMO0FBQ0EsU0FBS0ksd0JBQUw7QUFDQSxTQUFLQyw2QkFBTDtBQUNBLFNBQUtDLDJCQUFMO0FBQ0EsU0FBS0UseUJBQUw7QUFDQSxTQUFLRCx5QkFBTDtBQUNBLFNBQUtFLHdDQUFMO0FBQ0EsU0FBS0MsMEJBQUw7QUFDQSxTQUFLQyw4QkFBTDtBQUNBLFNBQUtHLG1CQUFMO0FBQ0EsU0FBS1osMkJBQUw7QUFDQSxTQUFLVSxzQ0FBTDtBQUNBLFNBQUtHLGtDQUFMO0FBQ0EsU0FBS0MsZ0JBQUw7QUFDQSxTQUFLQyxlQUFMO0FBQ0EsU0FBS0MsZ0JBQUw7QUFDRSxhQUFPOEIsZ0NBQWlCQyxNQUF4Qjs7QUFDRixTQUFLOUMsc0JBQUw7QUFDQSxTQUFLVSxnQkFBTDtBQUNFLGFBQU9tQyxnQ0FBaUJFLFlBQXhCOztBQUNGO0FBQ0UsWUFBTSxJQUFJQyxLQUFKLENBQVcsNEJBQTJCTixtQkFBb0IsRUFBMUQsQ0FBTjtBQXZCSjtBQXlCRDs7QUFFRCxTQUFTTyxtQkFBVCxDQUE2QkMsUUFBN0IsRUFBK0M7QUFDN0MsTUFBSSxDQUFDQSxRQUFMLEVBQWU7QUFDYixXQUFPQyxTQUFQO0FBQ0Q7O0FBQ0QsUUFBTUMsT0FBTyxHQUFHRixRQUFRLENBQUNHLEtBQVQsQ0FBZSxNQUFmLENBQWhCOztBQUNBLE1BQUksQ0FBQ0QsT0FBRCxJQUFZQSxPQUFPLENBQUNqQixNQUFSLEdBQWlCLENBQWpDLEVBQW9DO0FBQ2xDLFdBQU9nQixTQUFQO0FBQ0Q7O0FBRUQsU0FBTztBQUNMRyxJQUFBQSxNQUFNLEVBQUVDLFFBQVEsQ0FBQ0gsT0FBTyxDQUFDLENBQUQsQ0FBUixFQUFhLEVBQWIsQ0FEWDtBQUVMSSxJQUFBQSxLQUFLLEVBQUVELFFBQVEsQ0FBQ0gsT0FBTyxDQUFDLENBQUQsQ0FBUixFQUFhLEVBQWI7QUFGVixHQUFQO0FBSUQ7O0FBQ0QsU0FBU0ssY0FBVCxDQUF3QkMsY0FBeEIsRUFBeUU7QUFBQTs7QUFDdkUsUUFBTUMsU0FBUyxHQUFHRCxjQUFjLENBQUNFLFdBQWYsS0FBK0IsSUFBakQ7QUFDQSxRQUFNQyxhQUFhLEdBQUcscUJBQU9GLFNBQVMsR0FDcENELGNBQWMsQ0FBQ0ksWUFEcUIsR0FFcENKLGNBQWMsQ0FBQ0UsV0FGSyxFQUVRRyxXQUZSLEVBQXRCO0FBR0EsUUFBTUMsTUFBTSxHQUFHTCxTQUFTLEdBQUdNLG1DQUFvQkMsT0FBdkIsR0FBaUNELG1DQUFvQkUsU0FBN0U7QUFFQSxRQUFNQyxZQUFZLEdBQUduQixtQkFBbUIsQ0FBQ1MsY0FBYyxDQUFDUixRQUFoQixDQUF4QztBQUNBLFFBQU1tQixVQUFVLEdBQUdELFlBQVksR0FDNUIsR0FBRCx5QkFBR1YsY0FBYyxDQUFDWSxRQUFsQiwwREFBRyxzQkFBeUJDLEdBQUksSUFBR0gsWUFBWSxDQUFDZCxNQUFPLEVBRDFCLDZCQUU3QkksY0FBYyxDQUFDWSxRQUZjLDJEQUU3Qix1QkFBeUJDLEdBRjNCO0FBSUEsU0FBTztBQUNMQyxJQUFBQSxJQUFJLEVBQUVoQyxrQkFBa0IsQ0FBQ2tCLGNBQWMsQ0FBQ2UsUUFBaEIsQ0FEbkI7QUFFTDdDLElBQUFBLElBQUksRUFBRSxxQkFBTzhCLGNBQWMsQ0FBQ0ksWUFBdEIsRUFBb0NDLFdBQXBDLEVBRkQ7QUFHTEYsSUFBQUEsYUFISztBQUlMYSxJQUFBQSxjQUFjLEVBQUUsQ0FBQ2hCLGNBQWMsQ0FBQ2dCLGNBSjNCO0FBS0xDLElBQUFBLGdCQUFnQixFQUFFakIsY0FBYyxDQUFDaUIsZ0JBTDVCO0FBTUxDLElBQUFBLGFBQWEsRUFBRSxDQUFDbEIsY0FBYyxDQUFDbUIsbUJBTjFCO0FBT0xDLElBQUFBLFdBQVcsRUFBRXBCLGNBQWMsQ0FBQ3FCLFlBQWYsQ0FBNEJuQyxJQUE1QixFQVBSO0FBUUxvQyxJQUFBQSxJQUFJLEVBQUV0QixjQUFjLENBQUNSLFFBUmhCO0FBU0wrQixJQUFBQSxRQUFRLEVBQUUvRCxVQUFVLENBQUNnRSxHQUFYLENBQWV4QixjQUFmLGFBQWVBLGNBQWYsdUJBQWVBLGNBQWMsQ0FBRXlCLFVBQS9CLENBVEw7QUFVTGYsSUFBQUEsWUFWSztBQVdMQyxJQUFBQSxVQVhLO0FBWUxMLElBQUFBO0FBWkssR0FBUDtBQWNEOztBQU9ELGVBQWVvQix5QkFBZixDQUF5Qy9ELElBQXpDLEVBQXFESSxXQUFyRCxFQUEwRTtBQUN4RSxRQUFNNEQsR0FBRyxHQUFHN0Qsa0JBQWtCLENBQUNDLFdBQUQsQ0FBOUI7QUFFQSxRQUFNNkQsSUFBSSxHQUFHLE1BQU0sK0JBQThDakUsSUFBOUMsRUFBb0RnRSxHQUFwRCxDQUFuQjtBQUNBLFFBQU1FLHFCQUFvRCxHQUFHLEVBQTdEO0FBRUEsTUFBSSxDQUFDRCxJQUFELElBQVMsQ0FBQ0EsSUFBSSxDQUFDcEQsTUFBbkIsRUFBMkIsT0FBT3FELHFCQUFQO0FBRTNCRCxFQUFBQSxJQUFJLENBQUNwRCxNQUFMLENBQVlzRCxZQUFaLENBQ0U7QUFERixHQUVHQyxNQUZILENBRVdDLFdBQUQsSUFBaUIsQ0FBQyxDQUFDQSxXQUFXLENBQUNqQixRQUZ6QyxFQUdHckMsT0FISCxDQUdZc0QsV0FBRCxJQUFxQztBQUM1QyxRQUFJLENBQUNILHFCQUFxQixDQUFDRyxXQUFXLENBQUNDLGVBQWIsQ0FBMUIsRUFBeUQ7QUFDdkRKLE1BQUFBLHFCQUFxQixDQUFDRyxXQUFXLENBQUNDLGVBQWIsQ0FBckIsR0FBcUQsRUFBckQ7QUFDRDs7QUFFRCxVQUFNQyxpQkFBaUIsR0FBR25DLGNBQWMsQ0FBQ2lDLFdBQUQsQ0FBeEM7QUFDQUgsSUFBQUEscUJBQXFCLENBQUNHLFdBQVcsQ0FBQ0MsZUFBYixDQUFyQixDQUFtREUsSUFBbkQsQ0FBd0RELGlCQUF4RDtBQUNELEdBVkg7QUFZQSxTQUFPTCxxQkFBUDtBQUNEOztBQUVELFNBQVNPLFNBQVQsQ0FBbUJDLFVBQW5CLEVBQThEN0QsTUFBOUQsRUFBcUc7QUFDbkcsUUFBTThELGFBQTRDLHFCQUFRRCxVQUFSLENBQWxEOztBQUNBRSxFQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWWhFLE1BQVosRUFBb0JFLE9BQXBCLENBQTZCK0QsYUFBRCxJQUFtQjtBQUM3QyxRQUFJLENBQUNILGFBQWEsQ0FBQ0csYUFBRCxDQUFsQixFQUFtQztBQUNqQ0gsTUFBQUEsYUFBYSxDQUFDRyxhQUFELENBQWIsR0FBK0IsRUFBL0I7QUFDRDs7QUFDREgsSUFBQUEsYUFBYSxDQUFDRyxhQUFELENBQWIsQ0FBNkJOLElBQTdCLENBQWtDLEdBQUczRCxNQUFNLENBQUNpRSxhQUFELENBQTNDO0FBQ0QsR0FMRDtBQU1BLFNBQU9ILGFBQVA7QUFDRDs7QUFFRCxTQUFTSSxtQkFBVCxDQUE2QkMsSUFBN0IsRUFBa0RDLFdBQWxELEVBQThFQyxtQkFBOUUsRUFBNEdDLDhCQUE1RyxFQUFxSjtBQUNuSixNQUFJQyxVQUFVLEdBQUd6RSxLQUFLLENBQUMwRSxJQUFOLENBQVdMLElBQVgsQ0FBakI7O0FBQ0EsTUFBSSxDQUFDRSxtQkFBTCxFQUEwQjtBQUN4QkUsSUFBQUEsVUFBVSxHQUFHLG1DQUFnQkEsVUFBaEIsQ0FBYjtBQUNEOztBQUNEQSxFQUFBQSxVQUFVLEdBQUcsMENBQXVCQSxVQUF2QixDQUFiO0FBQ0FBLEVBQUFBLFVBQVUsR0FBR0QsOEJBQThCLEdBQ3pDLHlDQUFzQkMsVUFBdEIsRUFBa0NILFdBQWxDLEVBQStDQyxtQkFBbUIsSUFBSSxLQUF0RSxDQUR5QyxHQUV6Q0UsVUFGRjtBQUdBLFNBQU9BLFVBQVA7QUFDRDs7QUFFRCxlQUFlRSxpQkFBZixDQUFpQ3RGLElBQWpDLEVBQTZDdUYsT0FBN0MsRUFBc0U7QUFBQTs7QUFDcEUsUUFBTUMsb0JBQW9CLDRCQUFHRCxPQUFPLENBQUNDLG9CQUFYLHlFQUFtQyxDQUE3RDtBQUNBLFFBQU1DLGtCQUFrQixHQUFHLHVCQUFTQyxRQUFULENBQWtCLENBQWxCLEVBQXFCLE9BQXJCLENBQTNCO0FBQ0EsUUFBTUMsU0FBUyxHQUFHSixPQUFPLENBQUNJLFNBQVIsSUFBcUJGLGtCQUFrQixDQUFDRyxNQUFuQixFQUF2Qzs7QUFDQSxRQUFNWCxXQUFXLEdBQUdZLGdCQUFPQyxHQUFQLENBQVdMLGtCQUFYLEVBQStCLHFCQUFPRSxTQUFQLENBQS9CLENBQXBCOztBQUNBLFFBQU1JLFNBQVMsR0FBRyxvQkFBbUJkLFdBQW5CLEVBQWdDTyxvQkFBaEMsQ0FBbEI7QUFFQSxRQUFNL0UsY0FBYyxDQUFDVCxJQUFELENBQXBCO0FBRUEsTUFBSTBFLFVBQXlDLEdBQUcsRUFBaEQ7O0FBQ0EsT0FBSyxJQUFJc0IsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR0QsU0FBUyxDQUFDakYsTUFBOUIsRUFBc0NrRixDQUFDLElBQUksQ0FBM0MsRUFBOEM7QUFDNUMsVUFBTW5GLE1BQU0sR0FBRyxNQUFNa0QseUJBQXlCLENBQUMvRCxJQUFELEVBQU8rRixTQUFTLENBQUNDLENBQUQsQ0FBaEIsQ0FBOUM7QUFDQXRCLElBQUFBLFVBQVUsR0FBR0QsU0FBUyxDQUFDQyxVQUFELEVBQWE3RCxNQUFiLENBQXRCO0FBQ0Q7O0FBRUQrRCxFQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWUgsVUFBWixFQUF3QjNELE9BQXhCLENBQWlDK0QsYUFBRCxJQUFtQjtBQUFBOztBQUNqRCxRQUFJRSxJQUFJLEdBQUdOLFVBQVUsQ0FBQ0ksYUFBRCxDQUFyQjtBQUNBRSxJQUFBQSxJQUFJLEdBQUdELG1CQUFtQixDQUFDQyxJQUFELEVBQU9DLFdBQVAsRUFBb0JNLE9BQU8sQ0FBQ0wsbUJBQVIsSUFBK0IsS0FBbkQsa0RBQ3ZCSyxPQUFPLENBQUNVLFVBRGUsd0RBQ3ZCLG9CQUFvQmQsOEJBREcseUVBQytCLElBRC9CLENBQTFCO0FBRUFULElBQUFBLFVBQVUsQ0FBQ0ksYUFBRCxDQUFWLEdBQTRCRSxJQUE1QjtBQUNELEdBTEQ7QUFPQSxTQUFPTixVQUFQO0FBQ0Q7O0FBRUQsU0FBU3dCLHVCQUFULENBQWlDbEcsSUFBakMsRUFBbUU7QUFDakUsUUFBTW1HLElBQTBCLEdBQUcsRUFBbkM7QUFDQUEsRUFBQUEsSUFBSSxDQUFDQyxxQ0FBYUMsT0FBZCxDQUFKLEdBQTZCLENBQUM5SCxXQUFELENBQTdCO0FBQ0E0SCxFQUFBQSxJQUFJLENBQUNDLHFDQUFhRSxjQUFkLENBQUosR0FBb0MsQ0FBQ2hJLG9CQUFELENBQXBDO0FBQ0E2SCxFQUFBQSxJQUFJLENBQUNDLHFDQUFhRyxlQUFkLENBQUosR0FBcUMsQ0FBQyxZQUFZO0FBQ2hELFdBQU8sZ0RBQXFCdkcsSUFBckIsRUFBMkJMLHdCQUEzQixDQUFQO0FBQ0QsR0FGb0MsQ0FBckM7QUFHQXdHLEVBQUFBLElBQUksQ0FBQ0MscUNBQWFJLFlBQWQsQ0FBSixHQUFrQyxDQUFDLFlBQVk7QUFDN0MsV0FBTyxnREFBcUJ4RyxJQUFyQixFQUEyQkosb0JBQTNCLENBQVA7QUFDRCxHQUZpQyxDQUFsQztBQUdBLFNBQU91RyxJQUFQO0FBQ0Q7O0FBRUQsU0FBU00saUJBQVQsQ0FBMkJDLFdBQTNCLEVBQTREO0FBQzFELFNBQU8sQ0FDTDtBQUFFQyxJQUFBQSxRQUFRLEVBQUUsWUFBWjtBQUEwQkMsSUFBQUEsS0FBSyxFQUFFRixXQUFXLENBQUNHO0FBQTdDLEdBREssRUFFTDtBQUFFRixJQUFBQSxRQUFRLEVBQUUsV0FBWjtBQUF5QkMsSUFBQUEsS0FBSyxFQUFFRixXQUFXLENBQUNJO0FBQTVDLEdBRkssQ0FBUDtBQUlEOztBQUVELE1BQU1DLFVBQU4sU0FBeUJDLDhDQUF6QixDQUFnRDtBQUM5Q0MsRUFBQUEsZUFBZSxDQUFDUCxXQUFELEVBQWtDO0FBQy9DLFdBQU87QUFDTFEsTUFBQUEsUUFBUSxFQUFFN0ksU0FETDtBQUVMOEksTUFBQUEsTUFBTSxFQUFFVixpQkFBaUIsQ0FBQ0MsV0FBRCxDQUZwQjtBQUdMVSxNQUFBQSxvQkFBb0IsRUFBRSw0QkFIakI7QUFJTEMsTUFBQUEsU0FBUyxFQUFFLFlBQVk7QUFDckIsWUFBSSxNQUFNLGdEQUFxQixLQUFLckgsSUFBMUIsRUFBZ0MsYUFBaEMsQ0FBVixFQUEwRDtBQUN4RCxnQkFBTSx1Q0FBWSxLQUFLQSxJQUFqQixFQUF1QixhQUF2QixDQUFOO0FBQ0Q7O0FBQ0QsY0FBTSx1Q0FBWSxLQUFLQSxJQUFqQixFQUF1Qix3Q0FBdkIsQ0FBTjtBQUNBLGNBQU0saURBQXNCLEtBQUtBLElBQTNCLEVBQWlDLHNCQUFqQyxFQUF5RCxJQUF6RCxDQUFOO0FBQ0EsY0FBTSx1Q0FBWSxLQUFLQSxJQUFqQixFQUF1QixzQkFBdkIsQ0FBTjtBQUNBLGNBQU0saURBQXNCLEtBQUtBLElBQTNCLEVBQWlDLHFEQUFqQyxFQUF3RixJQUF4RixDQUFOO0FBQ0QsT0FaSTtBQWFMc0gsTUFBQUEsY0FBYyxFQUFFLFlBQVk7QUFDMUIsY0FBTSxpREFBc0IsS0FBS3RILElBQTNCLEVBQWlDLHdDQUFqQyxFQUEyRSxJQUEzRSxDQUFOO0FBQ0QsT0FmSTtBQWdCTHVILE1BQUFBLFVBQVUsRUFBRSxZQUFZeEgsZ0JBQWdCLENBQUMsS0FBS0MsSUFBTixDQWhCbkM7QUFpQkx3SCxNQUFBQSxlQUFlLEVBQUV0Qix1QkFBdUIsQ0FBQyxLQUFLbEcsSUFBTjtBQWpCbkMsS0FBUDtBQW1CRDs7QUFFRCxRQUFNeUgsU0FBTixHQUFrQjtBQUNoQixVQUFNQyxPQUFPLEdBQUcsTUFBTXBDLGlCQUFpQixDQUFDLEtBQUt0RixJQUFOLEVBQVksS0FBS3VGLE9BQWpCLENBQXZDO0FBQ0EsVUFBTW9DLFFBQVEsR0FBRy9DLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZNkMsT0FBWixFQUFxQkUsR0FBckIsQ0FBMEI5QyxhQUFELElBQW1CO0FBQzNELGFBQU87QUFDTEEsUUFBQUEsYUFESztBQUVMRSxRQUFBQSxJQUFJLEVBQUUwQyxPQUFPLENBQUM1QyxhQUFEO0FBRlIsT0FBUDtBQUlELEtBTGdCLENBQWpCO0FBT0EsV0FBTztBQUNMK0MsTUFBQUEsT0FBTyxFQUFFLElBREo7QUFFTEYsTUFBQUE7QUFGSyxLQUFQO0FBSUQ7O0FBcEM2Qzs7ZUF1Q2pDWixVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkVXJsIGZyb20gJ2J1aWxkLXVybCc7XG5pbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyB3YWl0Rm9yUmVkaXJlY3QgfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgd2FpdFVudGlsRWxlbWVudEZvdW5kLCBlbGVtZW50UHJlc2VudE9uUGFnZSwgY2xpY2tCdXR0b24gfSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgZ2V0QWxsTW9udGhNb21lbnRzIGZyb20gJy4uL2hlbHBlcnMvZGF0ZXMnO1xuaW1wb3J0IHsgZml4SW5zdGFsbG1lbnRzLCBzb3J0VHJhbnNhY3Rpb25zQnlEYXRlLCBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMgfSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBTY3JhcGVyT3B0aW9ucywgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnbWF4Jyk7XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBzaG9ydENhcmROdW1iZXI6IHN0cmluZztcbiAgcGF5bWVudERhdGU/OiBzdHJpbmc7XG4gIHB1cmNoYXNlRGF0ZTogc3RyaW5nO1xuICBhY3R1YWxQYXltZW50QW1vdW50OiBzdHJpbmc7XG4gIG9yaWdpbmFsQ3VycmVuY3k6IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IG51bWJlcjtcbiAgcGxhbk5hbWU6IHN0cmluZztcbiAgY29tbWVudHM6IHN0cmluZztcbiAgbWVyY2hhbnROYW1lOiBzdHJpbmc7XG4gIGNhdGVnb3J5SWQ6IG51bWJlcjtcbiAgZGVhbERhdGE/OiB7XG4gICAgYXJuOiBzdHJpbmc7XG4gIH07XG59XG5cbmNvbnN0IEJBU0VfQUNUSU9OU19VUkwgPSAnaHR0cHM6Ly9vbmxpbmUubWF4LmNvLmlsJztcbmNvbnN0IEJBU0VfQVBJX0FDVElPTlNfVVJMID0gJ2h0dHBzOi8vb25saW5lbGNhcGkubWF4LmNvLmlsJztcbmNvbnN0IEJBU0VfV0VMQ09NRV9VUkwgPSAnaHR0cHM6Ly93d3cubWF4LmNvLmlsJztcblxuY29uc3QgTE9HSU5fVVJMID0gYCR7QkFTRV9XRUxDT01FX1VSTH0vaG9tZXBhZ2Uvd2VsY29tZWA7XG5jb25zdCBQQVNTV09SRF9FWFBJUkVEX1VSTCA9IGAke0JBU0VfQUNUSU9OU19VUkx9L0Fub255bW91cy9Mb2dpbi9QYXNzd29yZEV4cGlyZWQuYXNweGA7XG5jb25zdCBTVUNDRVNTX1VSTCA9IGAke0JBU0VfV0VMQ09NRV9VUkx9L2hvbWVwYWdlL3BlcnNvbmFsYDtcblxuY29uc3QgTk9STUFMX1RZUEVfTkFNRSA9ICfXqNeS15nXnNeUJztcbmNvbnN0IEFUTV9UWVBFX05BTUUgPSAn15fXmdeV15Eg16LXoden15XXqiDXnteZ15nXk9eZJztcbmNvbnN0IElOVEVSTkVUX1NIT1BQSU5HX1RZUEVfTkFNRSA9ICfXkNeZ16DXmNeo16DXmC/Xl9eVXCLXnCc7XG5jb25zdCBJTlNUQUxMTUVOVFNfVFlQRV9OQU1FID0gJ9eq16nXnNeV157XmdedJztcbmNvbnN0IE1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRSA9ICfXl9eZ15XXkSDXl9eV15PXqdeZJztcbmNvbnN0IE9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FID0gJ9eT15fXldeZINeX15XXk9epJztcbmNvbnN0IE1PTlRITFlfUE9TVFBPTkVEX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXnNeX15nXldeRINeU15fXldeT16nXmSc7XG5jb25zdCBNT05USExZX1BBWU1FTlRfVFlQRV9OQU1FID0gJ9eq16nXnNeV150g15fXldeT16nXmSc7XG5jb25zdCBGVVRVUkVfUFVSQ0hBU0VfRklOQU5DSU5HID0gJ9ee15nXnteV158g15zXqNeb15nXqdeUINei16rXmdeT15nXqic7XG5jb25zdCBNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FID0gJ9eT15fXldeZINeX15XXk9epINeq16nXnNeV157XmdedJztcbmNvbnN0IFRISVJUWV9EQVlTX1BMVVNfVFlQRV9OQU1FID0gJ9ei16HXp9eqIDMwINek15zXldehJztcbmNvbnN0IFRXT19NT05USFNfUE9TVFBPTkVEX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXl9eV15PXqdeZ15nXnSc7XG5jb25zdCBNT05USExZX0NIQVJHRV9QTFVTX0lOVEVSRVNUX1RZUEVfTkFNRSA9ICfXl9eV15PXqdeZICsg16jXmdeR15nXqic7XG5jb25zdCBDUkVESVRfVFlQRV9OQU1FID0gJ9en16jXk9eZ15gnO1xuY29uc3QgQUNDVU1VTEFUSU5HX0JBU0tFVCA9ICfXodecINee16bXmNeR16gnO1xuY29uc3QgUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUyA9ICfXpNeo15nXodeqINeU16LXoden15Qg15TXk9eX15XXmdeUJztcbmNvbnN0IFJFUExBQ0VNRU5UX0NBUkQgPSAn15vXqNeY15nXoSDXl9ec15nXpNeZJztcbmNvbnN0IEVBUkxZX1JFUEFZTUVOVCA9ICfXpNeo16LXldefINee15XXp9eT150nO1xuY29uc3QgTU9OVEhMWV9DQVJEX0ZFRSA9ICfXk9ee15kg15vXqNeY15nXoSc7XG5cbmNvbnN0IElOVkFMSURfREVUQUlMU19TRUxFQ1RPUiA9ICcjcG9wdXBXcm9uZ0RldGFpbHMnO1xuY29uc3QgTE9HSU5fRVJST1JfU0VMRUNUT1IgPSAnI3BvcHVwQ2FyZEhvbGRlcnNMb2dpbkVycm9yJztcblxuY29uc3QgY2F0ZWdvcmllcyA9IG5ldyBNYXA8bnVtYmVyLCBzdHJpbmc+KCk7XG5cbmZ1bmN0aW9uIHJlZGlyZWN0T3JEaWFsb2cocGFnZTogUGFnZSkge1xuICByZXR1cm4gUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0Rm9yUmVkaXJlY3QocGFnZSwgMjAwMDAsIGZhbHNlLCBbQkFTRV9XRUxDT01FX1VSTCwgYCR7QkFTRV9XRUxDT01FX1VSTH0vYF0pLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBJTlZBTElEX0RFVEFJTFNfU0VMRUNUT1IsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBMT0dJTl9FUlJPUl9TRUxFQ1RPUiwgdHJ1ZSksXG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbnNVcmwobW9udGhNb21lbnQ6IE1vbWVudCkge1xuICBjb25zdCBtb250aCA9IG1vbnRoTW9tZW50Lm1vbnRoKCkgKyAxO1xuICBjb25zdCB5ZWFyID0gbW9udGhNb21lbnQueWVhcigpO1xuICBjb25zdCBkYXRlID0gYCR7eWVhcn0tJHttb250aH0tMDFgO1xuXG4gIC8qKlxuICAgICAqIHVybCBleHBsYW5hdGlvbjpcbiAgICAgKiB1c2VySW5kZXg6IC0xIGZvciBhbGwgYWNjb3VudCBvd25lcnNcbiAgICAgKiBjYXJkSW5kZXg6IC0xIGZvciBhbGwgY2FyZHMgdW5kZXIgdGhlIGFjY291bnRcbiAgICAgKiBhbGwgb3RoZXIgcXVlcnkgcGFyYW1zIGFyZSBzdGF0aWMsIGJlc2lkZSB0aGUgZGF0ZSB3aGljaCBjaGFuZ2VzIGZvciByZXF1ZXN0IHBlciBtb250aFxuICAgICAqL1xuICByZXR1cm4gYnVpbGRVcmwoQkFTRV9BUElfQUNUSU9OU19VUkwsIHtcbiAgICBwYXRoOiBgL2FwaS9yZWdpc3RlcmVkL3RyYW5zYWN0aW9uRGV0YWlscy9nZXRUcmFuc2FjdGlvbnNBbmRHcmFwaHM/ZmlsdGVyRGF0YT17XCJ1c2VySW5kZXhcIjotMSxcImNhcmRJbmRleFwiOi0xLFwibW9udGhWaWV3XCI6dHJ1ZSxcImRhdGVcIjpcIiR7ZGF0ZX1cIixcImRhdGVzXCI6e1wic3RhcnREYXRlXCI6XCIwXCIsXCJlbmREYXRlXCI6XCIwXCJ9LFwiYmFua0FjY291bnRcIjp7XCJiYW5rQWNjb3VudEluZGV4XCI6LTEsXCJjYXJkc1wiOm51bGx9fSZmaXJzdENhbGxDYXJkSW5kZXg9LTFgLFxuICB9KTtcbn1cblxuaW50ZXJmYWNlIEZldGNoQ2F0ZWdvcnlSZXN1bHQge1xuICByZXN1bHQ/IDogQXJyYXk8e1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9Pjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZENhdGVnb3JpZXMocGFnZTogUGFnZSkge1xuICBkZWJ1ZygnTG9hZGluZyBjYXRlZ29yaWVzJyk7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxGZXRjaENhdGVnb3J5UmVzdWx0PihwYWdlLCBgJHtCQVNFX0FQSV9BQ1RJT05TX1VSTH0vYXBpL2NvbnRlbnRzL2dldENhdGVnb3JpZXNgKTtcbiAgaWYgKHJlcyAmJiBBcnJheS5pc0FycmF5KHJlcy5yZXN1bHQpKSB7XG4gICAgZGVidWcoYCR7cmVzLnJlc3VsdC5sZW5ndGh9IGNhdGVnb3JpZXMgbG9hZGVkYCk7XG4gICAgICByZXMucmVzdWx0Py5mb3JFYWNoKCh7IGlkLCBuYW1lIH0pID0+IGNhdGVnb3JpZXMuc2V0KGlkLCBuYW1lKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25UeXBlKHR4blR5cGVTdHI6IHN0cmluZykge1xuICBjb25zdCBjbGVhbmVkVXBUeG5UeXBlU3RyID0gdHhuVHlwZVN0ci5yZXBsYWNlKCdcXHQnLCAnICcpLnRyaW0oKTtcbiAgc3dpdGNoIChjbGVhbmVkVXBUeG5UeXBlU3RyKSB7XG4gICAgY2FzZSBBVE1fVFlQRV9OQU1FOlxuICAgIGNhc2UgTk9STUFMX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRTpcbiAgICBjYXNlIE9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FOlxuICAgIGNhc2UgTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FOlxuICAgIGNhc2UgRlVUVVJFX1BVUkNIQVNFX0ZJTkFOQ0lORzpcbiAgICBjYXNlIE1PTlRITFlfUEFZTUVOVF9UWVBFX05BTUU6XG4gICAgY2FzZSBNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FOlxuICAgIGNhc2UgVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUU6XG4gICAgY2FzZSBUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUU6XG4gICAgY2FzZSBBQ0NVTVVMQVRJTkdfQkFTS0VUOlxuICAgIGNhc2UgSU5URVJORVRfU0hPUFBJTkdfVFlQRV9OQU1FOlxuICAgIGNhc2UgTU9OVEhMWV9DSEFSR0VfUExVU19JTlRFUkVTVF9UWVBFX05BTUU6XG4gICAgY2FzZSBQT1NUUE9ORURfVFJBTlNBQ1RJT05fSU5TVEFMTE1FTlRTOlxuICAgIGNhc2UgUkVQTEFDRU1FTlRfQ0FSRDpcbiAgICBjYXNlIEVBUkxZX1JFUEFZTUVOVDpcbiAgICBjYXNlIE1PTlRITFlfQ0FSRF9GRUU6XG4gICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWw7XG4gICAgY2FzZSBJTlNUQUxMTUVOVFNfVFlQRV9OQU1FOlxuICAgIGNhc2UgQ1JFRElUX1RZUEVfTkFNRTpcbiAgICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGVzLkluc3RhbGxtZW50cztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHRyYW5zYWN0aW9uIHR5cGUgJHtjbGVhbmVkVXBUeG5UeXBlU3RyfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEluc3RhbGxtZW50c0luZm8oY29tbWVudHM6IHN0cmluZykge1xuICBpZiAoIWNvbW1lbnRzKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBtYXRjaGVzID0gY29tbWVudHMubWF0Y2goL1xcZCsvZyk7XG4gIGlmICghbWF0Y2hlcyB8fCBtYXRjaGVzLmxlbmd0aCA8IDIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBudW1iZXI6IHBhcnNlSW50KG1hdGNoZXNbMF0sIDEwKSxcbiAgICB0b3RhbDogcGFyc2VJbnQobWF0Y2hlc1sxXSwgMTApLFxuICB9O1xufVxuZnVuY3Rpb24gbWFwVHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IFNjcmFwZWRUcmFuc2FjdGlvbik6IFRyYW5zYWN0aW9uIHtcbiAgY29uc3QgaXNQZW5kaW5nID0gcmF3VHJhbnNhY3Rpb24ucGF5bWVudERhdGUgPT09IG51bGw7XG4gIGNvbnN0IHByb2Nlc3NlZERhdGUgPSBtb21lbnQoaXNQZW5kaW5nID9cbiAgICByYXdUcmFuc2FjdGlvbi5wdXJjaGFzZURhdGUgOlxuICAgIHJhd1RyYW5zYWN0aW9uLnBheW1lbnREYXRlKS50b0lTT1N0cmluZygpO1xuICBjb25zdCBzdGF0dXMgPSBpc1BlbmRpbmcgPyBUcmFuc2FjdGlvblN0YXR1c2VzLlBlbmRpbmcgOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZDtcblxuICBjb25zdCBpbnN0YWxsbWVudHMgPSBnZXRJbnN0YWxsbWVudHNJbmZvKHJhd1RyYW5zYWN0aW9uLmNvbW1lbnRzKTtcbiAgY29uc3QgaWRlbnRpZmllciA9IGluc3RhbGxtZW50cyA/XG4gICAgYCR7cmF3VHJhbnNhY3Rpb24uZGVhbERhdGE/LmFybn1fJHtpbnN0YWxsbWVudHMubnVtYmVyfWAgOlxuICAgIHJhd1RyYW5zYWN0aW9uLmRlYWxEYXRhPy5hcm47XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBnZXRUcmFuc2FjdGlvblR5cGUocmF3VHJhbnNhY3Rpb24ucGxhbk5hbWUpLFxuICAgIGRhdGU6IG1vbWVudChyYXdUcmFuc2FjdGlvbi5wdXJjaGFzZURhdGUpLnRvSVNPU3RyaW5nKCksXG4gICAgcHJvY2Vzc2VkRGF0ZSxcbiAgICBvcmlnaW5hbEFtb3VudDogLXJhd1RyYW5zYWN0aW9uLm9yaWdpbmFsQW1vdW50LFxuICAgIG9yaWdpbmFsQ3VycmVuY3k6IHJhd1RyYW5zYWN0aW9uLm9yaWdpbmFsQ3VycmVuY3ksXG4gICAgY2hhcmdlZEFtb3VudDogLXJhd1RyYW5zYWN0aW9uLmFjdHVhbFBheW1lbnRBbW91bnQsXG4gICAgZGVzY3JpcHRpb246IHJhd1RyYW5zYWN0aW9uLm1lcmNoYW50TmFtZS50cmltKCksXG4gICAgbWVtbzogcmF3VHJhbnNhY3Rpb24uY29tbWVudHMsXG4gICAgY2F0ZWdvcnk6IGNhdGVnb3JpZXMuZ2V0KHJhd1RyYW5zYWN0aW9uPy5jYXRlZ29yeUlkKSxcbiAgICBpbnN0YWxsbWVudHMsXG4gICAgaWRlbnRpZmllcixcbiAgICBzdGF0dXMsXG4gIH07XG59XG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uc1Jlc3VsdHtcbiAgcmVzdWx0Pzoge1xuICAgIHRyYW5zYWN0aW9uczogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zRm9yTW9udGgocGFnZTogUGFnZSwgbW9udGhNb21lbnQ6IE1vbWVudCkge1xuICBjb25zdCB1cmwgPSBnZXRUcmFuc2FjdGlvbnNVcmwobW9udGhNb21lbnQpO1xuXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8U2NyYXBlZFRyYW5zYWN0aW9uc1Jlc3VsdD4ocGFnZSwgdXJsKTtcbiAgY29uc3QgdHJhbnNhY3Rpb25zQnlBY2NvdW50OiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbltdPiA9IHt9O1xuXG4gIGlmICghZGF0YSB8fCAhZGF0YS5yZXN1bHQpIHJldHVybiB0cmFuc2FjdGlvbnNCeUFjY291bnQ7XG5cbiAgZGF0YS5yZXN1bHQudHJhbnNhY3Rpb25zXG4gICAgLy8gRmlsdGVyIG91dCBub24tdHJhbnNhY3Rpb25zIHdpdGhvdXQgYSBwbGFuIHR5cGUsIGUuZy4gc3VtbWFyeSByb3dzXG4gICAgLmZpbHRlcigodHJhbnNhY3Rpb24pID0+ICEhdHJhbnNhY3Rpb24ucGxhbk5hbWUpXG4gICAgLmZvckVhY2goKHRyYW5zYWN0aW9uOiBTY3JhcGVkVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgIGlmICghdHJhbnNhY3Rpb25zQnlBY2NvdW50W3RyYW5zYWN0aW9uLnNob3J0Q2FyZE51bWJlcl0pIHtcbiAgICAgICAgdHJhbnNhY3Rpb25zQnlBY2NvdW50W3RyYW5zYWN0aW9uLnNob3J0Q2FyZE51bWJlcl0gPSBbXTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWFwcGVkVHJhbnNhY3Rpb24gPSBtYXBUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICB0cmFuc2FjdGlvbnNCeUFjY291bnRbdHJhbnNhY3Rpb24uc2hvcnRDYXJkTnVtYmVyXS5wdXNoKG1hcHBlZFRyYW5zYWN0aW9uKTtcbiAgICB9KTtcblxuICByZXR1cm4gdHJhbnNhY3Rpb25zQnlBY2NvdW50O1xufVxuXG5mdW5jdGlvbiBhZGRSZXN1bHQoYWxsUmVzdWx0czogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4sIHJlc3VsdDogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4pIHtcbiAgY29uc3QgY2xvbmVkUmVzdWx0czogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4gPSB7IC4uLmFsbFJlc3VsdHMgfTtcbiAgT2JqZWN0LmtleXMocmVzdWx0KS5mb3JFYWNoKChhY2NvdW50TnVtYmVyKSA9PiB7XG4gICAgaWYgKCFjbG9uZWRSZXN1bHRzW2FjY291bnROdW1iZXJdKSB7XG4gICAgICBjbG9uZWRSZXN1bHRzW2FjY291bnROdW1iZXJdID0gW107XG4gICAgfVxuICAgIGNsb25lZFJlc3VsdHNbYWNjb3VudE51bWJlcl0ucHVzaCguLi5yZXN1bHRbYWNjb3VudE51bWJlcl0pO1xuICB9KTtcbiAgcmV0dXJuIGNsb25lZFJlc3VsdHM7XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVUcmFuc2FjdGlvbnModHhuczogVHJhbnNhY3Rpb25bXSwgc3RhcnRNb21lbnQ6IG1vbWVudC5Nb21lbnQsIGNvbWJpbmVJbnN0YWxsbWVudHM6IGJvb2xlYW4sIGVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZTogYm9vbGVhbikge1xuICBsZXQgY2xvbmVkVHhucyA9IEFycmF5LmZyb20odHhucyk7XG4gIGlmICghY29tYmluZUluc3RhbGxtZW50cykge1xuICAgIGNsb25lZFR4bnMgPSBmaXhJbnN0YWxsbWVudHMoY2xvbmVkVHhucyk7XG4gIH1cbiAgY2xvbmVkVHhucyA9IHNvcnRUcmFuc2FjdGlvbnNCeURhdGUoY2xvbmVkVHhucyk7XG4gIGNsb25lZFR4bnMgPSBlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUgP1xuICAgIGZpbHRlck9sZFRyYW5zYWN0aW9ucyhjbG9uZWRUeG5zLCBzdGFydE1vbWVudCwgY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSkgOlxuICAgIGNsb25lZFR4bnM7XG4gIHJldHVybiBjbG9uZWRUeG5zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBvcHRpb25zOiBTY3JhcGVyT3B0aW9ucykge1xuICBjb25zdCBmdXR1cmVNb250aHNUb1NjcmFwZSA9IG9wdGlvbnMuZnV0dXJlTW9udGhzVG9TY3JhcGUgPz8gMTtcbiAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJyk7XG4gIGNvbnN0IHN0YXJ0RGF0ZSA9IG9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuICBjb25zdCBhbGxNb250aHMgPSBnZXRBbGxNb250aE1vbWVudHMoc3RhcnRNb21lbnQsIGZ1dHVyZU1vbnRoc1RvU2NyYXBlKTtcblxuICBhd2FpdCBsb2FkQ2F0ZWdvcmllcyhwYWdlKTtcblxuICBsZXQgYWxsUmVzdWx0czogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4gPSB7fTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxNb250aHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmZXRjaFRyYW5zYWN0aW9uc0Zvck1vbnRoKHBhZ2UsIGFsbE1vbnRoc1tpXSk7XG4gICAgYWxsUmVzdWx0cyA9IGFkZFJlc3VsdChhbGxSZXN1bHRzLCByZXN1bHQpO1xuICB9XG5cbiAgT2JqZWN0LmtleXMoYWxsUmVzdWx0cykuZm9yRWFjaCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgIGxldCB0eG5zID0gYWxsUmVzdWx0c1thY2NvdW50TnVtYmVyXTtcbiAgICB0eG5zID0gcHJlcGFyZVRyYW5zYWN0aW9ucyh0eG5zLCBzdGFydE1vbWVudCwgb3B0aW9ucy5jb21iaW5lSW5zdGFsbG1lbnRzIHx8IGZhbHNlLFxuICAgICAgKG9wdGlvbnMub3V0cHV0RGF0YT8uZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlID8/IHRydWUpKTtcbiAgICBhbGxSZXN1bHRzW2FjY291bnROdW1iZXJdID0gdHhucztcbiAgfSk7XG5cbiAgcmV0dXJuIGFsbFJlc3VsdHM7XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHBhZ2U6IFBhZ2UpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIGNvbnN0IHVybHM6IFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge307XG4gIHVybHNbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdID0gW1NVQ0NFU1NfVVJMXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdID0gW1BBU1NXT1JEX0VYUElSRURfVVJMXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFthc3luYyAoKSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIElOVkFMSURfREVUQUlMU19TRUxFQ1RPUik7XG4gIH1dO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5Vbmtub3duRXJyb3JdID0gW2FzeW5jICgpID0+IHtcbiAgICByZXR1cm4gZWxlbWVudFByZXNlbnRPblBhZ2UocGFnZSwgTE9HSU5fRVJST1JfU0VMRUNUT1IpO1xuICB9XTtcbiAgcmV0dXJuIHVybHM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpIHtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnI3VzZXItbmFtZScsIHZhbHVlOiBjcmVkZW50aWFscy51c2VybmFtZSB9LFxuICAgIHsgc2VsZWN0b3I6ICcjcGFzc3dvcmQnLCB2YWx1ZTogY3JlZGVudGlhbHMucGFzc3dvcmQgfSxcbiAgXTtcbn1cblxuY2xhc3MgTWF4U2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogTE9HSU5fVVJMLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJyNsb2dpbi1wYXNzd29yZCAjc2VuZC1jb2RlJyxcbiAgICAgIHByZUFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UodGhpcy5wYWdlLCAnI2Nsb3NlUG9wdXAnKSkge1xuICAgICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJyNjbG9zZVBvcHVwJyk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnLnBlcnNvbmFsLWFyZWEgPiBhLmdvLXRvLXBlcnNvbmFsLWFyZWEnKTtcbiAgICAgICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNsb2dpbi1wYXNzd29yZC1saW5rJywgdHJ1ZSk7XG4gICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJyNsb2dpbi1wYXNzd29yZC1saW5rJyk7XG4gICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjbG9naW4tcGFzc3dvcmQudGFiLXBhbmUuYWN0aXZlIGFwcC11c2VyLWxvZ2luLWZvcm0nLCB0cnVlKTtcbiAgICAgIH0sXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnLnBlcnNvbmFsLWFyZWEgPiBhLmdvLXRvLXBlcnNvbmFsLWFyZWEnLCB0cnVlKTtcbiAgICAgIH0sXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiByZWRpcmVjdE9yRGlhbG9nKHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHRoaXMucGFnZSksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCB0aGlzLm9wdGlvbnMpO1xuICAgIGNvbnN0IGFjY291bnRzID0gT2JqZWN0LmtleXMocmVzdWx0cykubWFwKChhY2NvdW50TnVtYmVyKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY2NvdW50TnVtYmVyLFxuICAgICAgICB0eG5zOiByZXN1bHRzW2FjY291bnROdW1iZXJdLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYXhTY3JhcGVyO1xuIl19
@@ -172,6 +172,8 @@ function convertTransactions(txns) {
172
172
  }
173
173
 
174
174
  async function fetchTransactionsForAccount(page, startDate, accountNumber, scraperOptions) {
175
+ var _scraperOptions$outpu, _scraperOptions$outpu2;
176
+
175
177
  const startDateValue = startDate.format('MM/YYYY');
176
178
  const dateSelector = '[id$="FormAreaNoBorder_FormArea_clndrDebitDateScope_TextBox"]';
177
179
  const dateHiddenFieldSelector = '[id$="FormAreaNoBorder_FormArea_clndrDebitDateScope_HiddenField"]';
@@ -279,7 +281,7 @@ async function fetchTransactionsForAccount(page, startDate, accountNumber, scrap
279
281
  }
280
282
 
281
283
  debug('filer out old transactions');
282
- const txns = (0, _transactions2.filterOldTransactions)(accountTransactions, startDate, scraperOptions.combineInstallments || false);
284
+ const txns = ((_scraperOptions$outpu = (_scraperOptions$outpu2 = scraperOptions.outputData) === null || _scraperOptions$outpu2 === void 0 ? void 0 : _scraperOptions$outpu2.enableTransactionsFilterByDate) !== null && _scraperOptions$outpu !== void 0 ? _scraperOptions$outpu : true) ? (0, _transactions2.filterOldTransactions)(accountTransactions, startDate, scraperOptions.combineInstallments || false) : accountTransactions;
283
285
  debug(`found ${txns.length} valid transactions out of ${accountTransactions.length} transactions for account ending with ${accountNumber.substring(accountNumber.length - 2)}`);
284
286
  return {
285
287
  accountNumber,
@@ -412,4 +414,4 @@ class VisaCalScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
412
414
 
413
415
  var _default = VisaCalScraper;
414
416
  exports.default = _default;
415
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy92aXNhLWNhbC50cyJdLCJuYW1lcyI6WyJMT0dJTl9VUkwiLCJUUkFOU0FDVElPTlNfVVJMIiwiTE9OR19EQVRFX0ZPUk1BVCIsIkRBVEVfRk9STUFUIiwiSW52YWxpZFBhc3N3b3JkTWVzc2FnZSIsImRlYnVnIiwiZ2V0TG9naW5GcmFtZSIsInBhZ2UiLCJmcmFtZSIsImZyYW1lcyIsImZpbmQiLCJmIiwidXJsIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkVycm9yIiwiaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IiLCJlcnJvckZvdW5kIiwiZXJyb3JNZXNzYWdlIiwiaXRlbSIsImlubmVyVGV4dCIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJvcHRpb25zIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNsbiIsInJlcGxhY2UiLCJjdXJyZW5jeSIsImFtb3VudCIsIlNIRUtFTF9DVVJSRU5DWV9TWU1CT0wiLCJwYXJzZUZsb2F0IiwiU0hFS0VMX0NVUlJFTkNZIiwiRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCIsIkRPTExBUl9DVVJSRU5DWSIsIkVVUk9fQ1VSUkVOQ1lfU1lNQk9MIiwiRVVST19DVVJSRU5DWSIsInBhcnRzIiwic3BsaXQiLCJnZXRUcmFuc2FjdGlvbkluc3RhbGxtZW50cyIsIm1lbW8iLCJwYXJzZWRNZW1vIiwiZXhlYyIsImxlbmd0aCIsIm51bWJlciIsInBhcnNlSW50IiwidG90YWwiLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsIm1hcCIsInR4biIsIm9yaWdpbmFsQW1vdW50VHVwbGUiLCJvcmlnaW5hbEFtb3VudCIsImNoYXJnZWRBbW91bnRUdXBsZSIsImNoYXJnZWRBbW91bnQiLCJpbnN0YWxsbWVudHMiLCJ0eG5EYXRlIiwiZGF0ZSIsInByb2Nlc3NlZERhdGVGb3JtYXQiLCJwcm9jZXNzZWREYXRlIiwidHhuUHJvY2Vzc2VkRGF0ZSIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiSW5zdGFsbG1lbnRzIiwiTm9ybWFsIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsImFkZCIsInRvSVNPU3RyaW5nIiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwiZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50Iiwic3RhcnREYXRlIiwiYWNjb3VudE51bWJlciIsInNjcmFwZXJPcHRpb25zIiwic3RhcnREYXRlVmFsdWUiLCJmb3JtYXQiLCJkYXRlU2VsZWN0b3IiLCJkYXRlSGlkZGVuRmllbGRTZWxlY3RvciIsImJ1dHRvblNlbGVjdG9yIiwibmV4dFBhZ2VTZWxlY3RvciIsImJpbGxpbmdMYWJlbFNlbGVjdG9yIiwic2Vjb25kYXJ5QmlsbGluZ0xhYmVsU2VsZWN0b3IiLCJub0RhdGFTZWxlY3RvciIsIml0ZW1zIiwiZWwiLCJzdGFydERhdGVJbmRleCIsImZpbmRJbmRleCIsIm9wdGlvbiIsImFjY291bnRUcmFuc2FjdGlvbnMiLCJjdXJyZW50RGF0ZUluZGV4Iiwid2FpdEZvclRpbWVvdXQiLCJhbGwiLCJ3YWl0Rm9yTmF2aWdhdGlvbiIsIndhaXRVbnRpbCIsInBhZ2VIYXNOb1RyYW5zYWN0aW9ucyIsImVsZW1lbnQiLCJzaXRlVmFsdWUiLCJiaWxsaW5nRGF0ZUxhYmVsIiwic2V0dGxlbWVudERhdGVSZWdleCIsImJpbGxpbmdEYXRlIiwiaGFzTmV4dFBhZ2UiLCJyYXdUcmFuc2FjdGlvbnMiLCJjb2x1bW5zIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJwdXNoIiwiZmlsdGVyIiwiY29tYmluZUluc3RhbGxtZW50cyIsInN1YnN0cmluZyIsImdldEFjY291bnROdW1iZXJzIiwiZWxlbWVudHMiLCJlIiwidGV4dCIsInRoZW4iLCJyZXMiLCJ0cmltIiwic2V0QWNjb3VudCIsImFjY291bnQiLCJlbGVtIiwiYSIsImNsaWNrIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJhY2NvdW50TnVtYmVycyIsImFjY291bnRzIiwiZmV0Y2hGdXR1cmVEZWJpdHMiLCJmdXR1cmVEZWJpdHNTZWxlY3RvciIsImRlYml0TW91bnRDbGFzcyIsImRlYml0V2hlbkNoYXJnZUNsYXNzIiwiZGViaXRCYW5rTnVtYmVyQ2xhc3MiLCJjdXJyQmFua0VsIiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsIndoZW5DaGFyZ2UiLCJiYW5rTnVtYmVyIiwiZnV0dXJlRGViaXRzIiwiYW1vdW50RGF0YSIsImNoYXJnZURhdGUiLCJiYW5rQWNjb3VudE51bWJlciIsImFtb3VudEN1cnJlbmN5IiwiVmlzYUNhbFNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInBvc3NpYmxlUmVzdWx0cyIsImNoZWNrUmVhZGluZXNzIiwicHJlQWN0aW9uIiwib3BlbkxvZ2luUG9wdXAiLCJ1c2VyQWdlbnQiLCJmZXRjaERhdGEiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInRvRGF0ZSIsInN0YXJ0TW9tZW50IiwibW9tZW50IiwibWF4IiwibmF2aWdhdGVUbyIsInVuZGVmaW5lZCIsInN1Y2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBR0E7O0FBUUE7O0FBR0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLE1BQU1BLFNBQVMsR0FBRywrQkFBbEI7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyx1RkFBekI7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyxZQUF6QjtBQUNBLE1BQU1DLFdBQVcsR0FBRyxVQUFwQjtB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bnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgRnJhbWUsIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5PcHRpb25zLCBMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHtcbiAgY2xpY2tCdXR0b24sIGVsZW1lbnRQcmVzZW50T25QYWdlLCBwYWdlRXZhbCwgcGFnZUV2YWxBbGwsIHNldFZhbHVlLCB3YWl0VW50aWxFbGVtZW50Rm91bmQsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyxcbiAgVHJhbnNhY3Rpb25zQWNjb3VudCxcbiAgVHJhbnNhY3Rpb25TdGF0dXNlcyxcbiAgVHJhbnNhY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IFNjcmFwZXJPcHRpb25zLCBTY2FwZXJTY3JhcGluZ1Jlc3VsdCwgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHtcbiAgRE9MTEFSX0NVUlJFTkNZLCBET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MLCBFVVJPX0NVUlJFTkNZLCBFVVJPX0NVUlJFTkNZX1NZTUJPTCwgU0hFS0VMX0NVUlJFTkNZLCBTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MLFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgd2FpdFVudGlsIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IGZpbHRlck9sZFRyYW5zYWN0aW9ucyB9IGZyb20gJy4uL2hlbHBlcnMvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5cbmNvbnN0IExPR0lOX1VSTCA9ICdodHRwczovL3d3dy5jYWwtb25saW5lLmNvLmlsLyc7XG5jb25zdCBUUkFOU0FDVElPTlNfVVJMID0gJ2h0dHBzOi8vc2VydmljZXMuY2FsLW9ubGluZS5jby5pbC9DYXJkLUhvbGRlcnMvU2NyZWVucy9UcmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25zLmFzcHgnO1xuY29uc3QgTE9OR19EQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWVlZJztcbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZJztcbmNvbnN0IEludmFsaWRQYXNzd29yZE1lc3NhZ2UgPSAn16nXnSDXlNee16nXqtee16kg15DXlSDXlNeh15nXodee15Qg16nXlNeV15bXoNeVINep15LXldeZ15nXnSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ3Zpc2EtY2FsJyk7XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBkYXRlOiBzdHJpbmc7XG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IHN0cmluZztcbiAgY2hhcmdlZEFtb3VudDogc3RyaW5nO1xuICBtZW1vOiBzdHJpbmc7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldExvZ2luRnJhbWUocGFnZTogUGFnZSkge1xuICBsZXQgZnJhbWU6IEZyYW1lIHwgbnVsbCA9IG51bGw7XG4gIGRlYnVnKCd3YWl0IHVudGlsIGxvZ2luIGZyYW1lIGZvdW5kJyk7XG4gIGF3YWl0IHdhaXRVbnRpbCgoKSA9PiB7XG4gICAgZnJhbWUgPSBwYWdlXG4gICAgICAuZnJhbWVzKClcbiAgICAgIC5maW5kKChmKSA9PiBmLnVybCgpLmluY2x1ZGVzKCdjYWxjb25uZWN0JykpIHx8IG51bGw7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSghIWZyYW1lKTtcbiAgfSwgJ3dhaXQgZm9yIGlmcmFtZSB3aXRoIGxvZ2luIGZvcm0nLCAxMDAwMCwgMTAwMCk7XG5cbiAgaWYgKCFmcmFtZSkge1xuICAgIGRlYnVnKCdmYWlsZWQgdG8gZmluZCBsb2dpbiBmcmFtZSBmb3IgMTAgc2Vjb25kcycpO1xuICAgIHRocm93IG5ldyBFcnJvcignZmFpbGVkIHRvIGV4dHJhY3QgbG9naW4gaWZyYW1lJyk7XG4gIH1cblxuICByZXR1cm4gZnJhbWU7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhc0ludmFsaWRQYXNzd29yZEVycm9yKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgZnJhbWUgPSBhd2FpdCBnZXRMb2dpbkZyYW1lKHBhZ2UpO1xuICBjb25zdCBlcnJvckZvdW5kID0gYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UoZnJhbWUsICdkaXYuZ2VuZXJhbC1lcnJvciA+IGRpdicpO1xuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvckZvdW5kID8gYXdhaXQgcGFnZUV2YWwoZnJhbWUsICdkaXYuZ2VuZXJhbC1lcnJvciA+IGRpdicsICcnLCAoaXRlbSkgPT4ge1xuICAgIHJldHVybiAoaXRlbSBhcyBIVE1MRGl2RWxlbWVudCkuaW5uZXJUZXh0O1xuICB9KSA6ICcnO1xuICByZXR1cm4gZXJyb3JNZXNzYWdlID09PSBJbnZhbGlkUGFzc3dvcmRNZXNzYWdlO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpIHtcbiAgZGVidWcoJ3JldHVybiBwb3NzaWJsZSBsb2dpbiByZXN1bHRzJyk7XG4gIGNvbnN0IHVybHM6IExvZ2luT3B0aW9uc1sncG9zc2libGVSZXN1bHRzJ10gPSB7XG4gICAgW0xvZ2luUmVzdWx0cy5TdWNjZXNzXTogWy9BY2NvdW50TWFuYWdlbWVudC9pXSxcbiAgICBbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF06IFthc3luYyAob3B0aW9ucz86IHsgcGFnZT86IFBhZ2V9KSA9PiB7XG4gICAgICBjb25zdCBwYWdlID0gb3B0aW9ucz8ucGFnZTtcbiAgICAgIGlmICghcGFnZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IocGFnZSk7XG4gICAgfV0sXG4gICAgLy8gW0xvZ2luUmVzdWx0cy5BY2NvdW50QmxvY2tlZF06IFtdLCAvLyBUT0RPIGFkZCB3aGVuIHJlYWNoaW5nIHRoaXMgc2NlbmFyaW9cbiAgICAvLyBbTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkXTogW10sIC8vIFRPRE8gYWRkIHdoZW4gcmVhY2hpbmcgdGhpcyBzY2VuYXJpb1xuICB9O1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICBkZWJ1ZygnY3JlYXRlIGxvZ2luIGZpZWxkcyBmb3IgdXNlcm5hbWUgYW5kIHBhc3N3b3JkJyk7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJ1tmb3JtY29udHJvbG5hbWU9XCJ1c2VyTmFtZVwiXScsIHZhbHVlOiBjcmVkZW50aWFscy51c2VybmFtZSB9LFxuICAgIHsgc2VsZWN0b3I6ICdbZm9ybWNvbnRyb2xuYW1lPVwicGFzc3dvcmRcIl0nLCB2YWx1ZTogY3JlZGVudGlhbHMucGFzc3dvcmQgfSxcbiAgXTtcbn1cblxuXG5mdW5jdGlvbiBnZXRBbW91bnREYXRhKGFtb3VudFN0cjogc3RyaW5nKSB7XG4gIGNvbnN0IGFtb3VudFN0ckNsbiA9IGFtb3VudFN0ci5yZXBsYWNlKCcsJywgJycpO1xuICBsZXQgY3VycmVuY3k6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBsZXQgYW1vdW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgaWYgKGFtb3VudFN0ckNsbi5pbmNsdWRlcyhTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MKSkge1xuICAgIGFtb3VudCA9IC1wYXJzZUZsb2F0KGFtb3VudFN0ckNsbi5yZXBsYWNlKFNIRUtFTF9DVVJSRU5DWV9TWU1CT0wsICcnKSk7XG4gICAgY3VycmVuY3kgPSBTSEVLRUxfQ1VSUkVOQ1k7XG4gIH0gZWxzZSBpZiAoYW1vdW50U3RyQ2xuLmluY2x1ZGVzKERPTExBUl9DVVJSRU5DWV9TWU1CT0wpKSB7XG4gICAgYW1vdW50ID0gLXBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuLnJlcGxhY2UoRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IERPTExBUl9DVVJSRU5DWTtcbiAgfSBlbHNlIGlmIChhbW91bnRTdHJDbG4uaW5jbHVkZXMoRVVST19DVVJSRU5DWV9TWU1CT0wpKSB7XG4gICAgYW1vdW50ID0gLXBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuLnJlcGxhY2UoRVVST19DVVJSRU5DWV9TWU1CT0wsICcnKSk7XG4gICAgY3VycmVuY3kgPSBFVVJPX0NVUlJFTkNZO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHBhcnRzID0gYW1vdW50U3RyQ2xuLnNwbGl0KCcgJyk7XG4gICAgW2N1cnJlbmN5XSA9IHBhcnRzO1xuICAgIGFtb3VudCA9IC1wYXJzZUZsb2F0KHBhcnRzWzFdKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYW1vdW50LFxuICAgIGN1cnJlbmN5LFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkluc3RhbGxtZW50cyhtZW1vOiBzdHJpbmcpOiBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyB8IG51bGwge1xuICBjb25zdCBwYXJzZWRNZW1vID0gKC/Xqtep15zXldedIChcXGQrKSDXnteq15XXmiAoXFxkKykvKS5leGVjKG1lbW8gfHwgJycpO1xuXG4gIGlmICghcGFyc2VkTWVtbyB8fCBwYXJzZWRNZW1vLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBudW1iZXI6IHBhcnNlSW50KHBhcnNlZE1lbW9bMV0sIDEwKSxcbiAgICB0b3RhbDogcGFyc2VJbnQocGFyc2VkTWVtb1syXSwgMTApLFxuICB9O1xufVxuZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9ucyh0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10ge1xuICBkZWJ1ZyhgY29udmVydCAke3R4bnMubGVuZ3RofSByYXcgdHJhbnNhY3Rpb25zIHRvIG9mZmljaWFsIFRyYW5zYWN0aW9uIHN0cnVjdHVyZWApO1xuICByZXR1cm4gdHhucy5tYXAoKHR4bikgPT4ge1xuICAgIGNvbnN0IG9yaWdpbmFsQW1vdW50VHVwbGUgPSBnZXRBbW91bnREYXRhKHR4bi5vcmlnaW5hbEFtb3VudCB8fCAnJyk7XG4gICAgY29uc3QgY2hhcmdlZEFtb3VudFR1cGxlID0gZ2V0QW1vdW50RGF0YSh0eG4uY2hhcmdlZEFtb3VudCB8fCAnJyk7XG5cbiAgICBjb25zdCBpbnN0YWxsbWVudHMgPSBnZXRUcmFuc2FjdGlvbkluc3RhbGxtZW50cyh0eG4ubWVtbyk7XG4gICAgY29uc3QgdHhuRGF0ZSA9IG1vbWVudCh0eG4uZGF0ZSwgREFURV9GT1JNQVQpO1xuICAgIGNvbnN0IHByb2Nlc3NlZERhdGVGb3JtYXQgPVxuICAgICAgdHhuLnByb2Nlc3NlZERhdGUubGVuZ3RoID09PSA4ID9cbiAgICAgICAgREFURV9GT1JNQVQgOlxuICAgICAgICB0eG4ucHJvY2Vzc2VkRGF0ZS5sZW5ndGggPT09IDkgfHwgdHhuLnByb2Nlc3NlZERhdGUubGVuZ3RoID09PSAxMCA/XG4gICAgICAgICAgTE9OR19EQVRFX0ZPUk1BVCA6XG4gICAgICAgICAgbnVsbDtcbiAgICBpZiAoIXByb2Nlc3NlZERhdGVGb3JtYXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBwcm9jZXNzZWQgZGF0ZScpO1xuICAgIH1cbiAgICBjb25zdCB0eG5Qcm9jZXNzZWREYXRlID0gbW9tZW50KHR4bi5wcm9jZXNzZWREYXRlLCBwcm9jZXNzZWREYXRlRm9ybWF0KTtcblxuICAgIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb24gPSB7XG4gICAgICB0eXBlOiBpbnN0YWxsbWVudHMgPyBUcmFuc2FjdGlvblR5cGVzLkluc3RhbGxtZW50cyA6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICAgIGRhdGU6IGluc3RhbGxtZW50cyA/IHR4bkRhdGUuYWRkKGluc3RhbGxtZW50cy5udW1iZXIgLSAxLCAnbW9udGgnKS50b0lTT1N0cmluZygpIDogdHhuRGF0ZS50b0lTT1N0cmluZygpLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogdHhuUHJvY2Vzc2VkRGF0ZS50b0lTT1N0cmluZygpLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IG9yaWdpbmFsQW1vdW50VHVwbGUuYW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogb3JpZ2luYWxBbW91bnRUdXBsZS5jdXJyZW5jeSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGNoYXJnZWRBbW91bnRUdXBsZS5hbW91bnQsXG4gICAgICBjaGFyZ2VkQ3VycmVuY3k6IGNoYXJnZWRBbW91bnRUdXBsZS5jdXJyZW5jeSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0eG4uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICBtZW1vOiB0eG4ubWVtbyB8fCAnJyxcbiAgICB9O1xuXG4gICAgaWYgKGluc3RhbGxtZW50cykge1xuICAgICAgcmVzdWx0Lmluc3RhbGxtZW50cyA9IGluc3RhbGxtZW50cztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50KHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50LCBhY2NvdW50TnVtYmVyOiBzdHJpbmcsIHNjcmFwZXJPcHRpb25zOiBTY3JhcGVyT3B0aW9ucyk6IFByb21pc2U8VHJhbnNhY3Rpb25zQWNjb3VudD4ge1xuICBjb25zdCBzdGFydERhdGVWYWx1ZSA9IHN0YXJ0RGF0ZS5mb3JtYXQoJ01NL1lZWVknKTtcbiAgY29uc3QgZGF0ZVNlbGVjdG9yID0gJ1tpZCQ9XCJGb3JtQXJlYU5vQm9yZGVyX0Zvcm1BcmVhX2NsbmRyRGViaXREYXRlU2NvcGVfVGV4dEJveFwiXSc7XG4gIGNvbnN0IGRhdGVIaWRkZW5GaWVsZFNlbGVjdG9yID0gJ1tpZCQ9XCJGb3JtQXJlYU5vQm9yZGVyX0Zvcm1BcmVhX2NsbmRyRGViaXREYXRlU2NvcGVfSGlkZGVuRmllbGRcIl0nO1xuICBjb25zdCBidXR0b25TZWxlY3RvciA9ICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jdGxTdWJtaXRSZXF1ZXN0XCJdJztcbiAgY29uc3QgbmV4dFBhZ2VTZWxlY3RvciA9ICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jdGxHcmlkUGFnZXJfYnRuTmV4dFwiXSc7XG4gIGNvbnN0IGJpbGxpbmdMYWJlbFNlbGVjdG9yID0gJ1tpZCQ9Rm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jdGxNYWluVG9vbEJhcl9sYmxDYXB0aW9uXSc7XG4gIGNvbnN0IHNlY29uZGFyeUJpbGxpbmdMYWJlbFNlbGVjdG9yID0gJ1tpZCQ9Rm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jdGxTZWNvbmRhcnlUb29sQmFyX2xibENhcHRpb25dJztcbiAgY29uc3Qgbm9EYXRhU2VsZWN0b3IgPSAnW2lkJD1Gb3JtQXJlYU5vQm9yZGVyX0Zvcm1BcmVhX21zZ2JveEVycm9yTWVzc2FnZXNdJztcblxuICBkZWJ1ZygnZmluZCB0aGUgc3RhcnQgZGF0ZSBpbmRleCBpbiB0aGUgZHJvcGJveCcpO1xuICBjb25zdCBvcHRpb25zID0gYXdhaXQgcGFnZUV2YWxBbGwocGFnZSwgJ1tpZCQ9XCJGb3JtQXJlYU5vQm9yZGVyX0Zvcm1BcmVhX2NsbmRyRGViaXREYXRlU2NvcGVfT3B0aW9uTGlzdFwiXSBsaScsIFtdLCAoaXRlbXMpID0+IHtcbiAgICByZXR1cm4gaXRlbXMubWFwKChlbDogYW55KSA9PiBlbC5pbm5lclRleHQpO1xuICB9KTtcbiAgY29uc3Qgc3RhcnREYXRlSW5kZXggPSBvcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24gPT09IHN0YXJ0RGF0ZVZhbHVlKTtcblxuICBkZWJ1Zyhgc2NyYXBlICR7b3B0aW9ucy5sZW5ndGggLSBzdGFydERhdGVJbmRleH0gYmlsbGluZyBjeWNsZXNgKTtcbiAgY29uc3QgYWNjb3VudFRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IFtdO1xuICBmb3IgKGxldCBjdXJyZW50RGF0ZUluZGV4ID0gc3RhcnREYXRlSW5kZXg7IGN1cnJlbnREYXRlSW5kZXggPCBvcHRpb25zLmxlbmd0aDsgY3VycmVudERhdGVJbmRleCArPSAxKSB7XG4gICAgZGVidWcoJ3dhaXQgZm9yIGRhdGUgc2VsZWN0b3IgdG8gYmUgZm91bmQnKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgZGF0ZVNlbGVjdG9yLCB0cnVlKTtcbiAgICBkZWJ1Zyhgc2V0IGhpZGRlbiB2YWx1ZSBvZiB0aGUgZGF0ZSBzZWxlY3RvciB0byBiZSB0aGUgaW5kZXggJHtjdXJyZW50RGF0ZUluZGV4fWApO1xuICAgIGF3YWl0IHNldFZhbHVlKHBhZ2UsIGRhdGVIaWRkZW5GaWVsZFNlbGVjdG9yLCBgJHtjdXJyZW50RGF0ZUluZGV4fWApO1xuICAgIGRlYnVnKCd3YWl0IGEgc2Vjb25kIHRvIHdvcmthcm91bmQgbmF2aWdhdGlvbiBpc3N1ZSBpbiBoZWFkbGVzcyBicm93c2VyIG1vZGUnKTtcbiAgICBhd2FpdCBwYWdlLndhaXRGb3JUaW1lb3V0KDEwMDApO1xuICAgIGRlYnVnKCdjbGljayBvbiB0aGUgZmlsdGVyIHN1Ym1pdCBidXR0b24gYW5kIHdhaXQgZm9yIG5hdmlnYXRpb24nKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBwYWdlLndhaXRGb3JOYXZpZ2F0aW9uKHsgd2FpdFVudGlsOiAnZG9tY29udGVudGxvYWRlZCcgfSksXG4gICAgICBjbGlja0J1dHRvbihwYWdlLCBidXR0b25TZWxlY3RvciksXG4gICAgXSk7XG4gICAgZGVidWcoJ2NoZWNrIGlmIG1vbnRoIGhhcyBubyB0cmFuc2FjdGlvbnMnKTtcbiAgICBjb25zdCBwYWdlSGFzTm9UcmFuc2FjdGlvbnMgPSBhd2FpdCBwYWdlRXZhbChwYWdlLCBub0RhdGFTZWxlY3RvciwgZmFsc2UsICgoZWxlbWVudCkgPT4ge1xuICAgICAgY29uc3Qgc2l0ZVZhbHVlID0gKChlbGVtZW50IGFzIEhUTUxTcGFuRWxlbWVudCkuaW5uZXJUZXh0IHx8ICcnKS5yZXBsYWNlKC9bXiDXkC3Xql0vZywgJycpO1xuICAgICAgcmV0dXJuIHNpdGVWYWx1ZSA9PT0gJ9ec15Ag16DXntem15DXlSDXoNeq15XXoNeZ150nO1xuICAgIH0pKTtcblxuICAgIGlmIChwYWdlSGFzTm9UcmFuc2FjdGlvbnMpIHtcbiAgICAgIGRlYnVnKCdwYWdlIGhhcyBubyB0cmFuc2FjdGlvbnMnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoJ2ZpbmQgdGhlIGJpbGxpbmcgZGF0ZScpO1xuICAgICAgbGV0IGJpbGxpbmdEYXRlTGFiZWwgPSBhd2FpdCBwYWdlRXZhbChwYWdlLCBiaWxsaW5nTGFiZWxTZWxlY3RvciwgJycsICgoZWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gKGVsZW1lbnQgYXMgSFRNTFNwYW5FbGVtZW50KS5pbm5lclRleHQ7XG4gICAgICB9KSk7XG4gICAgICBsZXQgc2V0dGxlbWVudERhdGVSZWdleCA9IC9cXGR7MSwyfVsvXVxcZHsyfVsvXVxcZHsyLDR9LztcblxuICAgICAgaWYgKGJpbGxpbmdEYXRlTGFiZWwgPT09ICcnKSB7XG4gICAgICAgIGJpbGxpbmdEYXRlTGFiZWwgPSBhd2FpdCBwYWdlRXZhbChwYWdlLCBzZWNvbmRhcnlCaWxsaW5nTGFiZWxTZWxlY3RvciwgJycsICgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIHJldHVybiAoZWxlbWVudCBhcyBIVE1MU3BhbkVsZW1lbnQpLmlubmVyVGV4dDtcbiAgICAgICAgfSkpO1xuICAgICAgICBzZXR0bGVtZW50RGF0ZVJlZ2V4ID0gL1xcZHsxLDJ9Wy9dXFxkezIsNH0vO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBiaWxsaW5nRGF0ZSA9IHNldHRsZW1lbnREYXRlUmVnZXguZXhlYyhiaWxsaW5nRGF0ZUxhYmVsKT8uWzBdO1xuXG4gICAgICBpZiAoIWJpbGxpbmdEYXRlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignZmFpbGVkIHRvIGZldGNoIHByb2Nlc3MgZGF0ZScpO1xuICAgICAgfVxuXG4gICAgICBkZWJ1ZyhgZm91bmQgdGhlIGJpbGxpbmcgZGF0ZSBmb3IgdGhhdCBtb250aCAke2JpbGxpbmdEYXRlfWApO1xuICAgICAgbGV0IGhhc05leHRQYWdlID0gZmFsc2U7XG4gICAgICBkbyB7XG4gICAgICAgIGRlYnVnKCdmZXRjaCByYXcgdHJhbnNhY3Rpb25zIGZyb20gcGFnZScpO1xuICAgICAgICBjb25zdCByYXdUcmFuc2FjdGlvbnMgPSBhd2FpdCBwYWdlRXZhbEFsbDwoU2NyYXBlZFRyYW5zYWN0aW9uIHwgbnVsbClbXT4ocGFnZSwgJyNjdGxNYWluR3JpZCA+IHRib2R5IHRyLCAjY3RsU2Vjb25kYXJ5R3JpZCA+IHRib2R5IHRyJywgW10sIChpdGVtcywgYmlsbGluZ0RhdGUpID0+IHtcbiAgICAgICAgICByZXR1cm4gKGl0ZW1zKS5tYXAoKGVsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW5zID0gZWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RkJyk7XG4gICAgICAgICAgICBpZiAoY29sdW1ucy5sZW5ndGggPT09IDYpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwcm9jZXNzZWREYXRlOiBjb2x1bW5zWzBdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBkYXRlOiBjb2x1bW5zWzFdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogY29sdW1uc1syXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxBbW91bnQ6IGNvbHVtbnNbM10uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICAgIGNoYXJnZWRBbW91bnQ6IGNvbHVtbnNbNF0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICAgIG1lbW86IGNvbHVtbnNbNV0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09PSA1KSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcHJvY2Vzc2VkRGF0ZTogYmlsbGluZ0RhdGUsXG4gICAgICAgICAgICAgICAgZGF0ZTogY29sdW1uc1swXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbHVtbnNbMV0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsQW1vdW50OiBjb2x1bW5zWzJdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBjaGFyZ2VkQW1vdW50OiBjb2x1bW5zWzNdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBtZW1vOiBjb2x1bW5zWzRdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCBiaWxsaW5nRGF0ZSk7XG4gICAgICAgIGRlYnVnKGBmZXRjaGVkICR7cmF3VHJhbnNhY3Rpb25zLmxlbmd0aH0gcmF3IHRyYW5zYWN0aW9ucyBmcm9tIHBhZ2VgKTtcbiAgICAgICAgYWNjb3VudFRyYW5zYWN0aW9ucy5wdXNoKC4uLmNvbnZlcnRUcmFuc2FjdGlvbnMoKHJhd1RyYW5zYWN0aW9ucyBhcyBTY3JhcGVkVHJhbnNhY3Rpb25bXSlcbiAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiAhIWl0ZW0pKSk7XG5cbiAgICAgICAgZGVidWcoJ2NoZWNrIGZvciBleGlzdGFuY2Ugb2YgYW5vdGhlciBwYWdlJyk7XG4gICAgICAgIGhhc05leHRQYWdlID0gYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UocGFnZSwgbmV4dFBhZ2VTZWxlY3Rvcik7XG4gICAgICAgIGlmIChoYXNOZXh0UGFnZSkge1xuICAgICAgICAgIGRlYnVnKCdoYXMgYW5vdGhlciBwYWdlLCBjbGljayBvbiBidXR0b24gbmV4dCBhbmQgd2FpdCBmb3IgcGFnZSBuYXZpZ2F0aW9uJyk7XG4gICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgcGFnZS53YWl0Rm9yTmF2aWdhdGlvbih7IHdhaXRVbnRpbDogJ2RvbWNvbnRlbnRsb2FkZWQnIH0pLFxuICAgICAgICAgICAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgJ1tpZCQ9Rm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jdGxHcmlkUGFnZXJfYnRuTmV4dF0nKSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgfSB3aGlsZSAoaGFzTmV4dFBhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGRlYnVnKCdmaWxlciBvdXQgb2xkIHRyYW5zYWN0aW9ucycpO1xuICBjb25zdCB0eG5zID0gZmlsdGVyT2xkVHJhbnNhY3Rpb25zKGFjY291bnRUcmFuc2FjdGlvbnMsIHN0YXJ0RGF0ZSwgc2NyYXBlck9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSk7XG4gIGRlYnVnKGBmb3VuZCAke3R4bnMubGVuZ3RofSB2YWxpZCB0cmFuc2FjdGlvbnMgb3V0IG9mICR7YWNjb3VudFRyYW5zYWN0aW9ucy5sZW5ndGh9IHRyYW5zYWN0aW9ucyBmb3IgYWNjb3VudCBlbmRpbmcgd2l0aCAke2FjY291bnROdW1iZXIuc3Vic3RyaW5nKGFjY291bnROdW1iZXIubGVuZ3RoIC0gMil9YCk7XG4gIHJldHVybiB7XG4gICAgYWNjb3VudE51bWJlcixcbiAgICB0eG5zLFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50TnVtYmVycyhwYWdlOiBQYWdlKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICByZXR1cm4gcGFnZUV2YWxBbGwocGFnZSwgJ1tpZCQ9bG5rSXRlbV0nLCBbXSwgKGVsZW1lbnRzKSA9PiBlbGVtZW50cy5tYXAoKGUpID0+IChlIGFzIEhUTUxBbmNob3JFbGVtZW50KS50ZXh0KSkudGhlbigocmVzKSA9PiByZXMubWFwKCh0ZXh0KSA9PiAvXFxkKyQvLmV4ZWModGV4dC50cmltKCkpPy5bMF0gPz8gJycpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2V0QWNjb3VudChwYWdlOiBQYWdlLCBhY2NvdW50OiBzdHJpbmcpIHtcbiAgYXdhaXQgcGFnZUV2YWxBbGwoXG4gICAgcGFnZSxcbiAgICAnW2lkJD1sbmtJdGVtXScsXG4gICAgbnVsbCxcbiAgICAoZWxlbWVudHMsIGFjY291bnQpID0+IHtcbiAgICAgIGZvciAoY29uc3QgZWxlbSBvZiBlbGVtZW50cykge1xuICAgICAgICBjb25zdCBhID0gZWxlbSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcbiAgICAgICAgaWYgKGEudGV4dC5pbmNsdWRlcyhhY2NvdW50KSkge1xuICAgICAgICAgIGEuY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYWNjb3VudCxcbiAgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQsIHNjcmFwZXJPcHRpb25zOiBTY3JhcGVyT3B0aW9ucyk6IFByb21pc2U8VHJhbnNhY3Rpb25zQWNjb3VudFtdPiB7XG4gIGNvbnN0IGFjY291bnROdW1iZXJzOiBzdHJpbmdbXSA9IGF3YWl0IGdldEFjY291bnROdW1iZXJzKHBhZ2UpO1xuICBjb25zdCBhY2NvdW50czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG5cbiAgZm9yIChjb25zdCBhY2NvdW50IG9mIGFjY291bnROdW1iZXJzKSB7XG4gICAgZGVidWcoYHNldHRpbmcgYWNjb3VudDogJHthY2NvdW50fWApO1xuICAgIGF3YWl0IHNldEFjY291bnQocGFnZSwgYWNjb3VudCk7XG4gICAgYXdhaXQgcGFnZS53YWl0Rm9yVGltZW91dCgxMDAwKTtcbiAgICBhY2NvdW50cy5wdXNoKFxuICAgICAgYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50KFxuICAgICAgICBwYWdlLFxuICAgICAgICBzdGFydERhdGUsXG4gICAgICAgIGFjY291bnQsXG4gICAgICAgIHNjcmFwZXJPcHRpb25zLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGFjY291bnRzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEZ1dHVyZURlYml0cyhwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGZ1dHVyZURlYml0c1NlbGVjdG9yID0gJy5ob21lcGFnZS1iYW5rcy10b3AnO1xuXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBhZ2VFdmFsQWxsKHBhZ2UsIGZ1dHVyZURlYml0c1NlbGVjdG9yLCBbXSwgKGl0ZW1zKSA9PiB7XG4gICAgY29uc3QgZGViaXRNb3VudENsYXNzID0gJ2Ftb3VudCc7XG4gICAgY29uc3QgZGViaXRXaGVuQ2hhcmdlQ2xhc3MgPSAnd2hlbi1jaGFyZ2UnO1xuICAgIGNvbnN0IGRlYml0QmFua051bWJlckNsYXNzID0gJ2JhbmtEZXNjJztcblxuICAgIHJldHVybiBpdGVtcy5tYXAoKGN1cnJCYW5rRWw6IGFueSkgPT4ge1xuICAgICAgY29uc3QgYW1vdW50ID0gY3VyckJhbmtFbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGRlYml0TW91bnRDbGFzcylbMF0uaW5uZXJUZXh0O1xuICAgICAgY29uc3Qgd2hlbkNoYXJnZSA9IGN1cnJCYW5rRWwuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShkZWJpdFdoZW5DaGFyZ2VDbGFzcylbMF0uaW5uZXJUZXh0O1xuICAgICAgY29uc3QgYmFua051bWJlciA9IGN1cnJCYW5rRWwuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShkZWJpdEJhbmtOdW1iZXJDbGFzcylbMF0uaW5uZXJUZXh0O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYW1vdW50LFxuICAgICAgICB3aGVuQ2hhcmdlLFxuICAgICAgICBiYW5rTnVtYmVyLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfSk7XG4gIGNvbnN0IGZ1dHVyZURlYml0cyA9IHJlc3VsdC5tYXAoKGl0ZW0pID0+IHtcbiAgICBjb25zdCBhbW91bnREYXRhID0gZ2V0QW1vdW50RGF0YShpdGVtLmFtb3VudCk7XG4gICAgY29uc3QgY2hhcmdlRGF0ZSA9IC9cXGR7MSwyfVsvXVxcZHsyfVsvXVxcZHsyLDR9Ly5leGVjKGl0ZW0ud2hlbkNoYXJnZSk/LlswXTtcbiAgICBjb25zdCBiYW5rQWNjb3VudE51bWJlciA9IC9cXGQrLVxcZCsvLmV4ZWMoaXRlbS5iYW5rTnVtYmVyKT8uWzBdO1xuICAgIHJldHVybiB7XG4gICAgICBhbW91bnQ6IGFtb3VudERhdGEuYW1vdW50LFxuICAgICAgYW1vdW50Q3VycmVuY3k6IGFtb3VudERhdGEuY3VycmVuY3ksXG4gICAgICBjaGFyZ2VEYXRlLFxuICAgICAgYmFua0FjY291bnROdW1iZXIsXG4gICAgfTtcbiAgfSk7XG4gIHJldHVybiBmdXR1cmVEZWJpdHM7XG59XG5cbmNsYXNzIFZpc2FDYWxTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciB7XG4gIG9wZW5Mb2dpblBvcHVwID0gYXN5bmMgKCkgPT4ge1xuICAgIGRlYnVnKCdvcGVuIGxvZ2luIHBvcHVwLCB3YWl0IHVudGlsIGxvZ2luIGJ1dHRvbiBhdmFpbGFibGUnKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI2NjTG9naW5EZXNrdG9wQnRuJywgdHJ1ZSk7XG4gICAgZGVidWcoJ2NsaWNrIG9uIHRoZSBsb2dpbiBidXR0b24nKTtcbiAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICcjY2NMb2dpbkRlc2t0b3BCdG4nKTtcbiAgICBkZWJ1ZygnZ2V0IHRoZSBmcmFtZSB0aGF0IGhvbGRzIHRoZSBsb2dpbicpO1xuICAgIGNvbnN0IGZyYW1lID0gYXdhaXQgZ2V0TG9naW5GcmFtZSh0aGlzLnBhZ2UpO1xuICAgIGRlYnVnKCd3YWl0IHVudGlsIHRoZSBwYXNzd29yZCBsb2dpbiB0YWIgaGVhZGVyIGlzIGF2YWlsYWJsZScpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChmcmFtZSwgJyNyZWd1bGFyLWxvZ2luJyk7XG4gICAgZGVidWcoJ25hdmlnYXRlIHRvIHRoZSBwYXNzd29yZCBsb2dpbiB0YWInKTtcbiAgICBhd2FpdCBjbGlja0J1dHRvbihmcmFtZSwgJyNyZWd1bGFyLWxvZ2luJyk7XG4gICAgZGVidWcoJ3dhaXQgdW50aWwgdGhlIHBhc3N3b3JkIGxvZ2luIHRhYiBpcyBhY3RpdmUnKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQoZnJhbWUsICdyZWd1bGFyLWxvZ2luJyk7XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH07XG5cbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBgJHtMT0dJTl9VUkx9YCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICdidXR0b25bdHlwZT1cInN1Ym1pdFwiXScsXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCksXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4gd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicpLFxuICAgICAgcHJlQWN0aW9uOiB0aGlzLm9wZW5Mb2dpblBvcHVwLFxuICAgICAgdXNlckFnZW50OiAnTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNzguMC4zOTA0LjEwOCBTYWZhcmkvNTM3LjM2JyxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCk6IFByb21pc2U8U2NhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKS5hZGQoMSwgJ2RheScpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMub3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcbiAgICBkZWJ1ZyhgZmV0Y2ggdHJhbnNhY3Rpb25zIHN0YXJ0aW5nICR7c3RhcnRNb21lbnQuZm9ybWF0KCl9YCk7XG5cbiAgICBkZWJ1ZygnZmV0Y2ggZnV0dXJlIGRlYml0cycpO1xuICAgIGNvbnN0IGZ1dHVyZURlYml0cyA9IGF3YWl0IGZldGNoRnV0dXJlRGViaXRzKHRoaXMucGFnZSk7XG5cbiAgICBkZWJ1ZygnbmF2aWdhdGUgdG8gdHJhbnNhY3Rpb25zIHBhZ2UnKTtcbiAgICBhd2FpdCB0aGlzLm5hdmlnYXRlVG8oVFJBTlNBQ1RJT05TX1VSTCwgdW5kZWZpbmVkLCA2MDAwMCk7XG5cbiAgICBkZWJ1ZygnZmV0Y2ggYWNjb3VudHMgdHJhbnNhY3Rpb25zJyk7XG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBmZXRjaFRyYW5zYWN0aW9ucyh0aGlzLnBhZ2UsIHN0YXJ0TW9tZW50LCB0aGlzLm9wdGlvbnMpO1xuXG4gICAgZGVidWcoJ3JldHVybiB0aGUgc2NyYXBlZCBhY2NvdW50cycpO1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgICBmdXR1cmVEZWJpdHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBWaXNhQ2FsU2NyYXBlcjtcbiJdfQ==
417
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy92aXNhLWNhbC50cyJdLCJuYW1lcyI6WyJMT0dJTl9VUkwiLCJUUkFOU0FDVElPTlNfVVJMIiwiTE9OR19EQVRFX0ZPUk1BVCIsIkRBVEVfRk9STUFUIiwiSW52YWxpZFBhc3N3b3JkTWVzc2FnZSIsImRlYnVnIiwiZ2V0TG9naW5GcmFtZSIsInBhZ2UiLCJmcmFtZSIsImZyYW1lcyIsImZpbmQiLCJmIiwidXJsIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkVycm9yIiwiaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IiLCJlcnJvckZvdW5kIiwiZXJyb3JNZXNzYWdlIiwiaXRlbSIsImlubmVyVGV4dCIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJvcHRpb25zIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNsbiIsInJlcGxhY2UiLCJjdXJyZW5jeSIsImFtb3VudCIsIlNIRUtFTF9DVVJSRU5DWV9TWU1CT0wiLCJwYXJzZUZsb2F0IiwiU0hFS0VMX0NVUlJFTkNZIiwiRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCIsIkRPTExBUl9DVVJSRU5DWSIsIkVVUk9fQ1VSUkVOQ1lfU1lNQk9MIiwiRVVST19DVVJSRU5DWSIsInBhcnRzIiwic3BsaXQiLCJnZXRUcmFuc2FjdGlvbkluc3RhbGxtZW50cyIsIm1lbW8iLCJwYXJzZWRNZW1vIiwiZXhlYyIsImxlbmd0aCIsIm51bWJlciIsInBhcnNlSW50IiwidG90YWwiLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsIm1hcCIsInR4biIsIm9yaWdpbmFsQW1vdW50VHVwbGUiLCJvcmlnaW5hbEFtb3VudCIsImNoYXJnZWRBbW91bnRUdXBsZSIsImNoYXJnZWRBbW91bnQiLCJpbnN0YWxsbWVudHMiLCJ0eG5EYXRlIiwiZGF0ZSIsInByb2Nlc3NlZERhdGVGb3JtYXQiLCJwcm9jZXNzZWREYXRlIiwidHhuUHJvY2Vzc2VkRGF0ZSIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiSW5zdGFsbG1lbnRzIiwiTm9ybWFsIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsImFkZCIsInRvSVNPU3RyaW5nIiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwiZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50Iiwic3RhcnREYXRlIiwiYWNjb3VudE51bWJlciIsInNjcmFwZXJPcHRpb25zIiwic3RhcnREYXRlVmFsdWUiLCJmb3JtYXQiLCJkYXRlU2VsZWN0b3IiLCJkYXRlSGlkZGVuRmllbGRTZWxlY3RvciIsImJ1dHRvblNlbGVjdG9yIiwibmV4dFBhZ2VTZWxlY3RvciIsImJpbGxpbmdMYWJlbFNlbGVjdG9yIiwic2Vjb25kYXJ5QmlsbGluZ0xhYmVsU2VsZWN0b3IiLCJub0RhdGFTZWxlY3RvciIsIml0ZW1zIiwiZWwiLCJzdGFydERhdGVJbmRleCIsImZpbmRJbmRleCIsIm9wdGlvbiIsImFjY291bnRUcmFuc2FjdGlvbnMiLCJjdXJyZW50RGF0ZUluZGV4Iiwid2FpdEZvclRpbWVvdXQiLCJhbGwiLCJ3YWl0Rm9yTmF2aWdhdGlvbiIsIndhaXRVbnRpbCIsInBhZ2VIYXNOb1RyYW5zYWN0aW9ucyIsImVsZW1lbnQiLCJzaXRlVmFsdWUiLCJiaWxsaW5nRGF0ZUxhYmVsIiwic2V0dGxlbWVudERhdGVSZWdleCIsImJpbGxpbmdEYXRlIiwiaGFzTmV4dFBhZ2UiLCJyYXdUcmFuc2FjdGlvbnMiLCJjb2x1bW5zIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJwdXNoIiwiZmlsdGVyIiwib3V0cHV0RGF0YSIsImVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSIsImNvbWJpbmVJbnN0YWxsbWVudHMiLCJzdWJzdHJpbmciLCJnZXRBY2NvdW50TnVtYmVycyIsImVsZW1lbnRzIiwiZSIsInRleHQiLCJ0aGVuIiwicmVzIiwidHJpbSIsInNldEFjY291bnQiLCJhY2NvdW50IiwiZWxlbSIsImEiLCJjbGljayIsImZldGNoVHJhbnNhY3Rpb25zIiwiYWNjb3VudE51bWJlcnMiLCJhY2NvdW50cyIsImZldGNoRnV0dXJlRGViaXRzIiwiZnV0dXJlRGViaXRzU2VsZWN0b3IiLCJkZWJpdE1vdW50Q2xhc3MiLCJkZWJpdFdoZW5DaGFyZ2VDbGFzcyIsImRlYml0QmFua051bWJlckNsYXNzIiwiY3VyckJhbmtFbCIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJ3aGVuQ2hhcmdlIiwiYmFua051bWJlciIsImZ1dHVyZURlYml0cyIsImFtb3VudERhdGEiLCJjaGFyZ2VEYXRlIiwiYmFua0FjY291bnROdW1iZXIiLCJhbW91bnRDdXJyZW5jeSIsIlZpc2FDYWxTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJwb3NzaWJsZVJlc3VsdHMiLCJjaGVja1JlYWRpbmVzcyIsInByZUFjdGlvbiIsIm9wZW5Mb2dpblBvcHVwIiwidXNlckFnZW50IiwiZmV0Y2hEYXRhIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1vbWVudCIsIm1heCIsIm5hdmlnYXRlVG8iLCJ1bmRlZmluZWQiLCJzdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUdBOztBQVFBOztBQUdBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxNQUFNQSxTQUFTLEdBQUcsK0JBQWxCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsdUZBQXpCO0FBQ0EsTUFBTUMs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THdLLE1BQUFBLE9BQU8sRUFBRSxJQURKO0FBRUxuQyxNQUFBQSxRQUZLO0FBR0xVLE1BQUFBO0FBSEssS0FBUDtBQUtEOztBQW5EaUQ7O2VBc0RyQ0ssYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEZyYW1lLCBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luT3B0aW9ucywgTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7XG4gIGNsaWNrQnV0dG9uLCBlbGVtZW50UHJlc2VudE9uUGFnZSwgcGFnZUV2YWwsIHBhZ2VFdmFsQWxsLCBzZXRWYWx1ZSwgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxufSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25JbnN0YWxsbWVudHMsXG4gIFRyYW5zYWN0aW9uc0FjY291bnQsXG4gIFRyYW5zYWN0aW9uU3RhdHVzZXMsXG4gIFRyYW5zYWN0aW9uVHlwZXMsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBTY3JhcGVyT3B0aW9ucywgU2NhcGVyU2NyYXBpbmdSZXN1bHQsIFNjcmFwZXJDcmVkZW50aWFscyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyJztcbmltcG9ydCB7XG4gIERPTExBUl9DVVJSRU5DWSwgRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCwgRVVST19DVVJSRU5DWSwgRVVST19DVVJSRU5DWV9TWU1CT0wsIFNIRUtFTF9DVVJSRU5DWSwgU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCxcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IHdhaXRVbnRpbCB9IGZyb20gJy4uL2hlbHBlcnMvd2FpdGluZyc7XG5pbXBvcnQgeyBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMgfSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuXG5jb25zdCBMT0dJTl9VUkwgPSAnaHR0cHM6Ly93d3cuY2FsLW9ubGluZS5jby5pbC8nO1xuY29uc3QgVFJBTlNBQ1RJT05TX1VSTCA9ICdodHRwczovL3NlcnZpY2VzLmNhbC1vbmxpbmUuY28uaWwvQ2FyZC1Ib2xkZXJzL1NjcmVlbnMvVHJhbnNhY3Rpb25zL1RyYW5zYWN0aW9ucy5hc3B4JztcbmNvbnN0IExPTkdfREFURV9GT1JNQVQgPSAnREQvTU0vWVlZWSc7XG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWSc7XG5jb25zdCBJbnZhbGlkUGFzc3dvcmRNZXNzYWdlID0gJ9ep150g15TXntep16rXntepINeQ15Ug15TXodeZ16HXnteUINep15TXldeW16DXlSDXqdeS15XXmdeZ150nO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCd2aXNhLWNhbCcpO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgZGF0ZTogc3RyaW5nO1xuICBwcm9jZXNzZWREYXRlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIG9yaWdpbmFsQW1vdW50OiBzdHJpbmc7XG4gIGNoYXJnZWRBbW91bnQ6IHN0cmluZztcbiAgbWVtbzogc3RyaW5nO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRMb2dpbkZyYW1lKHBhZ2U6IFBhZ2UpIHtcbiAgbGV0IGZyYW1lOiBGcmFtZSB8IG51bGwgPSBudWxsO1xuICBkZWJ1Zygnd2FpdCB1bnRpbCBsb2dpbiBmcmFtZSBmb3VuZCcpO1xuICBhd2FpdCB3YWl0VW50aWwoKCkgPT4ge1xuICAgIGZyYW1lID0gcGFnZVxuICAgICAgLmZyYW1lcygpXG4gICAgICAuZmluZCgoZikgPT4gZi51cmwoKS5pbmNsdWRlcygnY2FsY29ubmVjdCcpKSB8fCBudWxsO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoISFmcmFtZSk7XG4gIH0sICd3YWl0IGZvciBpZnJhbWUgd2l0aCBsb2dpbiBmb3JtJywgMTAwMDAsIDEwMDApO1xuXG4gIGlmICghZnJhbWUpIHtcbiAgICBkZWJ1ZygnZmFpbGVkIHRvIGZpbmQgbG9naW4gZnJhbWUgZm9yIDEwIHNlY29uZHMnKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byBleHRyYWN0IGxvZ2luIGlmcmFtZScpO1xuICB9XG5cbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNJbnZhbGlkUGFzc3dvcmRFcnJvcihwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGZyYW1lID0gYXdhaXQgZ2V0TG9naW5GcmFtZShwYWdlKTtcbiAgY29uc3QgZXJyb3JGb3VuZCA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKGZyYW1lLCAnZGl2LmdlbmVyYWwtZXJyb3IgPiBkaXYnKTtcbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3JGb3VuZCA/IGF3YWl0IHBhZ2VFdmFsKGZyYW1lLCAnZGl2LmdlbmVyYWwtZXJyb3IgPiBkaXYnLCAnJywgKGl0ZW0pID0+IHtcbiAgICByZXR1cm4gKGl0ZW0gYXMgSFRNTERpdkVsZW1lbnQpLmlubmVyVGV4dDtcbiAgfSkgOiAnJztcbiAgcmV0dXJuIGVycm9yTWVzc2FnZSA9PT0gSW52YWxpZFBhc3N3b3JkTWVzc2FnZTtcbn1cblxuZnVuY3Rpb24gZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKSB7XG4gIGRlYnVnKCdyZXR1cm4gcG9zc2libGUgbG9naW4gcmVzdWx0cycpO1xuICBjb25zdCB1cmxzOiBMb2dpbk9wdGlvbnNbJ3Bvc3NpYmxlUmVzdWx0cyddID0ge1xuICAgIFtMb2dpblJlc3VsdHMuU3VjY2Vzc106IFsvQWNjb3VudE1hbmFnZW1lbnQvaV0sXG4gICAgW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdOiBbYXN5bmMgKG9wdGlvbnM/OiB7IHBhZ2U/OiBQYWdlfSkgPT4ge1xuICAgICAgY29uc3QgcGFnZSA9IG9wdGlvbnM/LnBhZ2U7XG4gICAgICBpZiAoIXBhZ2UpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhhc0ludmFsaWRQYXNzd29yZEVycm9yKHBhZ2UpO1xuICAgIH1dLFxuICAgIC8vIFtMb2dpblJlc3VsdHMuQWNjb3VudEJsb2NrZWRdOiBbXSwgLy8gVE9ETyBhZGQgd2hlbiByZWFjaGluZyB0aGlzIHNjZW5hcmlvXG4gICAgLy8gW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF06IFtdLCAvLyBUT0RPIGFkZCB3aGVuIHJlYWNoaW5nIHRoaXMgc2NlbmFyaW9cbiAgfTtcbiAgcmV0dXJuIHVybHM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpIHtcbiAgZGVidWcoJ2NyZWF0ZSBsb2dpbiBmaWVsZHMgZm9yIHVzZXJuYW1lIGFuZCBwYXNzd29yZCcpO1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICdbZm9ybWNvbnRyb2xuYW1lPVwidXNlck5hbWVcIl0nLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnW2Zvcm1jb250cm9sbmFtZT1cInBhc3N3b3JkXCJdJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cblxuZnVuY3Rpb24gZ2V0QW1vdW50RGF0YShhbW91bnRTdHI6IHN0cmluZykge1xuICBjb25zdCBhbW91bnRTdHJDbG4gPSBhbW91bnRTdHIucmVwbGFjZSgnLCcsICcnKTtcbiAgbGV0IGN1cnJlbmN5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgbGV0IGFtb3VudDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGlmIChhbW91bnRTdHJDbG4uaW5jbHVkZXMoU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSAtcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MLCAnJykpO1xuICAgIGN1cnJlbmN5ID0gU0hFS0VMX0NVUlJFTkNZO1xuICB9IGVsc2UgaWYgKGFtb3VudFN0ckNsbi5pbmNsdWRlcyhET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MKSkge1xuICAgIGFtb3VudCA9IC1wYXJzZUZsb2F0KGFtb3VudFN0ckNsbi5yZXBsYWNlKERPTExBUl9DVVJSRU5DWV9TWU1CT0wsICcnKSk7XG4gICAgY3VycmVuY3kgPSBET0xMQVJfQ1VSUkVOQ1k7XG4gIH0gZWxzZSBpZiAoYW1vdW50U3RyQ2xuLmluY2x1ZGVzKEVVUk9fQ1VSUkVOQ1lfU1lNQk9MKSkge1xuICAgIGFtb3VudCA9IC1wYXJzZUZsb2F0KGFtb3VudFN0ckNsbi5yZXBsYWNlKEVVUk9fQ1VSUkVOQ1lfU1lNQk9MLCAnJykpO1xuICAgIGN1cnJlbmN5ID0gRVVST19DVVJSRU5DWTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBwYXJ0cyA9IGFtb3VudFN0ckNsbi5zcGxpdCgnICcpO1xuICAgIFtjdXJyZW5jeV0gPSBwYXJ0cztcbiAgICBhbW91bnQgPSAtcGFyc2VGbG9hdChwYXJ0c1sxXSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFtb3VudCxcbiAgICBjdXJyZW5jeSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25JbnN0YWxsbWVudHMobWVtbzogc3RyaW5nKTogVHJhbnNhY3Rpb25JbnN0YWxsbWVudHMgfCBudWxsIHtcbiAgY29uc3QgcGFyc2VkTWVtbyA9ICgv16rXqdec15XXnSAoXFxkKykg157XqteV15ogKFxcZCspLykuZXhlYyhtZW1vIHx8ICcnKTtcblxuICBpZiAoIXBhcnNlZE1lbW8gfHwgcGFyc2VkTWVtby5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbnVtYmVyOiBwYXJzZUludChwYXJzZWRNZW1vWzFdLCAxMCksXG4gICAgdG90YWw6IHBhcnNlSW50KHBhcnNlZE1lbW9bMl0sIDEwKSxcbiAgfTtcbn1cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgZGVidWcoYGNvbnZlcnQgJHt0eG5zLmxlbmd0aH0gcmF3IHRyYW5zYWN0aW9ucyB0byBvZmZpY2lhbCBUcmFuc2FjdGlvbiBzdHJ1Y3R1cmVgKTtcbiAgcmV0dXJuIHR4bnMubWFwKCh0eG4pID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbEFtb3VudFR1cGxlID0gZ2V0QW1vdW50RGF0YSh0eG4ub3JpZ2luYWxBbW91bnQgfHwgJycpO1xuICAgIGNvbnN0IGNoYXJnZWRBbW91bnRUdXBsZSA9IGdldEFtb3VudERhdGEodHhuLmNoYXJnZWRBbW91bnQgfHwgJycpO1xuXG4gICAgY29uc3QgaW5zdGFsbG1lbnRzID0gZ2V0VHJhbnNhY3Rpb25JbnN0YWxsbWVudHModHhuLm1lbW8pO1xuICAgIGNvbnN0IHR4bkRhdGUgPSBtb21lbnQodHhuLmRhdGUsIERBVEVfRk9STUFUKTtcbiAgICBjb25zdCBwcm9jZXNzZWREYXRlRm9ybWF0ID1cbiAgICAgIHR4bi5wcm9jZXNzZWREYXRlLmxlbmd0aCA9PT0gOCA/XG4gICAgICAgIERBVEVfRk9STUFUIDpcbiAgICAgICAgdHhuLnByb2Nlc3NlZERhdGUubGVuZ3RoID09PSA5IHx8IHR4bi5wcm9jZXNzZWREYXRlLmxlbmd0aCA9PT0gMTAgP1xuICAgICAgICAgIExPTkdfREFURV9GT1JNQVQgOlxuICAgICAgICAgIG51bGw7XG4gICAgaWYgKCFwcm9jZXNzZWREYXRlRm9ybWF0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcHJvY2Vzc2VkIGRhdGUnKTtcbiAgICB9XG4gICAgY29uc3QgdHhuUHJvY2Vzc2VkRGF0ZSA9IG1vbWVudCh0eG4ucHJvY2Vzc2VkRGF0ZSwgcHJvY2Vzc2VkRGF0ZUZvcm1hdCk7XG5cbiAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uID0ge1xuICAgICAgdHlwZTogaW5zdGFsbG1lbnRzID8gVHJhbnNhY3Rpb25UeXBlcy5JbnN0YWxsbWVudHMgOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsXG4gICAgICBkYXRlOiBpbnN0YWxsbWVudHMgPyB0eG5EYXRlLmFkZChpbnN0YWxsbWVudHMubnVtYmVyIC0gMSwgJ21vbnRoJykudG9JU09TdHJpbmcoKSA6IHR4bkRhdGUudG9JU09TdHJpbmcoKSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IHR4blByb2Nlc3NlZERhdGUudG9JU09TdHJpbmcoKSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiBvcmlnaW5hbEFtb3VudFR1cGxlLmFtb3VudCxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IG9yaWdpbmFsQW1vdW50VHVwbGUuY3VycmVuY3ksXG4gICAgICBjaGFyZ2VkQW1vdW50OiBjaGFyZ2VkQW1vdW50VHVwbGUuYW1vdW50LFxuICAgICAgY2hhcmdlZEN1cnJlbmN5OiBjaGFyZ2VkQW1vdW50VHVwbGUuY3VycmVuY3ksXG4gICAgICBkZXNjcmlwdGlvbjogdHhuLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgbWVtbzogdHhuLm1lbW8gfHwgJycsXG4gICAgfTtcblxuICAgIGlmIChpbnN0YWxsbWVudHMpIHtcbiAgICAgIHJlc3VsdC5pbnN0YWxsbWVudHMgPSBpbnN0YWxsbWVudHM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zRm9yQWNjb3VudChwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCwgYWNjb3VudE51bWJlcjogc3RyaW5nLCBzY3JhcGVyT3B0aW9uczogU2NyYXBlck9wdGlvbnMpOiBQcm9taXNlPFRyYW5zYWN0aW9uc0FjY291bnQ+IHtcbiAgY29uc3Qgc3RhcnREYXRlVmFsdWUgPSBzdGFydERhdGUuZm9ybWF0KCdNTS9ZWVlZJyk7XG4gIGNvbnN0IGRhdGVTZWxlY3RvciA9ICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jbG5kckRlYml0RGF0ZVNjb3BlX1RleHRCb3hcIl0nO1xuICBjb25zdCBkYXRlSGlkZGVuRmllbGRTZWxlY3RvciA9ICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jbG5kckRlYml0RGF0ZVNjb3BlX0hpZGRlbkZpZWxkXCJdJztcbiAgY29uc3QgYnV0dG9uU2VsZWN0b3IgPSAnW2lkJD1cIkZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsU3VibWl0UmVxdWVzdFwiXSc7XG4gIGNvbnN0IG5leHRQYWdlU2VsZWN0b3IgPSAnW2lkJD1cIkZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsR3JpZFBhZ2VyX2J0bk5leHRcIl0nO1xuICBjb25zdCBiaWxsaW5nTGFiZWxTZWxlY3RvciA9ICdbaWQkPUZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsTWFpblRvb2xCYXJfbGJsQ2FwdGlvbl0nO1xuICBjb25zdCBzZWNvbmRhcnlCaWxsaW5nTGFiZWxTZWxlY3RvciA9ICdbaWQkPUZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsU2Vjb25kYXJ5VG9vbEJhcl9sYmxDYXB0aW9uXSc7XG4gIGNvbnN0IG5vRGF0YVNlbGVjdG9yID0gJ1tpZCQ9Rm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9tc2dib3hFcnJvck1lc3NhZ2VzXSc7XG5cbiAgZGVidWcoJ2ZpbmQgdGhlIHN0YXJ0IGRhdGUgaW5kZXggaW4gdGhlIGRyb3Bib3gnKTtcbiAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IHBhZ2VFdmFsQWxsKHBhZ2UsICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jbG5kckRlYml0RGF0ZVNjb3BlX09wdGlvbkxpc3RcIl0gbGknLCBbXSwgKGl0ZW1zKSA9PiB7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoZWw6IGFueSkgPT4gZWwuaW5uZXJUZXh0KTtcbiAgfSk7XG4gIGNvbnN0IHN0YXJ0RGF0ZUluZGV4ID0gb3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uID09PSBzdGFydERhdGVWYWx1ZSk7XG5cbiAgZGVidWcoYHNjcmFwZSAke29wdGlvbnMubGVuZ3RoIC0gc3RhcnREYXRlSW5kZXh9IGJpbGxpbmcgY3ljbGVzYCk7XG4gIGNvbnN0IGFjY291bnRUcmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10gPSBbXTtcbiAgZm9yIChsZXQgY3VycmVudERhdGVJbmRleCA9IHN0YXJ0RGF0ZUluZGV4OyBjdXJyZW50RGF0ZUluZGV4IDwgb3B0aW9ucy5sZW5ndGg7IGN1cnJlbnREYXRlSW5kZXggKz0gMSkge1xuICAgIGRlYnVnKCd3YWl0IGZvciBkYXRlIHNlbGVjdG9yIHRvIGJlIGZvdW5kJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIGRhdGVTZWxlY3RvciwgdHJ1ZSk7XG4gICAgZGVidWcoYHNldCBoaWRkZW4gdmFsdWUgb2YgdGhlIGRhdGUgc2VsZWN0b3IgdG8gYmUgdGhlIGluZGV4ICR7Y3VycmVudERhdGVJbmRleH1gKTtcbiAgICBhd2FpdCBzZXRWYWx1ZShwYWdlLCBkYXRlSGlkZGVuRmllbGRTZWxlY3RvciwgYCR7Y3VycmVudERhdGVJbmRleH1gKTtcbiAgICBkZWJ1Zygnd2FpdCBhIHNlY29uZCB0byB3b3JrYXJvdW5kIG5hdmlnYXRpb24gaXNzdWUgaW4gaGVhZGxlc3MgYnJvd3NlciBtb2RlJyk7XG4gICAgYXdhaXQgcGFnZS53YWl0Rm9yVGltZW91dCgxMDAwKTtcbiAgICBkZWJ1ZygnY2xpY2sgb24gdGhlIGZpbHRlciBzdWJtaXQgYnV0dG9uIGFuZCB3YWl0IGZvciBuYXZpZ2F0aW9uJyk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgcGFnZS53YWl0Rm9yTmF2aWdhdGlvbih7IHdhaXRVbnRpbDogJ2RvbWNvbnRlbnRsb2FkZWQnIH0pLFxuICAgICAgY2xpY2tCdXR0b24ocGFnZSwgYnV0dG9uU2VsZWN0b3IpLFxuICAgIF0pO1xuICAgIGRlYnVnKCdjaGVjayBpZiBtb250aCBoYXMgbm8gdHJhbnNhY3Rpb25zJyk7XG4gICAgY29uc3QgcGFnZUhhc05vVHJhbnNhY3Rpb25zID0gYXdhaXQgcGFnZUV2YWwocGFnZSwgbm9EYXRhU2VsZWN0b3IsIGZhbHNlLCAoKGVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IHNpdGVWYWx1ZSA9ICgoZWxlbWVudCBhcyBIVE1MU3BhbkVsZW1lbnQpLmlubmVyVGV4dCB8fCAnJykucmVwbGFjZSgvW14g15At16pdL2csICcnKTtcbiAgICAgIHJldHVybiBzaXRlVmFsdWUgPT09ICfXnNeQINeg157XpteQ15Ug16DXqteV16DXmdedJztcbiAgICB9KSk7XG5cbiAgICBpZiAocGFnZUhhc05vVHJhbnNhY3Rpb25zKSB7XG4gICAgICBkZWJ1ZygncGFnZSBoYXMgbm8gdHJhbnNhY3Rpb25zJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCdmaW5kIHRoZSBiaWxsaW5nIGRhdGUnKTtcbiAgICAgIGxldCBiaWxsaW5nRGF0ZUxhYmVsID0gYXdhaXQgcGFnZUV2YWwocGFnZSwgYmlsbGluZ0xhYmVsU2VsZWN0b3IsICcnLCAoKGVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIChlbGVtZW50IGFzIEhUTUxTcGFuRWxlbWVudCkuaW5uZXJUZXh0O1xuICAgICAgfSkpO1xuICAgICAgbGV0IHNldHRsZW1lbnREYXRlUmVnZXggPSAvXFxkezEsMn1bL11cXGR7Mn1bL11cXGR7Miw0fS87XG5cbiAgICAgIGlmIChiaWxsaW5nRGF0ZUxhYmVsID09PSAnJykge1xuICAgICAgICBiaWxsaW5nRGF0ZUxhYmVsID0gYXdhaXQgcGFnZUV2YWwocGFnZSwgc2Vjb25kYXJ5QmlsbGluZ0xhYmVsU2VsZWN0b3IsICcnLCAoKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICByZXR1cm4gKGVsZW1lbnQgYXMgSFRNTFNwYW5FbGVtZW50KS5pbm5lclRleHQ7XG4gICAgICAgIH0pKTtcbiAgICAgICAgc2V0dGxlbWVudERhdGVSZWdleCA9IC9cXGR7MSwyfVsvXVxcZHsyLDR9LztcbiAgICAgIH1cblxuICAgICAgY29uc3QgYmlsbGluZ0RhdGUgPSBzZXR0bGVtZW50RGF0ZVJlZ2V4LmV4ZWMoYmlsbGluZ0RhdGVMYWJlbCk/LlswXTtcblxuICAgICAgaWYgKCFiaWxsaW5nRGF0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byBmZXRjaCBwcm9jZXNzIGRhdGUnKTtcbiAgICAgIH1cblxuICAgICAgZGVidWcoYGZvdW5kIHRoZSBiaWxsaW5nIGRhdGUgZm9yIHRoYXQgbW9udGggJHtiaWxsaW5nRGF0ZX1gKTtcbiAgICAgIGxldCBoYXNOZXh0UGFnZSA9IGZhbHNlO1xuICAgICAgZG8ge1xuICAgICAgICBkZWJ1ZygnZmV0Y2ggcmF3IHRyYW5zYWN0aW9ucyBmcm9tIHBhZ2UnKTtcbiAgICAgICAgY29uc3QgcmF3VHJhbnNhY3Rpb25zID0gYXdhaXQgcGFnZUV2YWxBbGw8KFNjcmFwZWRUcmFuc2FjdGlvbiB8IG51bGwpW10+KHBhZ2UsICcjY3RsTWFpbkdyaWQgPiB0Ym9keSB0ciwgI2N0bFNlY29uZGFyeUdyaWQgPiB0Ym9keSB0cicsIFtdLCAoaXRlbXMsIGJpbGxpbmdEYXRlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChpdGVtcykubWFwKChlbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29sdW1ucyA9IGVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZCcpO1xuICAgICAgICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09PSA2KSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcHJvY2Vzc2VkRGF0ZTogY29sdW1uc1swXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgZGF0ZTogY29sdW1uc1sxXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbHVtbnNbMl0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsQW1vdW50OiBjb2x1bW5zWzNdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBjaGFyZ2VkQW1vdW50OiBjb2x1bW5zWzRdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBtZW1vOiBjb2x1bW5zWzVdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb2x1bW5zLmxlbmd0aCA9PT0gNSkge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHByb2Nlc3NlZERhdGU6IGJpbGxpbmdEYXRlLFxuICAgICAgICAgICAgICAgIGRhdGU6IGNvbHVtbnNbMF0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjb2x1bW5zWzFdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBvcmlnaW5hbEFtb3VudDogY29sdW1uc1syXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgY2hhcmdlZEFtb3VudDogY29sdW1uc1szXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgbWVtbzogY29sdW1uc1s0XS5pbm5lclRleHQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSwgYmlsbGluZ0RhdGUpO1xuICAgICAgICBkZWJ1ZyhgZmV0Y2hlZCAke3Jhd1RyYW5zYWN0aW9ucy5sZW5ndGh9IHJhdyB0cmFuc2FjdGlvbnMgZnJvbSBwYWdlYCk7XG4gICAgICAgIGFjY291bnRUcmFuc2FjdGlvbnMucHVzaCguLi5jb252ZXJ0VHJhbnNhY3Rpb25zKChyYXdUcmFuc2FjdGlvbnMgYXMgU2NyYXBlZFRyYW5zYWN0aW9uW10pXG4gICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gISFpdGVtKSkpO1xuXG4gICAgICAgIGRlYnVnKCdjaGVjayBmb3IgZXhpc3RhbmNlIG9mIGFub3RoZXIgcGFnZScpO1xuICAgICAgICBoYXNOZXh0UGFnZSA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIG5leHRQYWdlU2VsZWN0b3IpO1xuICAgICAgICBpZiAoaGFzTmV4dFBhZ2UpIHtcbiAgICAgICAgICBkZWJ1ZygnaGFzIGFub3RoZXIgcGFnZSwgY2xpY2sgb24gYnV0dG9uIG5leHQgYW5kIHdhaXQgZm9yIHBhZ2UgbmF2aWdhdGlvbicpO1xuICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgIHBhZ2Uud2FpdEZvck5hdmlnYXRpb24oeyB3YWl0VW50aWw6ICdkb21jb250ZW50bG9hZGVkJyB9KSxcbiAgICAgICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsICdbaWQkPUZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsR3JpZFBhZ2VyX2J0bk5leHRdJyksXG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgIH0gd2hpbGUgKGhhc05leHRQYWdlKTtcbiAgICB9XG4gIH1cblxuICBkZWJ1ZygnZmlsZXIgb3V0IG9sZCB0cmFuc2FjdGlvbnMnKTtcbiAgY29uc3QgdHhucyA9IChzY3JhcGVyT3B0aW9ucy5vdXRwdXREYXRhPy5lbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUgPz8gdHJ1ZSkgP1xuICAgIGZpbHRlck9sZFRyYW5zYWN0aW9ucyhhY2NvdW50VHJhbnNhY3Rpb25zLCBzdGFydERhdGUsIHNjcmFwZXJPcHRpb25zLmNvbWJpbmVJbnN0YWxsbWVudHMgfHwgZmFsc2UpIDpcbiAgICBhY2NvdW50VHJhbnNhY3Rpb25zO1xuICBkZWJ1ZyhgZm91bmQgJHt0eG5zLmxlbmd0aH0gdmFsaWQgdHJhbnNhY3Rpb25zIG91dCBvZiAke2FjY291bnRUcmFuc2FjdGlvbnMubGVuZ3RofSB0cmFuc2FjdGlvbnMgZm9yIGFjY291bnQgZW5kaW5nIHdpdGggJHthY2NvdW50TnVtYmVyLnN1YnN0cmluZyhhY2NvdW50TnVtYmVyLmxlbmd0aCAtIDIpfWApO1xuICByZXR1cm4ge1xuICAgIGFjY291bnROdW1iZXIsXG4gICAgdHhucyxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWNjb3VudE51bWJlcnMocGFnZTogUGFnZSk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgcmV0dXJuIHBhZ2VFdmFsQWxsKHBhZ2UsICdbaWQkPWxua0l0ZW1dJywgW10sIChlbGVtZW50cykgPT4gZWxlbWVudHMubWFwKChlKSA9PiAoZSBhcyBIVE1MQW5jaG9yRWxlbWVudCkudGV4dCkpLnRoZW4oKHJlcykgPT4gcmVzLm1hcCgodGV4dCkgPT4gL1xcZCskLy5leGVjKHRleHQudHJpbSgpKT8uWzBdID8/ICcnKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNldEFjY291bnQocGFnZTogUGFnZSwgYWNjb3VudDogc3RyaW5nKSB7XG4gIGF3YWl0IHBhZ2VFdmFsQWxsKFxuICAgIHBhZ2UsXG4gICAgJ1tpZCQ9bG5rSXRlbV0nLFxuICAgIG51bGwsXG4gICAgKGVsZW1lbnRzLCBhY2NvdW50KSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGVsZW0gb2YgZWxlbWVudHMpIHtcbiAgICAgICAgY29uc3QgYSA9IGVsZW0gYXMgSFRNTEFuY2hvckVsZW1lbnQ7XG4gICAgICAgIGlmIChhLnRleHQuaW5jbHVkZXMoYWNjb3VudCkpIHtcbiAgICAgICAgICBhLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIGFjY291bnQsXG4gICk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50LCBzY3JhcGVyT3B0aW9uczogU2NyYXBlck9wdGlvbnMpOiBQcm9taXNlPFRyYW5zYWN0aW9uc0FjY291bnRbXT4ge1xuICBjb25zdCBhY2NvdW50TnVtYmVyczogc3RyaW5nW10gPSBhd2FpdCBnZXRBY2NvdW50TnVtYmVycyhwYWdlKTtcbiAgY29uc3QgYWNjb3VudHM6IFRyYW5zYWN0aW9uc0FjY291bnRbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgYWNjb3VudCBvZiBhY2NvdW50TnVtYmVycykge1xuICAgIGRlYnVnKGBzZXR0aW5nIGFjY291bnQ6ICR7YWNjb3VudH1gKTtcbiAgICBhd2FpdCBzZXRBY2NvdW50KHBhZ2UsIGFjY291bnQpO1xuICAgIGF3YWl0IHBhZ2Uud2FpdEZvclRpbWVvdXQoMTAwMCk7XG4gICAgYWNjb3VudHMucHVzaChcbiAgICAgIGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zRm9yQWNjb3VudChcbiAgICAgICAgcGFnZSxcbiAgICAgICAgc3RhcnREYXRlLFxuICAgICAgICBhY2NvdW50LFxuICAgICAgICBzY3JhcGVyT3B0aW9ucyxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBhY2NvdW50cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hGdXR1cmVEZWJpdHMocGFnZTogUGFnZSkge1xuICBjb25zdCBmdXR1cmVEZWJpdHNTZWxlY3RvciA9ICcuaG9tZXBhZ2UtYmFua3MtdG9wJztcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYWdlRXZhbEFsbChwYWdlLCBmdXR1cmVEZWJpdHNTZWxlY3RvciwgW10sIChpdGVtcykgPT4ge1xuICAgIGNvbnN0IGRlYml0TW91bnRDbGFzcyA9ICdhbW91bnQnO1xuICAgIGNvbnN0IGRlYml0V2hlbkNoYXJnZUNsYXNzID0gJ3doZW4tY2hhcmdlJztcbiAgICBjb25zdCBkZWJpdEJhbmtOdW1iZXJDbGFzcyA9ICdiYW5rRGVzYyc7XG5cbiAgICByZXR1cm4gaXRlbXMubWFwKChjdXJyQmFua0VsOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGFtb3VudCA9IGN1cnJCYW5rRWwuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShkZWJpdE1vdW50Q2xhc3MpWzBdLmlubmVyVGV4dDtcbiAgICAgIGNvbnN0IHdoZW5DaGFyZ2UgPSBjdXJyQmFua0VsLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZGViaXRXaGVuQ2hhcmdlQ2xhc3MpWzBdLmlubmVyVGV4dDtcbiAgICAgIGNvbnN0IGJhbmtOdW1iZXIgPSBjdXJyQmFua0VsLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZGViaXRCYW5rTnVtYmVyQ2xhc3MpWzBdLmlubmVyVGV4dDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFtb3VudCxcbiAgICAgICAgd2hlbkNoYXJnZSxcbiAgICAgICAgYmFua051bWJlcixcbiAgICAgIH07XG4gICAgfSk7XG4gIH0pO1xuICBjb25zdCBmdXR1cmVEZWJpdHMgPSByZXN1bHQubWFwKChpdGVtKSA9PiB7XG4gICAgY29uc3QgYW1vdW50RGF0YSA9IGdldEFtb3VudERhdGEoaXRlbS5hbW91bnQpO1xuICAgIGNvbnN0IGNoYXJnZURhdGUgPSAvXFxkezEsMn1bL11cXGR7Mn1bL11cXGR7Miw0fS8uZXhlYyhpdGVtLndoZW5DaGFyZ2UpPy5bMF07XG4gICAgY29uc3QgYmFua0FjY291bnROdW1iZXIgPSAvXFxkKy1cXGQrLy5leGVjKGl0ZW0uYmFua051bWJlcik/LlswXTtcbiAgICByZXR1cm4ge1xuICAgICAgYW1vdW50OiBhbW91bnREYXRhLmFtb3VudCxcbiAgICAgIGFtb3VudEN1cnJlbmN5OiBhbW91bnREYXRhLmN1cnJlbmN5LFxuICAgICAgY2hhcmdlRGF0ZSxcbiAgICAgIGJhbmtBY2NvdW50TnVtYmVyLFxuICAgIH07XG4gIH0pO1xuICByZXR1cm4gZnV0dXJlRGViaXRzO1xufVxuXG5jbGFzcyBWaXNhQ2FsU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBvcGVuTG9naW5Qb3B1cCA9IGFzeW5jICgpID0+IHtcbiAgICBkZWJ1Zygnb3BlbiBsb2dpbiBwb3B1cCwgd2FpdCB1bnRpbCBsb2dpbiBidXR0b24gYXZhaWxhYmxlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicsIHRydWUpO1xuICAgIGRlYnVnKCdjbGljayBvbiB0aGUgbG9naW4gYnV0dG9uJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnI2NjTG9naW5EZXNrdG9wQnRuJyk7XG4gICAgZGVidWcoJ2dldCB0aGUgZnJhbWUgdGhhdCBob2xkcyB0aGUgbG9naW4nKTtcbiAgICBjb25zdCBmcmFtZSA9IGF3YWl0IGdldExvZ2luRnJhbWUodGhpcy5wYWdlKTtcbiAgICBkZWJ1Zygnd2FpdCB1bnRpbCB0aGUgcGFzc3dvcmQgbG9naW4gdGFiIGhlYWRlciBpcyBhdmFpbGFibGUnKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQoZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCduYXZpZ2F0ZSB0byB0aGUgcGFzc3dvcmQgbG9naW4gdGFiJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24oZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCd3YWl0IHVudGlsIHRoZSBwYXNzd29yZCBsb2dpbiB0YWIgaXMgYWN0aXZlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKGZyYW1lLCAncmVndWxhci1sb2dpbicpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9O1xuXG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPikge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogYCR7TE9HSU5fVVJMfWAsXG4gICAgICBmaWVsZHM6IGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzKSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiAnYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0nLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgICAgY2hlY2tSZWFkaW5lc3M6IGFzeW5jICgpID0+IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjY2NMb2dpbkRlc2t0b3BCdG4nKSxcbiAgICAgIHByZUFjdGlvbjogdGhpcy5vcGVuTG9naW5Qb3B1cCxcbiAgICAgIHVzZXJBZ2VudDogJ01vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzc4LjAuMzkwNC4xMDggU2FmYXJpLzUzNy4zNicsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG4gICAgZGVidWcoYGZldGNoIHRyYW5zYWN0aW9ucyBzdGFydGluZyAke3N0YXJ0TW9tZW50LmZvcm1hdCgpfWApO1xuXG4gICAgZGVidWcoJ2ZldGNoIGZ1dHVyZSBkZWJpdHMnKTtcbiAgICBjb25zdCBmdXR1cmVEZWJpdHMgPSBhd2FpdCBmZXRjaEZ1dHVyZURlYml0cyh0aGlzLnBhZ2UpO1xuXG4gICAgZGVidWcoJ25hdmlnYXRlIHRvIHRyYW5zYWN0aW9ucyBwYWdlJyk7XG4gICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZVRvKFRSQU5TQUNUSU9OU19VUkwsIHVuZGVmaW5lZCwgNjAwMDApO1xuXG4gICAgZGVidWcoJ2ZldGNoIGFjY291bnRzIHRyYW5zYWN0aW9ucycpO1xuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCBzdGFydE1vbWVudCwgdGhpcy5vcHRpb25zKTtcblxuICAgIGRlYnVnKCdyZXR1cm4gdGhlIHNjcmFwZWQgYWNjb3VudHMnKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgICAgZnV0dXJlRGViaXRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVmlzYUNhbFNjcmFwZXI7XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "israeli-bank-scrapers",
3
- "version": "3.1.2",
3
+ "version": "3.3.0",
4
4
  "private": false,
5
5
  "description": "Provide scrapers for all major Israeli banks and credit card companies",
6
6
  "engines": {