israeli-bank-scrapers 4.1.0 → 4.1.1

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.
@@ -23,8 +23,11 @@ var _transactions = require("../transactions");
23
23
 
24
24
  var _navigation = require("../helpers/navigation");
25
25
 
26
+ var _debug = require("../helpers/debug");
27
+
26
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
29
 
30
+ const debug = (0, _debug.getDebug)('leumi');
28
31
  const BASE_URL = 'https://hb2.bankleumi.co.il';
29
32
  const LOGIN_URL = 'https://www.leumi.co.il/';
30
33
  const TRANSACTIONS_URL = `${BASE_URL}/eBanking/SO/SPA.aspx#/ts/BusinessAccountTrx?WidgetPar=1`;
@@ -179,12 +182,20 @@ async function fetchTransactions(page, startDate) {
179
182
  }
180
183
 
181
184
  async function navigateToLogin(page) {
182
- const loginButtonSelector = '#enter_your_account a';
185
+ const loginButtonSelector = '.enter-account a[aria-label*="כניסה לחשבונך"]';
186
+ debug('wait for homepage to click on login button');
183
187
  await (0, _elementsInteractions.waitUntilElementFound)(page, loginButtonSelector);
184
- await (0, _elementsInteractions.clickButton)(page, loginButtonSelector);
188
+ debug('navigate to login page');
189
+ const loginUrl = await (0, _elementsInteractions.pageEval)(page, loginButtonSelector, null, element => {
190
+ return element.href;
191
+ });
192
+ debug(`navigating to page (${loginUrl})`);
193
+ page.goto(loginUrl);
194
+ debug('waiting for page to be loaded (networkidle2)');
185
195
  await (0, _navigation.waitForNavigation)(page, {
186
196
  waitUntil: 'networkidle2'
187
197
  });
198
+ debug('waiting for components of login to enter credentials');
188
199
  await Promise.all([(0, _elementsInteractions.waitUntilElementFound)(page, 'input[placeholder="שם משתמש"]', true), (0, _elementsInteractions.waitUntilElementFound)(page, 'input[placeholder="סיסמה"]', true), (0, _elementsInteractions.waitUntilElementFound)(page, 'button[type="submit"]', true)]);
189
200
  }
190
201
 
@@ -224,4 +235,4 @@ class LeumiScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
224
235
 
225
236
  var _default = LeumiScraper;
226
237
  exports.default = _default;
227
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9sZXVtaS50cyJdLCJuYW1lcyI6WyJCQVNFX1VSTCIsIkxPR0lOX1VSTCIsIlRSQU5TQUNUSU9OU19VUkwiLCJGSUxURVJFRF9UUkFOU0FDVElPTlNfVVJMIiwiREFURV9GT1JNQVQiLCJBQ0NPVU5UX0JMT0NLRURfTVNHIiwiSU5WQUxJRF9QQVNTV09SRF9NU0ciLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwib3B0aW9ucyIsInBhZ2UiLCJFcnJvciIsImVycm9yTWVzc2FnZSIsImVsZW1lbnQiLCJwYXJlbnRFbGVtZW50IiwiY2hpbGRyZW4iLCJpbm5lclRleHQiLCJzdGFydHNXaXRoIiwiQWNjb3VudEJsb2NrZWQiLCJsYWJlbCIsIkNoYW5nZVBhc3N3b3JkIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZXh0cmFjdFRyYW5zYWN0aW9uc0Zyb21QYWdlIiwidHJhbnNhY3Rpb25zIiwic3RhdHVzIiwibGVuZ3RoIiwicmVzdWx0IiwibWFwIiwicmF3VHJhbnNhY3Rpb24iLCJkYXRlIiwiRGF0ZVVUQyIsIm1pbGxpc2Vjb25kcyIsInRvSVNPU3RyaW5nIiwibmV3VHJhbnNhY3Rpb24iLCJ0eXBlIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsInByb2Nlc3NlZERhdGUiLCJkZXNjcmlwdGlvbiIsIkRlc2NyaXB0aW9uIiwiaWRlbnRpZmllciIsIlJlZmVyZW5jZU51bWJlckxvbmciLCJtZW1vIiwiQWRkaXRpb25hbERhdGEiLCJvcmlnaW5hbEN1cnJlbmN5IiwiU0hFS0VMX0NVUlJFTkNZIiwiY2hhcmdlZEFtb3VudCIsIkFtb3VudCIsIm9yaWdpbmFsQW1vdW50IiwiaGFuZ1Byb2Nlc3MiLCJ0aW1lb3V0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXRUaW1lb3V0IiwiY2xpY2tCeVhQYXRoIiwieHBhdGgiLCJ3YWl0Rm9yWFBhdGgiLCJ2aXNpYmxlIiwiZWxtIiwiJHgiLCJjbGljayIsInJlbW92ZVNwZWNpYWxDaGFyYWN0ZXJzIiwic3RyIiwicmVwbGFjZSIsImZldGNoVHJhbnNhY3Rpb25zRm9yQWNjb3VudCIsInN0YXJ0RGF0ZSIsImFjY291bnRJZCIsImZvcm1hdCIsImZvY3VzIiwiZmluYWxSZXNwb25zZSIsIndhaXRGb3JSZXNwb25zZSIsInJlc3BvbnNlIiwidXJsIiwicmVxdWVzdCIsIm1ldGhvZCIsInJlc3BvbnNlSnNvbiIsImpzb24iLCJhY2NvdW50TnVtYmVyIiwiSlNPTiIsInBhcnNlIiwianNvblJlc3AiLCJwZW5kaW5nVHJhbnNhY3Rpb25zIiwiVG9kYXlUcmFuc2FjdGlvbnNJdGVtcyIsIkhpc3RvcnlUcmFuc2FjdGlvbnNJdGVtcyIsImJhbGFuY2UiLCJCYWxhbmNlRGlzcGxheSIsInBhcnNlRmxvYXQiLCJ1bmRlZmluZWQiLCJwZW5kaW5nVHhucyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJQZW5kaW5nIiwiY29tcGxldGVkVHhucyIsIkNvbXBsZXRlZCIsInR4bnMiLCJmZXRjaFRyYW5zYWN0aW9ucyIsImFjY291bnRzIiwiYWNjb3VudHNJZHMiLCJldmFsdWF0ZSIsIkFycmF5IiwiZnJvbSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImUiLCJ0ZXh0Q29udGVudCIsInB1c2giLCJuYXZpZ2F0ZVRvTG9naW4iLCJsb2dpbkJ1dHRvblNlbGVjdG9yIiwid2FpdFVudGlsIiwiYWxsIiwid2FpdEZvclBvc3RMb2dpbiIsInJhY2UiLCJMZXVtaVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNoZWNrUmVhZGluZXNzIiwicG9zdEFjdGlvbiIsInBvc3NpYmxlUmVzdWx0cyIsImZldGNoRGF0YSIsIm1pbmltdW1TdGFydE1vbWVudCIsInN1YnRyYWN0IiwiYWRkIiwiZGVmYXVsdFN0YXJ0TW9tZW50IiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJuYXZpZ2F0ZVRvIiwic3VjY2VzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQU1BOztBQUNBOztBQUlBOzs7O0FBRUEsTUFBTUEsUUFBUSxHQUFHLDZCQUFqQjtBQUNBLE1BQU1DLFNBQVMsR0FBRywwQkFBbEI7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBSSxHQUFFRixRQUFTLDBEQUFyQztBQUNBLE1BQU1HLHlCQUF5QixHQUFJLEdBQUVILFFBQVMsaUZBQTlDO0FBRUEsTUFBTUksV0FBVyxHQUFHLFVBQXBCO0FBQ0EsTUFBTUMsbUJBQW1CLEdBQUcsWUFBNUI7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRyx3REFBN0I7O0FBR0EsU0FBU0MsdUJBQVQsR0FBbUM7QUFDakMsUUFBTUMsSUFBcUMsR0FBRztBQUM1QyxLQUFDQyxxQ0FBYUMsT0FBZCxHQUF3QixDQUFDLHlCQUFELENBRG9CO0FBRTVDLEtBQUNELHFDQUFhRSxlQUFkLEdBQWdDLENBQzlCLE1BQU9DLE9BQVAsSUFBbUI7QUFDakIsVUFBSSxDQUFDQSxPQUFELElBQVksQ0FBQ0EsT0FBTyxDQUFDQyxJQUF6QixFQUErQjtBQUM3QixjQUFNLElBQUlDLEtBQUosQ0FBVSwrQkFBVixDQUFOO0FBQ0Q7O0FBQ0QsWUFBTUMsWUFBWSxHQUFHLE1BQU0sdUNBQVlILE9BQU8sQ0FBQ0MsSUFBcEIsRUFBMEIsWUFBMUIsRUFBd0MsRUFBeEMsRUFBNkNHLE9BQUQsSUFBYTtBQUFBOztBQUNsRixvQ0FBUUEsT0FBTyxDQUFDLENBQUQsQ0FBZix1RUFBUSxVQUFZQyxhQUFwQiwwREFBUSxzQkFBMkJDLFFBQTNCLENBQW9DLENBQXBDLENBQVIseUNBQU8sS0FBNERDLFNBQW5FO0FBQ0QsT0FGMEIsQ0FBM0I7QUFJQSxhQUFPSixZ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QyxHQUE5QixDQUFrQyxDQUFsQyxFQUFxQyxLQUFyQyxDQUEzQjtBQUNBLFVBQU1DLGtCQUFrQixHQUFHLHVCQUFTRixRQUFULENBQWtCLENBQWxCLEVBQXFCLE9BQXJCLEVBQThCQyxHQUE5QixDQUFrQyxDQUFsQyxFQUFxQyxLQUFyQyxDQUEzQjtBQUNBLFVBQU0xRCxTQUFTLEdBQUcsS0FBSzdELE9BQUwsQ0FBYTZELFNBQWIsSUFBMEIyRCxrQkFBa0IsQ0FBQ0MsTUFBbkIsRUFBNUM7O0FBQ0EsVUFBTUMsV0FBVyxHQUFHQyxnQkFBT0MsR0FBUCxDQUFXUCxrQkFBWCxFQUErQixxQkFBT3hELFNBQVAsQ0FBL0IsQ0FBcEI7O0FBRUEsVUFBTSxLQUFLZ0UsVUFBTCxDQUFnQnZJLGdCQUFoQixDQUFOO0FBRUEsVUFBTXFHLFFBQVEsR0FBRyxNQUFNRCxpQkFBaUIsQ0FBQyxLQUFLekYsSUFBTixFQUFZeUgsV0FBWixDQUF4QztBQUVBLFdBQU87QUFDTEksTUFBQUEsT0FBTyxFQUFFLElBREo7QUFFTG5DLE1BQUFBO0FBRkssS0FBUDtBQUlEOztBQTFCMkU7O2VBNkIvRGdCLFkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgTG9naW5PcHRpb25zIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7XG4gIGZpbGxJbnB1dCxcbiAgY2xpY2tCdXR0b24sXG4gIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCxcbiAgcGFnZUV2YWxBbGwsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbnNBY2NvdW50LCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IFNjcmFwZXJTY3JhcGluZ1Jlc3VsdCB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcblxuY29uc3QgQkFTRV9VUkwgPSAnaHR0cHM6Ly9oYjIuYmFua2xldW1pLmNvLmlsJztcbmNvbnN0IExPR0lOX1VSTCA9ICdodHRwczovL3d3dy5sZXVtaS5jby5pbC8nO1xuY29uc3QgVFJBTlNBQ1RJT05TX1VSTCA9IGAke0JBU0VfVVJMfS9lQmFua2luZy9TTy9TUEEuYXNweCMvdHMvQnVzaW5lc3NBY2NvdW50VHJ4P1dpZGdldFBhcj0xYDtcbmNvbnN0IEZJTFRFUkVEX1RSQU5TQUNUSU9OU19VUkwgPSBgJHtCQVNFX1VSTH0vQ2hhbm5lbFdDRi9Ccm9rZXIuc3ZjL1Byb2Nlc3NSZXF1ZXN0P21vZHVsZU5hbWU9VUNfU09fMjdfR2V0QnVzaW5lc3NBY2NvdW50VHJ4YDtcblxuY29uc3QgREFURV9GT1JNQVQgPSAnREQuTU0uWVknO1xuY29uc3QgQUNDT1VOVF9CTE9DS0VEX01TRyA9ICfXlNee16DXldeZINeX16HXldedJztcbmNvbnN0IElOVkFMSURfUEFTU1dPUkRfTVNHID0gJ9eQ15fXkyDXkNeVINeZ15XXqteoINee16TXqNeY15kg15TXlNeW15PXlNeV16og16nXnteh16jXqiDXqdeS15XXmdeZ150uINeg15nXqtefINec16DXodeV16og16nXldeRJztcblxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpIHtcbiAgY29uc3QgdXJsczogTG9naW5PcHRpb25zWydwb3NzaWJsZVJlc3VsdHMnXSA9IHtcbiAgICBbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdOiBbL2ViYW5raW5nXFwvU09cXC9TUEEuYXNweC9pXSxcbiAgICBbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF06IFtcbiAgICAgIGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy5wYWdlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHBhZ2Ugb3B0aW9ucyBhcmd1bWVudCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF3YWl0IHBhZ2VFdmFsQWxsKG9wdGlvbnMucGFnZSwgJ3N2ZyNDYXBhXzEnLCAnJywgKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICByZXR1cm4gKGVsZW1lbnRbMF0/LnBhcmVudEVsZW1lbnQ/LmNoaWxkcmVuWzFdIGFzIEhUTUxEaXZFbGVtZW50KT8uaW5uZXJUZXh0O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZXJyb3JNZXNzYWdlPy5zdGFydHNXaXRoKElOVkFMSURfUEFTU1dPUkRfTVNHKTtcbiAgICAgIH0sXG4gICAgXSxcbiAgICBbTG9naW5SZXN1bHRzLkFjY291bnRCbG9ja2VkXTogWyAvLyBOT1RJQ0UgLSBtaWdodCBub3QgYmUgcmVsZXZhbnQgc3RhcnRpbmcgdGhlIExldW1pIHJlLWRlc2lnbiBkdXJpbmcgMjAyMiBTZXBcbiAgICAgIGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy5wYWdlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHBhZ2Ugb3B0aW9ucyBhcmd1bWVudCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF3YWl0IHBhZ2VFdmFsQWxsKG9wdGlvbnMucGFnZSwgJy5lcnJIZWFkZXInLCAnJywgKGxhYmVsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChsYWJlbFswXSBhcyBIVE1MRWxlbWVudCk/LmlubmVyVGV4dDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9yTWVzc2FnZT8uc3RhcnRzV2l0aChBQ0NPVU5UX0JMT0NLRURfTVNHKTtcbiAgICAgIH0sXG4gICAgXSxcbiAgICBbTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkXTogWydodHRwczovL2hiMi5iYW5rbGV1bWkuY28uaWwvYXV0aGVudGljYXRlJ10sIC8vIE5PVElDRSAtIG1pZ2h0IG5vdCBiZSByZWxldmFudCBzdGFydGluZyB0aGUgTGV1bWkgcmUtZGVzaWduIGR1cmluZyAyMDIyIFNlcFxuICB9O1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJ2lucHV0W3BsYWNlaG9sZGVyPVwi16nXnSDXntep16rXntepXCJdJywgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogJ2lucHV0W3BsYWNlaG9sZGVyPVwi16HXmdeh157XlFwiXScsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0VHJhbnNhY3Rpb25zRnJvbVBhZ2UodHJhbnNhY3Rpb25zOiBhbnlbXSwgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzKTogVHJhbnNhY3Rpb25bXSB7XG4gIGlmICh0cmFuc2FjdGlvbnMgPT09IG51bGwgfHwgdHJhbnNhY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb25bXSA9IHRyYW5zYWN0aW9ucy5tYXAoKHJhd1RyYW5zYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudChyYXdUcmFuc2FjdGlvbi5EYXRlVVRDKS5taWxsaXNlY29uZHMoMCkudG9JU09TdHJpbmcoKTtcbiAgICBjb25zdCBuZXdUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24gPSB7XG4gICAgICBzdGF0dXMsXG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICAgIGRhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiBkYXRlLFxuICAgICAgZGVzY3JpcHRpb246IHJhd1RyYW5zYWN0aW9uLkRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgaWRlbnRpZmllcjogcmF3VHJhbnNhY3Rpb24uUmVmZXJlbmNlTnVtYmVyTG9uZyxcbiAgICAgIG1lbW86IHJhd1RyYW5zYWN0aW9uLkFkZGl0aW9uYWxEYXRhIHx8ICcnLFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogU0hFS0VMX0NVUlJFTkNZLFxuICAgICAgY2hhcmdlZEFtb3VudDogcmF3VHJhbnNhY3Rpb24uQW1vdW50LFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IHJhd1RyYW5zYWN0aW9uLkFtb3VudCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ld1RyYW5zYWN0aW9uO1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBoYW5nUHJvY2Vzcyh0aW1lb3V0OiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSwgdGltZW91dCk7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjbGlja0J5WFBhdGgocGFnZTogUGFnZSwgeHBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBwYWdlLndhaXRGb3JYUGF0aCh4cGF0aCwgeyB0aW1lb3V0OiAzMDAwMCwgdmlzaWJsZTogdHJ1ZSB9KTtcbiAgY29uc3QgZWxtID0gYXdhaXQgcGFnZS4keCh4cGF0aCk7XG4gIGF3YWl0IGVsbVswXS5jbGljaygpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVTcGVjaWFsQ2hhcmFjdGVycyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvW14wLTkvLV0vZywgJycpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQsIGFjY291bnRJZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbnNBY2NvdW50PiB7XG4gIC8vIERFVkVMT1BFUiBOT1RJQ0UgdGhlIGFjY291bnQgbnVtYmVyIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlciBpcyBiZWluZyBhbHRlcmVkIGF0XG4gIC8vIHJ1bnRpbWUgZm9yIHNvbWUgYWNjb3VudHMgYWZ0ZXIgMS0yIHNlY29uZHMgc28gd2UgbmVlZCB0byBoYW5nIHRoZSBwcm9jZXNzIGZvciBhIHNob3J0IHdoaWxlLlxuICBhd2FpdCBoYW5nUHJvY2Vzcyg0MDAwKTtcblxuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2J1dHRvblt0aXRsZT1cIteX15nXpNeV16kg157Xqten15PXnVwiXScsIHRydWUpO1xuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCAnYnV0dG9uW3RpdGxlPVwi15fXmdek15XXqSDXnteq16fXk9edXCJdJyk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnYmxsLXJhZGlvLWJ1dHRvbicsIHRydWUpO1xuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCAnYmxsLXJhZGlvLWJ1dHRvbjpub3QoW2NoZWNrZWRdKScpO1xuXG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnaW5wdXRbZm9ybWNvbnRyb2xuYW1lPVwidHh0SW5wdXRGcm9tXCJdJywgdHJ1ZSk7XG5cbiAgYXdhaXQgZmlsbElucHV0KFxuICAgIHBhZ2UsXG4gICAgJ2lucHV0W2Zvcm1jb250cm9sbmFtZT1cInR4dElucHV0RnJvbVwiXScsXG4gICAgc3RhcnREYXRlLmZvcm1hdChEQVRFX0ZPUk1BVCksXG4gICk7XG5cbiAgLy8gd2UgbXVzdCBibHVyIHRoZSBmcm9tIGNvbnRyb2wgb3RoZXJ3aXNlIHRoZSBzZWFyY2ggd2lsbCB1c2UgdGhlIHByZXZpb3VzIHZhbHVlXG4gIGF3YWl0IHBhZ2UuZm9jdXMoXCJidXR0b25bYXJpYS1sYWJlbD0n16HXoNefJ11cIik7XG5cbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgXCJidXR0b25bYXJpYS1sYWJlbD0n16HXoNefJ11cIik7XG4gIGNvbnN0IGZpbmFsUmVzcG9uc2UgPSBhd2FpdCBwYWdlLndhaXRGb3JSZXNwb25zZSgocmVzcG9uc2UpID0+IHtcbiAgICByZXR1cm4gcmVzcG9uc2UudXJsKCkgPT09IEZJTFRFUkVEX1RSQU5TQUNUSU9OU19VUkwgJiZcbiAgICAgIHJlc3BvbnNlLnJlcXVlc3QoKS5tZXRob2QoKSA9PT0gJ1BPU1QnO1xuICB9KTtcblxuICBjb25zdCByZXNwb25zZUpzb246IGFueSA9IGF3YWl0IGZpbmFsUmVzcG9uc2UuanNvbigpO1xuXG4gIGNvbnN0IGFjY291bnROdW1iZXIgPSBhY2NvdW50SWQucmVwbGFjZSgnLycsICdfJykucmVwbGFjZSgvW15cXGQtX10vZywgJycpO1xuXG4gIGNvbnN0IHJlc3BvbnNlID0gSlNPTi5wYXJzZShyZXNwb25zZUpzb24uanNvblJlc3ApO1xuXG4gIGNvbnN0IHBlbmRpbmdUcmFuc2FjdGlvbnMgPSByZXNwb25zZS5Ub2RheVRyYW5zYWN0aW9uc0l0ZW1zO1xuICBjb25zdCB0cmFuc2FjdGlvbnMgPSByZXNwb25zZS5IaXN0b3J5VHJhbnNhY3Rpb25zSXRlbXM7XG4gIGNvbnN0IGJhbGFuY2UgPSByZXNwb25zZS5CYWxhbmNlRGlzcGxheSA/IHBhcnNlRmxvYXQocmVzcG9uc2UuQmFsYW5jZURpc3BsYXkpIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHBlbmRpbmdUeG5zID0gZXh0cmFjdFRyYW5zYWN0aW9uc0Zyb21QYWdlKHBlbmRpbmdUcmFuc2FjdGlvbnMsIFRyYW5zYWN0aW9uU3RhdHVzZXMuUGVuZGluZyk7XG4gIGNvbnN0IGNvbXBsZXRlZFR4bnMgPSBleHRyYWN0VHJhbnNhY3Rpb25zRnJvbVBhZ2UodHJhbnNhY3Rpb25zLCBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCk7XG4gIGNvbnN0IHR4bnMgPSBbXG4gICAgLi4ucGVuZGluZ1R4bnMsXG4gICAgLi4uY29tcGxldGVkVHhucyxcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIGFjY291bnROdW1iZXIsXG4gICAgYmFsYW5jZSxcbiAgICB0eG5zLFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCk6IFByb21pc2U8VHJhbnNhY3Rpb25zQWNjb3VudFtdPiB7XG4gIGNvbnN0IGFjY291bnRzOiBUcmFuc2FjdGlvbnNBY2NvdW50W10gPSBbXTtcblxuICAvLyBERVZFTE9QRVIgTk9USUNFIHRoZSBhY2NvdW50IG51bWJlciByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIgaXMgYmVpbmcgYWx0ZXJlZCBhdFxuICAvLyBydW50aW1lIGZvciBzb21lIGFjY291bnRzIGFmdGVyIDEtMiBzZWNvbmRzIHNvIHdlIG5lZWQgdG8gaGFuZyB0aGUgcHJvY2VzcyBmb3IgYSBzaG9ydCB3aGlsZS5cbiAgYXdhaXQgaGFuZ1Byb2Nlc3MoNDAwMCk7XG5cbiAgY29uc3QgYWNjb3VudHNJZHMgPSBhd2FpdCBwYWdlLmV2YWx1YXRlKCgpID0+IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXBwLW1hc2tlZC1udW1iZXItY29tYm8gc3Bhbi5kaXNwbGF5LW51bWJlci1saScpLCAoZSkgPT4gZS50ZXh0Q29udGVudCkpIGFzIHN0cmluZ1tdO1xuXG4gIC8vIGR1ZSB0byBhIGJ1ZywgdGhlIGFsdGVyZWQgdmFsdWUgbWlnaHQgaW5jbHVkZSB1bmRlc2lyZWQgc2lnbnMgbGlrZSAmIHRoYXQgc2hvdWxkIGJlIHJlbW92ZWRcblxuICBpZiAoIWFjY291bnRzSWRzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGV4dHJhY3Qgb3IgcGFyc2UgdGhlIGFjY291bnQgbnVtYmVyJyk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGFjY291bnRJZCBvZiBhY2NvdW50c0lkcykge1xuICAgIGlmIChhY2NvdW50c0lkcy5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBnZXQgbGlzdCBvZiBhY2NvdW50cyBhbmQgY2hlY2sgYWNjb3VudElkXG4gICAgICBhd2FpdCBjbGlja0J5WFBhdGgocGFnZSwgJy8vKltjb250YWlucyhAY2xhc3MsIFwibnVtYmVyXCIpIGFuZCBjb250YWlucyhAY2xhc3MsIFwiY29tYm8taW5uZXJcIildJyk7XG4gICAgICBhd2FpdCBjbGlja0J5WFBhdGgocGFnZSwgYC8vc3Bhbltjb250YWlucyh0ZXh0KCksICcke2FjY291bnRJZH0nKV1gKTtcbiAgICB9XG5cbiAgICBhY2NvdW50cy5wdXNoKGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zRm9yQWNjb3VudChwYWdlLCBzdGFydERhdGUsIHJlbW92ZVNwZWNpYWxDaGFyYWN0ZXJzKGFjY291bnRJZCkpKTtcbiAgfVxuXG4gIHJldHVybiBhY2NvdW50cztcbn1cblxuXG5hc3luYyBmdW5jdGlvbiBuYXZpZ2F0ZVRvTG9naW4ocGFnZTogUGFnZSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBsb2dpbkJ1dHRvblNlbGVjdG9yID0gJyNlbnRlcl95b3VyX2FjY291bnQgYSc7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBsb2dpbkJ1dHRvblNlbGVjdG9yKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgbG9naW5CdXR0b25TZWxlY3Rvcik7XG4gIGF3YWl0IHdhaXRGb3JOYXZpZ2F0aW9uKHBhZ2UsIHsgd2FpdFVudGlsOiAnbmV0d29ya2lkbGUyJyB9KTtcbiAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnaW5wdXRbcGxhY2Vob2xkZXI9XCLXqdedINee16nXqtee16lcIl0nLCB0cnVlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2lucHV0W3BsYWNlaG9sZGVyPVwi16HXmdeh157XlFwiXScsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0nLCB0cnVlKSxcbiAgXSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JQb3N0TG9naW4ocGFnZTogUGFnZSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnYVt0aXRsZT1cIteT15zXkiDXnNeX16nXkdeV159cIl0nLCB0cnVlLCA2MDAwMCksXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdkaXYubWFpbi1jb250ZW50JywgdHJ1ZSwgNjAwMDApLFxuICAgIHBhZ2Uud2FpdEZvclhQYXRoKGAvL2Rpdltjb250YWlucyhzdHJpbmcoKSxcIiR7SU5WQUxJRF9QQVNTV09SRF9NU0d9XCIpXWApLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnZm9ybVthY3Rpb249XCIvY2hhbmdlcGFzc3dvcmRcIl0nLCB0cnVlLCA2MDAwMCksIC8vIG5vdCBzdXJlIGlmIHRoZXkga2VwdCB0aGlzIG9uZVxuICBdKTtcbn1cblxudHlwZSBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyA9IHsgdXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZ307XG5cbmNsYXNzIExldW1pU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXI8U2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHM+IHtcbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogTE9HSU5fVVJMLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCJidXR0b25bdHlwZT0nc3VibWl0J11cIixcbiAgICAgIGNoZWNrUmVhZGluZXNzOiBhc3luYyAoKSA9PiBuYXZpZ2F0ZVRvTG9naW4odGhpcy5wYWdlKSxcbiAgICAgIHBvc3RBY3Rpb246IGFzeW5jICgpID0+IHdhaXRGb3JQb3N0TG9naW4odGhpcy5wYWdlKSxcbiAgICAgIHBvc3NpYmxlUmVzdWx0czogZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCk6IFByb21pc2U8U2NyYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgY29uc3QgbWluaW11bVN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMywgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKS5hZGQoMSwgJ2RheScpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMub3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChtaW5pbXVtU3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhUUkFOU0FDVElPTlNfVVJMKTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCBzdGFydE1vbWVudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGV1bWlTY3JhcGVyO1xuIl19
238
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9sZXVtaS50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsIkJBU0VfVVJMIiwiTE9HSU5fVVJMIiwiVFJBTlNBQ1RJT05TX1VSTCIsIkZJTFRFUkVEX1RSQU5TQUNUSU9OU19VUkwiLCJEQVRFX0ZPUk1BVCIsIkFDQ09VTlRfQkxPQ0tFRF9NU0ciLCJJTlZBTElEX1BBU1NXT1JEX01TRyIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJvcHRpb25zIiwicGFnZSIsIkVycm9yIiwiZXJyb3JNZXNzYWdlIiwiZWxlbWVudCIsInBhcmVudEVsZW1lbnQiLCJjaGlsZHJlbiIsImlubmVyVGV4dCIsInN0YXJ0c1dpdGgiLCJBY2NvdW50QmxvY2tlZCIsImxhYmVsIiwiQ2hhbmdlUGFzc3dvcmQiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJleHRyYWN0VHJhbnNhY3Rpb25zRnJvbVBhZ2UiLCJ0cmFuc2FjdGlvbnMiLCJzdGF0dXMiLCJsZW5ndGgiLCJyZXN1bHQiLCJtYXAiLCJyYXdUcmFuc2FjdGlvbiIsImRhdGUiLCJEYXRlVVRDIiwibWlsbGlzZWNvbmRzIiwidG9JU09TdHJpbmciLCJuZXdUcmFuc2FjdGlvbiIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwicHJvY2Vzc2VkRGF0ZSIsImRlc2NyaXB0aW9uIiwiRGVzY3JpcHRpb24iLCJpZGVudGlmaWVyIiwiUmVmZXJlbmNlTnVtYmVyTG9uZyIsIm1lbW8iLCJBZGRpdGlvbmFsRGF0YSIsIm9yaWdpbmFsQ3VycmVuY3kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJjaGFyZ2VkQW1vdW50IiwiQW1vdW50Iiwib3JpZ2luYWxBbW91bnQiLCJoYW5nUHJvY2VzcyIsInRpbWVvdXQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJjbGlja0J5WFBhdGgiLCJ4cGF0aCIsIndhaXRGb3JYUGF0aCIsInZpc2libGUiLCJlbG0iLCIkeCIsImNsaWNrIiwicmVtb3ZlU3BlY2lhbENoYXJhY3RlcnMiLCJzdHIiLCJyZXBsYWNlIiwiZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50Iiwic3RhcnREYXRlIiwiYWNjb3VudElkIiwiZm9ybWF0IiwiZm9jdXMiLCJmaW5hbFJlc3BvbnNlIiwid2FpdEZvclJlc3BvbnNlIiwicmVzcG9uc2UiLCJ1cmwiLCJyZXF1ZXN0IiwibWV0aG9kIiwicmVzcG9uc2VKc29uIiwianNvbiIsImFjY291bnROdW1iZXIiLCJKU09OIiwicGFyc2UiLCJqc29uUmVzcCIsInBlbmRpbmdUcmFuc2FjdGlvbnMiLCJUb2RheVRyYW5zYWN0aW9uc0l0ZW1zIiwiSGlzdG9yeVRyYW5zYWN0aW9uc0l0ZW1zIiwiYmFsYW5jZSIsIkJhbGFuY2VEaXNwbGF5IiwicGFyc2VGbG9hdCIsInVuZGVmaW5lZCIsInBlbmRpbmdUeG5zIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIlBlbmRpbmciLCJjb21wbGV0ZWRUeG5zIiwiQ29tcGxldGVkIiwidHhucyIsImZldGNoVHJhbnNhY3Rpb25zIiwiYWNjb3VudHMiLCJhY2NvdW50c0lkcyIsImV2YWx1YXRlIiwiQXJyYXkiLCJmcm9tIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZSIsInRleHRDb250ZW50IiwicHVzaCIsIm5hdmlnYXRlVG9Mb2dpbiIsImxvZ2luQnV0dG9uU2VsZWN0b3IiLCJsb2dpblVybCIsImhyZWYiLCJnb3RvIiwid2FpdFVudGlsIiwiYWxsIiwid2FpdEZvclBvc3RMb2dpbiIsInJhY2UiLCJMZXVtaVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJjaGVja1JlYWRpbmVzcyIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJtaW5pbXVtU3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsImFkZCIsImRlZmF1bHRTdGFydE1vbWVudCIsInRvRGF0ZSIsInN0YXJ0TW9tZW50IiwibW9tZW50IiwibWF4IiwibmF2aWdhdGVUbyIsInN1Y2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFNQTs7QUFDQTs7QUFJQTs7QUFDQTs7OztBQUVBLE1BQU1BLEtBQUssR0FBRyxxQkFBUyxPQUFULENBQWQ7QUFDQSxNQUFNQyxRQUFRLEdBQUcsNkJBQWpCO0FBQ0EsTUFBTUMsU0FBUyxHQUFHLDBCQUFsQjtBQUNBLE1BQU1DLGdCQUFnQixHQUFJLEdBQUVGLFFBQVMsMERBQXJDO0FBQ0EsTUFBTUcseUJBQXlCLEdBQUksR0FBRUgsUUFBUyxpRkFBOUM7QUFFQSxNQUFNSSxXQUFXLEdBQUcsVUFBcEI7QUFDQSxNQUFNQyxtQkFBbUIsR0FBRyxZQUE1QjtBQUNBLE1BQU1DLG9CQUFvQixHQUFHLHdEQUE3Qjs7QUFHQSxTQUFTQyx1QkFBVCxHQUFtQztBQUNqQyxRQUFNQyxJQUFxQyxHQUFHO0FBQzVDLEtBQUNDLHFDQUFhQyxPQUFkLEdBQXdCLENBQUMseUJBQUQsQ0FEb0I7QUFFNUMsS0FBQ0QscUNBQWFFLGVBQWQsR0FBZ0MsQ0FDOUIsTUFBT0MsT0FBUCxJQUFtQjtBQUNqQixVQUFJLENBQUNBLE9BQUQsSUFBWSxDQUFDQSxPQUFPLENBQUNDLElBQXpCLEVBQStCO0FBQzdCLGNBQU0sSUFBSUMsS0FBSixDQUFVLCtCQUFWLENBQU47QUFDRDs7QUFDRCxZQUFNQyxZQUFZLEdBQUcsTUFBTSx1Q0FBWUgsT0FBTyxDQUFDQyxJQUFwQixFQUEwQixZQUExQixFQUF3QyxFQUF4QyxFQUE2Q0csT0FBRCxJQUFhO0FBQUE7O0FBQ2xGLG9DQUFRQSxPQUFPLENBQUMsQ0FBRCxDQUFmLHVFQUFRLFVBQVlDLGFBQXBCLDBEQUFRLHNCQUEyQkMsUUFBM0Is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bWVudCwgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBMb2dpblJlc3VsdHMsIExvZ2luT3B0aW9ucyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQge1xuICBmaWxsSW5wdXQsXG4gIGNsaWNrQnV0dG9uLFxuICB3YWl0VW50aWxFbGVtZW50Rm91bmQsXG4gIHBhZ2VFdmFsQWxsLCBwYWdlRXZhbCxcbn0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgU0hFS0VMX0NVUlJFTkNZIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uc0FjY291bnQsIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblN0YXR1c2VzLCBUcmFuc2FjdGlvblR5cGVzLFxufSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgU2NyYXBlclNjcmFwaW5nUmVzdWx0IH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgd2FpdEZvck5hdmlnYXRpb24gfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnbGV1bWknKTtcbmNvbnN0IEJBU0VfVVJMID0gJ2h0dHBzOi8vaGIyLmJhbmtsZXVtaS5jby5pbCc7XG5jb25zdCBMT0dJTl9VUkwgPSAnaHR0cHM6Ly93d3cubGV1bWkuY28uaWwvJztcbmNvbnN0IFRSQU5TQUNUSU9OU19VUkwgPSBgJHtCQVNFX1VSTH0vZUJhbmtpbmcvU08vU1BBLmFzcHgjL3RzL0J1c2luZXNzQWNjb3VudFRyeD9XaWRnZXRQYXI9MWA7XG5jb25zdCBGSUxURVJFRF9UUkFOU0FDVElPTlNfVVJMID0gYCR7QkFTRV9VUkx9L0NoYW5uZWxXQ0YvQnJva2VyLnN2Yy9Qcm9jZXNzUmVxdWVzdD9tb2R1bGVOYW1lPVVDX1NPXzI3X0dldEJ1c2luZXNzQWNjb3VudFRyeGA7XG5cbmNvbnN0IERBVEVfRk9STUFUID0gJ0RELk1NLllZJztcbmNvbnN0IEFDQ09VTlRfQkxPQ0tFRF9NU0cgPSAn15TXnteg15XXmSDXl9eh15XXnSc7XG5jb25zdCBJTlZBTElEX1BBU1NXT1JEX01TRyA9ICfXkNeX15Mg15DXlSDXmdeV16rXqCDXntek16jXmNeZINeU15TXlteT15TXldeqINep157Xodeo16og16nXkteV15nXmdedLiDXoNeZ16rXnyDXnNeg16HXldeqINep15XXkSc7XG5cblxuZnVuY3Rpb24gZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKSB7XG4gIGNvbnN0IHVybHM6IExvZ2luT3B0aW9uc1sncG9zc2libGVSZXN1bHRzJ10gPSB7XG4gICAgW0xvZ2luUmVzdWx0cy5TdWNjZXNzXTogWy9lYmFua2luZ1xcL1NPXFwvU1BBLmFzcHgvaV0sXG4gICAgW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdOiBbXG4gICAgICBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMgfHwgIW9wdGlvbnMucGFnZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBwYWdlIG9wdGlvbnMgYXJndW1lbnQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBhd2FpdCBwYWdlRXZhbEFsbChvcHRpb25zLnBhZ2UsICdzdmcjQ2FwYV8xJywgJycsIChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChlbGVtZW50WzBdPy5wYXJlbnRFbGVtZW50Py5jaGlsZHJlblsxXSBhcyBIVE1MRGl2RWxlbWVudCk/LmlubmVyVGV4dDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9yTWVzc2FnZT8uc3RhcnRzV2l0aChJTlZBTElEX1BBU1NXT1JEX01TRyk7XG4gICAgICB9LFxuICAgIF0sXG4gICAgW0xvZ2luUmVzdWx0cy5BY2NvdW50QmxvY2tlZF06IFsgLy8gTk9USUNFIC0gbWlnaHQgbm90IGJlIHJlbGV2YW50IHN0YXJ0aW5nIHRoZSBMZXVtaSByZS1kZXNpZ24gZHVyaW5nIDIwMjIgU2VwXG4gICAgICBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMgfHwgIW9wdGlvbnMucGFnZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBwYWdlIG9wdGlvbnMgYXJndW1lbnQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBhd2FpdCBwYWdlRXZhbEFsbChvcHRpb25zLnBhZ2UsICcuZXJySGVhZGVyJywgJycsIChsYWJlbCkgPT4ge1xuICAgICAgICAgIHJldHVybiAobGFiZWxbMF0gYXMgSFRNTEVsZW1lbnQpPy5pbm5lclRleHQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBlcnJvck1lc3NhZ2U/LnN0YXJ0c1dpdGgoQUNDT1VOVF9CTE9DS0VEX01TRyk7XG4gICAgICB9LFxuICAgIF0sXG4gICAgW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF06IFsnaHR0cHM6Ly9oYjIuYmFua2xldW1pLmNvLmlsL2F1dGhlbnRpY2F0ZSddLCAvLyBOT1RJQ0UgLSBtaWdodCBub3QgYmUgcmVsZXZhbnQgc3RhcnRpbmcgdGhlIExldW1pIHJlLWRlc2lnbiBkdXJpbmcgMjAyMiBTZXBcbiAgfTtcbiAgcmV0dXJuIHVybHM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICdpbnB1dFtwbGFjZWhvbGRlcj1cItep150g157Xqdeq157XqVwiXScsIHZhbHVlOiBjcmVkZW50aWFscy51c2VybmFtZSB9LFxuICAgIHsgc2VsZWN0b3I6ICdpbnB1dFtwbGFjZWhvbGRlcj1cIteh15nXodee15RcIl0nLCB2YWx1ZTogY3JlZGVudGlhbHMucGFzc3dvcmQgfSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRyYW5zYWN0aW9uc0Zyb21QYWdlKHRyYW5zYWN0aW9uczogYW55W10sIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcyk6IFRyYW5zYWN0aW9uW10ge1xuICBpZiAodHJhbnNhY3Rpb25zID09PSBudWxsIHx8IHRyYW5zYWN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uW10gPSB0cmFuc2FjdGlvbnMubWFwKChyYXdUcmFuc2FjdGlvbikgPT4ge1xuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQocmF3VHJhbnNhY3Rpb24uRGF0ZVVUQykubWlsbGlzZWNvbmRzKDApLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgbmV3VHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uID0ge1xuICAgICAgc3RhdHVzLFxuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBkYXRlLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogZGF0ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiByYXdUcmFuc2FjdGlvbi5EZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIGlkZW50aWZpZXI6IHJhd1RyYW5zYWN0aW9uLlJlZmVyZW5jZU51bWJlckxvbmcsXG4gICAgICBtZW1vOiByYXdUcmFuc2FjdGlvbi5BZGRpdGlvbmFsRGF0YSB8fCAnJyxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IHJhd1RyYW5zYWN0aW9uLkFtb3VudCxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiByYXdUcmFuc2FjdGlvbi5BbW91bnQsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXdUcmFuc2FjdGlvbjtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gaGFuZ1Byb2Nlc3ModGltZW91dDogbnVtYmVyKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0sIHRpbWVvdXQpO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2xpY2tCeVhQYXRoKHBhZ2U6IFBhZ2UsIHhwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcGFnZS53YWl0Rm9yWFBhdGgoeHBhdGgsIHsgdGltZW91dDogMzAwMDAsIHZpc2libGU6IHRydWUgfSk7XG4gIGNvbnN0IGVsbSA9IGF3YWl0IHBhZ2UuJHgoeHBhdGgpO1xuICBhd2FpdCBlbG1bMF0uY2xpY2soKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlU3BlY2lhbENoYXJhY3RlcnMoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoL1teMC05Ly1dL2csICcnKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50KHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50LCBhY2NvdW50SWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25zQWNjb3VudD4ge1xuICAvLyBERVZFTE9QRVIgTk9USUNFIHRoZSBhY2NvdW50IG51bWJlciByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIgaXMgYmVpbmcgYWx0ZXJlZCBhdFxuICAvLyBydW50aW1lIGZvciBzb21lIGFjY291bnRzIGFmdGVyIDEtMiBzZWNvbmRzIHNvIHdlIG5lZWQgdG8gaGFuZyB0aGUgcHJvY2VzcyBmb3IgYSBzaG9ydCB3aGlsZS5cbiAgYXdhaXQgaGFuZ1Byb2Nlc3MoNDAwMCk7XG5cbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdidXR0b25bdGl0bGU9XCLXl9eZ16TXldepINee16rXp9eT151cIl0nLCB0cnVlKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgJ2J1dHRvblt0aXRsZT1cIteX15nXpNeV16kg157Xqten15PXnVwiXScpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2JsbC1yYWRpby1idXR0b24nLCB0cnVlKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgJ2JsbC1yYWRpby1idXR0b246bm90KFtjaGVja2VkXSknKTtcblxuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2lucHV0W2Zvcm1jb250cm9sbmFtZT1cInR4dElucHV0RnJvbVwiXScsIHRydWUpO1xuXG4gIGF3YWl0IGZpbGxJbnB1dChcbiAgICBwYWdlLFxuICAgICdpbnB1dFtmb3JtY29udHJvbG5hbWU9XCJ0eHRJbnB1dEZyb21cIl0nLFxuICAgIHN0YXJ0RGF0ZS5mb3JtYXQoREFURV9GT1JNQVQpLFxuICApO1xuXG4gIC8vIHdlIG11c3QgYmx1ciB0aGUgZnJvbSBjb250cm9sIG90aGVyd2lzZSB0aGUgc2VhcmNoIHdpbGwgdXNlIHRoZSBwcmV2aW91cyB2YWx1ZVxuICBhd2FpdCBwYWdlLmZvY3VzKFwiYnV0dG9uW2FyaWEtbGFiZWw9J9eh16DXnyddXCIpO1xuXG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIFwiYnV0dG9uW2FyaWEtbGFiZWw9J9eh16DXnyddXCIpO1xuICBjb25zdCBmaW5hbFJlc3BvbnNlID0gYXdhaXQgcGFnZS53YWl0Rm9yUmVzcG9uc2UoKHJlc3BvbnNlKSA9PiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnVybCgpID09PSBGSUxURVJFRF9UUkFOU0FDVElPTlNfVVJMICYmXG4gICAgICByZXNwb25zZS5yZXF1ZXN0KCkubWV0aG9kKCkgPT09ICdQT1NUJztcbiAgfSk7XG5cbiAgY29uc3QgcmVzcG9uc2VKc29uOiBhbnkgPSBhd2FpdCBmaW5hbFJlc3BvbnNlLmpzb24oKTtcblxuICBjb25zdCBhY2NvdW50TnVtYmVyID0gYWNjb3VudElkLnJlcGxhY2UoJy8nLCAnXycpLnJlcGxhY2UoL1teXFxkLV9dL2csICcnKTtcblxuICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2UocmVzcG9uc2VKc29uLmpzb25SZXNwKTtcblxuICBjb25zdCBwZW5kaW5nVHJhbnNhY3Rpb25zID0gcmVzcG9uc2UuVG9kYXlUcmFuc2FjdGlvbnNJdGVtcztcbiAgY29uc3QgdHJhbnNhY3Rpb25zID0gcmVzcG9uc2UuSGlzdG9yeVRyYW5zYWN0aW9uc0l0ZW1zO1xuICBjb25zdCBiYWxhbmNlID0gcmVzcG9uc2UuQmFsYW5jZURpc3BsYXkgPyBwYXJzZUZsb2F0KHJlc3BvbnNlLkJhbGFuY2VEaXNwbGF5KSA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBwZW5kaW5nVHhucyA9IGV4dHJhY3RUcmFuc2FjdGlvbnNGcm9tUGFnZShwZW5kaW5nVHJhbnNhY3Rpb25zLCBUcmFuc2FjdGlvblN0YXR1c2VzLlBlbmRpbmcpO1xuICBjb25zdCBjb21wbGV0ZWRUeG5zID0gZXh0cmFjdFRyYW5zYWN0aW9uc0Zyb21QYWdlKHRyYW5zYWN0aW9ucywgVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQpO1xuICBjb25zdCB0eG5zID0gW1xuICAgIC4uLnBlbmRpbmdUeG5zLFxuICAgIC4uLmNvbXBsZXRlZFR4bnMsXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBhY2NvdW50TnVtYmVyLFxuICAgIGJhbGFuY2UsXG4gICAgdHhucyxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpOiBQcm9taXNlPFRyYW5zYWN0aW9uc0FjY291bnRbXT4ge1xuICBjb25zdCBhY2NvdW50czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG5cbiAgLy8gREVWRUxPUEVSIE5PVElDRSB0aGUgYWNjb3VudCBudW1iZXIgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyIGlzIGJlaW5nIGFsdGVyZWQgYXRcbiAgLy8gcnVudGltZSBmb3Igc29tZSBhY2NvdW50cyBhZnRlciAxLTIgc2Vjb25kcyBzbyB3ZSBuZWVkIHRvIGhhbmcgdGhlIHByb2Nlc3MgZm9yIGEgc2hvcnQgd2hpbGUuXG4gIGF3YWl0IGhhbmdQcm9jZXNzKDQwMDApO1xuXG4gIGNvbnN0IGFjY291bnRzSWRzID0gYXdhaXQgcGFnZS5ldmFsdWF0ZSgoKSA9PiBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2FwcC1tYXNrZWQtbnVtYmVyLWNvbWJvIHNwYW4uZGlzcGxheS1udW1iZXItbGknKSwgKGUpID0+IGUudGV4dENvbnRlbnQpKSBhcyBzdHJpbmdbXTtcblxuICAvLyBkdWUgdG8gYSBidWcsIHRoZSBhbHRlcmVkIHZhbHVlIG1pZ2h0IGluY2x1ZGUgdW5kZXNpcmVkIHNpZ25zIGxpa2UgJiB0aGF0IHNob3VsZCBiZSByZW1vdmVkXG5cbiAgaWYgKCFhY2NvdW50c0lkcy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBleHRyYWN0IG9yIHBhcnNlIHRoZSBhY2NvdW50IG51bWJlcicpO1xuICB9XG5cbiAgZm9yIChjb25zdCBhY2NvdW50SWQgb2YgYWNjb3VudHNJZHMpIHtcbiAgICBpZiAoYWNjb3VudHNJZHMubGVuZ3RoID4gMSkge1xuICAgICAgLy8gZ2V0IGxpc3Qgb2YgYWNjb3VudHMgYW5kIGNoZWNrIGFjY291bnRJZFxuICAgICAgYXdhaXQgY2xpY2tCeVhQYXRoKHBhZ2UsICcvLypbY29udGFpbnMoQGNsYXNzLCBcIm51bWJlclwiKSBhbmQgY29udGFpbnMoQGNsYXNzLCBcImNvbWJvLWlubmVyXCIpXScpO1xuICAgICAgYXdhaXQgY2xpY2tCeVhQYXRoKHBhZ2UsIGAvL3NwYW5bY29udGFpbnModGV4dCgpLCAnJHthY2NvdW50SWR9JyldYCk7XG4gICAgfVxuXG4gICAgYWNjb3VudHMucHVzaChhd2FpdCBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZSwgc3RhcnREYXRlLCByZW1vdmVTcGVjaWFsQ2hhcmFjdGVycyhhY2NvdW50SWQpKSk7XG4gIH1cblxuICByZXR1cm4gYWNjb3VudHM7XG59XG5cblxuYXN5bmMgZnVuY3Rpb24gbmF2aWdhdGVUb0xvZ2luKHBhZ2U6IFBhZ2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgbG9naW5CdXR0b25TZWxlY3RvciA9ICcuZW50ZXItYWNjb3VudCBhW2FyaWEtbGFiZWwqPVwi15vXoNeZ16HXlCDXnNeX16nXkdeV16DXmlwiXSc7XG4gIGRlYnVnKCd3YWl0IGZvciBob21lcGFnZSB0byBjbGljayBvbiBsb2dpbiBidXR0b24nKTtcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIGxvZ2luQnV0dG9uU2VsZWN0b3IpO1xuICBkZWJ1ZygnbmF2aWdhdGUgdG8gbG9naW4gcGFnZScpO1xuICBjb25zdCBsb2dpblVybCA9IGF3YWl0IHBhZ2VFdmFsKHBhZ2UsIGxvZ2luQnV0dG9uU2VsZWN0b3IsIG51bGwsIChlbGVtZW50KSA9PiB7XG4gICAgcmV0dXJuIChlbGVtZW50IGFzIGFueSkuaHJlZjtcbiAgfSk7XG4gIGRlYnVnKGBuYXZpZ2F0aW5nIHRvIHBhZ2UgKCR7bG9naW5Vcmx9KWApO1xuICBwYWdlLmdvdG8obG9naW5VcmwpO1xuICBkZWJ1Zygnd2FpdGluZyBmb3IgcGFnZSB0byBiZSBsb2FkZWQgKG5ldHdvcmtpZGxlMiknKTtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSwgeyB3YWl0VW50aWw6ICduZXR3b3JraWRsZTInIH0pO1xuICBkZWJ1Zygnd2FpdGluZyBmb3IgY29tcG9uZW50cyBvZiBsb2dpbiB0byBlbnRlciBjcmVkZW50aWFscycpO1xuICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdpbnB1dFtwbGFjZWhvbGRlcj1cItep150g157Xqdeq157XqVwiXScsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnaW5wdXRbcGxhY2Vob2xkZXI9XCLXodeZ16HXnteUXCJdJywgdHJ1ZSksXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdidXR0b25bdHlwZT1cInN1Ym1pdFwiXScsIHRydWUpLFxuICBdKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd2FpdEZvclBvc3RMb2dpbihwYWdlOiBQYWdlKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdhW3RpdGxlPVwi15PXnNeSINec15fXqdeR15XXn1wiXScsIHRydWUsIDYwMDAwKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2Rpdi5tYWluLWNvbnRlbnQnLCB0cnVlLCA2MDAwMCksXG4gICAgcGFnZS53YWl0Rm9yWFBhdGgoYC8vZGl2W2NvbnRhaW5zKHN0cmluZygpLFwiJHtJTlZBTElEX1BBU1NXT1JEX01TR31cIildYCksXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdmb3JtW2FjdGlvbj1cIi9jaGFuZ2VwYXNzd29yZFwiXScsIHRydWUsIDYwMDAwKSwgLy8gbm90IHN1cmUgaWYgdGhleSBrZXB0IHRoaXMgb25lXG4gIF0pO1xufVxuXG50eXBlIFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzID0geyB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nfTtcblxuY2xhc3MgTGV1bWlTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBMT0dJTl9VUkwsXG4gICAgICBmaWVsZHM6IGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzKSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiBcImJ1dHRvblt0eXBlPSdzdWJtaXQnXVwiLFxuICAgICAgY2hlY2tSZWFkaW5lc3M6IGFzeW5jICgpID0+IG5hdmlnYXRlVG9Mb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gd2FpdEZvclBvc3RMb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKTogUHJvbWlzZTxTY3JhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBjb25zdCBtaW5pbXVtU3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgzLCAneWVhcnMnKS5hZGQoMSwgJ2RheScpO1xuICAgIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpLmFkZCgxLCAnZGF5Jyk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KG1pbmltdW1TdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuXG4gICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZVRvKFRSQU5TQUNUSU9OU19VUkwpO1xuXG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBmZXRjaFRyYW5zYWN0aW9ucyh0aGlzLnBhZ2UsIHN0YXJ0TW9tZW50KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBMZXVtaVNjcmFwZXI7XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "israeli-bank-scrapers",
3
- "version": "4.1.0",
3
+ "version": "4.1.1",
4
4
  "private": false,
5
5
  "description": "Provide scrapers for all major Israeli banks and credit card companies",
6
6
  "engines": {