@tricoteuses/assemblee 0.25.3 → 0.26.2

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.
Files changed (59) hide show
  1. package/README.md +5 -3
  2. package/lib/bugs/acteur-00010.js +3 -3
  3. package/lib/bugs/agenda-00002.js +3 -3
  4. package/lib/bugs/agenda-00008.js +3 -3
  5. package/lib/bugs/agenda-00011.js +3 -3
  6. package/lib/bugs.js +2 -2
  7. package/lib/cleaners/acteurs.js +39 -2
  8. package/lib/cleaners/acteurs.mjs +25 -1
  9. package/lib/cleaners/documents.js +3 -1
  10. package/lib/cleaners/documents.mjs +3 -1
  11. package/lib/cleaners/organes.js +19 -2
  12. package/lib/cleaners/organes.mjs +18 -1
  13. package/lib/cleaners/reunions.js +1 -1
  14. package/lib/file_systems.js +7 -3
  15. package/lib/parsers/documents.js +2 -2
  16. package/lib/parsers/documents.mjs +2 -2
  17. package/lib/parsers/recherche_amendements.js +2 -2
  18. package/lib/raw_types/acteurs_et_organes.d.ts +181 -13
  19. package/lib/raw_types/acteurs_et_organes.js +327 -60
  20. package/lib/raw_types/acteurs_et_organes.mjs +318 -55
  21. package/lib/raw_types/agendas.d.ts +3 -1
  22. package/lib/raw_types/agendas.js +7 -5
  23. package/lib/raw_types/agendas.mjs +5 -3
  24. package/lib/raw_types/amendements.d.ts +2 -2
  25. package/lib/raw_types/amendements.js +5 -5
  26. package/lib/raw_types/amendements.mjs +3 -3
  27. package/lib/raw_types/dossiers_legislatifs.d.ts +77 -435
  28. package/lib/raw_types/dossiers_legislatifs.js +294 -1439
  29. package/lib/raw_types/dossiers_legislatifs.mjs +290 -1432
  30. package/lib/raw_types/scrutins.js +2 -2
  31. package/lib/scripts/bugs_helper.js +2 -2
  32. package/lib/scripts/clean_data.js +2 -2
  33. package/lib/scripts/clean_data.mjs +2 -2
  34. package/lib/scripts/clean_reorganized_data.js +1 -1
  35. package/lib/scripts/document_dossiers_legislatifs.js +10 -10
  36. package/lib/scripts/reorganize_data.js +195 -136
  37. package/lib/scripts/reorganize_data.mjs +46 -2
  38. package/lib/scripts/retrieve_documents.js +2 -2
  39. package/lib/scripts/retrieve_open_data.js +2 -2
  40. package/lib/scripts/retrieve_open_data.mjs +2 -2
  41. package/lib/scripts/retrieve_pending_amendments.js +2 -2
  42. package/lib/scripts/retrieve_textes_lois.js +2 -2
  43. package/lib/scripts/test_load.js +2 -2
  44. package/lib/scripts/test_load.mjs +2 -2
  45. package/lib/scripts/test_load_big_files.js +2 -2
  46. package/lib/scripts/test_load_big_files.mjs +2 -2
  47. package/lib/scripts/validate_json.js +2 -2
  48. package/lib/shared_types/codes_actes.js +3 -3
  49. package/lib/shared_types/codes_actes.mjs +1 -1
  50. package/lib/types/acteurs_et_organes.d.ts +48 -27
  51. package/lib/types/acteurs_et_organes.js +132 -39
  52. package/lib/types/acteurs_et_organes.mjs +128 -35
  53. package/lib/types/agendas.js +2 -2
  54. package/lib/types/amendements.js +2 -2
  55. package/lib/types/dossiers_legislatifs.d.ts +2 -0
  56. package/lib/types/dossiers_legislatifs.js +11 -3
  57. package/lib/types/dossiers_legislatifs.mjs +9 -1
  58. package/lib/types/scrutins.js +2 -2
  59. package/package.json +7 -7
@@ -49,7 +49,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
49
49
 
50
50
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
51
51
 
52
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
52
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
53
53
 
54
54
  function cleanCycleDeVie(cycleDeVie) {
55
55
  (0, _xml.cleanXmlArtefacts)(cycleDeVie);
@@ -53,6 +53,10 @@ var _path = _interopRequireDefault(require("path"));
53
53
 
54
54
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
55
55
 
56
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
57
+
58
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
59
+
56
60
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
57
61
 
58
62
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -175,13 +179,13 @@ function write(something, filename) {
175
179
  });
176
180
  }
177
181
 
178
- var GetFileNotFoundError = function GetFileNotFoundError(message) {
182
+ var GetFileNotFoundError = /*#__PURE__*/_createClass(function GetFileNotFoundError(message) {
179
183
  _classCallCheck(this, GetFileNotFoundError);
180
184
 
181
185
  _defineProperty(this, "message", void 0);
182
186
 
183
187
  this.message = message;
184
- };
188
+ });
185
189
 
186
190
  exports.GetFileNotFoundError = GetFileNotFoundError;
187
191
 
@@ -205,4 +209,4 @@ function getFiles(args) {
205
209
  args.forEach(_getFiles);
206
210
  return files;
207
211
  }
208
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9maWxlX3N5c3RlbXMudHMiXSwibmFtZXMiOlsid2Fsa0RpciIsInJvb3REaXIiLCJyZWxhdGl2ZVNwbGl0RGlyIiwiZGlyIiwicGF0aCIsImpvaW4iLCJmcyIsInJlYWRkaXJTeW5jIiwiZmlsZW5hbWUiLCJmaWxlUGF0aCIsInJlbGF0aXZlU3BsaXRQYXRoIiwic3RhdFN5bmMiLCJpc0RpcmVjdG9yeSIsImxvYWQiLCJyYXdqc29uIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJKU09OIiwicGFyc2UiLCJ3cml0ZSIsInNvbWV0aGluZyIsImNvbnRlbnQiLCJzdHJpbmdpZnkiLCJlbnN1cmVEaXJTeW5jIiwiZGlybmFtZSIsIndyaXRlRmlsZVN5bmMiLCJHZXRGaWxlTm90Rm91bmRFcnJvciIsIm1lc3NhZ2UiLCJnZXRGaWxlcyIsImFyZ3MiLCJmaWxlcyIsIl9nZXRGaWxlcyIsImZpbGVPclBhdHRlcm4iLCJnbG9iIiwiaGFzTWFnaWMiLCJkYXRhRmlsZXMiLCJzeW5jIiwiY3dkIiwicHJvY2VzcyIsImxlbmd0aCIsImNvbmNhdCIsInB1c2giLCJleGlzdHNTeW5jIiwiZm9yRWFjaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7bURBRWlCQSxPOzs7Ozs7Ozs7Ozs7Ozs7O0FBQVYsU0FBVUEsT0FBVixDQUNMQyxPQURLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVMQyxVQUFBQSxnQkFGSywyREFFd0IsRUFGeEI7QUFJQ0MsVUFBQUEsR0FKRCxHQUlPQyxpQkFBS0MsSUFBTCwwQkFBVUosT0FBViw0QkFBc0JDLGdCQUF0QixHQUpQO0FBQUEsaURBS2tCSSxvQkFBR0MsV0FBSCxDQUFlSixHQUFmLENBTGxCO0FBQUE7O0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFLTUssVUFBQUEsUUFMTjs7QUFBQSxnQkFNQ0EsUUFBUSxDQUFDLENBQUQsQ0FBUixLQUFnQixHQU5qQjtBQUFBO0FBQUE7QUFBQTs7QUFBQTs7QUFBQTtBQVNHQyxVQUFBQSxRQVRILEdBU2NMLGlCQUFLQyxJQUFMLENBQVVGLEdBQVYsRUFBZUssUUFBZixDQVRkO0FBVUdFLFVBQUFBLGlCQVZILGdDQVUyQlIsZ0JBVjNCLElBVTZDTSxRQVY3Qzs7QUFBQSxlQVdDRixvQkFBR0ssUUFBSCxDQUFZRixRQUFaLEVBQXNCRyxXQUF0QixFQVhEO0FBQUE7QUFBQTtBQUFBOztBQVlELHdDQUFPWixPQUFPLENBQUNDLE9BQUQsRUFBVVMsaUJBQVYsQ0FBZDs7QUFaQztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQWNELGlCQUFNQSxpQkFBTjs7QUFkQztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTs7QUFBQTtBQUFBOztBQUFBOztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQW1CQSxTQUFTRyxJQUFULENBQWNULElBQWQsRUFBaUM7QUFDdEMsTUFBTVUsT0FBZSxHQUFHUixvQkFBR1MsWUFBSCxDQUFnQlgsSUFBaEIsRUFBc0I7QUFDNUNZLElBQUFBLFFBQVEsRUFBRTtBQURrQyxHQUF0QixDQUF4Qjs7QUFHQSxTQUFPQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0osT0FBWCxDQUFQO0FBQ0Q7O0FBRU0sU0FBU0ssS0FBVCxDQUFlQyxTQUFmLEVBQStCWixRQUEvQixFQUFzRDtBQUMzRCxNQUFNYSxPQUFPLEdBQUdKLElBQUksQ0FBQ0ssU0FBTCxDQUFlRixTQUFmLEVBQTBCLElBQTFCLEVBQWdDLENBQWhDLENBQWhCOztBQUNBZCxzQkFBR2lCLGFBQUgsQ0FBaUJuQixpQkFBS29CLE9BQUwsQ0FBYWhCLFFBQWIsQ0FBakI7O0FBQ0FGLHNCQUFHbUIsYUFBSCxDQUFpQmpCLFFBQWpCLEVBQTJCYSxPQUEzQixFQUFvQztBQUNsQ0wsSUFBQUEsUUFBUSxFQUFFO0FBRHdCLEdBQXBDO0FBR0Q7O0lBRVlVLG9CLEdBR1gsOEJBQVlDLE9BQVosRUFBNkI7QUFBQTs7QUFBQTs7QUFDM0IsT0FBS0EsT0FBTCxHQUFlQSxPQUFmO0FBQ0QsQzs7OztBQUdJLFNBQVNDLFFBQVQsQ0FBa0JDLElBQWxCLEVBQWtDO0FBQ3ZDLE1BQUlDLEtBQWUsR0FBRyxFQUF0Qjs7QUFDQSxXQUFTQyxTQUFULENBQW1CQyxhQUFuQixFQUF1QztBQUNyQyxRQUFJQyxpQkFBS0MsUUFBTCxDQUFjRixhQUFkLENBQUosRUFBa0M7QUFDaEMsVUFBTUcsU0FBUyxHQUFHRixpQkFBS0csSUFBTCxDQUFVSixhQUFWLEVBQXlCO0FBQUVLLFFBQUFBLEdBQUcsRUFBRUMsT0FBTyxDQUFDRCxHQUFSO0FBQVAsT0FBekIsQ0FBbEI7O0FBQ0EsVUFBSUYsU0FBUyxDQUFDSSxNQUFWLElBQW9CLENBQXhCLEVBQ0UsTUFBTSxJQUFJYixvQkFBSixXQUE0Qk0sYUFBNUIsMEJBQU47QUFDRkYsTUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUNVLE1BQU4sQ0FBYUwsU0FBYixDQUFSO0FBQ0QsS0FMRCxNQUtPO0FBQ0xMLE1BQUFBLEtBQUssQ0FBQ1csSUFBTixDQUFXVCxhQUFYO0FBQ0EsVUFBSSxDQUFDMUIsb0JBQUdvQyxVQUFILENBQWNWLGFBQWQsQ0FBTCxFQUNFLE1BQU0sSUFBSU4sb0JBQUosV0FBNEJNLGFBQTVCLDBCQUFOO0FBQ0g7QUFDRjs7QUFDREgsRUFBQUEsSUFBSSxDQUFDYyxPQUFMLENBQWFaLFNBQWI7QUFDQSxTQUFPRCxLQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2xvYiBmcm9tIFwiZ2xvYlwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuZXhwb3J0IGZ1bmN0aW9uKiB3YWxrRGlyKFxuICByb290RGlyOiBzdHJpbmcsXG4gIHJlbGF0aXZlU3BsaXREaXI6IHN0cmluZ1tdID0gW10sXG4pOiBJdGVyYWJsZTxzdHJpbmdbXT4ge1xuICBjb25zdCBkaXIgPSBwYXRoLmpvaW4ocm9vdERpciwgLi4ucmVsYXRpdmVTcGxpdERpcilcbiAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBmcy5yZWFkZGlyU3luYyhkaXIpKSB7XG4gICAgaWYgKGZpbGVuYW1lWzBdID09PSBcIi5cIikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZGlyLCBmaWxlbmFtZSlcbiAgICBjb25zdCByZWxhdGl2ZVNwbGl0UGF0aCA9IFsuLi5yZWxhdGl2ZVNwbGl0RGlyLCBmaWxlbmFtZV1cbiAgICBpZiAoZnMuc3RhdFN5bmMoZmlsZVBhdGgpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIHlpZWxkKiB3YWxrRGlyKHJvb3REaXIsIHJlbGF0aXZlU3BsaXRQYXRoKVxuICAgIH0gZWxzZSB7XG4gICAgICB5aWVsZCByZWxhdGl2ZVNwbGl0UGF0aFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZChwYXRoOiBzdHJpbmcpOiBhbnkge1xuICBjb25zdCByYXdqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMocGF0aCwge1xuICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgfSlcbiAgcmV0dXJuIEpTT04ucGFyc2UocmF3anNvbilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlKHNvbWV0aGluZzogYW55LCBmaWxlbmFtZTogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgY29udGVudCA9IEpTT04uc3RyaW5naWZ5KHNvbWV0aGluZywgbnVsbCwgMilcbiAgZnMuZW5zdXJlRGlyU3luYyhwYXRoLmRpcm5hbWUoZmlsZW5hbWUpKVxuICBmcy53cml0ZUZpbGVTeW5jKGZpbGVuYW1lLCBjb250ZW50LCB7XG4gICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICB9KVxufVxuXG5leHBvcnQgY2xhc3MgR2V0RmlsZU5vdEZvdW5kRXJyb3Ige1xuICBtZXNzYWdlOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVzKGFyZ3M6IGFueSk6IGFueSB7XG4gIGxldCBmaWxlczogc3RyaW5nW10gPSBbXVxuICBmdW5jdGlvbiBfZ2V0RmlsZXMoZmlsZU9yUGF0dGVybjogYW55KSB7XG4gICAgaWYgKGdsb2IuaGFzTWFnaWMoZmlsZU9yUGF0dGVybikpIHtcbiAgICAgIGNvbnN0IGRhdGFGaWxlcyA9IGdsb2Iuc3luYyhmaWxlT3JQYXR0ZXJuLCB7IGN3ZDogcHJvY2Vzcy5jd2QoKSB9KVxuICAgICAgaWYgKGRhdGFGaWxlcy5sZW5ndGggPD0gMClcbiAgICAgICAgdGhyb3cgbmV3IEdldEZpbGVOb3RGb3VuZEVycm9yKGAke2ZpbGVPclBhdHRlcm59IGdsb2IgZG9lcyBub3QgbWF0Y2hgKVxuICAgICAgZmlsZXMgPSBmaWxlcy5jb25jYXQoZGF0YUZpbGVzKVxuICAgIH0gZWxzZSB7XG4gICAgICBmaWxlcy5wdXNoKGZpbGVPclBhdHRlcm4pXG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZU9yUGF0dGVybikpXG4gICAgICAgIHRocm93IG5ldyBHZXRGaWxlTm90Rm91bmRFcnJvcihgJHtmaWxlT3JQYXR0ZXJufSBmaWxlIGRvZXMgbm90IGV4aXN0YClcbiAgICB9XG4gIH1cbiAgYXJncy5mb3JFYWNoKF9nZXRGaWxlcylcbiAgcmV0dXJuIGZpbGVzXG59XG4iXX0=
212
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9maWxlX3N5c3RlbXMudHMiXSwibmFtZXMiOlsid2Fsa0RpciIsInJvb3REaXIiLCJyZWxhdGl2ZVNwbGl0RGlyIiwiZGlyIiwicGF0aCIsImpvaW4iLCJmcyIsInJlYWRkaXJTeW5jIiwiZmlsZW5hbWUiLCJmaWxlUGF0aCIsInJlbGF0aXZlU3BsaXRQYXRoIiwic3RhdFN5bmMiLCJpc0RpcmVjdG9yeSIsImxvYWQiLCJyYXdqc29uIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJKU09OIiwicGFyc2UiLCJ3cml0ZSIsInNvbWV0aGluZyIsImNvbnRlbnQiLCJzdHJpbmdpZnkiLCJlbnN1cmVEaXJTeW5jIiwiZGlybmFtZSIsIndyaXRlRmlsZVN5bmMiLCJHZXRGaWxlTm90Rm91bmRFcnJvciIsIm1lc3NhZ2UiLCJnZXRGaWxlcyIsImFyZ3MiLCJmaWxlcyIsIl9nZXRGaWxlcyIsImZpbGVPclBhdHRlcm4iLCJnbG9iIiwiaGFzTWFnaWMiLCJkYXRhRmlsZXMiLCJzeW5jIiwiY3dkIiwicHJvY2VzcyIsImxlbmd0aCIsImNvbmNhdCIsInB1c2giLCJleGlzdHNTeW5jIiwiZm9yRWFjaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7O21EQUVpQkEsTzs7Ozs7Ozs7Ozs7Ozs7OztBQUFWLFNBQVVBLE9BQVYsQ0FDTEMsT0FESztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFTEMsVUFBQUEsZ0JBRkssMkRBRXdCLEVBRnhCO0FBSUNDLFVBQUFBLEdBSkQsR0FJT0MsaUJBQUtDLElBQUwsMEJBQVVKLE9BQVYsNEJBQXNCQyxnQkFBdEIsR0FKUDtBQUFBLGlEQUtrQkksb0JBQUdDLFdBQUgsQ0FBZUosR0FBZixDQUxsQjtBQUFBOztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBS01LLFVBQUFBLFFBTE47O0FBQUEsZ0JBTUNBLFFBQVEsQ0FBQyxDQUFELENBQVIsS0FBZ0IsR0FOakI7QUFBQTtBQUFBO0FBQUE7O0FBQUE7O0FBQUE7QUFTR0MsVUFBQUEsUUFUSCxHQVNjTCxpQkFBS0MsSUFBTCxDQUFVRixHQUFWLEVBQWVLLFFBQWYsQ0FUZDtBQVVHRSxVQUFBQSxpQkFWSCxnQ0FVMkJSLGdCQVYzQixJQVU2Q00sUUFWN0M7O0FBQUEsZUFXQ0Ysb0JBQUdLLFFBQUgsQ0FBWUYsUUFBWixFQUFzQkcsV0FBdEIsRUFYRDtBQUFBO0FBQUE7QUFBQTs7QUFZRCx3Q0FBT1osT0FBTyxDQUFDQyxPQUFELEVBQVVTLGlCQUFWLENBQWQ7O0FBWkM7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFjRCxpQkFBTUEsaUJBQU47O0FBZEM7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7O0FBQUE7QUFBQTs7QUFBQTs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFtQkEsU0FBU0csSUFBVCxDQUFjVCxJQUFkLEVBQWlDO0FBQ3RDLE1BQU1VLE9BQWUsR0FBR1Isb0JBQUdTLFlBQUgsQ0FBZ0JYLElBQWhCLEVBQXNCO0FBQzVDWSxJQUFBQSxRQUFRLEVBQUU7QUFEa0MsR0FBdEIsQ0FBeEI7O0FBR0EsU0FBT0MsSUFBSSxDQUFDQyxLQUFMLENBQVdKLE9BQVgsQ0FBUDtBQUNEOztBQUVNLFNBQVNLLEtBQVQsQ0FBZUMsU0FBZixFQUErQlosUUFBL0IsRUFBc0Q7QUFDM0QsTUFBTWEsT0FBTyxHQUFHSixJQUFJLENBQUNLLFNBQUwsQ0FBZUYsU0FBZixFQUEwQixJQUExQixFQUFnQyxDQUFoQyxDQUFoQjs7QUFDQWQsc0JBQUdpQixhQUFILENBQWlCbkIsaUJBQUtvQixPQUFMLENBQWFoQixRQUFiLENBQWpCOztBQUNBRixzQkFBR21CLGFBQUgsQ0FBaUJqQixRQUFqQixFQUEyQmEsT0FBM0IsRUFBb0M7QUFDbENMLElBQUFBLFFBQVEsRUFBRTtBQUR3QixHQUFwQztBQUdEOztJQUVZVSxvQiw2QkFHWCw4QkFBWUMsT0FBWixFQUE2QjtBQUFBOztBQUFBOztBQUMzQixPQUFLQSxPQUFMLEdBQWVBLE9BQWY7QUFDRCxDOzs7O0FBR0ksU0FBU0MsUUFBVCxDQUFrQkMsSUFBbEIsRUFBa0M7QUFDdkMsTUFBSUMsS0FBZSxHQUFHLEVBQXRCOztBQUNBLFdBQVNDLFNBQVQsQ0FBbUJDLGFBQW5CLEVBQXVDO0FBQ3JDLFFBQUlDLGlCQUFLQyxRQUFMLENBQWNGLGFBQWQsQ0FBSixFQUFrQztBQUNoQyxVQUFNRyxTQUFTLEdBQUdGLGlCQUFLRyxJQUFMLENBQVVKLGFBQVYsRUFBeUI7QUFBRUssUUFBQUEsR0FBRyxFQUFFQyxPQUFPLENBQUNELEdBQVI7QUFBUCxPQUF6QixDQUFsQjs7QUFDQSxVQUFJRixTQUFTLENBQUNJLE1BQVYsSUFBb0IsQ0FBeEIsRUFDRSxNQUFNLElBQUliLG9CQUFKLFdBQTRCTSxhQUE1QiwwQkFBTjtBQUNGRixNQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ1UsTUFBTixDQUFhTCxTQUFiLENBQVI7QUFDRCxLQUxELE1BS087QUFDTEwsTUFBQUEsS0FBSyxDQUFDVyxJQUFOLENBQVdULGFBQVg7QUFDQSxVQUFJLENBQUMxQixvQkFBR29DLFVBQUgsQ0FBY1YsYUFBZCxDQUFMLEVBQ0UsTUFBTSxJQUFJTixvQkFBSixXQUE0Qk0sYUFBNUIsMEJBQU47QUFDSDtBQUNGOztBQUNESCxFQUFBQSxJQUFJLENBQUNjLE9BQUwsQ0FBYVosU0FBYjtBQUNBLFNBQU9ELEtBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnbG9iIGZyb20gXCJnbG9iXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5leHBvcnQgZnVuY3Rpb24qIHdhbGtEaXIoXG4gIHJvb3REaXI6IHN0cmluZyxcbiAgcmVsYXRpdmVTcGxpdERpcjogc3RyaW5nW10gPSBbXSxcbik6IEl0ZXJhYmxlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IGRpciA9IHBhdGguam9pbihyb290RGlyLCAuLi5yZWxhdGl2ZVNwbGl0RGlyKVxuICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKGRpcikpIHtcbiAgICBpZiAoZmlsZW5hbWVbMF0gPT09IFwiLlwiKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihkaXIsIGZpbGVuYW1lKVxuICAgIGNvbnN0IHJlbGF0aXZlU3BsaXRQYXRoID0gWy4uLnJlbGF0aXZlU3BsaXREaXIsIGZpbGVuYW1lXVxuICAgIGlmIChmcy5zdGF0U3luYyhmaWxlUGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgeWllbGQqIHdhbGtEaXIocm9vdERpciwgcmVsYXRpdmVTcGxpdFBhdGgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHlpZWxkIHJlbGF0aXZlU3BsaXRQYXRoXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkKHBhdGg6IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IHJhd2pzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhwYXRoLCB7XG4gICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICB9KVxuICByZXR1cm4gSlNPTi5wYXJzZShyYXdqc29uKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGUoc29tZXRoaW5nOiBhbnksIGZpbGVuYW1lOiBzdHJpbmcpOiBhbnkge1xuICBjb25zdCBjb250ZW50ID0gSlNPTi5zdHJpbmdpZnkoc29tZXRoaW5nLCBudWxsLCAyKVxuICBmcy5lbnN1cmVEaXJTeW5jKHBhdGguZGlybmFtZShmaWxlbmFtZSkpXG4gIGZzLndyaXRlRmlsZVN5bmMoZmlsZW5hbWUsIGNvbnRlbnQsIHtcbiAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gIH0pXG59XG5cbmV4cG9ydCBjbGFzcyBHZXRGaWxlTm90Rm91bmRFcnJvciB7XG4gIG1lc3NhZ2U6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2VcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZXMoYXJnczogYW55KTogYW55IHtcbiAgbGV0IGZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gIGZ1bmN0aW9uIF9nZXRGaWxlcyhmaWxlT3JQYXR0ZXJuOiBhbnkpIHtcbiAgICBpZiAoZ2xvYi5oYXNNYWdpYyhmaWxlT3JQYXR0ZXJuKSkge1xuICAgICAgY29uc3QgZGF0YUZpbGVzID0gZ2xvYi5zeW5jKGZpbGVPclBhdHRlcm4sIHsgY3dkOiBwcm9jZXNzLmN3ZCgpIH0pXG4gICAgICBpZiAoZGF0YUZpbGVzLmxlbmd0aCA8PSAwKVxuICAgICAgICB0aHJvdyBuZXcgR2V0RmlsZU5vdEZvdW5kRXJyb3IoYCR7ZmlsZU9yUGF0dGVybn0gZ2xvYiBkb2VzIG5vdCBtYXRjaGApXG4gICAgICBmaWxlcyA9IGZpbGVzLmNvbmNhdChkYXRhRmlsZXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbGVzLnB1c2goZmlsZU9yUGF0dGVybilcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlT3JQYXR0ZXJuKSlcbiAgICAgICAgdGhyb3cgbmV3IEdldEZpbGVOb3RGb3VuZEVycm9yKGAke2ZpbGVPclBhdHRlcm59IGZpbGUgZG9lcyBub3QgZXhpc3RgKVxuICAgIH1cbiAgfVxuICBhcmdzLmZvckVhY2goX2dldEZpbGVzKVxuICByZXR1cm4gZmlsZXNcbn1cbiJdfQ==
@@ -334,7 +334,7 @@ function parseTexteLoi(assembleeUrl, page) {
334
334
  state = "firstAlineaElement";
335
335
  } else {
336
336
  // <P/> is for footnotes
337
- (0, _assert["default"])(["BR", "HR", "P"].includes(bodyChild.tagName), "\xD9nexpected tag name \"".concat(bodyChild.tagName, "\" for body child")); // Stay in the same state to go to next bodyChild.
337
+ (0, _assert["default"])(["BR", "HR", "P"].includes(bodyChild.tagName), "Unexpected tag name \"".concat(bodyChild.tagName, "\" for body child")); // Stay in the same state to go to next bodyChild.
338
338
  }
339
339
  }
340
340
 
@@ -560,4 +560,4 @@ function _retrieveTexteLoiParsed() {
560
560
  }));
561
561
  return _retrieveTexteLoiParsed.apply(this, arguments);
562
562
  }
563
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXJzL2RvY3VtZW50cy50cyJdLCJuYW1lcyI6WyJwYXJzZVRleHRlTG9pIiwiYXNzZW1ibGVlVXJsIiwicGFnZSIsInBhZ2VTZWdtZW50cyIsInNwbGl0IiwiYXNzZXJ0Iiwic3RyaWN0RXF1YWwiLCJsZW5ndGgiLCJodG1sIiwidHJpbSIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInN1YnN0cmluZyIsIkpTRE9NIiwid2luZG93IiwiZG9jdW1lbnQiLCJjaGlsZHJlbiIsImh0bWxFbGVtZW50IiwiYm9keUVsZW1lbnQiLCJkaXZFbGVtZW50IiwidGFnTmFtZSIsIm5ld0RpdkVsZW1lbnQiLCJpbnNlcnRCZWZvcmUiLCJjcmVhdGVFbGVtZW50IiwiZGl2Q2hpbGQiLCJnZXRBdHRyaWJ1dGUiLCJhcHBlbmRDaGlsZCIsImNsb3NlIiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsImJvZHlDaGlsZCIsImFsaW5lYUVsZW1lbnQiLCJpc011bHRpTGluZXNIZWFkZXIiLCJsZXZlbCIsImxldmVscyIsImxpbmVFbGVtZW50cyIsIm5leHRQYXJlbnRTdGF0ZSIsInBhcmFncmFwaENoaWxkIiwicGFyYWdyYXBoRWxlbWVudCIsInN0YXRlIiwic3ViQWxpbmVhRWxlbWVudCIsInN1YmRpdmlzaW9ucyIsInN1YmRpdmlzaW9uQWxpbmVhc0h0bWwiLCJzdWJkaXZpc2lvbkFsaW5lYXNUZXh0Iiwic3ViZGl2aXNpb25IZWFkZXJzSHRtbCIsInN1YmRpdmlzaW9uSGVhZGVyc1RleHQiLCJ1bmRlZmluZWQiLCJoZWFkZXJUZXh0IiwidGV4dENvbnRlbnQiLCJuYW1lQ29tcHV0ZWQiLCJub3JtYWxpemUiLCJyZXBsYWNlIiwibmFtZVVwcGVyIiwidG9VcHBlckNhc2UiLCJuZXh0TGV2ZWwiLCJtYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJwb3AiLCJwdXNoIiwiYWxpbmVhcyIsImhlYWRlcnMiLCJpZCIsInJlbGF0aXZlTGV2ZWwiLCJ0ZXh0IiwibmV4dEVsZW1lbnRTaWJsaW5nIiwiaW5jbHVkZXMiLCJsaW5lVGV4dCIsIm1hcCIsImVsZW1lbnQiLCJqb2luIiwibGluZUh0bWwiLCJvdXRlckhUTUwiLCJjbGFzc05hbWUiLCJ1cmwiLCJyZXRyaWV2ZVRleHRlTG9pUGFyc2VkIiwiZmV0Y2giLCJyZXNwb25zZSIsIm9rIiwic3RhdHVzIiwic3RhdHVzVGV4dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVPLFNBQVNBLGFBQVQsQ0FBdUJDLFlBQXZCLEVBQTZDQyxJQUE3QyxFQUEyRDtBQUNoRTtBQUNBLE1BQU1DLFlBQVksR0FBR0QsSUFBSSxDQUFDRSxLQUFMLENBQVcsVUFBWCxDQUFyQjs7QUFDQUMscUJBQU9DLFdBQVAsQ0FBbUJILFlBQVksQ0FBQ0ksTUFBaEMsRUFBd0MsQ0FBeEMsRUFBMkNMLElBQTNDOztBQUNBLE1BQUlNLElBQUksR0FBR0wsWUFBWSxDQUFDLENBQUQsQ0FBWixDQUFnQk0sSUFBaEIsRUFBWDtBQUNBLDBCQUFPRCxJQUFJLENBQUNFLFVBQUwsQ0FBZ0IsTUFBaEIsQ0FBUDtBQUNBLDBCQUFPRixJQUFJLENBQUNHLFFBQUwsQ0FBYyxRQUFkLENBQVA7QUFDQUgsRUFBQUEsSUFBSSxrQkFBV0EsSUFBSSxDQUFDSSxTQUFMLENBQWUsQ0FBZixFQUFrQkosSUFBSSxDQUFDRCxNQUFMLEdBQWMsQ0FBaEMsQ0FBWCxZQUFKLENBUGdFLENBU2hFOztBQUNBLGVBQW1CLElBQUlNLFlBQUosQ0FBVUwsSUFBVixDQUFuQjtBQUFBLE1BQVFNLE1BQVIsVUFBUUEsTUFBUjs7QUFDQSxNQUFRQyxRQUFSLEdBQXFCRCxNQUFyQixDQUFRQyxRQUFSOztBQUNBVixxQkFBT0MsV0FBUCxDQUFtQlMsUUFBUSxDQUFDQyxRQUFULENBQWtCVCxNQUFyQyxFQUE2QyxDQUE3Qzs7QUFDQSxNQUFNVSxXQUFXLEdB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UUxOLGNBQUFBLElBQUksRUFBSkE7QUFSSyxhQUFQO0FBWEo7O0FBc0JBO0FBQ0FzQyxRQUFBQSxLQUFLLEdBQUcsc0JBQVI7QUFDQTs7QUFDRjtBQUNFLDBDQUEyQkEsS0FBM0I7QUE1VUo7QUE4VUQ7O0FBRUQxQixFQUFBQSxNQUFNLENBQUNhLEtBQVAsR0E5WWdFLENBOFlqRDs7QUFFZixTQUFPO0FBQ0xDLElBQUFBLEtBQUssRUFBRSxJQURGO0FBRUxwQixJQUFBQSxJQUFJLEVBQUpBLElBRks7QUFHTE4sSUFBQUEsSUFBSSxFQUFKQSxJQUhLO0FBSUx3QyxJQUFBQSxZQUFZLEVBQVpBLFlBSks7QUFLTGlDLElBQUFBLEdBQUcsRUFBRTFFO0FBTEEsR0FBUDtBQU9EOztTQUVxQjJFLHNCOzs7OztvRkFBZixpQkFDTEMsS0FESyxFQUtMNUUsWUFMSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQU9rQjRFLEtBQUssQ0FBQzVFLFlBQUQsQ0FQdkI7O0FBQUE7QUFPQzZFLFlBQUFBLFFBUEQ7QUFBQTtBQUFBLG1CQVFjQSxRQUFRLENBQUNiLElBQVQsRUFSZDs7QUFBQTtBQVFDL0QsWUFBQUEsSUFSRDs7QUFBQSxnQkFTQTRFLFFBQVEsQ0FBQ0MsRUFUVDtBQUFBO0FBQUE7QUFBQTs7QUFBQSw2Q0FVSTtBQUNMbkQsY0FBQUEsS0FBSyxFQUFFO0FBQUVDLGdCQUFBQSxJQUFJLEVBQUVpRCxRQUFRLENBQUNFLE1BQWpCO0FBQXlCbEQsZ0JBQUFBLE9BQU8sRUFBRWdELFFBQVEsQ0FBQ0c7QUFBM0MsZUFERjtBQUVML0UsY0FBQUEsSUFBSSxFQUFKQTtBQUZLLGFBVko7O0FBQUE7QUFBQSw2Q0FlRUYsYUFBYSxDQUFDQyxZQUFELEVBQWVDLElBQWYsQ0FmZjs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCB7IEpTRE9NIH0gZnJvbSBcImpzZG9tXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVGV4dGVMb2koYXNzZW1ibGVlVXJsOiBzdHJpbmcsIHBhZ2U6IHN0cmluZykge1xuICAvLyBSZXBhaXIgSFRNTC5cbiAgY29uc3QgcGFnZVNlZ21lbnRzID0gcGFnZS5zcGxpdChcIjwvc3R5bGU+XCIpXG4gIGFzc2VydC5zdHJpY3RFcXVhbChwYWdlU2VnbWVudHMubGVuZ3RoLCAyLCBwYWdlKVxuICBsZXQgaHRtbCA9IHBhZ2VTZWdtZW50c1sxXS50cmltKClcbiAgYXNzZXJ0KGh0bWwuc3RhcnRzV2l0aChcIjxkaXZcIikpXG4gIGFzc2VydChodG1sLmVuZHNXaXRoKFwiPC9kaXY+XCIpKVxuICBodG1sID0gYDxodG1sJHtodG1sLnN1YnN0cmluZyg0LCBodG1sLmxlbmd0aCAtIDYpfTwvaHRtbD5gXG5cbiAgLy8gRXh0cmFjdCBzdWJkaXZpc2lvbnMgZnJvbSBIVE1MLlxuICBjb25zdCB7IHdpbmRvdyB9ID0gbmV3IEpTRE9NKGh0bWwpXG4gIGNvbnN0IHsgZG9jdW1lbnQgfSA9IHdpbmRvd1xuICBhc3NlcnQuc3RyaWN0RXF1YWwoZG9jdW1lbnQuY2hpbGRyZW4ubGVuZ3RoLCAxKVxuICBjb25zdCBodG1sRWxlbWVudCA9IGRvY3VtZW50LmNoaWxkcmVuWzBdXG4gIGFzc2VydC5zdHJpY3RFcXVhbChodG1sRWxlbWVudC5jaGlsZHJlbi5sZW5ndGgsIDIpXG4gIGNvbnN0IGJvZHlFbGVtZW50ID0gaHRtbEVsZW1lbnQuY2hpbGRyZW5bMV1cbiAgaWYgKGFzc2VtYmxlZVVybCA9PT0gXCJodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzA2NzUuYXNwXCIpIHtcbiAgICAvLyBSZXBhaXIgZG9jdW1lbnQuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJvZHlFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCwgMSlcbiAgICBjb25zdCBkaXZFbGVtZW50ID0gYm9keUVsZW1lbnQuY2hpbGRyZW5bMF1cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGl2RWxlbWVudC50YWdOYW1lLCBcIkRJVlwiKVxuICAgIGNvbnN0IG5ld0RpdkVsZW1lbnQgPSBib2R5RWxlbWVudC5pbnNlcnRCZWZvcmUoXG4gICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLFxuICAgICAgZGl2RWxlbWVudCxcbiAgICApXG4gICAgYm9keUVsZW1lbnQuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJiclwiKSwgZGl2RWxlbWVudClcbiAgICBmb3IgKGNvbnN0IGRpdkNoaWxkIG9mIFsuLi5kaXZFbGVtZW50LmNoaWxkcmVuXSkge1xuICAgICAgaWYgKGRpdkNoaWxkLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpID09PSBcImE5QXJ0aWNsZU51bVwiKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBuZXdEaXZFbGVtZW50LmFwcGVuZENoaWxkKGRpdkNoaWxkKVxuICAgIH1cbiAgfVxuICBpZiAoYm9keUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoIDwgMykge1xuICAgIC8vIE9jY3VycyBpbiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzAzMjYuYXNwLlxuICAgIHdpbmRvdy5jbG9zZSgpIC8vIEZyZWUgbWVtb3J5LlxuICAgIHJldHVybiB7XG4gICAgICBlcnJvcjogeyBjb2RlOiAtMSwgbWVzc2FnZTogXCJUZXh0ZSBkZSBsb2kgc2FucyBjb250ZW51XCIgfSxcbiAgICAgIGh0bWwsXG4gICAgICBwYWdlLFxuICAgIH1cbiAgfVxuICBhc3NlcnQuc3RyaWN0RXF1YWwoYm9keUVsZW1lbnQuY2hpbGRyZW5bMF0udGFnTmFtZSwgXCJESVZcIilcbiAgLy8gRmlyc3QgY2hpbGQgaXMgYSBESVYgZGVzY3JpYmluZyB0aGUgZG9jdW1lbnQgKEFzc2VtYmzDqWUncyBoZWFkZXIpLiBTa2lwIGl0IGZvciBub3cuXG4gIGxldCBib2R5Q2hpbGQgPSBib2R5RWxlbWVudC5jaGlsZHJlblsxXVxuICBhc3NlcnQuc3RyaWN0RXF1YWwoYm9keUNoaWxkLnRhZ05hbWUsIFwiQlJcIilcbiAgbGV0IGFsaW5lYUVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsID0gbnVsbFxuICBsZXQgaXNNdWx0aUxpbmVzSGVhZGVyOiBib29sZWFuID0gZmFsc2VcbiAgbGV0IGxldmVsOiBudW1iZXIgfCBudWxsID0gbnVsbFxuICBsZXQgbGV2ZWxzOiBudW1iZXJbXSA9IFtdXG4gIGxldCBsaW5lRWxlbWVudHM6IEVsZW1lbnRbXSB8IG51bGwgPSBudWxsXG4gIGxldCBuZXh0UGFyZW50U3RhdGUgPSBudWxsXG4gIGxldCBwYXJhZ3JhcGhDaGlsZDogRWxlbWVudCB8IG51bGwgPSBudWxsXG4gIGxldCBwYXJhZ3JhcGhFbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgbGV0IHN0YXRlOiBzdHJpbmcgfCBudWxsID0gXCJuZXh0Qm9keUNoaWxkXCJcbiAgbGV0IHN1YkFsaW5lYUVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsID0gbnVsbFxuICBjb25zdCBzdWJkaXZpc2lvbnMgPSBbXVxuICBsZXQgc3ViZGl2aXNpb25BbGluZWFzSHRtbDogc3RyaW5nW10gfCBudWxsID0gbnVsbFxuICBsZXQgc3ViZGl2aXNpb25BbGluZWFzVGV4dDogc3RyaW5nW10gfCBudWxsID0gbnVsbFxuICBsZXQgc3ViZGl2aXNpb25IZWFkZXJzSHRtbDogc3RyaW5nW10gfCBudWxsID0gbnVsbFxuICBsZXQgc3ViZGl2aXNpb25IZWFkZXJzVGV4dDogc3RyaW5nW10gfCBudWxsID0gbnVsbFxuICB3aGlsZSAoc3RhdGUgIT09IG51bGwpIHtcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICBjYXNlIFwiYWxpbmVhRWxlbWVudFwiOlxuICAgICAgICBzd2l0Y2ggKGFsaW5lYUVsZW1lbnQhLnRhZ05hbWUpIHtcbiAgICAgICAgICBjYXNlIFwiRElWXCI6XG4gICAgICAgICAgICBzdGF0ZSA9IFwiZmlyc3RTdWJBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSBcIkg0XCI6XG4gICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICBuZXh0UGFyZW50U3RhdGUgPSBcIm5leHRBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIHBhcmFncmFwaEVsZW1lbnQgPSBhbGluZWFFbGVtZW50XG4gICAgICAgICAgICBzdGF0ZSA9IFwiZmlyc3RQYXJhZ3JhcGhDaGlsZFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgXCJQXCI6XG4gICAgICAgICAgICBuZXh0UGFyZW50U3RhdGUgPSBcIm5leHRBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIHBhcmFncmFwaEVsZW1lbnQgPSBhbGluZWFFbGVtZW50XG4gICAgICAgICAgICBzdGF0ZSA9IFwiZmlyc3RQYXJhZ3JhcGhDaGlsZFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgXCJPTFwiOlxuICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgc3RhdGUgPSBcIm5leHRBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSBcIlRBQkxFXCI6XG4gICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICBzdGF0ZSA9IFwibmV4dEFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgICAgICBjb2RlOiAtMixcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCB0YWcgbmFtZSBmb3IgYWxpbmVhIGVsZW1lbnQ6ICR7XG4gICAgICAgICAgICAgICAgICBhbGluZWFFbGVtZW50IS50YWdOYW1lXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGh0bWwsXG4gICAgICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJmaXJzdEFsaW5lYUVsZW1lbnRcIjpcbiAgICAgICAgYWxpbmVhRWxlbWVudCA9IGJvZHlDaGlsZC5jaGlsZHJlblswXVxuICAgICAgICBpZiAoYWxpbmVhRWxlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gTm8gYWxpbmVhIGluIGN1cnJlbnQgYm9keUNoaWxkOiBnbyB0byBuZXh0IGJvZHlDaGlsZC5cbiAgICAgICAgICBzdGF0ZSA9IFwibmV4dEJvZHlDaGlsZFwiXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUgPSBcImFsaW5lYUVsZW1lbnRcIlxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwiZmlyc3RQYXJhZ3JhcGhDaGlsZFwiOlxuICAgICAgICBwYXJhZ3JhcGhDaGlsZCA9IHBhcmFncmFwaEVsZW1lbnQhLmNoaWxkcmVuWzBdXG4gICAgICAgIGlmIChwYXJhZ3JhcGhDaGlsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gTm8gY2hpbGQgaW4gY3VycmVudCBwYXJhZ3JhcGg6IGdvIHRvIG5leHQgcGFyZW50IGVsZW1lbnQuXG4gICAgICAgICAgc3RhdGUgPSBuZXh0UGFyZW50U3RhdGVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBoZWFkZXJUZXh0ID0gcGFyYWdyYXBoRWxlbWVudCEudGV4dENvbnRlbnRcbiAgICAgICAgICBjb25zdCBuYW1lQ29tcHV0ZWQgPSAoaGVhZGVyVGV4dCB8fCBcIlwiKVxuICAgICAgICAgICAgLm5vcm1hbGl6ZShcIk5GRFwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwobm91dmVhdVxcKS8sIFwiXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwoUG91ciBjb29yZGluYXRpb25cXCkvLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcKFN1cHByaW3DqXM/XFwpLywgXCJcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC/CoC9nLCBcIiBcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXFwtLC7igKZdL2csIFwiXCIpXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAucmVwbGFjZSgvIHsxLH0vZywgXCJfXCIpXG4gICAgICAgICAgY29uc3QgbmFtZVVwcGVyID0gbmFtZUNvbXB1dGVkLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICBpZiAobmFtZVVwcGVyID09PSBcIlwiKSB7XG4gICAgICAgICAgICAvLyBPY2N1cnMgaW46XG4gICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDQ0NS5hc3BcbiAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNjI2LmFzcFxuICAgICAgICAgICAgLy8gU2tpcCBwYXJhZ3JhcGguXG4gICAgICAgICAgICBzdGF0ZSA9IG5leHRQYXJlbnRTdGF0ZVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbmV4dExldmVsID1cbiAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaCgvXihSQVBQT1JUXyk/QU5ORVhFKF98JCkvKSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgbmFtZVVwcGVyLm1hdGNoKC9eRVRBVF8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15UT01FXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlBBUlRJRV8vKSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaChcbiAgICAgICAgICAgICAgICAgIC9eKFBSRU1JRVJFfFNFQ09OREV8REVVWElFTUV8VFJPSVNJRU1FfFFVQVRSSUVNRSlfUEFSVElFKF98JCkvLFxuICAgICAgICAgICAgICAgICkgIT09IG51bGxcbiAgICAgICAgICAgICAgPyAyXG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eTElWUkVfLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyAzXG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eVElUUkVfLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyA0XG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eU09VU1RJVFJFXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gNVxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXkNIQVBJVFJFXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gNlxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlNFQ1RJT05fLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyA3XG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eU09VU1NFQ1RJT05fLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyA4XG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eQVJUSUNMRVM/Xy8pICE9PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgLy8gXCJFeHBvc8OpIGRlcyBtb3RpZnNcIiBtdXN0IGJlIGF0IHRoZSBzYW1lIGxldmVsIGFzIGFydGljbGUuXG4gICAgICAgICAgICAgICAgLy8gXCJFeHBvc8OpIGRlcyBtb3RpZnNcIiB3aXRob3V0IGNvbnRlbnQ6XG4gICAgICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzA3MDIuYXNwXG4gICAgICAgICAgICAgICAgLy8gXCJFeHBvc8OpIGRlcyBtb3RpZnNcIiB3aXRoIGNvbnRlbnQ6XG4gICAgICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzEzMjYuYXNwXG4gICAgICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzE2MTAuYXNwXG4gICAgICAgICAgICAgICAgbmFtZVVwcGVyLm1hdGNoKC9eRVhQT1NFX0RFU19NT1RJRlMkLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyA5XG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgIGlmIChuZXh0TGV2ZWwgPT09IG51bGwgJiYgc3ViZGl2aXNpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgaWYgKG5hbWVVcHBlci5tYXRjaCgvXihQUk9KRVR8UFJPUE9TSVRJT04pX0RFX0xPSShffCQpLykgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gT2NjdXJzIGluOlxuICAgICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDIzMi5hc3BcbiAgICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzA2MjYuYXNwXG4gICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNjc2LmFzcFxuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgbmFtZVVwcGVyID09PSBcIkpFVVhfT0xZTVBJUVVFU19FVF9QQVJBTFlNUElRVUVTX0RFXzIwMjRcIlxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIC8vIE9jY3VycyBpbiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzA2NzYuYXNwXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWVVcHBlciA9PT0gXCJURVhURV9ERV9MQV9DT01NSVNTSU9OX01JWFRFX1BBUklUQUlSRVwiKSB7XG4gICAgICAgICAgICAgIC8vIE9jY3VycyBpbiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzEyOTQuYXNwXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICBgVW5leHBlY3RlZCBuYW1lVXBwZXIgPSBcIiR7bmFtZVVwcGVyfVwiIGF0IGJlZ2lubmluZyBvZiBcInRleHRlIGRlIGxvaVwiIGF0ICR7YXNzZW1ibGVlVXJsfWAsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFNraXAgcGFyYWdyYXBoLlxuICAgICAgICAgICAgc3RhdGUgPSBuZXh0UGFyZW50U3RhdGVcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChuZXh0TGV2ZWwgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxldmVsID0gbmV4dExldmVsXG4gICAgICAgICAgICB3aGlsZSAobGV2ZWxzLmxlbmd0aCA+IDAgJiYgbGV2ZWwgPCBsZXZlbHNbbGV2ZWxzLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgICAgIGxldmVscy5wb3AoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxldmVscy5sZW5ndGggPT09IDAgfHwgbGV2ZWwgPiBsZXZlbHNbbGV2ZWxzLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgICAgIGxldmVscy5wdXNoKGxldmVsKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQXJ0aWNsZXMgJiBcIkV4cG9zw6kgZGVzIG1vdGlmc1wiIGFyZSB0aGUgb25seSBkaXZpc2lvbnMgd2l0aG91dCBzZWNvbmQgdGl0bGUuXG4gICAgICAgICAgICBpc011bHRpTGluZXNIZWFkZXIgPVxuICAgICAgICAgICAgICBuYW1lVXBwZXIubWF0Y2goL15BUlRJQ0xFUz9fLykgPT09IG51bGwgJiZcbiAgICAgICAgICAgICAgbmFtZVVwcGVyLm1hdGNoKC9eRVhQT1NFX0RFU19NT1RJRlMkLykgPT09IG51bGxcbiAgICAgICAgICAgIHN1YmRpdmlzaW9uQWxpbmVhc0h0bWwgPSBbXVxuICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzVGV4dCA9IFtdXG4gICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNIdG1sID0gW11cbiAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc1RleHQgPSBbXVxuICAgICAgICAgICAgc3ViZGl2aXNpb25zLnB1c2goe1xuICAgICAgICAgICAgICBodG1sOiB7XG4gICAgICAgICAgICAgICAgYWxpbmVhczogc3ViZGl2aXNpb25BbGluZWFzSHRtbCxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBzdWJkaXZpc2lvbkhlYWRlcnNIdG1sLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBpZDogXCJEX1wiICsgbmFtZUNvbXB1dGVkLFxuICAgICAgICAgICAgICBsZXZlbDogbGV2ZWwgKyAxLFxuICAgICAgICAgICAgICByZWxhdGl2ZUxldmVsOiBsZXZlbHMubGVuZ3RoLFxuICAgICAgICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICAgICAgYWxpbmVhczogc3ViZGl2aXNpb25BbGluZWFzVGV4dCxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgICAgbGluZUVsZW1lbnRzID0gW11cbiAgICAgICAgICBzdGF0ZSA9IFwicGFyYWdyYXBoQ2hpbGRcIlxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwiZmlyc3RTdWJBbGluZWFFbGVtZW50XCI6XG4gICAgICAgIHN1YkFsaW5lYUVsZW1lbnQgPSBhbGluZWFFbGVtZW50IS5jaGlsZHJlblswXVxuICAgICAgICBpZiAoc3ViQWxpbmVhRWxlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gTm8gc3ViLWFsaW5lYSBpbiBjdXJyZW50IGFsaW5lYTogZ28gdG8gbmV4dCBhbGluZWEuXG4gICAgICAgICAgc3RhdGUgPSBcIm5leHRBbGluZWFFbGVtZW50XCJcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZSA9IFwic3ViQWxpbmVhRWxlbWVudFwiXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJuZXh0QWxpbmVhRWxlbWVudFwiOlxuICAgICAgICBhbGluZWFFbGVtZW50ID0gYWxpbmVhRWxlbWVudCEubmV4dEVsZW1lbnRTaWJsaW5nXG4gICAgICAgIGlmIChhbGluZWFFbGVtZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gVGhlIGJvZHlDaGlsZCBoYXMgYmVlbiBmdWxseSBwYXJzZWQuIEdvIHRvIG5leHQgYm9keUNoaWxkXG4gICAgICAgICAgc3RhdGUgPSBcIm5leHRCb2R5Q2hpbGRcIlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlID0gXCJhbGluZWFFbGVtZW50XCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcIm5leHRCb2R5Q2hpbGRcIjpcbiAgICAgICAgaWYgKGJvZHlDaGlsZC5uZXh0RWxlbWVudFNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBUaGUgZG9jdW1lbnQgaGFzIGJlZW4gZnVsbHkgcGFyc2VkLlxuICAgICAgICAgIHN0YXRlID0gbnVsbFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJvZHlDaGlsZCA9IGJvZHlDaGlsZC5uZXh0RWxlbWVudFNpYmxpbmdcbiAgICAgICAgICBpZiAoYm9keUNoaWxkLnRhZ05hbWUgPT09IFwiRElWXCIpIHtcbiAgICAgICAgICAgIHN0YXRlID0gXCJmaXJzdEFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyA8UC8+IGlzIGZvciBmb290bm90ZXNcbiAgICAgICAgICAgIGFzc2VydChcbiAgICAgICAgICAgICAgW1wiQlJcIiwgXCJIUlwiLCBcIlBcIl0uaW5jbHVkZXMoYm9keUNoaWxkLnRhZ05hbWUpLFxuICAgICAgICAgICAgICBgw5luZXhwZWN0ZWQgdGFnIG5hbWUgXCIke2JvZHlDaGlsZC50YWdOYW1lfVwiIGZvciBib2R5IGNoaWxkYCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC8vIFN0YXkgaW4gdGhlIHNhbWUgc3RhdGUgdG8gZ28gdG8gbmV4dCBib2R5Q2hpbGQuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwibmV4dFBhcmFncmFwaENoaWxkXCI6XG4gICAgICAgIHBhcmFncmFwaENoaWxkID0gcGFyYWdyYXBoQ2hpbGQhLm5leHRFbGVtZW50U2libGluZ1xuICAgICAgICBpZiAocGFyYWdyYXBoQ2hpbGQgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBUaGUgcGFyYWdyYXBoIGVsZW1lbnQgaGFzIGJlZW4gZnVsbHkgcGFyc2VkLiBHbyB0byBuZXh0IHBhcmVudCBlbGVtZW50LlxuICAgICAgICAgIGNvbnN0IGxpbmVUZXh0ID0gbGluZUVsZW1lbnRzIVxuICAgICAgICAgICAgLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC50ZXh0Q29udGVudClcbiAgICAgICAgICAgIC5qb2luKFwiXCIpXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgaWYgKGxpbmVUZXh0KSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lSHRtbCA9IGxpbmVFbGVtZW50cyFcbiAgICAgICAgICAgICAgLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC5vdXRlckhUTUwpXG4gICAgICAgICAgICAgIC5qb2luKFwiXCIpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc1RleHQhLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICAgICAgICAoaXNNdWx0aUxpbmVzSGVhZGVyICYmIHN1YmRpdmlzaW9uQWxpbmVhc1RleHQhLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNIdG1sIS5wdXNoKGxpbmVIdG1sKVxuICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0IS5wdXNoKGxpbmVUZXh0KVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzSHRtbCEucHVzaChsaW5lSHRtbClcbiAgICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzVGV4dCEucHVzaChsaW5lVGV4dClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzTXVsdGlMaW5lc0hlYWRlciAmJiBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0IS5sZW5ndGggPj0gMikge1xuICAgICAgICAgICAgaXNNdWx0aUxpbmVzSGVhZGVyID0gZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgICAgbGluZUVsZW1lbnRzID0gbnVsbFxuICAgICAgICAgIHN0YXRlID0gbmV4dFBhcmVudFN0YXRlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUgPSBcInBhcmFncmFwaENoaWxkXCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcIm5leHRTdWJBbGluZWFFbGVtZW50XCI6XG4gICAgICAgIHN1YkFsaW5lYUVsZW1lbnQgPSBzdWJBbGluZWFFbGVtZW50IS5uZXh0RWxlbWVudFNpYmxpbmdcbiAgICAgICAgaWYgKHN1YkFsaW5lYUVsZW1lbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBUaGUgYWxpbmVhRWxlbWVudCBoYXMgYmVlbiBmdWxseSBwYXJzZWQuIEdvIHRvIG5leHQgYWxpbmVhRWxlbWVudC5cbiAgICAgICAgICBzdGF0ZSA9IFwibmV4dEFsaW5lYUVsZW1lbnRcIlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlID0gXCJzdWJBbGluZWFFbGVtZW50XCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcInBhcmFncmFwaENoaWxkXCI6XG4gICAgICAgIHN3aXRjaCAocGFyYWdyYXBoQ2hpbGQhLnRhZ05hbWUpIHtcbiAgICAgICAgICBjYXNlIFwiQVwiOiB7XG4gICAgICAgICAgICBsaW5lRWxlbWVudHMhLnB1c2gocGFyYWdyYXBoQ2hpbGQhKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcIkJSXCI6IHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVUZXh0ID0gbGluZUVsZW1lbnRzIVxuICAgICAgICAgICAgICAubWFwKChlbGVtZW50KSA9PiBlbGVtZW50LnRleHRDb250ZW50KVxuICAgICAgICAgICAgICAuam9pbihcIlwiKVxuICAgICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICBpZiAobGluZVRleHQpIHtcbiAgICAgICAgICAgICAgY29uc3QgbGluZUh0bWwgPSBsaW5lRWxlbWVudHMhXG4gICAgICAgICAgICAgICAgLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC5vdXRlckhUTUwpXG4gICAgICAgICAgICAgICAgLmpvaW4oXCJcIilcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc1RleHQhLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICAgICAgICAgIChpc011bHRpTGluZXNIZWFkZXIgJiYgc3ViZGl2aXNpb25BbGluZWFzVGV4dCEubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNIdG1sIS5wdXNoKGxpbmVIdG1sKVxuICAgICAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc1RleHQhLnB1c2gobGluZVRleHQpXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzSHRtbCEucHVzaChsaW5lSHRtbClcbiAgICAgICAgICAgICAgICBzdWJkaXZpc2lvbkFsaW5lYXNUZXh0IS5wdXNoKGxpbmVUZXh0KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5lRWxlbWVudHMgPSBbXVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcIkRFTFwiOiB7XG4gICAgICAgICAgICBsaW5lRWxlbWVudHMhLnB1c2gocGFyYWdyYXBoQ2hpbGQhKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcIklNR1wiOiB7XG4gICAgICAgICAgICBsaW5lRWxlbWVudHMhLnB1c2gocGFyYWdyYXBoQ2hpbGQhKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcIlNQQU5cIjoge1xuICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gcGFyYWdyYXBoQ2hpbGQhLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpXG4gICAgICAgICAgICBzd2l0Y2ggKGNsYXNzTmFtZSkge1xuICAgICAgICAgICAgICBjYXNlIFwiYUVsb2lQYXN0aWxsZVwiOiB7XG4gICAgICAgICAgICAgICAgLy8gU2tpcCBwYXN0aWxsw6kgU1BBTi5cbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNhc2UgXCJhRWxvaVBhc3RpbGxlMFwiOiB7XG4gICAgICAgICAgICAgICAgLy8gU2tpcCBwYXN0aWxsw6kgU1BBTi5cbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgbGluZUVsZW1lbnRzIS5wdXNoKHBhcmFncmFwaENoaWxkISlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBlcnJvcjoge1xuICAgICAgICAgICAgICAgIGNvZGU6IC0zLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBVbmV4cGVjdGVkIHRhZyBuYW1lIGZvciBwYXJhZ3JhcGggY2hpbGQ6ICR7XG4gICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhDaGlsZCEudGFnTmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBodG1sLFxuICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN0YXRlID0gXCJuZXh0UGFyYWdyYXBoQ2hpbGRcIlxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcInN1YkFsaW5lYUVsZW1lbnRcIjpcbiAgICAgICAgc3dpdGNoIChzdWJBbGluZWFFbGVtZW50IS50YWdOYW1lKSB7XG4gICAgICAgICAgY2FzZSBcIlBcIjpcbiAgICAgICAgICAgIG5leHRQYXJlbnRTdGF0ZSA9IFwibmV4dFN1YkFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgICAgcGFyYWdyYXBoRWxlbWVudCA9IHN1YkFsaW5lYUVsZW1lbnRcbiAgICAgICAgICAgIHN0YXRlID0gXCJmaXJzdFBhcmFncmFwaENoaWxkXCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSBcIlRBQkxFXCI6XG4gICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICBzdGF0ZSA9IFwibmV4dFN1YkFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgICAgICBjb2RlOiAtNCxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCB0YWcgbmFtZSBmb3Igc3ViIGFsaW5lYSBlbGVtZW50OiAke1xuICAgICAgICAgICAgICAgICAgc3ViQWxpbmVhRWxlbWVudCEudGFnTmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBodG1sLFxuICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICAgIHN0YXRlID0gXCJuZXh0U3ViQWxpbmVhRWxlbWVudFwiXG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBgVW5leHBlY3RlZCBzdGF0ZTogJHtzdGF0ZX1gXG4gICAgfVxuICB9XG5cbiAgd2luZG93LmNsb3NlKCkgLy8gRnJlZSBtZW1vcnkuXG5cbiAgcmV0dXJuIHtcbiAgICBlcnJvcjogbnVsbCxcbiAgICBodG1sLFxuICAgIHBhZ2UsXG4gICAgc3ViZGl2aXNpb25zLFxuICAgIHVybDogYXNzZW1ibGVlVXJsLFxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXRyaWV2ZVRleHRlTG9pUGFyc2VkKFxuICBmZXRjaDogKFxuICAgIHVybDogc3RyaW5nIHwgUmVxdWVzdCxcbiAgICBpbml0PzogUmVxdWVzdEluaXQgfCB1bmRlZmluZWQsXG4gICkgPT4gUHJvbWlzZTxSZXNwb25zZT4sXG4gIGFzc2VtYmxlZVVybDogc3RyaW5nLFxuKSB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYXNzZW1ibGVlVXJsKVxuICBjb25zdCBwYWdlID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3I6IHsgY29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0IH0sXG4gICAgICBwYWdlLFxuICAgIH1cbiAgfVxuICByZXR1cm4gcGFyc2VUZXh0ZUxvaShhc3NlbWJsZWVVcmwsIHBhZ2UpXG59XG4iXX0=
563
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXJzL2RvY3VtZW50cy50cyJdLCJuYW1lcyI6WyJwYXJzZVRleHRlTG9pIiwiYXNzZW1ibGVlVXJsIiwicGFnZSIsInBhZ2VTZWdtZW50cyIsInNwbGl0IiwiYXNzZXJ0Iiwic3RyaWN0RXF1YWwiLCJsZW5ndGgiLCJodG1sIiwidHJpbSIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInN1YnN0cmluZyIsIkpTRE9NIiwid2luZG93IiwiZG9jdW1lbnQiLCJjaGlsZHJlbiIsImh0bWxFbGVtZW50IiwiYm9keUVsZW1lbnQiLCJkaXZFbGVtZW50IiwidGFnTmFtZSIsIm5ld0RpdkVsZW1lbnQiLCJpbnNlcnRCZWZvcmUiLCJjcmVhdGVFbGVtZW50IiwiZGl2Q2hpbGQiLCJnZXRBdHRyaWJ1dGUiLCJhcHBlbmRDaGlsZCIsImNsb3NlIiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsImJvZHlDaGlsZCIsImFsaW5lYUVsZW1lbnQiLCJpc011bHRpTGluZXNIZWFkZXIiLCJsZXZlbCIsImxldmVscyIsImxpbmVFbGVtZW50cyIsIm5leHRQYXJlbnRTdGF0ZSIsInBhcmFncmFwaENoaWxkIiwicGFyYWdyYXBoRWxlbWVudCIsInN0YXRlIiwic3ViQWxpbmVhRWxlbWVudCIsInN1YmRpdmlzaW9ucyIsInN1YmRpdmlzaW9uQWxpbmVhc0h0bWwiLCJzdWJkaXZpc2lvbkFsaW5lYXNUZXh0Iiwic3ViZGl2aXNpb25IZWFkZXJzSHRtbCIsInN1YmRpdmlzaW9uSGVhZGVyc1RleHQiLCJ1bmRlZmluZWQiLCJoZWFkZXJUZXh0IiwidGV4dENvbnRlbnQiLCJuYW1lQ29tcHV0ZWQiLCJub3JtYWxpemUiLCJyZXBsYWNlIiwibmFtZVVwcGVyIiwidG9VcHBlckNhc2UiLCJuZXh0TGV2ZWwiLCJtYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJwb3AiLCJwdXNoIiwiYWxpbmVhcyIsImhlYWRlcnMiLCJpZCIsInJlbGF0aXZlTGV2ZWwiLCJ0ZXh0IiwibmV4dEVsZW1lbnRTaWJsaW5nIiwiaW5jbHVkZXMiLCJsaW5lVGV4dCIsIm1hcCIsImVsZW1lbnQiLCJqb2luIiwibGluZUh0bWwiLCJvdXRlckhUTUwiLCJjbGFzc05hbWUiLCJ1cmwiLCJyZXRyaWV2ZVRleHRlTG9pUGFyc2VkIiwiZmV0Y2giLCJyZXNwb25zZSIsIm9rIiwic3RhdHVzIiwic3RhdHVzVGV4dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVPLFNBQVNBLGFBQVQsQ0FBdUJDLFlBQXZCLEVBQTZDQyxJQUE3QyxFQUEyRDtBQUNoRTtBQUNBLE1BQU1DLFlBQVksR0FBR0QsSUFBSSxDQUFDRSxLQUFMLENBQVcsVUFBWCxDQUFyQjs7QUFDQUMscUJBQU9DLFdBQVAsQ0FBbUJILFlBQVksQ0FBQ0ksTUFBaEMsRUFBd0MsQ0FBeEMsRUFBMkNMLElBQTNDOztBQUNBLE1BQUlNLElBQUksR0FBR0wsWUFBWSxDQUFDLENBQUQsQ0FBWixDQUFnQk0sSUFBaEIsRUFBWDtBQUNBLDBCQUFPRCxJQUFJLENBQUNFLFVBQUwsQ0FBZ0IsTUFBaEIsQ0FBUDtBQUNBLDBCQUFPRixJQUFJLENBQUNHLFFBQUwsQ0FBYyxRQUFkLENBQVA7QUFDQUgsRUFBQUEsSUFBSSxrQkFBV0EsSUFBSSxDQUFDSSxTQUFMLENBQWUsQ0FBZixFQUFrQkosSUFBSSxDQUFDRCxNQUFMLEdBQWMsQ0FBaEMsQ0FBWCxZQUFKLENBUGdFLENBU2hFOztBQUNBLGVBQW1CLElBQUlNLFlBQUosQ0FBVUwsSUFBVixDQUFuQjtBQUFBLE1BQVFNLE1BQVIsVUFBUUEsTUFBUjs7QUFDQSxNQUFRQyxRQUFSLEdBQXFCRCxNQUFyQixDQUFRQyxRQUFSOztBQUNBVixxQkFBT0MsV0FBUCxDQUFtQlMsUUFBUSxDQUFDQyxRQUFULENBQWtCVCxNQUFyQyxFQUE2QyxDQUE3Qzs7QUFDQSxNQUFNVSxXQUFXLEdB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UUxOLGNBQUFBLElBQUksRUFBSkE7QUFSSyxhQUFQO0FBWEo7O0FBc0JBO0FBQ0FzQyxRQUFBQSxLQUFLLEdBQUcsc0JBQVI7QUFDQTs7QUFDRjtBQUNFLDBDQUEyQkEsS0FBM0I7QUE1VUo7QUE4VUQ7O0FBRUQxQixFQUFBQSxNQUFNLENBQUNhLEtBQVAsR0E5WWdFLENBOFlqRDs7QUFFZixTQUFPO0FBQ0xDLElBQUFBLEtBQUssRUFBRSxJQURGO0FBRUxwQixJQUFBQSxJQUFJLEVBQUpBLElBRks7QUFHTE4sSUFBQUEsSUFBSSxFQUFKQSxJQUhLO0FBSUx3QyxJQUFBQSxZQUFZLEVBQVpBLFlBSks7QUFLTGlDLElBQUFBLEdBQUcsRUFBRTFFO0FBTEEsR0FBUDtBQU9EOztTQUVxQjJFLHNCOzs7OztvRkFBZixpQkFDTEMsS0FESyxFQUtMNUUsWUFMSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQU9rQjRFLEtBQUssQ0FBQzVFLFlBQUQsQ0FQdkI7O0FBQUE7QUFPQzZFLFlBQUFBLFFBUEQ7QUFBQTtBQUFBLG1CQVFjQSxRQUFRLENBQUNiLElBQVQsRUFSZDs7QUFBQTtBQVFDL0QsWUFBQUEsSUFSRDs7QUFBQSxnQkFTQTRFLFFBQVEsQ0FBQ0MsRUFUVDtBQUFBO0FBQUE7QUFBQTs7QUFBQSw2Q0FVSTtBQUNMbkQsY0FBQUEsS0FBSyxFQUFFO0FBQUVDLGdCQUFBQSxJQUFJLEVBQUVpRCxRQUFRLENBQUNFLE1BQWpCO0FBQXlCbEQsZ0JBQUFBLE9BQU8sRUFBRWdELFFBQVEsQ0FBQ0c7QUFBM0MsZUFERjtBQUVML0UsY0FBQUEsSUFBSSxFQUFKQTtBQUZLLGFBVko7O0FBQUE7QUFBQSw2Q0FlRUYsYUFBYSxDQUFDQyxZQUFELEVBQWVDLElBQWYsQ0FmZjs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCB7IEpTRE9NIH0gZnJvbSBcImpzZG9tXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVGV4dGVMb2koYXNzZW1ibGVlVXJsOiBzdHJpbmcsIHBhZ2U6IHN0cmluZykge1xuICAvLyBSZXBhaXIgSFRNTC5cbiAgY29uc3QgcGFnZVNlZ21lbnRzID0gcGFnZS5zcGxpdChcIjwvc3R5bGU+XCIpXG4gIGFzc2VydC5zdHJpY3RFcXVhbChwYWdlU2VnbWVudHMubGVuZ3RoLCAyLCBwYWdlKVxuICBsZXQgaHRtbCA9IHBhZ2VTZWdtZW50c1sxXS50cmltKClcbiAgYXNzZXJ0KGh0bWwuc3RhcnRzV2l0aChcIjxkaXZcIikpXG4gIGFzc2VydChodG1sLmVuZHNXaXRoKFwiPC9kaXY+XCIpKVxuICBodG1sID0gYDxodG1sJHtodG1sLnN1YnN0cmluZyg0LCBodG1sLmxlbmd0aCAtIDYpfTwvaHRtbD5gXG5cbiAgLy8gRXh0cmFjdCBzdWJkaXZpc2lvbnMgZnJvbSBIVE1MLlxuICBjb25zdCB7IHdpbmRvdyB9ID0gbmV3IEpTRE9NKGh0bWwpXG4gIGNvbnN0IHsgZG9jdW1lbnQgfSA9IHdpbmRvd1xuICBhc3NlcnQuc3RyaWN0RXF1YWwoZG9jdW1lbnQuY2hpbGRyZW4ubGVuZ3RoLCAxKVxuICBjb25zdCBodG1sRWxlbWVudCA9IGRvY3VtZW50LmNoaWxkcmVuWzBdXG4gIGFzc2VydC5zdHJpY3RFcXVhbChodG1sRWxlbWVudC5jaGlsZHJlbi5sZW5ndGgsIDIpXG4gIGNvbnN0IGJvZHlFbGVtZW50ID0gaHRtbEVsZW1lbnQuY2hpbGRyZW5bMV1cbiAgaWYgKGFzc2VtYmxlZVVybCA9PT0gXCJodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzA2NzUuYXNwXCIpIHtcbiAgICAvLyBSZXBhaXIgZG9jdW1lbnQuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJvZHlFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCwgMSlcbiAgICBjb25zdCBkaXZFbGVtZW50ID0gYm9keUVsZW1lbnQuY2hpbGRyZW5bMF1cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGl2RWxlbWVudC50YWdOYW1lLCBcIkRJVlwiKVxuICAgIGNvbnN0IG5ld0RpdkVsZW1lbnQgPSBib2R5RWxlbWVudC5pbnNlcnRCZWZvcmUoXG4gICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLFxuICAgICAgZGl2RWxlbWVudCxcbiAgICApXG4gICAgYm9keUVsZW1lbnQuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJiclwiKSwgZGl2RWxlbWVudClcbiAgICBmb3IgKGNvbnN0IGRpdkNoaWxkIG9mIFsuLi5kaXZFbGVtZW50LmNoaWxkcmVuXSkge1xuICAgICAgaWYgKGRpdkNoaWxkLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpID09PSBcImE5QXJ0aWNsZU51bVwiKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBuZXdEaXZFbGVtZW50LmFwcGVuZENoaWxkKGRpdkNoaWxkKVxuICAgIH1cbiAgfVxuICBpZiAoYm9keUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoIDwgMykge1xuICAgIC8vIE9jY3VycyBpbiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzAzMjYuYXNwLlxuICAgIHdpbmRvdy5jbG9zZSgpIC8vIEZyZWUgbWVtb3J5LlxuICAgIHJldHVybiB7XG4gICAgICBlcnJvcjogeyBjb2RlOiAtMSwgbWVzc2FnZTogXCJUZXh0ZSBkZSBsb2kgc2FucyBjb250ZW51XCIgfSxcbiAgICAgIGh0bWwsXG4gICAgICBwYWdlLFxuICAgIH1cbiAgfVxuICBhc3NlcnQuc3RyaWN0RXF1YWwoYm9keUVsZW1lbnQuY2hpbGRyZW5bMF0udGFnTmFtZSwgXCJESVZcIilcbiAgLy8gRmlyc3QgY2hpbGQgaXMgYSBESVYgZGVzY3JpYmluZyB0aGUgZG9jdW1lbnQgKEFzc2VtYmzDqWUncyBoZWFkZXIpLiBTa2lwIGl0IGZvciBub3cuXG4gIGxldCBib2R5Q2hpbGQgPSBib2R5RWxlbWVudC5jaGlsZHJlblsxXVxuICBhc3NlcnQuc3RyaWN0RXF1YWwoYm9keUNoaWxkLnRhZ05hbWUsIFwiQlJcIilcbiAgbGV0IGFsaW5lYUVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsID0gbnVsbFxuICBsZXQgaXNNdWx0aUxpbmVzSGVhZGVyOiBib29sZWFuID0gZmFsc2VcbiAgbGV0IGxldmVsOiBudW1iZXIgfCBudWxsID0gbnVsbFxuICBsZXQgbGV2ZWxzOiBudW1iZXJbXSA9IFtdXG4gIGxldCBsaW5lRWxlbWVudHM6IEVsZW1lbnRbXSB8IG51bGwgPSBudWxsXG4gIGxldCBuZXh0UGFyZW50U3RhdGUgPSBudWxsXG4gIGxldCBwYXJhZ3JhcGhDaGlsZDogRWxlbWVudCB8IG51bGwgPSBudWxsXG4gIGxldCBwYXJhZ3JhcGhFbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgbGV0IHN0YXRlOiBzdHJpbmcgfCBudWxsID0gXCJuZXh0Qm9keUNoaWxkXCJcbiAgbGV0IHN1YkFsaW5lYUVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsID0gbnVsbFxuICBjb25zdCBzdWJkaXZpc2lvbnMgPSBbXVxuICBsZXQgc3ViZGl2aXNpb25BbGluZWFzSHRtbDogc3RyaW5nW10gfCBudWxsID0gbnVsbFxuICBsZXQgc3ViZGl2aXNpb25BbGluZWFzVGV4dDogc3RyaW5nW10gfCBudWxsID0gbnVsbFxuICBsZXQgc3ViZGl2aXNpb25IZWFkZXJzSHRtbDogc3RyaW5nW10gfCBudWxsID0gbnVsbFxuICBsZXQgc3ViZGl2aXNpb25IZWFkZXJzVGV4dDogc3RyaW5nW10gfCBudWxsID0gbnVsbFxuICB3aGlsZSAoc3RhdGUgIT09IG51bGwpIHtcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICBjYXNlIFwiYWxpbmVhRWxlbWVudFwiOlxuICAgICAgICBzd2l0Y2ggKGFsaW5lYUVsZW1lbnQhLnRhZ05hbWUpIHtcbiAgICAgICAgICBjYXNlIFwiRElWXCI6XG4gICAgICAgICAgICBzdGF0ZSA9IFwiZmlyc3RTdWJBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSBcIkg0XCI6XG4gICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICBuZXh0UGFyZW50U3RhdGUgPSBcIm5leHRBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIHBhcmFncmFwaEVsZW1lbnQgPSBhbGluZWFFbGVtZW50XG4gICAgICAgICAgICBzdGF0ZSA9IFwiZmlyc3RQYXJhZ3JhcGhDaGlsZFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgXCJQXCI6XG4gICAgICAgICAgICBuZXh0UGFyZW50U3RhdGUgPSBcIm5leHRBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIHBhcmFncmFwaEVsZW1lbnQgPSBhbGluZWFFbGVtZW50XG4gICAgICAgICAgICBzdGF0ZSA9IFwiZmlyc3RQYXJhZ3JhcGhDaGlsZFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgXCJPTFwiOlxuICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgc3RhdGUgPSBcIm5leHRBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSBcIlRBQkxFXCI6XG4gICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICBzdGF0ZSA9IFwibmV4dEFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgICAgICBjb2RlOiAtMixcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCB0YWcgbmFtZSBmb3IgYWxpbmVhIGVsZW1lbnQ6ICR7XG4gICAgICAgICAgICAgICAgICBhbGluZWFFbGVtZW50IS50YWdOYW1lXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGh0bWwsXG4gICAgICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJmaXJzdEFsaW5lYUVsZW1lbnRcIjpcbiAgICAgICAgYWxpbmVhRWxlbWVudCA9IGJvZHlDaGlsZC5jaGlsZHJlblswXVxuICAgICAgICBpZiAoYWxpbmVhRWxlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gTm8gYWxpbmVhIGluIGN1cnJlbnQgYm9keUNoaWxkOiBnbyB0byBuZXh0IGJvZHlDaGlsZC5cbiAgICAgICAgICBzdGF0ZSA9IFwibmV4dEJvZHlDaGlsZFwiXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUgPSBcImFsaW5lYUVsZW1lbnRcIlxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwiZmlyc3RQYXJhZ3JhcGhDaGlsZFwiOlxuICAgICAgICBwYXJhZ3JhcGhDaGlsZCA9IHBhcmFncmFwaEVsZW1lbnQhLmNoaWxkcmVuWzBdXG4gICAgICAgIGlmIChwYXJhZ3JhcGhDaGlsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gTm8gY2hpbGQgaW4gY3VycmVudCBwYXJhZ3JhcGg6IGdvIHRvIG5leHQgcGFyZW50IGVsZW1lbnQuXG4gICAgICAgICAgc3RhdGUgPSBuZXh0UGFyZW50U3RhdGVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBoZWFkZXJUZXh0ID0gcGFyYWdyYXBoRWxlbWVudCEudGV4dENvbnRlbnRcbiAgICAgICAgICBjb25zdCBuYW1lQ29tcHV0ZWQgPSAoaGVhZGVyVGV4dCB8fCBcIlwiKVxuICAgICAgICAgICAgLm5vcm1hbGl6ZShcIk5GRFwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwobm91dmVhdVxcKS8sIFwiXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwoUG91ciBjb29yZGluYXRpb25cXCkvLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcKFN1cHByaW3DqXM/XFwpLywgXCJcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC/CoC9nLCBcIiBcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXFwtLC7igKZdL2csIFwiXCIpXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAucmVwbGFjZSgvIHsxLH0vZywgXCJfXCIpXG4gICAgICAgICAgY29uc3QgbmFtZVVwcGVyID0gbmFtZUNvbXB1dGVkLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICBpZiAobmFtZVVwcGVyID09PSBcIlwiKSB7XG4gICAgICAgICAgICAvLyBPY2N1cnMgaW46XG4gICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDQ0NS5hc3BcbiAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNjI2LmFzcFxuICAgICAgICAgICAgLy8gU2tpcCBwYXJhZ3JhcGguXG4gICAgICAgICAgICBzdGF0ZSA9IG5leHRQYXJlbnRTdGF0ZVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbmV4dExldmVsID1cbiAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaCgvXihSQVBQT1JUXyk/QU5ORVhFKF98JCkvKSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgbmFtZVVwcGVyLm1hdGNoKC9eRVRBVF8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15UT01FXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlBBUlRJRV8vKSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaChcbiAgICAgICAgICAgICAgICAgIC9eKFBSRU1JRVJFfFNFQ09OREV8REVVWElFTUV8VFJPSVNJRU1FfFFVQVRSSUVNRSlfUEFSVElFKF98JCkvLFxuICAgICAgICAgICAgICAgICkgIT09IG51bGxcbiAgICAgICAgICAgICAgPyAyXG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eTElWUkVfLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyAzXG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eVElUUkVfLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyA0XG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eU09VU1RJVFJFXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gNVxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXkNIQVBJVFJFXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gNlxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlNFQ1RJT05fLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyA3XG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eU09VU1NFQ1RJT05fLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyA4XG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eQVJUSUNMRVM/Xy8pICE9PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgLy8gXCJFeHBvc8OpIGRlcyBtb3RpZnNcIiBtdXN0IGJlIGF0IHRoZSBzYW1lIGxldmVsIGFzIGFydGljbGUuXG4gICAgICAgICAgICAgICAgLy8gXCJFeHBvc8OpIGRlcyBtb3RpZnNcIiB3aXRob3V0IGNvbnRlbnQ6XG4gICAgICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzA3MDIuYXNwXG4gICAgICAgICAgICAgICAgLy8gXCJFeHBvc8OpIGRlcyBtb3RpZnNcIiB3aXRoIGNvbnRlbnQ6XG4gICAgICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzEzMjYuYXNwXG4gICAgICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzE2MTAuYXNwXG4gICAgICAgICAgICAgICAgbmFtZVVwcGVyLm1hdGNoKC9eRVhQT1NFX0RFU19NT1RJRlMkLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyA5XG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgIGlmIChuZXh0TGV2ZWwgPT09IG51bGwgJiYgc3ViZGl2aXNpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgaWYgKG5hbWVVcHBlci5tYXRjaCgvXihQUk9KRVR8UFJPUE9TSVRJT04pX0RFX0xPSShffCQpLykgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gT2NjdXJzIGluOlxuICAgICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDIzMi5hc3BcbiAgICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzA2MjYuYXNwXG4gICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNjc2LmFzcFxuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgbmFtZVVwcGVyID09PSBcIkpFVVhfT0xZTVBJUVVFU19FVF9QQVJBTFlNUElRVUVTX0RFXzIwMjRcIlxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIC8vIE9jY3VycyBpbiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzA2NzYuYXNwXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWVVcHBlciA9PT0gXCJURVhURV9ERV9MQV9DT01NSVNTSU9OX01JWFRFX1BBUklUQUlSRVwiKSB7XG4gICAgICAgICAgICAgIC8vIE9jY3VycyBpbiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzEyOTQuYXNwXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICBgVW5leHBlY3RlZCBuYW1lVXBwZXIgPSBcIiR7bmFtZVVwcGVyfVwiIGF0IGJlZ2lubmluZyBvZiBcInRleHRlIGRlIGxvaVwiIGF0ICR7YXNzZW1ibGVlVXJsfWAsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFNraXAgcGFyYWdyYXBoLlxuICAgICAgICAgICAgc3RhdGUgPSBuZXh0UGFyZW50U3RhdGVcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChuZXh0TGV2ZWwgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxldmVsID0gbmV4dExldmVsXG4gICAgICAgICAgICB3aGlsZSAobGV2ZWxzLmxlbmd0aCA+IDAgJiYgbGV2ZWwgPCBsZXZlbHNbbGV2ZWxzLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgICAgIGxldmVscy5wb3AoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxldmVscy5sZW5ndGggPT09IDAgfHwgbGV2ZWwgPiBsZXZlbHNbbGV2ZWxzLmxlbmd0aCAtIDFdKSB7XG4gICAgICAgICAgICAgIGxldmVscy5wdXNoKGxldmVsKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQXJ0aWNsZXMgJiBcIkV4cG9zw6kgZGVzIG1vdGlmc1wiIGFyZSB0aGUgb25seSBkaXZpc2lvbnMgd2l0aG91dCBzZWNvbmQgdGl0bGUuXG4gICAgICAgICAgICBpc011bHRpTGluZXNIZWFkZXIgPVxuICAgICAgICAgICAgICBuYW1lVXBwZXIubWF0Y2goL15BUlRJQ0xFUz9fLykgPT09IG51bGwgJiZcbiAgICAgICAgICAgICAgbmFtZVVwcGVyLm1hdGNoKC9eRVhQT1NFX0RFU19NT1RJRlMkLykgPT09IG51bGxcbiAgICAgICAgICAgIHN1YmRpdmlzaW9uQWxpbmVhc0h0bWwgPSBbXVxuICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzVGV4dCA9IFtdXG4gICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNIdG1sID0gW11cbiAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc1RleHQgPSBbXVxuICAgICAgICAgICAgc3ViZGl2aXNpb25zLnB1c2goe1xuICAgICAgICAgICAgICBodG1sOiB7XG4gICAgICAgICAgICAgICAgYWxpbmVhczogc3ViZGl2aXNpb25BbGluZWFzSHRtbCxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBzdWJkaXZpc2lvbkhlYWRlcnNIdG1sLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBpZDogXCJEX1wiICsgbmFtZUNvbXB1dGVkLFxuICAgICAgICAgICAgICBsZXZlbDogbGV2ZWwgKyAxLFxuICAgICAgICAgICAgICByZWxhdGl2ZUxldmVsOiBsZXZlbHMubGVuZ3RoLFxuICAgICAgICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICAgICAgYWxpbmVhczogc3ViZGl2aXNpb25BbGluZWFzVGV4dCxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgICAgbGluZUVsZW1lbnRzID0gW11cbiAgICAgICAgICBzdGF0ZSA9IFwicGFyYWdyYXBoQ2hpbGRcIlxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwiZmlyc3RTdWJBbGluZWFFbGVtZW50XCI6XG4gICAgICAgIHN1YkFsaW5lYUVsZW1lbnQgPSBhbGluZWFFbGVtZW50IS5jaGlsZHJlblswXVxuICAgICAgICBpZiAoc3ViQWxpbmVhRWxlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gTm8gc3ViLWFsaW5lYSBpbiBjdXJyZW50IGFsaW5lYTogZ28gdG8gbmV4dCBhbGluZWEuXG4gICAgICAgICAgc3RhdGUgPSBcIm5leHRBbGluZWFFbGVtZW50XCJcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZSA9IFwic3ViQWxpbmVhRWxlbWVudFwiXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJuZXh0QWxpbmVhRWxlbWVudFwiOlxuICAgICAgICBhbGluZWFFbGVtZW50ID0gYWxpbmVhRWxlbWVudCEubmV4dEVsZW1lbnRTaWJsaW5nXG4gICAgICAgIGlmIChhbGluZWFFbGVtZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gVGhlIGJvZHlDaGlsZCBoYXMgYmVlbiBmdWxseSBwYXJzZWQuIEdvIHRvIG5leHQgYm9keUNoaWxkXG4gICAgICAgICAgc3RhdGUgPSBcIm5leHRCb2R5Q2hpbGRcIlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlID0gXCJhbGluZWFFbGVtZW50XCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcIm5leHRCb2R5Q2hpbGRcIjpcbiAgICAgICAgaWYgKGJvZHlDaGlsZC5uZXh0RWxlbWVudFNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBUaGUgZG9jdW1lbnQgaGFzIGJlZW4gZnVsbHkgcGFyc2VkLlxuICAgICAgICAgIHN0YXRlID0gbnVsbFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJvZHlDaGlsZCA9IGJvZHlDaGlsZC5uZXh0RWxlbWVudFNpYmxpbmdcbiAgICAgICAgICBpZiAoYm9keUNoaWxkLnRhZ05hbWUgPT09IFwiRElWXCIpIHtcbiAgICAgICAgICAgIHN0YXRlID0gXCJmaXJzdEFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyA8UC8+IGlzIGZvciBmb290bm90ZXNcbiAgICAgICAgICAgIGFzc2VydChcbiAgICAgICAgICAgICAgW1wiQlJcIiwgXCJIUlwiLCBcIlBcIl0uaW5jbHVkZXMoYm9keUNoaWxkLnRhZ05hbWUpLFxuICAgICAgICAgICAgICBgVW5leHBlY3RlZCB0YWcgbmFtZSBcIiR7Ym9keUNoaWxkLnRhZ05hbWV9XCIgZm9yIGJvZHkgY2hpbGRgLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLy8gU3RheSBpbiB0aGUgc2FtZSBzdGF0ZSB0byBnbyB0byBuZXh0IGJvZHlDaGlsZC5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJuZXh0UGFyYWdyYXBoQ2hpbGRcIjpcbiAgICAgICAgcGFyYWdyYXBoQ2hpbGQgPSBwYXJhZ3JhcGhDaGlsZCEubmV4dEVsZW1lbnRTaWJsaW5nXG4gICAgICAgIGlmIChwYXJhZ3JhcGhDaGlsZCA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRoZSBwYXJhZ3JhcGggZWxlbWVudCBoYXMgYmVlbiBmdWxseSBwYXJzZWQuIEdvIHRvIG5leHQgcGFyZW50IGVsZW1lbnQuXG4gICAgICAgICAgY29uc3QgbGluZVRleHQgPSBsaW5lRWxlbWVudHMhXG4gICAgICAgICAgICAubWFwKChlbGVtZW50KSA9PiBlbGVtZW50LnRleHRDb250ZW50KVxuICAgICAgICAgICAgLmpvaW4oXCJcIilcbiAgICAgICAgICAgIC50cmltKClcbiAgICAgICAgICBpZiAobGluZVRleHQpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVIdG1sID0gbGluZUVsZW1lbnRzIVxuICAgICAgICAgICAgICAubWFwKChlbGVtZW50KSA9PiBlbGVtZW50Lm91dGVySFRNTClcbiAgICAgICAgICAgICAgLmpvaW4oXCJcIilcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgc3ViZGl2aXNpb25IZWFkZXJzVGV4dCEubGVuZ3RoID09PSAwIHx8XG4gICAgICAgICAgICAgIChpc011bHRpTGluZXNIZWFkZXIgJiYgc3ViZGl2aXNpb25BbGluZWFzVGV4dCEubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc0h0bWwhLnB1c2gobGluZUh0bWwpXG4gICAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc1RleHQhLnB1c2gobGluZVRleHQpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzdWJkaXZpc2lvbkFsaW5lYXNIdG1sIS5wdXNoKGxpbmVIdG1sKVxuICAgICAgICAgICAgICBzdWJkaXZpc2lvbkFsaW5lYXNUZXh0IS5wdXNoKGxpbmVUZXh0KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNNdWx0aUxpbmVzSGVhZGVyICYmIHN1YmRpdmlzaW9uSGVhZGVyc1RleHQhLmxlbmd0aCA+PSAyKSB7XG4gICAgICAgICAgICBpc011bHRpTGluZXNIZWFkZXIgPSBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgICBsaW5lRWxlbWVudHMgPSBudWxsXG4gICAgICAgICAgc3RhdGUgPSBuZXh0UGFyZW50U3RhdGVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZSA9IFwicGFyYWdyYXBoQ2hpbGRcIlxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwibmV4dFN1YkFsaW5lYUVsZW1lbnRcIjpcbiAgICAgICAgc3ViQWxpbmVhRWxlbWVudCA9IHN1YkFsaW5lYUVsZW1lbnQhLm5leHRFbGVtZW50U2libGluZ1xuICAgICAgICBpZiAoc3ViQWxpbmVhRWxlbWVudCA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRoZSBhbGluZWFFbGVtZW50IGhhcyBiZWVuIGZ1bGx5IHBhcnNlZC4gR28gdG8gbmV4dCBhbGluZWFFbGVtZW50LlxuICAgICAgICAgIHN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUgPSBcInN1YkFsaW5lYUVsZW1lbnRcIlxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwicGFyYWdyYXBoQ2hpbGRcIjpcbiAgICAgICAgc3dpdGNoIChwYXJhZ3JhcGhDaGlsZCEudGFnTmFtZSkge1xuICAgICAgICAgIGNhc2UgXCJBXCI6IHtcbiAgICAgICAgICAgIGxpbmVFbGVtZW50cyEucHVzaChwYXJhZ3JhcGhDaGlsZCEpXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFwiQlJcIjoge1xuICAgICAgICAgICAgY29uc3QgbGluZVRleHQgPSBsaW5lRWxlbWVudHMhXG4gICAgICAgICAgICAgIC5tYXAoKGVsZW1lbnQpID0+IGVsZW1lbnQudGV4dENvbnRlbnQpXG4gICAgICAgICAgICAgIC5qb2luKFwiXCIpXG4gICAgICAgICAgICAgIC50cmltKClcbiAgICAgICAgICAgIGlmIChsaW5lVGV4dCkge1xuICAgICAgICAgICAgICBjb25zdCBsaW5lSHRtbCA9IGxpbmVFbGVtZW50cyFcbiAgICAgICAgICAgICAgICAubWFwKChlbGVtZW50KSA9PiBlbGVtZW50Lm91dGVySFRNTClcbiAgICAgICAgICAgICAgICAuam9pbihcIlwiKVxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgc3ViZGl2aXNpb25IZWFkZXJzVGV4dCEubGVuZ3RoID09PSAwIHx8XG4gICAgICAgICAgICAgICAgKGlzTXVsdGlMaW5lc0hlYWRlciAmJiBzdWJkaXZpc2lvbkFsaW5lYXNUZXh0IS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc0h0bWwhLnB1c2gobGluZUh0bWwpXG4gICAgICAgICAgICAgICAgc3ViZGl2aXNpb25IZWFkZXJzVGV4dCEucHVzaChsaW5lVGV4dClcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdWJkaXZpc2lvbkFsaW5lYXNIdG1sIS5wdXNoKGxpbmVIdG1sKVxuICAgICAgICAgICAgICAgIHN1YmRpdmlzaW9uQWxpbmVhc1RleHQhLnB1c2gobGluZVRleHQpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpbmVFbGVtZW50cyA9IFtdXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFwiREVMXCI6IHtcbiAgICAgICAgICAgIGxpbmVFbGVtZW50cyEucHVzaChwYXJhZ3JhcGhDaGlsZCEpXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFwiSU1HXCI6IHtcbiAgICAgICAgICAgIGxpbmVFbGVtZW50cyEucHVzaChwYXJhZ3JhcGhDaGlsZCEpXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFwiU1BBTlwiOiB7XG4gICAgICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBwYXJhZ3JhcGhDaGlsZCEuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIilcbiAgICAgICAgICAgIHN3aXRjaCAoY2xhc3NOYW1lKSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJhRWxvaVBhc3RpbGxlXCI6IHtcbiAgICAgICAgICAgICAgICAvLyBTa2lwIHBhc3RpbGzDqSBTUEFOLlxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY2FzZSBcImFFbG9pUGFzdGlsbGUwXCI6IHtcbiAgICAgICAgICAgICAgICAvLyBTa2lwIHBhc3RpbGzDqSBTUEFOLlxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBsaW5lRWxlbWVudHMhLnB1c2gocGFyYWdyYXBoQ2hpbGQhKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgICAgICAgY29kZTogLTMsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYFVuZXhwZWN0ZWQgdGFnIG5hbWUgZm9yIHBhcmFncmFwaCBjaGlsZDogJHtcbiAgICAgICAgICAgICAgICAgIHBhcmFncmFwaENoaWxkIS50YWdOYW1lXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGh0bWwsXG4gICAgICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGUgPSBcIm5leHRQYXJhZ3JhcGhDaGlsZFwiXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwic3ViQWxpbmVhRWxlbWVudFwiOlxuICAgICAgICBzd2l0Y2ggKHN1YkFsaW5lYUVsZW1lbnQhLnRhZ05hbWUpIHtcbiAgICAgICAgICBjYXNlIFwiUFwiOlxuICAgICAgICAgICAgbmV4dFBhcmVudFN0YXRlID0gXCJuZXh0U3ViQWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBwYXJhZ3JhcGhFbGVtZW50ID0gc3ViQWxpbmVhRWxlbWVudFxuICAgICAgICAgICAgc3RhdGUgPSBcImZpcnN0UGFyYWdyYXBoQ2hpbGRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlIFwiVEFCTEVcIjpcbiAgICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgIHN0YXRlID0gXCJuZXh0U3ViQWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBlcnJvcjoge1xuICAgICAgICAgICAgICAgIGNvZGU6IC00LFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBVbmV4cGVjdGVkIHRhZyBuYW1lIGZvciBzdWIgYWxpbmVhIGVsZW1lbnQ6ICR7XG4gICAgICAgICAgICAgICAgICBzdWJBbGluZWFFbGVtZW50IS50YWdOYW1lXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGh0bWwsXG4gICAgICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgICAgc3RhdGUgPSBcIm5leHRTdWJBbGluZWFFbGVtZW50XCJcbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IGBVbmV4cGVjdGVkIHN0YXRlOiAke3N0YXRlfWBcbiAgICB9XG4gIH1cblxuICB3aW5kb3cuY2xvc2UoKSAvLyBGcmVlIG1lbW9yeS5cblxuICByZXR1cm4ge1xuICAgIGVycm9yOiBudWxsLFxuICAgIGh0bWwsXG4gICAgcGFnZSxcbiAgICBzdWJkaXZpc2lvbnMsXG4gICAgdXJsOiBhc3NlbWJsZWVVcmwsXG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlVGV4dGVMb2lQYXJzZWQoXG4gIGZldGNoOiAoXG4gICAgdXJsOiBzdHJpbmcgfCBSZXF1ZXN0LFxuICAgIGluaXQ/OiBSZXF1ZXN0SW5pdCB8IHVuZGVmaW5lZCxcbiAgKSA9PiBQcm9taXNlPFJlc3BvbnNlPixcbiAgYXNzZW1ibGVlVXJsOiBzdHJpbmcsXG4pIHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChhc3NlbWJsZWVVcmwpXG4gIGNvbnN0IHBhZ2UgPSBhd2FpdCByZXNwb25zZS50ZXh0KClcbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHJldHVybiB7XG4gICAgICBlcnJvcjogeyBjb2RlOiByZXNwb25zZS5zdGF0dXMsIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHQgfSxcbiAgICAgIHBhZ2UsXG4gICAgfVxuICB9XG4gIHJldHVybiBwYXJzZVRleHRlTG9pKGFzc2VtYmxlZVVybCwgcGFnZSlcbn1cbiJdfQ==
@@ -244,7 +244,7 @@ export function parseTexteLoi(assembleeUrl, page) {
244
244
  state = "firstAlineaElement";
245
245
  } else {
246
246
  // <P/> is for footnotes
247
- assert(["BR", "HR", "P"].includes(bodyChild.tagName), `Ùnexpected tag name "${bodyChild.tagName}" for body child`); // Stay in the same state to go to next bodyChild.
247
+ assert(["BR", "HR", "P"].includes(bodyChild.tagName), `Unexpected tag name "${bodyChild.tagName}" for body child`); // Stay in the same state to go to next bodyChild.
248
248
  }
249
249
  }
250
250
 
@@ -430,4 +430,4 @@ export async function retrieveTexteLoiParsed(fetch, assembleeUrl) {
430
430
 
431
431
  return parseTexteLoi(assembleeUrl, page);
432
432
  }
433
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXJzL2RvY3VtZW50cy50cyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJKU0RPTSIsInBhcnNlVGV4dGVMb2kiLCJhc3NlbWJsZWVVcmwiLCJwYWdlIiwicGFnZVNlZ21lbnRzIiwic3BsaXQiLCJzdHJpY3RFcXVhbCIsImxlbmd0aCIsImh0bWwiLCJ0cmltIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic3Vic3RyaW5nIiwid2luZG93IiwiZG9jdW1lbnQiLCJjaGlsZHJlbiIsImh0bWxFbGVtZW50IiwiYm9keUVsZW1lbnQiLCJkaXZFbGVtZW50IiwidGFnTmFtZSIsIm5ld0RpdkVsZW1lbnQiLCJpbnNlcnRCZWZvcmUiLCJjcmVhdGVFbGVtZW50IiwiZGl2Q2hpbGQiLCJnZXRBdHRyaWJ1dGUiLCJhcHBlbmRDaGlsZCIsImNsb3NlIiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsImJvZHlDaGlsZCIsImFsaW5lYUVsZW1lbnQiLCJpc011bHRpTGluZXNIZWFkZXIiLCJsZXZlbCIsImxldmVscyIsImxpbmVFbGVtZW50cyIsIm5leHRQYXJlbnRTdGF0ZSIsInBhcmFncmFwaENoaWxkIiwicGFyYWdyYXBoRWxlbWVudCIsInN0YXRlIiwic3ViQWxpbmVhRWxlbWVudCIsInN1YmRpdmlzaW9ucyIsInN1YmRpdmlzaW9uQWxpbmVhc0h0bWwiLCJzdWJkaXZpc2lvbkFsaW5lYXNUZXh0Iiwic3ViZGl2aXNpb25IZWFkZXJzSHRtbCIsInN1YmRpdmlzaW9uSGVhZGVyc1RleHQiLCJ1bmRlZmluZWQiLCJoZWFkZXJUZXh0IiwidGV4dENvbnRlbnQiLCJuYW1lQ29tcHV0ZWQiLCJub3JtYWxpemUiLCJyZXBsYWNlIiwibmFtZVVwcGVyIiwidG9VcHBlckNhc2UiLCJuZXh0TGV2ZWwiLCJtYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJwb3AiLCJwdXNoIiwiYWxpbmVhcyIsImhlYWRlcnMiLCJpZCIsInJlbGF0aXZlTGV2ZWwiLCJ0ZXh0IiwibmV4dEVsZW1lbnRTaWJsaW5nIiwiaW5jbHVkZXMiLCJsaW5lVGV4dCIsIm1hcCIsImVsZW1lbnQiLCJqb2luIiwibGluZUh0bWwiLCJvdXRlckhUTUwiLCJjbGFzc05hbWUiLCJ1cmwiLCJyZXRyaWV2ZVRleHRlTG9pUGFyc2VkIiwiZmV0Y2giLCJyZXNwb25zZSIsIm9rIiwic3RhdHVzIiwic3RhdHVzVGV4dCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBUCxNQUFtQixRQUFuQjtBQUNBLFNBQVNDLEtBQVQsUUFBc0IsT0FBdEI7QUFFQSxPQUFPLFNBQVNDLGFBQVQsQ0FBdUJDLFlBQXZCLEVBQTZDQyxJQUE3QyxFQUEyRDtBQUNoRTtBQUNBLFFBQU1DLFlBQVksR0FBR0QsSUFBSSxDQUFDRSxLQUFMLENBQVcsVUFBWCxDQUFyQjtBQUNBTixFQUFBQSxNQUFNLENBQUNPLFdBQVAsQ0FBbUJGLFlBQVksQ0FBQ0csTUFBaEMsRUFBd0MsQ0FBeEMsRUFBMkNKLElBQTNDO0FBQ0EsTUFBSUssSUFBSSxHQUFHSixZQUFZLENBQUMsQ0FBRCxDQUFaLENBQWdCSyxJQUFoQixFQUFYO0FBQ0FWLEVBQUFBLE1BQU0sQ0FBQ1MsSUFBSSxDQUFDRSxVQUFMLENBQWdCLE1BQWhCLENBQUQsQ0FBTjtBQUNBWCxFQUFBQSxNQUFNLENBQUNTLElBQUksQ0FBQ0csUUFBTCxDQUFjLFFBQWQsQ0FBRCxDQUFOO0FBQ0FILEVBQUFBLElBQUksR0FBSSxRQUFPQSxJQUFJLENBQUNJLFNBQUwsQ0FBZSxDQUFmLEVBQWtCSixJQUFJLENBQUNELE1BQUwsR0FBYyxDQUFoQyxDQUFtQyxTQUFsRCxDQVBnRSxDQVNoRTs7QUFDQSxRQUFNO0FBQUVNLElBQUFBO0FBQUYsTUFBYSxJQUFJYixLQUFKLENBQVVRLElBQVYsQ0FBbkI7QUFDQSxRQUFNO0FBQUVNLElBQUFBO0FBQUYsTUFBZUQsTUFBckI7QUFDQWQsRUFBQUEsTUFBTSxDQUFDTyxXQUFQLENBQW1CUSxRQUFRLENBQUNDLFFBQVQsQ0FBa0JSLE1BQXJDLEVBQTZDLENBQTdD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b0MsUUFBQUEsS0FBSyxHQUFHLHNCQUFSO0FBQ0E7O0FBQ0Y7QUFDRSxjQUFPLHFCQUFvQkEsS0FBTSxFQUFqQztBQTVVSjtBQThVRDs7QUFFRDFCLEVBQUFBLE1BQU0sQ0FBQ2EsS0FBUCxHQTlZZ0UsQ0E4WWpEOztBQUVmLFNBQU87QUFDTEMsSUFBQUEsS0FBSyxFQUFFLElBREY7QUFFTG5CLElBQUFBLElBRks7QUFHTEwsSUFBQUEsSUFISztBQUlMc0MsSUFBQUEsWUFKSztBQUtMaUMsSUFBQUEsR0FBRyxFQUFFeEU7QUFMQSxHQUFQO0FBT0Q7QUFFRCxPQUFPLGVBQWV5RSxzQkFBZixDQUNMQyxLQURLLEVBS0wxRSxZQUxLLEVBTUw7QUFDQSxRQUFNMkUsUUFBUSxHQUFHLE1BQU1ELEtBQUssQ0FBQzFFLFlBQUQsQ0FBNUI7QUFDQSxRQUFNQyxJQUFJLEdBQUcsTUFBTTBFLFFBQVEsQ0FBQ2IsSUFBVCxFQUFuQjs7QUFDQSxNQUFJLENBQUNhLFFBQVEsQ0FBQ0MsRUFBZCxFQUFrQjtBQUNoQixXQUFPO0FBQ0xuRCxNQUFBQSxLQUFLLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFaUQsUUFBUSxDQUFDRSxNQUFqQjtBQUF5QmxELFFBQUFBLE9BQU8sRUFBRWdELFFBQVEsQ0FBQ0c7QUFBM0MsT0FERjtBQUVMN0UsTUFBQUE7QUFGSyxLQUFQO0FBSUQ7O0FBQ0QsU0FBT0YsYUFBYSxDQUFDQyxZQUFELEVBQWVDLElBQWYsQ0FBcEI7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgeyBKU0RPTSB9IGZyb20gXCJqc2RvbVwiXG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRleHRlTG9pKGFzc2VtYmxlZVVybDogc3RyaW5nLCBwYWdlOiBzdHJpbmcpIHtcbiAgLy8gUmVwYWlyIEhUTUwuXG4gIGNvbnN0IHBhZ2VTZWdtZW50cyA9IHBhZ2Uuc3BsaXQoXCI8L3N0eWxlPlwiKVxuICBhc3NlcnQuc3RyaWN0RXF1YWwocGFnZVNlZ21lbnRzLmxlbmd0aCwgMiwgcGFnZSlcbiAgbGV0IGh0bWwgPSBwYWdlU2VnbWVudHNbMV0udHJpbSgpXG4gIGFzc2VydChodG1sLnN0YXJ0c1dpdGgoXCI8ZGl2XCIpKVxuICBhc3NlcnQoaHRtbC5lbmRzV2l0aChcIjwvZGl2PlwiKSlcbiAgaHRtbCA9IGA8aHRtbCR7aHRtbC5zdWJzdHJpbmcoNCwgaHRtbC5sZW5ndGggLSA2KX08L2h0bWw+YFxuXG4gIC8vIEV4dHJhY3Qgc3ViZGl2aXNpb25zIGZyb20gSFRNTC5cbiAgY29uc3QgeyB3aW5kb3cgfSA9IG5ldyBKU0RPTShodG1sKVxuICBjb25zdCB7IGRvY3VtZW50IH0gPSB3aW5kb3dcbiAgYXNzZXJ0LnN0cmljdEVxdWFsKGRvY3VtZW50LmNoaWxkcmVuLmxlbmd0aCwgMSlcbiAgY29uc3QgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5jaGlsZHJlblswXVxuICBhc3NlcnQuc3RyaWN0RXF1YWwoaHRtbEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoLCAyKVxuICBjb25zdCBib2R5RWxlbWVudCA9IGh0bWxFbGVtZW50LmNoaWxkcmVuWzFdXG4gIGlmIChhc3NlbWJsZWVVcmwgPT09IFwiaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNjc1LmFzcFwiKSB7XG4gICAgLy8gUmVwYWlyIGRvY3VtZW50LlxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChib2R5RWxlbWVudC5jaGlsZHJlbi5sZW5ndGgsIDEpXG4gICAgY29uc3QgZGl2RWxlbWVudCA9IGJvZHlFbGVtZW50LmNoaWxkcmVuWzBdXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRpdkVsZW1lbnQudGFnTmFtZSwgXCJESVZcIilcbiAgICBjb25zdCBuZXdEaXZFbGVtZW50ID0gYm9keUVsZW1lbnQuaW5zZXJ0QmVmb3JlKFxuICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxcbiAgICAgIGRpdkVsZW1lbnQsXG4gICAgKVxuICAgIGJvZHlFbGVtZW50Lmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYnJcIiksIGRpdkVsZW1lbnQpXG4gICAgZm9yIChjb25zdCBkaXZDaGlsZCBvZiBbLi4uZGl2RWxlbWVudC5jaGlsZHJlbl0pIHtcbiAgICAgIGlmIChkaXZDaGlsZC5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKSA9PT0gXCJhOUFydGljbGVOdW1cIikge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgbmV3RGl2RWxlbWVudC5hcHBlbmRDaGlsZChkaXZDaGlsZClcbiAgICB9XG4gIH1cbiAgaWYgKGJvZHlFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA8IDMpIHtcbiAgICAvLyBPY2N1cnMgaW4gaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wMzI2LmFzcC5cbiAgICB3aW5kb3cuY2xvc2UoKSAvLyBGcmVlIG1lbW9yeS5cbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3I6IHsgY29kZTogLTEsIG1lc3NhZ2U6IFwiVGV4dGUgZGUgbG9pIHNhbnMgY29udGVudVwiIH0sXG4gICAgICBodG1sLFxuICAgICAgcGFnZSxcbiAgICB9XG4gIH1cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKGJvZHlFbGVtZW50LmNoaWxkcmVuWzBdLnRhZ05hbWUsIFwiRElWXCIpXG4gIC8vIEZpcnN0IGNoaWxkIGlzIGEgRElWIGRlc2NyaWJpbmcgdGhlIGRvY3VtZW50IChBc3NlbWJsw6llJ3MgaGVhZGVyKS4gU2tpcCBpdCBmb3Igbm93LlxuICBsZXQgYm9keUNoaWxkID0gYm9keUVsZW1lbnQuY2hpbGRyZW5bMV1cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKGJvZHlDaGlsZC50YWdOYW1lLCBcIkJSXCIpXG4gIGxldCBhbGluZWFFbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgbGV0IGlzTXVsdGlMaW5lc0hlYWRlcjogYm9vbGVhbiA9IGZhbHNlXG4gIGxldCBsZXZlbDogbnVtYmVyIHwgbnVsbCA9IG51bGxcbiAgbGV0IGxldmVsczogbnVtYmVyW10gPSBbXVxuICBsZXQgbGluZUVsZW1lbnRzOiBFbGVtZW50W10gfCBudWxsID0gbnVsbFxuICBsZXQgbmV4dFBhcmVudFN0YXRlID0gbnVsbFxuICBsZXQgcGFyYWdyYXBoQ2hpbGQ6IEVsZW1lbnQgfCBudWxsID0gbnVsbFxuICBsZXQgcGFyYWdyYXBoRWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBudWxsXG4gIGxldCBzdGF0ZTogc3RyaW5nIHwgbnVsbCA9IFwibmV4dEJvZHlDaGlsZFwiXG4gIGxldCBzdWJBbGluZWFFbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgY29uc3Qgc3ViZGl2aXNpb25zID0gW11cbiAgbGV0IHN1YmRpdmlzaW9uQWxpbmVhc0h0bWw6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGxcbiAgbGV0IHN1YmRpdmlzaW9uQWxpbmVhc1RleHQ6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGxcbiAgbGV0IHN1YmRpdmlzaW9uSGVhZGVyc0h0bWw6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGxcbiAgbGV0IHN1YmRpdmlzaW9uSGVhZGVyc1RleHQ6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGxcbiAgd2hpbGUgKHN0YXRlICE9PSBudWxsKSB7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBcImFsaW5lYUVsZW1lbnRcIjpcbiAgICAgICAgc3dpdGNoIChhbGluZWFFbGVtZW50IS50YWdOYW1lKSB7XG4gICAgICAgICAgY2FzZSBcIkRJVlwiOlxuICAgICAgICAgICAgc3RhdGUgPSBcImZpcnN0U3ViQWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgXCJINFwiOlxuICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgbmV4dFBhcmVudFN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBwYXJhZ3JhcGhFbGVtZW50ID0gYWxpbmVhRWxlbWVudFxuICAgICAgICAgICAgc3RhdGUgPSBcImZpcnN0UGFyYWdyYXBoQ2hpbGRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlIFwiUFwiOlxuICAgICAgICAgICAgbmV4dFBhcmVudFN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBwYXJhZ3JhcGhFbGVtZW50ID0gYWxpbmVhRWxlbWVudFxuICAgICAgICAgICAgc3RhdGUgPSBcImZpcnN0UGFyYWdyYXBoQ2hpbGRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlIFwiT0xcIjpcbiAgICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgIHN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgXCJUQUJMRVwiOlxuICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgc3RhdGUgPSBcIm5leHRBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgICAgICAgY29kZTogLTIsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYFVuZXhwZWN0ZWQgdGFnIG5hbWUgZm9yIGFsaW5lYSBlbGVtZW50OiAke1xuICAgICAgICAgICAgICAgICAgYWxpbmVhRWxlbWVudCEudGFnTmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBodG1sLFxuICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwiZmlyc3RBbGluZWFFbGVtZW50XCI6XG4gICAgICAgIGFsaW5lYUVsZW1lbnQgPSBib2R5Q2hpbGQuY2hpbGRyZW5bMF1cbiAgICAgICAgaWYgKGFsaW5lYUVsZW1lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIE5vIGFsaW5lYSBpbiBjdXJyZW50IGJvZHlDaGlsZDogZ28gdG8gbmV4dCBib2R5Q2hpbGQuXG4gICAgICAgICAgc3RhdGUgPSBcIm5leHRCb2R5Q2hpbGRcIlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlID0gXCJhbGluZWFFbGVtZW50XCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcImZpcnN0UGFyYWdyYXBoQ2hpbGRcIjpcbiAgICAgICAgcGFyYWdyYXBoQ2hpbGQgPSBwYXJhZ3JhcGhFbGVtZW50IS5jaGlsZHJlblswXVxuICAgICAgICBpZiAocGFyYWdyYXBoQ2hpbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIE5vIGNoaWxkIGluIGN1cnJlbnQgcGFyYWdyYXBoOiBnbyB0byBuZXh0IHBhcmVudCBlbGVtZW50LlxuICAgICAgICAgIHN0YXRlID0gbmV4dFBhcmVudFN0YXRlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgaGVhZGVyVGV4dCA9IHBhcmFncmFwaEVsZW1lbnQhLnRleHRDb250ZW50XG4gICAgICAgICAgY29uc3QgbmFtZUNvbXB1dGVkID0gKGhlYWRlclRleHQgfHwgXCJcIilcbiAgICAgICAgICAgIC5ub3JtYWxpemUoXCJORkRcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcKG5vdXZlYXVcXCkvLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcKFBvdXIgY29vcmRpbmF0aW9uXFwpLywgXCJcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXChTdXBwcmltw6lzP1xcKS8sIFwiXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvwqAvZywgXCIgXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvW1xcLSwu4oCmXS9nLCBcIlwiKVxuICAgICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgICAgLnJlcGxhY2UoLyB7MSx9L2csIFwiX1wiKVxuICAgICAgICAgIGNvbnN0IG5hbWVVcHBlciA9IG5hbWVDb21wdXRlZC50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgaWYgKG5hbWVVcHBlciA9PT0gXCJcIikge1xuICAgICAgICAgICAgLy8gT2NjdXJzIGluOlxuICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzA0NDUuYXNwXG4gICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDYyNi5hc3BcbiAgICAgICAgICAgIC8vIFNraXAgcGFyYWdyYXBoLlxuICAgICAgICAgICAgc3RhdGUgPSBuZXh0UGFyZW50U3RhdGVcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IG5leHRMZXZlbCA9XG4gICAgICAgICAgICBuYW1lVXBwZXIubWF0Y2goL14oUkFQUE9SVF8pP0FOTkVYRShffCQpLykgIT09IG51bGwgfHxcbiAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaCgvXkVUQVRfLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eVE9NRV8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDFcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15QQVJUSUVfLykgIT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICBuYW1lVXBwZXIubWF0Y2goXG4gICAgICAgICAgICAgICAgICAvXihQUkVNSUVSRXxTRUNPTkRFfERFVVhJRU1FfFRST0lTSUVNRXxRVUFUUklFTUUpX1BBUlRJRShffCQpLyxcbiAgICAgICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICAgICAgID8gMlxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXkxJVlJFXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gM1xuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlRJVFJFXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gNFxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlNPVVNUSVRSRV8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDVcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15DSEFQSVRSRV8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDZcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15TRUNUSU9OXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gN1xuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlNPVVNTRUNUSU9OXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gOFxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXkFSVElDTEVTP18vKSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgIC8vIFwiRXhwb3PDqSBkZXMgbW90aWZzXCIgbXVzdCBiZSBhdCB0aGUgc2FtZSBsZXZlbCBhcyBhcnRpY2xlLlxuICAgICAgICAgICAgICAgIC8vIFwiRXhwb3PDqSBkZXMgbW90aWZzXCIgd2l0aG91dCBjb250ZW50OlxuICAgICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNzAyLmFzcFxuICAgICAgICAgICAgICAgIC8vIFwiRXhwb3PDqSBkZXMgbW90aWZzXCIgd2l0aCBjb250ZW50OlxuICAgICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8xMzI2LmFzcFxuICAgICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8xNjEwLmFzcFxuICAgICAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaCgvXkVYUE9TRV9ERVNfTU9USUZTJC8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gOVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICBpZiAobmV4dExldmVsID09PSBudWxsICYmIHN1YmRpdmlzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGlmIChuYW1lVXBwZXIubWF0Y2goL14oUFJPSkVUfFBST1BPU0lUSU9OKV9ERV9MT0koX3wkKS8pICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIC8vIE9jY3VycyBpbjpcbiAgICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzAyMzIuYXNwXG4gICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNjI2LmFzcFxuICAgICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDY3Ni5hc3BcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgIG5hbWVVcHBlciA9PT0gXCJKRVVYX09MWU1QSVFVRVNfRVRfUEFSQUxZTVBJUVVFU19ERV8yMDI0XCJcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAvLyBPY2N1cnMgaW4gaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNjc2LmFzcFxuICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lVXBwZXIgPT09IFwiVEVYVEVfREVfTEFfQ09NTUlTU0lPTl9NSVhURV9QQVJJVEFJUkVcIikge1xuICAgICAgICAgICAgICAvLyBPY2N1cnMgaW4gaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8xMjk0LmFzcFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgYFVuZXhwZWN0ZWQgbmFtZVVwcGVyID0gXCIke25hbWVVcHBlcn1cIiBhdCBiZWdpbm5pbmcgb2YgXCJ0ZXh0ZSBkZSBsb2lcIiBhdCAke2Fzc2VtYmxlZVVybH1gLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBTa2lwIHBhcmFncmFwaC5cbiAgICAgICAgICAgIHN0YXRlID0gbmV4dFBhcmVudFN0YXRlXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobmV4dExldmVsICE9PSBudWxsKSB7XG4gICAgICAgICAgICBsZXZlbCA9IG5leHRMZXZlbFxuICAgICAgICAgICAgd2hpbGUgKGxldmVscy5sZW5ndGggPiAwICYmIGxldmVsIDwgbGV2ZWxzW2xldmVscy5sZW5ndGggLSAxXSkge1xuICAgICAgICAgICAgICBsZXZlbHMucG9wKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZXZlbHMubGVuZ3RoID09PSAwIHx8IGxldmVsID4gbGV2ZWxzW2xldmVscy5sZW5ndGggLSAxXSkge1xuICAgICAgICAgICAgICBsZXZlbHMucHVzaChsZXZlbClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEFydGljbGVzICYgXCJFeHBvc8OpIGRlcyBtb3RpZnNcIiBhcmUgdGhlIG9ubHkgZGl2aXNpb25zIHdpdGhvdXQgc2Vjb25kIHRpdGxlLlxuICAgICAgICAgICAgaXNNdWx0aUxpbmVzSGVhZGVyID1cbiAgICAgICAgICAgICAgbmFtZVVwcGVyLm1hdGNoKC9eQVJUSUNMRVM/Xy8pID09PSBudWxsICYmXG4gICAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaCgvXkVYUE9TRV9ERVNfTU9USUZTJC8pID09PSBudWxsXG4gICAgICAgICAgICBzdWJkaXZpc2lvbkFsaW5lYXNIdG1sID0gW11cbiAgICAgICAgICAgIHN1YmRpdmlzaW9uQWxpbmVhc1RleHQgPSBbXVxuICAgICAgICAgICAgc3ViZGl2aXNpb25IZWFkZXJzSHRtbCA9IFtdXG4gICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0ID0gW11cbiAgICAgICAgICAgIHN1YmRpdmlzaW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgaHRtbDoge1xuICAgICAgICAgICAgICAgIGFsaW5lYXM6IHN1YmRpdmlzaW9uQWxpbmVhc0h0bWwsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogc3ViZGl2aXNpb25IZWFkZXJzSHRtbCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaWQ6IFwiRF9cIiArIG5hbWVDb21wdXRlZCxcbiAgICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgICAgcmVsYXRpdmVMZXZlbDogbGV2ZWxzLmxlbmd0aCxcbiAgICAgICAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgICAgIGFsaW5lYXM6IHN1YmRpdmlzaW9uQWxpbmVhc1RleHQsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogc3ViZGl2aXNpb25IZWFkZXJzVGV4dCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICAgIGxpbmVFbGVtZW50cyA9IFtdXG4gICAgICAgICAgc3RhdGUgPSBcInBhcmFncmFwaENoaWxkXCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcImZpcnN0U3ViQWxpbmVhRWxlbWVudFwiOlxuICAgICAgICBzdWJBbGluZWFFbGVtZW50ID0gYWxpbmVhRWxlbWVudCEuY2hpbGRyZW5bMF1cbiAgICAgICAgaWYgKHN1YkFsaW5lYUVsZW1lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIE5vIHN1Yi1hbGluZWEgaW4gY3VycmVudCBhbGluZWE6IGdvIHRvIG5leHQgYWxpbmVhLlxuICAgICAgICAgIHN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUgPSBcInN1YkFsaW5lYUVsZW1lbnRcIlxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwibmV4dEFsaW5lYUVsZW1lbnRcIjpcbiAgICAgICAgYWxpbmVhRWxlbWVudCA9IGFsaW5lYUVsZW1lbnQhLm5leHRFbGVtZW50U2libGluZ1xuICAgICAgICBpZiAoYWxpbmVhRWxlbWVudCA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRoZSBib2R5Q2hpbGQgaGFzIGJlZW4gZnVsbHkgcGFyc2VkLiBHbyB0byBuZXh0IGJvZHlDaGlsZFxuICAgICAgICAgIHN0YXRlID0gXCJuZXh0Qm9keUNoaWxkXCJcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZSA9IFwiYWxpbmVhRWxlbWVudFwiXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJuZXh0Qm9keUNoaWxkXCI6XG4gICAgICAgIGlmIChib2R5Q2hpbGQubmV4dEVsZW1lbnRTaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gVGhlIGRvY3VtZW50IGhhcyBiZWVuIGZ1bGx5IHBhcnNlZC5cbiAgICAgICAgICBzdGF0ZSA9IG51bGxcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBib2R5Q2hpbGQgPSBib2R5Q2hpbGQubmV4dEVsZW1lbnRTaWJsaW5nXG4gICAgICAgICAgaWYgKGJvZHlDaGlsZC50YWdOYW1lID09PSBcIkRJVlwiKSB7XG4gICAgICAgICAgICBzdGF0ZSA9IFwiZmlyc3RBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gPFAvPiBpcyBmb3IgZm9vdG5vdGVzXG4gICAgICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgICAgIFtcIkJSXCIsIFwiSFJcIiwgXCJQXCJdLmluY2x1ZGVzKGJvZHlDaGlsZC50YWdOYW1lKSxcbiAgICAgICAgICAgICAgYMOZbmV4cGVjdGVkIHRhZyBuYW1lIFwiJHtib2R5Q2hpbGQudGFnTmFtZX1cIiBmb3IgYm9keSBjaGlsZGAsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAvLyBTdGF5IGluIHRoZSBzYW1lIHN0YXRlIHRvIGdvIHRvIG5leHQgYm9keUNoaWxkLlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcIm5leHRQYXJhZ3JhcGhDaGlsZFwiOlxuICAgICAgICBwYXJhZ3JhcGhDaGlsZCA9IHBhcmFncmFwaENoaWxkIS5uZXh0RWxlbWVudFNpYmxpbmdcbiAgICAgICAgaWYgKHBhcmFncmFwaENoaWxkID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gVGhlIHBhcmFncmFwaCBlbGVtZW50IGhhcyBiZWVuIGZ1bGx5IHBhcnNlZC4gR28gdG8gbmV4dCBwYXJlbnQgZWxlbWVudC5cbiAgICAgICAgICBjb25zdCBsaW5lVGV4dCA9IGxpbmVFbGVtZW50cyFcbiAgICAgICAgICAgIC5tYXAoKGVsZW1lbnQpID0+IGVsZW1lbnQudGV4dENvbnRlbnQpXG4gICAgICAgICAgICAuam9pbihcIlwiKVxuICAgICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgIGlmIChsaW5lVGV4dCkge1xuICAgICAgICAgICAgY29uc3QgbGluZUh0bWwgPSBsaW5lRWxlbWVudHMhXG4gICAgICAgICAgICAgIC5tYXAoKGVsZW1lbnQpID0+IGVsZW1lbnQub3V0ZXJIVE1MKVxuICAgICAgICAgICAgICAuam9pbihcIlwiKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0IS5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICAgICAgKGlzTXVsdGlMaW5lc0hlYWRlciAmJiBzdWJkaXZpc2lvbkFsaW5lYXNUZXh0IS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgc3ViZGl2aXNpb25IZWFkZXJzSHRtbCEucHVzaChsaW5lSHRtbClcbiAgICAgICAgICAgICAgc3ViZGl2aXNpb25IZWFkZXJzVGV4dCEucHVzaChsaW5lVGV4dClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHN1YmRpdmlzaW9uQWxpbmVhc0h0bWwhLnB1c2gobGluZUh0bWwpXG4gICAgICAgICAgICAgIHN1YmRpdmlzaW9uQWxpbmVhc1RleHQhLnB1c2gobGluZVRleHQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc011bHRpTGluZXNIZWFkZXIgJiYgc3ViZGl2aXNpb25IZWFkZXJzVGV4dCEubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICAgIGlzTXVsdGlMaW5lc0hlYWRlciA9IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICAgIGxpbmVFbGVtZW50cyA9IG51bGxcbiAgICAgICAgICBzdGF0ZSA9IG5leHRQYXJlbnRTdGF0ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlID0gXCJwYXJhZ3JhcGhDaGlsZFwiXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJuZXh0U3ViQWxpbmVhRWxlbWVudFwiOlxuICAgICAgICBzdWJBbGluZWFFbGVtZW50ID0gc3ViQWxpbmVhRWxlbWVudCEubmV4dEVsZW1lbnRTaWJsaW5nXG4gICAgICAgIGlmIChzdWJBbGluZWFFbGVtZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gVGhlIGFsaW5lYUVsZW1lbnQgaGFzIGJlZW4gZnVsbHkgcGFyc2VkLiBHbyB0byBuZXh0IGFsaW5lYUVsZW1lbnQuXG4gICAgICAgICAgc3RhdGUgPSBcIm5leHRBbGluZWFFbGVtZW50XCJcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZSA9IFwic3ViQWxpbmVhRWxlbWVudFwiXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJwYXJhZ3JhcGhDaGlsZFwiOlxuICAgICAgICBzd2l0Y2ggKHBhcmFncmFwaENoaWxkIS50YWdOYW1lKSB7XG4gICAgICAgICAgY2FzZSBcIkFcIjoge1xuICAgICAgICAgICAgbGluZUVsZW1lbnRzIS5wdXNoKHBhcmFncmFwaENoaWxkISlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgXCJCUlwiOiB7XG4gICAgICAgICAgICBjb25zdCBsaW5lVGV4dCA9IGxpbmVFbGVtZW50cyFcbiAgICAgICAgICAgICAgLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC50ZXh0Q29udGVudClcbiAgICAgICAgICAgICAgLmpvaW4oXCJcIilcbiAgICAgICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgICAgaWYgKGxpbmVUZXh0KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGxpbmVIdG1sID0gbGluZUVsZW1lbnRzIVxuICAgICAgICAgICAgICAgIC5tYXAoKGVsZW1lbnQpID0+IGVsZW1lbnQub3V0ZXJIVE1MKVxuICAgICAgICAgICAgICAgIC5qb2luKFwiXCIpXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0IS5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICAgICAgICAoaXNNdWx0aUxpbmVzSGVhZGVyICYmIHN1YmRpdmlzaW9uQWxpbmVhc1RleHQhLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgc3ViZGl2aXNpb25IZWFkZXJzSHRtbCEucHVzaChsaW5lSHRtbClcbiAgICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0IS5wdXNoKGxpbmVUZXh0KVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN1YmRpdmlzaW9uQWxpbmVhc0h0bWwhLnB1c2gobGluZUh0bWwpXG4gICAgICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzVGV4dCEucHVzaChsaW5lVGV4dClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGluZUVsZW1lbnRzID0gW11cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgXCJERUxcIjoge1xuICAgICAgICAgICAgbGluZUVsZW1lbnRzIS5wdXNoKHBhcmFncmFwaENoaWxkISlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgXCJJTUdcIjoge1xuICAgICAgICAgICAgbGluZUVsZW1lbnRzIS5wdXNoKHBhcmFncmFwaENoaWxkISlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgXCJTUEFOXCI6IHtcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IHBhcmFncmFwaENoaWxkIS5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKVxuICAgICAgICAgICAgc3dpdGNoIChjbGFzc05hbWUpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImFFbG9pUGFzdGlsbGVcIjoge1xuICAgICAgICAgICAgICAgIC8vIFNraXAgcGFzdGlsbMOpIFNQQU4uXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjYXNlIFwiYUVsb2lQYXN0aWxsZTBcIjoge1xuICAgICAgICAgICAgICAgIC8vIFNraXAgcGFzdGlsbMOpIFNQQU4uXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGxpbmVFbGVtZW50cyEucHVzaChwYXJhZ3JhcGhDaGlsZCEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgICAgICBjb2RlOiAtMyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCB0YWcgbmFtZSBmb3IgcGFyYWdyYXBoIGNoaWxkOiAke1xuICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoQ2hpbGQhLnRhZ05hbWVcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaHRtbCxcbiAgICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdGF0ZSA9IFwibmV4dFBhcmFncmFwaENoaWxkXCJcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJzdWJBbGluZWFFbGVtZW50XCI6XG4gICAgICAgIHN3aXRjaCAoc3ViQWxpbmVhRWxlbWVudCEudGFnTmFtZSkge1xuICAgICAgICAgIGNhc2UgXCJQXCI6XG4gICAgICAgICAgICBuZXh0UGFyZW50U3RhdGUgPSBcIm5leHRTdWJBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIHBhcmFncmFwaEVsZW1lbnQgPSBzdWJBbGluZWFFbGVtZW50XG4gICAgICAgICAgICBzdGF0ZSA9IFwiZmlyc3RQYXJhZ3JhcGhDaGlsZFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgXCJUQUJMRVwiOlxuICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgc3RhdGUgPSBcIm5leHRTdWJBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgICAgICAgY29kZTogLTQsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYFVuZXhwZWN0ZWQgdGFnIG5hbWUgZm9yIHN1YiBhbGluZWEgZWxlbWVudDogJHtcbiAgICAgICAgICAgICAgICAgIHN1YkFsaW5lYUVsZW1lbnQhLnRhZ05hbWVcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaHRtbCxcbiAgICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgICBzdGF0ZSA9IFwibmV4dFN1YkFsaW5lYUVsZW1lbnRcIlxuICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgYFVuZXhwZWN0ZWQgc3RhdGU6ICR7c3RhdGV9YFxuICAgIH1cbiAgfVxuXG4gIHdpbmRvdy5jbG9zZSgpIC8vIEZyZWUgbWVtb3J5LlxuXG4gIHJldHVybiB7XG4gICAgZXJyb3I6IG51bGwsXG4gICAgaHRtbCxcbiAgICBwYWdlLFxuICAgIHN1YmRpdmlzaW9ucyxcbiAgICB1cmw6IGFzc2VtYmxlZVVybCxcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVUZXh0ZUxvaVBhcnNlZChcbiAgZmV0Y2g6IChcbiAgICB1cmw6IHN0cmluZyB8IFJlcXVlc3QsXG4gICAgaW5pdD86IFJlcXVlc3RJbml0IHwgdW5kZWZpbmVkLFxuICApID0+IFByb21pc2U8UmVzcG9uc2U+LFxuICBhc3NlbWJsZWVVcmw6IHN0cmluZyxcbikge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGFzc2VtYmxlZVVybClcbiAgY29uc3QgcGFnZSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKVxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVycm9yOiB7IGNvZGU6IHJlc3BvbnNlLnN0YXR1cywgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dCB9LFxuICAgICAgcGFnZSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhcnNlVGV4dGVMb2koYXNzZW1ibGVlVXJsLCBwYWdlKVxufVxuIl19
433
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXJzL2RvY3VtZW50cy50cyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJKU0RPTSIsInBhcnNlVGV4dGVMb2kiLCJhc3NlbWJsZWVVcmwiLCJwYWdlIiwicGFnZVNlZ21lbnRzIiwic3BsaXQiLCJzdHJpY3RFcXVhbCIsImxlbmd0aCIsImh0bWwiLCJ0cmltIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic3Vic3RyaW5nIiwid2luZG93IiwiZG9jdW1lbnQiLCJjaGlsZHJlbiIsImh0bWxFbGVtZW50IiwiYm9keUVsZW1lbnQiLCJkaXZFbGVtZW50IiwidGFnTmFtZSIsIm5ld0RpdkVsZW1lbnQiLCJpbnNlcnRCZWZvcmUiLCJjcmVhdGVFbGVtZW50IiwiZGl2Q2hpbGQiLCJnZXRBdHRyaWJ1dGUiLCJhcHBlbmRDaGlsZCIsImNsb3NlIiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsImJvZHlDaGlsZCIsImFsaW5lYUVsZW1lbnQiLCJpc011bHRpTGluZXNIZWFkZXIiLCJsZXZlbCIsImxldmVscyIsImxpbmVFbGVtZW50cyIsIm5leHRQYXJlbnRTdGF0ZSIsInBhcmFncmFwaENoaWxkIiwicGFyYWdyYXBoRWxlbWVudCIsInN0YXRlIiwic3ViQWxpbmVhRWxlbWVudCIsInN1YmRpdmlzaW9ucyIsInN1YmRpdmlzaW9uQWxpbmVhc0h0bWwiLCJzdWJkaXZpc2lvbkFsaW5lYXNUZXh0Iiwic3ViZGl2aXNpb25IZWFkZXJzSHRtbCIsInN1YmRpdmlzaW9uSGVhZGVyc1RleHQiLCJ1bmRlZmluZWQiLCJoZWFkZXJUZXh0IiwidGV4dENvbnRlbnQiLCJuYW1lQ29tcHV0ZWQiLCJub3JtYWxpemUiLCJyZXBsYWNlIiwibmFtZVVwcGVyIiwidG9VcHBlckNhc2UiLCJuZXh0TGV2ZWwiLCJtYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJwb3AiLCJwdXNoIiwiYWxpbmVhcyIsImhlYWRlcnMiLCJpZCIsInJlbGF0aXZlTGV2ZWwiLCJ0ZXh0IiwibmV4dEVsZW1lbnRTaWJsaW5nIiwiaW5jbHVkZXMiLCJsaW5lVGV4dCIsIm1hcCIsImVsZW1lbnQiLCJqb2luIiwibGluZUh0bWwiLCJvdXRlckhUTUwiLCJjbGFzc05hbWUiLCJ1cmwiLCJyZXRyaWV2ZVRleHRlTG9pUGFyc2VkIiwiZmV0Y2giLCJyZXNwb25zZSIsIm9rIiwic3RhdHVzIiwic3RhdHVzVGV4dCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBUCxNQUFtQixRQUFuQjtBQUNBLFNBQVNDLEtBQVQsUUFBc0IsT0FBdEI7QUFFQSxPQUFPLFNBQVNDLGFBQVQsQ0FBdUJDLFlBQXZCLEVBQTZDQyxJQUE3QyxFQUEyRDtBQUNoRTtBQUNBLFFBQU1DLFlBQVksR0FBR0QsSUFBSSxDQUFDRSxLQUFMLENBQVcsVUFBWCxDQUFyQjtBQUNBTixFQUFBQSxNQUFNLENBQUNPLFdBQVAsQ0FBbUJGLFlBQVksQ0FBQ0csTUFBaEMsRUFBd0MsQ0FBeEMsRUFBMkNKLElBQTNDO0FBQ0EsTUFBSUssSUFBSSxHQUFHSixZQUFZLENBQUMsQ0FBRCxDQUFaLENBQWdCSyxJQUFoQixFQUFYO0FBQ0FWLEVBQUFBLE1BQU0sQ0FBQ1MsSUFBSSxDQUFDRSxVQUFMLENBQWdCLE1BQWhCLENBQUQsQ0FBTjtBQUNBWCxFQUFBQSxNQUFNLENBQUNTLElBQUksQ0FBQ0csUUFBTCxDQUFjLFFBQWQsQ0FBRCxDQUFOO0FBQ0FILEVBQUFBLElBQUksR0FBSSxRQUFPQSxJQUFJLENBQUNJLFNBQUwsQ0FBZSxDQUFmLEVBQWtCSixJQUFJLENBQUNELE1BQUwsR0FBYyxDQUFoQyxDQUFtQyxTQUFsRCxDQVBnRSxDQVNoRTs7QUFDQSxRQUFNO0FBQUVNLElBQUFBO0FBQUYsTUFBYSxJQUFJYixLQUFKLENBQVVRLElBQVYsQ0FBbkI7QUFDQSxRQUFNO0FBQUVNLElBQUFBO0FBQUYsTUFBZUQsTUFBckI7QUFDQWQsRUFBQUEsTUFBTSxDQUFDTyxXQUFQLENBQW1CUSxRQUFRLENBQUNDLFFBQVQsQ0FBa0JSLE1BQXJDLEVBQTZDLENBQTdD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b0MsUUFBQUEsS0FBSyxHQUFHLHNCQUFSO0FBQ0E7O0FBQ0Y7QUFDRSxjQUFPLHFCQUFvQkEsS0FBTSxFQUFqQztBQTVVSjtBQThVRDs7QUFFRDFCLEVBQUFBLE1BQU0sQ0FBQ2EsS0FBUCxHQTlZZ0UsQ0E4WWpEOztBQUVmLFNBQU87QUFDTEMsSUFBQUEsS0FBSyxFQUFFLElBREY7QUFFTG5CLElBQUFBLElBRks7QUFHTEwsSUFBQUEsSUFISztBQUlMc0MsSUFBQUEsWUFKSztBQUtMaUMsSUFBQUEsR0FBRyxFQUFFeEU7QUFMQSxHQUFQO0FBT0Q7QUFFRCxPQUFPLGVBQWV5RSxzQkFBZixDQUNMQyxLQURLLEVBS0wxRSxZQUxLLEVBTUw7QUFDQSxRQUFNMkUsUUFBUSxHQUFHLE1BQU1ELEtBQUssQ0FBQzFFLFlBQUQsQ0FBNUI7QUFDQSxRQUFNQyxJQUFJLEdBQUcsTUFBTTBFLFFBQVEsQ0FBQ2IsSUFBVCxFQUFuQjs7QUFDQSxNQUFJLENBQUNhLFFBQVEsQ0FBQ0MsRUFBZCxFQUFrQjtBQUNoQixXQUFPO0FBQ0xuRCxNQUFBQSxLQUFLLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFaUQsUUFBUSxDQUFDRSxNQUFqQjtBQUF5QmxELFFBQUFBLE9BQU8sRUFBRWdELFFBQVEsQ0FBQ0c7QUFBM0MsT0FERjtBQUVMN0UsTUFBQUE7QUFGSyxLQUFQO0FBSUQ7O0FBQ0QsU0FBT0YsYUFBYSxDQUFDQyxZQUFELEVBQWVDLElBQWYsQ0FBcEI7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgeyBKU0RPTSB9IGZyb20gXCJqc2RvbVwiXG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRleHRlTG9pKGFzc2VtYmxlZVVybDogc3RyaW5nLCBwYWdlOiBzdHJpbmcpIHtcbiAgLy8gUmVwYWlyIEhUTUwuXG4gIGNvbnN0IHBhZ2VTZWdtZW50cyA9IHBhZ2Uuc3BsaXQoXCI8L3N0eWxlPlwiKVxuICBhc3NlcnQuc3RyaWN0RXF1YWwocGFnZVNlZ21lbnRzLmxlbmd0aCwgMiwgcGFnZSlcbiAgbGV0IGh0bWwgPSBwYWdlU2VnbWVudHNbMV0udHJpbSgpXG4gIGFzc2VydChodG1sLnN0YXJ0c1dpdGgoXCI8ZGl2XCIpKVxuICBhc3NlcnQoaHRtbC5lbmRzV2l0aChcIjwvZGl2PlwiKSlcbiAgaHRtbCA9IGA8aHRtbCR7aHRtbC5zdWJzdHJpbmcoNCwgaHRtbC5sZW5ndGggLSA2KX08L2h0bWw+YFxuXG4gIC8vIEV4dHJhY3Qgc3ViZGl2aXNpb25zIGZyb20gSFRNTC5cbiAgY29uc3QgeyB3aW5kb3cgfSA9IG5ldyBKU0RPTShodG1sKVxuICBjb25zdCB7IGRvY3VtZW50IH0gPSB3aW5kb3dcbiAgYXNzZXJ0LnN0cmljdEVxdWFsKGRvY3VtZW50LmNoaWxkcmVuLmxlbmd0aCwgMSlcbiAgY29uc3QgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5jaGlsZHJlblswXVxuICBhc3NlcnQuc3RyaWN0RXF1YWwoaHRtbEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoLCAyKVxuICBjb25zdCBib2R5RWxlbWVudCA9IGh0bWxFbGVtZW50LmNoaWxkcmVuWzFdXG4gIGlmIChhc3NlbWJsZWVVcmwgPT09IFwiaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNjc1LmFzcFwiKSB7XG4gICAgLy8gUmVwYWlyIGRvY3VtZW50LlxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChib2R5RWxlbWVudC5jaGlsZHJlbi5sZW5ndGgsIDEpXG4gICAgY29uc3QgZGl2RWxlbWVudCA9IGJvZHlFbGVtZW50LmNoaWxkcmVuWzBdXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRpdkVsZW1lbnQudGFnTmFtZSwgXCJESVZcIilcbiAgICBjb25zdCBuZXdEaXZFbGVtZW50ID0gYm9keUVsZW1lbnQuaW5zZXJ0QmVmb3JlKFxuICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxcbiAgICAgIGRpdkVsZW1lbnQsXG4gICAgKVxuICAgIGJvZHlFbGVtZW50Lmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYnJcIiksIGRpdkVsZW1lbnQpXG4gICAgZm9yIChjb25zdCBkaXZDaGlsZCBvZiBbLi4uZGl2RWxlbWVudC5jaGlsZHJlbl0pIHtcbiAgICAgIGlmIChkaXZDaGlsZC5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKSA9PT0gXCJhOUFydGljbGVOdW1cIikge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgbmV3RGl2RWxlbWVudC5hcHBlbmRDaGlsZChkaXZDaGlsZClcbiAgICB9XG4gIH1cbiAgaWYgKGJvZHlFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA8IDMpIHtcbiAgICAvLyBPY2N1cnMgaW4gaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wMzI2LmFzcC5cbiAgICB3aW5kb3cuY2xvc2UoKSAvLyBGcmVlIG1lbW9yeS5cbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3I6IHsgY29kZTogLTEsIG1lc3NhZ2U6IFwiVGV4dGUgZGUgbG9pIHNhbnMgY29udGVudVwiIH0sXG4gICAgICBodG1sLFxuICAgICAgcGFnZSxcbiAgICB9XG4gIH1cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKGJvZHlFbGVtZW50LmNoaWxkcmVuWzBdLnRhZ05hbWUsIFwiRElWXCIpXG4gIC8vIEZpcnN0IGNoaWxkIGlzIGEgRElWIGRlc2NyaWJpbmcgdGhlIGRvY3VtZW50IChBc3NlbWJsw6llJ3MgaGVhZGVyKS4gU2tpcCBpdCBmb3Igbm93LlxuICBsZXQgYm9keUNoaWxkID0gYm9keUVsZW1lbnQuY2hpbGRyZW5bMV1cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKGJvZHlDaGlsZC50YWdOYW1lLCBcIkJSXCIpXG4gIGxldCBhbGluZWFFbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgbGV0IGlzTXVsdGlMaW5lc0hlYWRlcjogYm9vbGVhbiA9IGZhbHNlXG4gIGxldCBsZXZlbDogbnVtYmVyIHwgbnVsbCA9IG51bGxcbiAgbGV0IGxldmVsczogbnVtYmVyW10gPSBbXVxuICBsZXQgbGluZUVsZW1lbnRzOiBFbGVtZW50W10gfCBudWxsID0gbnVsbFxuICBsZXQgbmV4dFBhcmVudFN0YXRlID0gbnVsbFxuICBsZXQgcGFyYWdyYXBoQ2hpbGQ6IEVsZW1lbnQgfCBudWxsID0gbnVsbFxuICBsZXQgcGFyYWdyYXBoRWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBudWxsXG4gIGxldCBzdGF0ZTogc3RyaW5nIHwgbnVsbCA9IFwibmV4dEJvZHlDaGlsZFwiXG4gIGxldCBzdWJBbGluZWFFbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgY29uc3Qgc3ViZGl2aXNpb25zID0gW11cbiAgbGV0IHN1YmRpdmlzaW9uQWxpbmVhc0h0bWw6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGxcbiAgbGV0IHN1YmRpdmlzaW9uQWxpbmVhc1RleHQ6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGxcbiAgbGV0IHN1YmRpdmlzaW9uSGVhZGVyc0h0bWw6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGxcbiAgbGV0IHN1YmRpdmlzaW9uSGVhZGVyc1RleHQ6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGxcbiAgd2hpbGUgKHN0YXRlICE9PSBudWxsKSB7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBcImFsaW5lYUVsZW1lbnRcIjpcbiAgICAgICAgc3dpdGNoIChhbGluZWFFbGVtZW50IS50YWdOYW1lKSB7XG4gICAgICAgICAgY2FzZSBcIkRJVlwiOlxuICAgICAgICAgICAgc3RhdGUgPSBcImZpcnN0U3ViQWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgXCJINFwiOlxuICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgbmV4dFBhcmVudFN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBwYXJhZ3JhcGhFbGVtZW50ID0gYWxpbmVhRWxlbWVudFxuICAgICAgICAgICAgc3RhdGUgPSBcImZpcnN0UGFyYWdyYXBoQ2hpbGRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlIFwiUFwiOlxuICAgICAgICAgICAgbmV4dFBhcmVudFN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBwYXJhZ3JhcGhFbGVtZW50ID0gYWxpbmVhRWxlbWVudFxuICAgICAgICAgICAgc3RhdGUgPSBcImZpcnN0UGFyYWdyYXBoQ2hpbGRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlIFwiT0xcIjpcbiAgICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgIHN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgXCJUQUJMRVwiOlxuICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgc3RhdGUgPSBcIm5leHRBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgICAgICAgY29kZTogLTIsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYFVuZXhwZWN0ZWQgdGFnIG5hbWUgZm9yIGFsaW5lYSBlbGVtZW50OiAke1xuICAgICAgICAgICAgICAgICAgYWxpbmVhRWxlbWVudCEudGFnTmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBodG1sLFxuICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwiZmlyc3RBbGluZWFFbGVtZW50XCI6XG4gICAgICAgIGFsaW5lYUVsZW1lbnQgPSBib2R5Q2hpbGQuY2hpbGRyZW5bMF1cbiAgICAgICAgaWYgKGFsaW5lYUVsZW1lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIE5vIGFsaW5lYSBpbiBjdXJyZW50IGJvZHlDaGlsZDogZ28gdG8gbmV4dCBib2R5Q2hpbGQuXG4gICAgICAgICAgc3RhdGUgPSBcIm5leHRCb2R5Q2hpbGRcIlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlID0gXCJhbGluZWFFbGVtZW50XCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcImZpcnN0UGFyYWdyYXBoQ2hpbGRcIjpcbiAgICAgICAgcGFyYWdyYXBoQ2hpbGQgPSBwYXJhZ3JhcGhFbGVtZW50IS5jaGlsZHJlblswXVxuICAgICAgICBpZiAocGFyYWdyYXBoQ2hpbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIE5vIGNoaWxkIGluIGN1cnJlbnQgcGFyYWdyYXBoOiBnbyB0byBuZXh0IHBhcmVudCBlbGVtZW50LlxuICAgICAgICAgIHN0YXRlID0gbmV4dFBhcmVudFN0YXRlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgaGVhZGVyVGV4dCA9IHBhcmFncmFwaEVsZW1lbnQhLnRleHRDb250ZW50XG4gICAgICAgICAgY29uc3QgbmFtZUNvbXB1dGVkID0gKGhlYWRlclRleHQgfHwgXCJcIilcbiAgICAgICAgICAgIC5ub3JtYWxpemUoXCJORkRcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcKG5vdXZlYXVcXCkvLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcKFBvdXIgY29vcmRpbmF0aW9uXFwpLywgXCJcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXChTdXBwcmltw6lzP1xcKS8sIFwiXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvwqAvZywgXCIgXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvW1xcLSwu4oCmXS9nLCBcIlwiKVxuICAgICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgICAgLnJlcGxhY2UoLyB7MSx9L2csIFwiX1wiKVxuICAgICAgICAgIGNvbnN0IG5hbWVVcHBlciA9IG5hbWVDb21wdXRlZC50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgaWYgKG5hbWVVcHBlciA9PT0gXCJcIikge1xuICAgICAgICAgICAgLy8gT2NjdXJzIGluOlxuICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzA0NDUuYXNwXG4gICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDYyNi5hc3BcbiAgICAgICAgICAgIC8vIFNraXAgcGFyYWdyYXBoLlxuICAgICAgICAgICAgc3RhdGUgPSBuZXh0UGFyZW50U3RhdGVcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IG5leHRMZXZlbCA9XG4gICAgICAgICAgICBuYW1lVXBwZXIubWF0Y2goL14oUkFQUE9SVF8pP0FOTkVYRShffCQpLykgIT09IG51bGwgfHxcbiAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaCgvXkVUQVRfLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eVE9NRV8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDFcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15QQVJUSUVfLykgIT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICBuYW1lVXBwZXIubWF0Y2goXG4gICAgICAgICAgICAgICAgICAvXihQUkVNSUVSRXxTRUNPTkRFfERFVVhJRU1FfFRST0lTSUVNRXxRVUFUUklFTUUpX1BBUlRJRShffCQpLyxcbiAgICAgICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICAgICAgID8gMlxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXkxJVlJFXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gM1xuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlRJVFJFXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gNFxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlNPVVNUSVRSRV8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDVcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15DSEFQSVRSRV8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDZcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15TRUNUSU9OXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gN1xuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlNPVVNTRUNUSU9OXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gOFxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXkFSVElDTEVTP18vKSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgIC8vIFwiRXhwb3PDqSBkZXMgbW90aWZzXCIgbXVzdCBiZSBhdCB0aGUgc2FtZSBsZXZlbCBhcyBhcnRpY2xlLlxuICAgICAgICAgICAgICAgIC8vIFwiRXhwb3PDqSBkZXMgbW90aWZzXCIgd2l0aG91dCBjb250ZW50OlxuICAgICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNzAyLmFzcFxuICAgICAgICAgICAgICAgIC8vIFwiRXhwb3PDqSBkZXMgbW90aWZzXCIgd2l0aCBjb250ZW50OlxuICAgICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8xMzI2LmFzcFxuICAgICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8xNjEwLmFzcFxuICAgICAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaCgvXkVYUE9TRV9ERVNfTU9USUZTJC8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gOVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICBpZiAobmV4dExldmVsID09PSBudWxsICYmIHN1YmRpdmlzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGlmIChuYW1lVXBwZXIubWF0Y2goL14oUFJPSkVUfFBST1BPU0lUSU9OKV9ERV9MT0koX3wkKS8pICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIC8vIE9jY3VycyBpbjpcbiAgICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzAyMzIuYXNwXG4gICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNjI2LmFzcFxuICAgICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDY3Ni5hc3BcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgIG5hbWVVcHBlciA9PT0gXCJKRVVYX09MWU1QSVFVRVNfRVRfUEFSQUxZTVBJUVVFU19ERV8yMDI0XCJcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAvLyBPY2N1cnMgaW4gaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNjc2LmFzcFxuICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lVXBwZXIgPT09IFwiVEVYVEVfREVfTEFfQ09NTUlTU0lPTl9NSVhURV9QQVJJVEFJUkVcIikge1xuICAgICAgICAgICAgICAvLyBPY2N1cnMgaW4gaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8xMjk0LmFzcFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgYFVuZXhwZWN0ZWQgbmFtZVVwcGVyID0gXCIke25hbWVVcHBlcn1cIiBhdCBiZWdpbm5pbmcgb2YgXCJ0ZXh0ZSBkZSBsb2lcIiBhdCAke2Fzc2VtYmxlZVVybH1gLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBTa2lwIHBhcmFncmFwaC5cbiAgICAgICAgICAgIHN0YXRlID0gbmV4dFBhcmVudFN0YXRlXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobmV4dExldmVsICE9PSBudWxsKSB7XG4gICAgICAgICAgICBsZXZlbCA9IG5leHRMZXZlbFxuICAgICAgICAgICAgd2hpbGUgKGxldmVscy5sZW5ndGggPiAwICYmIGxldmVsIDwgbGV2ZWxzW2xldmVscy5sZW5ndGggLSAxXSkge1xuICAgICAgICAgICAgICBsZXZlbHMucG9wKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZXZlbHMubGVuZ3RoID09PSAwIHx8IGxldmVsID4gbGV2ZWxzW2xldmVscy5sZW5ndGggLSAxXSkge1xuICAgICAgICAgICAgICBsZXZlbHMucHVzaChsZXZlbClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEFydGljbGVzICYgXCJFeHBvc8OpIGRlcyBtb3RpZnNcIiBhcmUgdGhlIG9ubHkgZGl2aXNpb25zIHdpdGhvdXQgc2Vjb25kIHRpdGxlLlxuICAgICAgICAgICAgaXNNdWx0aUxpbmVzSGVhZGVyID1cbiAgICAgICAgICAgICAgbmFtZVVwcGVyLm1hdGNoKC9eQVJUSUNMRVM/Xy8pID09PSBudWxsICYmXG4gICAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaCgvXkVYUE9TRV9ERVNfTU9USUZTJC8pID09PSBudWxsXG4gICAgICAgICAgICBzdWJkaXZpc2lvbkFsaW5lYXNIdG1sID0gW11cbiAgICAgICAgICAgIHN1YmRpdmlzaW9uQWxpbmVhc1RleHQgPSBbXVxuICAgICAgICAgICAgc3ViZGl2aXNpb25IZWFkZXJzSHRtbCA9IFtdXG4gICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0ID0gW11cbiAgICAgICAgICAgIHN1YmRpdmlzaW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgaHRtbDoge1xuICAgICAgICAgICAgICAgIGFsaW5lYXM6IHN1YmRpdmlzaW9uQWxpbmVhc0h0bWwsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogc3ViZGl2aXNpb25IZWFkZXJzSHRtbCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaWQ6IFwiRF9cIiArIG5hbWVDb21wdXRlZCxcbiAgICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgICAgcmVsYXRpdmVMZXZlbDogbGV2ZWxzLmxlbmd0aCxcbiAgICAgICAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgICAgIGFsaW5lYXM6IHN1YmRpdmlzaW9uQWxpbmVhc1RleHQsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogc3ViZGl2aXNpb25IZWFkZXJzVGV4dCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICAgIGxpbmVFbGVtZW50cyA9IFtdXG4gICAgICAgICAgc3RhdGUgPSBcInBhcmFncmFwaENoaWxkXCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcImZpcnN0U3ViQWxpbmVhRWxlbWVudFwiOlxuICAgICAgICBzdWJBbGluZWFFbGVtZW50ID0gYWxpbmVhRWxlbWVudCEuY2hpbGRyZW5bMF1cbiAgICAgICAgaWYgKHN1YkFsaW5lYUVsZW1lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIE5vIHN1Yi1hbGluZWEgaW4gY3VycmVudCBhbGluZWE6IGdvIHRvIG5leHQgYWxpbmVhLlxuICAgICAgICAgIHN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUgPSBcInN1YkFsaW5lYUVsZW1lbnRcIlxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwibmV4dEFsaW5lYUVsZW1lbnRcIjpcbiAgICAgICAgYWxpbmVhRWxlbWVudCA9IGFsaW5lYUVsZW1lbnQhLm5leHRFbGVtZW50U2libGluZ1xuICAgICAgICBpZiAoYWxpbmVhRWxlbWVudCA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRoZSBib2R5Q2hpbGQgaGFzIGJlZW4gZnVsbHkgcGFyc2VkLiBHbyB0byBuZXh0IGJvZHlDaGlsZFxuICAgICAgICAgIHN0YXRlID0gXCJuZXh0Qm9keUNoaWxkXCJcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZSA9IFwiYWxpbmVhRWxlbWVudFwiXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJuZXh0Qm9keUNoaWxkXCI6XG4gICAgICAgIGlmIChib2R5Q2hpbGQubmV4dEVsZW1lbnRTaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gVGhlIGRvY3VtZW50IGhhcyBiZWVuIGZ1bGx5IHBhcnNlZC5cbiAgICAgICAgICBzdGF0ZSA9IG51bGxcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBib2R5Q2hpbGQgPSBib2R5Q2hpbGQubmV4dEVsZW1lbnRTaWJsaW5nXG4gICAgICAgICAgaWYgKGJvZHlDaGlsZC50YWdOYW1lID09PSBcIkRJVlwiKSB7XG4gICAgICAgICAgICBzdGF0ZSA9IFwiZmlyc3RBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gPFAvPiBpcyBmb3IgZm9vdG5vdGVzXG4gICAgICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgICAgIFtcIkJSXCIsIFwiSFJcIiwgXCJQXCJdLmluY2x1ZGVzKGJvZHlDaGlsZC50YWdOYW1lKSxcbiAgICAgICAgICAgICAgYFVuZXhwZWN0ZWQgdGFnIG5hbWUgXCIke2JvZHlDaGlsZC50YWdOYW1lfVwiIGZvciBib2R5IGNoaWxkYCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC8vIFN0YXkgaW4gdGhlIHNhbWUgc3RhdGUgdG8gZ28gdG8gbmV4dCBib2R5Q2hpbGQuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwibmV4dFBhcmFncmFwaENoaWxkXCI6XG4gICAgICAgIHBhcmFncmFwaENoaWxkID0gcGFyYWdyYXBoQ2hpbGQhLm5leHRFbGVtZW50U2libGluZ1xuICAgICAgICBpZiAocGFyYWdyYXBoQ2hpbGQgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBUaGUgcGFyYWdyYXBoIGVsZW1lbnQgaGFzIGJlZW4gZnVsbHkgcGFyc2VkLiBHbyB0byBuZXh0IHBhcmVudCBlbGVtZW50LlxuICAgICAgICAgIGNvbnN0IGxpbmVUZXh0ID0gbGluZUVsZW1lbnRzIVxuICAgICAgICAgICAgLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC50ZXh0Q29udGVudClcbiAgICAgICAgICAgIC5qb2luKFwiXCIpXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgaWYgKGxpbmVUZXh0KSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lSHRtbCA9IGxpbmVFbGVtZW50cyFcbiAgICAgICAgICAgICAgLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC5vdXRlckhUTUwpXG4gICAgICAgICAgICAgIC5qb2luKFwiXCIpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc1RleHQhLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICAgICAgICAoaXNNdWx0aUxpbmVzSGVhZGVyICYmIHN1YmRpdmlzaW9uQWxpbmVhc1RleHQhLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNIdG1sIS5wdXNoKGxpbmVIdG1sKVxuICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0IS5wdXNoKGxpbmVUZXh0KVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzSHRtbCEucHVzaChsaW5lSHRtbClcbiAgICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzVGV4dCEucHVzaChsaW5lVGV4dClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzTXVsdGlMaW5lc0hlYWRlciAmJiBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0IS5sZW5ndGggPj0gMikge1xuICAgICAgICAgICAgaXNNdWx0aUxpbmVzSGVhZGVyID0gZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgICAgbGluZUVsZW1lbnRzID0gbnVsbFxuICAgICAgICAgIHN0YXRlID0gbmV4dFBhcmVudFN0YXRlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUgPSBcInBhcmFncmFwaENoaWxkXCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcIm5leHRTdWJBbGluZWFFbGVtZW50XCI6XG4gICAgICAgIHN1YkFsaW5lYUVsZW1lbnQgPSBzdWJBbGluZWFFbGVtZW50IS5uZXh0RWxlbWVudFNpYmxpbmdcbiAgICAgICAgaWYgKHN1YkFsaW5lYUVsZW1lbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBUaGUgYWxpbmVhRWxlbWVudCBoYXMgYmVlbiBmdWxseSBwYXJzZWQuIEdvIHRvIG5leHQgYWxpbmVhRWxlbWVudC5cbiAgICAgICAgICBzdGF0ZSA9IFwibmV4dEFsaW5lYUVsZW1lbnRcIlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlID0gXCJzdWJBbGluZWFFbGVtZW50XCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcInBhcmFncmFwaENoaWxkXCI6XG4gICAgICAgIHN3aXRjaCAocGFyYWdyYXBoQ2hpbGQhLnRhZ05hbWUpIHtcbiAgICAgICAgICBjYXNlIFwiQVwiOiB7XG4gICAgICAgICAgICBsaW5lRWxlbWVudHMhLnB1c2gocGFyYWdyYXBoQ2hpbGQhKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcIkJSXCI6IHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVUZXh0ID0gbGluZUVsZW1lbnRzIVxuICAgICAgICAgICAgICAubWFwKChlbGVtZW50KSA9PiBlbGVtZW50LnRleHRDb250ZW50KVxuICAgICAgICAgICAgICAuam9pbihcIlwiKVxuICAgICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICBpZiAobGluZVRleHQpIHtcbiAgICAgICAgICAgICAgY29uc3QgbGluZUh0bWwgPSBsaW5lRWxlbWVudHMhXG4gICAgICAgICAgICAgICAgLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC5vdXRlckhUTUwpXG4gICAgICAgICAgICAgICAgLmpvaW4oXCJcIilcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc1RleHQhLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICAgICAgICAgIChpc011bHRpTGluZXNIZWFkZXIgJiYgc3ViZGl2aXNpb25BbGluZWFzVGV4dCEubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNIdG1sIS5wdXNoKGxpbmVIdG1sKVxuICAgICAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc1RleHQhLnB1c2gobGluZVRleHQpXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzSHRtbCEucHVzaChsaW5lSHRtbClcbiAgICAgICAgICAgICAgICBzdWJkaXZpc2lvbkFsaW5lYXNUZXh0IS5wdXNoKGxpbmVUZXh0KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5lRWxlbWVudHMgPSBbXVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcIkRFTFwiOiB7XG4gICAgICAgICAgICBsaW5lRWxlbWVudHMhLnB1c2gocGFyYWdyYXBoQ2hpbGQhKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcIklNR1wiOiB7XG4gICAgICAgICAgICBsaW5lRWxlbWVudHMhLnB1c2gocGFyYWdyYXBoQ2hpbGQhKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcIlNQQU5cIjoge1xuICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gcGFyYWdyYXBoQ2hpbGQhLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpXG4gICAgICAgICAgICBzd2l0Y2ggKGNsYXNzTmFtZSkge1xuICAgICAgICAgICAgICBjYXNlIFwiYUVsb2lQYXN0aWxsZVwiOiB7XG4gICAgICAgICAgICAgICAgLy8gU2tpcCBwYXN0aWxsw6kgU1BBTi5cbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNhc2UgXCJhRWxvaVBhc3RpbGxlMFwiOiB7XG4gICAgICAgICAgICAgICAgLy8gU2tpcCBwYXN0aWxsw6kgU1BBTi5cbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgbGluZUVsZW1lbnRzIS5wdXNoKHBhcmFncmFwaENoaWxkISlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBlcnJvcjoge1xuICAgICAgICAgICAgICAgIGNvZGU6IC0zLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBVbmV4cGVjdGVkIHRhZyBuYW1lIGZvciBwYXJhZ3JhcGggY2hpbGQ6ICR7XG4gICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhDaGlsZCEudGFnTmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBodG1sLFxuICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN0YXRlID0gXCJuZXh0UGFyYWdyYXBoQ2hpbGRcIlxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcInN1YkFsaW5lYUVsZW1lbnRcIjpcbiAgICAgICAgc3dpdGNoIChzdWJBbGluZWFFbGVtZW50IS50YWdOYW1lKSB7XG4gICAgICAgICAgY2FzZSBcIlBcIjpcbiAgICAgICAgICAgIG5leHRQYXJlbnRTdGF0ZSA9IFwibmV4dFN1YkFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgICAgcGFyYWdyYXBoRWxlbWVudCA9IHN1YkFsaW5lYUVsZW1lbnRcbiAgICAgICAgICAgIHN0YXRlID0gXCJmaXJzdFBhcmFncmFwaENoaWxkXCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSBcIlRBQkxFXCI6XG4gICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICBzdGF0ZSA9IFwibmV4dFN1YkFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgICAgICBjb2RlOiAtNCxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCB0YWcgbmFtZSBmb3Igc3ViIGFsaW5lYSBlbGVtZW50OiAke1xuICAgICAgICAgICAgICAgICAgc3ViQWxpbmVhRWxlbWVudCEudGFnTmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBodG1sLFxuICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICAgIHN0YXRlID0gXCJuZXh0U3ViQWxpbmVhRWxlbWVudFwiXG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBgVW5leHBlY3RlZCBzdGF0ZTogJHtzdGF0ZX1gXG4gICAgfVxuICB9XG5cbiAgd2luZG93LmNsb3NlKCkgLy8gRnJlZSBtZW1vcnkuXG5cbiAgcmV0dXJuIHtcbiAgICBlcnJvcjogbnVsbCxcbiAgICBodG1sLFxuICAgIHBhZ2UsXG4gICAgc3ViZGl2aXNpb25zLFxuICAgIHVybDogYXNzZW1ibGVlVXJsLFxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXRyaWV2ZVRleHRlTG9pUGFyc2VkKFxuICBmZXRjaDogKFxuICAgIHVybDogc3RyaW5nIHwgUmVxdWVzdCxcbiAgICBpbml0PzogUmVxdWVzdEluaXQgfCB1bmRlZmluZWQsXG4gICkgPT4gUHJvbWlzZTxSZXNwb25zZT4sXG4gIGFzc2VtYmxlZVVybDogc3RyaW5nLFxuKSB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYXNzZW1ibGVlVXJsKVxuICBjb25zdCBwYWdlID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3I6IHsgY29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0IH0sXG4gICAgICBwYWdlLFxuICAgIH1cbiAgfVxuICByZXR1cm4gcGFyc2VUZXh0ZUxvaShhc3NlbWJsZWVVcmwsIHBhZ2UpXG59XG4iXX0=
@@ -130,9 +130,9 @@ _AsyncGenerator.prototype["return"] = function (arg) { return this._invoke("retu
130
130
 
131
131
  function _AwaitValue(value) { this.wrapped = value; }
132
132
 
133
- function _asyncIterator(iterable) { var method, async, sync, retry = 2; if (typeof Symbol !== "undefined") { async = Symbol.asyncIterator; sync = Symbol.iterator; } while (retry--) { if (async && (method = iterable[async]) != null) { return method.call(iterable); } if (sync && (method = iterable[sync]) != null) { return new AsyncFromSyncIterator(method.call(iterable)); } async = "@@asyncIterator"; sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
133
+ function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
134
134
 
135
- function AsyncFromSyncIterator(s) { AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s; this.n = s.next; }; AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, "return": function _return(value) { var ret = this.s["return"]; if (ret === undefined) { return Promise.resolve({ value: value, done: true }); } return AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, "throw": function _throw(value) { var thr = this.s["return"]; if (thr === undefined) return Promise.reject(value); return AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }; function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) { return Promise.reject(new TypeError(r + " is not an object.")); } var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return new AsyncFromSyncIterator(s); }
135
+ function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, "return": function _return(value) { var ret = this.s["return"]; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, "throw": function _throw(value) { var thr = this.s["return"]; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
136
136
 
137
137
  function iterRechercheAmendements(_x, _x2, _x3, _x4, _x5) {
138
138
  return _iterRechercheAmendements.apply(this, arguments);