@data-client/rest 0.18.0 → 0.18.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 (73) hide show
  1. package/CHANGELOG.md +198 -1
  2. package/dist/index.js +16 -7
  3. package/dist/index.umd.min.js +1 -1
  4. package/legacy/RestEndpoint.js +6 -5
  5. package/legacy/RestEndpointTypes.js +1 -1
  6. package/legacy/extractCollection.js +3 -1
  7. package/legacy/paramsToString.js +1 -1
  8. package/legacy/paramsToString.native.js +1 -1
  9. package/legacy/pathTypes.js +1 -1
  10. package/legacy/resource.js +10 -4
  11. package/legacy/resourceExtendable.js +1 -1
  12. package/legacy/resourceExtensionTypes.js +1 -1
  13. package/legacy/resourceTypes.js +1 -1
  14. package/lib/NetworkError.d.ts.map +1 -1
  15. package/lib/RestEndpoint.js +6 -5
  16. package/lib/RestEndpointTypes.d.ts +49 -20
  17. package/lib/RestEndpointTypes.d.ts.map +1 -1
  18. package/lib/RestEndpointTypes.js +1 -1
  19. package/lib/extractCollection.d.ts +8 -1
  20. package/lib/extractCollection.d.ts.map +1 -1
  21. package/lib/extractCollection.js +3 -1
  22. package/lib/paramsToString.d.ts.map +1 -1
  23. package/lib/paramsToString.js +1 -1
  24. package/lib/paramsToString.native.d.ts.map +1 -1
  25. package/lib/paramsToString.native.js +1 -1
  26. package/lib/pathTypes.d.ts +33 -7
  27. package/lib/pathTypes.d.ts.map +1 -1
  28. package/lib/pathTypes.js +1 -1
  29. package/lib/resource.d.ts +1 -1
  30. package/lib/resource.d.ts.map +1 -1
  31. package/lib/resource.js +10 -4
  32. package/lib/resourceExtendable.d.ts +4 -4
  33. package/lib/resourceExtendable.d.ts.map +1 -1
  34. package/lib/resourceExtendable.js +1 -1
  35. package/lib/resourceExtensionTypes.d.ts +7 -7
  36. package/lib/resourceExtensionTypes.d.ts.map +1 -1
  37. package/lib/resourceExtensionTypes.js +1 -1
  38. package/lib/resourceTypes.d.ts +8 -2
  39. package/lib/resourceTypes.d.ts.map +1 -1
  40. package/lib/resourceTypes.js +1 -1
  41. package/lib/test-fixtures.d.ts +7 -7
  42. package/lib/test-fixtures.d.ts.map +1 -1
  43. package/package.json +7 -7
  44. package/src/RestEndpoint.js +8 -7
  45. package/src/RestEndpointTypes.ts +116 -53
  46. package/src/__tests__/RestEndpoint.ts +23 -7
  47. package/src/__tests__/__snapshots__/RestEndpoint.ts.snap +1 -1
  48. package/src/__tests__/resource-construction.test.ts +47 -0
  49. package/src/extractCollection.ts +3 -0
  50. package/src/paramsToString.native.ts +1 -5
  51. package/src/paramsToString.ts +1 -5
  52. package/src/pathTypes.ts +105 -31
  53. package/src/resource.ts +11 -6
  54. package/src/resourceExtendable.ts +15 -11
  55. package/src/resourceExtensionTypes.ts +16 -10
  56. package/src/resourceTypes.ts +6 -4
  57. package/ts4.0/RestEndpointTypes.d.ts +57 -22
  58. package/ts4.0/extractCollection.d.ts +8 -1
  59. package/ts4.0/mapCollection.d.ts +11 -16
  60. package/ts4.0/resource.d.ts +1 -1
  61. package/ts4.0/resourceExtendable.d.ts +4 -4
  62. package/ts4.0/resourceExtensionTypes.d.ts +7 -7
  63. package/ts4.0/resourceTypes.d.ts +8 -2
  64. package/ts4.0/test-fixtures.d.ts +7 -7
  65. package/ts4.1/RestEndpointTypes.d.ts +57 -22
  66. package/ts4.1/extractCollection.d.ts +8 -1
  67. package/ts4.1/mapCollection.d.ts +11 -16
  68. package/ts4.1/pathTypes.d.ts +33 -7
  69. package/ts4.1/resource.d.ts +1 -1
  70. package/ts4.1/resourceExtendable.d.ts +4 -4
  71. package/ts4.1/resourceExtensionTypes.d.ts +7 -7
  72. package/ts4.1/resourceTypes.d.ts +8 -2
  73. package/ts4.1/test-fixtures.d.ts +7 -7
@@ -93,8 +93,9 @@ export default class RestEndpoint extends Endpoint {
93
93
 
94
94
  /** Init options for fetch - run at fetch */
95
95
  async getRequestInit(body) {
96
- const bodyIsPojo = isPojo(body);
97
- if (bodyIsPojo) {
96
+ // plain objects and arrays are JSON; FormData, Blob, strings, etc pass through to fetch
97
+ const bodyIsJSON = isPojo(body) || Array.isArray(body);
98
+ if (bodyIsJSON) {
98
99
  body = JSON.stringify(body);
99
100
  }
100
101
  const init = _extends({}, this.requestInit, {
@@ -102,7 +103,7 @@ export default class RestEndpoint extends Endpoint {
102
103
  signal: this.signal,
103
104
  body
104
105
  });
105
- if (!body || bodyIsPojo) {
106
+ if (!body || bodyIsJSON) {
106
107
  init.headers = _extends({
107
108
  // default to application/json but allow user explicit overrides
108
109
  'Content-Type': 'application/json'
@@ -259,7 +260,7 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
259
260
  return this.extend({
260
261
  method: 'PATCH',
261
262
  schema: extractCollection(this.schema, s => s.remove),
262
- name: this.name + '.remove'
263
+ name: this.name + '.partialUpdate'
263
264
  });
264
265
  }
265
266
  get move() {
@@ -280,4 +281,4 @@ const tryParse = input => {
280
281
  return undefined;
281
282
  }
282
283
  };
283
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsImNyZWF0ZVBhZ2luYXRpb25TY2hlbWEiLCJwYXJhbXNUb1N0cmluZyIsImdldFVybEJhc2UiLCJnZXRVcmxUb2tlbnMiLCJnZXRQYXRoUmVnZXgiLCJpc1Bvam8iLCJ0ZXh0TGlrZVJlIiwianNvblJlc3BvbnNlIiwicmVzcG9uc2UiLCJqc29uIiwiY2F0Y2giLCJlcnJvciIsInN0YXR1cyIsIl9oYXNCb2R5IiwiX2NsYXNzUHJpdmF0ZUZpZWxkTG9vc2VLZXkiLCJSZXN0RW5kcG9pbnQiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJfb3B0aW9ucyRmZXRjaCIsImZldGNoIiwiYXJncyIsInVybFBhcmFtcyIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlQmFzZSIsImxlbmd0aCIsImJvZHkiLCJ1bmRlZmluZWQiLCJmZXRjaFJlc3BvbnNlIiwidXJsIiwiZ2V0UmVxdWVzdEluaXQiLCJ0aGVuIiwicGFyc2VSZXNwb25zZSIsInJlcyIsInByb2Nlc3MiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIndyaXRhYmxlIiwidmFsdWUiLCJzaWRlRWZmZWN0IiwibWV0aG9kIiwidXJsUHJlZml4IiwiaW5jbHVkZXMiLCJlbnYiLCJOT0RFX0VOViIsImNvbnRlbnQiLCJzY2hlbWEiLCJjb25zb2xlIiwiZ2V0IiwiX19uYW1lIiwicGF0aCIsImtleSIsInRva2VucyIsInBhdGhQYXJhbXMiLCJzZWFyY2hQYXJhbXMiLCJrZXlzIiwiZm9yRWFjaCIsImsiLCJoYXMiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJTdHJpbmciLCJ1cmxCYXNlIiwic2VhcmNoVG9TdHJpbmciLCJnZXRIZWFkZXJzIiwiaGVhZGVycyIsImJvZHlJc1Bvam8iLCJKU09OIiwic3RyaW5naWZ5IiwiaW5pdCIsIl9leHRlbmRzIiwicmVxdWVzdEluaXQiLCJzaWduYWwiLCJpbnB1dCIsIm9rIiwiVHlwZUVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJtZXNzYWdlIiwiY29udGVudFR5cGUiLCJpc0JpbmFyeSIsInRlc3QiLCJwcm90b3R5cGUiLCJibG9iIiwidGV4dCIsInN0YXJ0c1dpdGgiLCJ0cnlQYXJzZSIsInN1YnN0cmluZyIsImVycm9yUG9saWN5IiwicGF0aFJlZ2V4IiwidGVzdEtleSIsInByZWZpeCIsImxhc3RRdWVzdGlvbiIsImxhc3RJbmRleE9mIiwiZXh0ZW5kIiwiRSIsImFzc2lnbiIsInBhZ2luYXRlZCIsInJlbW92ZUN1cnNvciIsImZpZWxkTmFtZSIsIl9yZWYiLCJwYXJhbXMiLCJfb2JqZWN0RGVzdHJ1Y3R1cmluZ0VtcHR5IiwiZm91bmQiLCJjcmVhdGVQYWdpbmF0ZWRTY2hlbWEiLCJjb2xsZWN0aW9uIiwibmV3U2NoZW1hIiwiRXJyb3IiLCJzdXAiLCJjYWxsIiwibmFtZSIsImdldFBhZ2UiLCJwYWdpbmF0aW9uRmllbGQiLCJwdXNoIiwicyIsInVuc2hpZnQiLCJyZW1vdmUiLCJtb3ZlIiwibW92ZVBhdGgiLCJwYXJzZSIsImUiXSwic291cmNlcyI6WyIuLi9zcmMvUmVzdEVuZHBvaW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZHBvaW50IH0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcblxuaW1wb3J0IGV4dHJhY3RDb2xsZWN0aW9uIGZyb20gJy4vZXh0cmFjdENvbGxlY3Rpb24uanMnO1xuaW1wb3J0IG1hcENvbGxlY3Rpb24gZnJvbSAnLi9tYXBDb2xsZWN0aW9uLmpzJztcbmltcG9ydCBOZXR3b3JrRXJyb3IgZnJvbSAnLi9OZXR3b3JrRXJyb3IuanMnO1xuaW1wb3J0IHsgY3JlYXRlUGFnaW5hdGlvblNjaGVtYSB9IGZyb20gJy4vcGFnaW5hdGVkQ29sbGVjdGlvbnMuanMnO1xuaW1wb3J0IHBhcmFtc1RvU3RyaW5nIGZyb20gJy4vcGFyYW1zVG9TdHJpbmcuanMnO1xuaW1wb3J0IHtcbiAgZ2V0VXJsQmFzZSxcbiAgZ2V0VXJsVG9rZW5zLFxuICBnZXRQYXRoUmVnZXgsXG4gIGlzUG9qbyxcbn0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbmNvbnN0IHRleHRMaWtlUmUgPVxuICAvXFxidGV4dFxcYnxcXGJ4bWxcXGJ8XFxiaHRtbFxcYnxcXGJqYXZhc2NyaXB0XFxifFxcYmNzc1xcYnxcXGJjc3ZcXGJ8XFxidXJsZW5jb2RlZFxcYi87XG5cbmZ1bmN0aW9uIGpzb25SZXNwb25zZShyZXNwb25zZSkge1xuICByZXR1cm4gcmVzcG9uc2UuanNvbigpLmNhdGNoKGVycm9yID0+IHtcbiAgICBlcnJvci5zdGF0dXMgPSA0MDA7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH0pO1xufVxuXG4vKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlc3RFbmRwb2ludCBleHRlbmRzIEVuZHBvaW50IHtcbiAgI2hhc0JvZHk7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICBzdXBlcihcbiAgICAgIG9wdGlvbnMuZmV0Y2ggPz9cbiAgICAgICAgYXN5bmMgZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgICBjb25zdCB1cmxQYXJhbXMgPVxuICAgICAgICAgICAgdGhpcy4jaGFzQm9keSAmJiBhcmdzLmxlbmd0aCA8IDIgPyB7fSA6IGFyZ3NbMF0gfHwge307XG4gICAgICAgICAgY29uc3QgYm9keSA9IHRoaXMuI2hhc0JvZHkgPyBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hSZXNwb25zZShcbiAgICAgICAgICAgIHRoaXMudXJsKHVybFBhcmFtcyksXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldFJlcXVlc3RJbml0KGJvZHkpLFxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHRoaXMucGFyc2VSZXNwb25zZShyZXNwb25zZSkpXG4gICAgICAgICAgICAudGhlbihyZXMgPT4gdGhpcy5wcm9jZXNzKHJlcywgLi4uYXJncykpO1xuICAgICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICAgIC8vIHdlIHdhbnQgdG8gdXNlIHRoZSBwcm90b3R5cGUgY2hhaW4gaGVyZVxuICAgIGlmIChcbiAgICAgICEoJ3NpZGVFZmZlY3QnIGluIHRoaXMpIHx8XG4gICAgICAoJ21ldGhvZCcgaW4gb3B0aW9ucyAmJiAhKCdzaWRlRWZmZWN0JyBpbiBvcHRpb25zKSlcbiAgICApIHtcbiAgICAgIHRoaXMuc2lkZUVmZmVjdCA9XG4gICAgICAgIG9wdGlvbnMubWV0aG9kID09PSAnR0VUJyB8fCBvcHRpb25zLm1ldGhvZCA9PT0gdW5kZWZpbmVkID9cbiAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgOiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5tZXRob2QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tZXRob2QgPSB0aGlzLnNpZGVFZmZlY3QgPyAnUE9TVCcgOiAnR0VUJztcbiAgICB9XG4gICAgaWYgKHRoaXMudXJsUHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudXJsUHJlZml4ID0gJyc7XG4gICAgfVxuICAgIHRoaXMuI2hhc0JvZHkgPVxuICAgICAgKCEoJ2JvZHknIGluIHRoaXMpIHx8IHRoaXMuYm9keSAhPT0gdW5kZWZpbmVkKSAmJlxuICAgICAgIVsnR0VUJywgJ0RFTEVURSddLmluY2x1ZGVzKHRoaXMubWV0aG9kKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5jb250ZW50ICYmXG4gICAgICAgIHRoaXMuY29udGVudCAhPT0gJ2pzb24nICYmXG4gICAgICAgIHRoaXMuc2NoZW1hICE9IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIHRoaXMuc2NoZW1hICE9PSAnc3RyaW5nJyAmJlxuICAgICAgICB0eXBlb2YgdGhpcy5zY2hlbWEgIT09ICd1bmRlZmluZWQnXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgY29udGVudCAnJHt0aGlzLmNvbnRlbnR9JyBpcyBpbmNvbXBhdGlibGUgd2l0aCBzY2hlbWEuIEJpbmFyeS90ZXh0IHJlc3BvbnNlcyBjYW5ub3QgYmUgbm9ybWFsaXplZC4gVXNlIHNjaGVtYTogdW5kZWZpbmVkLmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICduYW1lJywge1xuICAgICAgZ2V0KCkge1xuICAgICAgICAvLyB1c2luZyAnaW4nIHRvIGVuc3VyZSBpbmhlcml0YW5jZSBsb29rdXBcbiAgICAgICAgaWYgKCdfX25hbWUnIGluIHRoaXMpIHJldHVybiB0aGlzLl9fbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXMudXJsUHJlZml4ICsgdGhpcy5wYXRoO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGtleSguLi5hcmdzKSB7XG4gICAgcmV0dXJuIGAke3RoaXMubWV0aG9kfSAke3RoaXMudXJsKFxuICAgICAgdGhpcy4jaGFzQm9keSAmJiBhcmdzLmxlbmd0aCA8IDIgPyB7fSA6IGFyZ3NbMF0gfHwge30sXG4gICAgKX1gO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgdXJsICovXG4gIHVybCh1cmxQYXJhbXMgPSB7fSkge1xuICAgIGNvbnN0IHRva2VucyA9IGdldFVybFRva2Vucyh0aGlzLnBhdGgpO1xuICAgIGNvbnN0IHBhdGhQYXJhbXMgPSB7fTtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSB7fTtcbiAgICBPYmplY3Qua2V5cyh1cmxQYXJhbXMpLmZvckVhY2goayA9PiB7XG4gICAgICBpZiAodG9rZW5zLmhhcyhrKSkge1xuICAgICAgICBpZiAodXJsUGFyYW1zW2tdICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgcGF0aFBhcmFtc1trXSA9XG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHVybFBhcmFtc1trXSkgP1xuICAgICAgICAgICAgICB1cmxQYXJhbXNba10ubWFwKFN0cmluZylcbiAgICAgICAgICAgIDogU3RyaW5nKHVybFBhcmFtc1trXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWFyY2hQYXJhbXNba10gPSB1cmxQYXJhbXNba107XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgdXJsQmFzZSA9IGdldFVybEJhc2UodGhpcy5wYXRoKShwYXRoUGFyYW1zKTtcbiAgICBpZiAoT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnVybFByZWZpeH0ke3VybEJhc2V9PyR7dGhpcy5zZWFyY2hUb1N0cmluZyhzZWFyY2hQYXJhbXMpfWA7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLnVybFByZWZpeH0ke3VybEJhc2V9YDtcbiAgfVxuXG4gIC8qKiBFbmNvZGUgdGhlIHVybCBzZWFyY2hQYXJhbXMgKi9cbiAgc2VhcmNoVG9TdHJpbmcoc2VhcmNoUGFyYW1zKSB7XG4gICAgcmV0dXJuIHBhcmFtc1RvU3RyaW5nKHNlYXJjaFBhcmFtcyk7XG4gIH1cblxuICBnZXRIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIC8qKiBJbml0IG9wdGlvbnMgZm9yIGZldGNoIC0gcnVuIGF0IGZldGNoICovXG4gIGFzeW5jIGdldFJlcXVlc3RJbml0KGJvZHkpIHtcbiAgICBjb25zdCBib2R5SXNQb2pvID0gaXNQb2pvKGJvZHkpO1xuICAgIGlmIChib2R5SXNQb2pvKSB7XG4gICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgfVxuICAgIGNvbnN0IGluaXQgPSB7XG4gICAgICAuLi50aGlzLnJlcXVlc3RJbml0LFxuICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICAgIHNpZ25hbDogdGhpcy5zaWduYWwsXG4gICAgICBib2R5LFxuICAgIH07XG4gICAgaWYgKCFib2R5IHx8IGJvZHlJc1Bvam8pIHtcbiAgICAgIGluaXQuaGVhZGVycyA9IHtcbiAgICAgICAgLy8gZGVmYXVsdCB0byBhcHBsaWNhdGlvbi9qc29uIGJ1dCBhbGxvdyB1c2VyIGV4cGxpY2l0IG92ZXJyaWRlc1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAuLi5pbml0LmhlYWRlcnMsXG4gICAgICB9O1xuICAgIH1cbiAgICBpbml0LmhlYWRlcnMgPSBhd2FpdCB0aGlzLmdldEhlYWRlcnMoaW5pdC5oZWFkZXJzKTtcbiAgICByZXR1cm4gaW5pdDtcbiAgfVxuXG4gIC8qKiBQZXJmb3JtIG5ldHdvcmsgcmVxdWVzdCBhbmQgcmVzb2x2ZSB3aXRoIEhUVFAgUmVzcG9uc2UgKi9cbiAgZmV0Y2hSZXNwb25zZShpbnB1dCwgaW5pdCkge1xuICAgIHJldHVybiBmZXRjaChpbnB1dCwgaW5pdClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIHRocm93IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAvLyBlbnN1cmUgQ09SUywgbmV0d29yayBkb3duLCBhbmQgcGFyc2UgZXJyb3JzIGFyZSBzdGlsbCBjYXVnaHQgYnkgTmV0d29ya0Vycm9yQm91bmRhcnlcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKSB7XG4gICAgICAgICAgZXJyb3Iuc3RhdHVzID0gNTAwO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH1cblxuICBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0KSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuXG4gICAgaWYgKHRoaXMuY29udGVudCkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmNvbnRlbnQgIT09ICdqc29uJyAmJlxuICAgICAgICAgIHRoaXMuc2NoZW1hICE9IG51bGwgJiZcbiAgICAgICAgICB0eXBlb2YgdGhpcy5zY2hlbWEgIT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgdHlwZW9mIHRoaXMuc2NoZW1hICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICAgIGVycm9yLnN0YXR1cyA9IDQwMDtcbiAgICAgICAgICBlcnJvci5tZXNzYWdlID0gYGNvbnRlbnQgJyR7dGhpcy5jb250ZW50fScgaXMgaW5jb21wYXRpYmxlIHdpdGggc2NoZW1hLiBCaW5hcnkvdGV4dCByZXNwb25zZXMgY2Fubm90IGJlIG5vcm1hbGl6ZWQuIFVzZSBzY2hlbWE6IHVuZGVmaW5lZC5gO1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jb250ZW50ID09PSAnc3RyZWFtJykgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXNwb25zZS5ib2R5KTtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQgPT09ICdqc29uJyA/XG4gICAgICAgICAganNvblJlc3BvbnNlKHJlc3BvbnNlKVxuICAgICAgICA6IHJlc3BvbnNlW3RoaXMuY29udGVudF0oKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKTtcbiAgICBpZiAoY29udGVudFR5cGU/LmluY2x1ZGVzKCdqc29uJykpIHJldHVybiBqc29uUmVzcG9uc2UocmVzcG9uc2UpO1xuXG4gICAgY29uc3QgaXNCaW5hcnkgPSBjb250ZW50VHlwZSAmJiAhdGV4dExpa2VSZS50ZXN0KGNvbnRlbnRUeXBlKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiB0aGlzLnNjaGVtYSA9PT0gJ3N0cmluZycgfHxcbiAgICAgIHR5cGVvZiB0aGlzLnNjaGVtYSA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgIHRoaXMuc2NoZW1hID09PSBudWxsIHx8XG4gICAgICB0aGlzLnByb2Nlc3MgIT09IFJlc3RFbmRwb2ludC5wcm90b3R5cGUucHJvY2Vzc1xuICAgIClcbiAgICAgIHJldHVybiBpc0JpbmFyeSA/IHJlc3BvbnNlLmJsb2IoKSA6IHJlc3BvbnNlLnRleHQoKTtcblxuICAgIGlmIChpc0JpbmFyeSkge1xuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgTmV0d29ya0Vycm9yKHJlc3BvbnNlKTtcbiAgICAgIGVycm9yLnN0YXR1cyA9IDQwMDtcbiAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCBiaW5hcnkgY29udGVudC10eXBlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1gO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCBiaW5hcnkgY29udGVudC10eXBlIFwiJHtjb250ZW50VHlwZX1cIiBmb3Igc2NoZW1hICR7dGhpcy5zY2hlbWF9LiBCaW5hcnkgcmVzcG9uc2VzIGNhbm5vdCBiZSBub3JtYWxpemVkLiBVc2Ugc2NoZW1hOiB1bmRlZmluZWQgb3Igc2V0IGNvbnRlbnQ6ICdibG9iJy5gO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKHRleHQgPT4ge1xuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgTmV0d29ya0Vycm9yKHJlc3BvbnNlKTtcbiAgICAgIGVycm9yLnN0YXR1cyA9IDQwNDtcbiAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCB0ZXh0IHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1gO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhKGNvbnRlbnRUeXBlPy5pbmNsdWRlcygnaHRtbCcpIHx8IHRleHQuc3RhcnRzV2l0aCgnPCFkb2N0eXBlIGh0bWw+JykpXG4gICAgICAgICkge1xuICAgICAgICAgIGlmICh0cnlQYXJzZSh0ZXh0KSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlcnJvci5tZXNzYWdlID0gYFwiY29udGVudC10eXBlXCIgaGVhZGVyIGRvZXMgbm90IGluY2x1ZGUgXCJqc29uXCIsIGJ1dCBKU09OIHJlc3BvbnNlIGZvdW5kLlxuU2VlIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM0NjI3IGZvciBpbmZvcm1hdGlvbiBvbiBKU09OIHJlc3BvbnNlc1xuXG5Vc2luZyBwYXJzZWQgSlNPTi5cbklmIHRleHQgY29udGVudCB3YXMgZXhwZWN0ZWQgc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFyc2VSZXNwb25zZWA7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCBodG1sIHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1cblRoaXMgbGlrZWx5IG1lYW5zIG5vIEFQSSBlbmRwb2ludCB3YXMgY29uZmlndXJlZCBmb3IgdGhpcyByZXF1ZXN0LCByZXN1bHRpbmcgaW4gYW4gSFRNTCBmYWxsYmFjay5cblxuUmVzcG9uc2UgKGZpcnN0IDMwMCBjaGFyYWN0ZXJzKTogJHt0ZXh0LnN1YnN0cmluZygwLCAzMDApfWA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvY2Vzcyh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGVycm9yUG9saWN5KGVycm9yKSB7XG4gICAgcmV0dXJuIGVycm9yLnN0YXR1cyA+PSA1MDAgPyAnc29mdCcgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgcGF0aFJlZ2V4KCkge1xuICAgIHJldHVybiBnZXRQYXRoUmVnZXgodGhpcy5wYXRoKTtcbiAgfVxuXG4gIHRlc3RLZXkoa2V5KSB7XG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5tZXRob2QgKyAnICcgKyB0aGlzLnVybFByZWZpeDtcbiAgICBpZiAoIWtleS5zdGFydHNXaXRoKHByZWZpeCkpIHJldHVybiBmYWxzZTtcbiAgICBsZXQgbGFzdFF1ZXN0aW9uID0ga2V5Lmxhc3RJbmRleE9mKCc/Jyk7XG4gICAgaWYgKGxhc3RRdWVzdGlvbiA9PT0gLTEpIGxhc3RRdWVzdGlvbiA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5wYXRoUmVnZXgudGVzdChrZXkuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgsIGxhc3RRdWVzdGlvbikpO1xuICB9XG5cbiAgZXh0ZW5kKG9wdGlvbnMpIHtcbiAgICAvLyBtYWtlIGEgY29uc3RydWN0b3IvcHJvdG90eXBlIGJhc2VkIG9mZiB0aGlzXG4gICAgLy8gZXh0ZW5kIGZyb20gaXQgYW5kIGluaXQgd2l0aCBvcHRpb25zIHNlbnRcbiAgICBjbGFzcyBFIGV4dGVuZHMgdGhpcy5jb25zdHJ1Y3RvciB7fVxuXG4gICAgT2JqZWN0LmFzc2lnbihFLnByb3RvdHlwZSwgdGhpcyk7XG5cbiAgICByZXR1cm4gbmV3IEUoXG4gICAgICAvLyAgZmV0Y2ggZ2V0IG92ZXJyaWRkZW4gYnkgZnVuY3Rpb24gcHJvdG90eXBlLCBzbyB3ZSBtdXN0IHNldCBpdCBleHBsaWNpdGx5IGV2ZXJ5IHRpbWVcbiAgICAgIHsgZmV0Y2g6IHRoaXMuZmV0Y2gsIC4uLm9wdGlvbnMgfSxcbiAgICApO1xuICB9XG5cbiAgcGFnaW5hdGVkKHJlbW92ZUN1cnNvcikge1xuICAgIGlmICh0eXBlb2YgcmVtb3ZlQ3Vyc29yID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgZmllbGROYW1lID0gcmVtb3ZlQ3Vyc29yO1xuICAgICAgcmVtb3ZlQ3Vyc29yID0gKHsgLi4ucGFyYW1zIH0pID0+IHtcbiAgICAgICAgZGVsZXRlIHBhcmFtc1tmaWVsZE5hbWVdO1xuICAgICAgICByZXR1cm4gW3BhcmFtc107XG4gICAgICB9O1xuICAgIH1cbiAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICBjb25zdCBjcmVhdGVQYWdpbmF0ZWRTY2hlbWEgPSBjb2xsZWN0aW9uID0+IHtcbiAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgIHJldHVybiBjcmVhdGVQYWdpbmF0aW9uU2NoZW1hKHJlbW92ZUN1cnNvciwgY29sbGVjdGlvbik7XG4gICAgfTtcbiAgICBjb25zdCBuZXdTY2hlbWEgPSBtYXBDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBjcmVhdGVQYWdpbmF0ZWRTY2hlbWEpO1xuXG4gICAgaWYgKCFmb3VuZCkgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIENvbGxlY3Rpb24nKTtcbiAgICBjb25zdCBzdXAgPSB0aGlzO1xuXG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgIHNjaGVtYTogbmV3U2NoZW1hLFxuICAgICAga2V5KC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHN1cC5rZXkuY2FsbCh0aGlzLCAuLi5yZW1vdmVDdXJzb3IoLi4uYXJncykpO1xuICAgICAgfSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcuZ2V0UGFnZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgZ2V0UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYWdpbmF0ZWQodGhpcy5wYWdpbmF0aW9uRmllbGQpO1xuICB9XG5cbiAgZ2V0IHB1c2goKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgc2NoZW1hOiBleHRyYWN0Q29sbGVjdGlvbih0aGlzLnNjaGVtYSwgcyA9PiBzLnB1c2gpLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5jcmVhdGUnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHVuc2hpZnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgc2NoZW1hOiBleHRyYWN0Q29sbGVjdGlvbih0aGlzLnNjaGVtYSwgcyA9PiBzLnVuc2hpZnQpLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5jcmVhdGUnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGFzc2lnbigpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMuYXNzaWduKSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcuY3JlYXRlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCByZW1vdmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5yZW1vdmUpLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5yZW1vdmUnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IG1vdmUoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5tb3ZlKSxcbiAgICAgIHNlYXJjaFBhcmFtczogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5wYXJ0aWFsVXBkYXRlJyxcbiAgICB9O1xuICAgIGlmICh0aGlzLm1vdmVQYXRoKSBvcHRpb25zLnBhdGggPSB0aGlzLm1vdmVQYXRoO1xuICAgIHJldHVybiB0aGlzLmV4dGVuZChvcHRpb25zKTtcbiAgfVxufVxuXG5jb25zdCB0cnlQYXJzZSA9IGlucHV0ID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShpbnB1dCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FBU0EsUUFBUSxRQUFRLHVCQUF1QjtBQUVoRCxPQUFPQyxpQkFBaUIsTUFBTSx3QkFBd0I7QUFDdEQsT0FBT0MsYUFBYSxNQUFNLG9CQUFvQjtBQUM5QyxPQUFPQyxZQUFZLE1BQU0sbUJBQW1CO0FBQzVDLFNBQVNDLHNCQUFzQixRQUFRLDJCQUEyQjtBQUNsRSxPQUFPQyxjQUFjLE1BQU0scUJBQXFCO0FBQ2hELFNBQ0VDLFVBQVUsRUFDVkMsWUFBWSxFQUNaQyxZQUFZLEVBQ1pDLE1BQU0sUUFDRCxrQkFBa0I7QUFFekIsTUFBTUMsVUFBVSxHQUNkLHlFQUF5RTtBQUUzRSxTQUFTQyxZQUFZQSxDQUFDQyxRQUFRLEVBQUU7RUFDOUIsT0FBT0EsUUFBUSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDQyxLQUFLLENBQUNDLEtBQUssSUFBSTtJQUNwQ0EsS0FBSyxDQUFDQyxNQUFNLEdBQUcsR0FBRztJQUNsQixNQUFNRCxLQUFLO0VBQ2IsQ0FBQyxDQUFDO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFIQSxJQUFBRSxRQUFBLGdCQUFBQyww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
284
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsImNyZWF0ZVBhZ2luYXRpb25TY2hlbWEiLCJwYXJhbXNUb1N0cmluZyIsImdldFVybEJhc2UiLCJnZXRVcmxUb2tlbnMiLCJnZXRQYXRoUmVnZXgiLCJpc1Bvam8iLCJ0ZXh0TGlrZVJlIiwianNvblJlc3BvbnNlIiwicmVzcG9uc2UiLCJqc29uIiwiY2F0Y2giLCJlcnJvciIsInN0YXR1cyIsIl9oYXNCb2R5IiwiX2NsYXNzUHJpdmF0ZUZpZWxkTG9vc2VLZXkiLCJSZXN0RW5kcG9pbnQiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJfb3B0aW9ucyRmZXRjaCIsImZldGNoIiwiYXJncyIsInVybFBhcmFtcyIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlQmFzZSIsImxlbmd0aCIsImJvZHkiLCJ1bmRlZmluZWQiLCJmZXRjaFJlc3BvbnNlIiwidXJsIiwiZ2V0UmVxdWVzdEluaXQiLCJ0aGVuIiwicGFyc2VSZXNwb25zZSIsInJlcyIsInByb2Nlc3MiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIndyaXRhYmxlIiwidmFsdWUiLCJzaWRlRWZmZWN0IiwibWV0aG9kIiwidXJsUHJlZml4IiwiaW5jbHVkZXMiLCJlbnYiLCJOT0RFX0VOViIsImNvbnRlbnQiLCJzY2hlbWEiLCJjb25zb2xlIiwiZ2V0IiwiX19uYW1lIiwicGF0aCIsImtleSIsInRva2VucyIsInBhdGhQYXJhbXMiLCJzZWFyY2hQYXJhbXMiLCJrZXlzIiwiZm9yRWFjaCIsImsiLCJoYXMiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJTdHJpbmciLCJ1cmxCYXNlIiwic2VhcmNoVG9TdHJpbmciLCJnZXRIZWFkZXJzIiwiaGVhZGVycyIsImJvZHlJc0pTT04iLCJKU09OIiwic3RyaW5naWZ5IiwiaW5pdCIsIl9leHRlbmRzIiwicmVxdWVzdEluaXQiLCJzaWduYWwiLCJpbnB1dCIsIm9rIiwiVHlwZUVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJtZXNzYWdlIiwiY29udGVudFR5cGUiLCJpc0JpbmFyeSIsInRlc3QiLCJwcm90b3R5cGUiLCJibG9iIiwidGV4dCIsInN0YXJ0c1dpdGgiLCJ0cnlQYXJzZSIsInN1YnN0cmluZyIsImVycm9yUG9saWN5IiwicGF0aFJlZ2V4IiwidGVzdEtleSIsInByZWZpeCIsImxhc3RRdWVzdGlvbiIsImxhc3RJbmRleE9mIiwiZXh0ZW5kIiwiRSIsImFzc2lnbiIsInBhZ2luYXRlZCIsInJlbW92ZUN1cnNvciIsImZpZWxkTmFtZSIsIl9yZWYiLCJwYXJhbXMiLCJfb2JqZWN0RGVzdHJ1Y3R1cmluZ0VtcHR5IiwiZm91bmQiLCJjcmVhdGVQYWdpbmF0ZWRTY2hlbWEiLCJjb2xsZWN0aW9uIiwibmV3U2NoZW1hIiwiRXJyb3IiLCJzdXAiLCJjYWxsIiwibmFtZSIsImdldFBhZ2UiLCJwYWdpbmF0aW9uRmllbGQiLCJwdXNoIiwicyIsInVuc2hpZnQiLCJyZW1vdmUiLCJtb3ZlIiwibW92ZVBhdGgiLCJwYXJzZSIsImUiXSwic291cmNlcyI6WyIuLi9zcmMvUmVzdEVuZHBvaW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZHBvaW50IH0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcblxuaW1wb3J0IGV4dHJhY3RDb2xsZWN0aW9uIGZyb20gJy4vZXh0cmFjdENvbGxlY3Rpb24uanMnO1xuaW1wb3J0IG1hcENvbGxlY3Rpb24gZnJvbSAnLi9tYXBDb2xsZWN0aW9uLmpzJztcbmltcG9ydCBOZXR3b3JrRXJyb3IgZnJvbSAnLi9OZXR3b3JrRXJyb3IuanMnO1xuaW1wb3J0IHsgY3JlYXRlUGFnaW5hdGlvblNjaGVtYSB9IGZyb20gJy4vcGFnaW5hdGVkQ29sbGVjdGlvbnMuanMnO1xuaW1wb3J0IHBhcmFtc1RvU3RyaW5nIGZyb20gJy4vcGFyYW1zVG9TdHJpbmcuanMnO1xuaW1wb3J0IHtcbiAgZ2V0VXJsQmFzZSxcbiAgZ2V0VXJsVG9rZW5zLFxuICBnZXRQYXRoUmVnZXgsXG4gIGlzUG9qbyxcbn0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbmNvbnN0IHRleHRMaWtlUmUgPVxuICAvXFxidGV4dFxcYnxcXGJ4bWxcXGJ8XFxiaHRtbFxcYnxcXGJqYXZhc2NyaXB0XFxifFxcYmNzc1xcYnxcXGJjc3ZcXGJ8XFxidXJsZW5jb2RlZFxcYi87XG5cbmZ1bmN0aW9uIGpzb25SZXNwb25zZShyZXNwb25zZSkge1xuICByZXR1cm4gcmVzcG9uc2UuanNvbigpLmNhdGNoKGVycm9yID0+IHtcbiAgICBlcnJvci5zdGF0dXMgPSA0MDA7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH0pO1xufVxuXG4vKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlc3RFbmRwb2ludCBleHRlbmRzIEVuZHBvaW50IHtcbiAgI2hhc0JvZHk7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICBzdXBlcihcbiAgICAgIG9wdGlvbnMuZmV0Y2ggPz9cbiAgICAgICAgYXN5bmMgZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgICBjb25zdCB1cmxQYXJhbXMgPVxuICAgICAgICAgICAgdGhpcy4jaGFzQm9keSAmJiBhcmdzLmxlbmd0aCA8IDIgPyB7fSA6IGFyZ3NbMF0gfHwge307XG4gICAgICAgICAgY29uc3QgYm9keSA9IHRoaXMuI2hhc0JvZHkgPyBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hSZXNwb25zZShcbiAgICAgICAgICAgIHRoaXMudXJsKHVybFBhcmFtcyksXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldFJlcXVlc3RJbml0KGJvZHkpLFxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHRoaXMucGFyc2VSZXNwb25zZShyZXNwb25zZSkpXG4gICAgICAgICAgICAudGhlbihyZXMgPT4gdGhpcy5wcm9jZXNzKHJlcywgLi4uYXJncykpO1xuICAgICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICAgIC8vIHdlIHdhbnQgdG8gdXNlIHRoZSBwcm90b3R5cGUgY2hhaW4gaGVyZVxuICAgIGlmIChcbiAgICAgICEoJ3NpZGVFZmZlY3QnIGluIHRoaXMpIHx8XG4gICAgICAoJ21ldGhvZCcgaW4gb3B0aW9ucyAmJiAhKCdzaWRlRWZmZWN0JyBpbiBvcHRpb25zKSlcbiAgICApIHtcbiAgICAgIHRoaXMuc2lkZUVmZmVjdCA9XG4gICAgICAgIG9wdGlvbnMubWV0aG9kID09PSAnR0VUJyB8fCBvcHRpb25zLm1ldGhvZCA9PT0gdW5kZWZpbmVkID9cbiAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgOiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5tZXRob2QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tZXRob2QgPSB0aGlzLnNpZGVFZmZlY3QgPyAnUE9TVCcgOiAnR0VUJztcbiAgICB9XG4gICAgaWYgKHRoaXMudXJsUHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudXJsUHJlZml4ID0gJyc7XG4gICAgfVxuICAgIHRoaXMuI2hhc0JvZHkgPVxuICAgICAgKCEoJ2JvZHknIGluIHRoaXMpIHx8IHRoaXMuYm9keSAhPT0gdW5kZWZpbmVkKSAmJlxuICAgICAgIVsnR0VUJywgJ0RFTEVURSddLmluY2x1ZGVzKHRoaXMubWV0aG9kKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5jb250ZW50ICYmXG4gICAgICAgIHRoaXMuY29udGVudCAhPT0gJ2pzb24nICYmXG4gICAgICAgIHRoaXMuc2NoZW1hICE9IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIHRoaXMuc2NoZW1hICE9PSAnc3RyaW5nJyAmJlxuICAgICAgICB0eXBlb2YgdGhpcy5zY2hlbWEgIT09ICd1bmRlZmluZWQnXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgY29udGVudCAnJHt0aGlzLmNvbnRlbnR9JyBpcyBpbmNvbXBhdGlibGUgd2l0aCBzY2hlbWEuIEJpbmFyeS90ZXh0IHJlc3BvbnNlcyBjYW5ub3QgYmUgbm9ybWFsaXplZC4gVXNlIHNjaGVtYTogdW5kZWZpbmVkLmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICduYW1lJywge1xuICAgICAgZ2V0KCkge1xuICAgICAgICAvLyB1c2luZyAnaW4nIHRvIGVuc3VyZSBpbmhlcml0YW5jZSBsb29rdXBcbiAgICAgICAgaWYgKCdfX25hbWUnIGluIHRoaXMpIHJldHVybiB0aGlzLl9fbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXMudXJsUHJlZml4ICsgdGhpcy5wYXRoO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGtleSguLi5hcmdzKSB7XG4gICAgcmV0dXJuIGAke3RoaXMubWV0aG9kfSAke3RoaXMudXJsKFxuICAgICAgdGhpcy4jaGFzQm9keSAmJiBhcmdzLmxlbmd0aCA8IDIgPyB7fSA6IGFyZ3NbMF0gfHwge30sXG4gICAgKX1gO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgdXJsICovXG4gIHVybCh1cmxQYXJhbXMgPSB7fSkge1xuICAgIGNvbnN0IHRva2VucyA9IGdldFVybFRva2Vucyh0aGlzLnBhdGgpO1xuICAgIGNvbnN0IHBhdGhQYXJhbXMgPSB7fTtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSB7fTtcbiAgICBPYmplY3Qua2V5cyh1cmxQYXJhbXMpLmZvckVhY2goayA9PiB7XG4gICAgICBpZiAodG9rZW5zLmhhcyhrKSkge1xuICAgICAgICBpZiAodXJsUGFyYW1zW2tdICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgcGF0aFBhcmFtc1trXSA9XG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KHVybFBhcmFtc1trXSkgP1xuICAgICAgICAgICAgICB1cmxQYXJhbXNba10ubWFwKFN0cmluZylcbiAgICAgICAgICAgIDogU3RyaW5nKHVybFBhcmFtc1trXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWFyY2hQYXJhbXNba10gPSB1cmxQYXJhbXNba107XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgdXJsQmFzZSA9IGdldFVybEJhc2UodGhpcy5wYXRoKShwYXRoUGFyYW1zKTtcbiAgICBpZiAoT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnVybFByZWZpeH0ke3VybEJhc2V9PyR7dGhpcy5zZWFyY2hUb1N0cmluZyhzZWFyY2hQYXJhbXMpfWA7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLnVybFByZWZpeH0ke3VybEJhc2V9YDtcbiAgfVxuXG4gIC8qKiBFbmNvZGUgdGhlIHVybCBzZWFyY2hQYXJhbXMgKi9cbiAgc2VhcmNoVG9TdHJpbmcoc2VhcmNoUGFyYW1zKSB7XG4gICAgcmV0dXJuIHBhcmFtc1RvU3RyaW5nKHNlYXJjaFBhcmFtcyk7XG4gIH1cblxuICBnZXRIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIC8qKiBJbml0IG9wdGlvbnMgZm9yIGZldGNoIC0gcnVuIGF0IGZldGNoICovXG4gIGFzeW5jIGdldFJlcXVlc3RJbml0KGJvZHkpIHtcbiAgICAvLyBwbGFpbiBvYmplY3RzIGFuZCBhcnJheXMgYXJlIEpTT047IEZvcm1EYXRhLCBCbG9iLCBzdHJpbmdzLCBldGMgcGFzcyB0aHJvdWdoIHRvIGZldGNoXG4gICAgY29uc3QgYm9keUlzSlNPTiA9IGlzUG9qbyhib2R5KSB8fCBBcnJheS5pc0FycmF5KGJvZHkpO1xuICAgIGlmIChib2R5SXNKU09OKSB7XG4gICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgfVxuICAgIGNvbnN0IGluaXQgPSB7XG4gICAgICAuLi50aGlzLnJlcXVlc3RJbml0LFxuICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICAgIHNpZ25hbDogdGhpcy5zaWduYWwsXG4gICAgICBib2R5LFxuICAgIH07XG4gICAgaWYgKCFib2R5IHx8IGJvZHlJc0pTT04pIHtcbiAgICAgIGluaXQuaGVhZGVycyA9IHtcbiAgICAgICAgLy8gZGVmYXVsdCB0byBhcHBsaWNhdGlvbi9qc29uIGJ1dCBhbGxvdyB1c2VyIGV4cGxpY2l0IG92ZXJyaWRlc1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAuLi5pbml0LmhlYWRlcnMsXG4gICAgICB9O1xuICAgIH1cbiAgICBpbml0LmhlYWRlcnMgPSBhd2FpdCB0aGlzLmdldEhlYWRlcnMoaW5pdC5oZWFkZXJzKTtcbiAgICByZXR1cm4gaW5pdDtcbiAgfVxuXG4gIC8qKiBQZXJmb3JtIG5ldHdvcmsgcmVxdWVzdCBhbmQgcmVzb2x2ZSB3aXRoIEhUVFAgUmVzcG9uc2UgKi9cbiAgZmV0Y2hSZXNwb25zZShpbnB1dCwgaW5pdCkge1xuICAgIHJldHVybiBmZXRjaChpbnB1dCwgaW5pdClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIHRocm93IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAvLyBlbnN1cmUgQ09SUywgbmV0d29yayBkb3duLCBhbmQgcGFyc2UgZXJyb3JzIGFyZSBzdGlsbCBjYXVnaHQgYnkgTmV0d29ya0Vycm9yQm91bmRhcnlcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKSB7XG4gICAgICAgICAgZXJyb3Iuc3RhdHVzID0gNTAwO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH1cblxuICBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0KSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuXG4gICAgaWYgKHRoaXMuY29udGVudCkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmNvbnRlbnQgIT09ICdqc29uJyAmJlxuICAgICAgICAgIHRoaXMuc2NoZW1hICE9IG51bGwgJiZcbiAgICAgICAgICB0eXBlb2YgdGhpcy5zY2hlbWEgIT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgdHlwZW9mIHRoaXMuc2NoZW1hICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICAgIGVycm9yLnN0YXR1cyA9IDQwMDtcbiAgICAgICAgICBlcnJvci5tZXNzYWdlID0gYGNvbnRlbnQgJyR7dGhpcy5jb250ZW50fScgaXMgaW5jb21wYXRpYmxlIHdpdGggc2NoZW1hLiBCaW5hcnkvdGV4dCByZXNwb25zZXMgY2Fubm90IGJlIG5vcm1hbGl6ZWQuIFVzZSBzY2hlbWE6IHVuZGVmaW5lZC5gO1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jb250ZW50ID09PSAnc3RyZWFtJykgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXNwb25zZS5ib2R5KTtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQgPT09ICdqc29uJyA/XG4gICAgICAgICAganNvblJlc3BvbnNlKHJlc3BvbnNlKVxuICAgICAgICA6IHJlc3BvbnNlW3RoaXMuY29udGVudF0oKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKTtcbiAgICBpZiAoY29udGVudFR5cGU/LmluY2x1ZGVzKCdqc29uJykpIHJldHVybiBqc29uUmVzcG9uc2UocmVzcG9uc2UpO1xuXG4gICAgY29uc3QgaXNCaW5hcnkgPSBjb250ZW50VHlwZSAmJiAhdGV4dExpa2VSZS50ZXN0KGNvbnRlbnRUeXBlKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiB0aGlzLnNjaGVtYSA9PT0gJ3N0cmluZycgfHxcbiAgICAgIHR5cGVvZiB0aGlzLnNjaGVtYSA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgIHRoaXMuc2NoZW1hID09PSBudWxsIHx8XG4gICAgICB0aGlzLnByb2Nlc3MgIT09IFJlc3RFbmRwb2ludC5wcm90b3R5cGUucHJvY2Vzc1xuICAgIClcbiAgICAgIHJldHVybiBpc0JpbmFyeSA/IHJlc3BvbnNlLmJsb2IoKSA6IHJlc3BvbnNlLnRleHQoKTtcblxuICAgIGlmIChpc0JpbmFyeSkge1xuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgTmV0d29ya0Vycm9yKHJlc3BvbnNlKTtcbiAgICAgIGVycm9yLnN0YXR1cyA9IDQwMDtcbiAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCBiaW5hcnkgY29udGVudC10eXBlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1gO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCBiaW5hcnkgY29udGVudC10eXBlIFwiJHtjb250ZW50VHlwZX1cIiBmb3Igc2NoZW1hICR7dGhpcy5zY2hlbWF9LiBCaW5hcnkgcmVzcG9uc2VzIGNhbm5vdCBiZSBub3JtYWxpemVkLiBVc2Ugc2NoZW1hOiB1bmRlZmluZWQgb3Igc2V0IGNvbnRlbnQ6ICdibG9iJy5gO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKHRleHQgPT4ge1xuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgTmV0d29ya0Vycm9yKHJlc3BvbnNlKTtcbiAgICAgIGVycm9yLnN0YXR1cyA9IDQwNDtcbiAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCB0ZXh0IHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1gO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmICghKFxuICAgICAgICAgIGNvbnRlbnRUeXBlPy5pbmNsdWRlcygnaHRtbCcpIHx8IHRleHQuc3RhcnRzV2l0aCgnPCFkb2N0eXBlIGh0bWw+JylcbiAgICAgICAgKSkge1xuICAgICAgICAgIGlmICh0cnlQYXJzZSh0ZXh0KSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlcnJvci5tZXNzYWdlID0gYFwiY29udGVudC10eXBlXCIgaGVhZGVyIGRvZXMgbm90IGluY2x1ZGUgXCJqc29uXCIsIGJ1dCBKU09OIHJlc3BvbnNlIGZvdW5kLlxuU2VlIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM0NjI3IGZvciBpbmZvcm1hdGlvbiBvbiBKU09OIHJlc3BvbnNlc1xuXG5Vc2luZyBwYXJzZWQgSlNPTi5cbklmIHRleHQgY29udGVudCB3YXMgZXhwZWN0ZWQgc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFyc2VSZXNwb25zZWA7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCBodG1sIHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1cblRoaXMgbGlrZWx5IG1lYW5zIG5vIEFQSSBlbmRwb2ludCB3YXMgY29uZmlndXJlZCBmb3IgdGhpcyByZXF1ZXN0LCByZXN1bHRpbmcgaW4gYW4gSFRNTCBmYWxsYmFjay5cblxuUmVzcG9uc2UgKGZpcnN0IDMwMCBjaGFyYWN0ZXJzKTogJHt0ZXh0LnN1YnN0cmluZygwLCAzMDApfWA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvY2Vzcyh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGVycm9yUG9saWN5KGVycm9yKSB7XG4gICAgcmV0dXJuIGVycm9yLnN0YXR1cyA+PSA1MDAgPyAnc29mdCcgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgcGF0aFJlZ2V4KCkge1xuICAgIHJldHVybiBnZXRQYXRoUmVnZXgodGhpcy5wYXRoKTtcbiAgfVxuXG4gIHRlc3RLZXkoa2V5KSB7XG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5tZXRob2QgKyAnICcgKyB0aGlzLnVybFByZWZpeDtcbiAgICBpZiAoIWtleS5zdGFydHNXaXRoKHByZWZpeCkpIHJldHVybiBmYWxzZTtcbiAgICBsZXQgbGFzdFF1ZXN0aW9uID0ga2V5Lmxhc3RJbmRleE9mKCc/Jyk7XG4gICAgaWYgKGxhc3RRdWVzdGlvbiA9PT0gLTEpIGxhc3RRdWVzdGlvbiA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5wYXRoUmVnZXgudGVzdChrZXkuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgsIGxhc3RRdWVzdGlvbikpO1xuICB9XG5cbiAgZXh0ZW5kKG9wdGlvbnMpIHtcbiAgICAvLyBtYWtlIGEgY29uc3RydWN0b3IvcHJvdG90eXBlIGJhc2VkIG9mZiB0aGlzXG4gICAgLy8gZXh0ZW5kIGZyb20gaXQgYW5kIGluaXQgd2l0aCBvcHRpb25zIHNlbnRcbiAgICBjbGFzcyBFIGV4dGVuZHMgdGhpcy5jb25zdHJ1Y3RvciB7fVxuXG4gICAgT2JqZWN0LmFzc2lnbihFLnByb3RvdHlwZSwgdGhpcyk7XG5cbiAgICByZXR1cm4gbmV3IEUoXG4gICAgICAvLyAgZmV0Y2ggZ2V0IG92ZXJyaWRkZW4gYnkgZnVuY3Rpb24gcHJvdG90eXBlLCBzbyB3ZSBtdXN0IHNldCBpdCBleHBsaWNpdGx5IGV2ZXJ5IHRpbWVcbiAgICAgIHsgZmV0Y2g6IHRoaXMuZmV0Y2gsIC4uLm9wdGlvbnMgfSxcbiAgICApO1xuICB9XG5cbiAgcGFnaW5hdGVkKHJlbW92ZUN1cnNvcikge1xuICAgIGlmICh0eXBlb2YgcmVtb3ZlQ3Vyc29yID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgZmllbGROYW1lID0gcmVtb3ZlQ3Vyc29yO1xuICAgICAgcmVtb3ZlQ3Vyc29yID0gKHsgLi4ucGFyYW1zIH0pID0+IHtcbiAgICAgICAgZGVsZXRlIHBhcmFtc1tmaWVsZE5hbWVdO1xuICAgICAgICByZXR1cm4gW3BhcmFtc107XG4gICAgICB9O1xuICAgIH1cbiAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICBjb25zdCBjcmVhdGVQYWdpbmF0ZWRTY2hlbWEgPSBjb2xsZWN0aW9uID0+IHtcbiAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgIHJldHVybiBjcmVhdGVQYWdpbmF0aW9uU2NoZW1hKHJlbW92ZUN1cnNvciwgY29sbGVjdGlvbik7XG4gICAgfTtcbiAgICBjb25zdCBuZXdTY2hlbWEgPSBtYXBDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBjcmVhdGVQYWdpbmF0ZWRTY2hlbWEpO1xuXG4gICAgaWYgKCFmb3VuZCkgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIENvbGxlY3Rpb24nKTtcbiAgICBjb25zdCBzdXAgPSB0aGlzO1xuXG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgIHNjaGVtYTogbmV3U2NoZW1hLFxuICAgICAga2V5KC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHN1cC5rZXkuY2FsbCh0aGlzLCAuLi5yZW1vdmVDdXJzb3IoLi4uYXJncykpO1xuICAgICAgfSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcuZ2V0UGFnZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgZ2V0UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYWdpbmF0ZWQodGhpcy5wYWdpbmF0aW9uRmllbGQpO1xuICB9XG5cbiAgZ2V0IHB1c2goKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgc2NoZW1hOiBleHRyYWN0Q29sbGVjdGlvbih0aGlzLnNjaGVtYSwgcyA9PiBzLnB1c2gpLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5jcmVhdGUnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHVuc2hpZnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgc2NoZW1hOiBleHRyYWN0Q29sbGVjdGlvbih0aGlzLnNjaGVtYSwgcyA9PiBzLnVuc2hpZnQpLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5jcmVhdGUnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGFzc2lnbigpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMuYXNzaWduKSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcuY3JlYXRlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCByZW1vdmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5yZW1vdmUpLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5wYXJ0aWFsVXBkYXRlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBtb3ZlKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMubW92ZSksXG4gICAgICBzZWFyY2hQYXJhbXM6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcucGFydGlhbFVwZGF0ZScsXG4gICAgfTtcbiAgICBpZiAodGhpcy5tb3ZlUGF0aCkgb3B0aW9ucy5wYXRoID0gdGhpcy5tb3ZlUGF0aDtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQob3B0aW9ucyk7XG4gIH1cbn1cblxuY29uc3QgdHJ5UGFyc2UgPSBpbnB1dCA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoaW5wdXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBQVNBLFFBQVEsUUFBUSx1QkFBdUI7QUFFaEQsT0FBT0MsaUJBQWlCLE1BQU0sd0JBQXdCO0FBQ3RELE9BQU9DLGFBQWEsTUFBTSxvQkFBb0I7QUFDOUMsT0FBT0MsWUFBWSxNQUFNLG1CQUFtQjtBQUM1QyxTQUFTQyxzQkFBc0IsUUFBUSwyQkFBMkI7QUFDbEUsT0FBT0MsY0FBYyxNQUFNLHFCQUFxQjtBQUNoRCxTQUNFQyxVQUFVLEVBQ1ZDLFlBQVksRUFDWkMsWUFBWSxFQUNaQyxNQUFNLFFBQ0Qsa0JBQWtCO0FBRXpCLE1BQU1DLFVBQVUsR0FDZCx5RUFBeUU7QUFFM0UsU0FBU0MsWUFBWUEsQ0FBQ0MsUUFBUSxFQUFFO0VBQzlCLE9BQU9BLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDLENBQUMsQ0FBQ0MsS0FBSyxDQUFDQyxL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
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRGVub3JtYWxpemUsXG4gIEVuZHBvaW50RXh0cmFPcHRpb25zLFxuICBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLFxuICBTY2hlbWEsXG4gIEZldGNoRnVuY3Rpb24sXG4gIFJlc29sdmVUeXBlLFxufSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgdHlwZSB7IEV4dHJhY3RDb2xsZWN0aW9uIH0gZnJvbSAnLi9leHRyYWN0Q29sbGVjdGlvbi5qcyc7XG5pbXBvcnQge1xuICBPcHRpb25zVG9Cb2R5QXJndW1lbnQsXG4gIE9wdGlvbnNUb0Z1bmN0aW9uLFxufSBmcm9tICcuL09wdGlvbnNUb0Z1bmN0aW9uLmpzJztcbmltcG9ydCB7IFBhdGhBcmdzLCBTb2Z0UGF0aEFyZ3MgfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi9SZXN0RW5kcG9pbnRUeXBlSGVscC5qcyc7XG5cbmV4cG9ydCB0eXBlIENvbnRlbnRUeXBlID0gJ2pzb24nIHwgJ2Jsb2InIHwgJ3RleHQnIHwgJ2FycmF5QnVmZmVyJyB8ICdzdHJlYW0nO1xuXG5pbnRlcmZhY2UgQ29udGVudFR5cGVNYXAge1xuICBibG9iOiBCbG9iO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGFycmF5QnVmZmVyOiBBcnJheUJ1ZmZlcjtcbiAgc3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PjtcbiAganNvbjogYW55O1xufVxuXG50eXBlIENvbnRlbnRSZXR1cm5UeXBlPEMgZXh0ZW5kcyBDb250ZW50VHlwZT4gPSBDb250ZW50VHlwZU1hcFtDXTtcblxudHlwZSBDb250ZW50U2NoZW1hR3VhcmQ8Tz4gPVxuICBPIGV4dGVuZHMgeyBjb250ZW50OiAnYmxvYicgfCAndGV4dCcgfCAnYXJyYXlCdWZmZXInIHwgJ3N0cmVhbScgfSA/XG4gICAgeyBzY2hlbWE/OiB1bmRlZmluZWQgfVxuICA6IHt9O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZUJhc2U8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICBtZXRob2Q/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPiBleHRlbmRzIEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2U8RiwgUywgTT4ge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2JvZHkgKi9cbiAgcmVhZG9ubHkgYm9keT86ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBhbnk7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoUGFyYW1zICovXG4gIHJlYWRvbmx5IHNlYXJjaFBhcmFtcz86ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gIDogLy8gdW5rbm93biBpcyBpZGVudGl0eSB3aXRoICcmJyB0eXBlIG9wZXJhdG9yXG4gICAgdW5rbm93bjtcblxuICAvKiogUGF0dGVybiB0byBjb25zdHJ1Y3QgdXJsIGJhc2VkIG9uIFVybCBQYXJhbWV0ZXJzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXRoXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBPWydwYXRoJ107XG4gIC8qKiBQcmVwZW5kZWQgdG8gYWxsIHVybHNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFByZWZpeFxuICAgKi9cbiAgcmVhZG9ubHkgdXJsUHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlcXVlc3RJbml0OiBSZXF1ZXN0SW5pdDtcbiAgLyoqIEhUVFAgcmVxdWVzdCBtZXRob2RcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21ldGhvZFxuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kOiAoTyAmIHsgbWV0aG9kOiBzdHJpbmcgfSlbJ21ldGhvZCddO1xuICByZWFkb25seSBzaWduYWw6IEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhZ2luYXRpb25GaWVsZCAqL1xuICByZWFkb25seSBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjY29udGVudCAqL1xuICByZWFkb25seSBjb250ZW50PzogQ29udGVudFR5cGU7XG5cbiAgLyogZmV0Y2ggbGlmZWN5Y2xlcyAqL1xuICAvKiBiZWZvcmUtZmV0Y2ggKi9cbiAgLyoqIEJ1aWxkcyB0aGUgVVJMIHRvIGZldGNoXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCN1cmxcbiAgICovXG4gIHVybCguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogc3RyaW5nO1xuICAvKiogRW5jb2RlIHRoZSBzZWFyY2hQYXJhbXMgY29tcG9uZW50IG9mIHRoZSB1cmxcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3NlYXJjaFRvU3RyaW5nXG4gICAqL1xuICBzZWFyY2hUb1N0cmluZyhzZWFyY2hQYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBzdHJpbmc7XG4gIC8qKiBQcmVwYXJlcyBSZXF1ZXN0SW5pdCB1c2VkIGluIGZldGNoLiBUaGlzIGlzIHNlbnQgdG8gZmV0Y2hSZXNwb25zZSgpXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRSZXF1ZXN0SW5pdFxuICAgKi9cbiAgZ2V0UmVxdWVzdEluaXQoXG4gICAgdGhpczogYW55LFxuICAgIGJvZHk/OiBSZXF1ZXN0SW5pdFsnYm9keSddIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICk6IFByb21pc2U8UmVxdWVzdEluaXQ+IHwgUmVxdWVzdEluaXQ7XG4gIC8qKiBDYWxsZWQgYnkgZ2V0UmVxdWVzdEluaXQgdG8gZGV0ZXJtaW5lIEhUVFAgSGVhZGVyc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjZ2V0SGVhZGVyc1xuICAgKi9cbiAgZ2V0SGVhZGVycyhoZWFkZXJzOiBIZWFkZXJzSW5pdCk6IFByb21pc2U8SGVhZGVyc0luaXQ+IHwgSGVhZGVyc0luaXQ7XG4gIC8qIGFmdGVyLWZldGNoICovXG4gIC8qKiBQZXJmb3JtcyB0aGUgZmV0Y2ggY2FsbFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjZmV0Y2hSZXNwb25zZVxuICAgKi9cbiAgZmV0Y2hSZXNwb25zZShpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxSZXNwb25zZT47XG4gIC8qKiBUYWtlcyB0aGUgUmVzcG9uc2UgYW5kIHBhcnNlcyB2aWEgLnRleHQoKSBvciAuanNvbigpXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXJzZVJlc3BvbnNlXG4gICAqL1xuICBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlOiBSZXNwb25zZSk6IFByb21pc2U8YW55PjtcbiAgLyoqIFBlcmZvcm0gYW55IHRyYW5zZm9ybXMgd2l0aCB0aGUgcGFyc2VkIHJlc3VsdC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Byb2Nlc3NcbiAgICovXG4gIHByb2Nlc3ModmFsdWU6IGFueSwgLi4uYXJnczogUGFyYW1ldGVyczxGPik6IFJlc29sdmVUeXBlPEY+O1xuXG4gIC8qIHV0aWxpdGllcyAqL1xuICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBwcm92aWRlZCAoZmV0Y2gpIGtleSBtYXRjaGVzIHRoaXMgZW5kcG9pbnQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCN0ZXN0S2V5XG4gICAqL1xuICB0ZXN0S2V5KGtleTogc3RyaW5nKTogYm9vbGVhbjtcblxuICAvKiBleHRlbmRlcnMgKi9cbiAgLy8gVE9ETzogZmlndXJlIG91dCBiZXR0ZXIgd2F5IHRoYW4gd3JhcHBpbmcgd2hvbGUgb3B0aW9ucyBpbiBSZWFkb25seTw+ICsgbWFraW5nIE8gZXh0ZW5kIGZyb20ge31cbiAgLy8gICAgICAgdGhpcyBpcyBqdXN0IGEgaGFjayB0byBoYW5kbGUgd2hlbiBubyBtZW1iZXJzIG9mIFBhcnRpYWxSZXN0R2VuZXJpY3MgYXJlIHByZXNlbnRcbiAgLy8gICAgICAgTm90ZTogVXNpbmcgb3ZlcmxvYWRpbmcgKGxpa2UgcGFnaW5hdGVkIGRpZCkgc3RydWdnbGVzIGJlY2F1c2UgdHlwZXNjcmlwdCBkb2VzIG5vdCBoYXZlIGEgY2xlYXIgd2F5IG9mIGRpc3Rpbmd1aXNoaW5nIG9uZVxuICAvLyAgICAgICBzaG91bGQgYmUgdXNlZCBmcm9tIHRoZSBvdGhlciAoZHVlIHRvIHNhbWUgcHJvYmxlbSB3aXRoIGV2ZXJ5IG1lbWJlciBiZWluZyBwYXJ0aWFsKVxuICAvKiogQ3JlYXRlcyBhIGNoaWxkIGVuZHBvaW50IHRoYXQgaW5oZXJpdHMgZnJvbSB0aGlzIHdoaWxlIG92ZXJyaWRpbmcgcHJvdmlkZWQgYG9wdGlvbnNgLlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjZXh0ZW5kXG4gICAqL1xuICBleHRlbmQ8XG4gICAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UsXG4gICAgRXh0ZW5kT3B0aW9ucyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgfCB7fSxcbiAgPihcbiAgICB0aGlzOiBFLFxuICAgIG9wdGlvbnM6IFJlYWRvbmx5PFxuICAgICAgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxFeHRlbmRPcHRpb25zLCBFLCBGPiAmIEV4dGVuZE9wdGlvbnNcbiAgICA+ICZcbiAgICAgIENvbnRlbnRTY2hlbWFHdWFyZDxFeHRlbmRPcHRpb25zPixcbiAgKTogUmVzdEV4dGVuZGVkRW5kcG9pbnQ8RXh0ZW5kT3B0aW9ucywgRT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEluc3RhbmNlPFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiA9IEZldGNoRnVuY3Rpb24sXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBhbnksXG4gIE0gZXh0ZW5kcyBib29sZWFuIHwgdW5kZWZpbmVkID0gYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgbWV0aG9kPzogc3RyaW5nO1xuICAgIHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgfSA9IHsgcGF0aDogc3RyaW5nIH0sXG4+IGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGLCBTLCBNLCBPPiB7XG4gIC8qKiBDcmVhdGVzIGFuIEVuZHBvaW50IHRvIGFwcGVuZCB0aGUgbmV4dCBwYWdlIGV4dGVuZGluZyBhIGxpc3QgZm9yIHBhZ2luYXRpb25cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhZ2luYXRlZFxuICAgKi9cbiAgcGFnaW5hdGVkPFxuICAgIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlPEZldGNoRnVuY3Rpb24sIGFueSwgdW5kZWZpbmVkPixcbiAgICBBIGV4dGVuZHMgYW55W10sXG4gID4oXG4gICAgdGhpczogRSxcbiAgICByZW1vdmVDdXJzb3I6ICguLi5hcmdzOiBBKSA9PiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0sXG4gICk6IFBhZ2luYXRpb25FbmRwb2ludDxFLCBBPjtcbiAgcGFnaW5hdGVkPFxuICAgIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlPEZldGNoRnVuY3Rpb24sIGFueSwgdW5kZWZpbmVkPixcbiAgICBDIGV4dGVuZHMgc3RyaW5nLFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgY3Vyc29yRmllbGQ6IEMsXG4gICk6IFBhZ2luYXRpb25GaWVsZEVuZHBvaW50PEUsIEM+O1xuICAvKiogQ29uY2F0aW5hdGUgdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzIChHRVQpXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRQYWdlXG4gICAqL1xuICBnZXRQYWdlOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddIGV4dGVuZHMgc3RyaW5nID9cbiAgICAgIFBhZ2luYXRpb25GaWVsZEVuZHBvaW50PFxuICAgICAgICBGICYgeyBzY2hlbWE6IFM7IHNpZGVFZmZlY3Q6IE0gfSAmIE8sXG4gICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICA+XG4gICAgOiB1bmRlZmluZWRcbiAgOiB1bmRlZmluZWQ7XG4gIC8qKiBDcmVhdGUgYSBuZXcgaXRlbSAoUE9TVCkgYW5kIGBwdXNoYCB0byB0aGUgZW5kXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwdXNoXG4gICAqL1xuICBwdXNoOiBBZGRFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10sXG4gICAgT21pdDxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10+XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TywgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3B1c2gnXT5bXVxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbiAgLyoqIENyZWF0ZSBhIG5ldyBpdGVtIChQT1NUKSBhbmQgYHVuc2hpZnRgIHRvIHRoZSBiZWdpbm5pbmdcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Vuc2hpZnRcbiAgICovXG4gIHVuc2hpZnQ6IEFkZEVuZHBvaW50PFxuICAgIEYsXG4gICAgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3Vuc2hpZnQnXSxcbiAgICBPbWl0PE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TywgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3Vuc2hpZnQnXT5cbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPLCBFeHRyYWN0Q29sbGVjdGlvbjxTPlsndW5zaGlmdCddPltdXG4gICAgICAgIHwgRm9ybURhdGE7XG4gICAgfVxuICA+O1xuICAvKiogQ3JlYXRlIG5ldyBpdGVtKHMpIChQT1NUKSBhbmQgYE9iamVjdC5hc3NpZ25gIG1lcmdlXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNhc3NpZ25cbiAgICovXG4gIGFzc2lnbjogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPixcbiAgICBPbWl0PE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6XG4gICAgICAgIHwgUmVjb3JkPFxuICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TywgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ2Fzc2lnbiddPlxuICAgICAgICAgID5cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBSZW1vdmUgaXRlbShzKSAoUEFUQ0gpIGZyb20gY29sbGVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcmVtb3ZlXG4gICAqL1xuICByZW1vdmU6IFJlbW92ZUVuZHBvaW50PFxuICAgIEYsXG4gICAgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3JlbW92ZSddLFxuICAgIE9taXQ8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBQYXJ0aWFsPE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydyZW1vdmUnXT4+XG4gICAgICAgIHwgUGFydGlhbDxcbiAgICAgICAgICAgIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydyZW1vdmUnXT5cbiAgICAgICAgICA+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBNb3ZlIGl0ZW0gYmV0d2VlbiBjb2xsZWN0aW9ucyAoUEFUQ0gpIC0gcmVtb3ZlcyBmcm9tIG9sZCwgYWRkcyB0byBuZXdcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21vdmVcbiAgICovXG4gIG1vdmU6IE1vdmVFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+Wydtb3ZlJ10sXG4gICAge1xuICAgICAgcGF0aDogJ21vdmVQYXRoJyBleHRlbmRzIGtleW9mIE8gPyBPWydtb3ZlUGF0aCddICYgc3RyaW5nIDogT1sncGF0aCddO1xuICAgICAgYm9keTpcbiAgICAgICAgfCBQYXJ0aWFsPE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+Wydtb3ZlJ10+PlxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyB7IGJvZHk/OiBhbnk7IHBhdGg/OiBzdHJpbmc7IHNjaGVtYT86IFNjaGVtYTsgbWV0aG9kPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9IFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIE9wdGlvbnNUb0Z1bmN0aW9uPE8sIEUsIEY+LFxuICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NjaGVtYSddLCBTY2hlbWEgfCB1bmRlZmluZWQ+XG4gIDogRVsnc2NoZW1hJ11cbj4gJlxuICBQYXJ0aWFsPFxuICAgIE9taXQ8XG4gICAgICBFLFxuICAgICAgS2V5b2ZSZXN0RW5kcG9pbnQgfCBrZXlvZiBQYXJ0aWFsUmVzdEdlbmVyaWNzIHwga2V5b2YgUmVzdEVuZHBvaW50T3B0aW9uc1xuICAgID5cbiAgPjtcblxudHlwZSBPcHRpb25zVG9SZXN0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSAmIHsgYm9keT86IGFueTsgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9XG4gICdwYXRoJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RUeXBlPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPIDogRSxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXVxuICAgICAgPixcbiAgICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogRVsnc2NoZW1hJ10sXG4gICAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICAgIDogRVsnc2lkZUVmZmVjdCddLFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogJ2NvbnRlbnQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIENvbnRlbnRSZXR1cm5UeXBlPE9bJ2NvbnRlbnQnXSAmIENvbnRlbnRUeXBlPlxuICAgICAgOiBSZXNvbHZlVHlwZTxGPixcbiAgICAgIHtcbiAgICAgICAgcGF0aDogRXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD47XG4gICAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBFWydib2R5J107XG4gICAgICAgIHNlYXJjaFBhcmFtczogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgICAgICAgOiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFWydwYWdpbmF0aW9uRmllbGQnXTtcbiAgICAgIH1cbiAgICA+XG4gIDogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgUmVzdFR5cGU8XG4gICAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgTyxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXVxuICAgICAgPixcbiAgICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogRVsnc2NoZW1hJ10sXG4gICAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICAgIDogRVsnc2lkZUVmZmVjdCddLFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogJ2NvbnRlbnQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIENvbnRlbnRSZXR1cm5UeXBlPE9bJ2NvbnRlbnQnXSAmIENvbnRlbnRUeXBlPlxuICAgICAgOiBSZXNvbHZlVHlwZTxGPixcbiAgICAgIHtcbiAgICAgICAgcGF0aDogRVsncGF0aCddO1xuICAgICAgICBib2R5OiBPWydib2R5J107XG4gICAgICAgIHNlYXJjaFBhcmFtczogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgICAgICAgOiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFeHRyYWN0PEVbJ3BhZ2luYXRpb25GaWVsZCddLCBzdHJpbmc+O1xuICAgICAgfVxuICAgID5cbiAgOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RUeXBlPFxuICAgICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgYm9vbGVhbiB8IHVuZGVmaW5lZD5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPlxuICAgICAgOiAnY29udGVudCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgQ29udGVudFJldHVyblR5cGU8T1snY29udGVudCddICYgQ29udGVudFR5cGU+XG4gICAgICA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFWydwYXRoJ107XG4gICAgICAgIGJvZHk6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBPWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFeHRyYWN0PEVbJ3BhZ2luYXRpb25GaWVsZCddLCBzdHJpbmc+O1xuICAgICAgfVxuICAgID5cbiAgOiBSZXN0SW5zdGFuY2U8XG4gICAgICBGLFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgYm9vbGVhbiB8IHVuZGVmaW5lZD5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdwYXRoJyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPlxuICAgICAgICA6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID47XG5cbmV4cG9ydCB0eXBlIFJlc3RFeHRlbmRlZEVuZHBvaW50PFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UgJiB7IGdldFBhZ2U/OiB1bmtub3duIH0sXG4+ID0gT3B0aW9uc1RvUmVzdEVuZHBvaW50PFxuICBPLFxuICBFICZcbiAgICAoRSBleHRlbmRzIHsgZ2V0UGFnZTogeyBwYWdpbmF0aW9uRmllbGQ6IHN0cmluZyB9IH0gP1xuICAgICAgeyBwYWdpbmF0aW9uRmllbGQ6IEVbJ2dldFBhZ2UnXVsncGFnaW5hdGlvbkZpZWxkJ10gfVxuICAgIDogdW5rbm93biksXG4gIFJlc3RJbnN0YW5jZTxcbiAgICAoLi4uYXJnczogUGFyYW1ldGVyczxFPikgPT4gT1sncHJvY2VzcyddIGV4dGVuZHMge30gP1xuICAgICAgUHJvbWlzZTxSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT4+XG4gICAgOiAnY29udGVudCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgIFByb21pc2U8Q29udGVudFJldHVyblR5cGU8T1snY29udGVudCddICYgQ29udGVudFR5cGU+PlxuICAgIDogUmV0dXJuVHlwZTxFPixcbiAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgYm9vbGVhbiB8IHVuZGVmaW5lZD5cbiAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICA6IEVbJ3NpZGVFZmZlY3QnXVxuICA+XG4+ICZcbiAgT21pdDxPLCBLZXlvZlJlc3RFbmRwb2ludD4gJlxuICBPbWl0PEUsIEtleW9mUmVzdEVuZHBvaW50IHwga2V5b2YgTz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbFJlc3RHZW5lcmljcyB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGF0aCAqL1xuICByZWFkb25seSBwYXRoPzogc3RyaW5nO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3NjaGVtYSAqL1xuICByZWFkb25seSBzY2hlbWE/OiBTY2hlbWEgfCB1bmRlZmluZWQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjbWV0aG9kICovXG4gIHJlYWRvbmx5IG1ldGhvZD86IHN0cmluZztcbiAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNib2R5ICovXG4gIGJvZHk/OiBhbnk7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoUGFyYW1zICovXG4gIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYWdpbmF0aW9uZmllbGQgKi9cbiAgcmVhZG9ubHkgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Byb2Nlc3MgKi9cbiAgcHJvY2Vzcz8odmFsdWU6IGFueSwgLi4uYXJnczogYW55KTogYW55O1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2NvbnRlbnQgKi9cbiAgcmVhZG9ubHkgY29udGVudD86IENvbnRlbnRUeXBlO1xufVxuLyoqIEdlbmVyaWMgdHlwZXMgd2hlbiBjb25zdHJ1Y3RpbmcgYSBSZXN0RW5kcG9pbnRcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjaW5oZXJpdGFuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXN0R2VuZXJpY3MgZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzIHtcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRW5kcG9pbnQ8XG4gIEUgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uICYgUmVzdEdlbmVyaWNzICYgeyBzaWRlRWZmZWN0PzogYm9vbGVhbiB8IHVuZGVmaW5lZCB9LFxuICBBIGV4dGVuZHMgYW55W10sXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgUGFyYW1GZXRjaE5vQm9keTxBWzBdLCBSZXNvbHZlVHlwZTxFPj4sXG4gIEVbJ3NjaGVtYSddLFxuICBFWydzaWRlRWZmZWN0J10sXG4gIFBpY2s8RSwgJ3BhdGgnIHwgJ3NlYXJjaFBhcmFtcycgfCAnYm9keSc+ICYge1xuICAgIHNlYXJjaFBhcmFtczogT21pdDxBWzBdLCBrZXlvZiBQYXRoQXJnczxFWydwYXRoJ10+PjtcbiAgfVxuPjtcbi8qKiBNZXJnZSBwYWdpbmF0aW9uIGZpZWxkIEMgaW50byBib2R5LCBtYWtpbmcgaXQgcmVxdWlyZWQgKi9cbnR5cGUgUGFnaW5hdGlvbkludG9Cb2R5PEJvZHksIEMgZXh0ZW5kcyBzdHJpbmc+ID0gQm9keSAmIHtcbiAgW0sgaW4gQ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XG59O1xuXG4vKiogUGFnaW5hdGVkIHNlYXJjaFBhcmFtcyB0eXBlICovXG50eXBlIFBhZ2luYXRlZFNlYXJjaFBhcmFtczxcbiAgRSBleHRlbmRzIHsgc2VhcmNoUGFyYW1zPzogYW55OyBwYXRoPzogc3RyaW5nIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0ge1xuICBbSyBpbiBDXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcbn0gJiBFWydzZWFyY2hQYXJhbXMnXSAmXG4gIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PjtcblxuLyoqIHNlYXJjaFBhcmFtcyB2ZXJzaW9uOiBwYWdpbmF0aW9uIGluIHNlYXJjaFBhcmFtcywgb3B0aW9uYWwgYm9keSBzdXBwb3J0ICovXG50eXBlIFBhZ2luYXRpb25GaWVsZEluU2VhcmNoUGFyYW1zPFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQyBleHRlbmRzIHN0cmluZyxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICAvLyBVbmlvbiBhbGxvd3MgY2FsbGluZyB3aXRoIGp1c3Qgc2VhcmNoUGFyYW1zIG9yIHdpdGggc2VhcmNoUGFyYW1zICsgYm9keVxuICB8IFBhcmFtRmV0Y2hOb0JvZHk8UGFnaW5hdGVkU2VhcmNoUGFyYW1zPEUsIEM+LCBSZXNvbHZlVHlwZTxFPj5cbiAgfCBQYXJhbUZldGNoV2l0aEJvZHk8XG4gICAgICBQYWdpbmF0ZWRTZWFyY2hQYXJhbXM8RSwgQz4sXG4gICAgICBOb25OdWxsYWJsZTxFWydib2R5J10+LFxuICAgICAgUmVzb2x2ZVR5cGU8RT5cbiAgICA+LFxuICBFWydzY2hlbWEnXSxcbiAgRVsnc2lkZUVmZmVjdCddLFxuICBQaWNrPEUsICdwYXRoJyB8ICdzZWFyY2hQYXJhbXMnIHwgJ2JvZHknPiAmIHtcbiAgICBzZWFyY2hQYXJhbXM6IHtcbiAgICAgIFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xuICAgIH0gJiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgfVxuPiAmIHsgcGFnaW5hdGlvbkZpZWxkOiBDIH07XG5cbi8qKiBib2R5IHZlcnNpb246IHBhZ2luYXRpb24gZmllbGQgaXMgaW4gYm9keSAoYm9keSByZXF1aXJlZCkgKi9cbnR5cGUgUGFnaW5hdGlvbkZpZWxkSW5Cb2R5PFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQyBleHRlbmRzIHN0cmluZyxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICBQYXJhbUZldGNoV2l0aEJvZHk8XG4gICAgRVsnc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgUGFnaW5hdGlvbkludG9Cb2R5PEVbJ2JvZHknXSwgQz4sXG4gICAgUmVzb2x2ZVR5cGU8RT5cbiAgPixcbiAgRVsnc2NoZW1hJ10sXG4gIEVbJ3NpZGVFZmZlY3QnXSxcbiAgUGljazxFLCAncGF0aCcgfCAnc2VhcmNoUGFyYW1zJz4gJiB7XG4gICAgYm9keTogUGFnaW5hdGlvbkludG9Cb2R5PEVbJ2JvZHknXSwgQz47XG4gIH1cbj4gJiB7IHBhZ2luYXRpb25GaWVsZDogQyB9O1xuXG4vKiogUmV0cmlldmVzIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cyBieSBwYWdpbmF0aW9uIGZpZWxkICovXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID1cbiAgLy8gSWYgYm9keSBjYW4gYmUgdW5kZWZpbmVkIG9yIHBhZ2luYXRpb24gZmllbGQgbm90IGluIGJvZHksIHVzZSBzZWFyY2hQYXJhbXNcbiAgdW5kZWZpbmVkIGV4dGVuZHMgRVsnYm9keSddID8gUGFnaW5hdGlvbkZpZWxkSW5TZWFyY2hQYXJhbXM8RSwgQz5cbiAgOiAvLyBJZiBwYWdpbmF0aW9uIGZpZWxkIEMgaXMgYSBrZXkgb2YgYm9keSwgbWVyZ2UgaW50byBib2R5XG4gIEMgZXh0ZW5kcyBrZXlvZiBFWydib2R5J10gPyBQYWdpbmF0aW9uRmllbGRJbkJvZHk8RSwgQz5cbiAgOiAvLyBPdGhlcndpc2UgdXNlIHNlYXJjaFBhcmFtc1xuICAgIFBhZ2luYXRpb25GaWVsZEluU2VhcmNoUGFyYW1zPEUsIEM+O1xuXG5leHBvcnQgdHlwZSBBZGRFbmRwb2ludDxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxcbiAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgOiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgT1snYm9keSddLFxuICAgIFJlc29sdmVUeXBlPEY+XG4gID4sXG4gIFMsXG4gIHRydWUsXG4gIE9taXQ8TywgJ21ldGhvZCc+ICYgeyBtZXRob2Q6ICdQT1NUJyB9XG4+O1xuZXhwb3J0IHR5cGUgUmVtb3ZlRW5kcG9pbnQ8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keTogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBib2R5OiBhbnkgfSxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICBSZXN0RmV0Y2g8XG4gICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgIDogUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgIE9bJ2JvZHknXSxcbiAgICBSZXNvbHZlVHlwZTxGPlxuICA+LFxuICBTLFxuICB0cnVlLFxuICBPbWl0PE8sICdtZXRob2QnPiAmIHsgbWV0aG9kOiAnUEFUQ0gnIH1cbj47XG5leHBvcnQgdHlwZSBNb3ZlRW5kcG9pbnQ8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keTogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj4sIE9bJ2JvZHknXSwgUmVzb2x2ZVR5cGU8Rj4+LFxuICBTLFxuICB0cnVlLFxuICBPbWl0PE8sICdtZXRob2QnIHwgJ3NlYXJjaFBhcmFtcyc+ICYgeyBtZXRob2Q6ICdQQVRDSCcgfVxuPjtcblxudHlwZSBPcHRpb25zQm9keURlZmF1bHQ8TyBleHRlbmRzIFJlc3RHZW5lcmljcz4gPVxuICAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gT1xuICA6IE9bJ21ldGhvZCddIGV4dGVuZHMgJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnID8gTyAmIHsgYm9keTogYW55IH1cbiAgOiBPICYgeyBib2R5OiB1bmRlZmluZWQgfTtcblxuLyoqIFdoZW4gYG1ldGhvZGAgaXMgb21pdHRlZCBmcm9tIGBPYCwgaW5mZXIgaXQgKG11c3Qgc3RheSBhbGlnbmVkIHdpdGggYE9wdGlvbnNUb0JvZHlBcmd1bWVudGApLiAqL1xudHlwZSBJbmZlclJlc3RNZXRob2RXaGVuT21pdHRlZDxPIGV4dGVuZHMgUmVzdEdlbmVyaWNzPiA9XG4gIE8gZXh0ZW5kcyB7IHNpZGVFZmZlY3Q6IHRydWUgfSA/ICdQT1NUJ1xuICA6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFtPWydib2R5J11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgJ0dFVCdcbiAgICA6ICdQT1NUJ1xuICA6ICdHRVQnO1xuXG50eXBlIE1ldGhvZEFyZ0ZvckJvZHlJbmZlcmVuY2U8TyBleHRlbmRzIFJlc3RHZW5lcmljcz4gPVxuICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEluZmVyUmVzdE1ldGhvZFdoZW5PbWl0dGVkPE8+O1xuXG50eXBlIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8gZXh0ZW5kcyB7IGJvZHk/OiBhbnkgfSwgRW50aXR5U2NoZW1hID0gYW55PiA9XG4gICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBQYXJ0aWFsPERlbm9ybWFsaXplPEVudGl0eVNjaGVtYT4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbj4gZXh0ZW5kcyBFbmRwb2ludEV4dHJhT3B0aW9uczxGPiB7XG4gIC8qKiBQcmVwZW5kZWQgdG8gYWxsIHVybHNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFByZWZpeFxuICAgKi9cbiAgdXJsUHJlZml4Pzogc3RyaW5nO1xuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0O1xuICAvKiogQ2FsbGVkIGJ5IGdldFJlcXVlc3RJbml0IHRvIGRldGVybWluZSBIVFRQIEhlYWRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldEhlYWRlcnNcbiAgICovXG4gIGdldEhlYWRlcnM/KGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdD8oYm9keTogYW55KTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlPyhpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxhbnk+O1xuICAvKiogVGFrZXMgdGhlIFJlc3BvbnNlIGFuZCBwYXJzZXMgdmlhIC50ZXh0KCkgb3IgLmpzb24oKVxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFyc2VSZXNwb25zZVxuICAgKi9cbiAgcGFyc2VSZXNwb25zZT8ocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2NvbnRlbnQgKi9cbiAgY29udGVudD86IENvbnRlbnRUeXBlO1xuXG4gIHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBuYW1lPzogc3RyaW5nO1xuICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgZmV0Y2g/OiBGO1xuICBrZXk/KC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIHVybD8oLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxGLCBTPjtcbn1cblxuLy8gV2hlbiBzdWJjbGFzc2luZyBSZXN0RW5kcG9pbnQgd2l0aCBgTyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueWAsIE8gZGVmYXVsdHNcbi8vIHRvIGBhbnlgLiBUaGUgYHVua25vd24gZXh0ZW5kcyBPID8gYW55YCBndWFyZCBjYXRjaGVzIE89YW55IGJlZm9yZSBpdCByZWFjaGVzXG4vLyBQYXRoQXJncyAoc2VlICMzNzgyKS4gU29mdFBhdGhBcmdzIGNvbGxhcHNlcyBQYXRoQXJnczxzdHJpbmc+IHRvIGB1bmtub3duYFxuLy8gd2hlbiBhIGNvbmNyZXRlIGJvZHkgaXMgcHJlc2VudCwgcHJldmVudGluZyB1bmlvbiBvdmVybG9hZHMgdGhhdCBicmVha1xuLy8gZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIGNhbGxiYWNrcy4gTWV0aG9kIGluZmVyZW5jZSB0cmVhdHMgZXhwbGljaXQgYm9keSBhcyBQT1NULlxuZXhwb3J0IHR5cGUgUmVzdEVuZHBvaW50Q29uc3RydWN0b3JPcHRpb25zPE8gZXh0ZW5kcyBSZXN0R2VuZXJpY3MgPSBhbnk+ID1cbiAgUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgICBSZXN0RmV0Y2g8XG4gICAgICB1bmtub3duIGV4dGVuZHMgTyA/IGFueVxuICAgICAgOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgICAgIFNvZnRQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBTb2Z0UGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgOiBTb2Z0UGF0aEFyZ3M8T1sncGF0aCddPixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxPLCBNZXRob2RBcmdGb3JCb2R5SW5mZXJlbmNlPE8+PixcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+XG4gICAgICA6ICdjb250ZW50JyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBDb250ZW50UmV0dXJuVHlwZTxPWydjb250ZW50J10gJiBDb250ZW50VHlwZT5cbiAgICAgIDogYW55IC8qRGVub3JtYWxpemU8T1snc2NoZW1hJ10+Ki9cbiAgICA+LFxuICAgIE9bJ3NjaGVtYSddXG4gID47XG5cbi8qKiBTaW1wbGlmaWVzIGVuZHBvaW50IGRlZmluaXRpb25zIHRoYXQgZm9sbG93IFJFU1QgcGF0dGVybnNcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXN0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyBSZXN0R2VuZXJpY3MgPSBhbnksXG4+IGV4dGVuZHMgUmVzdEluc3RhbmNlPFxuICBSZXN0RmV0Y2g8XG4gICAgdW5rbm93biBleHRlbmRzIE8gPyBhbnlcbiAgICA6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgICBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgIDogUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8TywgTWV0aG9kQXJnRm9yQm9keUluZmVyZW5jZTxPPj4sXG4gICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICA6ICdjb250ZW50JyBleHRlbmRzIGtleW9mIE8gPyBDb250ZW50UmV0dXJuVHlwZTxPWydjb250ZW50J10gJiBDb250ZW50VHlwZT5cbiAgICA6IGFueSAvKkRlbm9ybWFsaXplPE9bJ3NjaGVtYSddPiovXG4gID4sXG4gICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogdW5kZWZpbmVkLFxuICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID8gRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gIDogTWV0aG9kVG9TaWRlPE1ldGhvZEFyZ0ZvckJvZHlJbmZlcmVuY2U8Tz4+LFxuICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPXG4gIDogTyAmIHtcbiAgICAgIG1ldGhvZDogSW5mZXJSZXN0TWV0aG9kV2hlbk9taXR0ZWQ8Tz47XG4gICAgfVxuPiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RFbmRwb2ludENvbnN0cnVjdG9yIHtcbiAgLyoqIFNpbXBsaWZpZXMgZW5kcG9pbnQgZGVmaW5pdGlvbnMgdGhhdCBmb2xsb3cgUkVTVCBwYXR0ZXJuc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnRcbiAgICovXG4gIG5ldyA8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4oe1xuICAgIG1ldGhvZCxcbiAgICBzaWRlRWZmZWN0LFxuICAgIG5hbWUsXG4gICAgLi4ub3B0aW9uc1xuICB9OiBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8Tz4gJlxuICAgIFJlYWRvbmx5PE8+ICZcbiAgICBDb250ZW50U2NoZW1hR3VhcmQ8Tz4pOiBSZXN0RW5kcG9pbnQ8Tz47XG4gIHJlYWRvbmx5IHByb3RvdHlwZTogUmVzdEluc3RhbmNlQmFzZTtcbn1cblxuZXhwb3J0IHR5cGUgTWV0aG9kVG9TaWRlPE0+ID1cbiAgTSBleHRlbmRzIHN0cmluZyA/XG4gICAgTSBleHRlbmRzICdHRVQnID9cbiAgICAgIHVuZGVmaW5lZFxuICAgIDogdHJ1ZVxuICA6IHVuZGVmaW5lZDtcblxuLyoqIFJlc3RFbmRwb2ludCB0eXBlcyBzaW1wbGlmaWVkICovXG5leHBvcnQgdHlwZSBSZXN0VHlwZTxcbiAgVXJsUGFyYW1zID0gYW55LFxuICBCb2R5ID0gYW55LFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIFIgPSBhbnksXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBwYWdpbmF0aW9uRmllbGQ6IHN0cmluZyB9LFxuPiA9IElmVHlwZVNjcmlwdExvb3NlTnVsbDxcbiAgUmVzdEluc3RhbmNlPFJlc3RGZXRjaDxVcmxQYXJhbXMsIEJvZHksIFI+LCBTLCBNLCBPPixcbiAgQm9keSBleHRlbmRzIHt9ID8gUmVzdFR5cGVXaXRoQm9keTxVcmxQYXJhbXMsIFMsIE0sIEJvZHksIFIsIE8+XG4gIDogUmVzdFR5cGVOb0JvZHk8VXJsUGFyYW1zLCBTLCBNLCBSLCBPPlxuPjtcblxuZXhwb3J0IHR5cGUgUmVzdFR5cGVXaXRoQm9keTxcbiAgVXJsUGFyYW1zID0gYW55LFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIEJvZHkgPSBhbnksXG4gIFIgPSBhbnkgLypEZW5vcm1hbGl6ZTxTPiovLFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBib2R5OiBhbnkgfSxcbj4gPSBSZXN0SW5zdGFuY2U8UGFyYW1GZXRjaFdpdGhCb2R5PFVybFBhcmFtcywgQm9keSwgUj4sIFMsIE0sIE8+O1xuXG5leHBvcnQgdHlwZSBSZXN0VHlwZU5vQm9keTxcbiAgVXJsUGFyYW1zID0gYW55LFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIFIgPSBhbnkgLypEZW5vcm1hbGl6ZTxTPiovLFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogdW5kZWZpbmVkO1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBib2R5OiB1bmRlZmluZWQgfSxcbj4gPSBSZXN0SW5zdGFuY2U8UGFyYW1GZXRjaE5vQm9keTxVcmxQYXJhbXMsIFI+LCBTLCBNLCBPPjtcblxuLyoqIFNpbXBsZSBwYXJhbWV0ZXJzLCBhbmQgYm9keSBmZXRjaCBmdW5jdGlvbnMgKi9cbmV4cG9ydCB0eXBlIFJlc3RGZXRjaDxcbiAgVXJsUGFyYW1zLFxuICBCb2R5ID0ge30sXG4gIFJlc29sdmUgPSBhbnksXG4+ID0gSWZUeXBlU2NyaXB0TG9vc2VOdWxsPFxuICB8IFBhcmFtRmV0Y2hOb0JvZHk8VXJsUGFyYW1zLCBSZXNvbHZlPlxuICB8IFBhcmFtRmV0Y2hXaXRoQm9keTxVcmxQYXJhbXMsIEJvZHksIFJlc29sdmU+LFxuICBCb2R5IGV4dGVuZHMge30gPyBQYXJhbUZldGNoV2l0aEJvZHk8VXJsUGFyYW1zLCBCb2R5LCBSZXNvbHZlPlxuICA6IFBhcmFtRmV0Y2hOb0JvZHk8VXJsUGFyYW1zLCBSZXNvbHZlPlxuPjtcblxuZXhwb3J0IHR5cGUgUGFyYW1GZXRjaFdpdGhCb2R5PFAsIEIgPSB7fSwgUiA9IGFueT4gPVxuICAvLyB3ZSBtdXN0IGFsd2F5cyBhbGxvdyB1bmRlZmluZWQgaW4gYSB1bmlvbiBhbmQgZ2l2ZSBpdCBhIHR5cGUgd2l0aG91dCBwYXJhbXNcbiAgUCBleHRlbmRzIHVuZGVmaW5lZCA/ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+XG4gIDogLy8gZXZlbiB3aXRoIGxvb3NlIG51bGwsIHRoaXMgd2lsbCBvbmx5IGJlIHRydWUgd2hlbiBhbGwgbWVtYmVycyBhcmUgb3B0aW9uYWxcbiAge30gZXh0ZW5kcyBQID9cbiAgICAvLyB0aGlzIHNhZmVseSBoYW5kbGVzIFBhdGhBcmdzIHdpdGggbm8gbWVtYmVycyB0aGF0IHJlc3VsdHMgaW4gYSBzaW1wbGUgYHVua25vd25gIHR5cGVcbiAgICBrZXlvZiBQIGV4dGVuZHMgbmV2ZXIgP1xuICAgICAgKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIGJvZHk6IEIpID0+IFByb21pc2U8Uj5cbiAgICA6IHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFAsIGJvZHk6IEIpID0+IFByb21pc2U8Uj4pXG4gICAgICB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgYm9keTogQikgPT4gUHJvbWlzZTxSPilcbiAgOiAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+O1xuXG5leHBvcnQgdHlwZSBQYXJhbUZldGNoTm9Cb2R5PFAsIFIgPSBhbnk+ID1cbiAgLy8gd2UgbXVzdCBhbHdheXMgYWxsb3cgdW5kZWZpbmVkIGluIGEgdW5pb24gYW5kIGdpdmUgaXQgYSB0eXBlIHdpdGhvdXQgcGFyYW1zXG4gIFAgZXh0ZW5kcyB1bmRlZmluZWQgPyAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSkgPT4gUHJvbWlzZTxSPlxuICA6IC8vIGV2ZW4gd2l0aCBsb29zZSBudWxsLCB0aGlzIHdpbGwgb25seSBiZSB0cnVlIHdoZW4gYWxsIG1lbWJlcnMgYXJlIG9wdGlvbmFsXG4gIHt9IGV4dGVuZHMgUCA/XG4gICAgLy8gdGhpcyBzYWZlbHkgaGFuZGxlcyBQYXRoQXJncyB3aXRoIG5vIG1lbWJlcnMgdGhhdCByZXN1bHRzIGluIGEgc2ltcGxlIGB1bmtub3duYCB0eXBlXG4gICAga2V5b2YgUCBleHRlbmRzIG5ldmVyID9cbiAgICAgICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlKSA9PiBQcm9taXNlPFI+XG4gICAgOiB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQKSA9PiBQcm9taXNlPFI+KVxuICAgICAgfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UpID0+IFByb21pc2U8Uj4pXG4gIDogKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCkgPT4gUHJvbWlzZTxSPjtcblxuLy8gc2FtZSBhbGdvcml0aG0sIGJ1dCBmb3IgQXJncyAoYWthIHJlYWRvbmx5IGFueVtdKVxuZXhwb3J0IHR5cGUgUGFyYW1Ub0FyZ3M8UD4gPVxuICBQIGV4dGVuZHMgdW5kZWZpbmVkID8gW11cbiAgOiB7fSBleHRlbmRzIFAgP1xuICAgIGtleW9mIFAgZXh0ZW5kcyBuZXZlciA/XG4gICAgICBbXVxuICAgIDogW10gfCBbUF1cbiAgOiBbUF07XG5cbnR5cGUgSWZUeXBlU2NyaXB0TG9vc2VOdWxsPFksIE4+ID0gMSB8IHVuZGVmaW5lZCBleHRlbmRzIDEgPyBZIDogTjtcblxuZXhwb3J0IHR5cGUgS2V5b2ZSZXN0RW5kcG9pbnQgPSBrZXlvZiBSZXN0SW5zdGFuY2U7XG5cbmV4cG9ydCB0eXBlIEZyb21GYWxsQmFjazxLIGV4dGVuZHMga2V5b2YgRSwgTywgRT4gPVxuICBLIGV4dGVuZHMga2V5b2YgTyA/IE9bS10gOiBFW0tdO1xuXG5leHBvcnQgdHlwZSBGZXRjaE11dGF0ZTxcbiAgQSBleHRlbmRzIHJlYWRvbmx5IGFueVtdID0gW2FueSwge31dIHwgW3t9XSxcbiAgUiA9IGFueSxcbj4gPSAodGhpczogUmVzdEluc3RhbmNlLCAuLi5hcmdzOiBBKSA9PiBQcm9taXNlPFI+O1xuXG5leHBvcnQgdHlwZSBGZXRjaEdldDxBIGV4dGVuZHMgcmVhZG9ubHkgYW55W10gPSBbYW55XSwgUiA9IGFueT4gPSAoXG4gIHRoaXM6IFJlc3RJbnN0YW5jZSxcbiAgLi4uYXJnczogQVxuKSA9PiBQcm9taXNlPFI+O1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0czxPLCBEPiA9IHtcbiAgW0sgaW4ga2V5b2YgTyB8IGtleW9mIERdOiBLIGV4dGVuZHMga2V5b2YgTyA/IEV4Y2x1ZGU8T1tLXSwgdW5kZWZpbmVkPlxuICA6IERbRXh0cmFjdDxLLCBrZXlvZiBEPl07XG59O1xuXG5leHBvcnQgdHlwZSBHZXRFbmRwb2ludDxcbiAgTyBleHRlbmRzIHtcbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgcmVhZG9ubHkgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nO1xuICB9ID0ge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBzY2hlbWE6IFNjaGVtYTtcbiAgfSxcbj4gPSBSZXN0VHlwZU5vQm9keTxcbiAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gIDogUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgT1snc2NoZW1hJ10sXG4gIHVuZGVmaW5lZCxcbiAgYW55LFxuICBPICYgeyBtZXRob2Q6ICdHRVQnIH1cbj47XG5cbmV4cG9ydCB0eXBlIE11dGF0ZUVuZHBvaW50PFxuICBPIGV4dGVuZHMge1xuICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgICByZWFkb25seSBzY2hlbWE6IFNjaGVtYTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IGJvZHk/OiBhbnk7XG4gIH0gPSB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk6IGFueTtcbiAgICBzY2hlbWE6IFNjaGVtYTtcbiAgfSxcbj4gPSBSZXN0VHlwZVdpdGhCb2R5PFxuICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICBPWydzY2hlbWEnXSxcbiAgdHJ1ZSxcbiAgT1snYm9keSddLFxuICBhbnksXG4gIE8gJiB7IGJvZHk6IGFueTsgbWV0aG9kOiAnUE9TVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJyB9XG4+O1xuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRGVub3JtYWxpemUsXG4gIEVuZHBvaW50RXh0cmFPcHRpb25zLFxuICBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLFxuICBTY2hlbWEsXG4gIEZldGNoRnVuY3Rpb24sXG4gIFJlc29sdmVUeXBlLFxufSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgdHlwZSB7IEV4dHJhY3RDb2xsZWN0aW9uIH0gZnJvbSAnLi9leHRyYWN0Q29sbGVjdGlvbi5qcyc7XG5pbXBvcnQge1xuICBPcHRpb25zVG9Cb2R5QXJndW1lbnQsXG4gIE9wdGlvbnNUb0Z1bmN0aW9uLFxufSBmcm9tICcuL09wdGlvbnNUb0Z1bmN0aW9uLmpzJztcbmltcG9ydCB7IFBhdGhBcmdzLCBTb2Z0UGF0aEFyZ3MgfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi9SZXN0RW5kcG9pbnRUeXBlSGVscC5qcyc7XG5cbmV4cG9ydCB0eXBlIENvbnRlbnRUeXBlID0gJ2pzb24nIHwgJ2Jsb2InIHwgJ3RleHQnIHwgJ2FycmF5QnVmZmVyJyB8ICdzdHJlYW0nO1xuXG5pbnRlcmZhY2UgQ29udGVudFR5cGVNYXAge1xuICBibG9iOiBCbG9iO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGFycmF5QnVmZmVyOiBBcnJheUJ1ZmZlcjtcbiAgc3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PjtcbiAganNvbjogYW55O1xufVxuXG50eXBlIENvbnRlbnRSZXR1cm5UeXBlPEMgZXh0ZW5kcyBDb250ZW50VHlwZT4gPSBDb250ZW50VHlwZU1hcFtDXTtcblxudHlwZSBDb250ZW50U2NoZW1hR3VhcmQ8Tz4gPVxuICBPIGV4dGVuZHMgeyBjb250ZW50OiAnYmxvYicgfCAndGV4dCcgfCAnYXJyYXlCdWZmZXInIHwgJ3N0cmVhbScgfSA/XG4gICAgeyBzY2hlbWE/OiB1bmRlZmluZWQgfVxuICA6IHt9O1xuXG4vKiBHZW5lcmljIGB0aGlzOiBFYCBtZXRob2RzIChleHRlbmQsIHBhZ2luYXRlZCkgbGl2ZSBpbiBub24tZ2VuZXJpYyBtaXhpblxuICogaW50ZXJmYWNlcy4gVHlwZVNjcmlwdCByZS1pbnN0YW50aWF0ZXMgZXZlcnkgbWVtYmVyIG9mIGEgZ2VuZXJpYyBpbnRlcmZhY2VcbiAqICh3aXRoIGZyZXNoIHNpZ25hdHVyZSB0eXBlIHBhcmFtZXRlcnMpIGZvciBlYWNoIGRpc3RpbmN0IGluc3RhbnRpYXRpb247XG4gKiBoZXJlIHRoZSBzaWduYXR1cmVzIGFyZSBzaGFyZWQgYWNyb3NzIGFsbCBlbmRwb2ludHMsIGFuZCBjb21wYXJlIGFzXG4gKiBpZGVudGljYWwgd2hlbiByZWxhdGluZyBvbmUgUmVzdEluc3RhbmNlQmFzZSB0byBhbm90aGVyLiBleHRlbmQoKSByZWFkc1xuICogYEVbJ2ZldGNoJ11gIGluc3RlYWQgb2YgYEZgIHNvIGl0IGRvZXNuJ3QgZGVwZW5kIG9uIHRoZSBvdXRlciBnZW5lcmljcy5cbiAqL1xuaW50ZXJmYWNlIFJlc3RJbnN0YW5jZUV4dGVuZGVycyB7XG4gIC8vIFRPRE86IGBFeHRlbmRPcHRpb25zIGV4dGVuZHMgRXh0ZW5kYWJsZVJlc3RHZW5lcmljcyB8IHt9YCBpcyBhIGhhY2sgZm9yIG9wdGlvbnMgd2l0aCBub1xuICAvLyAgICAgICBQYXJ0aWFsUmVzdEdlbmVyaWNzIG1lbWJlcnMuIE92ZXJsb2FkcyAobGlrZSBwYWdpbmF0ZWQpIGNhbid0IHRlbGwgdGhlIGNhc2VzIGFwYXJ0XG4gIC8vICAgICAgIHNpbmNlIGV2ZXJ5IG1lbWJlciBpcyBvcHRpb25hbC5cbiAgLyoqIENyZWF0ZXMgYSBjaGlsZCBlbmRwb2ludCB0aGF0IGluaGVyaXRzIGZyb20gdGhpcyB3aGlsZSBvdmVycmlkaW5nIHByb3ZpZGVkIGBvcHRpb25zYC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2V4dGVuZFxuICAgKi9cbiAgZXh0ZW5kPFxuICAgIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlLFxuICAgIEV4dGVuZE9wdGlvbnMgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzIHwge30sXG4gID4oXG4gICAgdGhpczogRSxcbiAgICBvcHRpb25zOiBSZWFkb25seTxcbiAgICAgIFJlc3RFbmRwb2ludEV4dGVuZE9wdGlvbnM8RXh0ZW5kT3B0aW9ucywgRSwgRVsnZmV0Y2gnXT4gJiBFeHRlbmRPcHRpb25zXG4gICAgPiAmXG4gICAgICAvLyBuYWtlZCBFeHRlbmRPcHRpb25zIHdpbnMgaW5mZXJlbmNlIChwbGFpbiBvYmplY3QgdHlwZSBpbnN0ZWFkIG9mIGFcbiAgICAgIC8vIHJldmVyc2UtbWFwcGVkIHR5cGUpOyBSZWFkb25seTw+IHN0aWxsIHByb3ZpZGVzIGxpdGVyYWwtcHJlc2VydmluZ1xuICAgICAgLy8gY29udGV4dHVhbCB0eXBlcyBmb3IgcGF0aC9tZXRob2QvZXRjLlxuICAgICAgRXh0ZW5kT3B0aW9ucyAmXG4gICAgICBDb250ZW50U2NoZW1hR3VhcmQ8RXh0ZW5kT3B0aW9ucz4sXG4gICk6IFJlc3RFeHRlbmRlZEVuZHBvaW50PEV4dGVuZE9wdGlvbnMsIEU+O1xufVxuXG5pbnRlcmZhY2UgUmVzdEluc3RhbmNlUGFnaW5hdG9ycyB7XG4gIC8qKiBDcmVhdGVzIGFuIEVuZHBvaW50IHRvIGFwcGVuZCB0aGUgbmV4dCBwYWdlIGV4dGVuZGluZyBhIGxpc3QgZm9yIHBhZ2luYXRpb25cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhZ2luYXRlZFxuICAgKi9cbiAgcGFnaW5hdGVkPFxuICAgIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlPEZldGNoRnVuY3Rpb24sIGFueSwgdW5kZWZpbmVkPixcbiAgICBBIGV4dGVuZHMgYW55W10sXG4gID4oXG4gICAgdGhpczogRSxcbiAgICByZW1vdmVDdXJzb3I6ICguLi5hcmdzOiBBKSA9PiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0sXG4gICk6IFBhZ2luYXRpb25FbmRwb2ludDxFLCBBPjtcbiAgcGFnaW5hdGVkPFxuICAgIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlPEZldGNoRnVuY3Rpb24sIGFueSwgdW5kZWZpbmVkPixcbiAgICBDIGV4dGVuZHMgc3RyaW5nLFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgY3Vyc29yRmllbGQ6IEMsXG4gICk6IFBhZ2luYXRpb25GaWVsZEVuZHBvaW50PEUsIEM+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZUJhc2U8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICBtZXRob2Q/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPlxuICBleHRlbmRzIEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2U8RiwgUywgTT4sIFJlc3RJbnN0YW5jZUV4dGVuZGVycyB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICByZWFkb25seSBib2R5PzogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IGFueTtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgOiAvLyB1bmtub3duIGlzIGlkZW50aXR5IHdpdGggJyYnIHR5cGUgb3BlcmF0b3JcbiAgICB1bmtub3duO1xuXG4gIC8qKiBQYXR0ZXJuIHRvIGNvbnN0cnVjdCB1cmwgYmFzZWQgb24gVXJsIFBhcmFtZXRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGhcbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IE9bJ3BhdGgnXTtcbiAgLyoqIFByZXBlbmRlZCB0byBhbGwgdXJsc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdXJsUHJlZml4XG4gICAqL1xuICByZWFkb25seSB1cmxQcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVxdWVzdEluaXQ6IFJlcXVlc3RJbml0O1xuICAvKiogSFRUUCByZXF1ZXN0IG1ldGhvZFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjbWV0aG9kXG4gICAqL1xuICByZWFkb25seSBtZXRob2Q6IChPICYgeyBtZXRob2Q6IHN0cmluZyB9KVsnbWV0aG9kJ107XG4gIHJlYWRvbmx5IHNpZ25hbDogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbkZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNjb250ZW50ICovXG4gIHJlYWRvbmx5IGNvbnRlbnQ/OiBDb250ZW50VHlwZTtcblxuICAvKiBmZXRjaCBsaWZlY3ljbGVzICovXG4gIC8qIGJlZm9yZS1mZXRjaCAqL1xuICAvKiogQnVpbGRzIHRoZSBVUkwgdG8gZmV0Y2hcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFxuICAgKi9cbiAgdXJsKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIC8qKiBFbmNvZGUgdGhlIHNlYXJjaFBhcmFtcyBjb21wb25lbnQgb2YgdGhlIHVybFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoVG9TdHJpbmdcbiAgICovXG4gIHNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZztcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdChcbiAgICB0aGlzOiBhbnksXG4gICAgYm9keT86IFJlcXVlc3RJbml0Wydib2R5J10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHJlYWRvbmx5IHVua25vd25bXSxcbiAgKTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIENhbGxlZCBieSBnZXRSZXF1ZXN0SW5pdCB0byBkZXRlcm1pbmUgSFRUUCBIZWFkZXJzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRIZWFkZXJzXG4gICAqL1xuICBnZXRIZWFkZXJzKGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyogYWZ0ZXItZmV0Y2ggKi9cbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPjtcbiAgLyoqIFRha2VzIHRoZSBSZXNwb25zZSBhbmQgcGFyc2VzIHZpYSAudGV4dCgpIG9yIC5qc29uKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2VcbiAgICovXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogUGVyZm9ybSBhbnkgdHJhbnNmb3JtcyB3aXRoIHRoZSBwYXJzZWQgcmVzdWx0LlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcHJvY2Vzc1xuICAgKi9cbiAgcHJvY2Vzcyh2YWx1ZTogYW55LCAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogUmVzb2x2ZVR5cGU8Rj47XG5cbiAgLyogdXRpbGl0aWVzICovXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIChmZXRjaCkga2V5IG1hdGNoZXMgdGhpcyBlbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Rlc3RLZXlcbiAgICovXG4gIHRlc3RLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPlxuICBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2U8RiwgUywgTSwgTz4sIFJlc3RJbnN0YW5jZVBhZ2luYXRvcnMge1xuICAvKiogQ29uY2F0aW5hdGUgdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzIChHRVQpXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRQYWdlXG4gICAqL1xuICBnZXRQYWdlOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddIGV4dGVuZHMgc3RyaW5nID9cbiAgICAgIFBhZ2luYXRpb25GaWVsZEVuZHBvaW50PFxuICAgICAgICAvLyBBIHBsYWluIGZldGNoIGZ1bmN0aW9uIChubyBtZW1iZXJzKSBvbmx5IGNvbnRyaWJ1dGVzIFJlc29sdmVUeXBlPD47XG4gICAgICAgIC8vIGNvbGxhcHNpbmcgaXQgdG8gb25lIHNpZ25hdHVyZSBhdm9pZHMgZGlzdHJpYnV0aW5nIHRoaXMgaW50ZXJzZWN0aW9uXG4gICAgICAgIC8vIG92ZXIgZWFjaCBtZW1iZXIgd2hlbiBGIGlzIGEgdW5pb24gb2YgZmV0Y2ggc2lnbmF0dXJlcy5cbiAgICAgICAgKFtrZXlvZiBGXSBleHRlbmRzIFtuZXZlcl0gPyAoLi4uYXJnczogYW55KSA9PiBSZXR1cm5UeXBlPEY+IDogRikgJiB7XG4gICAgICAgICAgc2NoZW1hOiBTO1xuICAgICAgICAgIHNpZGVFZmZlY3Q6IE07XG4gICAgICAgIH0gJiBPLFxuICAgICAgICAvLyBUeXBlU2NyaXB0IDw0LjYgZG9lc24ndCBuYXJyb3cgT1sncGFnaW5hdGlvbkZpZWxkJ10gaGVyZVxuICAgICAgICBFeHRyYWN0PE9bJ3BhZ2luYXRpb25GaWVsZCddLCBzdHJpbmc+XG4gICAgICA+XG4gICAgOiB1bmRlZmluZWRcbiAgOiB1bmRlZmluZWQ7XG4gIC8qKiBDcmVhdGUgYSBuZXcgaXRlbSAoUE9TVCkgYW5kIGBwdXNoYCB0byB0aGUgZW5kXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwdXNoXG4gICAqL1xuICBwdXNoOiBBZGRFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10sXG4gICAgT21pdDxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10+XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TywgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3B1c2gnXT5bXVxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbiAgLyoqIENyZWF0ZSBhIG5ldyBpdGVtIChQT1NUKSBhbmQgYHVuc2hpZnRgIHRvIHRoZSBiZWdpbm5pbmdcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Vuc2hpZnRcbiAgICovXG4gIHVuc2hpZnQ6IEFkZEVuZHBvaW50PFxuICAgIEYsXG4gICAgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3Vuc2hpZnQnXSxcbiAgICBPbWl0PE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TywgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3Vuc2hpZnQnXT5cbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPLCBFeHRyYWN0Q29sbGVjdGlvbjxTPlsndW5zaGlmdCddPltdXG4gICAgICAgIHwgRm9ybURhdGE7XG4gICAgfVxuICA+O1xuICAvKiogQ3JlYXRlIG5ldyBpdGVtKHMpIChQT1NUKSBhbmQgYE9iamVjdC5hc3NpZ25gIG1lcmdlXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNhc3NpZ25cbiAgICovXG4gIGFzc2lnbjogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPixcbiAgICBPbWl0PE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6XG4gICAgICAgIHwgUmVjb3JkPFxuICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TywgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ2Fzc2lnbiddPlxuICAgICAgICAgID5cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBSZW1vdmUgaXRlbShzKSAoUEFUQ0gpIGZyb20gY29sbGVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcmVtb3ZlXG4gICAqL1xuICByZW1vdmU6IFJlbW92ZUVuZHBvaW50PFxuICAgIEYsXG4gICAgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3JlbW92ZSddLFxuICAgIE9taXQ8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBQYXJ0aWFsPE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydyZW1vdmUnXT4+XG4gICAgICAgIHwgUGFydGlhbDxcbiAgICAgICAgICAgIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydyZW1vdmUnXT5cbiAgICAgICAgICA+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBNb3ZlIGl0ZW0gYmV0d2VlbiBjb2xsZWN0aW9ucyAoUEFUQ0gpIC0gcmVtb3ZlcyBmcm9tIG9sZCwgYWRkcyB0byBuZXdcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21vdmVcbiAgICovXG4gIG1vdmU6IE1vdmVFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+Wydtb3ZlJ10sXG4gICAge1xuICAgICAgcGF0aDogJ21vdmVQYXRoJyBleHRlbmRzIGtleW9mIE8gPyBPWydtb3ZlUGF0aCddICYgc3RyaW5nIDogT1sncGF0aCddO1xuICAgICAgYm9keTpcbiAgICAgICAgfCBQYXJ0aWFsPE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+Wydtb3ZlJ10+PlxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyB7IGJvZHk/OiBhbnk7IHBhdGg/OiBzdHJpbmc7IHNjaGVtYT86IFNjaGVtYTsgbWV0aG9kPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9IFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIE9wdGlvbnNUb0Z1bmN0aW9uPE8sIEUsIEY+LFxuICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NjaGVtYSddLCBTY2hlbWEgfCB1bmRlZmluZWQ+XG4gIDogRVsnc2NoZW1hJ11cbj4gJlxuICAvLyBTYW1lIGFzIFBhcnRpYWw8T21pdDxFLCBFeHRlbmRPbWl0S2V5cz4+LCBidXQgc2tpcHMgdGhlIHBlci1rZXkgRXhjbHVkZTw+IHdvcmtcbiAgLy8gKGFuZCB0aGUgZG91YmxlIG1hcHBlZCB0eXBlKSB3aGVuIEUgaGFzIG5vIG1lbWJlcnMgYmV5b25kIHRoZSBzdGFuZGFyZCBvbmVzLlxuICAvLyBLZWVwIHRoZSBndWFyZCBpbnNpZGUgdGhlIG1hcHBlZCB0eXBlJ3Mga2V5czogYSBgPyB1bmtub3duIDogLi4uYCBjb25kaXRpb25hbFxuICAvLyBoZXJlIHdvdWxkIGJlIGRlZmVycmVkIGFuZCBicmVhayBFeHRlbmRPcHRpb25zIGluZmVyZW5jZSBvbiBjaGFpbmVkIGV4dGVuZCgpLlxuICBQYXJ0aWFsUGljazxcbiAgICBFLFxuICAgIGtleW9mIEUgZXh0ZW5kcyBFeHRlbmRPbWl0S2V5cyA/IG5ldmVyIDogRXhjbHVkZTxrZXlvZiBFLCBFeHRlbmRPbWl0S2V5cz5cbiAgPjtcblxuLyoqIEFyZ3VtZW50IEkgcGFzc2VkIHRvIHByb2Nlc3MoKSwgZnJvbSBQYXJhbWV0ZXJzPEY+LlxuICogSW5kZXhpbmcgYSB1bmlvbiBsaWtlIGBbcGFyYW1zXSB8IFtdYCBvciBgW3BhcmFtcywgYm9keV0gfCBbYm9keV1gIChzZWUgUGFyYW1GZXRjaE5vQm9keS9QYXJhbUZldGNoV2l0aEJvZHkpXG4gKiBtZXJnZXMgcG9zaXRpb24td2lzZSwgZ2l2aW5nIGB1bmRlZmluZWRgIHdoZXJlIHNvbWUgY2FsbCBvbWl0cyB0aGUgYXJndW1lbnQuXG4gKiBFbmRwb2ludHMgdGhhdCB0YWtlIG5vIGFyZ3Mga2VlcCBgYW55YCwgc28gcHJvY2Vzcyh2YWx1ZSwgcGFyYW1zOiBhbnkpIGFuZCBzaW1pbGFyIHN0aWxsIGNvbXBpbGUuXG4gKi9cbnR5cGUgUHJvY2Vzc0FyZzxBIGV4dGVuZHMgcmVhZG9ubHkgYW55W10sIEkgZXh0ZW5kcyAwIHwgMT4gPVxuICBbQVsnbGVuZ3RoJ11dIGV4dGVuZHMgWzBdID8gYW55IDogQVtJXTtcblxudHlwZSBFeHRlbmRPbWl0S2V5cyA9XG4gIEtleW9mUmVzdEVuZHBvaW50IHwga2V5b2YgUGFydGlhbFJlc3RHZW5lcmljcyB8IGtleW9mIFJlc3RFbmRwb2ludE9wdGlvbnM7XG5cbi8qKiBQYXJ0aWFsPFBpY2s8VCwgSz4+IGFzIGEgc2luZ2xlIGhvbW9tb3JwaGljIG1hcHBlZCB0eXBlICovXG50eXBlIFBhcnRpYWxQaWNrPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IHsgW1AgaW4gS10/OiBUW1BdIH07XG5cbnR5cGUgT3B0aW9uc1RvUmVzdEVuZHBvaW50PFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UgJiB7IGJvZHk/OiBhbnk7IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZyB9LFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbixcbj4gPVxuICAncGF0aCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgIDogUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gTyA6IEUsXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICAgJ3NpZGVFZmZlY3QnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIEV4dHJhY3Q8T1snc2lkZUVmZmVjdCddLCBib29sZWFuIHwgdW5kZWZpbmVkPlxuICAgICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgICA6IEVbJ3NpZGVFZmZlY3QnXSxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+XG4gICAgICA6ICdjb250ZW50JyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBDb250ZW50UmV0dXJuVHlwZTxPWydjb250ZW50J10gJiBDb250ZW50VHlwZT5cbiAgICAgIDogUmVzb2x2ZVR5cGU8Rj4sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+O1xuICAgICAgICBib2R5OiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gT1snYm9keSddIDogRVsnYm9keSddO1xuICAgICAgICBzZWFyY2hQYXJhbXM6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gICAgICAgIDogRVsnc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRVsncGFnaW5hdGlvbkZpZWxkJ107XG4gICAgICB9XG4gICAgPlxuICA6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RUeXBlPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICAgJ3NpZGVFZmZlY3QnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIEV4dHJhY3Q8T1snc2lkZUVmZmVjdCddLCBib29sZWFuIHwgdW5kZWZpbmVkPlxuICAgICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgICA6IEVbJ3NpZGVFZmZlY3QnXSxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+XG4gICAgICA6ICdjb250ZW50JyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBDb250ZW50UmV0dXJuVHlwZTxPWydjb250ZW50J10gJiBDb250ZW50VHlwZT5cbiAgICAgIDogUmVzb2x2ZVR5cGU8Rj4sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogT1snYm9keSddO1xuICAgICAgICBzZWFyY2hQYXJhbXM6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gICAgICAgIDogRVsnc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRXh0cmFjdDxFWydwYWdpbmF0aW9uRmllbGQnXSwgc3RyaW5nPjtcbiAgICAgIH1cbiAgICA+XG4gIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgRSxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXVxuICAgICAgPixcbiAgICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogRVsnc2NoZW1hJ10sXG4gICAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICAgIDogRVsnc2lkZUVmZmVjdCddLFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogJ2NvbnRlbnQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIENvbnRlbnRSZXR1cm5UeXBlPE9bJ2NvbnRlbnQnXSAmIENvbnRlbnRUeXBlPlxuICAgICAgOiBSZXNvbHZlVHlwZTxGPixcbiAgICAgIHtcbiAgICAgICAgcGF0aDogRVsncGF0aCddO1xuICAgICAgICBib2R5OiBFWydib2R5J107XG4gICAgICAgIHNlYXJjaFBhcmFtczogT1snc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRXh0cmFjdDxFWydwYWdpbmF0aW9uRmllbGQnXSwgc3RyaW5nPjtcbiAgICAgIH1cbiAgICA+XG4gIDogUmVzdEluc3RhbmNlPFxuICAgICAgRixcbiAgICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogRVsnc2NoZW1hJ10sXG4gICAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICAgIDogRVsnc2lkZUVmZmVjdCddLFxuICAgICAge1xuICAgICAgICBwYXRoOiAncGF0aCcgZXh0ZW5kcyBrZXlvZiBPID8gRXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD5cbiAgICAgICAgOiBFWydwYXRoJ107XG4gICAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBFWydib2R5J107XG4gICAgICAgIHNlYXJjaFBhcmFtczogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgICAgICAgOiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFWydwYWdpbmF0aW9uRmllbGQnXTtcbiAgICAgIH1cbiAgICA+O1xuXG5leHBvcnQgdHlwZSBSZXN0RXh0ZW5kZWRFbmRwb2ludDxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlICYgeyBnZXRQYWdlPzogdW5rbm93biB9LFxuPiA9IE9wdGlvbnNUb1Jlc3RFbmRwb2ludDxcbiAgTyxcbiAgRSAmXG4gICAgKEUgZXh0ZW5kcyB7IGdldFBhZ2U6IHsgcGFnaW5hdGlvbkZpZWxkOiBzdHJpbmcgfSB9ID9cbiAgICAgIHsgcGFnaW5hdGlvbkZpZWxkOiBFWydnZXRQYWdlJ11bJ3BhZ2luYXRpb25GaWVsZCddIH1cbiAgICA6IHVua25vd24pLFxuICBSZXN0SW5zdGFuY2U8XG4gICAgKC4uLmFyZ3M6IFBhcmFtZXRlcnM8RT4pID0+IE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID9cbiAgICAgIFByb21pc2U8UmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+PlxuICAgIDogJ2NvbnRlbnQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICBQcm9taXNlPENvbnRlbnRSZXR1cm5UeXBlPE9bJ2NvbnRlbnQnXSAmIENvbnRlbnRUeXBlPj5cbiAgICA6IFJldHVyblR5cGU8RT4sXG4gICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID8gRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgOiBFWydzaWRlRWZmZWN0J11cbiAgPlxuPiAmXG4gIC8vIEVxdWl2YWxlbnQgdG8gT21pdDxPLCBLZXlvZlJlc3RFbmRwb2ludD4gJiBPbWl0PEUsIEtleW9mUmVzdEVuZHBvaW50IHwga2V5b2YgTz47XG4gIC8vIHRoZSBndWFyZHMgYXZvaWQgcGVyLWtleSBFeGNsdWRlPD4gd29yayB3aGVuIHRoZXJlIGFyZSBubyBleHRyYSBtZW1iZXJzXG4gIChrZXlvZiBPIGV4dGVuZHMgS2V5b2ZSZXN0RW5kcG9pbnQgPyB1bmtub3duIDogT21pdDxPLCBLZXlvZlJlc3RFbmRwb2ludD4pICZcbiAgKGtleW9mIEUgZXh0ZW5kcyBLZXlvZlJlc3RFbmRwb2ludCA/IHVua25vd25cbiAgOiBPbWl0PEUsIEtleW9mUmVzdEVuZHBvaW50IHwga2V5b2YgTz4pO1xuXG4vKiogUGFydGlhbFJlc3RHZW5lcmljcyB3aXRob3V0IGBwcm9jZXNzYC4gT3B0aW9ucyBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLCBleHRlbmQoKSBhbmRcbiAqIHJlc291cmNlKCkuZXh0ZW5kKCkgYXJlIGNvbnN0cmFpbmVkIGJ5IHRoaXMsIHNvIFJlc3RFbmRwb2ludE9wdGlvbnMnIHR5cGVkIGBwcm9jZXNzYCBtZW1iZXIgaXNcbiAqIHRoZSBvbmx5IGNvbnRleHR1YWwgdHlwZSBmb3IgcHJvY2VzcygpIHBhcmFtcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzIHtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXRoICovXG4gIHJlYWRvbmx5IHBhdGg/OiBzdHJpbmc7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2NoZW1hICovXG4gIHJlYWRvbmx5IHNjaGVtYT86IFNjaGVtYSB8IHVuZGVmaW5lZDtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNtZXRob2QgKi9cbiAgcmVhZG9ubHkgbWV0aG9kPzogc3RyaW5nO1xuICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2JvZHkgKi9cbiAgYm9keT86IGFueTtcbiAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzZWFyY2hQYXJhbXMgKi9cbiAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhZ2luYXRpb25maWVsZCAqL1xuICByZWFkb25seSBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjY29udGVudCAqL1xuICByZWFkb25seSBjb250ZW50PzogQ29udGVudFR5cGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxSZXN0R2VuZXJpY3MgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzIHtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwcm9jZXNzICovXG4gIHByb2Nlc3M/KHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueSk6IGFueTtcbn1cbi8qKiBHZW5lcmljIHR5cGVzIHdoZW4gY29uc3RydWN0aW5nIGEgUmVzdEVuZHBvaW50XG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2luaGVyaXRhbmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEdlbmVyaWNzIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cbi8qKiBSZXN0R2VuZXJpY3Mgd2l0aG91dCBgcHJvY2Vzc2A7IHNlZSBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzICovXG5pbnRlcmZhY2UgQ29uc3RydWN0b3JSZXN0R2VuZXJpY3MgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzIHtcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRW5kcG9pbnQ8XG4gIEUgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uICYgUmVzdEdlbmVyaWNzICYgeyBzaWRlRWZmZWN0PzogYm9vbGVhbiB8IHVuZGVmaW5lZCB9LFxuICBBIGV4dGVuZHMgYW55W10sXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgUGFyYW1GZXRjaE5vQm9keTxBWzBdLCBSZXNvbHZlVHlwZTxFPj4sXG4gIEVbJ3NjaGVtYSddLFxuICBFWydzaWRlRWZmZWN0J10sXG4gIFBpY2s8RSwgJ3BhdGgnIHwgJ3NlYXJjaFBhcmFtcycgfCAnYm9keSc+ICYge1xuICAgIHNlYXJjaFBhcmFtczogT21pdDxBWzBdLCBrZXlvZiBQYXRoQXJnczxFWydwYXRoJ10+PjtcbiAgfVxuPjtcbi8qKiBNZXJnZSBwYWdpbmF0aW9uIGZpZWxkIEMgaW50byBib2R5LCBtYWtpbmcgaXQgcmVxdWlyZWQgKi9cbnR5cGUgUGFnaW5hdGlvbkludG9Cb2R5PEJvZHksIEMgZXh0ZW5kcyBzdHJpbmc+ID0gQm9keSAmIHtcbiAgW0sgaW4gQ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XG59O1xuXG4vKiogUGFnaW5hdGVkIHNlYXJjaFBhcmFtcyB0eXBlICovXG50eXBlIFBhZ2luYXRlZFNlYXJjaFBhcmFtczxcbiAgRSBleHRlbmRzIHsgc2VhcmNoUGFyYW1zPzogYW55OyBwYXRoPzogc3RyaW5nIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0ge1xuICBbSyBpbiBDXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcbn0gJiBFWydzZWFyY2hQYXJhbXMnXSAmXG4gIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PjtcblxuLyoqIHNlYXJjaFBhcmFtcyB2ZXJzaW9uOiBwYWdpbmF0aW9uIGluIHNlYXJjaFBhcmFtcywgb3B0aW9uYWwgYm9keSBzdXBwb3J0ICovXG50eXBlIFBhZ2luYXRpb25GaWVsZEluU2VhcmNoUGFyYW1zPFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQyBleHRlbmRzIHN0cmluZyxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICAvLyBVbmlvbiBhbGxvd3MgY2FsbGluZyB3aXRoIGp1c3Qgc2VhcmNoUGFyYW1zIG9yIHdpdGggc2VhcmNoUGFyYW1zICsgYm9keVxuICB8IFBhcmFtRmV0Y2hOb0JvZHk8UGFnaW5hdGVkU2VhcmNoUGFyYW1zPEUsIEM+LCBSZXNvbHZlVHlwZTxFPj5cbiAgfCBQYXJhbUZldGNoV2l0aEJvZHk8XG4gICAgICBQYWdpbmF0ZWRTZWFyY2hQYXJhbXM8RSwgQz4sXG4gICAgICBOb25OdWxsYWJsZTxFWydib2R5J10+LFxuICAgICAgUmVzb2x2ZVR5cGU8RT5cbiAgICA+LFxuICBFWydzY2hlbWEnXSxcbiAgRVsnc2lkZUVmZmVjdCddLFxuICBQaWNrPEUsICdwYXRoJyB8ICdzZWFyY2hQYXJhbXMnIHwgJ2JvZHknPiAmIHtcbiAgICBzZWFyY2hQYXJhbXM6IHtcbiAgICAgIFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xuICAgIH0gJiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgfVxuPiAmIHsgcGFnaW5hdGlvbkZpZWxkOiBDIH07XG5cbi8qKiBib2R5IHZlcnNpb246IHBhZ2luYXRpb24gZmllbGQgaXMgaW4gYm9keSAoYm9keSByZXF1aXJlZCkgKi9cbnR5cGUgUGFnaW5hdGlvbkZpZWxkSW5Cb2R5PFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQyBleHRlbmRzIHN0cmluZyxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICBQYXJhbUZldGNoV2l0aEJvZHk8XG4gICAgRVsnc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgUGFnaW5hdGlvbkludG9Cb2R5PEVbJ2JvZHknXSwgQz4sXG4gICAgUmVzb2x2ZVR5cGU8RT5cbiAgPixcbiAgRVsnc2NoZW1hJ10sXG4gIEVbJ3NpZGVFZmZlY3QnXSxcbiAgUGljazxFLCAncGF0aCcgfCAnc2VhcmNoUGFyYW1zJz4gJiB7XG4gICAgYm9keTogUGFnaW5hdGlvbkludG9Cb2R5PEVbJ2JvZHknXSwgQz47XG4gIH1cbj4gJiB7IHBhZ2luYXRpb25GaWVsZDogQyB9O1xuXG4vKiogUmV0cmlldmVzIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cyBieSBwYWdpbmF0aW9uIGZpZWxkICovXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID1cbiAgLy8gSWYgYm9keSBjYW4gYmUgdW5kZWZpbmVkIG9yIHBhZ2luYXRpb24gZmllbGQgbm90IGluIGJvZHksIHVzZSBzZWFyY2hQYXJhbXNcbiAgdW5kZWZpbmVkIGV4dGVuZHMgRVsnYm9keSddID8gUGFnaW5hdGlvbkZpZWxkSW5TZWFyY2hQYXJhbXM8RSwgQz5cbiAgOiAvLyBJZiBwYWdpbmF0aW9uIGZpZWxkIEMgaXMgYSBrZXkgb2YgYm9keSwgbWVyZ2UgaW50byBib2R5XG4gIEMgZXh0ZW5kcyBrZXlvZiBFWydib2R5J10gPyBQYWdpbmF0aW9uRmllbGRJbkJvZHk8RSwgQz5cbiAgOiAvLyBPdGhlcndpc2UgdXNlIHNlYXJjaFBhcmFtc1xuICAgIFBhZ2luYXRpb25GaWVsZEluU2VhcmNoUGFyYW1zPEUsIEM+O1xuXG5leHBvcnQgdHlwZSBBZGRFbmRwb2ludDxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxcbiAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgOiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgT1snYm9keSddLFxuICAgIFJlc29sdmVUeXBlPEY+XG4gID4sXG4gIFMsXG4gIHRydWUsXG4gIE9taXQ8TywgJ21ldGhvZCc+ICYgeyBtZXRob2Q6ICdQT1NUJyB9XG4+O1xuZXhwb3J0IHR5cGUgUmVtb3ZlRW5kcG9pbnQ8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keTogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBib2R5OiBhbnkgfSxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICBSZXN0RmV0Y2g8XG4gICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgIDogUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgIE9bJ2JvZHknXSxcbiAgICBSZXNvbHZlVHlwZTxGPlxuICA+LFxuICBTLFxuICB0cnVlLFxuICBPbWl0PE8sICdtZXRob2QnPiAmIHsgbWV0aG9kOiAnUEFUQ0gnIH1cbj47XG5leHBvcnQgdHlwZSBNb3ZlRW5kcG9pbnQ8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keTogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj4sIE9bJ2JvZHknXSwgUmVzb2x2ZVR5cGU8Rj4+LFxuICBTLFxuICB0cnVlLFxuICBPbWl0PE8sICdtZXRob2QnIHwgJ3NlYXJjaFBhcmFtcyc+ICYgeyBtZXRob2Q6ICdQQVRDSCcgfVxuPjtcblxudHlwZSBPcHRpb25zQm9keURlZmF1bHQ8TyBleHRlbmRzIFJlc3RHZW5lcmljcz4gPVxuICAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gT1xuICA6IE9bJ21ldGhvZCddIGV4dGVuZHMgJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnID8gTyAmIHsgYm9keTogYW55IH1cbiAgOiBPICYgeyBib2R5OiB1bmRlZmluZWQgfTtcblxuLyoqIFdoZW4gYG1ldGhvZGAgaXMgb21pdHRlZCBmcm9tIGBPYCwgaW5mZXIgaXQgKG11c3Qgc3RheSBhbGlnbmVkIHdpdGggYE9wdGlvbnNUb0JvZHlBcmd1bWVudGApLiAqL1xudHlwZSBJbmZlclJlc3RNZXRob2RXaGVuT21pdHRlZDxPIGV4dGVuZHMgUmVzdEdlbmVyaWNzPiA9XG4gIE8gZXh0ZW5kcyB7IHNpZGVFZmZlY3Q6IHRydWUgfSA/ICdQT1NUJ1xuICA6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFtPWydib2R5J11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgJ0dFVCdcbiAgICA6ICdQT1NUJ1xuICA6ICdHRVQnO1xuXG50eXBlIE1ldGhvZEFyZ0ZvckJvZHlJbmZlcmVuY2U8TyBleHRlbmRzIFJlc3RHZW5lcmljcz4gPVxuICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEluZmVyUmVzdE1ldGhvZFdoZW5PbWl0dGVkPE8+O1xuXG50eXBlIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8gZXh0ZW5kcyB7IGJvZHk/OiBhbnkgfSwgRW50aXR5U2NoZW1hID0gYW55PiA9XG4gICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBQYXJ0aWFsPERlbm9ybWFsaXplPEVudGl0eVNjaGVtYT4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbj4gZXh0ZW5kcyBFbmRwb2ludEV4dHJhT3B0aW9uczxGPiB7XG4gIC8qKiBQcmVwZW5kZWQgdG8gYWxsIHVybHNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFByZWZpeFxuICAgKi9cbiAgdXJsUHJlZml4Pzogc3RyaW5nO1xuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0O1xuICAvKiogQ2FsbGVkIGJ5IGdldFJlcXVlc3RJbml0IHRvIGRldGVybWluZSBIVFRQIEhlYWRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldEhlYWRlcnNcbiAgICovXG4gIGdldEhlYWRlcnM/KGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdD8oYm9keTogYW55KTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlPyhpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxhbnk+O1xuICAvKiogVGFrZXMgdGhlIFJlc3BvbnNlIGFuZCBwYXJzZXMgdmlhIC50ZXh0KCkgb3IgLmpzb24oKVxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFyc2VSZXNwb25zZVxuICAgKi9cbiAgcGFyc2VSZXNwb25zZT8ocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2NvbnRlbnQgKi9cbiAgY29udGVudD86IENvbnRlbnRUeXBlO1xuXG4gIHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBuYW1lPzogc3RyaW5nO1xuICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgZmV0Y2g/OiBGO1xuICBrZXk/KC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIHVybD8oLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwcm9jZXNzICovXG4gIC8vIFBvc2l0aW9uYWwgcmF0aGVyIHRoYW4gYSByZXN0IHR1cGxlOiB3aGVuIEYgaXMgZ2VuZXJpYyAobGlrZSBhIHBhdGggdHlwZSBwYXJhbWV0ZXIpLFxuICAvLyBhIGRlZmVycmVkIHJlc3QgdHVwbGUgd291bGQgcmVqZWN0IHByb2Nlc3ModmFsdWUsIHBhcmFtcykgZm9yIGhhdmluZyB0b28gbWFueSBwYXJhbXMuXG4gIHByb2Nlc3M/KFxuICAgIHZhbHVlOiBhbnksXG4gICAgcGFyYW1zOiBQcm9jZXNzQXJnPFBhcmFtZXRlcnM8Rj4sIDA+LFxuICAgIGJvZHk6IFByb2Nlc3NBcmc8UGFyYW1ldGVyczxGPiwgMT4sXG4gICAgLi4ucmVzdDogYW55W11cbiAgKTogYW55O1xuICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEYsIFM+O1xufVxuXG4vLyBXaGVuIHN1YmNsYXNzaW5nIFJlc3RFbmRwb2ludCB3aXRoIGBPIGV4dGVuZHMgUmVzdEdlbmVyaWNzID0gYW55YCwgTyBkZWZhdWx0c1xuLy8gdG8gYGFueWAuIFRoZSBgdW5rbm93biBleHRlbmRzIE8gPyBhbnlgIGd1YXJkIGNhdGNoZXMgTz1hbnkgYmVmb3JlIGl0IHJlYWNoZXNcbi8vIFBhdGhBcmdzIChzZWUgIzM3ODIpLiBTb2Z0UGF0aEFyZ3MgY29sbGFwc2VzIFBhdGhBcmdzPHN0cmluZz4gdG8gYHVua25vd25gXG4vLyB3aGVuIGEgY29uY3JldGUgYm9keSBpcyBwcmVzZW50LCBwcmV2ZW50aW5nIHVuaW9uIG92ZXJsb2FkcyB0aGF0IGJyZWFrXG4vLyBnZXRPcHRpbWlzdGljUmVzcG9uc2UgY2FsbGJhY2tzLiBNZXRob2QgaW5mZXJlbmNlIHRyZWF0cyBleHBsaWNpdCBib2R5IGFzIFBPU1QuXG5leHBvcnQgdHlwZSBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4gPVxuICBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICAgIFJlc3RGZXRjaDxcbiAgICAgIHVua25vd24gZXh0ZW5kcyBPID8gYW55XG4gICAgICA6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgICAgU29mdFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFNvZnRQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICA6IFNvZnRQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PE8sIE1ldGhvZEFyZ0ZvckJvZHlJbmZlcmVuY2U8Tz4+LFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogJ2NvbnRlbnQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIENvbnRlbnRSZXR1cm5UeXBlPE9bJ2NvbnRlbnQnXSAmIENvbnRlbnRUeXBlPlxuICAgICAgOiBhbnkgLypEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4qL1xuICAgID4sXG4gICAgT1snc2NoZW1hJ11cbiAgPjtcblxuLyoqIFNpbXBsaWZpZXMgZW5kcG9pbnQgZGVmaW5pdGlvbnMgdGhhdCBmb2xsb3cgUkVTVCBwYXR0ZXJuc1xuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RFbmRwb2ludDxcbiAgTyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueSxcbj4gZXh0ZW5kcyBSZXN0SW5zdGFuY2U8XG4gIFJlc3RGZXRjaDxcbiAgICB1bmtub3duIGV4dGVuZHMgTyA/IGFueVxuICAgIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxPLCBNZXRob2RBcmdGb3JCb2R5SW5mZXJlbmNlPE8+PixcbiAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPlxuICAgIDogJ2NvbnRlbnQnIGV4dGVuZHMga2V5b2YgTyA/IENvbnRlbnRSZXR1cm5UeXBlPE9bJ2NvbnRlbnQnXSAmIENvbnRlbnRUeXBlPlxuICAgIDogYW55IC8qRGVub3JtYWxpemU8T1snc2NoZW1hJ10+Ki9cbiAgPixcbiAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiB1bmRlZmluZWQsXG4gICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgYm9vbGVhbiB8IHVuZGVmaW5lZD5cbiAgOiBNZXRob2RUb1NpZGU8TWV0aG9kQXJnRm9yQm9keUluZmVyZW5jZTxPPj4sXG4gICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9cbiAgOiBPICYge1xuICAgICAgbWV0aG9kOiBJbmZlclJlc3RNZXRob2RXaGVuT21pdHRlZDxPPjtcbiAgICB9XG4+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEVuZHBvaW50Q29uc3RydWN0b3Ige1xuICAvKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludFxuICAgKi9cbiAgbmV3IDxPIGV4dGVuZHMgQ29uc3RydWN0b3JSZXN0R2VuZXJpY3MgPSBhbnk+KHtcbiAgICBtZXRob2QsXG4gICAgc2lkZUVmZmVjdCxcbiAgICBuYW1lLFxuICAgIC4uLm9wdGlvbnNcbiAgfTogUmVzdEVuZHBvaW50Q29uc3RydWN0b3JPcHRpb25zPE8+ICZcbiAgICBSZWFkb25seTxPPiAmXG4gICAgLy8gbmFrZWQgTyB3aW5zIGluZmVyZW5jZSAocGxhaW4gb2JqZWN0IHR5cGUgaW5zdGVhZCBvZiBhIHJldmVyc2UtbWFwcGVkIHR5cGUpXG4gICAgTyAmXG4gICAgQ29udGVudFNjaGVtYUd1YXJkPE8+KTogUmVzdEVuZHBvaW50PE8+O1xuICByZWFkb25seSBwcm90b3R5cGU6IFJlc3RJbnN0YW5jZUJhc2U7XG59XG5cbmV4cG9ydCB0eXBlIE1ldGhvZFRvU2lkZTxNPiA9XG4gIE0gZXh0ZW5kcyBzdHJpbmcgP1xuICAgIE0gZXh0ZW5kcyAnR0VUJyA/XG4gICAgICB1bmRlZmluZWRcbiAgICA6IHRydWVcbiAgOiB1bmRlZmluZWQ7XG5cbi8qKiBSZXN0RW5kcG9pbnQgdHlwZXMgc2ltcGxpZmllZCAqL1xuZXhwb3J0IHR5cGUgUmVzdFR5cGU8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgQm9keSA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBSID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgcGFnaW5hdGlvbkZpZWxkOiBzdHJpbmcgfSxcbj4gPSBJZlR5cGVTY3JpcHRMb29zZU51bGw8XG4gIFJlc3RJbnN0YW5jZTxSZXN0RmV0Y2g8VXJsUGFyYW1zLCBCb2R5LCBSPiwgUywgTSwgTz4sXG4gIEJvZHkgZXh0ZW5kcyB7fSA/IFJlc3RUeXBlV2l0aEJvZHk8VXJsUGFyYW1zLCBTLCBNLCBCb2R5LCBSLCBPPlxuICA6IFJlc3RUeXBlTm9Cb2R5PFVybFBhcmFtcywgUywgTSwgUiwgTz5cbj47XG5cbmV4cG9ydCB0eXBlIFJlc3RUeXBlV2l0aEJvZHk8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBCb2R5ID0gYW55LFxuICBSID0gYW55IC8qRGVub3JtYWxpemU8Uz4qLyxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgYm9keTogYW55IH0sXG4+ID0gUmVzdEluc3RhbmNlPFBhcmFtRmV0Y2hXaXRoQm9keTxVcmxQYXJhbXMsIEJvZHksIFI+LCBTLCBNLCBPPjtcblxuZXhwb3J0IHR5cGUgUmVzdFR5cGVOb0JvZHk8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBSID0gYW55IC8qRGVub3JtYWxpemU8Uz4qLyxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IHVuZGVmaW5lZDtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgYm9keTogdW5kZWZpbmVkIH0sXG4+ID0gUmVzdEluc3RhbmNlPFBhcmFtRmV0Y2hOb0JvZHk8VXJsUGFyYW1zLCBSPiwgUywgTSwgTz47XG5cbi8qKiBTaW1wbGUgcGFyYW1ldGVycywgYW5kIGJvZHkgZmV0Y2ggZnVuY3Rpb25zICovXG5leHBvcnQgdHlwZSBSZXN0RmV0Y2g8XG4gIFVybFBhcmFtcyxcbiAgQm9keSA9IHt9LFxuICBSZXNvbHZlID0gYW55LFxuPiA9IElmVHlwZVNjcmlwdExvb3NlTnVsbDxcbiAgfCBQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUmVzb2x2ZT5cbiAgfCBQYXJhbUZldGNoV2l0aEJvZHk8VXJsUGFyYW1zLCBCb2R5LCBSZXNvbHZlPixcbiAgQm9keSBleHRlbmRzIHt9ID8gUGFyYW1GZXRjaFdpdGhCb2R5PFVybFBhcmFtcywgQm9keSwgUmVzb2x2ZT5cbiAgOiBQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUmVzb2x2ZT5cbj47XG5cbmV4cG9ydCB0eXBlIFBhcmFtRmV0Y2hXaXRoQm9keTxQLCBCID0ge30sIFIgPSBhbnk+ID1cbiAgLy8gd2UgbXVzdCBhbHdheXMgYWxsb3cgdW5kZWZpbmVkIGluIGEgdW5pb24gYW5kIGdpdmUgaXQgYSB0eXBlIHdpdGhvdXQgcGFyYW1zXG4gIFAgZXh0ZW5kcyB1bmRlZmluZWQgPyAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgYm9keTogQikgPT4gUHJvbWlzZTxSPlxuICA6IC8vIGV2ZW4gd2l0aCBsb29zZSBudWxsLCB0aGlzIHdpbGwgb25seSBiZSB0cnVlIHdoZW4gYWxsIG1lbWJlcnMgYXJlIG9wdGlvbmFsXG4gIHt9IGV4dGVuZHMgUCA/XG4gICAgLy8gdGhpcyBzYWZlbHkgaGFuZGxlcyBQYXRoQXJncyB3aXRoIG5vIG1lbWJlcnMgdGhhdCByZXN1bHRzIGluIGEgc2ltcGxlIGB1bmtub3duYCB0eXBlXG4gICAga2V5b2YgUCBleHRlbmRzIG5ldmVyID9cbiAgICAgICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+XG4gICAgOiB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+KVxuICAgICAgfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIGJvZHk6IEIpID0+IFByb21pc2U8Uj4pXG4gIDogKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCwgYm9keTogQikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgUGFyYW1GZXRjaE5vQm9keTxQLCBSID0gYW55PiA9XG4gIC8vIHdlIG11c3QgYWx3YXlzIGFsbG93IHVuZGVmaW5lZCBpbiBhIHVuaW9uIGFuZCBnaXZlIGl0IGEgdHlwZSB3aXRob3V0IHBhcmFtc1xuICBQIGV4dGVuZHMgdW5kZWZpbmVkID8gKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UpID0+IFByb21pc2U8Uj5cbiAgOiAvLyBldmVuIHdpdGggbG9vc2UgbnVsbCwgdGhpcyB3aWxsIG9ubHkgYmUgdHJ1ZSB3aGVuIGFsbCBtZW1iZXJzIGFyZSBvcHRpb25hbFxuICB7fSBleHRlbmRzIFAgP1xuICAgIC8vIHRoaXMgc2FmZWx5IGhhbmRsZXMgUGF0aEFyZ3Mgd2l0aCBubyBtZW1iZXJzIHRoYXQgcmVzdWx0cyBpbiBhIHNpbXBsZSBgdW5rbm93bmAgdHlwZVxuICAgIGtleW9mIFAgZXh0ZW5kcyBuZXZlciA/XG4gICAgICAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSkgPT4gUHJvbWlzZTxSPlxuICAgIDogfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCkgPT4gUHJvbWlzZTxSPilcbiAgICAgIHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlKSA9PiBQcm9taXNlPFI+KVxuICA6ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFApID0+IFByb21pc2U8Uj47XG5cbi8vIHNhbWUgYWxnb3JpdGhtLCBidXQgZm9yIEFyZ3MgKGFrYSByZWFkb25seSBhbnlbXSlcbmV4cG9ydCB0eXBlIFBhcmFtVG9BcmdzPFA+ID1cbiAgUCBleHRlbmRzIHVuZGVmaW5lZCA/IFtdXG4gIDoge30gZXh0ZW5kcyBQID9cbiAgICBrZXlvZiBQIGV4dGVuZHMgbmV2ZXIgP1xuICAgICAgW11cbiAgICA6IFtdIHwgW1BdXG4gIDogW1BdO1xuXG50eXBlIElmVHlwZVNjcmlwdExvb3NlTnVsbDxZLCBOPiA9IDEgfCB1bmRlZmluZWQgZXh0ZW5kcyAxID8gWSA6IE47XG5cbmV4cG9ydCB0eXBlIEtleW9mUmVzdEVuZHBvaW50ID0ga2V5b2YgUmVzdEluc3RhbmNlO1xuXG5leHBvcnQgdHlwZSBGcm9tRmFsbEJhY2s8SyBleHRlbmRzIGtleW9mIEUsIE8sIEU+ID1cbiAgSyBleHRlbmRzIGtleW9mIE8gPyBPW0tdIDogRVtLXTtcblxuZXhwb3J0IHR5cGUgRmV0Y2hNdXRhdGU8XG4gIEEgZXh0ZW5kcyByZWFkb25seSBhbnlbXSA9IFthbnksIHt9XSB8IFt7fV0sXG4gIFIgPSBhbnksXG4+ID0gKHRoaXM6IFJlc3RJbnN0YW5jZSwgLi4uYXJnczogQSkgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRmV0Y2hHZXQ8QSBleHRlbmRzIHJlYWRvbmx5IGFueVtdID0gW2FueV0sIFIgPSBhbnk+ID0gKFxuICB0aGlzOiBSZXN0SW5zdGFuY2UsXG4gIC4uLmFyZ3M6IEFcbikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdHM8TywgRD4gPSB7XG4gIFtLIGluIGtleW9mIE8gfCBrZXlvZiBEXTogSyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bS10sIHVuZGVmaW5lZD5cbiAgOiBEW0V4dHJhY3Q8Sywga2V5b2YgRD5dO1xufTtcblxuZXhwb3J0IHR5cGUgR2V0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyB7XG4gICAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHNjaGVtYTogU2NoZW1hO1xuICAgIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gICAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgfSA9IHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gIH0sXG4+ID0gUmVzdFR5cGVOb0JvZHk8XG4gICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gIE9bJ3NjaGVtYSddLFxuICB1bmRlZmluZWQsXG4gIGFueSxcbiAgTyAmIHsgbWV0aG9kOiAnR0VUJyB9XG4+O1xuXG5leHBvcnQgdHlwZSBNdXRhdGVFbmRwb2ludDxcbiAgTyBleHRlbmRzIHtcbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBib2R5PzogYW55O1xuICB9ID0ge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gIH0sXG4+ID0gUmVzdFR5cGVXaXRoQm9keTxcbiAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gIDogUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgT1snc2NoZW1hJ10sXG4gIHRydWUsXG4gIE9bJ2JvZHknXSxcbiAgYW55LFxuICBPICYgeyBib2R5OiBhbnk7IG1ldGhvZDogJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnIHwgJ0RFTEVURScgfVxuPjtcbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -12,4 +12,6 @@ export default function extractCollection(s, mapper) {
12
12
  if (collection) return collection;
13
13
  }
14
14
  }
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJleHRyYWN0Q29sbGVjdGlvbiIsInMiLCJtYXBwZXIiLCJ1bmRlZmluZWQiLCJBcnJheSIsImlzQXJyYXkiLCJDb2xsZWN0aW9uIiwib2JqQ29weSIsIl9leHRlbmRzIiwiT2JqZWN0IiwiayIsImNvbGxlY3Rpb24iXSwic291cmNlcyI6WyIuLi9zcmMvZXh0cmFjdENvbGxlY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NoZW1hLCBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgeyBFeHRyYWN0T2JqZWN0IH0gZnJvbSAnLi9leHRyYWN0T2JqZWN0LmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZXh0cmFjdENvbGxlY3Rpb248XG4gIE0gZXh0ZW5kcyA8QyBleHRlbmRzIHNjaGVtYS5Db2xsZWN0aW9uPihjb2xsZWN0aW9uOiBDKSA9PiBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQsXG4+KHM6IFMsIG1hcHBlcjogTSk6IEV4dHJhY3RDb2xsZWN0aW9uPFM+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiBzICE9PSAnb2JqZWN0JyB8fCBzID09PSB1bmRlZmluZWQgfHwgQXJyYXkuaXNBcnJheShzKSkgcmV0dXJuO1xuICBpZiAocyBpbnN0YW5jZW9mIHNjaGVtYS5Db2xsZWN0aW9uKSB7XG4gICAgcmV0dXJuIG1hcHBlcihzIGFzIGFueSk7XG4gIH1cbiAgY29uc3Qgb2JqQ29weTogUmVjb3JkPHN0cmluZywgU2NoZW1hPiA9IHtcbiAgICAuLi4ocyBpbnN0YW5jZW9mIHNjaGVtYS5PYmplY3QgPyAocyBhcyBhbnkpLnNjaGVtYSA6IHMpLFxuICB9O1xuICBmb3IgKGNvbnN0IGsgaW4gb2JqQ29weSkge1xuICAgIGlmICghb2JqQ29weVtrXSkgY29udGludWU7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IGV4dHJhY3RDb2xsZWN0aW9uKG9iakNvcHlba10sIG1hcHBlcik7XG4gICAgaWYgKGNvbGxlY3Rpb24pIHJldHVybiBjb2xsZWN0aW9uO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIEV4dHJhY3RDb2xsZWN0aW9uPFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQ+ID1cbiAgUyBleHRlbmRzIChcbiAgICB7XG4gICAgICBwdXNoOiBhbnk7XG4gICAgICB1bnNoaWZ0OiBhbnk7XG4gICAgICBhc3NpZ246IGFueTtcbiAgICAgIHJlbW92ZTogYW55O1xuICAgICAgc2NoZW1hOiBTY2hlbWE7XG4gICAgfVxuICApID9cbiAgICBTXG4gIDogUyBleHRlbmRzIHNjaGVtYS5PYmplY3Q8aW5mZXIgVD4gPyBFeHRyYWN0T2JqZWN0PFQ+XG4gIDogUyBleHRlbmRzIEV4Y2x1ZGU8U2NoZW1hLCB7IFtLOiBzdHJpbmddOiBhbnkgfT4gPyBuZXZlclxuICA6IFMgZXh0ZW5kcyB7IFtLOiBzdHJpbmddOiBTY2hlbWEgfSA/IEV4dHJhY3RPYmplY3Q8Uz5cbiAgOiBuZXZlcjtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQWlCQSxNQUFNLFFBQVEsdUJBQXVCO0FBSXRELGVBQWUsU0FBU0MsaUJBQWlCQSxDQUd2Q0MsQ0FBSSxFQUFFQyxNQUFTLEVBQW9DO0VBQ25ELElBQUksT0FBT0QsQ0FBQyxLQUFLLFFBQVEsSUFBSUEsQ0FBQyxLQUFLRSxTQUFTLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSixDQUFDLENBQUMsRUFBRTtFQUNsRSxJQUFJQSxDQUFDLFlBQVlGLE1BQU0sQ0FBQ08sVUFBVSxFQUFFO0lBQ2xDLE9BQU9KLE1BQU0sQ0FBQ0QsQ0FBUSxDQUFDO0VBQ3pCO0VBQ0EsTUFBTU0sT0FBK0IsR0FBQUMsUUFBQSxLQUMvQlAsQ0FBQyxZQUFZRixNQUFNLENBQUNVLE1BQU0sR0FBSVIsQ0FBQyxDQUFTRixNQUFNLEdBQUdFLENBQUMsQ0FDdkQ7RUFDRCxLQUFLLE1BQU1TLENBQUMsSUFBSUgsT0FBTyxFQUFFO0lBQ3ZCLElBQUksQ0FBQ0EsT0FBTyxDQUFDRyxDQUFDLENBQUMsRUFBRTtJQUNqQixNQUFNQyxVQUFVLEdBQUdYLGlCQUFpQixDQUFDTyxPQUFPLENBQUNHLENBQUMsQ0FBQyxFQUFFUixNQUFNLENBQUM7SUFDeEQsSUFBSVMsVUFBVSxFQUFFLE9BQU9BLFVBQVU7RUFDbkM7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
15
+
16
+ /** Searches wrappers like Query and Lazy through their `schema` (Entity classes have a `prototype`) */
17
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJleHRyYWN0Q29sbGVjdGlvbiIsInMiLCJtYXBwZXIiLCJ1bmRlZmluZWQiLCJBcnJheSIsImlzQXJyYXkiLCJDb2xsZWN0aW9uIiwib2JqQ29weSIsIl9leHRlbmRzIiwiT2JqZWN0IiwiayIsImNvbGxlY3Rpb24iXSwic291cmNlcyI6WyIuLi9zcmMvZXh0cmFjdENvbGxlY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NoZW1hLCBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgeyBFeHRyYWN0T2JqZWN0IH0gZnJvbSAnLi9leHRyYWN0T2JqZWN0LmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZXh0cmFjdENvbGxlY3Rpb248XG4gIE0gZXh0ZW5kcyA8QyBleHRlbmRzIHNjaGVtYS5Db2xsZWN0aW9uPihjb2xsZWN0aW9uOiBDKSA9PiBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQsXG4+KHM6IFMsIG1hcHBlcjogTSk6IEV4dHJhY3RDb2xsZWN0aW9uPFM+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiBzICE9PSAnb2JqZWN0JyB8fCBzID09PSB1bmRlZmluZWQgfHwgQXJyYXkuaXNBcnJheShzKSkgcmV0dXJuO1xuICBpZiAocyBpbnN0YW5jZW9mIHNjaGVtYS5Db2xsZWN0aW9uKSB7XG4gICAgcmV0dXJuIG1hcHBlcihzIGFzIGFueSk7XG4gIH1cbiAgY29uc3Qgb2JqQ29weTogUmVjb3JkPHN0cmluZywgU2NoZW1hPiA9IHtcbiAgICAuLi4ocyBpbnN0YW5jZW9mIHNjaGVtYS5PYmplY3QgPyAocyBhcyBhbnkpLnNjaGVtYSA6IHMpLFxuICB9O1xuICBmb3IgKGNvbnN0IGsgaW4gb2JqQ29weSkge1xuICAgIGlmICghb2JqQ29weVtrXSkgY29udGludWU7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IGV4dHJhY3RDb2xsZWN0aW9uKG9iakNvcHlba10sIG1hcHBlcik7XG4gICAgaWYgKGNvbGxlY3Rpb24pIHJldHVybiBjb2xsZWN0aW9uO1xuICB9XG59XG5cbi8qKiBTZWFyY2hlcyB3cmFwcGVycyBsaWtlIFF1ZXJ5IGFuZCBMYXp5IHRocm91Z2ggdGhlaXIgYHNjaGVtYWAgKEVudGl0eSBjbGFzc2VzIGhhdmUgYSBgcHJvdG90eXBlYCkgKi9cbmV4cG9ydCB0eXBlIEV4dHJhY3RDb2xsZWN0aW9uPFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQ+ID1cbiAgUyBleHRlbmRzIChcbiAgICB7XG4gICAgICBwdXNoOiBhbnk7XG4gICAgICB1bnNoaWZ0OiBhbnk7XG4gICAgICBhc3NpZ246IGFueTtcbiAgICAgIHJlbW92ZTogYW55O1xuICAgICAgc2NoZW1hOiBTY2hlbWE7XG4gICAgfVxuICApID9cbiAgICBTXG4gIDogUyBleHRlbmRzIHNjaGVtYS5PYmplY3Q8aW5mZXIgVD4gPyBFeHRyYWN0T2JqZWN0PFQ+XG4gIDogUyBleHRlbmRzIHsgc2NoZW1hOiBpbmZlciBROyBkZW5vcm1hbGl6ZTogYW55OyBwcm90b3R5cGU/OiB1bmRlZmluZWQgfSA/XG4gICAgRXh0cmFjdE9iamVjdDx7IHNjaGVtYTogUSB9PlxuICA6IFMgZXh0ZW5kcyBFeGNsdWRlPFNjaGVtYSwgeyBbSzogc3RyaW5nXTogYW55IH0+ID8gbmV2ZXJcbiAgOiBTIGV4dGVuZHMgeyBbSzogc3RyaW5nXTogU2NoZW1hIH0gPyBFeHRyYWN0T2JqZWN0PFM+XG4gIDogbmV2ZXI7XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFpQkEsTUFBTSxRQUFRLHVCQUF1QjtBQUl0RCxlQUFlLFNBQVNDLGlCQUFpQkEsQ0FHdkNDLENBQUksRUFBRUMsTUFBUyxFQUFvQztFQUNuRCxJQUFJLE9BQU9ELENBQUMsS0FBSyxRQUFRLElBQUlBLENBQUMsS0FBS0UsU0FBUyxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0osQ0FBQyxDQUFDLEVBQUU7RUFDbEUsSUFBSUEsQ0FBQyxZQUFZRixNQUFNLENBQUNPLFVBQVUsRUFBRTtJQUNsQyxPQUFPSixNQUFNLENBQUNELENBQVEsQ0FBQztFQUN6QjtFQUNBLE1BQU1NLE9BQStCLEdBQUFDLFFBQUEsS0FDL0JQLENBQUMsWUFBWUYsTUFBTSxDQUFDVSxNQUFNLEdBQUlSLENBQUMsQ0FBU0YsTUFBTSxHQUFHRSxDQUFDLENBQ3ZEO0VBQ0QsS0FBSyxNQUFNUyxDQUFDLElBQUlILE9BQU8sRUFBRTtJQUN2QixJQUFJLENBQUNBLE9BQU8sQ0FBQ0csQ0FBQyxDQUFDLEVBQUU7SUFDakIsTUFBTUMsVUFBVSxHQUFHWCxpQkFBaUIsQ0FBQ08sT0FBTyxDQUFDRyxDQUFDLENBQUMsRUFBRVIsTUFBTSxDQUFDO0lBQ3hELElBQUlTLFVBQVUsRUFBRSxPQUFPQSxVQUFVO0VBQ25DO0FBQ0Y7O0FBRUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -3,4 +3,4 @@ export default function paramsToString(searchParams) {
3
3
  params.sort();
4
4
  return params.toString();
5
5
  }
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJhbXNUb1N0cmluZyIsInNlYXJjaFBhcmFtcyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsInNvcnQiLCJ0b1N0cmluZyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJhbXNUb1N0cmluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwYXJhbXNUb1N0cmluZyhcbiAgc2VhcmNoUGFyYW1zPzpcbiAgICB8IHN0cmluZ1xuICAgIHwgVVJMU2VhcmNoUGFyYW1zXG4gICAgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gICAgfCBzdHJpbmdbXVtdXG4gICAgfCB1bmRlZmluZWQsXG4pIHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhzZWFyY2hQYXJhbXMpO1xuICBwYXJhbXMuc29ydCgpO1xuICByZXR1cm4gcGFyYW1zLnRvU3RyaW5nKCk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsU0FBU0EsY0FBY0EsQ0FDcENDLFlBS2EsRUFDYjtFQUNBLE1BQU1DLE1BQU0sR0FBRyxJQUFJQyxlQUFlLENBQUNGLFlBQVksQ0FBQztFQUNoREMsTUFBTSxDQUFDRSxJQUFJLENBQUMsQ0FBQztFQUNiLE9BQU9GLE1BQU0sQ0FBQ0csUUFBUSxDQUFDLENBQUM7QUFDMUIiLCJpZ25vcmVMaXN0IjpbXX0=
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJhbXNUb1N0cmluZyIsInNlYXJjaFBhcmFtcyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsInNvcnQiLCJ0b1N0cmluZyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJhbXNUb1N0cmluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwYXJhbXNUb1N0cmluZyhcbiAgc2VhcmNoUGFyYW1zPzpcbiAgICBzdHJpbmcgfCBVUkxTZWFyY2hQYXJhbXMgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nW11bXSB8IHVuZGVmaW5lZCxcbikge1xuICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHNlYXJjaFBhcmFtcyk7XG4gIHBhcmFtcy5zb3J0KCk7XG4gIHJldHVybiBwYXJhbXMudG9TdHJpbmcoKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZSxTQUFTQSxjQUFjQSxDQUNwQ0MsWUFDNEUsRUFDNUU7RUFDQSxNQUFNQyxNQUFNLEdBQUcsSUFBSUMsZUFBZSxDQUFDRixZQUFZLENBQUM7RUFDaERDLE1BQU0sQ0FBQ0UsSUFBSSxDQUFDLENBQUM7RUFDYixPQUFPRixNQUFNLENBQUNHLFFBQVEsQ0FBQyxDQUFDO0FBQzFCIiwiaWdub3JlTGlzdCI6W119
@@ -6,4 +6,4 @@ export default function paramsToString(searchParams) {
6
6
  } catch (_unused) {}
7
7
  return params.toString();
8
8
  }
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJhbXNUb1N0cmluZyIsInNlYXJjaFBhcmFtcyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsInNvcnQiLCJfdW51c2VkIiwidG9TdHJpbmciXSwic291cmNlcyI6WyIuLi9zcmMvcGFyYW1zVG9TdHJpbmcubmF0aXZlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHBhcmFtc1RvU3RyaW5nKFxuICBzZWFyY2hQYXJhbXM/OlxuICAgIHwgc3RyaW5nXG4gICAgfCBVUkxTZWFyY2hQYXJhbXNcbiAgICB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgICB8IHN0cmluZ1tdW11cbiAgICB8IHVuZGVmaW5lZCxcbikge1xuICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHNlYXJjaFBhcmFtcyBhcyBhbnkpO1xuICB0cnkge1xuICAgIHBhcmFtcy5zb3J0KCk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5XG4gIH0gY2F0Y2gge31cbiAgcmV0dXJuIHBhcmFtcy50b1N0cmluZygpO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxlQUFlLFNBQVNBLGNBQWNBLENBQ3BDQyxZQUthLEVBQ2I7RUFDQSxNQUFNQyxNQUFNLEdBQUcsSUFBSUMsZUFBZSxDQUFDRixZQUFtQixDQUFDO0VBQ3ZELElBQUk7SUFDRkMsTUFBTSxDQUFDRSxJQUFJLENBQUMsQ0FBQztJQUNiO0VBQ0YsQ0FBQyxDQUFDLE9BQUFDLE9BQUEsRUFBTSxDQUFDO0VBQ1QsT0FBT0gsTUFBTSxDQUFDSSxRQUFRLENBQUMsQ0FBQztBQUMxQiIsImlnbm9yZUxpc3QiOltdfQ==
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJhbXNUb1N0cmluZyIsInNlYXJjaFBhcmFtcyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsInNvcnQiLCJfdW51c2VkIiwidG9TdHJpbmciXSwic291cmNlcyI6WyIuLi9zcmMvcGFyYW1zVG9TdHJpbmcubmF0aXZlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHBhcmFtc1RvU3RyaW5nKFxuICBzZWFyY2hQYXJhbXM/OlxuICAgIHN0cmluZyB8IFVSTFNlYXJjaFBhcmFtcyB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBzdHJpbmdbXVtdIHwgdW5kZWZpbmVkLFxuKSB7XG4gIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoc2VhcmNoUGFyYW1zIGFzIGFueSk7XG4gIHRyeSB7XG4gICAgcGFyYW1zLnNvcnQoKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHlcbiAgfSBjYXRjaCB7fVxuICByZXR1cm4gcGFyYW1zLnRvU3RyaW5nKCk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsU0FBU0EsY0FBY0EsQ0FDcENDLFlBQzRFLEVBQzVFO0VBQ0EsTUFBTUMsTUFBTSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0YsWUFBbUIsQ0FBQztFQUN2RCxJQUFJO0lBQ0ZDLE1BQU0sQ0FBQ0UsSUFBSSxDQUFDLENBQUM7SUFDYjtFQUNGLENBQUMsQ0FBQyxPQUFBQyxPQUFBLEVBQU0sQ0FBQztFQUNULE9BQU9ILE1BQU0sQ0FBQ0ksUUFBUSxDQUFDLENBQUM7QUFDMUIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3BhdGhUeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIENsZWFuS2V5PFMgZXh0ZW5kcyBzdHJpbmc+ID0gUyBleHRlbmRzIGBcIiR7aW5mZXIgS31cImAgPyBLIDogUztcblxudHlwZSBLZXlOYW1lPEsgZXh0ZW5kcyBzdHJpbmc+ID0gQ2xlYW5LZXk8XG4gIEsgZXh0ZW5kcyBgKiR7aW5mZXIgTn19YCA/IE5cbiAgOiBLIGV4dGVuZHMgYCoke2luZmVyIE59YCA/IE5cbiAgOiBLIGV4dGVuZHMgYCR7aW5mZXIgTn19YCA/IE5cbiAgOiBLXG4+O1xuXG50eXBlIEtleVZhbDxLIGV4dGVuZHMgc3RyaW5nPiA9XG4gIEsgZXh0ZW5kcyBgKiR7c3RyaW5nfWAgPyBzdHJpbmdbXSA6IHN0cmluZyB8IG51bWJlcjtcblxuLyoqIFBhcmFtZXRlcnMgZm9yIGEgZ2l2ZW4gcGF0aCAqL1xuZXhwb3J0IHR5cGUgUGF0aEFyZ3M8UyBleHRlbmRzIHN0cmluZz4gPVxuICB1bmtub3duIGV4dGVuZHMgUyA/IGFueVxuICA6IFBhdGhLZXlzPFM+IGV4dGVuZHMgbmV2ZXIgP1xuICAgIC8vIHVua25vd24gaXMgaWRlbnRpdHkgZm9yIGludGVyc2VjdGlvbiAoJyYnKVxuICAgIHVua25vd25cbiAgOiBLZXlzVG9BcmdzPFBhdGhLZXlzPFM+PjtcblxuLyoqIExpa2Uge0BsaW5rIFBhdGhBcmdzfSBidXQgd2lkZW5lZCBgcGF0aDogc3RyaW5nYCBjb2xsYXBzZXMgdG8gYHVua25vd25gLFxuICogIHByZXZlbnRpbmcgYChwYXJhbXMsIGJvZHkpIHwgKGJvZHkpYCB1bmlvbiBvdmVybG9hZHMgaW4gUGFyYW1GZXRjaFdpdGhCb2R5LiAqL1xuZXhwb3J0IHR5cGUgU29mdFBhdGhBcmdzPFAgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgdW5rbm93biBleHRlbmRzIFAgPyBhbnlcbiAgOiBzdHJpbmcgZXh0ZW5kcyBQID8gdW5rbm93blxuICA6IFBhdGhBcmdzPFA+O1xuXG4vKiogQ29tcHV0ZXMgdGhlIHVuaW9uIG9mIGtleXMgZm9yIGEgcGF0aCBzdHJpbmcgKi9cbmV4cG9ydCB0eXBlIFBhdGhLZXlzPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBBfVxcXFwkeyc6JyB8ICcqJyB8ICd9J30ke2luZmVyIEJ9YCA/XG4gICAgUGF0aEtleXM8QT4gfCBQYXRoS2V5czxCPlxuICA6IFNwbGl0czxTLCAnOic+IHwgU3BsaXRzPFMsICcqJz47XG5cbnR5cGUgU3BsaXRzPFMgZXh0ZW5kcyBzdHJpbmcsIE0gZXh0ZW5kcyAnOicgfCAnKic+ID1cbiAgUyBleHRlbmRzIGAke3N0cmluZ30ke019JHtpbmZlciBLfSR7TX0ke2luZmVyIFJ9YCA/XG4gICAgU3BsaXRzPGAke019JHtLfWAsIE0+IHwgU3BsaXRzPGAke019JHtSfWAsIE0+XG4gIDogUyBleHRlbmRzIChcbiAgICBgJHtzdHJpbmd9JHtNfSR7aW5mZXIgS30keycvJyB8ICdcXFxcJyB8ICclJyB8ICcmJyB8ICcqJyB8ICc6JyB8ICd7JyB8ICc7JyB8ICcsJyB8ICchJyB8ICdAJ30ke2luZmVyIFJ9YFxuICApID9cbiAgICBTcGxpdHM8YCR7TX0ke0t9YCwgTT4gfCBTcGxpdHM8UiwgTT5cbiAgOiBTIGV4dGVuZHMgYCR7c3RyaW5nfSR7TX0ke2luZmVyIEt9YCA/XG4gICAgTSBleHRlbmRzICcqJyA/XG4gICAgICBgKiR7S31gXG4gICAgOiBLXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIEtleXNUb0FyZ3M8S2V5IGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW0sgaW4gS2V5IGFzIEsgZXh0ZW5kcyBgJHtzdHJpbmd9fWAgPyBLZXlOYW1lPEs+IDogbmV2ZXJdPzogS2V5VmFsPEs+O1xufSAmIChFeGNsdWRlPEtleSwgYCR7c3RyaW5nfX1gPiBleHRlbmRzIG5ldmVyID8gdW5rbm93blxuOiB7XG4gICAgW0sgaW4gS2V5IGFzIEsgZXh0ZW5kcyBgJHtzdHJpbmd9fWAgPyBuZXZlciA6IEtleU5hbWU8Sz5dOiBLZXlWYWw8Sz47XG4gIH0pO1xuXG5leHBvcnQgdHlwZSBQYXRoQXJnc0FuZFNlYXJjaDxTIGV4dGVuZHMgc3RyaW5nPiA9XG4gIHVua25vd24gZXh0ZW5kcyBTID8gYW55XG4gIDogRXhjbHVkZTxQYXRoS2V5czxTPiwgYCR7c3RyaW5nfX1gPiBleHRlbmRzIG5ldmVyID9cbiAgICBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZFxuICA6IHtcbiAgICAgIFtLIGluIFBhdGhLZXlzPFM+IGFzIEsgZXh0ZW5kcyBgJHtzdHJpbmd9fWAgPyBuZXZlclxuICAgICAgOiBLZXlOYW1lPEs+XTogS2V5VmFsPEs+O1xuICAgIH0gJiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBzdHJpbmdbXT47XG5cbi8qKiBSZW1vdmVzIHRoZSBsYXN0IDpwYXJhbSBvciAqd2lsZGNhcmQgdG9rZW4gKi9cbmV4cG9ydCB0eXBlIFNob3J0ZW5QYXRoPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBCfToke2luZmVyIFJ9YCA/IFRyaW1Ub2tlbjxgJHtCfToke1Nob3J0ZW5QYXRoPFI+fWA+XG4gIDogUyBleHRlbmRzIGAke2luZmVyIEJ9KiR7aW5mZXIgUn1gID8gVHJpbVRva2VuPGAke0J9KiR7U2hvcnRlblBhdGg8Uj59YD5cbiAgOiAnJztcblxudHlwZSBUcmltVG9rZW48UyBleHRlbmRzIHN0cmluZz4gPVxuICBzdHJpbmcgZXh0ZW5kcyBTID8gc3RyaW5nXG4gIDogUyBleHRlbmRzIGAke2luZmVyIFJ9OmAgPyBSXG4gIDogUyBleHRlbmRzIGAke2luZmVyIFJ9KmAgPyBSXG4gIDogUztcblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VQYXRoID0gc3RyaW5nOyAvLyBgJHtzdHJpbmd9OiR7c3RyaW5nfWA7IFRPRE86IE1heWJlIGRvIHRoaXMgaW4gdGhlIGZ1dHVyZT8gU2VlbXMgdG8gaGFyZCB0byB1bmRlcnN0YW5kIGZvciBub3dcbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3BhdGhUeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGUgbm9uLWBpbmZlcmAgcHJlLWNoZWNrcyBhcmUgbWF0Y2hlZCB3aXRob3V0IGluc3RhbnRpYXRpbmcgYW55IHR5cGVzLFxuLy8gc28gcGxhaW4ga2V5cyAodGhlIGNvbW1vbiBjYXNlKSBza2lwIHRoZSBpbmZlcnJpbmcgdGVtcGxhdGVzIGVudGlyZWx5LlxudHlwZSBDbGVhbktleTxTIGV4dGVuZHMgc3RyaW5nPiA9XG4gIFMgZXh0ZW5kcyBgXCIke3N0cmluZ31cImAgP1xuICAgIFMgZXh0ZW5kcyBgXCIke2luZmVyIEt9XCJgID9cbiAgICAgIEtcbiAgICA6IFNcbiAgOiBTO1xuXG50eXBlIEtleU5hbWU8SyBleHRlbmRzIHN0cmluZz4gPVxuICBLIGV4dGVuZHMgYCoke3N0cmluZ31gIHwgYCR7c3RyaW5nfX1gID9cbiAgICBDbGVhbktleTxcbiAgICAgIEsgZXh0ZW5kcyBgKiR7aW5mZXIgTn19YCA/IE5cbiAgICAgIDogSyBleHRlbmRzIGAqJHtpbmZlciBOfWAgPyBOXG4gICAgICA6IEsgZXh0ZW5kcyBgJHtpbmZlciBOfX1gID8gTlxuICAgICAgOiBLXG4gICAgPlxuICA6IENsZWFuS2V5PEs+O1xuXG50eXBlIEtleVZhbDxLIGV4dGVuZHMgc3RyaW5nPiA9XG4gIEsgZXh0ZW5kcyBgKiR7c3RyaW5nfWAgPyBzdHJpbmdbXSA6IHN0cmluZyB8IG51bWJlcjtcblxuLyoqIFBhcmFtZXRlcnMgZm9yIGEgZ2l2ZW4gcGF0aCAqL1xuZXhwb3J0IHR5cGUgUGF0aEFyZ3M8UyBleHRlbmRzIHN0cmluZz4gPVxuICB1bmtub3duIGV4dGVuZHMgUyA/IGFueVxuICA6IFBhdGhLZXlzPFM+IGV4dGVuZHMgbmV2ZXIgP1xuICAgIC8vIHVua25vd24gaXMgaWRlbnRpdHkgZm9yIGludGVyc2VjdGlvbiAoJyYnKVxuICAgIHVua25vd25cbiAgOiBLZXlzVG9BcmdzPFBhdGhLZXlzPFM+PjtcblxuLyoqIExpa2Uge0BsaW5rIFBhdGhBcmdzfSBidXQgd2lkZW5lZCBgcGF0aDogc3RyaW5nYCBjb2xsYXBzZXMgdG8gYHVua25vd25gLFxuICogIHByZXZlbnRpbmcgYChwYXJhbXMsIGJvZHkpIHwgKGJvZHkpYCB1bmlvbiBvdmVybG9hZHMgaW4gUGFyYW1GZXRjaFdpdGhCb2R5LiAqL1xuZXhwb3J0IHR5cGUgU29mdFBhdGhBcmdzPFAgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgdW5rbm93biBleHRlbmRzIFAgPyBhbnlcbiAgOiBzdHJpbmcgZXh0ZW5kcyBQID8gdW5rbm93blxuICA6IFBhdGhBcmdzPFA+O1xuXG4vKiogQ29tcHV0ZXMgdGhlIHVuaW9uIG9mIGtleXMgZm9yIGEgcGF0aCBzdHJpbmcgKi9cbmV4cG9ydCB0eXBlIFBhdGhLZXlzPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IC8vIGNoZWFwIChub24taW5mZXJyaW5nKSBwcmUtY2hlY2sgYmVmb3JlIHRoZSAzLXdheSBlc2NhcGUgc3BsaXRcbiAgUyBleHRlbmRzIGAke3N0cmluZ31cXFxcJHtzdHJpbmd9YCA/XG4gICAgUyBleHRlbmRzIGAke2luZmVyIEF9XFxcXCR7JzonIHwgJyonIHwgJ30nfSR7aW5mZXIgQn1gID9cbiAgICAgIFBhdGhLZXlzPEE+IHwgUGF0aEtleXM8Qj5cbiAgICA6IENvbG9uU3BsaXRzPFM+IHwgU3RhclNwbGl0czxTPlxuICA6IENvbG9uU3BsaXRzPFM+IHwgU3RhclNwbGl0czxTPjtcblxuLyoqIENoYXJhY3RlcnMgdGhhdCBlbmQgYSA6cGFyYW0gb3IgKndpbGRjYXJkIHRva2VuICovXG50eXBlIFBhdGhEZWxpbWl0ZXIgPVxuICAnLycgfCAnXFxcXCcgfCAnJScgfCAnJicgfCAnKicgfCAnOicgfCAneycgfCAnOycgfCAnLCcgfCAnIScgfCAnQCc7XG5cbi8qKiBUb2tlbiBhZnRlciBldmVyeSAnOicgaW4gUyAqL1xudHlwZSBDb2xvblNwbGl0czxTIGV4dGVuZHMgc3RyaW5nPiA9XG4gIFMgZXh0ZW5kcyBgJHtzdHJpbmd9OiR7aW5mZXIgS31gID8gUGF0aFRva2VuPEs+IHwgQ29sb25TcGxpdHM8Sz4gOiBuZXZlcjtcblxuLyoqIGAqYC1wcmVmaXhlZCB0b2tlbiBhZnRlciBldmVyeSAnKicgaW4gUyAqL1xudHlwZSBTdGFyU3BsaXRzPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgUyBleHRlbmRzIGAke3N0cmluZ30qJHtpbmZlciBLfWAgPyBgKiR7UGF0aFRva2VuPEs+fWAgfCBTdGFyU3BsaXRzPEs+IDogbmV2ZXI7XG5cbi8qKiBQcmVmaXggb2YgSyB1cCB0byAoZXhjbHVkaW5nKSBpdHMgZmlyc3QgUGF0aERlbGltaXRlci5cbiAqXG4gKiBGYXN0IHBhdGg6IG5vIGRlbGltaXRlciBhdCBhbGwsIG9yIHRoZSBmaXJzdCAnLycgZW5kcyBhIGRlbGltaXRlci1mcmVlIHRva2VuLlxuICogVGhlIGRlbGltaXRlci11bmlvbiB0ZW1wbGF0ZXMgd2l0aG91dCBgaW5mZXJgIGFyZSBtYXRjaGVkIHdpdGhvdXQgaW5zdGFudGlhdGlvbi4gKi9cbnR5cGUgUGF0aFRva2VuPEsgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgSyBleHRlbmRzIGAke3N0cmluZ30ke1BhdGhEZWxpbWl0ZXJ9JHtzdHJpbmd9YCA/XG4gICAgSyBleHRlbmRzIGAke2luZmVyIEh9LyR7c3RyaW5nfWAgP1xuICAgICAgSCBleHRlbmRzIGAke3N0cmluZ30ke1BhdGhEZWxpbWl0ZXJ9JHtzdHJpbmd9YCA/XG4gICAgICAgIFBhdGhUb2tlblNsb3c8SD5cbiAgICAgIDogSFxuICAgIDogUGF0aFRva2VuU2xvdzxLPlxuICA6IEs7XG5cbi8qKiBDdXRzIGF0IHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGVhY2ggZGVsaW1pdGVyICh1bmlvbik7IHJlY3Vyc2luZyBvbiBlYWNoXG4gKiBjYW5kaWRhdGUgY29udmVyZ2VzIG9uIHRoZSBzaG9ydGVzdCwgZGVsaW1pdGVyLWZyZWUgcHJlZml4LiAqL1xudHlwZSBQYXRoVG9rZW5TbG93PEsgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgSyBleHRlbmRzIGAke2luZmVyIEh9JHtQYXRoRGVsaW1pdGVyfSR7c3RyaW5nfWAgPyBQYXRoVG9rZW48SD4gOiBLO1xuXG5leHBvcnQgdHlwZSBLZXlzVG9BcmdzPEtleSBleHRlbmRzIHN0cmluZz4gPSBPcHRpb25hbEFyZ3M8S2V5PiAmXG4gIChSZXF1aXJlZFBhdGhLZXlzPEtleT4gZXh0ZW5kcyBuZXZlciA/IHVua25vd24gOiBSZXF1aXJlZEFyZ3M8S2V5Pik7XG5cbi8qKiBXaWRlIGtleXMgKGBzdHJpbmdgLCB0ZW1wbGF0ZSBwYXR0ZXJucykga2VlcCB0aGUgb3JpZ2luYWwga2V5LXJlbWFwcGluZ1xuICogZm9ybSBzbyBpbmRleCBzaWduYXR1cmVzIChhbmQgdGhlaXIgYGtleW9mYCkgc3RheSBleGFjdGx5IHRoZSBzYW1lLiAqL1xudHlwZSBIYXNXaWRlS2V5PEtleSBleHRlbmRzIHN0cmluZz4gPVxuICB0cnVlIGV4dGVuZHMgKFxuICAgIEtleSBleHRlbmRzIHN0cmluZyA/XG4gICAgICB7fSBleHRlbmRzIHsgW1AgaW4gS2V5XTogMSB9ID9cbiAgICAgICAgdHJ1ZVxuICAgICAgOiBuZXZlclxuICAgIDogbmV2ZXJcbiAgKSA/XG4gICAgdHJ1ZVxuICA6IGZhbHNlO1xuXG4vLyBMaXRlcmFsIGtleXM6IG1hcHBlZCBvdmVyIHRoZSBjb21wdXRlZCBuYW1lcyB3aXRob3V0IGFuIGBhc2AgY2xhdXNlLlxuLy8gYGFzYCBjbGF1c2VzIGdldCByZS1pbnN0YW50aWF0ZWQgZXZlcnkgdGltZSBUeXBlU2NyaXB0IGFza3Mgd2hldGhlciB0aGVcbi8vIG1hcHBlZCB0eXBlIGlzIGdlbmVyaWMgKG9uIGV2ZXJ5IHJlbGF0aW9uIGNoZWNrIG9mIGhvb2svZmV0Y2ggcGFyYW1zKS5cbi8vIEVhY2ggdmFsdWUgaXMgdGhlIEtleVZhbCBvZiB0aGUga2V5KHMpIG5hbWVkIE4gKGlubGluZWQgc28gZXJyb3JzIHNob3cgdGhlXG4vLyByZXNvbHZlZCB0eXBlIHJhdGhlciB0aGFuIGFuIGFsaWFzKS5cbnR5cGUgT3B0aW9uYWxBcmdzPEtleSBleHRlbmRzIHN0cmluZz4gPVxuICBIYXNXaWRlS2V5PEtleT4gZXh0ZW5kcyB0cnVlID9cbiAgICB7IFtLIGluIEtleSBhcyBLIGV4dGVuZHMgYCR7c3RyaW5nfX1gID8gS2V5TmFtZTxLPiA6IG5ldmVyXT86IEtleVZhbDxLPiB9XG4gIDoge1xuICAgICAgW04gaW4gS2V5TmFtZTxPcHRpb25hbFBhdGhLZXlzPEtleT4+XT86XG4gICAgICAgIHwgKE4gZXh0ZW5kcyBLZXlOYW1lPEV4dHJhY3Q8T3B0aW9uYWxQYXRoS2V5czxLZXk+LCBgKiR7c3RyaW5nfWA+PiA/XG4gICAgICAgICAgICBzdHJpbmdbXVxuICAgICAgICAgIDogbmV2ZXIpXG4gICAgICAgIHwgKE4gZXh0ZW5kcyBLZXlOYW1lPEV4Y2x1ZGU8T3B0aW9uYWxQYXRoS2V5czxLZXk+LCBgKiR7c3RyaW5nfWA+PiA/XG4gICAgICAgICAgICBzdHJpbmcgfCBudW1iZXJcbiAgICAgICAgICA6IG5ldmVyKTtcbiAgICB9O1xuXG50eXBlIFJlcXVpcmVkQXJnczxLZXkgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgSGFzV2lkZUtleTxLZXk+IGV4dGVuZHMgdHJ1ZSA/XG4gICAgeyBbSyBpbiBLZXkgYXMgSyBleHRlbmRzIGAke3N0cmluZ319YCA/IG5ldmVyIDogS2V5TmFtZTxLPl06IEtleVZhbDxLPiB9XG4gIDoge1xuICAgICAgW04gaW4gS2V5TmFtZTxSZXF1aXJlZFBhdGhLZXlzPEtleT4+XTpcbiAgICAgICAgfCAoTiBleHRlbmRzIEtleU5hbWU8RXh0cmFjdDxSZXF1aXJlZFBhdGhLZXlzPEtleT4sIGAqJHtzdHJpbmd9YD4+ID9cbiAgICAgICAgICAgIHN0cmluZ1tdXG4gICAgICAgICAgOiBuZXZlcilcbiAgICAgICAgfCAoTiBleHRlbmRzIEtleU5hbWU8RXhjbHVkZTxSZXF1aXJlZFBhdGhLZXlzPEtleT4sIGAqJHtzdHJpbmd9YD4+ID9cbiAgICAgICAgICAgIHN0cmluZyB8IG51bWJlclxuICAgICAgICAgIDogbmV2ZXIpO1xuICAgIH07XG5cbnR5cGUgT3B0aW9uYWxQYXRoS2V5czxLZXkgZXh0ZW5kcyBzdHJpbmc+ID0gRXh0cmFjdDxLZXksIGAke3N0cmluZ319YD47XG50eXBlIFJlcXVpcmVkUGF0aEtleXM8S2V5IGV4dGVuZHMgc3RyaW5nPiA9IEV4Y2x1ZGU8S2V5LCBgJHtzdHJpbmd9fWA+O1xuXG5leHBvcnQgdHlwZSBQYXRoQXJnc0FuZFNlYXJjaDxTIGV4dGVuZHMgc3RyaW5nPiA9XG4gIHVua25vd24gZXh0ZW5kcyBTID8gYW55XG4gIDogRXhjbHVkZTxQYXRoS2V5czxTPiwgYCR7c3RyaW5nfX1gPiBleHRlbmRzIG5ldmVyID9cbiAgICBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZFxuICA6IHtcbiAgICAgIFtcbiAgICAgICAgSyBpbiBQYXRoS2V5czxTPiBhcyBLIGV4dGVuZHMgYCR7c3RyaW5nfX1gID8gbmV2ZXIgOiBLZXlOYW1lPEs+XG4gICAgICBdOiBLZXlWYWw8Sz47XG4gICAgfSAmIFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZyB8IHN0cmluZ1tdPjtcblxuLyoqIFJlbW92ZXMgdGhlIGxhc3QgOnBhcmFtIG9yICp3aWxkY2FyZCB0b2tlbiAqL1xuZXhwb3J0IHR5cGUgU2hvcnRlblBhdGg8UyBleHRlbmRzIHN0cmluZz4gPVxuICBzdHJpbmcgZXh0ZW5kcyBTID8gc3RyaW5nXG4gIDogUyBleHRlbmRzIGAke2luZmVyIEJ9OiR7aW5mZXIgUn1gID8gVHJpbVRva2VuPGAke0J9OiR7U2hvcnRlblBhdGg8Uj59YD5cbiAgOiBTIGV4dGVuZHMgYCR7aW5mZXIgQn0qJHtpbmZlciBSfWAgPyBUcmltVG9rZW48YCR7Qn0qJHtTaG9ydGVuUGF0aDxSPn1gPlxuICA6ICcnO1xuXG50eXBlIFRyaW1Ub2tlbjxTIGV4dGVuZHMgc3RyaW5nPiA9XG4gIHN0cmluZyBleHRlbmRzIFMgPyBzdHJpbmdcbiAgOiBTIGV4dGVuZHMgYCR7aW5mZXIgUn06YCA/IFJcbiAgOiBTIGV4dGVuZHMgYCR7aW5mZXIgUn0qYCA/IFJcbiAgOiBTO1xuXG5leHBvcnQgdHlwZSBSZXNvdXJjZVBhdGggPSBzdHJpbmc7IC8vIGAke3N0cmluZ306JHtzdHJpbmd9YDsgVE9ETzogTWF5YmUgZG8gdGhpcyBpbiB0aGUgZnV0dXJlPyBTZWVtcyB0byBoYXJkIHRvIHVuZGVyc3RhbmQgZm9yIG5vd1xuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
@@ -48,9 +48,15 @@ This warning will not show in production.`);
48
48
  function extendMember(extended, key, options) {
49
49
  extended[key] = extended[key].extend(options);
50
50
  }
51
- const extraMutateOptions = _extends({}, extraOptions);
52
- const extraPartialOptions = _extends({}, extraOptions);
53
- const get = new Endpoint(_extends({}, extraOptions, {
51
+
52
+ // Loosely typed: the public signature infers O from the naked `O` position,
53
+ // so spreading the generic rest into `new Endpoint()` would otherwise leave
54
+ // ContentSchemaGuard<O> as an unresolvable (deferred) conditional.
55
+ // Retype this if a future TypeScript resolves that conditional here.
56
+ const extraBaseOptions = extraOptions;
57
+ const extraMutateOptions = _extends({}, extraBaseOptions);
58
+ const extraPartialOptions = _extends({}, extraBaseOptions);
59
+ const get = new Endpoint(_extends({}, extraBaseOptions, {
54
60
  path,
55
61
  schema,
56
62
  name: getName('get')
@@ -145,4 +151,4 @@ function optimisticDelete(snap, params) {
145
151
  function ensurePojo(body) {
146
152
  return body instanceof FormData ? Object.fromEntries(body.entries()) : body;
147
153
  }
148
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkludmFsaWRhdGUiLCJDb2xsZWN0aW9uIiwiQmFzZUNvbGxlY3Rpb24iLCJyZXNvdXJjZSIsIl9yZWYiLCJwYXRoIiwiRW5kcG9pbnQiLCJub25GaWx0ZXJBcmd1bWVudEtleXMiLCJvcHRpbWlzdGljIiwicGFnaW5hdGlvbkZpZWxkIiwiZXh0cmFPcHRpb25zIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJfZXhjbHVkZWQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJpc1Byb3RvdHlwZU9mIiwiY2FsbCIsImNvbnNvbGUiLCJ3YXJuIiwic2hvcnRlbmVkUGF0aCIsImdldE5hbWUiLCJuYW1lIiwiZXh0ZW5kTWVtYmVyIiwiZXh0ZW5kZWQiLCJrZXkiLCJvcHRpb25zIiwiZXh0ZW5kIiwiZXh0cmFNdXRhdGVPcHRpb25zIiwiX2V4dGVuZHMiLCJleHRyYVBhcnRpYWxPcHRpb25zIiwiZ2V0IiwiZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIiwib3B0aW1pc3RpY1VwZGF0ZSIsIm9wdGltaXN0aWNQYXJ0aWFsIiwiZ2V0TGlzdCIsIm1vdmVQYXRoIiwidW5kZWZpbmVkIiwicmV0IiwiY3JlYXRlIiwicHVzaCIsInVwZGF0ZSIsIm1ldGhvZCIsInBhcnRpYWxVcGRhdGUiLCJkZWxldGUiLCJfaG9pc3RhYmxlIiwicmVzIiwicGFyYW1zIiwia2V5cyIsImxlbmd0aCIsIm9wdGltaXN0aWNEZWxldGUiLCJhcmdzIiwib3ZlcnJpZGVzIiwic25hcCIsImJvZHkiLCJlbnN1cmVQb2pvIiwiZGF0YSIsImFib3J0IiwiRm9ybURhdGEiLCJmcm9tRW50cmllcyIsImVudHJpZXMiXSwic291cmNlcyI6WyIuLi9zcmMvcmVzb3VyY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcbmltcG9ydCB0eXBlIHsgU25hcHNob3RJbnRlcmZhY2UsIFF1ZXJ5YWJsZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB7XG4gIFJlc291cmNlR2VuZXJpY3MsXG4gIFJlc291cmNlT3B0aW9ucyxcbiAgUmVzb3VyY2UsXG4gIFJlc291cmNlSW50ZXJmYWNlLFxufSBmcm9tICcuL3Jlc291cmNlVHlwZXMuanMnO1xuaW1wb3J0IFJlc3RFbmRwb2ludCwge1xuICBHZXRFbmRwb2ludCxcbiAgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgUmVzdEVuZHBvaW50T3B0aW9ucyxcbiAgUmVzdEluc3RhbmNlQmFzZSxcbn0gZnJvbSAnLi9SZXN0RW5kcG9pbnQuanMnO1xuaW1wb3J0IHsgc2hvcnRlblBhdGggfSBmcm9tICcuL1Jlc3RIZWxwZXJzLmpzJztcblxuY29uc3QgeyBJbnZhbGlkYXRlLCBDb2xsZWN0aW9uOiBCYXNlQ29sbGVjdGlvbiB9ID0gc2NoZW1hO1xuXG4vKiogQ3JlYXRlcyBjb2xsZWN0aW9uIG9mIEVuZHBvaW50cyBmb3IgY29tbW9uIG9wZXJhdGlvbnMgb24gYSBnaXZlbiBkYXRhL3NjaGVtYS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXNvdXJjZTxPIGV4dGVuZHMgUmVzb3VyY2VHZW5lcmljcz4oe1xuICBwYXRoLFxuICBzY2hlbWEsXG4gIEVuZHBvaW50ID0gUmVzdEVuZHBvaW50LFxuICBDb2xsZWN0aW9uID0gQmFzZUNvbGxlY3Rpb24sXG4gIG5vbkZpbHRlckFyZ3VtZW50S2V5cyxcbiAgb3B0aW1pc3RpYyxcbiAgcGFnaW5hdGlvbkZpZWxkLFxuICAuLi5leHRyYU9wdGlvbnNcbn06IFJlYWRvbmx5PE8+ICYgUmVzb3VyY2VPcHRpb25zKTogUmVzb3VyY2U8Tz4ge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIC8vIGlmIHRoZXkgbG93ZXJjYXNlIGFuZCBpdCBsb29rcyBsaWtlIHRoZXkgbWVhbnQgdG8gdXNlIHVwcGVyLWNhc2UgdmVyc2lvblxuICAgIGlmIChcbiAgICAgICdlbmRwb2ludCcgaW4gZXh0cmFPcHRpb25zICYmXG4gICAgICBFbmRwb2ludCA9PT0gUmVzdEVuZHBvaW50ICYmXG4gICAgICB0eXBlb2YgZXh0cmFPcHRpb25zWydlbmRwb2ludCddID09PSAnZnVuY3Rpb24nICYmXG4gICAgICBleHRyYU9wdGlvbnNbJ2VuZHBvaW50J10gJiZcbiAgICAgIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5jYWxsKFxuICAgICAgICBSZXN0RW5kcG9pbnQucHJvdG90eXBlLFxuICAgICAgICAoZXh0cmFPcHRpb25zWydlbmRwb2ludCddIGFzIGFueSkucHJvdG90eXBlLFxuICAgICAgKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgWW91IHBhc3NlZCAnZW5kcG9pbnQnIG9wdGlvbjsgZGlkIHlvdSBtZWFuIHRvIHVzZSBFbmRwb2ludD9cbmh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNlbmRwb2ludFxuVGhpcyBwYXJhbWV0ZXIgbXVzdCBiZSBjYXBpdGFsaXplZC5cblxuVGhpcyB3YXJuaW5nIHdpbGwgbm90IHNob3cgaW4gcHJvZHVjdGlvbi5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgLy8gaWYgdGhleSBsb3dlcmNhc2UgYW5kIGl0IGxvb2tzIGxpa2UgdGhleSBtZWFudCB0byB1c2UgdXBwZXItY2FzZSB2ZXJzaW9uXG4gICAgaWYgKFxuICAgICAgJ2NvbGxlY3Rpb24nIGluIGV4dHJhT3B0aW9ucyAmJlxuICAgICAgQ29sbGVjdGlvbiA9PT0gQmFzZUNvbGxlY3Rpb24gJiZcbiAgICAgIHR5cGVvZiBleHRyYU9wdGlvbnNbJ2NvbGxlY3Rpb24nXSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgZXh0cmFPcHRpb25zWydjb2xsZWN0aW9uJ10gJiZcbiAgICAgIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5jYWxsKFxuICAgICAgICBCYXNlQ29sbGVjdGlvbi5wcm90b3R5cGUsXG4gICAgICAgIChleHRyYU9wdGlvbnNbJ2NvbGxlY3Rpb24nXSBhcyBhbnkpLnByb3RvdHlwZSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFlvdSBwYXNzZWQgJ2NvbGxlY3Rpb24nIG9wdGlvbjsgZGlkIHlvdSBtZWFuIHRvIHVzZSBDb2xsZWN0aW9uP1xuaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI2NvbGxlY3Rpb25cblRoaXMgcGFyYW1ldGVyIG11c3QgYmUgY2FwaXRhbGl6ZWQuXG5cblRoaXMgd2FybmluZyB3aWxsIG5vdCBzaG93IGluIHByb2R1Y3Rpb24uYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIGNvbnN0IHNob3J0ZW5lZFBhdGggPSBzaG9ydGVuUGF0aChwYXRoKTtcbiAgY29uc3QgZ2V0TmFtZSA9IChuYW1lOiBzdHJpbmcpID0+IGAkeyhzY2hlbWEgYXMgYW55KT8ubmFtZX0uJHtuYW1lfWA7XG4gIC8vIHRoaXMgYWNjb3VudHMgZm9yIGRlcml2YXRpdmUgZW5kcG9pbnRzXG4gIGZ1bmN0aW9uIGV4dGVuZE1lbWJlcihleHRlbmRlZDogYW55LCBrZXk6IHN0cmluZywgb3B0aW9uczogYW55KSB7XG4gICAgZXh0ZW5kZWRba2V5XSA9IGV4dGVuZGVkW2tleV0uZXh0ZW5kKG9wdGlvbnMpO1xuICB9XG5cbiAgY29uc3QgZXh0cmFNdXRhdGVPcHRpb25zID0geyAuLi5leHRyYU9wdGlvbnMgfTtcbiAgY29uc3QgZXh0cmFQYXJ0aWFsT3B0aW9ucyA9IHsgLi4uZXh0cmFPcHRpb25zIH07XG4gIGNvbnN0IGdldDogR2V0RW5kcG9pbnQ8eyBwYXRoOiBPWydwYXRoJ107IHNjaGVtYTogT1snc2NoZW1hJ10gfT4gPVxuICAgIG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYU9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbmFtZTogZ2V0TmFtZSgnZ2V0JyksXG4gICAgfSkgYXMgYW55O1xuICBpZiAob3B0aW1pc3RpYykge1xuICAgIChleHRyYU11dGF0ZU9wdGlvbnMgYXMgYW55KS5nZXRPcHRpbWlzdGljUmVzcG9uc2UgPSBvcHRpbWlzdGljVXBkYXRlO1xuICAgIC8vIFRPRE86IENoZWNrIHRoYXQgc2NoZW1hIGlzIGEgcXVlcnlhYmxlLCBvdGhlcndpc2UgdGhpcyBkb2Vzbid0IG1ha2Ugc2Vuc2VcbiAgICAoZXh0cmFQYXJ0aWFsT3B0aW9ucyBhcyBhbnkpLmdldE9wdGltaXN0aWNSZXNwb25zZSA9IG9wdGltaXN0aWNQYXJ0aWFsKFxuICAgICAgc2NoZW1hIGFzIGFueSxcbiAgICApO1xuICB9XG4gIGNvbnN0IGdldExpc3QgPSBuZXcgRW5kcG9pbnQoe1xuICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICBwYWdpbmF0aW9uRmllbGQ6IHBhZ2luYXRpb25GaWVsZCBhcyBzdHJpbmcsXG4gICAgbW92ZVBhdGg6IHBhdGgsXG4gICAgcGF0aDogc2hvcnRlbmVkUGF0aCxcbiAgICBzY2hlbWE6IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgW3NjaGVtYSBhcyBhbnldLFxuICAgICAgbm9uRmlsdGVyQXJndW1lbnRLZXlzID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiAoXG4gICAgICAgIHsgbm9uRmlsdGVyQXJndW1lbnRLZXlzIH1cbiAgICAgICksXG4gICAgKSxcbiAgICBuYW1lOiBnZXROYW1lKCdnZXRMaXN0JyksXG4gIH0pO1xuICBjb25zdCByZXQgPSB7XG4gICAgZ2V0LFxuICAgIGdldExpc3QsXG4gICAgLy8gVE9ETyhkZXByZWNhdGVkKTogcmVtb3ZlIHRoaXMgb25jZSB3ZSByZW1vdmUgY3JlYXRlc1xuICAgIGNyZWF0ZTogZ2V0TGlzdC5wdXNoLmV4dGVuZCh7IG5hbWU6IGdldE5hbWUoJ2NyZWF0ZScpIH0pLFxuICAgIHVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgndXBkYXRlJyksXG4gICAgfSksXG4gICAgLy8gVE9ETyhicmVha2luZyk6IE1vdmUgdG8gZ2V0TGlzdC5tb3ZlXG4gICAgcGFydGlhbFVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhUGFydGlhbE9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgncGFydGlhbFVwZGF0ZScpLFxuICAgIH0pLFxuICAgIGRlbGV0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWE6XG4gICAgICAgIC8vIEVudGl0eSB8fCBVbmlvblxuICAgICAgICAoc2NoZW1hIGFzIGFueSkucHJvY2VzcyB8fCAoc2NoZW1hIGFzIGFueSkuX2hvaXN0YWJsZSA/XG4gICAgICAgICAgbmV3IEludmFsaWRhdGUoc2NoZW1hIGFzIGFueSlcbiAgICAgICAgOiBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgnZGVsZXRlJyksXG4gICAgICBwcm9jZXNzKHJlczogYW55LCBwYXJhbXM6IGFueSkge1xuICAgICAgICByZXR1cm4gcmVzICYmIE9iamVjdC5rZXlzKHJlcykubGVuZ3RoID8gcmVzIDogcGFyYW1zO1xuICAgICAgfSxcbiAgICAgIGdldE9wdGltaXN0aWNSZXNwb25zZTogb3B0aW1pc3RpYyA/IChvcHRpbWlzdGljRGVsZXRlIGFzIGFueSkgOiB1bmRlZmluZWQsXG4gICAgfSksXG4gICAgZXh0ZW5kKFxuICAgICAgLi4uYXJnczpcbiAgICAgICAgfCBbc3RyaW5nLCBSZXN0RW5kcG9pbnRPcHRpb25zICYgUGFydGlhbFJlc3RHZW5lcmljc11cbiAgICAgICAgfCBbUmVzdEVuZHBvaW50T3B0aW9ucyAmIFBhcnRpYWxSZXN0R2VuZXJpY3NdXG4gICAgICAgIHwgW1xuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICBiYXNlUmVzb3VyY2U6IFJlc291cmNlSW50ZXJmYWNlLFxuICAgICAgICAgICAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBSZXN0SW5zdGFuY2VCYXNlPixcbiAgICAgICAgICBdXG4gICAgKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIG9wdGlvbnNdID0gYXJncztcbiAgICAgICAgaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgICAgY29uc3QgZXh0ZW5kZWQgPSB7IC4uLnRoaXMgfTtcbiAgICAgICAgICBleHRlbmRNZW1iZXIoZXh0ZW5kZWQsIGtleSwgb3B0aW9ucyk7XG4gICAgICAgICAgcmV0dXJuIGV4dGVuZGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgICAgW2tleV06IHRoaXMuZ2V0LmV4dGVuZChvcHRpb25zKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGV4dGVuZGVkID0gYXJnc1swXSh0aGlzKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgIC4uLmV4dGVuZGVkLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gYXJnc1swXTtcbiAgICAgIGNvbnN0IGV4dGVuZGVkID0geyAuLi50aGlzIH07XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBvdmVycmlkZXMpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGV4dGVuZE1lbWJlcihleHRlbmRlZCwga2V5LCBvdmVycmlkZXNba2V5XSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXh0ZW5kZWQ7XG4gICAgfSxcbiAgfSBhcyBhbnk7XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9wdGltaXN0aWNVcGRhdGUoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wYXJhbXMsXG4gICAgLi4uZW5zdXJlUG9qbyhib2R5KSxcbiAgfTtcbn1cbmZ1bmN0aW9uIG9wdGltaXN0aWNQYXJ0aWFsKHNjaGVtYTogUXVlcnlhYmxlKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgICBjb25zdCBkYXRhID0gc25hcC5nZXQoc2NoZW1hLCBwYXJhbXMpO1xuICAgIGlmICghZGF0YSkgdGhyb3cgc25hcC5hYm9ydDtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgLi4uZGF0YSxcbiAgICAgIC8vIGV2ZW4gdGhvIHdlIGRvbid0IGFsd2F5cyBoYXZlIHR3byBhcmd1bWVudHMsIHRoZSBleHRyYSBvbmUgd2lsbCBzaW1wbHkgYmUgdW5kZWZpbmVkIHdoaWNoIHNwcmVhZHMgZmluZVxuICAgICAgLi4uZW5zdXJlUG9qbyhib2R5KSxcbiAgICB9O1xuICB9O1xufVxuZnVuY3Rpb24gb3B0aW1pc3RpY0RlbGV0ZShzbmFwOiBTbmFwc2hvdEludGVyZmFjZSwgcGFyYW1zOiBhbnkpIHtcbiAgcmV0dXJuIHBhcmFtcztcbn1cbmZ1bmN0aW9uIGVuc3VyZVBvam8oYm9keTogYW55KSB7XG4gIHJldHVybiBib2R5IGluc3RhbmNlb2YgRm9ybURhdGEgP1xuICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKChib2R5IGFzIGFueSkuZW50cmllcygpKVxuICAgIDogYm9keTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsTUFBTSxRQUFRLHVCQUF1QjtBQVM5QyxPQUFPQyxZQUFZLE1BS1osbUJBQW1CO0FBQzFCLFNBQVNDLFdBQVcsUUFBUSxrQkFBa0I7QUFFOUMsTUFBTTtFQUFFQyxVQUFVO0VBQUVDLFVBQVUsRUFBRUM7QUFBZSxDQUFDLEdBQUdMLE1BQU07O0FBRXpEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxTQUFTTSxRQUFRQSxDQUFBQyxJQUFBLEVBU2U7RUFBQSxJQVRjO01BQzNEQyxJQUFJO01BQ0pSLE1BQU07TUFDTlMsUUFBUSxHQUFHUixZQUFZO01BQ3ZCRyxVQUFVLEdBQUdDLGNBQWM7TUFDM0JLLHFCQUFxQjtNQUNyQkMsVUFBVTtNQUNWQztJQUU2QixDQUFDLEdBQUFMLElBQUE7SUFEM0JNLFlBQVksR0FBQUMsNkJBQUEsQ0FBQVAsSUFBQSxFQUFBUSxTQUFBO0VBRWYsSUFBSUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7SUFDekM7SUFDQSxJQUNFLFVBQVUsSUFBSUwsWUFBWSxJQUMxQkosUUFBUSxLQUFLUixZQUFZLElBQ3pCLE9BQU9ZLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxVQUFVLElBQzlDQSxZQUFZLENBQUMsVUFBVSxDQUFDLElBQ3hCTSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsYUFBYSxDQUFDQyxJQUFJLENBQ2pDckIsWUFBWSxDQUFDbUIsU0FBUyxFQUNyQlAsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFTTyxTQUNwQyxDQUFDLEVBQ0Q7TUFDQUcsT0FBTyxDQUFDQyxJQUFJLENBQ1Y7QUFDUjtBQUNBO0FBQ0E7QUFDQSwwQ0FDTSxDQUFDO0lBQ0g7SUFDQTtJQUNBLElBQ0UsWUFB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
154
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkludmFsaWRhdGUiLCJDb2xsZWN0aW9uIiwiQmFzZUNvbGxlY3Rpb24iLCJyZXNvdXJjZSIsIl9yZWYiLCJwYXRoIiwiRW5kcG9pbnQiLCJub25GaWx0ZXJBcmd1bWVudEtleXMiLCJvcHRpbWlzdGljIiwicGFnaW5hdGlvbkZpZWxkIiwiZXh0cmFPcHRpb25zIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJfZXhjbHVkZWQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJpc1Byb3RvdHlwZU9mIiwiY2FsbCIsImNvbnNvbGUiLCJ3YXJuIiwic2hvcnRlbmVkUGF0aCIsImdldE5hbWUiLCJuYW1lIiwiZXh0ZW5kTWVtYmVyIiwiZXh0ZW5kZWQiLCJrZXkiLCJvcHRpb25zIiwiZXh0ZW5kIiwiZXh0cmFCYXNlT3B0aW9ucyIsImV4dHJhTXV0YXRlT3B0aW9ucyIsIl9leHRlbmRzIiwiZXh0cmFQYXJ0aWFsT3B0aW9ucyIsImdldCIsImdldE9wdGltaXN0aWNSZXNwb25zZSIsIm9wdGltaXN0aWNVcGRhdGUiLCJvcHRpbWlzdGljUGFydGlhbCIsImdldExpc3QiLCJtb3ZlUGF0aCIsInVuZGVmaW5lZCIsInJldCIsImNyZWF0ZSIsInB1c2giLCJ1cGRhdGUiLCJtZXRob2QiLCJwYXJ0aWFsVXBkYXRlIiwiZGVsZXRlIiwiX2hvaXN0YWJsZSIsInJlcyIsInBhcmFtcyIsImtleXMiLCJsZW5ndGgiLCJvcHRpbWlzdGljRGVsZXRlIiwiYXJncyIsIm92ZXJyaWRlcyIsInNuYXAiLCJib2R5IiwiZW5zdXJlUG9qbyIsImRhdGEiLCJhYm9ydCIsIkZvcm1EYXRhIiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIl0sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNjaGVtYSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5pbXBvcnQgdHlwZSB7IFNuYXBzaG90SW50ZXJmYWNlLCBRdWVyeWFibGUgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQge1xuICBSZXNvdXJjZUdlbmVyaWNzLFxuICBSZXNvdXJjZU9wdGlvbnMsXG4gIFJlc291cmNlLFxuICBSZXNvdXJjZUludGVyZmFjZSxcbn0gZnJvbSAnLi9yZXNvdXJjZVR5cGVzLmpzJztcbmltcG9ydCBSZXN0RW5kcG9pbnQsIHtcbiAgR2V0RW5kcG9pbnQsXG4gIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIFJlc3RFbmRwb2ludE9wdGlvbnMsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG59IGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcbmltcG9ydCB7IHNob3J0ZW5QYXRoIH0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbmNvbnN0IHsgSW52YWxpZGF0ZSwgQ29sbGVjdGlvbjogQmFzZUNvbGxlY3Rpb24gfSA9IHNjaGVtYTtcblxuLyoqIENyZWF0ZXMgY29sbGVjdGlvbiBvZiBFbmRwb2ludHMgZm9yIGNvbW1vbiBvcGVyYXRpb25zIG9uIGEgZ2l2ZW4gZGF0YS9zY2hlbWEuXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb3VyY2U8TyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3M+KHtcbiAgcGF0aCxcbiAgc2NoZW1hLFxuICBFbmRwb2ludCA9IFJlc3RFbmRwb2ludCxcbiAgQ29sbGVjdGlvbiA9IEJhc2VDb2xsZWN0aW9uLFxuICBub25GaWx0ZXJBcmd1bWVudEtleXMsXG4gIG9wdGltaXN0aWMsXG4gIHBhZ2luYXRpb25GaWVsZCxcbiAgLi4uZXh0cmFPcHRpb25zXG59OiBSZWFkb25seTxPPiAmIE8gJiBSZXNvdXJjZU9wdGlvbnMpOiBSZXNvdXJjZTxPPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gaWYgdGhleSBsb3dlcmNhc2UgYW5kIGl0IGxvb2tzIGxpa2UgdGhleSBtZWFudCB0byB1c2UgdXBwZXItY2FzZSB2ZXJzaW9uXG4gICAgaWYgKFxuICAgICAgJ2VuZHBvaW50JyBpbiBleHRyYU9wdGlvbnMgJiZcbiAgICAgIEVuZHBvaW50ID09PSBSZXN0RW5kcG9pbnQgJiZcbiAgICAgIHR5cGVvZiBleHRyYU9wdGlvbnNbJ2VuZHBvaW50J10gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIGV4dHJhT3B0aW9uc1snZW5kcG9pbnQnXSAmJlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmNhbGwoXG4gICAgICAgIFJlc3RFbmRwb2ludC5wcm90b3R5cGUsXG4gICAgICAgIChleHRyYU9wdGlvbnNbJ2VuZHBvaW50J10gYXMgYW55KS5wcm90b3R5cGUsXG4gICAgICApXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBZb3UgcGFzc2VkICdlbmRwb2ludCcgb3B0aW9uOyBkaWQgeW91IG1lYW4gdG8gdXNlIEVuZHBvaW50P1xuaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI2VuZHBvaW50XG5UaGlzIHBhcmFtZXRlciBtdXN0IGJlIGNhcGl0YWxpemVkLlxuXG5UaGlzIHdhcm5pbmcgd2lsbCBub3Qgc2hvdyBpbiBwcm9kdWN0aW9uLmAsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBpZiB0aGV5IGxvd2VyY2FzZSBhbmQgaXQgbG9va3MgbGlrZSB0aGV5IG1lYW50IHRvIHVzZSB1cHBlci1jYXNlIHZlcnNpb25cbiAgICBpZiAoXG4gICAgICAnY29sbGVjdGlvbicgaW4gZXh0cmFPcHRpb25zICYmXG4gICAgICBDb2xsZWN0aW9uID09PSBCYXNlQ29sbGVjdGlvbiAmJlxuICAgICAgdHlwZW9mIGV4dHJhT3B0aW9uc1snY29sbGVjdGlvbiddID09PSAnZnVuY3Rpb24nICYmXG4gICAgICBleHRyYU9wdGlvbnNbJ2NvbGxlY3Rpb24nXSAmJlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmNhbGwoXG4gICAgICAgIEJhc2VDb2xsZWN0aW9uLnByb3RvdHlwZSxcbiAgICAgICAgKGV4dHJhT3B0aW9uc1snY29sbGVjdGlvbiddIGFzIGFueSkucHJvdG90eXBlLFxuICAgICAgKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgWW91IHBhc3NlZCAnY29sbGVjdGlvbicgb3B0aW9uOyBkaWQgeW91IG1lYW4gdG8gdXNlIENvbGxlY3Rpb24/XG5odHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjY29sbGVjdGlvblxuVGhpcyBwYXJhbWV0ZXIgbXVzdCBiZSBjYXBpdGFsaXplZC5cblxuVGhpcyB3YXJuaW5nIHdpbGwgbm90IHNob3cgaW4gcHJvZHVjdGlvbi5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgY29uc3Qgc2hvcnRlbmVkUGF0aCA9IHNob3J0ZW5QYXRoKHBhdGgpO1xuICBjb25zdCBnZXROYW1lID0gKG5hbWU6IHN0cmluZykgPT4gYCR7KHNjaGVtYSBhcyBhbnkpPy5uYW1lfS4ke25hbWV9YDtcbiAgLy8gdGhpcyBhY2NvdW50cyBmb3IgZGVyaXZhdGl2ZSBlbmRwb2ludHNcbiAgZnVuY3Rpb24gZXh0ZW5kTWVtYmVyKGV4dGVuZGVkOiBhbnksIGtleTogc3RyaW5nLCBvcHRpb25zOiBhbnkpIHtcbiAgICBleHRlbmRlZFtrZXldID0gZXh0ZW5kZWRba2V5XS5leHRlbmQob3B0aW9ucyk7XG4gIH1cblxuICAvLyBMb29zZWx5IHR5cGVkOiB0aGUgcHVibGljIHNpZ25hdHVyZSBpbmZlcnMgTyBmcm9tIHRoZSBuYWtlZCBgT2AgcG9zaXRpb24sXG4gIC8vIHNvIHNwcmVhZGluZyB0aGUgZ2VuZXJpYyByZXN0IGludG8gYG5ldyBFbmRwb2ludCgpYCB3b3VsZCBvdGhlcndpc2UgbGVhdmVcbiAgLy8gQ29udGVudFNjaGVtYUd1YXJkPE8+IGFzIGFuIHVucmVzb2x2YWJsZSAoZGVmZXJyZWQpIGNvbmRpdGlvbmFsLlxuICAvLyBSZXR5cGUgdGhpcyBpZiBhIGZ1dHVyZSBUeXBlU2NyaXB0IHJlc29sdmVzIHRoYXQgY29uZGl0aW9uYWwgaGVyZS5cbiAgY29uc3QgZXh0cmFCYXNlT3B0aW9uczogUmVjb3JkPHN0cmluZywgYW55PiA9IGV4dHJhT3B0aW9ucztcbiAgY29uc3QgZXh0cmFNdXRhdGVPcHRpb25zID0geyAuLi5leHRyYUJhc2VPcHRpb25zIH07XG4gIGNvbnN0IGV4dHJhUGFydGlhbE9wdGlvbnMgPSB7IC4uLmV4dHJhQmFzZU9wdGlvbnMgfTtcbiAgY29uc3QgZ2V0OiBHZXRFbmRwb2ludDx7IHBhdGg6IE9bJ3BhdGgnXTsgc2NoZW1hOiBPWydzY2hlbWEnXSB9PiA9XG4gICAgbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhQmFzZU9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbmFtZTogZ2V0TmFtZSgnZ2V0JyksXG4gICAgfSkgYXMgYW55O1xuICBpZiAob3B0aW1pc3RpYykge1xuICAgIGV4dHJhTXV0YXRlT3B0aW9ucy5nZXRPcHRpbWlzdGljUmVzcG9uc2UgPSBvcHRpbWlzdGljVXBkYXRlO1xuICAgIC8vIFRPRE86IENoZWNrIHRoYXQgc2NoZW1hIGlzIGEgcXVlcnlhYmxlLCBvdGhlcndpc2UgdGhpcyBkb2Vzbid0IG1ha2Ugc2Vuc2VcbiAgICBleHRyYVBhcnRpYWxPcHRpb25zLmdldE9wdGltaXN0aWNSZXNwb25zZSA9IG9wdGltaXN0aWNQYXJ0aWFsKFxuICAgICAgc2NoZW1hIGFzIGFueSxcbiAgICApO1xuICB9XG4gIGNvbnN0IGdldExpc3QgPSBuZXcgRW5kcG9pbnQoe1xuICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICBwYWdpbmF0aW9uRmllbGQ6IHBhZ2luYXRpb25GaWVsZCBhcyBzdHJpbmcsXG4gICAgbW92ZVBhdGg6IHBhdGgsXG4gICAgcGF0aDogc2hvcnRlbmVkUGF0aCxcbiAgICBzY2hlbWE6IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgW3NjaGVtYSBhcyBhbnldLFxuICAgICAgbm9uRmlsdGVyQXJndW1lbnRLZXlzID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiAoXG4gICAgICAgIHsgbm9uRmlsdGVyQXJndW1lbnRLZXlzIH1cbiAgICAgICksXG4gICAgKSxcbiAgICBuYW1lOiBnZXROYW1lKCdnZXRMaXN0JyksXG4gIH0pO1xuICBjb25zdCByZXQgPSB7XG4gICAgZ2V0LFxuICAgIGdldExpc3QsXG4gICAgLy8gVE9ETyhkZXByZWNhdGVkKTogcmVtb3ZlIHRoaXMgb25jZSB3ZSByZW1vdmUgY3JlYXRlc1xuICAgIGNyZWF0ZTogZ2V0TGlzdC5wdXNoLmV4dGVuZCh7IG5hbWU6IGdldE5hbWUoJ2NyZWF0ZScpIH0pLFxuICAgIHVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgndXBkYXRlJyksXG4gICAgfSksXG4gICAgLy8gVE9ETyhicmVha2luZyk6IE1vdmUgdG8gZ2V0TGlzdC5tb3ZlXG4gICAgcGFydGlhbFVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhUGFydGlhbE9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgncGFydGlhbFVwZGF0ZScpLFxuICAgIH0pLFxuICAgIGRlbGV0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWE6XG4gICAgICAgIC8vIEVudGl0eSB8fCBVbmlvblxuICAgICAgICAoc2NoZW1hIGFzIGFueSkucHJvY2VzcyB8fCAoc2NoZW1hIGFzIGFueSkuX2hvaXN0YWJsZSA/XG4gICAgICAgICAgbmV3IEludmFsaWRhdGUoc2NoZW1hIGFzIGFueSlcbiAgICAgICAgOiBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgnZGVsZXRlJyksXG4gICAgICBwcm9jZXNzKHJlczogYW55LCBwYXJhbXM6IGFueSkge1xuICAgICAgICByZXR1cm4gcmVzICYmIE9iamVjdC5rZXlzKHJlcykubGVuZ3RoID8gcmVzIDogcGFyYW1zO1xuICAgICAgfSxcbiAgICAgIGdldE9wdGltaXN0aWNSZXNwb25zZTogb3B0aW1pc3RpYyA/IChvcHRpbWlzdGljRGVsZXRlIGFzIGFueSkgOiB1bmRlZmluZWQsXG4gICAgfSksXG4gICAgZXh0ZW5kKFxuICAgICAgLi4uYXJnczpcbiAgICAgICAgfCBbc3RyaW5nLCBSZXN0RW5kcG9pbnRPcHRpb25zICYgUGFydGlhbFJlc3RHZW5lcmljc11cbiAgICAgICAgfCBbUmVzdEVuZHBvaW50T3B0aW9ucyAmIFBhcnRpYWxSZXN0R2VuZXJpY3NdXG4gICAgICAgIHwgW1xuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICBiYXNlUmVzb3VyY2U6IFJlc291cmNlSW50ZXJmYWNlLFxuICAgICAgICAgICAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBSZXN0SW5zdGFuY2VCYXNlPixcbiAgICAgICAgICBdXG4gICAgKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIG9wdGlvbnNdID0gYXJncztcbiAgICAgICAgaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgICAgY29uc3QgZXh0ZW5kZWQgPSB7IC4uLnRoaXMgfTtcbiAgICAgICAgICBleHRlbmRNZW1iZXIoZXh0ZW5kZWQsIGtleSwgb3B0aW9ucyk7XG4gICAgICAgICAgcmV0dXJuIGV4dGVuZGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgICAgW2tleV06IHRoaXMuZ2V0LmV4dGVuZChvcHRpb25zKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGV4dGVuZGVkID0gYXJnc1swXSh0aGlzKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgIC4uLmV4dGVuZGVkLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gYXJnc1swXTtcbiAgICAgIGNvbnN0IGV4dGVuZGVkID0geyAuLi50aGlzIH07XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBvdmVycmlkZXMpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGV4dGVuZE1lbWJlcihleHRlbmRlZCwga2V5LCBvdmVycmlkZXNba2V5XSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXh0ZW5kZWQ7XG4gICAgfSxcbiAgfSBhcyBhbnk7XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9wdGltaXN0aWNVcGRhdGUoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wYXJhbXMsXG4gICAgLi4uZW5zdXJlUG9qbyhib2R5KSxcbiAgfTtcbn1cbmZ1bmN0aW9uIG9wdGltaXN0aWNQYXJ0aWFsKHNjaGVtYTogUXVlcnlhYmxlKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgICBjb25zdCBkYXRhID0gc25hcC5nZXQoc2NoZW1hLCBwYXJhbXMpO1xuICAgIGlmICghZGF0YSkgdGhyb3cgc25hcC5hYm9ydDtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgLi4uZGF0YSxcbiAgICAgIC8vIGV2ZW4gdGhvIHdlIGRvbid0IGFsd2F5cyBoYXZlIHR3byBhcmd1bWVudHMsIHRoZSBleHRyYSBvbmUgd2lsbCBzaW1wbHkgYmUgdW5kZWZpbmVkIHdoaWNoIHNwcmVhZHMgZmluZVxuICAgICAgLi4uZW5zdXJlUG9qbyhib2R5KSxcbiAgICB9O1xuICB9O1xufVxuZnVuY3Rpb24gb3B0aW1pc3RpY0RlbGV0ZShzbmFwOiBTbmFwc2hvdEludGVyZmFjZSwgcGFyYW1zOiBhbnkpIHtcbiAgcmV0dXJuIHBhcmFtcztcbn1cbmZ1bmN0aW9uIGVuc3VyZVBvam8oYm9keTogYW55KSB7XG4gIHJldHVybiBib2R5IGluc3RhbmNlb2YgRm9ybURhdGEgP1xuICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKChib2R5IGFzIGFueSkuZW50cmllcygpKVxuICAgIDogYm9keTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsTUFBTSxRQUFRLHVCQUF1QjtBQVM5QyxPQUFPQyxZQUFZLE1BS1osbUJBQW1CO0FBQzFCLFNBQVNDLFdBQVcsUUFBUSxrQkFBa0I7QUFFOUMsTUFBTTtFQUFFQyxVQUFVO0VBQUVDLFVBQVUsRUFBRUM7QUFBZSxDQUFDLEdBQUdMLE1BQU07O0FBRXpEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxTQUFTTSxRQUFRQSxDQUFBQyxJQUFBLEVBU21CO0VBQUEsSUFUVTtNQUMzREMsSUFBSTtNQUNKUixNQUFNO01BQ05TLFFBQVEsR0FBR1IsWUFBWTtNQUN2QkcsVUFBVSxHQUFHQyxjQUFjO01BQzNCSyxxQkFBcUI7TUFDckJDLFVBQVU7TUFDVkM7SUFFaUMsQ0FBQyxHQUFBTCxJQUFBO0lBRC9CTSxZQUFZLEdBQUFDLDZCQUFBLENBQUFQLElBQUEsRUFB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
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlRXh0ZW5kYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEVuZHBvaW50SW50ZXJmYWNlLFxuICBFbmRwb2ludFRvRnVuY3Rpb24sXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VQYXRoIH0gZnJvbSAnLi9wYXRoVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBSZXNvdXJjZUV4dGVuc2lvbixcbiAgUmVzb3VyY2VFbmRwb2ludEV4dGVuc2lvbnMsXG4gIEN1c3RvbVJlc291cmNlLFxuICBFeHRlbmRlZFJlc291cmNlLFxufSBmcm9tICcuL3Jlc291cmNlRXh0ZW5zaW9uVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBSZXNvdXJjZSxcbiAgUmVzb3VyY2VHZW5lcmljcyxcbiAgUmVzb3VyY2VJbnRlcmZhY2UsXG59IGZyb20gJy4vcmVzb3VyY2VUeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIFJlc3RFbmRwb2ludEV4dGVuZE9wdGlvbnMsXG4gIFJlc3RFeHRlbmRlZEVuZHBvaW50LFxuICBSZXN0SW5zdGFuY2VCYXNlLFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kYWJsZTxcbiAgTyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3MgPSB7IHBhdGg6IFJlc291cmNlUGF0aDsgc2NoZW1hOiBhbnkgfSxcbj4ge1xuICAvKiogQWxsb3dzIGN1c3RvbWl6aW5nIGluZGl2aWR1YWwgZW5kcG9pbnRzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI2V4dGVuZFxuICAgKi9cbiAgZXh0ZW5kPFxuICAgIFIgZXh0ZW5kcyB7XG4gICAgICBbSyBpbiBFeHRlbmRLZXldOiBSZXN0SW5zdGFuY2VCYXNlO1xuICAgIH0sXG4gICAgY29uc3QgRXh0ZW5kS2V5IGV4dGVuZHMgRXhjbHVkZTxFeHRyYWN0PGtleW9mIFIsIHN0cmluZz4sICdleHRlbmQnPixcbiAgICAvLyBUT0RPOiBzZWUgUmVzdEVuZHBvaW50LmV4dGVuZCBUT0RPXG4gICAgRXh0ZW5kT3B0aW9ucyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgfCB7fSxcbiAgPihcbiAgICB0aGlzOiBSLFxuICAgIGtleTogRXh0ZW5kS2V5LFxuICAgIG9wdGlvbnM6IFJlYWRvbmx5PFxuICAgICAgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgICAgICAgRXh0ZW5kT3B0aW9ucyxcbiAgICAgICAgUltFeHRlbmRLZXldLFxuICAgICAgICBFbmRwb2ludFRvRnVuY3Rpb248UltFeHRlbmRLZXldPlxuICAgICAgPiAmXG4gICAgICAgIEV4dGVuZE9wdGlvbnNcbiAgICA+LFxuICApOiBSZXNvdXJjZUV4dGVuc2lvbjxSLCBFeHRlbmRLZXksIEV4dGVuZE9wdGlvbnM+O1xuICBleHRlbmQ8XG4gICAgUiBleHRlbmRzIHsgZ2V0OiBSZXN0SW5zdGFuY2VCYXNlIH0sXG4gICAgY29uc3QgRXh0ZW5kS2V5IGV4dGVuZHMgc3RyaW5nLFxuICAgIC8vIFRPRE86IHNlZSBSZXN0RW5kcG9pbnQuZXh0ZW5kIFRPRE9cbiAgICBFeHRlbmRPcHRpb25zIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9LFxuICA+KFxuICAgIHRoaXM6IFIsXG4gICAga2V5OiBFeHRlbmRLZXksXG4gICAgb3B0aW9uczogUmVhZG9ubHk8XG4gICAgICBSZXN0RW5kcG9pbnRFeHRlbmRPcHRpb25zPFxuICAgICAgICBFeHRlbmRPcHRpb25zLFxuICAgICAgICBSWydnZXQnXSxcbiAgICAgICAgRW5kcG9pbnRUb0Z1bmN0aW9uPFJbJ2dldCddPlxuICAgICAgPiAmXG4gICAgICAgIEV4dGVuZE9wdGlvbnNcbiAgICA+LFxuICApOiBSICYge1xuICAgIFtrZXkgaW4gRXh0ZW5kS2V5XTogUmVzdEV4dGVuZGVkRW5kcG9pbnQ8RXh0ZW5kT3B0aW9ucywgUlsnZ2V0J10+O1xuICB9O1xuICBleHRlbmQ8XG4gICAgUiBleHRlbmRzIFJlc291cmNlSW50ZXJmYWNlLFxuICAgIEdldCBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgPSB7fSxcbiAgICBHZXRMaXN0IGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyA9IHt9LFxuICAgIFVwZGF0ZSBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgPSB7fSxcbiAgICBQYXJ0aWFsVXBkYXRlIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyA9IHt9LFxuICAgIERlbGV0ZSBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgPSB7fSxcbiAgPihcbiAgICB0aGlzOiBSLFxuICAgIG9wdGlvbnM6IFJlc291cmNlRW5kcG9pbnRFeHRlbnNpb25zPFxuICAgICAgUixcbiAgICAgIEdldCxcbiAgICAgIEdldExpc3QsXG4gICAgICBVcGRhdGUsXG4gICAgICBQYXJ0aWFsVXBkYXRlLFxuICAgICAgRGVsZXRlXG4gICAgPixcbiAgKTogQ3VzdG9tUmVzb3VyY2U8UiwgTywgR2V0LCBHZXRMaXN0LCBVcGRhdGUsIFBhcnRpYWxVcGRhdGUsIERlbGV0ZT47XG4gIGV4dGVuZDxcbiAgICBSIGV4dGVuZHMgUmVzb3VyY2VJbnRlcmZhY2UsXG4gICAgVCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIEVuZHBvaW50SW50ZXJmYWNlPixcbiAgPihcbiAgICB0aGlzOiBSLFxuICAgIGV4dGVuZGVyOiAoYmFzZVJlc291cmNlOiBSKSA9PiBULFxuICApOiBFeHRlbmRlZFJlc291cmNlPFIsIFQ+O1xufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlRXh0ZW5kYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEVuZHBvaW50SW50ZXJmYWNlLFxuICBFbmRwb2ludFRvRnVuY3Rpb24sXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VQYXRoIH0gZnJvbSAnLi9wYXRoVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBSZXNvdXJjZUV4dGVuc2lvbixcbiAgUmVzb3VyY2VFbmRwb2ludEV4dGVuc2lvbnMsXG4gIEN1c3RvbVJlc291cmNlLFxuICBFeHRlbmRlZFJlc291cmNlLFxufSBmcm9tICcuL3Jlc291cmNlRXh0ZW5zaW9uVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBSZXNvdXJjZSxcbiAgUmVzb3VyY2VHZW5lcmljcyxcbiAgUmVzb3VyY2VJbnRlcmZhY2UsXG59IGZyb20gJy4vcmVzb3VyY2VUeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEV4dGVuZGFibGVSZXN0R2VuZXJpY3MsXG4gIFJlc3RFbmRwb2ludEV4dGVuZE9wdGlvbnMsXG4gIFJlc3RFeHRlbmRlZEVuZHBvaW50LFxuICBSZXN0SW5zdGFuY2VCYXNlLFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kYWJsZTxcbiAgTyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3MgPSB7IHBhdGg6IFJlc291cmNlUGF0aDsgc2NoZW1hOiBhbnkgfSxcbj4ge1xuICAvKiogQWxsb3dzIGN1c3RvbWl6aW5nIGluZGl2aWR1YWwgZW5kcG9pbnRzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI2V4dGVuZFxuICAgKi9cbiAgZXh0ZW5kPFxuICAgIFIgZXh0ZW5kcyB7XG4gICAgICBbSyBpbiBFeHRlbmRLZXldOiBSZXN0SW5zdGFuY2VCYXNlO1xuICAgIH0sXG4gICAgY29uc3QgRXh0ZW5kS2V5IGV4dGVuZHMgRXhjbHVkZTxFeHRyYWN0PGtleW9mIFIsIHN0cmluZz4sICdleHRlbmQnPixcbiAgICAvLyBUT0RPOiBzZWUgUmVzdEVuZHBvaW50LmV4dGVuZCBUT0RPXG4gICAgRXh0ZW5kT3B0aW9ucyBleHRlbmRzIEV4dGVuZGFibGVSZXN0R2VuZXJpY3MgfCB7fSxcbiAgPihcbiAgICB0aGlzOiBSLFxuICAgIGtleTogRXh0ZW5kS2V5LFxuICAgIG9wdGlvbnM6IFJlYWRvbmx5PFxuICAgICAgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgICAgICAgRXh0ZW5kT3B0aW9ucyxcbiAgICAgICAgUltFeHRlbmRLZXldLFxuICAgICAgICBFbmRwb2ludFRvRnVuY3Rpb248UltFeHRlbmRLZXldPlxuICAgICAgPiAmXG4gICAgICAgIEV4dGVuZE9wdGlvbnNcbiAgICA+ICZcbiAgICAgIEV4dGVuZE9wdGlvbnMsXG4gICk6IFJlc291cmNlRXh0ZW5zaW9uPFIsIEV4dGVuZEtleSwgRXh0ZW5kT3B0aW9ucz47XG4gIGV4dGVuZDxcbiAgICBSIGV4dGVuZHMgeyBnZXQ6IFJlc3RJbnN0YW5jZUJhc2UgfSxcbiAgICBjb25zdCBFeHRlbmRLZXkgZXh0ZW5kcyBzdHJpbmcsXG4gICAgLy8gVE9ETzogc2VlIFJlc3RFbmRwb2ludC5leHRlbmQgVE9ET1xuICAgIEV4dGVuZE9wdGlvbnMgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzIHwge30sXG4gID4oXG4gICAgdGhpczogUixcbiAgICBrZXk6IEV4dGVuZEtleSxcbiAgICBvcHRpb25zOiBSZWFkb25seTxcbiAgICAgIFJlc3RFbmRwb2ludEV4dGVuZE9wdGlvbnM8XG4gICAgICAgIEV4dGVuZE9wdGlvbnMsXG4gICAgICAgIFJbJ2dldCddLFxuICAgICAgICBFbmRwb2ludFRvRnVuY3Rpb248UlsnZ2V0J10+XG4gICAgICA+ICZcbiAgICAgICAgRXh0ZW5kT3B0aW9uc1xuICAgID4gJlxuICAgICAgRXh0ZW5kT3B0aW9ucyxcbiAgKTogUiAmIHtcbiAgICBba2V5IGluIEV4dGVuZEtleV06IFJlc3RFeHRlbmRlZEVuZHBvaW50PEV4dGVuZE9wdGlvbnMsIFJbJ2dldCddPjtcbiAgfTtcbiAgZXh0ZW5kPFxuICAgIFIgZXh0ZW5kcyBSZXNvdXJjZUludGVyZmFjZSxcbiAgICBHZXQgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzID0ge30sXG4gICAgR2V0TGlzdCBleHRlbmRzIEV4dGVuZGFibGVSZXN0R2VuZXJpY3MgPSB7fSxcbiAgICBVcGRhdGUgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzID0ge30sXG4gICAgUGFydGlhbFVwZGF0ZSBleHRlbmRzIEV4dGVuZGFibGVSZXN0R2VuZXJpY3MgPSB7fSxcbiAgICBEZWxldGUgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzID0ge30sXG4gID4oXG4gICAgdGhpczogUixcbiAgICBvcHRpb25zOiBSZXNvdXJjZUVuZHBvaW50RXh0ZW5zaW9uczxcbiAgICAgIFIsXG4gICAgICBHZXQsXG4gICAgICBHZXRMaXN0LFxuICAgICAgVXBkYXRlLFxuICAgICAgUGFydGlhbFVwZGF0ZSxcbiAgICAgIERlbGV0ZVxuICAgID4sXG4gICk6IEN1c3RvbVJlc291cmNlPFIsIE8sIEdldCwgR2V0TGlzdCwgVXBkYXRlLCBQYXJ0aWFsVXBkYXRlLCBEZWxldGU+ICZcbiAgICAvLyBrZWVwcyBtZW1iZXJzIGxpa2UgdGhvc2UgYWRkZWQgYnkgZXh0ZW5kKCdrZXknLCBvcHRpb25zKVxuICAgIE9taXQ8Uiwga2V5b2YgUmVzb3VyY2VJbnRlcmZhY2UgfCAnZXh0ZW5kJz47XG4gIGV4dGVuZDxcbiAgICBSIGV4dGVuZHMgUmVzb3VyY2VJbnRlcmZhY2UsXG4gICAgVCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIEVuZHBvaW50SW50ZXJmYWNlPixcbiAgPihcbiAgICB0aGlzOiBSLFxuICAgIGV4dGVuZGVyOiAoYmFzZVJlc291cmNlOiBSKSA9PiBULFxuICApOiBFeHRlbmRlZFJlc291cmNlPFIsIFQ+O1xufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlRXh0ZW5zaW9uVHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBFbmRwb2ludEludGVyZmFjZSxcbiAgRW5kcG9pbnRUb0Z1bmN0aW9uLFxufSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgeyBPcHRpb25zVG9GdW5jdGlvbiB9IGZyb20gJy4vT3B0aW9uc1RvRnVuY3Rpb24uanMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVBhdGggfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFeHRlbmRhYmxlIH0gZnJvbSAnLi9yZXNvdXJjZUV4dGVuZGFibGUuanMnO1xuaW1wb3J0IHsgUmVzb3VyY2VHZW5lcmljcywgUmVzb3VyY2VJbnRlcmZhY2UgfSBmcm9tICcuL3Jlc291cmNlVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBSZXN0RXh0ZW5kZWRFbmRwb2ludCxcbiAgUmVzdEluc3RhbmNlQmFzZSxcbiAgUmVzdEVuZHBvaW50T3B0aW9ucyxcbn0gZnJvbSAnLi9SZXN0RW5kcG9pbnQuanMnO1xuXG5leHBvcnQgdHlwZSBSZXNvdXJjZUV4dGVuc2lvbjxcbiAgUiBleHRlbmRzIHsgW0sgaW4gRXh0ZW5kS2V5XTogUmVzdEluc3RhbmNlQmFzZSB9LFxuICBFeHRlbmRLZXkgZXh0ZW5kcyBFeGNsdWRlPEV4dHJhY3Q8a2V5b2YgUiwgc3RyaW5nPiwgJ2V4dGVuZCc+LFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9LFxuPiA9IHtcbiAgW0sgaW4ga2V5b2YgUl06IEsgZXh0ZW5kcyBFeHRlbmRLZXkgPyBSZXN0RXh0ZW5kZWRFbmRwb2ludDxPLCBSW0tdPiA6IFJbS107XG59O1xuXG4vKiogUmVzb3VyY2Ugd2l0aCBpbmRpdmlkdWFsIGVuZHBvaW50cyBjdXN0b21pemVkXG4gKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVJlc291cmNlPFxuICBSIGV4dGVuZHMgUmVzb3VyY2VJbnRlcmZhY2UsXG4gIE8gZXh0ZW5kcyBSZXNvdXJjZUdlbmVyaWNzID0geyBwYXRoOiBSZXNvdXJjZVBhdGg7IHNjaGVtYTogYW55IH0sXG4gIEdldCBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgfCB7fSA9IGFueSxcbiAgR2V0TGlzdCBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgfCB7fSA9IGFueSxcbiAgVXBkYXRlIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9ID0gYW55LFxuICBQYXJ0aWFsVXBkYXRlIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9ID0gYW55LFxuICBEZWxldGUgZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzIHwge30gPSBhbnksXG4+IGV4dGVuZHMgRXh0ZW5kYWJsZTxPPiB7XG4gIC8vIHVua25vd24gb25seSBleHRlbmRzIGFueS4gdGhpcyBhbGxvd3MgdXMgdG8gbWF0Y2ggZXhjbHVzaXZlbHkgb24gbWVtYmVycyBub3Qgc2V0XG4gIGdldDogdW5rbm93biBleHRlbmRzIEdldCA/IFJbJ2dldCddXG4gIDogUGFydGlhbFJlc3RHZW5lcmljcyBleHRlbmRzIEdldCA/IFJbJ2dldCddXG4gIDogUmVzdEV4dGVuZGVkRW5kcG9pbnQ8R2V0LCBSWydnZXQnXT47XG4gIGdldExpc3Q6IHVua25vd24gZXh0ZW5kcyBHZXRMaXN0ID8gUlsnZ2V0TGlzdCddXG4gIDogUGFydGlhbFJlc3RHZW5lcmljcyBleHRlbmRzIEdldExpc3QgPyBSWydnZXRMaXN0J11cbiAgOiBSZXN0RXh0ZW5kZWRFbmRwb2ludDxHZXRMaXN0LCBSWydnZXRMaXN0J10+O1xuICB1cGRhdGU6IHVua25vd24gZXh0ZW5kcyBVcGRhdGUgPyBSWyd1cGRhdGUnXVxuICA6IFBhcnRpYWxSZXN0R2VuZXJpY3MgZXh0ZW5kcyBVcGRhdGUgPyBSWyd1cGRhdGUnXVxuICA6IFJlc3RFeHRlbmRlZEVuZHBvaW50PFVwZGF0ZSwgUlsndXBkYXRlJ10+O1xuICBwYXJ0aWFsVXBkYXRlOiB1bmtub3duIGV4dGVuZHMgUGFydGlhbFVwZGF0ZSA/IFJbJ3BhcnRpYWxVcGRhdGUnXVxuICA6IFBhcnRpYWxSZXN0R2VuZXJpY3MgZXh0ZW5kcyBQYXJ0aWFsVXBkYXRlID8gUlsncGFydGlhbFVwZGF0ZSddXG4gIDogUmVzdEV4dGVuZGVkRW5kcG9pbnQ8UGFydGlhbFVwZGF0ZSwgUlsncGFydGlhbFVwZGF0ZSddPjtcbiAgZGVsZXRlOiB1bmtub3duIGV4dGVuZHMgRGVsZXRlID8gUlsnZGVsZXRlJ11cbiAgOiBQYXJ0aWFsUmVzdEdlbmVyaWNzIGV4dGVuZHMgRGVsZXRlID8gUlsnZGVsZXRlJ11cbiAgOiBSZXN0RXh0ZW5kZWRFbmRwb2ludDxEZWxldGUsIFJbJ2RlbGV0ZSddPjtcbn1cblxuZXhwb3J0IHR5cGUgRXh0ZW5kZWRSZXNvdXJjZTxcbiAgUiBleHRlbmRzIFJlc291cmNlSW50ZXJmYWNlLFxuICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgRW5kcG9pbnRJbnRlcmZhY2U+LFxuPiA9IE9taXQ8Uiwga2V5b2YgVD4gJiBUO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlRW5kcG9pbnRFeHRlbnNpb25zPFxuICBSIGV4dGVuZHMgUmVzb3VyY2VJbnRlcmZhY2UsXG4gIEdldCBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgPSB7fSxcbiAgR2V0TGlzdCBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgPSB7fSxcbiAgVXBkYXRlIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyA9IHt9LFxuICBQYXJ0aWFsVXBkYXRlIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyA9IHt9LFxuICBEZWxldGUgZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzID0ge30sXG4+IHtcbiAgcmVhZG9ubHkgZ2V0PzogUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgICB1bmtub3duIGV4dGVuZHMgR2V0ID8gRW5kcG9pbnRUb0Z1bmN0aW9uPFJbJ2dldCddPlxuICAgIDogT3B0aW9uc1RvRnVuY3Rpb248R2V0LCBSWydnZXQnXSwgRW5kcG9pbnRUb0Z1bmN0aW9uPFJbJ2dldCddPj4sXG4gICAgUlsnZ2V0J11bJ3NjaGVtYSddXG4gID4gJlxuICAgIFJlYWRvbmx5PEdldD47XG4gIHJlYWRvbmx5IGdldExpc3Q/OiBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICAgIHVua25vd24gZXh0ZW5kcyBHZXRMaXN0ID8gRW5kcG9pbnRUb0Z1bmN0aW9uPFJbJ2dldExpc3QnXT5cbiAgICA6IE9wdGlvbnNUb0Z1bmN0aW9uPFxuICAgICAgICBHZXRMaXN0LFxuICAgICAgICBSWydnZXRMaXN0J10sXG4gICAgICAgIEVuZHBvaW50VG9GdW5jdGlvbjxSWydnZXRMaXN0J10+XG4gICAgICA+LFxuICAgIFJbJ2dldExpc3QnXVsnc2NoZW1hJ11cbiAgPiAmXG4gICAgUmVhZG9ubHk8R2V0TGlzdD47XG4gIHJlYWRvbmx5IHVwZGF0ZT86IFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gICAgdW5rbm93biBleHRlbmRzIFVwZGF0ZSA/IEVuZHBvaW50VG9GdW5jdGlvbjxSWyd1cGRhdGUnXT5cbiAgICA6IE9wdGlvbnNUb0Z1bmN0aW9uPFVwZGF0ZSwgUlsndXBkYXRlJ10sIEVuZHBvaW50VG9GdW5jdGlvbjxSWyd1cGRhdGUnXT4+LFxuICAgIFJbJ3VwZGF0ZSddWydzY2hlbWEnXVxuICA+ICZcbiAgICBSZWFkb25seTxVcGRhdGU+O1xuICByZWFkb25seSBwYXJ0aWFsVXBkYXRlPzogUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgICB1bmtub3duIGV4dGVuZHMgUGFydGlhbFVwZGF0ZSA/IEVuZHBvaW50VG9GdW5jdGlvbjxSWydwYXJ0aWFsVXBkYXRlJ10+XG4gICAgOiBPcHRpb25zVG9GdW5jdGlvbjxcbiAgICAgICAgUGFydGlhbFVwZGF0ZSxcbiAgICAgICAgUlsncGFydGlhbFVwZGF0ZSddLFxuICAgICAgICBFbmRwb2ludFRvRnVuY3Rpb248UlsncGFydGlhbFVwZGF0ZSddPlxuICAgICAgPixcbiAgICBSWydwYXJ0aWFsVXBkYXRlJ11bJ3NjaGVtYSddXG4gID4gJlxuICAgIFJlYWRvbmx5PFBhcnRpYWxVcGRhdGU+O1xuICByZWFkb25seSBkZWxldGU/OiBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICAgIHVua25vd24gZXh0ZW5kcyBEZWxldGUgPyBFbmRwb2ludFRvRnVuY3Rpb248UlsnZGVsZXRlJ10+XG4gICAgOiBPcHRpb25zVG9GdW5jdGlvbjxEZWxldGUsIFJbJ2RlbGV0ZSddLCBFbmRwb2ludFRvRnVuY3Rpb248UlsnZGVsZXRlJ10+PixcbiAgICBSWydkZWxldGUnXVsnc2NoZW1hJ11cbiAgPiAmXG4gICAgUmVhZG9ubHk8RGVsZXRlPjtcbn1cbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlRXh0ZW5zaW9uVHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBFbmRwb2ludEludGVyZmFjZSxcbiAgRW5kcG9pbnRUb0Z1bmN0aW9uLFxufSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgeyBPcHRpb25zVG9GdW5jdGlvbiB9IGZyb20gJy4vT3B0aW9uc1RvRnVuY3Rpb24uanMnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZVBhdGggfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFeHRlbmRhYmxlIH0gZnJvbSAnLi9yZXNvdXJjZUV4dGVuZGFibGUuanMnO1xuaW1wb3J0IHsgUmVzb3VyY2VHZW5lcmljcywgUmVzb3VyY2VJbnRlcmZhY2UgfSBmcm9tICcuL3Jlc291cmNlVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzLFxuICBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBSZXN0RXh0ZW5kZWRFbmRwb2ludCxcbiAgUmVzdEluc3RhbmNlQmFzZSxcbiAgUmVzdEVuZHBvaW50T3B0aW9ucyxcbn0gZnJvbSAnLi9SZXN0RW5kcG9pbnQuanMnO1xuXG5leHBvcnQgdHlwZSBSZXNvdXJjZUV4dGVuc2lvbjxcbiAgUiBleHRlbmRzIHsgW0sgaW4gRXh0ZW5kS2V5XTogUmVzdEluc3RhbmNlQmFzZSB9LFxuICBFeHRlbmRLZXkgZXh0ZW5kcyBFeGNsdWRlPEV4dHJhY3Q8a2V5b2YgUiwgc3RyaW5nPiwgJ2V4dGVuZCc+LFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9LFxuPiA9IHtcbiAgW0sgaW4ga2V5b2YgUl06IEsgZXh0ZW5kcyBFeHRlbmRLZXkgPyBSZXN0RXh0ZW5kZWRFbmRwb2ludDxPLCBSW0tdPiA6IFJbS107XG59O1xuXG4vKiogUmVzb3VyY2Ugd2l0aCBpbmRpdmlkdWFsIGVuZHBvaW50cyBjdXN0b21pemVkXG4gKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVJlc291cmNlPFxuICBSIGV4dGVuZHMgUmVzb3VyY2VJbnRlcmZhY2UsXG4gIE8gZXh0ZW5kcyBSZXNvdXJjZUdlbmVyaWNzID0geyBwYXRoOiBSZXNvdXJjZVBhdGg7IHNjaGVtYTogYW55IH0sXG4gIEdldCBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgfCB7fSA9IGFueSxcbiAgR2V0TGlzdCBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgfCB7fSA9IGFueSxcbiAgVXBkYXRlIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9ID0gYW55LFxuICBQYXJ0aWFsVXBkYXRlIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9ID0gYW55LFxuICBEZWxldGUgZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzIHwge30gPSBhbnksXG4+IGV4dGVuZHMgRXh0ZW5kYWJsZTxPPiB7XG4gIC8vIHVua25vd24gb25seSBleHRlbmRzIGFueS4gdGhpcyBhbGxvd3MgdXMgdG8gbWF0Y2ggZXhjbHVzaXZlbHkgb24gbWVtYmVycyBub3Qgc2V0XG4gIGdldDogdW5rbm93biBleHRlbmRzIEdldCA/IFJbJ2dldCddXG4gIDogUGFydGlhbFJlc3RHZW5lcmljcyBleHRlbmRzIEdldCA/IFJbJ2dldCddXG4gIDogUmVzdEV4dGVuZGVkRW5kcG9pbnQ8R2V0LCBSWydnZXQnXT47XG4gIGdldExpc3Q6IHVua25vd24gZXh0ZW5kcyBHZXRMaXN0ID8gUlsnZ2V0TGlzdCddXG4gIDogUGFydGlhbFJlc3RHZW5lcmljcyBleHRlbmRzIEdldExpc3QgPyBSWydnZXRMaXN0J11cbiAgOiBSZXN0RXh0ZW5kZWRFbmRwb2ludDxHZXRMaXN0LCBSWydnZXRMaXN0J10+O1xuICB1cGRhdGU6IHVua25vd24gZXh0ZW5kcyBVcGRhdGUgPyBSWyd1cGRhdGUnXVxuICA6IFBhcnRpYWxSZXN0R2VuZXJpY3MgZXh0ZW5kcyBVcGRhdGUgPyBSWyd1cGRhdGUnXVxuICA6IFJlc3RFeHRlbmRlZEVuZHBvaW50PFVwZGF0ZSwgUlsndXBkYXRlJ10+O1xuICBwYXJ0aWFsVXBkYXRlOiB1bmtub3duIGV4dGVuZHMgUGFydGlhbFVwZGF0ZSA/IFJbJ3BhcnRpYWxVcGRhdGUnXVxuICA6IFBhcnRpYWxSZXN0R2VuZXJpY3MgZXh0ZW5kcyBQYXJ0aWFsVXBkYXRlID8gUlsncGFydGlhbFVwZGF0ZSddXG4gIDogUmVzdEV4dGVuZGVkRW5kcG9pbnQ8UGFydGlhbFVwZGF0ZSwgUlsncGFydGlhbFVwZGF0ZSddPjtcbiAgZGVsZXRlOiB1bmtub3duIGV4dGVuZHMgRGVsZXRlID8gUlsnZGVsZXRlJ11cbiAgOiBQYXJ0aWFsUmVzdEdlbmVyaWNzIGV4dGVuZHMgRGVsZXRlID8gUlsnZGVsZXRlJ11cbiAgOiBSZXN0RXh0ZW5kZWRFbmRwb2ludDxEZWxldGUsIFJbJ2RlbGV0ZSddPjtcbn1cblxuZXhwb3J0IHR5cGUgRXh0ZW5kZWRSZXNvdXJjZTxcbiAgUiBleHRlbmRzIFJlc291cmNlSW50ZXJmYWNlLFxuICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgRW5kcG9pbnRJbnRlcmZhY2U+LFxuPiA9IE9taXQ8Uiwga2V5b2YgVD4gJiBUO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlRW5kcG9pbnRFeHRlbnNpb25zPFxuICBSIGV4dGVuZHMgUmVzb3VyY2VJbnRlcmZhY2UsXG4gIEdldCBleHRlbmRzIEV4dGVuZGFibGVSZXN0R2VuZXJpY3MgPSB7fSxcbiAgR2V0TGlzdCBleHRlbmRzIEV4dGVuZGFibGVSZXN0R2VuZXJpY3MgPSB7fSxcbiAgVXBkYXRlIGV4dGVuZHMgRXh0ZW5kYWJsZVJlc3RHZW5lcmljcyA9IHt9LFxuICBQYXJ0aWFsVXBkYXRlIGV4dGVuZHMgRXh0ZW5kYWJsZVJlc3RHZW5lcmljcyA9IHt9LFxuICBEZWxldGUgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzID0ge30sXG4+IHtcbiAgcmVhZG9ubHkgZ2V0PzogUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgICB1bmtub3duIGV4dGVuZHMgR2V0ID8gRW5kcG9pbnRUb0Z1bmN0aW9uPFJbJ2dldCddPlxuICAgIDogT3B0aW9uc1RvRnVuY3Rpb248R2V0LCBSWydnZXQnXSwgRW5kcG9pbnRUb0Z1bmN0aW9uPFJbJ2dldCddPj4sXG4gICAgUlsnZ2V0J11bJ3NjaGVtYSddXG4gID4gJlxuICAgIFJlYWRvbmx5PEdldD4gJlxuICAgIEdldDtcbiAgcmVhZG9ubHkgZ2V0TGlzdD86IFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gICAgdW5rbm93biBleHRlbmRzIEdldExpc3QgPyBFbmRwb2ludFRvRnVuY3Rpb248UlsnZ2V0TGlzdCddPlxuICAgIDogT3B0aW9uc1RvRnVuY3Rpb248XG4gICAgICAgIEdldExpc3QsXG4gICAgICAgIFJbJ2dldExpc3QnXSxcbiAgICAgICAgRW5kcG9pbnRUb0Z1bmN0aW9uPFJbJ2dldExpc3QnXT5cbiAgICAgID4sXG4gICAgUlsnZ2V0TGlzdCddWydzY2hlbWEnXVxuICA+ICZcbiAgICBSZWFkb25seTxHZXRMaXN0PiAmXG4gICAgR2V0TGlzdDtcbiAgcmVhZG9ubHkgdXBkYXRlPzogUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgICB1bmtub3duIGV4dGVuZHMgVXBkYXRlID8gRW5kcG9pbnRUb0Z1bmN0aW9uPFJbJ3VwZGF0ZSddPlxuICAgIDogT3B0aW9uc1RvRnVuY3Rpb248VXBkYXRlLCBSWyd1cGRhdGUnXSwgRW5kcG9pbnRUb0Z1bmN0aW9uPFJbJ3VwZGF0ZSddPj4sXG4gICAgUlsndXBkYXRlJ11bJ3NjaGVtYSddXG4gID4gJlxuICAgIFJlYWRvbmx5PFVwZGF0ZT4gJlxuICAgIFVwZGF0ZTtcbiAgcmVhZG9ubHkgcGFydGlhbFVwZGF0ZT86IFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gICAgdW5rbm93biBleHRlbmRzIFBhcnRpYWxVcGRhdGUgPyBFbmRwb2ludFRvRnVuY3Rpb248UlsncGFydGlhbFVwZGF0ZSddPlxuICAgIDogT3B0aW9uc1RvRnVuY3Rpb248XG4gICAgICAgIFBhcnRpYWxVcGRhdGUsXG4gICAgICAgIFJbJ3BhcnRpYWxVcGRhdGUnXSxcbiAgICAgICAgRW5kcG9pbnRUb0Z1bmN0aW9uPFJbJ3BhcnRpYWxVcGRhdGUnXT5cbiAgICAgID4sXG4gICAgUlsncGFydGlhbFVwZGF0ZSddWydzY2hlbWEnXVxuICA+ICZcbiAgICBSZWFkb25seTxQYXJ0aWFsVXBkYXRlPiAmXG4gICAgUGFydGlhbFVwZGF0ZTtcbiAgcmVhZG9ubHkgZGVsZXRlPzogUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgICB1bmtub3duIGV4dGVuZHMgRGVsZXRlID8gRW5kcG9pbnRUb0Z1bmN0aW9uPFJbJ2RlbGV0ZSddPlxuICAgIDogT3B0aW9uc1RvRnVuY3Rpb248RGVsZXRlLCBSWydkZWxldGUnXSwgRW5kcG9pbnRUb0Z1bmN0aW9uPFJbJ2RlbGV0ZSddPj4sXG4gICAgUlsnZGVsZXRlJ11bJ3NjaGVtYSddXG4gID4gJlxuICAgIFJlYWRvbmx5PERlbGV0ZT4gJlxuICAgIERlbGV0ZTtcbn1cbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==