@secrecy/lib 1.0.0-dev.36 → 1.0.0-dev.39

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.
@@ -171,6 +171,7 @@ export declare type User<T extends WithPublicKey = WithPublicKey> = T extends {
171
171
  } : UserBase;
172
172
  declare type ClassGetUserParams = WithPublicKey & {
173
173
  userId?: string;
174
+ userEmail?: string;
174
175
  };
175
176
  declare type StaticGetUserParams = ClassGetUserParams & {
176
177
  env: SecrecyEnv;
@@ -83,13 +83,15 @@ function getUser(_x) {
83
83
 
84
84
  function _getUser() {
85
85
  _getUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee28(params) {
86
+ var _params$userId3;
87
+
86
88
  var selector, _yield$params$client, userResponse;
87
89
 
88
90
  return _regeneratorRuntime.wrap(function _callee28$(_context28) {
89
91
  while (1) {
90
92
  switch (_context28.prev = _context28.next) {
91
93
  case 0:
92
- selector = getUserSelector(params.userId, params.withPublicKey);
94
+ selector = getUserSelector((_params$userId3 = params.userId) != null ? _params$userId3 : params.userEmail, params.withPublicKey);
93
95
  _context28.next = 3;
94
96
  return params.client("query")({
95
97
  user: selector
@@ -356,6 +358,8 @@ export var BaseClient = /*#__PURE__*/function () {
356
358
 
357
359
  BaseClient.user = /*#__PURE__*/function () {
358
360
  var _user = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(params, sessionId) {
361
+ var _params$userId;
362
+
359
363
  var user;
360
364
  return _regeneratorRuntime.wrap(function _callee4$(_context4) {
361
365
  while (1) {
@@ -364,7 +368,7 @@ export var BaseClient = /*#__PURE__*/function () {
364
368
  _context4.next = 2;
365
369
  return getUser({
366
370
  client: this._getBaseClient(params.env, sessionId),
367
- userId: params.userId,
371
+ userId: (_params$userId = params.userId) != null ? _params$userId : params.userEmail,
368
372
  withPublicKey: params.withPublicKey
369
373
  });
370
374
 
@@ -410,6 +414,8 @@ export var BaseClient = /*#__PURE__*/function () {
410
414
 
411
415
  _proto.user = /*#__PURE__*/function () {
412
416
  var _user2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(params) {
417
+ var _params$userId2;
418
+
413
419
  var user;
414
420
  return _regeneratorRuntime.wrap(function _callee5$(_context5) {
415
421
  while (1) {
@@ -418,7 +424,7 @@ export var BaseClient = /*#__PURE__*/function () {
418
424
  _context5.next = 2;
419
425
  return getUser({
420
426
  client: this.client,
421
- userId: params.userId,
427
+ userId: (_params$userId2 = params.userId) != null ? _params$userId2 : params.userEmail,
422
428
  withPublicKey: params.withPublicKey
423
429
  });
424
430
 
@@ -2322,4 +2328,4 @@ BaseClient.getBaseUrl = function (env, graphcdn) {
2322
2328
  BaseClient._getBaseClient = function (env, session) {
2323
2329
  return createThunder(BaseClient.getBaseUrl(env), session);
2324
2330
  };
2325
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9CYXNlQ2xpZW50LnRzIl0sIm5hbWVzIjpbInNlcmlhbGl6ZSIsImdldExpbmsiLCJ1c2Vyc0NhY2hlIiwiZ2V0U3RvcmFnZSIsIlNlbGVjdG9yIiwiY3JlYXRlVGh1bmRlciIsImludGVybmFsVG9QYXltZW50SW5mb3MiLCJwIiwiY3VycmVudFN1YnNjcmlwdGlvbiIsInN0YXRlIiwiY29sbGVjdGlvbk1ldGhvZCIsImFjdGl2YXRlZEF0IiwiRGF0ZSIsImNyZWF0ZWRBdCIsInVwZGF0ZWRBdCIsInRyaWFsRW5kc0F0IiwidHJpYWxTdGFydGVkQXQiLCJwYXVzZWRBdCIsImN1cnJlbnRQZXJpb2RFbmRzQXQiLCJjdXJyZW50UGVyaW9kU3RhcnRlZEF0IiwiY2FuY2VsZWRBdCIsImV4cGlyZXNBdCIsImludm9pY2VzIiwibWFwIiwiaSIsImRhdGUiLCJkdWUiLCJzdGF0dXMiLCJwbGFuc0NvZGVzIiwiaXNWYWxpZFBsYW4iLCJwbGFuQ29kZSIsImluY2x1ZGVzIiwiZ2V0VXNlclNlbGVjdG9yIiwidXNlcklkIiwid2l0aFB1YmxpY0tleSIsInVzZXIiLCJfX3R5cGVuYW1lIiwibWVzc2FnZSIsImZpZWxkIiwiaWQiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsImxhbmciLCJwdWJsaWNLZXkiLCJ1bmRlZmluZWQiLCJlbWFpbCIsInBob25lIiwicm9sZSIsImRlbGV0ZWRBdCIsImxhc3RMb2dpbiIsImdldFVzZXIiLCJwYXJhbXMiLCJzZWxlY3RvciIsImNsaWVudCIsInVzZXJSZXNwb25zZSIsImRhdGEiLCJCYXNlQ2xpZW50Iiwic2Vzc2lvbiIsImVudiIsInNlc3Npb25JZCIsIl9nZXRCYXNlQ2xpZW50Iiwic2Vzc2lvbnMiLCJsYXN0QWN0aXZpdHkiLCJ1c2VyQWdlbnQiLCJpcCIsImNpdHkiLCJjb3VudHJ5IiwiYXBwU2Vzc2lvbnMiLCJ1c2VyQXBwIiwiYXBwIiwibmFtZSIsInMiLCJhIiwibG9nb3V0IiwibG9jYWwiLCJqd3QiLCJjbGVhciIsInVzZXJBcHBLZXlzIiwidXNlckFwcFNlc3Npb24iLCJtZSIsInNldCIsInVwZGF0ZVByb2ZpbGUiLCJwbGFucyIsInBsYW4iLCJraW5kIiwiY29kZXMiLCJsaW1pdHMiLCJkb3dubG9hZEJhbmR3aWR0aCIsImRvd25sb2FkQ291bnQiLCJoYXJkRmlsZUNvdW50IiwiaGFyZEZpbGVTaXplIiwicGVyRmlsZVNpemUiLCJ1cGxvYWRCYW5kd2lkdGgiLCJ1cGxvYWRDb3VudCIsInJlY2VpdmVkTWFpbHMiLCJjb3VudCIsImZpbGVDb3VudCIsImZpbGVTaXplIiwiaGFyZENvdW50Iiwic2VudE1haWxzIiwicGF5IiwiaW5wdXQiLCJhdXRvUmVuZXciLCJjYW5jZWxQYXltZW50IiwicGF5bWVudEluZm9zIiwiaG9zdGVkVXJsIiwiYXV0b3JlbmV3IiwidG90YWwiLCJwZGYiLCJjdXJyZW5jeSIsInJlc3VsdCIsImNsb3VkIiwic2l6ZSIsIm1heFNpemUiLCJtYXhDb3VudCIsIm1haWwiLCJyZWNlaXZlZCIsIm1heEZpbGVDb3VudCIsIm1heEZpbGVTaXplIiwic2VudCIsIkJpZ0ludCIsImdvZEZhdGhlckFuZENoaWxkcmVuIiwiZ29kQ2hpbGRyZW4iLCJnb2RGYXRoZXIiLCJ1cGRhdGVBcHBEQkNvbmZpZyIsImFwcENvZGUiLCJjb25maWciLCJkYkNvbmZpZ011dGF0aW9uIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldEFwcERCQ29uZmlnIiwiZGJDb25maWciLCJqc29uIiwiZ2V0RkFRIiwiZmFxIiwiYW5zd2VyIiwib3JkZXIiLCJxdWVzdGlvbiIsImdldEJsb2ciLCJibG9nIiwiYmxvZ0l0ZW1zIiwiYmxvZ0lkIiwiYXV0aG9yIiwiYm9keSIsImltYWdlIiwiaW1hZ2VBbHQiLCJzdW1tYXJ5IiwidGl0bGUiLCJiIiwicmVwb3J0VXNlciIsInJlcG9ydGVkVXNlcklkIiwiY3VzdG9tTWVzc2FnZSIsInNlbmRSZXBvcnQiLCJyZXBvcnRlZFVzZXIiLCJkZWxldGVVc2VyIiwiZGJHZXQiLCJyZXMiLCJkYlNldCIsInZhbHVlIiwiRXJyb3IiLCJ0b1N0cmluZyIsImRiU2VhcmNoIiwic2VhcmNoIiwiZGVsZXRlRm9sZGVyIiwibW92ZUZvbGRlcnMiLCJmb2xkZXJzSWQiLCJwYXJlbnRGb2xkZXJJZCIsIm1vdmVGaWxlcyIsImZpbGVzSWQiLCJmb2xkZXJTaXplIiwiZm9sZGVySWQiLCJzaXplQmVmb3JlIiwiZ2V0U3BvbnNvcnNoaXBMaW5rIiwiYmFja1VybCIsInBhdGgiLCJidG9hIiwidXBkYXRlQXV0b0Rpc2Nvbm5lY3REZWxheSIsImRlbGF5IiwiZ2V0QmFzZVVybCIsImdyYXBoY2RuIiwiYXBpVXJsIiwicHJvY2VzcyIsIk5FWFRfUFVCTElDX1NFQ1JFQ1lfQVBJX1VSTCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUdBLFNBQVNBLFNBQVQsUUFBMEIsTUFBMUI7QUFDQSxTQUFTQyxPQUFULFFBQXdCLG9CQUF4QjtBQUNBLFNBQVNDLFVBQVQsUUFBMkIsWUFBM0I7QUFHQSxTQUFTQyxVQUFULFFBQTJCLHFCQUEzQjtBQVFBLFNBQVNDLFFBQVQsUUFBeUIsaUJBQXpCO0FBQ0EsU0FBU0MsYUFBVCxRQUE4QixrQkFBOUI7O0FBc0xBLFNBQVNDLHNCQUFULENBQWdDQyxDQUFoQyxFQUF1RTtBQUNyRSx5Q0FDS0EsQ0FETDtBQUVFQyxJQUFBQSxtQkFBbUIsa0NBQ2RELENBQUMsQ0FBQ0MsbUJBRFk7QUFFakJDLE1BQUFBLEtBQUssRUFBRUYsQ0FBQyxDQUFDQyxtQkFBRixDQUFzQkMsS0FGWjtBQUdqQkMsTUFBQUEsZ0JBQWdCLEVBQUVILENBQUMsQ0FBQ0MsbUJBQUYsQ0FDZkUsZ0JBSmM7QUFLakJDLE1BQUFBLFdBQVcsRUFBRUosQ0FBQyxDQUFDQyxtQkFBRixDQUFzQkcsV0FBdEIsR0FDVCxJQUFJQyxJQUFKLENBQVNMLENBQUMsQ0FBQ0MsbUJBQUYsQ0FBc0JHLFdBQS9CLENBRFMsR0FFVCxJQVBhO0FBUWpCRSxNQUFBQSxTQUFTLEVBQUVOLENBQUMsQ0FBQ0MsbUJBQUYsQ0FBc0JLLFNB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O0FBQWF4SCxVLENBQ1kwSCxVLEdBQWEsVUFDbEN4SCxHQURrQyxFQUVsQ3lILFFBRmtDLEVBR3ZCO0FBQUEsTUFGWHpILEdBRVc7QUFGWEEsSUFBQUEsR0FFVyxHQUZPLE1BRVA7QUFBQTs7QUFBQSxNQURYeUgsUUFDVztBQURYQSxJQUFBQSxRQUNXLEdBREEsSUFDQTtBQUFBOztBQUNYLE1BQU1DLE1BQU0sR0FBR0MsT0FBTyxDQUFDM0gsR0FBUixDQUFZNEgsMkJBQTNCOztBQUNBLE1BQUlGLE1BQUosRUFBWTtBQUNWLFdBQU9BLE1BQVA7QUFDRDs7QUFFRCxVQUFRMUgsR0FBUjtBQUNFLFNBQUssTUFBTDtBQUNFLGFBQU95SCxRQUFRLEdBQ1gsOEJBRFcsR0FFWCxnQ0FGSjs7QUFHRixTQUFLLEtBQUw7QUFDQTtBQUNFLGFBQU8sb0NBQVA7QUFQSjtBQVNELEM7O0FBbkJVM0gsVSxDQXFCYUksYyxHQUFpQixVQUN2Q0YsR0FEdUMsRUFFdkNELE9BRnVDO0FBQUEsU0FJdkNwRCxhQUFhLENBQUNtRCxVQUFVLENBQUMwSCxVQUFYLENBQXNCeEgsR0FBdEIsQ0FBRCxFQUE2QkQsT0FBN0IsQ0FKMEI7QUFBQSxDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQgdHlwZSB7IERvd25sb2FkUHJvZ3Jlc3MgYXMgRExQcm9ncmVzcyB9IGZyb20gXCJreVwiO1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudCB9IGZyb20gXCJic29uXCI7XG5pbXBvcnQgeyBzZXJpYWxpemUgfSBmcm9tIFwiYnNvblwiO1xuaW1wb3J0IHsgZ2V0TGluayB9IGZyb20gXCJAc2VjcmVjeS9saWItdXRpbHNcIjtcbmltcG9ydCB7IHVzZXJzQ2FjaGUgfSBmcm9tIFwiLi9jYWNoZS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBVc2VyU2Vzc2lvbiB9IGZyb20gXCIuL2NsaWVudC90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTZWNyZWN5RW52IH0gZnJvbSBcIi4vY2xpZW50L2hlbHBlcnMuanNcIjtcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiLi9jbGllbnQvc3RvcmFnZS5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBMYW5nLFxuICBQYXlJbnB1dFR5cGUsXG4gIFBsYW5LaW5kLFxuICBUaHVuZGVyLFxuICBVc2VyUm9sZVxufSBmcm9tIFwiLi96ZXVzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBTZWxlY3RvciB9IGZyb20gXCIuL3pldXMvaW5kZXguanNcIjtcbmltcG9ydCB7IGNyZWF0ZVRodW5kZXIgfSBmcm9tIFwiLi9aZXVzVGh1bmRlci5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBFcnJvckFjY2Vzc0RlbmllZCxcbiAgRXJyb3JMaW1pdCxcbiAgRXJyb3JOb3RGb3VuZCxcbiAgRXJyb3JOb3RFeGlzdCxcbiAgRXJyb3JMYW5nTm90RXhpc3QsXG4gIEVycm9yQmFzaWNcbn0gZnJvbSBcIi4vZXJyb3IuanNcIjtcblxuZXhwb3J0IHR5cGUgU3VjY2Vzc1Jlc3BvbnNlPFQ+ID0ge1xuICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiO1xuICBkYXRhOiBUO1xufTtcblxuZXhwb3J0IHR5cGUgRG93bmxvYWRQcm9ncmVzcyA9IERMUHJvZ3Jlc3M7XG5cbmV4cG9ydCB0eXBlIFBheUlucHV0ID0ge1xuICB0eXBlOiBQYXlJbnB1dFR5cGU7XG4gIHRva2VuOiBzdHJpbmc7XG4gIGZpcnN0TmFtZTogc3RyaW5nO1xuICBsYXN0TmFtZTogc3RyaW5nO1xuICBzdHJlZXQ6IHN0cmluZztcbiAgcG9zdGFsQ29kZTogc3RyaW5nO1xuICBjaXR5OiBzdHJpbmc7XG4gIGNvdW50cnk6IHN0cmluZztcbiAgbW9udGg6IHN0cmluZztcbiAgeWVhcjogc3RyaW5nO1xuICBjdnY6IHN0cmluZztcbiAgbnVtYmVyOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBNYWlsTGltaXRzID0ge1xuICBjb3VudD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZmlsZUNvdW50Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBmaWxlU2l6ZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaGFyZENvdW50Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBoYXJkRmlsZUNvdW50Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBoYXJkRmlsZVNpemU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHBlckZpbGVTaXplPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgTGltaXRzID0ge1xuICBkb3dubG9hZEJhbmR3aWR0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZG93bmxvYWRDb3VudD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaGFyZEZpbGVDb3VudD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaGFyZEZpbGVTaXplPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwZXJGaWxlU2l6ZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVjZWl2ZWRNYWlsczogTWFpbExpbWl0cztcbiAgc2VudE1haWxzOiBNYWlsTGltaXRzO1xuICB1cGxvYWRCYW5kd2lkdGg/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHVwbG9hZENvdW50Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgR29kVXNlciA9IHtcbiAgaWQ6IHN0cmluZztcbiAgZmlyc3RuYW1lOiBzdHJpbmc7XG4gIGxhc3RuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBob25lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBHb2RGYXRoZXJBbmRDaGlsZHJlbiA9IHtcbiAgZ29kRmF0aGVyOiBHb2RVc2VyIHwgbnVsbDtcbiAgZ29kQ2hpbGRyZW46IEdvZFVzZXJbXTtcbn07XG5cbmV4cG9ydCB0eXBlIFBsYW4gPSB7XG4gIGNvZGVzOiBzdHJpbmdbXTtcbiAga2luZDogUGxhbktpbmQ7XG4gIGxpbWl0czogTGltaXRzO1xufTtcblxuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uU3RhdGUgPVxuICB8IFwiYWN0aXZlXCJcbiAgfCBcImNhbmNlbGVkXCJcbiAgfCBcInBhdXNlZFwiXG4gIHwgXCJleHBpcmVkXCJcbiAgfCBcImZ1dHVyZVwiXG4gIHwgXCJpbl90cmlhbFwiXG4gIHwgXCJsaXZlXCJcbiAgfCBcInBhc3RfZHVlXCI7XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvbkNvbGxlY3Rpb25NZXRob2QgPSBcImF1dG9tYXRpY1wiIHwgXCJtYW51YWxcIjtcblxudHlwZSBJbnRlcm5hbFN1YnNjcmlwdGlvbiA9IHtcbiAgYXV0b3JlbmV3OiBib29sZWFuO1xuICBhY3RpdmF0ZWRBdD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGN1cnJlbnRQZXJpb2RFbmRzQXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjdXJyZW50UGVyaW9kU3RhcnRlZEF0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY2FuY2VsZWRBdD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNyZWF0ZWRBdD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGV4cGlyZXNBdD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHBhdXNlZEF0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdHJpYWxFbmRzQXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB0cmlhbFN0YXJ0ZWRBdD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHVwZGF0ZWRBdD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNvbGxlY3Rpb25NZXRob2Q6IHN0cmluZztcbiAgc3RhdGU6IHN0cmluZztcbiAgcGxhbj86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHBsYW5Db2RlPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdG90YWw/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxudHlwZSBSZWN1cmx5SW52b2ljZVN0YXR1cyA9XG4gIHwgXCJwZW5kaW5nXCJcbiAgfCBcInBhaWRcIlxuICB8IFwiZmFpbGVkXCJcbiAgfCBcInBhc3RfZHVlXCJcbiAgfCBcIm9wZW5cIlxuICB8IFwiY2xvc2VkXCJcbiAgfCBcInZvaWRlZFwiXG4gIHwgXCJwcm9jZXNzaW5nXCI7XG5cbnR5cGUgSW50ZXJuYWxSZWN1cmx5SW52b2ljZXMgPSB7XG4gIHBkZjogc3RyaW5nO1xuICBkYXRlOiBzdHJpbmc7XG4gIGR1ZTogc3RyaW5nO1xuICBzdGF0dXM6IHN0cmluZztcbiAgdG90YWw6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBjdXJyZW5jeTogc3RyaW5nO1xufTtcblxudHlwZSBJbnRlcm5hbFBheW1lbnRJbmZvcyA9IHtcbiAgaG9zdGVkVXJsOiBzdHJpbmc7XG4gIGN1cnJlbnRTdWJzY3JpcHRpb246IEludGVybmFsU3Vic2NyaXB0aW9uO1xuICBpbnZvaWNlczogSW50ZXJuYWxSZWN1cmx5SW52b2ljZXNbXTtcbn07XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvbiA9IHtcbiAgYXV0b3JlbmV3OiBib29sZWFuO1xuICBhY3RpdmF0ZWRBdD86IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjdXJyZW50UGVyaW9kRW5kc0F0PzogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGN1cnJlbnRQZXJpb2RTdGFydGVkQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY2FuY2VsZWRBdD86IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjcmVhdGVkQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgZXhwaXJlc0F0PzogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHBhdXNlZEF0PzogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHRyaWFsRW5kc0F0PzogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHRyaWFsU3RhcnRlZEF0PzogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHVwZGF0ZWRBdD86IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb2xsZWN0aW9uTWV0aG9kOiBTdWJzY3JpcHRpb25Db2xsZWN0aW9uTWV0aG9kO1xuICBzdGF0ZTogU3Vic2NyaXB0aW9uU3RhdGU7XG4gIHBsYW4/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBwbGFuQ29kZT86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHRvdGFsPzogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCB0eXBlIFJlY3VybHlJbnZvaWNlcyA9IHtcbiAgcGRmOiBzdHJpbmc7XG4gIGRhdGU6IERhdGU7XG4gIGR1ZTogRGF0ZTtcbiAgc3RhdHVzOiBSZWN1cmx5SW52b2ljZVN0YXR1cztcbiAgdG90YWw6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBjdXJyZW5jeTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgUGF5bWVudEluZm9zID0ge1xuICBob3N0ZWRVcmw6IHN0cmluZztcbiAgY3VycmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBpbnZvaWNlczogUmVjdXJseUludm9pY2VzW107XG59O1xuXG5leHBvcnQgdHlwZSBTZW5kUmVwb3J0ID0ge1xuICBpZDogc3RyaW5nO1xuICB1c2VyOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBmaXJzdG5hbWU6IHN0cmluZztcbiAgICBsYXN0bmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gIH07XG4gIHJlcG9ydGVkVXNlcjoge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZmlyc3RuYW1lOiBzdHJpbmc7XG4gICAgbGFzdG5hbWU6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICB9O1xuICBjdXN0b21NZXNzYWdlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZnVuY3Rpb24gaW50ZXJuYWxUb1BheW1lbnRJbmZvcyhwOiBJbnRlcm5hbFBheW1lbnRJbmZvcyk6IFBheW1lbnRJbmZvcyB7XG4gIHJldHVybiB7XG4gICAgLi4ucCxcbiAgICBjdXJyZW50U3Vic2NyaXB0aW9uOiB7XG4gICAgICAuLi5wLmN1cnJlbnRTdWJzY3JpcHRpb24sXG4gICAgICBzdGF0ZTogcC5jdXJyZW50U3Vic2NyaXB0aW9uLnN0YXRlIGFzIFN1YnNjcmlwdGlvblN0YXRlLFxuICAgICAgY29sbGVjdGlvbk1ldGhvZDogcC5jdXJyZW50U3Vic2NyaXB0aW9uXG4gICAgICAgIC5jb2xsZWN0aW9uTWV0aG9kIGFzIFN1YnNjcmlwdGlvbkNvbGxlY3Rpb25NZXRob2QsXG4gICAgICBhY3RpdmF0ZWRBdDogcC5jdXJyZW50U3Vic2NyaXB0aW9uLmFjdGl2YXRlZEF0XG4gICAgICAgID8gbmV3IERhdGUocC5jdXJyZW50U3Vic2NyaXB0aW9uLmFjdGl2YXRlZEF0KVxuICAgICAgICA6IG51bGwsXG4gICAgICBjcmVhdGVkQXQ6IHAuY3VycmVudFN1YnNjcmlwdGlvbi5jcmVhdGVkQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24uY3JlYXRlZEF0KVxuICAgICAgICA6IG51bGwsXG4gICAgICB1cGRhdGVkQXQ6IHAuY3VycmVudFN1YnNjcmlwdGlvbi51cGRhdGVkQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24udXBkYXRlZEF0KVxuICAgICAgICA6IG51bGwsXG4gICAgICB0cmlhbEVuZHNBdDogcC5jdXJyZW50U3Vic2NyaXB0aW9uLnRyaWFsRW5kc0F0XG4gICAgICAgID8gbmV3IERhdGUocC5jdXJyZW50U3Vic2NyaXB0aW9uLnRyaWFsRW5kc0F0KVxuICAgICAgICA6IG51bGwsXG4gICAgICB0cmlhbFN0YXJ0ZWRBdDogcC5jdXJyZW50U3Vic2NyaXB0aW9uLnRyaWFsU3RhcnRlZEF0XG4gICAgICAgID8gbmV3IERhdGUocC5jdXJyZW50U3Vic2NyaXB0aW9uLnRyaWFsU3RhcnRlZEF0KVxuICAgICAgICA6IG51bGwsXG4gICAgICBwYXVzZWRBdDogcC5jdXJyZW50U3Vic2NyaXB0aW9uLnBhdXNlZEF0XG4gICAgICAgID8gbmV3IERhdGUocC5jdXJyZW50U3Vic2NyaXB0aW9uLnBhdXNlZEF0KVxuICAgICAgICA6IG51bGwsXG4gICAgICBjdXJyZW50UGVyaW9kRW5kc0F0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24uY3VycmVudFBlcmlvZEVuZHNBdFxuICAgICAgICA/IG5ldyBEYXRlKHAuY3VycmVudFN1YnNjcmlwdGlvbi5jdXJyZW50UGVyaW9kRW5kc0F0KVxuICAgICAgICA6IG51bGwsXG4gICAgICBjdXJyZW50UGVyaW9kU3RhcnRlZEF0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24uY3VycmVudFBlcmlvZFN0YXJ0ZWRBdFxuICAgICAgICA/IG5ldyBEYXRlKHAuY3VycmVudFN1YnNjcmlwdGlvbi5jdXJyZW50UGVyaW9kU3RhcnRlZEF0KVxuICAgICAgICA6IG51bGwsXG4gICAgICBjYW5jZWxlZEF0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24uY2FuY2VsZWRBdFxuICAgICAgICA/IG5ldyBEYXRlKHAuY3VycmVudFN1YnNjcmlwdGlvbi5jYW5jZWxlZEF0KVxuICAgICAgICA6IG51bGwsXG4gICAgICBleHBpcmVzQXQ6IHAuY3VycmVudFN1YnNjcmlwdGlvbi5leHBpcmVzQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24uZXhwaXJlc0F0KVxuICAgICAgICA6IG51bGxcbiAgICB9LFxuICAgIGludm9pY2VzOiBwLmludm9pY2VzLm1hcChpID0+ICh7XG4gICAgICAuLi5pLFxuICAgICAgZGF0ZTogbmV3IERhdGUoaS5kYXRlKSxcbiAgICAgIGR1ZTogbmV3IERhdGUoaS5kdWUpLFxuICAgICAgc3RhdHVzOiBpLnN0YXR1cyBhcyBSZWN1cmx5SW52b2ljZVN0YXR1c1xuICAgIH0pKVxuICB9O1xufVxuXG5jb25zdCBwbGFuc0NvZGVzID0gW1xuICBcImJhc2ljX21vbnRoXCIsXG4gIFwiYWR2YW5jZWRfbW9udGhcIixcbiAgXCJwcm9fbW9udGhcIixcbiAgXCJiYXNpY195ZWFyXCIsXG4gIFwiYWR2YW5jZWRfeWVhclwiLFxuICBcInByb195ZWFyXCJcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFNlY3JlY3lQbGFuc0NvZGVzID0gdHlwZW9mIHBsYW5zQ29kZXNbbnVtYmVyXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQbGFuKHBsYW5Db2RlOiBzdHJpbmcpOiBwbGFuQ29kZSBpcyBTZWNyZWN5UGxhbnNDb2RlcyB7XG4gIHJldHVybiBwbGFuc0NvZGVzLmluY2x1ZGVzKHBsYW5Db2RlIGFzIFNlY3JlY3lQbGFuc0NvZGVzKTtcbn1cblxuZXhwb3J0IHR5cGUgVXNlckRhdGE8XG4gIFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4+ID0ge1xuICBpc1N1cGVydXNlcjogYm9vbGVhbjtcbiAgaXNTZWFyY2hhYmxlOiBib29sZWFuO1xufSAmIFQ7XG5cbmV4cG9ydCB0eXBlIEZvbGRlclNpemUgPSB7IHNpemU6IGJpZ2ludDsgc2l6ZUJlZm9yZTogYmlnaW50IH07XG5cbmNvbnN0IGdldFVzZXJTZWxlY3RvciA9IChcbiAgdXNlcklkOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICB3aXRoUHVibGljS2V5OiBib29sZWFuIHwgdW5kZWZpbmVkXG4pID0+IHtcbiAgY29uc3QgeyB1c2VyIH0gPSBTZWxlY3RvcihcIlF1ZXJ5XCIpKHtcbiAgICB1c2VyOiBbXG4gICAgICB7IHVzZXJJZCB9LFxuICAgICAge1xuICAgICAgICBcIi4uLm9uIEVycm9yTm90Rm91bmRcIjoge1xuICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgbWVzc2FnZTogdHJ1ZSxcbiAgICAgICAgICBmaWVsZDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIi4uLm9uIFVzZXJSZXNwb25zZVwiOiB7XG4gICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICB1c2VyOiB7XG4gICAgICAgICAgICBpZDogdHJ1ZSxcbiAgICAgICAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbGFuZzogdHJ1ZSxcbiAgICAgICAgICAgIHB1YmxpY0tleTogd2l0aFB1YmxpY0tleSA/IHRydWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBlbWFpbDogdHJ1ZSxcbiAgICAgICAgICAgIHBob25lOiB0cnVlLFxuICAgICAgICAgICAgcm9sZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlbGV0ZWRBdDogdHJ1ZSxcbiAgICAgICAgICAgIGxhc3RMb2dpbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIF1cbiAgfSk7XG4gIHJldHVybiB1c2VyO1xufTtcblxuZXhwb3J0IHR5cGUgQXBwREJDb25maWdGaWVsZCA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBcInN0cmluZ1wiIHwgXCJudW1iZXJcIiB8IFwiYm9vbGVhblwiIHwgXCJvYmplY3RcIjtcbiAgaXNBcnJheT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIGlzTnVsbGFibGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBpc0VkaXRhYmxlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgaXNLZXk/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBkZWZhdWx0PzogdW5rbm93bjtcbn07XG5cbmV4cG9ydCB0eXBlIEFwcERCQ29uZmlnID0ge1xuICBmaWVsZHM6IEFwcERCQ29uZmlnRmllbGRbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEZhcUl0ZW0gPSB7XG4gIG9yZGVyOiBudW1iZXI7XG4gIHF1ZXN0aW9uOiBzdHJpbmc7XG4gIGFuc3dlcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQmxvZ0l0ZW0gPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGJsb2dJZDogc3RyaW5nO1xuICBvcmRlcjogbnVtYmVyO1xuICBhdXRob3I6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xuICBkYXRlOiBEYXRlO1xuICBpbWFnZTogc3RyaW5nO1xuICBpbWFnZUFsdDogc3RyaW5nO1xuICBzdW1tYXJ5OiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBVc2VyQmFzZSA9IHtcbiAgZW1haWw6IHN0cmluZztcbiAgcGhvbmU6IHN0cmluZztcbiAgbGFzdG5hbWU6IHN0cmluZztcbiAgcm9sZTogVXNlclJvbGU7XG4gIGZpcnN0bmFtZTogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICBkZWxldGVkQXQ6IERhdGUgfCBudWxsO1xuICBsYXN0TG9naW46IERhdGU7XG4gIGxhbmc6IExhbmc7XG59O1xuXG50eXBlIFdpdGhQdWJsaWNLZXkgPSB7IHdpdGhQdWJsaWNLZXk/OiBib29sZWFuIH07XG5cbmV4cG9ydCB0eXBlIFVzZXI8VCBleHRlbmRzIFdpdGhQdWJsaWNLZXkgPSBXaXRoUHVibGljS2V5PiA9IFQgZXh0ZW5kcyB7XG4gIHdpdGhQdWJsaWNLZXk6IHRydWU7XG59XG4gID8gVXNlckJhc2UgJiB7IHB1YmxpY0tleTogc3RyaW5nIH1cbiAgOiBVc2VyQmFzZTtcblxudHlwZSBDbGFzc0dldFVzZXJQYXJhbXMgPSBXaXRoUHVibGljS2V5ICYge1xuICB1c2VySWQ/OiBzdHJpbmc7XG59O1xudHlwZSBHZXRVc2VyUGFyYW1zID0gQ2xhc3NHZXRVc2VyUGFyYW1zICYge1xuICBjbGllbnQ6IFJldHVyblR5cGU8dHlwZW9mIFRodW5kZXI+O1xufTtcblxudHlwZSBTdGF0aWNHZXRVc2VyUGFyYW1zID0gQ2xhc3NHZXRVc2VyUGFyYW1zICYge1xuICBlbnY6IFNlY3JlY3lFbnY7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBnZXRVc2VyPFUgZXh0ZW5kcyBXaXRoUHVibGljS2V5PihcbiAgcGFyYW1zOiBHZXRVc2VyUGFyYW1zXG4pOiBQcm9taXNlPFN1Y2Nlc3NSZXNwb25zZTxVc2VyPFU+PiB8IEVycm9yTm90Rm91bmQgfCBudWxsPiB7XG4gIGNvbnN0IHNlbGVjdG9yID0gZ2V0VXNlclNlbGVjdG9yKHBhcmFtcy51c2VySWQsIHBhcmFtcy53aXRoUHVibGljS2V5KTtcbiAgY29uc3QgeyB1c2VyOiB1c2VyUmVzcG9uc2UgfSA9IGF3YWl0IHBhcmFtcy5jbGllbnQoXCJxdWVyeVwiKSh7XG4gICAgdXNlcjogc2VsZWN0b3JcbiAgfSk7XG5cbiAgaWYgKCF1c2VyUmVzcG9uc2UpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICh1c2VyUmVzcG9uc2UuX190eXBlbmFtZSA9PT0gXCJFcnJvck5vdEZvdW5kXCIpIHtcbiAgICByZXR1cm4gdXNlclJlc3BvbnNlO1xuICB9XG5cbiAgaWYgKCF1c2VyUmVzcG9uc2UudXNlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgIGRhdGE6IHtcbiAgICAgIC4uLnVzZXJSZXNwb25zZS51c2VyLFxuICAgICAgbGFzdExvZ2luOiBuZXcgRGF0ZSh1c2VyUmVzcG9uc2UudXNlci5sYXN0TG9naW4pLFxuICAgICAgZGVsZXRlZEF0OiB1c2VyUmVzcG9uc2UudXNlci5kZWxldGVkQXRcbiAgICAgICAgPyBuZXcgRGF0ZSh1c2VyUmVzcG9uc2UudXNlci5kZWxldGVkQXQpXG4gICAgICAgIDogbnVsbFxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgQ2xvdWRMaW1pdHMgPSB7XG4gIGNvdW50OiBiaWdpbnQ7XG4gIG1heENvdW50OiBiaWdpbnQgfCBudWxsO1xuICBzaXplOiBiaWdpbnQ7XG4gIG1heFNpemU6IGJpZ2ludCB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBNYWlsTGltaXRzVmFsdWVzID0ge1xuICBjb3VudDogYmlnaW50O1xuICBtYXhDb3VudDogYmlnaW50IHwgbnVsbDtcbiAgZmlsZVNpemU6IGJpZ2ludDtcbiAgbWF4RmlsZVNpemU6IGJpZ2ludCB8IG51bGw7XG4gIGZpbGVDb3VudDogYmlnaW50O1xuICBtYXhGaWxlQ291bnQ6IGJpZ2ludCB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBRdWVyeUxpbWl0cyA9IHtcbiAgY2xvdWQ6IENsb3VkTGltaXRzO1xuICBtYWlsOiB7XG4gICAgc2VudDogTWFpbExpbWl0c1ZhbHVlcztcbiAgICByZWNlaXZlZDogTWFpbExpbWl0c1ZhbHVlcztcbiAgfTtcbn07XG5cbmV4cG9ydCBjbGFzcyBCYXNlQ2xpZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBnZXRCYXNlVXJsID0gKFxuICAgIGVudjogU2VjcmVjeUVudiA9IFwicHJvZFwiLFxuICAgIGdyYXBoY2RuID0gdHJ1ZVxuICApOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IGFwaVVybCA9IHByb2Nlc3MuZW52Lk5FWFRfUFVCTElDX1NFQ1JFQ1lfQVBJX1VSTDtcbiAgICBpZiAoYXBpVXJsKSB7XG4gICAgICByZXR1cm4gYXBpVXJsO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZW52KSB7XG4gICAgICBjYXNlIFwicHJvZFwiOlxuICAgICAgICByZXR1cm4gZ3JhcGhjZG5cbiAgICAgICAgICA/IFwiaHR0cHM6Ly9zZWNyZWN5LmdyYXBoY2RuLmFwcFwiXG4gICAgICAgICAgOiBcImh0dHBzOi8vYXBpLnNlY3JlY3kubWUvZ3JhcGhxbFwiO1xuICAgICAgY2FzZSBcImRldlwiOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9hcGkuZGV2LnNlY3JlY3kubWUvZ3JhcGhxbFwiO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfZ2V0QmFzZUNsaWVudCA9IChcbiAgICBlbnY6IFNlY3JlY3lFbnYsXG4gICAgc2Vzc2lvbj86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgKTogUmV0dXJuVHlwZTx0eXBlb2YgVGh1bmRlcj4gPT5cbiAgICBjcmVhdGVUaHVuZGVyKEJhc2VDbGllbnQuZ2V0QmFzZVVybChlbnYpLCBzZXNzaW9uKTtcblxuICBwcm90ZWN0ZWQgY2xpZW50OiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPjtcblxuICBwdWJsaWMgc2Vzc2lvbklkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2Vzc2lvbjogc3RyaW5nLCBlbnY6IFNlY3JlY3lFbnYpIHtcbiAgICB0aGlzLnNlc3Npb25JZCA9IHNlc3Npb247XG4gICAgdGhpcy5jbGllbnQgPSBCYXNlQ2xpZW50Ll9nZXRCYXNlQ2xpZW50KGVudiwgc2Vzc2lvbik7XG4gIH1cblxuICBhc3luYyBzZXNzaW9ucygpOiBQcm9taXNlPFxuICAgIFN1Y2Nlc3NSZXNwb25zZTxVc2VyU2Vzc2lvbltdPiB8IEVycm9yTm90Rm91bmQgfCBudWxsXG4gID4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNsaWVudChcInF1ZXJ5XCIpKHtcbiAgICAgIHVzZXI6IFtcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yTm90Rm91bmRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGZpZWxkOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBVc2VyUmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZXI6IHtcbiAgICAgICAgICAgICAgc2Vzc2lvbnM6IHtcbiAgICAgICAgICAgICAgICBpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBsYXN0QWN0aXZpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgdXNlckFnZW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIGlwOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgY291bnRyeTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhcHBTZXNzaW9uczoge1xuICAgICAgICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICBsYXN0QWN0aXZpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICB1c2VyQWdlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICBpcDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGNpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICBjb3VudHJ5OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgdXNlckFwcDoge1xuICAgICAgICAgICAgICAgICAgICBhcHA6IHtcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghZGF0YS51c2VyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgdXNlclJlc3BvbnNlID0gZGF0YS51c2VyO1xuICAgIGlmICh1c2VyUmVzcG9uc2UuX190eXBlbmFtZSA9PT0gXCJVc2VyUmVzcG9uc2VcIikge1xuICAgICAgaWYgKCF1c2VyUmVzcG9uc2UudXNlcikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNlc3Npb25zOiBVc2VyU2Vzc2lvbltdID1cbiAgICAgICAgdXNlclJlc3BvbnNlLnVzZXIuc2Vzc2lvbnMubWFwKHMgPT4gKHtcbiAgICAgICAgICBpZDogcy5pZCxcbiAgICAgICAgICBpcDogcy5pcCxcbiAgICAgICAgICBjaXR5OiBzLmNpdHksXG4gICAgICAgICAgY291bnRyeTogcy5jb3VudHJ5LFxuICAgICAgICAgIGxhc3RBY3Rpdml0eTogcy5sYXN0QWN0aXZpdHkgPyBuZXcgRGF0ZShzLmxhc3RBY3Rpdml0eSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgdXNlckFnZW50OiBzLnVzZXJBZ2VudCxcbiAgICAgICAgICBhcHBTZXNzaW9uczogcy5hcHBTZXNzaW9ucy5tYXAoYSA9PiAoe1xuICAgICAgICAgICAgaWQ6IGEuaWQsXG4gICAgICAgICAgICBpcDogYS5pcCxcbiAgICAgICAgICAgIGNpdHk6IGEuY2l0eSxcbiAgICAgICAgICAgIGNvdW50cnk6IGEuY291bnRyeSxcbiAgICAgICAgICAgIGxhc3RBY3Rpdml0eTogYS5sYXN0QWN0aXZpdHkgPyBuZXcgRGF0ZShhLmxhc3RBY3Rpdml0eSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB1c2VyQWdlbnQ6IGEudXNlckFnZW50LFxuICAgICAgICAgICAgYXBwOiBhLnVzZXJBcHA/LmFwcC5uYW1lID8/IFwiXCJcbiAgICAgICAgICB9KSlcbiAgICAgICAgfSkpID8/IFtdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgICAgZGF0YTogc2Vzc2lvbnNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHVzZXJSZXNwb25zZTtcbiAgfVxuXG4gIGFzeW5jIGxvZ291dChzZXNzaW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFzZXNzaW9uSWQpIHtcbiAgICAgIGNvbnN0IGxvY2FsID0gZ2V0U3RvcmFnZShmYWxzZSk7XG4gICAgICBjb25zdCBzZXNzaW9uID0gZ2V0U3RvcmFnZSh0cnVlKTtcbiAgICAgIGxvY2FsLmp3dC5jbGVhcigpO1xuICAgICAgbG9jYWwudXNlckFwcEtleXMuY2xlYXIoKTtcbiAgICAgIGxvY2FsLnVzZXJBcHBTZXNzaW9uLmNsZWFyKCk7XG4gICAgICBzZXNzaW9uLmp3dC5jbGVhcigpO1xuICAgICAgc2Vzc2lvbi51c2VyQXBwS2V5cy5jbGVhcigpO1xuICAgICAgc2Vzc2lvbi51c2VyQXBwU2Vzc2lvbi5jbGVhcigpO1xuICAgICAgdXNlcnNDYWNoZS5jbGVhcigpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jbGllbnQoXCJtdXRhdGlvblwiKSh7XG4gICAgICAgIGxvZ291dDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlc3Npb25JZDogc2Vzc2lvbklkXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiLi4ub24gRXJyb3JCYXNpY1wiOiB7XG4gICAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIi4uLm9uIExvZ291dFJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgICAgbG9nb3V0OiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbWU8VCBleHRlbmRzIFdpdGhQdWJsaWNLZXkgPSBXaXRoUHVibGljS2V5PihcbiAgICBwYXJhbXM/OiBUXG4gICk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPFVzZXI8VD4+IHwgRXJyb3JOb3RGb3VuZCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyKHBhcmFtcyB8fCAoeyB3aXRoUHVibGljS2V5OiB0cnVlIH0gYXMgVCkpO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIHVzZXI8VCBleHRlbmRzIFN0YXRpY0dldFVzZXJQYXJhbXM+KFxuICAgIHBhcmFtczogVCxcbiAgICBzZXNzaW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPFVzZXI8VD4+IHwgRXJyb3JOb3RGb3VuZCB8IG51bGw+IHtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgZ2V0VXNlcjxUPih7XG4gICAgICBjbGllbnQ6IHRoaXMuX2dldEJhc2VDbGllbnQocGFyYW1zLmVudiwgc2Vzc2lvbklkKSxcbiAgICAgIHVzZXJJZDogcGFyYW1zLnVzZXJJZCxcbiAgICAgIHdpdGhQdWJsaWNLZXk6IHBhcmFtcy53aXRoUHVibGljS2V5XG4gICAgfSk7XG5cbiAgICBpZiAoIXVzZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh1c2VyLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RGb3VuZFwiKSB7XG4gICAgICByZXR1cm4gdXNlcjtcbiAgICB9XG5cbiAgICBpZiAodXNlcikge1xuICAgICAgdXNlcnNDYWNoZS5zZXQodXNlci5kYXRhLmlkLCB1c2VyLmRhdGEpO1xuICAgIH1cblxuICAgIHJldHVybiB1c2VyO1xuICB9XG5cbiAgYXN5bmMgdXNlcjxUIGV4dGVuZHMgQ2xhc3NHZXRVc2VyUGFyYW1zPihcbiAgICBwYXJhbXM6IFRcbiAgKTogUHJvbWlzZTxTdWNjZXNzUmVzcG9uc2U8VXNlcjxUPj4gfCBFcnJvck5vdEZvdW5kIHwgbnVsbD4ge1xuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCBnZXRVc2VyPFQ+KHtcbiAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICB1c2VySWQ6IHBhcmFtcy51c2VySWQsXG4gICAgICB3aXRoUHVibGljS2V5OiBwYXJhbXMud2l0aFB1YmxpY0tleVxuICAgIH0pO1xuXG4gICAgaWYgKCF1c2VyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodXNlci5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90Rm91bmRcIikge1xuICAgICAgcmV0dXJuIHVzZXI7XG4gICAgfVxuXG4gICAgaWYgKHVzZXIpIHtcbiAgICAgIHVzZXJzQ2FjaGUuc2V0KHVzZXIuZGF0YS5pZCwgdXNlci5kYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdXNlcjtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVByb2ZpbGUoe1xuICAgIGZpcnN0bmFtZSxcbiAgICBsYXN0bmFtZSxcbiAgICBsYW5nXG4gIH06IHtcbiAgICBmaXJzdG5hbWU6IHN0cmluZyB8IG51bGw7XG4gICAgbGFzdG5hbWU6IHN0cmluZyB8IG51bGw7XG4gICAgbGFuZzogTGFuZyB8IG51bGw7XG4gIH0pOiBQcm9taXNlPFxuICAgIFN1Y2Nlc3NSZXNwb25zZTxVc2VyPiB8IEVycm9yTm90Rm91bmQgfCBFcnJvckFjY2Vzc0RlbmllZCB8IG51bGxcbiAgPiB7XG4gICAgY29uc3QgeyB1cGRhdGVQcm9maWxlIH0gPSBhd2FpdCB0aGlzLmNsaWVudChcIm11dGF0aW9uXCIpKHtcbiAgICAgIHVwZGF0ZVByb2ZpbGU6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZpcnN0bmFtZSxcbiAgICAgICAgICBsYXN0bmFtZSxcbiAgICAgICAgICBsYW5nXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yTm90Rm91bmRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gVXBkYXRlUHJvZmlsZVJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICB1cGRhdGVQcm9maWxlOiB7XG4gICAgICAgICAgICAgIGlkOiB0cnVlLFxuICAgICAgICAgICAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgICAgICAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgICBsYW5nOiB0cnVlLFxuICAgICAgICAgICAgICBlbWFpbDogdHJ1ZSxcbiAgICAgICAgICAgICAgcGhvbmU6IHRydWUsXG4gICAgICAgICAgICAgIHJvbGU6IHRydWUsXG4gICAgICAgICAgICAgIGRlbGV0ZWRBdDogdHJ1ZSxcbiAgICAgICAgICAgICAgbGFzdExvZ2luOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIXVwZGF0ZVByb2ZpbGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh1cGRhdGVQcm9maWxlLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIHVwZGF0ZVByb2ZpbGU7XG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZVByb2ZpbGUuX190eXBlbmFtZSA9PT0gXCJFcnJvck5vdEZvdW5kXCIpIHtcbiAgICAgIHJldHVybiB1cGRhdGVQcm9maWxlO1xuICAgIH1cblxuICAgIGlmICghdXBkYXRlUHJvZmlsZS51cGRhdGVQcm9maWxlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZW1haWw6IHVwZGF0ZVByb2ZpbGUudXBkYXRlUHJvZmlsZS5lbWFpbCxcbiAgICAgICAgZmlyc3RuYW1lOiB1cGRhdGVQcm9maWxlLnVwZGF0ZVByb2ZpbGUuZmlyc3RuYW1lLFxuICAgICAgICBpZDogdXBkYXRlUHJvZmlsZS51cGRhdGVQcm9maWxlLmlkLFxuICAgICAgICBsYW5nOiB1cGRhdGVQcm9maWxlLnVwZGF0ZVByb2ZpbGUubGFuZyxcbiAgICAgICAgbGFzdExvZ2luOiBuZXcgRGF0ZSh1cGRhdGVQcm9maWxlLnVwZGF0ZVByb2ZpbGUubGFzdExvZ2luKSxcbiAgICAgICAgbGFzdG5hbWU6IHVwZGF0ZVByb2ZpbGUudXBkYXRlUHJvZmlsZS5sYXN0bmFtZSxcbiAgICAgICAgcGhvbmU6IHVwZGF0ZVByb2ZpbGUudXBkYXRlUHJvZmlsZS5waG9uZSxcbiAgICAgICAgcm9sZTogdXBkYXRlUHJvZmlsZS51cGRhdGVQcm9maWxlLnJvbGUsXG4gICAgICAgIGRlbGV0ZWRBdDogdXBkYXRlUHJvZmlsZS51cGRhdGVQcm9maWxlLmRlbGV0ZWRBdFxuICAgICAgICAgID8gbmV3IERhdGUodXBkYXRlUHJvZmlsZS51cGRhdGVQcm9maWxlLmRlbGV0ZWRBdClcbiAgICAgICAgICA6IG51bGxcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIHBsYW5zKFxuICAgIGVudjogU2VjcmVjeUVudixcbiAgICBzZXNzaW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPFBsYW5bXT4gfCBudWxsPiB7XG4gICAgY29uc3QgeyBwbGFucyB9ID0gYXdhaXQgQmFzZUNsaWVudC5fZ2V0QmFzZUNsaWVudChlbnYsIHNlc3Npb25JZCkoXCJxdWVyeVwiKSh7XG4gICAgICBwbGFuczoge1xuICAgICAgICBcIi4uLm9uIFBsYW5SZXNwb25zZVwiOiB7XG4gICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICBwbGFuOiB7XG4gICAgICAgICAgICBraW5kOiB0cnVlLFxuICAgICAgICAgICAgY29kZXM6IHRydWUsXG4gICAgICAgICAgICBsaW1pdHM6IHtcbiAgICAgICAgICAgICAgZG93bmxvYWRCYW5kd2lkdGg6IHRydWUsXG4gICAgICAgICAgICAgIGRvd25sb2FkQ291bnQ6IHRydWUsXG4gICAgICAgICAgICAgIGhhcmRGaWxlQ291bnQ6IHRydWUsXG4gICAgICAgICAgICAgIGhhcmRGaWxlU2l6ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgcGVyRmlsZVNpemU6IHRydWUsXG4gICAgICAgICAgICAgIHVwbG9hZEJhbmR3aWR0aDogdHJ1ZSxcbiAgICAgICAgICAgICAgdXBsb2FkQ291bnQ6IHRydWUsXG4gICAgICAgICAgICAgIHJlY2VpdmVkTWFpbHM6IHtcbiAgICAgICAgICAgICAgICBjb3VudDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBmaWxlQ291bnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZmlsZVNpemU6IHRydWUsXG4gICAgICAgICAgICAgICAgaGFyZENvdW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIGhhcmRGaWxlQ291bnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgaGFyZEZpbGVTaXplOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBlckZpbGVTaXplOiB0cnVlXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHNlbnRNYWlsczoge1xuICAgICAgICAgICAgICAgIGNvdW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIGZpbGVDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBmaWxlU2l6ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBoYXJkQ291bnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgaGFyZEZpbGVDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBoYXJkRmlsZVNpemU6IHRydWUsXG4gICAgICAgICAgICAgICAgcGVyRmlsZVNpemU6IHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFwbGFucykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiBwbGFucy5wbGFuXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHBheShcbiAgICBwbGFuQ29kZTogU2VjcmVjeVBsYW5zQ29kZXMsXG4gICAgaW5wdXQ6IFBheUlucHV0LFxuICAgIGF1dG9SZW5ldz86IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPGJvb2xlYW4+IHwgRXJyb3JBY2Nlc3NEZW5pZWQgfCBudWxsPiB7XG4gICAgY29uc3QgeyBwYXkgfSA9IGF3YWl0IHRoaXMuY2xpZW50KFwibXV0YXRpb25cIikoe1xuICAgICAgcGF5OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICBwbGFuQ29kZSxcbiAgICAgICAgICBhdXRvUmVuZXdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gUGF5UmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIHBheTogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCFwYXkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChwYXkuX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gcGF5O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogcGF5LnBheSA/PyBmYWxzZVxuICAgIH07XG4gIH1cblxuICBhc3luYyBjYW5jZWxQYXltZW50KCk6IFByb21pc2U8XG4gICAgU3VjY2Vzc1Jlc3BvbnNlPGJvb2xlYW4+IHwgRXJyb3JBY2Nlc3NEZW5pZWQgfCBudWxsXG4gID4ge1xuICAgIGNvbnN0IHsgY2FuY2VsUGF5bWVudCB9ID0gYXdhaXQgdGhpcy5jbGllbnQoXCJtdXRhdGlvblwiKSh7XG4gICAgICBjYW5jZWxQYXltZW50OiB7XG4gICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIi4uLm9uIENhbmNlbFBheW1lbnRSZXNwb25zZVwiOiB7XG4gICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICBjYW5jZWxQYXltZW50OiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghY2FuY2VsUGF5bWVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGNhbmNlbFBheW1lbnQuX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gY2FuY2VsUGF5bWVudDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IGNhbmNlbFBheW1lbnQuY2FuY2VsUGF5bWVudCA/PyBmYWxzZVxuICAgIH07XG4gIH1cblxuICBhc3luYyBwYXltZW50SW5mb3MoKTogUHJvbWlzZTxcbiAgICBTdWNjZXNzUmVzcG9uc2U8UGF5bWVudEluZm9zPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgbnVsbFxuICA+IHtcbiAgICBjb25zdCB7IHBheW1lbnRJbmZvcyB9ID0gYXdhaXQgdGhpcy5jbGllbnQoXCJxdWVyeVwiKSh7XG4gICAgICBwYXltZW50SW5mb3M6IHtcbiAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwiLi4ub24gUGF5bWVudEluZm9zUmVzcG9uc2VcIjoge1xuICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgcGF5bWVudEluZm9zOiB7XG4gICAgICAgICAgICBob3N0ZWRVcmw6IHRydWUsXG4gICAgICAgICAgICBjdXJyZW50U3Vic2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgIGF1dG9yZW5ldzogdHJ1ZSxcbiAgICAgICAgICAgICAgYWN0aXZhdGVkQXQ6IHRydWUsXG4gICAgICAgICAgICAgIGN1cnJlbnRQZXJpb2RFbmRzQXQ6IHRydWUsXG4gICAgICAgICAgICAgIGN1cnJlbnRQZXJpb2RTdGFydGVkQXQ6IHRydWUsXG4gICAgICAgICAgICAgIGNhbmNlbGVkQXQ6IHRydWUsXG4gICAgICAgICAgICAgIGNyZWF0ZWRBdDogdHJ1ZSxcbiAgICAgICAgICAgICAgZXhwaXJlc0F0OiB0cnVlLFxuICAgICAgICAgICAgICBwYXVzZWRBdDogdHJ1ZSxcbiAgICAgICAgICAgICAgdHJpYWxFbmRzQXQ6IHRydWUsXG4gICAgICAgICAgICAgIHRyaWFsU3RhcnRlZEF0OiB0cnVlLFxuICAgICAgICAgICAgICB1cGRhdGVkQXQ6IHRydWUsXG4gICAgICAgICAgICAgIHN0YXRlOiB0cnVlLFxuICAgICAgICAgICAgICBjb2xsZWN0aW9uTWV0aG9kOiB0cnVlLFxuICAgICAgICAgICAgICBwbGFuOiB0cnVlLFxuICAgICAgICAgICAgICBwbGFuQ29kZTogdHJ1ZSxcbiAgICAgICAgICAgICAgdG90YWw6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbnZvaWNlczoge1xuICAgICAgICAgICAgICBwZGY6IHRydWUsXG4gICAgICAgICAgICAgIGRhdGU6IHRydWUsXG4gICAgICAgICAgICAgIGR1ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgc3RhdHVzOiB0cnVlLFxuICAgICAgICAgICAgICB0b3RhbDogdHJ1ZSxcbiAgICAgICAgICAgICAgbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgICAgY3VycmVuY3k6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcGF5bWVudEluZm9zKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAocGF5bWVudEluZm9zLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIHBheW1lbnRJbmZvcztcbiAgICB9XG5cbiAgICBpZiAoIXBheW1lbnRJbmZvcy5wYXltZW50SW5mb3MpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBpbnRlcm5hbFRvUGF5bWVudEluZm9zKHBheW1lbnRJbmZvcy5wYXltZW50SW5mb3MpO1xuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogcmVzdWx0XG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGxpbWl0cygpOiBQcm9taXNlPFxuICAgIHwgU3VjY2Vzc1Jlc3BvbnNlPFF1ZXJ5TGltaXRzPlxuICAgIHwgRXJyb3JBY2Nlc3NEZW5pZWRcbiAgICB8IEVycm9yTm90RXhpc3RcbiAgICB8IEVycm9yTGltaXRcbiAgICB8IEVycm9yTm90Rm91bmRcbiAgICB8IG51bGxcbiAgPiB7XG4gICAgY29uc3QgeyBsaW1pdHMgfSA9IGF3YWl0IHRoaXMuY2xpZW50KFwicXVlcnlcIikoe1xuICAgICAgbGltaXRzOiB7XG4gICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIi4uLm9uIEVycm9yTGltaXRcIjoge1xuICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIi4uLm9uIEVycm9yTm90RXhpc3RcIjoge1xuICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIi4uLm9uIEVycm9yTm90Rm91bmRcIjoge1xuICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIi4uLm9uIFF1ZXJ5TGltaXRzXCI6IHtcbiAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgIGNsb3VkOiB7XG4gICAgICAgICAgICBzaXplOiB0cnVlLFxuICAgICAgICAgICAgbWF4U2l6ZTogdHJ1ZSxcbiAgICAgICAgICAgIGNvdW50OiB0cnVlLFxuICAgICAgICAgICAgbWF4Q291bnQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1haWw6IHtcbiAgICAgICAgICAgIHJlY2VpdmVkOiB7XG4gICAgICAgICAgICAgIGNvdW50OiB0cnVlLFxuICAgICAgICAgICAgICBtYXhDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgICAgZmlsZUNvdW50OiB0cnVlLFxuICAgICAgICAgICAgICBtYXhGaWxlQ291bnQ6IHRydWUsXG4gICAgICAgICAgICAgIGZpbGVTaXplOiB0cnVlLFxuICAgICAgICAgICAgICBtYXhGaWxlU2l6ZTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlbnQ6IHtcbiAgICAgICAgICAgICAgY291bnQ6IHRydWUsXG4gICAgICAgICAgICAgIG1heENvdW50OiB0cnVlLFxuICAgICAgICAgICAgICBmaWxlQ291bnQ6IHRydWUsXG4gICAgICAgICAgICAgIG1heEZpbGVDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgICAgZmlsZVNpemU6IHRydWUsXG4gICAgICAgICAgICAgIG1heEZpbGVTaXplOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIWxpbWl0cykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGxpbWl0cy5fX3R5cGVuYW1lID09PSBcIkVycm9yQWNjZXNzRGVuaWVkXCIpIHtcbiAgICAgIHJldHVybiBsaW1pdHM7XG4gICAgfVxuICAgIGlmIChsaW1pdHMuX190eXBlbmFtZSA9PT0gXCJFcnJvck5vdEV4aXN0XCIpIHtcbiAgICAgIHJldHVybiBsaW1pdHM7XG4gICAgfVxuICAgIGlmIChsaW1pdHMuX190eXBlbmFtZSA9PT0gXCJFcnJvckxpbWl0XCIpIHtcbiAgICAgIHJldHVybiBsaW1pdHM7XG4gICAgfVxuICAgIGlmIChsaW1pdHMuX190eXBlbmFtZSA9PT0gXCJFcnJvck5vdEZvdW5kXCIpIHtcbiAgICAgIHJldHVybiBsaW1pdHM7XG4gICAgfVxuXG4gICAgY29uc3QgeyBjbG91ZCwgbWFpbCB9ID0gbGltaXRzO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGNsb3VkOiB7XG4gICAgICAgICAgY291bnQ6IEJpZ0ludChjbG91ZC5jb3VudCksXG4gICAgICAgICAgc2l6ZTogQmlnSW50KGNsb3VkLnNpemUpLFxuICAgICAgICAgIG1heENvdW50OiBjbG91ZC5tYXhDb3VudCA/IEJpZ0ludChjbG91ZC5tYXhDb3VudCkgOiBudWxsLFxuICAgICAgICAgIG1heFNpemU6IGNsb3VkLm1heFNpemUgPyBCaWdJbnQoY2xvdWQubWF4U2l6ZSkgOiBudWxsXG4gICAgICAgIH0sXG4gICAgICAgIG1haWw6IHtcbiAgICAgICAgICByZWNlaXZlZDoge1xuICAgICAgICAgICAgY291bnQ6IEJpZ0ludChtYWlsLnJlY2VpdmVkLmNvdW50KSxcbiAgICAgICAgICAgIG1heENvdW50OiBtYWlsLnJlY2VpdmVkLm1heENvdW50XG4gICAgICAgICAgICAgID8gQmlnSW50KG1haWwucmVjZWl2ZWQubWF4Q291bnQpXG4gICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICAgIGZpbGVDb3VudDogQmlnSW50KG1haWwucmVjZWl2ZWQuZmlsZUNvdW50KSxcbiAgICAgICAgICAgIG1heEZpbGVDb3VudDogbWFpbC5yZWNlaXZlZC5tYXhGaWxlQ291bnRcbiAgICAgICAgICAgICAgPyBCaWdJbnQobWFpbC5yZWNlaXZlZC5tYXhGaWxlQ291bnQpXG4gICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICAgIGZpbGVTaXplOiBCaWdJbnQobWFpbC5yZWNlaXZlZC5maWxlU2l6ZSksXG4gICAgICAgICAgICBtYXhGaWxlU2l6ZTogbWFpbC5yZWNlaXZlZC5tYXhGaWxlU2l6ZVxuICAgICAgICAgICAgICA/IEJpZ0ludChtYWlsLnJlY2VpdmVkLm1heEZpbGVTaXplKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNlbnQ6IHtcbiAgICAgICAgICAgIGNvdW50OiBCaWdJbnQobWFpbC5zZW50LmNvdW50KSxcbiAgICAgICAgICAgIG1heENvdW50OiBtYWlsLnNlbnQubWF4Q291bnQgPyBCaWdJbnQobWFpbC5zZW50Lm1heENvdW50KSA6IG51bGwsXG4gICAgICAgICAgICBmaWxlQ291bnQ6IEJpZ0ludChtYWlsLnNlbnQuZmlsZUNvdW50KSxcbiAgICAgICAgICAgIG1heEZpbGVDb3VudDogbWFpbC5zZW50Lm1heEZpbGVDb3VudFxuICAgICAgICAgICAgICA/IEJpZ0ludChtYWlsLnNlbnQubWF4RmlsZUNvdW50KVxuICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICBmaWxlU2l6ZTogQmlnSW50KG1haWwuc2VudC5maWxlU2l6ZSksXG4gICAgICAgICAgICBtYXhGaWxlU2l6ZTogbWFpbC5zZW50Lm1heEZpbGVTaXplXG4gICAgICAgICAgICAgID8gQmlnSW50KG1haWwuc2VudC5tYXhGaWxlU2l6ZSlcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGdvZEZhdGhlckFuZENoaWxkcmVuKCk6IFByb21pc2U8XG4gICAgU3VjY2Vzc1Jlc3BvbnNlPEdvZEZhdGhlckFuZENoaWxkcmVuPiB8IEVycm9yTm90Rm91bmQgfCBudWxsXG4gID4ge1xuICAgIGNvbnN0IHsgdXNlciB9ID0gYXdhaXQgdGhpcy5jbGllbnQoXCJxdWVyeVwiKSh7XG4gICAgICB1c2VyOiBbXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvck5vdEZvdW5kXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIFVzZXJSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgZ29kQ2hpbGRyZW46IHtcbiAgICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgICAgbGFzdG5hbWU6IHRydWUsXG4gICAgICAgICAgICAgIGVtYWlsOiB0cnVlLFxuICAgICAgICAgICAgICBwaG9uZTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdvZEZhdGhlcjoge1xuICAgICAgICAgICAgICBpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgZmlyc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgICAgZW1haWw6IHRydWUsXG4gICAgICAgICAgICAgIHBob25lOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIXVzZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh1c2VyLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RGb3VuZFwiKSB7XG4gICAgICByZXR1cm4gdXNlcjtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZ29kQ2hpbGRyZW46IHVzZXIuZ29kQ2hpbGRyZW4sXG4gICAgICAgIGdvZEZhdGhlcjogdXNlci5nb2RGYXRoZXJcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIHVwZGF0ZUFwcERCQ29uZmlnKHtcbiAgICBhcHBDb2RlLFxuICAgIGNvbmZpZyxcbiAgICBlbnYsXG4gICAgc2Vzc2lvbklkXG4gIH06IHtcbiAgICBhcHBDb2RlOiBzdHJpbmc7XG4gICAgY29uZmlnOiBBcHBEQkNvbmZpZztcbiAgICBlbnY6IFNlY3JlY3lFbnY7XG4gICAgc2Vzc2lvbklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPEFwcERCQ29uZmlnPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgZGJDb25maWdNdXRhdGlvbiB9ID0gYXdhaXQgQmFzZUNsaWVudC5fZ2V0QmFzZUNsaWVudChcbiAgICAgIGVudixcbiAgICAgIHNlc3Npb25JZFxuICAgICkoXCJtdXRhdGlvblwiKSh7XG4gICAgICBkYkNvbmZpZ011dGF0aW9uOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhcHBDb2RlLFxuICAgICAgICAgIGNvbmZpZzogSlNPTi5zdHJpbmdpZnkoY29uZmlnKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBEYkNvbmZpZ011dGF0aW9uUmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGRiQ29uZmlnTXV0YXRpb246IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghZGJDb25maWdNdXRhdGlvbikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGRiQ29uZmlnTXV0YXRpb24uX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gZGJDb25maWdNdXRhdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IGRiQ29uZmlnTXV0YXRpb24uZGJDb25maWdNdXRhdGlvblxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0QXBwREJDb25maWcoXG4gICAgYXBwQ29kZTogc3RyaW5nLFxuICAgIGVudjogU2VjcmVjeUVudixcbiAgICBzZXNzaW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8XG4gICAgfCBTdWNjZXNzUmVzcG9uc2U8QXBwREJDb25maWc+XG4gICAgfCBFcnJvckFjY2Vzc0RlbmllZFxuICAgIHwgRXJyb3JOb3RGb3VuZFxuICAgIHwgRXJyb3JOb3RFeGlzdFxuICAgIHwgbnVsbFxuICA+IHtcbiAgICBjb25zdCB7IGRiQ29uZmlnIH0gPSBhd2FpdCBCYXNlQ2xpZW50Ll9nZXRCYXNlQ2xpZW50KFxuICAgICAgZW52LFxuICAgICAgc2Vzc2lvbklkXG4gICAgKShcInF1ZXJ5XCIpKHtcbiAgICAgIGRiQ29uZmlnOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhcHBDb2RlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yTm90Rm91bmRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRXJyb3JOb3RFeGlzdFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBEYkNvbmZpZ1Jlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBqc29uOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIWRiQ29uZmlnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoZGJDb25maWcuX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gZGJDb25maWc7XG4gICAgfVxuXG4gICAgaWYgKGRiQ29uZmlnLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RGb3VuZFwiKSB7XG4gICAgICByZXR1cm4gZGJDb25maWc7XG4gICAgfVxuXG4gICAgaWYgKGRiQ29uZmlnLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RFeGlzdFwiKSB7XG4gICAgICByZXR1cm4gZGJDb25maWc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiBkYkNvbmZpZy5qc29uXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBnZXRGQVEoe1xuICAgIGxhbmcsXG4gICAgZW52LFxuICAgIHNlc3Npb25JZFxuICB9OiB7XG4gICAgbGFuZz86IExhbmc7XG4gICAgZW52OiBTZWNyZWN5RW52O1xuICAgIHNlc3Npb25JZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH0pOiBQcm9taXNlPFN1Y2Nlc3NSZXNwb25zZTxGYXFJdGVtW10+IHwgRXJyb3JBY2Nlc3NEZW5pZWQgfCBudWxsPiB7XG4gICAgY29uc3QgeyBmYXEgfSA9IGF3YWl0IEJhc2VDbGllbnQuX2dldEJhc2VDbGllbnQoZW52LCBzZXNzaW9uSWQpKFwicXVlcnlcIikoe1xuICAgICAgZmFxOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYW5nXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEZhcVJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBmYXE6IHtcbiAgICAgICAgICAgICAgYW5zd2VyOiB0cnVlLFxuICAgICAgICAgICAgICBvcmRlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgcXVlc3Rpb246IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghZmFxKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoZmFxLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGZhcTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IGZhcS5mYXFcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldEJsb2coe1xuICAgIGVudixcbiAgICBsYW5nLFxuICAgIHNlc3Npb25JZFxuICB9OiB7XG4gICAgZW52OiBTZWNyZWN5RW52O1xuICAgIGxhbmc/OiBMYW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICBzZXNzaW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB9KTogUHJvbWlzZTxTdWNjZXNzUmVzcG9uc2U8QmxvZ0l0ZW1bXT4gfCBFcnJvckxhbmdOb3RFeGlzdCB8IG51bGw+IHtcbiAgICBjb25zdCB7IGJsb2cgfSA9IGF3YWl0IEJhc2VDbGllbnQuX2dldEJhc2VDbGllbnQoZW52LCBzZXNzaW9uSWQpKFwicXVlcnlcIikoe1xuICAgICAgYmxvZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFuZ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckxhbmdOb3RFeGlzdFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBCbG9nUmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGJsb2dJdGVtczoge1xuICAgICAgICAgICAgICBpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgYmxvZ0lkOiB0cnVlLFxuICAgICAgICAgICAgICBhdXRob3I6IHRydWUsXG4gICAgICAgICAgICAgIGJvZHk6IHRydWUsXG4gICAgICAgICAgICAgIGRhdGU6IHRydWUsXG4gICAgICAgICAgICAgIGltYWdlOiB0cnVlLFxuICAgICAgICAgICAgICBpbWFnZUFsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgc3VtbWFyeTogdHJ1ZSxcbiAgICAgICAgICAgICAgdGl0bGU6IHRydWUsXG4gICAgICAgICAgICAgIG9yZGVyOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIWJsb2cpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChibG9nLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JMYW5nTm90RXhpc3RcIikge1xuICAgICAgcmV0dXJuIGJsb2c7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiBibG9nLmJsb2dJdGVtcy5tYXAoYiA9PiAoeyAuLi5iLCBkYXRlOiBuZXcgRGF0ZShiLmRhdGUpIH0pKVxuICAgIH07XG4gIH1cblxuICBhc3luYyByZXBvcnRVc2VyKFxuICAgIHJlcG9ydGVkVXNlcklkOiBzdHJpbmcsXG4gICAgY3VzdG9tTWVzc2FnZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFxuICAgIFN1Y2Nlc3NSZXNwb25zZTxTZW5kUmVwb3J0PiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgRXJyb3JOb3RGb3VuZCB8IG51bGxcbiAgPiB7XG4gICAgY29uc3QgeyBzZW5kUmVwb3J0IH0gPSBhd2FpdCB0aGlzLmNsaWVudChcIm11dGF0aW9uXCIpKHtcbiAgICAgIHNlbmRSZXBvcnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJlcG9ydGVkVXNlcklkLFxuICAgICAgICAgIGN1c3RvbU1lc3NhZ2VcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRXJyb3JOb3RGb3VuZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBTZW5kUmVwb3J0UmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIHNlbmRSZXBvcnQ6IHtcbiAgICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICAgIGN1c3RvbU1lc3NhZ2U6IHRydWUsXG4gICAgICAgICAgICAgIHVzZXI6IHtcbiAgICAgICAgICAgICAgICBpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgICAgICAgICAgICAgbGFzdG5hbWU6IHRydWUsXG4gICAgICAgICAgICAgICAgZW1haWw6IHRydWVcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmVwb3J0ZWRVc2VyOiB7XG4gICAgICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZmlyc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVtYWlsOiB0cnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghc2VuZFJlcG9ydCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHNlbmRSZXBvcnQuX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gc2VuZFJlcG9ydDtcbiAgICB9XG5cbiAgICBpZiAoc2VuZFJlcG9ydC5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90Rm91bmRcIikge1xuICAgICAgcmV0dXJuIHNlbmRSZXBvcnQ7XG4gICAgfVxuXG4gICAgaWYgKCFzZW5kUmVwb3J0LnNlbmRSZXBvcnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogc2VuZFJlcG9ydC5zZW5kUmVwb3J0XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBkZWxldGVVc2VyKHtcbiAgICBzZXNzaW9uSWQsXG4gICAgdXNlcklkLFxuICAgIGVudlxuICB9OiB7XG4gICAgc2Vzc2lvbklkOiBzdHJpbmc7XG4gICAgdXNlcklkPzogc3RyaW5nO1xuICAgIGVudjogU2VjcmVjeUVudjtcbiAgfSk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPGJvb2xlYW4+IHwgRXJyb3JBY2Nlc3NEZW5pZWQgfCBudWxsPiB7XG4gICAgY29uc3QgeyBkZWxldGVVc2VyIH0gPSBhd2FpdCBCYXNlQ2xpZW50Ll9nZXRCYXNlQ2xpZW50KFxuICAgICAgZW52LFxuICAgICAgc2Vzc2lvbklkXG4gICAgKShcIm11dGF0aW9uXCIpKHtcbiAgICAgIGRlbGV0ZVVzZXI6IFtcbiAgICAgICAge1xuICAgICAgICAgIHVzZXJJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBEZWxldGVVc2VyUmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlbGV0ZVVzZXI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghZGVsZXRlVXNlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGRlbGV0ZVVzZXIuX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gZGVsZXRlVXNlcjtcbiAgICB9XG5cbiAgICBpZiAoIWRlbGV0ZVVzZXIuZGVsZXRlVXNlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiBkZWxldGVVc2VyLmRlbGV0ZVVzZXJcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZGJHZXQ8VT4oe1xuICAgIGZpZWxkLFxuICAgIHVzZXJJZFxuICB9OiB7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICB1c2VySWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB9KTogUHJvbWlzZTxcbiAgICB8IFN1Y2Nlc3NSZXNwb25zZTxVPlxuICAgIHwgRXJyb3JBY2Nlc3NEZW5pZWRcbiAgICB8IEVycm9yTm90RXhpc3RcbiAgICB8IEVycm9yTm90Rm91bmRcbiAgICB8IG51bGxcbiAgPiB7XG4gICAgY29uc3QgeyBkYkdldCB9ID0gYXdhaXQgdGhpcy5jbGllbnQoXCJxdWVyeVwiKSh7XG4gICAgICBkYkdldDogW1xuICAgICAgICB7XG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgdXNlcklkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yTm90RXhpc3RcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRXJyb3JOb3RGb3VuZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBEYkdldFJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBqc29uOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIWRiR2V0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoZGJHZXQuX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gZGJHZXQ7XG4gICAgfVxuXG4gICAgaWYgKGRiR2V0Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RFeGlzdFwiKSB7XG4gICAgICByZXR1cm4gZGJHZXQ7XG4gICAgfVxuXG4gICAgaWYgKGRiR2V0Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RGb3VuZFwiKSB7XG4gICAgICByZXR1cm4gZGJHZXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiBkYkdldC5qc29uLnJlc1xuICAgIH07XG4gIH1cblxuICBhc3luYyBkYlNldDxUIGV4dGVuZHMgVXNlckRhdGEsIFUgZXh0ZW5kcyBEb2N1bWVudD4oe1xuICAgIHZhbHVlLFxuICAgIHVzZXJJZFxuICB9OiB7XG4gICAgdmFsdWU6IFU7XG4gICAgdXNlcklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPFQ+IHwgRXJyb3JBY2Nlc3NEZW5pZWQgfCBFcnJvck5vdEZvdW5kIHwgbnVsbD4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYHZhbHVlIHNob3VsZCBiZSBhbiBvYmplY3QgaW5jbHVkaW5nIGZpZWxkcyB5b3Ugd2FudCB0byB1cGRhdGUuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IGRiU2V0IH0gPSBhd2FpdCB0aGlzLmNsaWVudChcIm11dGF0aW9uXCIpKHtcbiAgICAgIGRiU2V0OiBbXG4gICAgICAgIHtcbiAgICAgICAgICB1c2VySWQsXG4gICAgICAgICAgdmFsdWU6IHNlcmlhbGl6ZSh2YWx1ZSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRXJyb3JOb3RGb3VuZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBEYlNldFJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBkYlNldDogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCFkYlNldCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGRiU2V0Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGRiU2V0O1xuICAgIH1cblxuICAgIGlmIChkYlNldC5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90Rm91bmRcIikge1xuICAgICAgcmV0dXJuIGRiU2V0O1xuICAgIH1cblxuICAgIGlmICghZGJTZXQuZGJTZXQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogZGJTZXQuZGJTZXQucmVzXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGRiU2VhcmNoPFQ+KHtcbiAgICBzZWFyY2gsXG4gICAgZmllbGRcbiAgfToge1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgc2VhcmNoOiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPFxuICAgIFN1Y2Nlc3NSZXNwb25zZTxUW10+IHwgRXJyb3JBY2Nlc3NEZW5pZWQgfCBFcnJvckJhc2ljIHwgRXJyb3JOb3RFeGlzdCB8IG51bGxcbiAgPiB7XG4gICAgY29uc3QgeyBkYlNlYXJjaCB9ID0gYXdhaXQgdGhpcy5jbGllbnQoXCJxdWVyeVwiKSh7XG4gICAgICBkYlNlYXJjaDogW1xuICAgICAgICB7XG4gICAgICAgICAgc2VhcmNoLFxuICAgICAgICAgIGZpZWxkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQmFzaWNcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRXJyb3JOb3RFeGlzdFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBEYlNlYXJjaFJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBqc29uOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIWRiU2VhcmNoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoZGJTZWFyY2guX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gZGJTZWFyY2g7XG4gICAgfVxuXG4gICAgaWYgKGRiU2VhcmNoLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JCYXNpY1wiKSB7XG4gICAgICByZXR1cm4gZGJTZWFyY2g7XG4gICAgfVxuXG4gICAgaWYgKGRiU2VhcmNoLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RFeGlzdFwiKSB7XG4gICAgICByZXR1cm4gZGJTZWFyY2g7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiBkYlNlYXJjaC5qc29uXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUZvbGRlcih7XG4gICAgaWRcbiAgfToge1xuICAgIGlkOiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPFxuICAgIFN1Y2Nlc3NSZXNwb25zZTxib29sZWFuPiB8IEVycm9yTm90RXhpc3QgfCBFcnJvckFjY2Vzc0RlbmllZCB8IG51bGxcbiAgPiB7XG4gICAgY29uc3QgeyBkZWxldGVGb2xkZXIgfSA9IGF3YWl0IHRoaXMuY2xpZW50KFwibXV0YXRpb25cIikoe1xuICAgICAgZGVsZXRlRm9sZGVyOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvck5vdEV4aXN0XCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIERlbGV0ZUZvbGRlclJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBkZWxldGVGb2xkZXI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghZGVsZXRlRm9sZGVyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoZGVsZXRlRm9sZGVyLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RFeGlzdFwiKSB7XG4gICAgICByZXR1cm4gZGVsZXRlRm9sZGVyO1xuICAgIH1cblxuICAgIGlmIChkZWxldGVGb2xkZXIuX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gZGVsZXRlRm9sZGVyO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogZGVsZXRlRm9sZGVyLmRlbGV0ZUZvbGRlciA/PyBmYWxzZVxuICAgIH07XG4gIH1cblxuICBhc3luYyBtb3ZlRm9sZGVycyh7XG4gICAgZm9sZGVyc0lkLFxuICAgIHBhcmVudEZvbGRlcklkXG4gIH06IHtcbiAgICBmb2xkZXJzSWQ6IHN0cmluZ1tdO1xuICAgIHBhcmVudEZvbGRlcklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPGJvb2xlYW4+IHwgRXJyb3JBY2Nlc3NEZW5pZWQgfCBudWxsPiB7XG4gICAgY29uc3QgeyBtb3ZlRm9sZGVycyB9ID0gYXdhaXQgdGhpcy5jbGllbnQoXCJtdXRhdGlvblwiKSh7XG4gICAgICBtb3ZlRm9sZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgZm9sZGVyc0lkLFxuICAgICAgICAgIHBhcmVudEZvbGRlcklkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIE1vdmVGb2xkZXJzUmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1vdmVGb2xkZXJzOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIW1vdmVGb2xkZXJzKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAobW92ZUZvbGRlcnMuX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gbW92ZUZvbGRlcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiBtb3ZlRm9sZGVycy5tb3ZlRm9sZGVycyA/PyBmYWxzZVxuICAgIH07XG4gIH1cblxuICBhc3luYyBtb3ZlRmlsZXMoe1xuICAgIGZpbGVzSWQsXG4gICAgcGFyZW50Rm9sZGVySWRcbiAgfToge1xuICAgIGZpbGVzSWQ6IHN0cmluZ1tdO1xuICAgIHBhcmVudEZvbGRlcklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPGJvb2xlYW4+IHwgRXJyb3JBY2Nlc3NEZW5pZWQgfCBudWxsPiB7XG4gICAgY29uc3QgeyBtb3ZlRmlsZXMgfSA9IGF3YWl0IHRoaXMuY2xpZW50KFwibXV0YXRpb25cIikoe1xuICAgICAgbW92ZUZpbGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmaWxlc0lkLFxuICAgICAgICAgIHBhcmVudEZvbGRlcklkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIE1vdmVGaWxlc1Jlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtb3ZlRmlsZXM6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghbW92ZUZpbGVzKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAobW92ZUZpbGVzLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIG1vdmVGaWxlcztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IG1vdmVGaWxlcy5tb3ZlRmlsZXMgPz8gZmFsc2VcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZm9sZGVyU2l6ZSh7XG4gICAgZm9sZGVySWRcbiAgfToge1xuICAgIGZvbGRlcklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPEZvbGRlclNpemU+IHwgRXJyb3JBY2Nlc3NEZW5pZWQgfCBudWxsPiB7XG4gICAgY29uc3QgeyBmb2xkZXJTaXplIH0gPSBhd2FpdCB0aGlzLmNsaWVudChcInF1ZXJ5XCIpKHtcbiAgICAgIGZvbGRlclNpemU6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZvbGRlcklkXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEZvbGRlclNpemVSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgc2l6ZTogdHJ1ZSxcbiAgICAgICAgICAgIHNpemVCZWZvcmU6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghZm9sZGVyU2l6ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGZvbGRlclNpemUuX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gZm9sZGVyU2l6ZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgc2l6ZTogQmlnSW50KGZvbGRlclNpemUuc2l6ZSksXG4gICAgICAgIHNpemVCZWZvcmU6IEJpZ0ludChmb2xkZXJTaXplLnNpemVCZWZvcmUpXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGdldFNwb25zb3JzaGlwTGluayh7XG4gICAgYmFja1VybFxuICB9OiB7XG4gICAgYmFja1VybDogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgY29uc3QgbWUgPSBhd2FpdCB0aGlzLm1lKHsgd2l0aFB1YmxpY0tleTogZmFsc2UgfSk7XG5cbiAgICBpZiAoIW1lKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAobWUuX190eXBlbmFtZSA9PT0gXCJFcnJvck5vdEZvdW5kXCIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRMaW5rKHtcbiAgICAgIGFwcDogXCJhdXRoXCIsXG4gICAgICBwYXRoOiBgL3NpZ24tdXA/Z2Y9JHtidG9hKG1lLmRhdGEuZW1haWwpfSZhdT0ke2J0b2EoYmFja1VybCl9YFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlQXV0b0Rpc2Nvbm5lY3REZWxheSh7XG4gICAgaWQsXG4gICAgZGVsYXlcbiAgfToge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZGVsYXk6IG51bWJlciB8IG51bGw7XG4gIH0pOiBQcm9taXNlPFxuICAgIHwgU3VjY2Vzc1Jlc3BvbnNlPGJvb2xlYW4+XG4gICAgfCBFcnJvck5vdEZvdW5kXG4gICAgfCBFcnJvckFjY2Vzc0RlbmllZFxuICAgIHwgRXJyb3JCYXNpY1xuICAgIHwgbnVsbFxuICA+IHtcbiAgICBjb25zdCB7IHVwZGF0ZUF1dG9EaXNjb25uZWN0RGVsYXkgfSA9IGF3YWl0IHRoaXMuY2xpZW50KFwibXV0YXRpb25cIikoe1xuICAgICAgdXBkYXRlQXV0b0Rpc2Nvbm5lY3REZWxheTogW1xuICAgICAgICB7XG4gICAgICAgICAgdXNlcklkOiBpZCxcbiAgICAgICAgICBkZWxheTogZGVsYXkgPz8gbnVsbFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBFcnJvck5vdEZvdW5kXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQmFzaWNcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gVXBkYXRlQXV0b0Rpc2Nvbm5lY3REZWxheVJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICB1cGRhdGVBdXRvRGlzY29ubmVjdERlbGF5OiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIXVwZGF0ZUF1dG9EaXNjb25uZWN0RGVsYXkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh1cGRhdGVBdXRvRGlzY29ubmVjdERlbGF5Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIHVwZGF0ZUF1dG9EaXNjb25uZWN0RGVsYXk7XG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZUF1dG9EaXNjb25uZWN0RGVsYXkuX190eXBlbmFtZSA9PT0gXCJFcnJvckJhc2ljXCIpIHtcbiAgICAgIHJldHVybiB1cGRhdGVBdXRvRGlzY29ubmVjdERlbGF5O1xuICAgIH1cblxuICAgIGlmICh1cGRhdGVBdXRvRGlzY29ubmVjdERlbGF5Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RGb3VuZFwiKSB7XG4gICAgICByZXR1cm4gdXBkYXRlQXV0b0Rpc2Nvbm5lY3REZWxheTtcbiAgICB9XG5cbiAgICBpZiAoIXVwZGF0ZUF1dG9EaXNjb25uZWN0RGVsYXkudXBkYXRlQXV0b0Rpc2Nvbm5lY3REZWxheSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiB1cGRhdGVBdXRvRGlzY29ubmVjdERlbGF5LnVwZGF0ZUF1dG9EaXNjb25uZWN0RGVsYXlcbiAgICB9O1xuICB9XG59XG4iXX0=
2331
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9CYXNlQ2xpZW50LnRzIl0sIm5hbWVzIjpbInNlcmlhbGl6ZSIsImdldExpbmsiLCJ1c2Vyc0NhY2hlIiwiZ2V0U3RvcmFnZSIsIlNlbGVjdG9yIiwiY3JlYXRlVGh1bmRlciIsImludGVybmFsVG9QYXltZW50SW5mb3MiLCJwIiwiY3VycmVudFN1YnNjcmlwdGlvbiIsInN0YXRlIiwiY29sbGVjdGlvbk1ldGhvZCIsImFjdGl2YXRlZEF0IiwiRGF0ZSIsImNyZWF0ZWRBdCIsInVwZGF0ZWRBdCIsInRyaWFsRW5kc0F0IiwidHJpYWxTdGFydGVkQXQiLCJwYXVzZWRBdCIsImN1cnJlbnRQZXJpb2RFbmRzQXQiLCJjdXJyZW50UGVyaW9kU3RhcnRlZEF0IiwiY2FuY2VsZWRBdCIsImV4cGlyZXNBdCIsImludm9pY2VzIiwibWFwIiwiaSIsImRhdGUiLCJkdWUiLCJzdGF0dXMiLCJwbGFuc0NvZGVzIiwiaXNWYWxpZFBsYW4iLCJwbGFuQ29kZSIsImluY2x1ZGVzIiwiZ2V0VXNlclNlbGVjdG9yIiwidXNlcklkIiwid2l0aFB1YmxpY0tleSIsInVzZXIiLCJfX3R5cGVuYW1lIiwibWVzc2FnZSIsImZpZWxkIiwiaWQiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSIsImxhbmciLCJwdWJsaWNLZXkiLCJ1bmRlZmluZWQiLCJlbWFpbCIsInBob25lIiwicm9sZSIsImRlbGV0ZWRBdCIsImxhc3RMb2dpbiIsImdldFVzZXIiLCJwYXJhbXMiLCJzZWxlY3RvciIsInVzZXJFbWFpbCIsImNsaWVudCIsInVzZXJSZXNwb25zZSIsImRhdGEiLCJCYXNlQ2xpZW50Iiwic2Vzc2lvbiIsImVudiIsInNlc3Npb25JZCIsIl9nZXRCYXNlQ2xpZW50Iiwic2Vzc2lvbnMiLCJsYXN0QWN0aXZpdHkiLCJ1c2VyQWdlbnQiLCJpcCIsImNpdHkiLCJjb3VudHJ5IiwiYXBwU2Vzc2lvbnMiLCJ1c2VyQXBwIiwiYXBwIiwibmFtZSIsInMiLCJhIiwibG9nb3V0IiwibG9jYWwiLCJqd3QiLCJjbGVhciIsInVzZXJBcHBLZXlzIiwidXNlckFwcFNlc3Npb24iLCJtZSIsInNldCIsInVwZGF0ZVByb2ZpbGUiLCJwbGFucyIsInBsYW4iLCJraW5kIiwiY29kZXMiLCJsaW1pdHMiLCJkb3dubG9hZEJhbmR3aWR0aCIsImRvd25sb2FkQ291bnQiLCJoYXJkRmlsZUNvdW50IiwiaGFyZEZpbGVTaXplIiwicGVyRmlsZVNpemUiLCJ1cGxvYWRCYW5kd2lkdGgiLCJ1cGxvYWRDb3VudCIsInJlY2VpdmVkTWFpbHMiLCJjb3VudCIsImZpbGVDb3VudCIsImZpbGVTaXplIiwiaGFyZENvdW50Iiwic2VudE1haWxzIiwicGF5IiwiaW5wdXQiLCJhdXRvUmVuZXciLCJjYW5jZWxQYXltZW50IiwicGF5bWVudEluZm9zIiwiaG9zdGVkVXJsIiwiYXV0b3JlbmV3IiwidG90YWwiLCJwZGYiLCJjdXJyZW5jeSIsInJlc3VsdCIsImNsb3VkIiwic2l6ZSIsIm1heFNpemUiLCJtYXhDb3VudCIsIm1haWwiLCJyZWNlaXZlZCIsIm1heEZpbGVDb3VudCIsIm1heEZpbGVTaXplIiwic2VudCIsIkJpZ0ludCIsImdvZEZhdGhlckFuZENoaWxkcmVuIiwiZ29kQ2hpbGRyZW4iLCJnb2RGYXRoZXIiLCJ1cGRhdGVBcHBEQkNvbmZpZyIsImFwcENvZGUiLCJjb25maWciLCJkYkNvbmZpZ011dGF0aW9uIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldEFwcERCQ29uZmlnIiwiZGJDb25maWciLCJqc29uIiwiZ2V0RkFRIiwiZmFxIiwiYW5zd2VyIiwib3JkZXIiLCJxdWVzdGlvbiIsImdldEJsb2ciLCJibG9nIiwiYmxvZ0l0ZW1zIiwiYmxvZ0lkIiwiYXV0aG9yIiwiYm9keSIsImltYWdlIiwiaW1hZ2VBbHQiLCJzdW1tYXJ5IiwidGl0bGUiLCJiIiwicmVwb3J0VXNlciIsInJlcG9ydGVkVXNlcklkIiwiY3VzdG9tTWVzc2FnZSIsInNlbmRSZXBvcnQiLCJyZXBvcnRlZFVzZXIiLCJkZWxldGVVc2VyIiwiZGJHZXQiLCJyZXMiLCJkYlNldCIsInZhbHVlIiwiRXJyb3IiLCJ0b1N0cmluZyIsImRiU2VhcmNoIiwic2VhcmNoIiwiZGVsZXRlRm9sZGVyIiwibW92ZUZvbGRlcnMiLCJmb2xkZXJzSWQiLCJwYXJlbnRGb2xkZXJJZCIsIm1vdmVGaWxlcyIsImZpbGVzSWQiLCJmb2xkZXJTaXplIiwiZm9sZGVySWQiLCJzaXplQmVmb3JlIiwiZ2V0U3BvbnNvcnNoaXBMaW5rIiwiYmFja1VybCIsInBhdGgiLCJidG9hIiwidXBkYXRlQXV0b0Rpc2Nvbm5lY3REZWxheSIsImRlbGF5IiwiZ2V0QmFzZVVybCIsImdyYXBoY2RuIiwiYXBpVXJsIiwicHJvY2VzcyIsIk5FWFRfUFVCTElDX1NFQ1JFQ1lfQVBJX1VSTCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUdBLFNBQVNBLFNBQVQsUUFBMEIsTUFBMUI7QUFDQSxTQUFTQyxPQUFULFFBQXdCLG9CQUF4QjtBQUNBLFNBQVNDLFVBQVQsUUFBMkIsWUFBM0I7QUFHQSxTQUFTQyxVQUFULFFBQTJCLHFCQUEzQjtBQVFBLFNBQVNDLFFBQVQsUUFBeUIsaUJBQXpCO0FBQ0EsU0FBU0MsYUFBVCxRQUE4QixrQkFBOUI7O0FBc0xBLFNBQVNDLHNCQUFULENBQWdDQyxDQUFoQyxFQUF1RTtBQUNyRSx5Q0FDS0EsQ0FETDtBQUVFQyxJQUFBQSxtQkFBbUIsa0NBQ2RELENBQUMsQ0FBQ0MsbUJBRFk7QUFFakJDLE1BQUFBLEtBQUssRUFBRUYsQ0FBQyxDQUFDQyxtQkFBRixDQUFzQkMsS0FGWjtBQUdqQkMsTUFBQUEsZ0JBQWdCLEVBQUVILENBQUMsQ0FBQ0MsbUJBQUYsQ0FDZkUsZ0JBSmM7QUFLakJDLE1BQUFBLFdBQVcsRUFBRUosQ0FBQyxDQUFDQyxtQkFBRixDQUFzQkcsV0FBdEIsR0FDVCxJQUFJQyxJQUFKLENBQVNMLENBQUMsQ0FBQ0MsbUJBQUYsQ0FBc0JHLFdBQS9CLENBRFMsR0FFVCxJQVBhO0FBUWpCRSxNQUFBQSxTQUFTLEVBQUVOLENBQUMsQ0FBQ0MsbUJB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RUFBRXlILHlCQUF5QixDQUFDQTtBQUYzQixlQTVEVDs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxLQTN5Q0Y7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBYXhILFUsQ0FDWTBILFUsR0FBYSxVQUNsQ3hILEdBRGtDLEVBRWxDeUgsUUFGa0MsRUFHdkI7QUFBQSxNQUZYekgsR0FFVztBQUZYQSxJQUFBQSxHQUVXLEdBRk8sTUFFUDtBQUFBOztBQUFBLE1BRFh5SCxRQUNXO0FBRFhBLElBQUFBLFFBQ1csR0FEQSxJQUNBO0FBQUE7O0FBQ1gsTUFBTUMsTUFBTSxHQUFHQyxPQUFPLENBQUMzSCxHQUFSLENBQVk0SCwyQkFBM0I7O0FBQ0EsTUFBSUYsTUFBSixFQUFZO0FBQ1YsV0FBT0EsTUFBUDtBQUNEOztBQUVELFVBQVExSCxHQUFSO0FBQ0UsU0FBSyxNQUFMO0FBQ0UsYUFBT3lILFFBQVEsR0FDWCw4QkFEVyxHQUVYLGdDQUZKOztBQUdGLFNBQUssS0FBTDtBQUNBO0FBQ0UsYUFBTyxvQ0FBUDtBQVBKO0FBU0QsQzs7QUFuQlUzSCxVLENBcUJhSSxjLEdBQWlCLFVBQ3ZDRixHQUR1QyxFQUV2Q0QsT0FGdUM7QUFBQSxTQUl2Q3JELGFBQWEsQ0FBQ29ELFVBQVUsQ0FBQzBILFVBQVgsQ0FBc0J4SCxHQUF0QixDQUFELEVBQTZCRCxPQUE3QixDQUowQjtBQUFBLEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmltcG9ydCB0eXBlIHsgRG93bmxvYWRQcm9ncmVzcyBhcyBETFByb2dyZXNzIH0gZnJvbSBcImt5XCI7XG5pbXBvcnQgdHlwZSB7IERvY3VtZW50IH0gZnJvbSBcImJzb25cIjtcbmltcG9ydCB7IHNlcmlhbGl6ZSB9IGZyb20gXCJic29uXCI7XG5pbXBvcnQgeyBnZXRMaW5rIH0gZnJvbSBcIkBzZWNyZWN5L2xpYi11dGlsc1wiO1xuaW1wb3J0IHsgdXNlcnNDYWNoZSB9IGZyb20gXCIuL2NhY2hlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFVzZXJTZXNzaW9uIH0gZnJvbSBcIi4vY2xpZW50L3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNlY3JlY3lFbnYgfSBmcm9tIFwiLi9jbGllbnQvaGVscGVycy5qc1wiO1xuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCIuL2NsaWVudC9zdG9yYWdlLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIExhbmcsXG4gIFBheUlucHV0VHlwZSxcbiAgUGxhbktpbmQsXG4gIFRodW5kZXIsXG4gIFVzZXJSb2xlXG59IGZyb20gXCIuL3pldXMvaW5kZXguanNcIjtcbmltcG9ydCB7IFNlbGVjdG9yIH0gZnJvbSBcIi4vemV1cy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlVGh1bmRlciB9IGZyb20gXCIuL1pldXNUaHVuZGVyLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEVycm9yQWNjZXNzRGVuaWVkLFxuICBFcnJvckxpbWl0LFxuICBFcnJvck5vdEZvdW5kLFxuICBFcnJvck5vdEV4aXN0LFxuICBFcnJvckxhbmdOb3RFeGlzdCxcbiAgRXJyb3JCYXNpY1xufSBmcm9tIFwiLi9lcnJvci5qc1wiO1xuXG5leHBvcnQgdHlwZSBTdWNjZXNzUmVzcG9uc2U8VD4gPSB7XG4gIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCI7XG4gIGRhdGE6IFQ7XG59O1xuXG5leHBvcnQgdHlwZSBEb3dubG9hZFByb2dyZXNzID0gRExQcm9ncmVzcztcblxuZXhwb3J0IHR5cGUgUGF5SW5wdXQgPSB7XG4gIHR5cGU6IFBheUlucHV0VHlwZTtcbiAgdG9rZW46IHN0cmluZztcbiAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gIGxhc3ROYW1lOiBzdHJpbmc7XG4gIHN0cmVldDogc3RyaW5nO1xuICBwb3N0YWxDb2RlOiBzdHJpbmc7XG4gIGNpdHk6IHN0cmluZztcbiAgY291bnRyeTogc3RyaW5nO1xuICBtb250aDogc3RyaW5nO1xuICB5ZWFyOiBzdHJpbmc7XG4gIGN2djogc3RyaW5nO1xuICBudW1iZXI6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE1haWxMaW1pdHMgPSB7XG4gIGNvdW50Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBmaWxlQ291bnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGZpbGVTaXplPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBoYXJkQ291bnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGhhcmRGaWxlQ291bnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGhhcmRGaWxlU2l6ZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcGVyRmlsZVNpemU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBMaW1pdHMgPSB7XG4gIGRvd25sb2FkQmFuZHdpZHRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBkb3dubG9hZENvdW50Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBoYXJkRmlsZUNvdW50Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBoYXJkRmlsZVNpemU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHBlckZpbGVTaXplPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZWNlaXZlZE1haWxzOiBNYWlsTGltaXRzO1xuICBzZW50TWFpbHM6IE1haWxMaW1pdHM7XG4gIHVwbG9hZEJhbmR3aWR0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdXBsb2FkQ291bnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBHb2RVc2VyID0ge1xuICBpZDogc3RyaW5nO1xuICBmaXJzdG5hbWU6IHN0cmluZztcbiAgbGFzdG5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgcGhvbmU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEdvZEZhdGhlckFuZENoaWxkcmVuID0ge1xuICBnb2RGYXRoZXI6IEdvZFVzZXIgfCBudWxsO1xuICBnb2RDaGlsZHJlbjogR29kVXNlcltdO1xufTtcblxuZXhwb3J0IHR5cGUgUGxhbiA9IHtcbiAgY29kZXM6IHN0cmluZ1tdO1xuICBraW5kOiBQbGFuS2luZDtcbiAgbGltaXRzOiBMaW1pdHM7XG59O1xuXG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb25TdGF0ZSA9XG4gIHwgXCJhY3RpdmVcIlxuICB8IFwiY2FuY2VsZWRcIlxuICB8IFwicGF1c2VkXCJcbiAgfCBcImV4cGlyZWRcIlxuICB8IFwiZnV0dXJlXCJcbiAgfCBcImluX3RyaWFsXCJcbiAgfCBcImxpdmVcIlxuICB8IFwicGFzdF9kdWVcIjtcblxuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uQ29sbGVjdGlvbk1ldGhvZCA9IFwiYXV0b21hdGljXCIgfCBcIm1hbnVhbFwiO1xuXG50eXBlIEludGVybmFsU3Vic2NyaXB0aW9uID0ge1xuICBhdXRvcmVuZXc6IGJvb2xlYW47XG4gIGFjdGl2YXRlZEF0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY3VycmVudFBlcmlvZEVuZHNBdD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGN1cnJlbnRQZXJpb2RTdGFydGVkQXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjYW5jZWxlZEF0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY3JlYXRlZEF0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgZXhwaXJlc0F0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGF1c2VkQXQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB0cmlhbEVuZHNBdD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHRyaWFsU3RhcnRlZEF0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdXBkYXRlZEF0Pzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY29sbGVjdGlvbk1ldGhvZDogc3RyaW5nO1xuICBzdGF0ZTogc3RyaW5nO1xuICBwbGFuPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGxhbkNvZGU/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB0b3RhbD86IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ7XG59O1xuXG50eXBlIFJlY3VybHlJbnZvaWNlU3RhdHVzID1cbiAgfCBcInBlbmRpbmdcIlxuICB8IFwicGFpZFwiXG4gIHwgXCJmYWlsZWRcIlxuICB8IFwicGFzdF9kdWVcIlxuICB8IFwib3BlblwiXG4gIHwgXCJjbG9zZWRcIlxuICB8IFwidm9pZGVkXCJcbiAgfCBcInByb2Nlc3NpbmdcIjtcblxudHlwZSBJbnRlcm5hbFJlY3VybHlJbnZvaWNlcyA9IHtcbiAgcGRmOiBzdHJpbmc7XG4gIGRhdGU6IHN0cmluZztcbiAgZHVlOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICB0b3RhbDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIGN1cnJlbmN5OiBzdHJpbmc7XG59O1xuXG50eXBlIEludGVybmFsUGF5bWVudEluZm9zID0ge1xuICBob3N0ZWRVcmw6IHN0cmluZztcbiAgY3VycmVudFN1YnNjcmlwdGlvbjogSW50ZXJuYWxTdWJzY3JpcHRpb247XG4gIGludm9pY2VzOiBJbnRlcm5hbFJlY3VybHlJbnZvaWNlc1tdO1xufTtcblxuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uID0ge1xuICBhdXRvcmVuZXc6IGJvb2xlYW47XG4gIGFjdGl2YXRlZEF0PzogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGN1cnJlbnRQZXJpb2RFbmRzQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgY3VycmVudFBlcmlvZFN0YXJ0ZWRBdD86IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjYW5jZWxlZEF0PzogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNyZWF0ZWRBdD86IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBleHBpcmVzQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGF1c2VkQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdHJpYWxFbmRzQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdHJpYWxTdGFydGVkQXQ/OiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdXBkYXRlZEF0PzogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGNvbGxlY3Rpb25NZXRob2Q6IFN1YnNjcmlwdGlvbkNvbGxlY3Rpb25NZXRob2Q7XG4gIHN0YXRlOiBTdWJzY3JpcHRpb25TdGF0ZTtcbiAgcGxhbj86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHBsYW5Db2RlPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgdG90YWw/OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgUmVjdXJseUludm9pY2VzID0ge1xuICBwZGY6IHN0cmluZztcbiAgZGF0ZTogRGF0ZTtcbiAgZHVlOiBEYXRlO1xuICBzdGF0dXM6IFJlY3VybHlJbnZvaWNlU3RhdHVzO1xuICB0b3RhbDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIGN1cnJlbmN5OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBQYXltZW50SW5mb3MgPSB7XG4gIGhvc3RlZFVybDogc3RyaW5nO1xuICBjdXJyZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIGludm9pY2VzOiBSZWN1cmx5SW52b2ljZXNbXTtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbmRSZXBvcnQgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHVzZXI6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGZpcnN0bmFtZTogc3RyaW5nO1xuICAgIGxhc3RuYW1lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgfTtcbiAgcmVwb3J0ZWRVc2VyOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBmaXJzdG5hbWU6IHN0cmluZztcbiAgICBsYXN0bmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gIH07XG4gIGN1c3RvbU1lc3NhZ2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5mdW5jdGlvbiBpbnRlcm5hbFRvUGF5bWVudEluZm9zKHA6IEludGVybmFsUGF5bWVudEluZm9zKTogUGF5bWVudEluZm9zIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wLFxuICAgIGN1cnJlbnRTdWJzY3JpcHRpb246IHtcbiAgICAgIC4uLnAuY3VycmVudFN1YnNjcmlwdGlvbixcbiAgICAgIHN0YXRlOiBwLmN1cnJlbnRTdWJzY3JpcHRpb24uc3RhdGUgYXMgU3Vic2NyaXB0aW9uU3RhdGUsXG4gICAgICBjb2xsZWN0aW9uTWV0aG9kOiBwLmN1cnJlbnRTdWJzY3JpcHRpb25cbiAgICAgICAgLmNvbGxlY3Rpb25NZXRob2QgYXMgU3Vic2NyaXB0aW9uQ29sbGVjdGlvbk1ldGhvZCxcbiAgICAgIGFjdGl2YXRlZEF0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24uYWN0aXZhdGVkQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24uYWN0aXZhdGVkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGNyZWF0ZWRBdDogcC5jdXJyZW50U3Vic2NyaXB0aW9uLmNyZWF0ZWRBdFxuICAgICAgICA/IG5ldyBEYXRlKHAuY3VycmVudFN1YnNjcmlwdGlvbi5jcmVhdGVkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHVwZGF0ZWRBdDogcC5jdXJyZW50U3Vic2NyaXB0aW9uLnVwZGF0ZWRBdFxuICAgICAgICA/IG5ldyBEYXRlKHAuY3VycmVudFN1YnNjcmlwdGlvbi51cGRhdGVkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHRyaWFsRW5kc0F0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24udHJpYWxFbmRzQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24udHJpYWxFbmRzQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHRyaWFsU3RhcnRlZEF0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24udHJpYWxTdGFydGVkQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24udHJpYWxTdGFydGVkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIHBhdXNlZEF0OiBwLmN1cnJlbnRTdWJzY3JpcHRpb24ucGF1c2VkQXRcbiAgICAgICAgPyBuZXcgRGF0ZShwLmN1cnJlbnRTdWJzY3JpcHRpb24ucGF1c2VkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGN1cnJlbnRQZXJpb2RFbmRzQXQ6IHAuY3VycmVudFN1YnNjcmlwdGlvbi5jdXJyZW50UGVyaW9kRW5kc0F0XG4gICAgICAgID8gbmV3IERhdGUocC5jdXJyZW50U3Vic2NyaXB0aW9uLmN1cnJlbnRQZXJpb2RFbmRzQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGN1cnJlbnRQZXJpb2RTdGFydGVkQXQ6IHAuY3VycmVudFN1YnNjcmlwdGlvbi5jdXJyZW50UGVyaW9kU3RhcnRlZEF0XG4gICAgICAgID8gbmV3IERhdGUocC5jdXJyZW50U3Vic2NyaXB0aW9uLmN1cnJlbnRQZXJpb2RTdGFydGVkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGNhbmNlbGVkQXQ6IHAuY3VycmVudFN1YnNjcmlwdGlvbi5jYW5jZWxlZEF0XG4gICAgICAgID8gbmV3IERhdGUocC5jdXJyZW50U3Vic2NyaXB0aW9uLmNhbmNlbGVkQXQpXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGV4cGlyZXNBdDogcC5jdXJyZW50U3Vic2NyaXB0aW9uLmV4cGlyZXNBdFxuICAgICAgICA/IG5ldyBEYXRlKHAuY3VycmVudFN1YnNjcmlwdGlvbi5leHBpcmVzQXQpXG4gICAgICAgIDogbnVsbFxuICAgIH0sXG4gICAgaW52b2ljZXM6IHAuaW52b2ljZXMubWFwKGkgPT4gKHtcbiAgICAgIC4uLmksXG4gICAgICBkYXRlOiBuZXcgRGF0ZShpLmRhdGUpLFxuICAgICAgZHVlOiBuZXcgRGF0ZShpLmR1ZSksXG4gICAgICBzdGF0dXM6IGkuc3RhdHVzIGFzIFJlY3VybHlJbnZvaWNlU3RhdHVzXG4gICAgfSkpXG4gIH07XG59XG5cbmNvbnN0IHBsYW5zQ29kZXMgPSBbXG4gIFwiYmFzaWNfbW9udGhcIixcbiAgXCJhZHZhbmNlZF9tb250aFwiLFxuICBcInByb19tb250aFwiLFxuICBcImJhc2ljX3llYXJcIixcbiAgXCJhZHZhbmNlZF95ZWFyXCIsXG4gIFwicHJvX3llYXJcIlxuXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgU2VjcmVjeVBsYW5zQ29kZXMgPSB0eXBlb2YgcGxhbnNDb2Rlc1tudW1iZXJdO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFBsYW4ocGxhbkNvZGU6IHN0cmluZyk6IHBsYW5Db2RlIGlzIFNlY3JlY3lQbGFuc0NvZGVzIHtcbiAgcmV0dXJuIHBsYW5zQ29kZXMuaW5jbHVkZXMocGxhbkNvZGUgYXMgU2VjcmVjeVBsYW5zQ29kZXMpO1xufVxuXG5leHBvcnQgdHlwZSBVc2VyRGF0YTxcbiAgVCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbj4gPSB7XG4gIGlzU3VwZXJ1c2VyOiBib29sZWFuO1xuICBpc1NlYXJjaGFibGU6IGJvb2xlYW47XG59ICYgVDtcblxuZXhwb3J0IHR5cGUgRm9sZGVyU2l6ZSA9IHsgc2l6ZTogYmlnaW50OyBzaXplQmVmb3JlOiBiaWdpbnQgfTtcblxuY29uc3QgZ2V0VXNlclNlbGVjdG9yID0gKFxuICB1c2VySWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gIHdpdGhQdWJsaWNLZXk6IGJvb2xlYW4gfCB1bmRlZmluZWRcbikgPT4ge1xuICBjb25zdCB7IHVzZXIgfSA9IFNlbGVjdG9yKFwiUXVlcnlcIikoe1xuICAgIHVzZXI6IFtcbiAgICAgIHsgdXNlcklkIH0sXG4gICAgICB7XG4gICAgICAgIFwiLi4ub24gRXJyb3JOb3RGb3VuZFwiOiB7XG4gICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICBtZXNzYWdlOiB0cnVlLFxuICAgICAgICAgIGZpZWxkOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwiLi4ub24gVXNlclJlc3BvbnNlXCI6IHtcbiAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgIHVzZXI6IHtcbiAgICAgICAgICAgIGlkOiB0cnVlLFxuICAgICAgICAgICAgZmlyc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbGFzdG5hbWU6IHRydWUsXG4gICAgICAgICAgICBsYW5nOiB0cnVlLFxuICAgICAgICAgICAgcHVibGljS2V5OiB3aXRoUHVibGljS2V5ID8gdHJ1ZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGVtYWlsOiB0cnVlLFxuICAgICAgICAgICAgcGhvbmU6IHRydWUsXG4gICAgICAgICAgICByb2xlOiB0cnVlLFxuICAgICAgICAgICAgZGVsZXRlZEF0OiB0cnVlLFxuICAgICAgICAgICAgbGFzdExvZ2luOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuICB9KTtcbiAgcmV0dXJuIHVzZXI7XG59O1xuXG5leHBvcnQgdHlwZSBBcHBEQkNvbmZpZ0ZpZWxkID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IFwic3RyaW5nXCIgfCBcIm51bWJlclwiIHwgXCJib29sZWFuXCIgfCBcIm9iamVjdFwiO1xuICBpc0FycmF5PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgaXNOdWxsYWJsZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIGlzRWRpdGFibGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBpc0tleT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIGRlZmF1bHQ/OiB1bmtub3duO1xufTtcblxuZXhwb3J0IHR5cGUgQXBwREJDb25maWcgPSB7XG4gIGZpZWxkczogQXBwREJDb25maWdGaWVsZFtdO1xufTtcblxuZXhwb3J0IHR5cGUgRmFxSXRlbSA9IHtcbiAgb3JkZXI6IG51bWJlcjtcbiAgcXVlc3Rpb246IHN0cmluZztcbiAgYW5zd2VyOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBCbG9nSXRlbSA9IHtcbiAgaWQ6IHN0cmluZztcbiAgYmxvZ0lkOiBzdHJpbmc7XG4gIG9yZGVyOiBudW1iZXI7XG4gIGF1dGhvcjogc3RyaW5nO1xuICBib2R5OiBzdHJpbmc7XG4gIGRhdGU6IERhdGU7XG4gIGltYWdlOiBzdHJpbmc7XG4gIGltYWdlQWx0OiBzdHJpbmc7XG4gIHN1bW1hcnk6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFVzZXJCYXNlID0ge1xuICBlbWFpbDogc3RyaW5nO1xuICBwaG9uZTogc3RyaW5nO1xuICBsYXN0bmFtZTogc3RyaW5nO1xuICByb2xlOiBVc2VyUm9sZTtcbiAgZmlyc3RuYW1lOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIGRlbGV0ZWRBdDogRGF0ZSB8IG51bGw7XG4gIGxhc3RMb2dpbjogRGF0ZTtcbiAgbGFuZzogTGFuZztcbn07XG5cbnR5cGUgV2l0aFB1YmxpY0tleSA9IHsgd2l0aFB1YmxpY0tleT86IGJvb2xlYW4gfTtcblxuZXhwb3J0IHR5cGUgVXNlcjxUIGV4dGVuZHMgV2l0aFB1YmxpY0tleSA9IFdpdGhQdWJsaWNLZXk+ID0gVCBleHRlbmRzIHtcbiAgd2l0aFB1YmxpY0tleTogdHJ1ZTtcbn1cbiAgPyBVc2VyQmFzZSAmIHsgcHVibGljS2V5OiBzdHJpbmcgfVxuICA6IFVzZXJCYXNlO1xuXG50eXBlIENsYXNzR2V0VXNlclBhcmFtcyA9IFdpdGhQdWJsaWNLZXkgJiB7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgdXNlckVtYWlsPzogc3RyaW5nO1xufTtcbnR5cGUgR2V0VXNlclBhcmFtcyA9IENsYXNzR2V0VXNlclBhcmFtcyAmIHtcbiAgY2xpZW50OiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPjtcbn07XG5cbnR5cGUgU3RhdGljR2V0VXNlclBhcmFtcyA9IENsYXNzR2V0VXNlclBhcmFtcyAmIHtcbiAgZW52OiBTZWNyZWN5RW52O1xufTtcblxuYXN5bmMgZnVuY3Rpb24gZ2V0VXNlcjxVIGV4dGVuZHMgV2l0aFB1YmxpY0tleT4oXG4gIHBhcmFtczogR2V0VXNlclBhcmFtc1xuKTogUHJvbWlzZTxTdWNjZXNzUmVzcG9uc2U8VXNlcjxVPj4gfCBFcnJvck5vdEZvdW5kIHwgbnVsbD4ge1xuICBjb25zdCBzZWxlY3RvciA9IGdldFVzZXJTZWxlY3RvcihcbiAgICBwYXJhbXMudXNlcklkID8/IHBhcmFtcy51c2VyRW1haWwsXG4gICAgcGFyYW1zLndpdGhQdWJsaWNLZXlcbiAgKTtcbiAgY29uc3QgeyB1c2VyOiB1c2VyUmVzcG9uc2UgfSA9IGF3YWl0IHBhcmFtcy5jbGllbnQoXCJxdWVyeVwiKSh7XG4gICAgdXNlcjogc2VsZWN0b3JcbiAgfSk7XG5cbiAgaWYgKCF1c2VyUmVzcG9uc2UpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICh1c2VyUmVzcG9uc2UuX190eXBlbmFtZSA9PT0gXCJFcnJvck5vdEZvdW5kXCIpIHtcbiAgICByZXR1cm4gdXNlclJlc3BvbnNlO1xuICB9XG5cbiAgaWYgKCF1c2VyUmVzcG9uc2UudXNlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgIGRhdGE6IHtcbiAgICAgIC4uLnVzZXJSZXNwb25zZS51c2VyLFxuICAgICAgbGFzdExvZ2luOiBuZXcgRGF0ZSh1c2VyUmVzcG9uc2UudXNlci5sYXN0TG9naW4pLFxuICAgICAgZGVsZXRlZEF0OiB1c2VyUmVzcG9uc2UudXNlci5kZWxldGVkQXRcbiAgICAgICAgPyBuZXcgRGF0ZSh1c2VyUmVzcG9uc2UudXNlci5kZWxldGVkQXQpXG4gICAgICAgIDogbnVsbFxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgQ2xvdWRMaW1pdHMgPSB7XG4gIGNvdW50OiBiaWdpbnQ7XG4gIG1heENvdW50OiBiaWdpbnQgfCBudWxsO1xuICBzaXplOiBiaWdpbnQ7XG4gIG1heFNpemU6IGJpZ2ludCB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBNYWlsTGltaXRzVmFsdWVzID0ge1xuICBjb3VudDogYmlnaW50O1xuICBtYXhDb3VudDogYmlnaW50IHwgbnVsbDtcbiAgZmlsZVNpemU6IGJpZ2ludDtcbiAgbWF4RmlsZVNpemU6IGJpZ2ludCB8IG51bGw7XG4gIGZpbGVDb3VudDogYmlnaW50O1xuICBtYXhGaWxlQ291bnQ6IGJpZ2ludCB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBRdWVyeUxpbWl0cyA9IHtcbiAgY2xvdWQ6IENsb3VkTGltaXRzO1xuICBtYWlsOiB7XG4gICAgc2VudDogTWFpbExpbWl0c1ZhbHVlcztcbiAgICByZWNlaXZlZDogTWFpbExpbWl0c1ZhbHVlcztcbiAgfTtcbn07XG5cbmV4cG9ydCBjbGFzcyBCYXNlQ2xpZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBnZXRCYXNlVXJsID0gKFxuICAgIGVudjogU2VjcmVjeUVudiA9IFwicHJvZFwiLFxuICAgIGdyYXBoY2RuID0gdHJ1ZVxuICApOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IGFwaVVybCA9IHByb2Nlc3MuZW52Lk5FWFRfUFVCTElDX1NFQ1JFQ1lfQVBJX1VSTDtcbiAgICBpZiAoYXBpVXJsKSB7XG4gICAgICByZXR1cm4gYXBpVXJsO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZW52KSB7XG4gICAgICBjYXNlIFwicHJvZFwiOlxuICAgICAgICByZXR1cm4gZ3JhcGhjZG5cbiAgICAgICAgICA/IFwiaHR0cHM6Ly9zZWNyZWN5LmdyYXBoY2RuLmFwcFwiXG4gICAgICAgICAgOiBcImh0dHBzOi8vYXBpLnNlY3JlY3kubWUvZ3JhcGhxbFwiO1xuICAgICAgY2FzZSBcImRldlwiOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9hcGkuZGV2LnNlY3JlY3kubWUvZ3JhcGhxbFwiO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfZ2V0QmFzZUNsaWVudCA9IChcbiAgICBlbnY6IFNlY3JlY3lFbnYsXG4gICAgc2Vzc2lvbj86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcbiAgKTogUmV0dXJuVHlwZTx0eXBlb2YgVGh1bmRlcj4gPT5cbiAgICBjcmVhdGVUaHVuZGVyKEJhc2VDbGllbnQuZ2V0QmFzZVVybChlbnYpLCBzZXNzaW9uKTtcblxuICBwcm90ZWN0ZWQgY2xpZW50OiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPjtcblxuICBwdWJsaWMgc2Vzc2lvbklkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2Vzc2lvbjogc3RyaW5nLCBlbnY6IFNlY3JlY3lFbnYpIHtcbiAgICB0aGlzLnNlc3Npb25JZCA9IHNlc3Npb247XG4gICAgdGhpcy5jbGllbnQgPSBCYXNlQ2xpZW50Ll9nZXRCYXNlQ2xpZW50KGVudiwgc2Vzc2lvbik7XG4gIH1cblxuICBhc3luYyBzZXNzaW9ucygpOiBQcm9taXNlPFxuICAgIFN1Y2Nlc3NSZXNwb25zZTxVc2VyU2Vzc2lvbltdPiB8IEVycm9yTm90Rm91bmQgfCBudWxsXG4gID4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNsaWVudChcInF1ZXJ5XCIpKHtcbiAgICAgIHVzZXI6IFtcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yTm90Rm91bmRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGZpZWxkOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBVc2VyUmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZXI6IHtcbiAgICAgICAgICAgICAgc2Vzc2lvbnM6IHtcbiAgICAgICAgICAgICAgICBpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBsYXN0QWN0aXZpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgdXNlckFnZW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIGlwOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgY291bnRyeTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhcHBTZXNzaW9uczoge1xuICAgICAgICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICBsYXN0QWN0aXZpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICB1c2VyQWdlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICBpcDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGNpdHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICBjb3VudHJ5OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgdXNlckFwcDoge1xuICAgICAgICAgICAgICAgICAgICBhcHA6IHtcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghZGF0YS51c2VyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgdXNlclJlc3BvbnNlID0gZGF0YS51c2VyO1xuICAgIGlmICh1c2VyUmVzcG9uc2UuX190eXBlbmFtZSA9PT0gXCJVc2VyUmVzcG9uc2VcIikge1xuICAgICAgaWYgKCF1c2VyUmVzcG9uc2UudXNlcikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNlc3Npb25zOiBVc2VyU2Vzc2lvbltdID1cbiAgICAgICAgdXNlclJlc3BvbnNlLnVzZXIuc2Vzc2lvbnMubWFwKHMgPT4gKHtcbiAgICAgICAgICBpZDogcy5pZCxcbiAgICAgICAgICBpcDogcy5pcCxcbiAgICAgICAgICBjaXR5OiBzLmNpdHksXG4gICAgICAgICAgY291bnRyeTogcy5jb3VudHJ5LFxuICAgICAgICAgIGxhc3RBY3Rpdml0eTogcy5sYXN0QWN0aXZpdHkgPyBuZXcgRGF0ZShzLmxhc3RBY3Rpdml0eSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgdXNlckFnZW50OiBzLnVzZXJBZ2VudCxcbiAgICAgICAgICBhcHBTZXNzaW9uczogcy5hcHBTZXNzaW9ucy5tYXAoYSA9PiAoe1xuICAgICAgICAgICAgaWQ6IGEuaWQsXG4gICAgICAgICAgICBpcDogYS5pcCxcbiAgICAgICAgICAgIGNpdHk6IGEuY2l0eSxcbiAgICAgICAgICAgIGNvdW50cnk6IGEuY291bnRyeSxcbiAgICAgICAgICAgIGxhc3RBY3Rpdml0eTogYS5sYXN0QWN0aXZpdHkgPyBuZXcgRGF0ZShhLmxhc3RBY3Rpdml0eSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB1c2VyQWdlbnQ6IGEudXNlckFnZW50LFxuICAgICAgICAgICAgYXBwOiBhLnVzZXJBcHA/LmFwcC5uYW1lID8/IFwiXCJcbiAgICAgICAgICB9KSlcbiAgICAgICAgfSkpID8/IFtdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgICAgZGF0YTogc2Vzc2lvbnNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHVzZXJSZXNwb25zZTtcbiAgfVxuXG4gIGFzeW5jIGxvZ291dChzZXNzaW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFzZXNzaW9uSWQpIHtcbiAgICAgIGNvbnN0IGxvY2FsID0gZ2V0U3RvcmFnZShmYWxzZSk7XG4gICAgICBjb25zdCBzZXNzaW9uID0gZ2V0U3RvcmFnZSh0cnVlKTtcbiAgICAgIGxvY2FsLmp3dC5jbGVhcigpO1xuICAgICAgbG9jYWwudXNlckFwcEtleXMuY2xlYXIoKTtcbiAgICAgIGxvY2FsLnVzZXJBcHBTZXNzaW9uLmNsZWFyKCk7XG4gICAgICBzZXNzaW9uLmp3dC5jbGVhcigpO1xuICAgICAgc2Vzc2lvbi51c2VyQXBwS2V5cy5jbGVhcigpO1xuICAgICAgc2Vzc2lvbi51c2VyQXBwU2Vzc2lvbi5jbGVhcigpO1xuICAgICAgdXNlcnNDYWNoZS5jbGVhcigpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jbGllbnQoXCJtdXRhdGlvblwiKSh7XG4gICAgICAgIGxvZ291dDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlc3Npb25JZDogc2Vzc2lvbklkXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiLi4ub24gRXJyb3JCYXNpY1wiOiB7XG4gICAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIi4uLm9uIExvZ291dFJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgICAgbG9nb3V0OiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbWU8VCBleHRlbmRzIFdpdGhQdWJsaWNLZXkgPSBXaXRoUHVibGljS2V5PihcbiAgICBwYXJhbXM/OiBUXG4gICk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPFVzZXI8VD4+IHwgRXJyb3JOb3RGb3VuZCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyKHBhcmFtcyB8fCAoeyB3aXRoUHVibGljS2V5OiB0cnVlIH0gYXMgVCkpO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIHVzZXI8VCBleHRlbmRzIFN0YXRpY0dldFVzZXJQYXJhbXM+KFxuICAgIHBhcmFtczogVCxcbiAgICBzZXNzaW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPFVzZXI8VD4+IHwgRXJyb3JOb3RGb3VuZCB8IG51bGw+IHtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgZ2V0VXNlcjxUPih7XG4gICAgICBjbGllbnQ6IHRoaXMuX2dldEJhc2VDbGllbnQocGFyYW1zLmVudiwgc2Vzc2lvbklkKSxcbiAgICAgIHVzZXJJZDogcGFyYW1zLnVzZXJJZCA/PyBwYXJhbXMudXNlckVtYWlsLFxuICAgICAgd2l0aFB1YmxpY0tleTogcGFyYW1zLndpdGhQdWJsaWNLZXlcbiAgICB9KTtcblxuICAgIGlmICghdXNlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHVzZXIuX190eXBlbmFtZSA9PT0gXCJFcnJvck5vdEZvdW5kXCIpIHtcbiAgICAgIHJldHVybiB1c2VyO1xuICAgIH1cblxuICAgIGlmICh1c2VyKSB7XG4gICAgICB1c2Vyc0NhY2hlLnNldCh1c2VyLmRhdGEuaWQsIHVzZXIuZGF0YSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVzZXI7XG4gIH1cblxuICBhc3luYyB1c2VyPFQgZXh0ZW5kcyBDbGFzc0dldFVzZXJQYXJhbXM+KFxuICAgIHBhcmFtczogVFxuICApOiBQcm9taXNlPFN1Y2Nlc3NSZXNwb25zZTxVc2VyPFQ+PiB8IEVycm9yTm90Rm91bmQgfCBudWxsPiB7XG4gICAgY29uc3QgdXNlciA9IGF3YWl0IGdldFVzZXI8VD4oe1xuICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgIHVzZXJJZDogcGFyYW1zLnVzZXJJZCA/PyBwYXJhbXMudXNlckVtYWlsLFxuICAgICAgd2l0aFB1YmxpY0tleTogcGFyYW1zLndpdGhQdWJsaWNLZXlcbiAgICB9KTtcblxuICAgIGlmICghdXNlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHVzZXIuX190eXBlbmFtZSA9PT0gXCJFcnJvck5vdEZvdW5kXCIpIHtcbiAgICAgIHJldHVybiB1c2VyO1xuICAgIH1cblxuICAgIGlmICh1c2VyKSB7XG4gICAgICB1c2Vyc0NhY2hlLnNldCh1c2VyLmRhdGEuaWQsIHVzZXIuZGF0YSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVzZXI7XG4gIH1cblxuICBhc3luYyB1cGRhdGVQcm9maWxlKHtcbiAgICBmaXJzdG5hbWUsXG4gICAgbGFzdG5hbWUsXG4gICAgbGFuZ1xuICB9OiB7XG4gICAgZmlyc3RuYW1lOiBzdHJpbmcgfCBudWxsO1xuICAgIGxhc3RuYW1lOiBzdHJpbmcgfCBudWxsO1xuICAgIGxhbmc6IExhbmcgfCBudWxsO1xuICB9KTogUHJvbWlzZTxcbiAgICBTdWNjZXNzUmVzcG9uc2U8VXNlcj4gfCBFcnJvck5vdEZvdW5kIHwgRXJyb3JBY2Nlc3NEZW5pZWQgfCBudWxsXG4gID4ge1xuICAgIGNvbnN0IHsgdXBkYXRlUHJvZmlsZSB9ID0gYXdhaXQgdGhpcy5jbGllbnQoXCJtdXRhdGlvblwiKSh7XG4gICAgICB1cGRhdGVQcm9maWxlOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmaXJzdG5hbWUsXG4gICAgICAgICAgbGFzdG5hbWUsXG4gICAgICAgICAgbGFuZ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBFcnJvck5vdEZvdW5kXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIFVwZGF0ZVByb2ZpbGVSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgdXBkYXRlUHJvZmlsZToge1xuICAgICAgICAgICAgICBpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgZmlyc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgICAgbGFuZzogdHJ1ZSxcbiAgICAgICAgICAgICAgZW1haWw6IHRydWUsXG4gICAgICAgICAgICAgIHBob25lOiB0cnVlLFxuICAgICAgICAgICAgICByb2xlOiB0cnVlLFxuICAgICAgICAgICAgICBkZWxldGVkQXQ6IHRydWUsXG4gICAgICAgICAgICAgIGxhc3RMb2dpbjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCF1cGRhdGVQcm9maWxlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlUHJvZmlsZS5fX3R5cGVuYW1lID09PSBcIkVycm9yQWNjZXNzRGVuaWVkXCIpIHtcbiAgICAgIHJldHVybiB1cGRhdGVQcm9maWxlO1xuICAgIH1cblxuICAgIGlmICh1cGRhdGVQcm9maWxlLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RGb3VuZFwiKSB7XG4gICAgICByZXR1cm4gdXBkYXRlUHJvZmlsZTtcbiAgICB9XG5cbiAgICBpZiAoIXVwZGF0ZVByb2ZpbGUudXBkYXRlUHJvZmlsZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGVtYWlsOiB1cGRhdGVQcm9maWxlLnVwZGF0ZVByb2ZpbGUuZW1haWwsXG4gICAgICAgIGZpcnN0bmFtZTogdXBkYXRlUHJvZmlsZS51cGRhdGVQcm9maWxlLmZpcnN0bmFtZSxcbiAgICAgICAgaWQ6IHVwZGF0ZVByb2ZpbGUudXBkYXRlUHJvZmlsZS5pZCxcbiAgICAgICAgbGFuZzogdXBkYXRlUHJvZmlsZS51cGRhdGVQcm9maWxlLmxhbmcsXG4gICAgICAgIGxhc3RMb2dpbjogbmV3IERhdGUodXBkYXRlUHJvZmlsZS51cGRhdGVQcm9maWxlLmxhc3RMb2dpbiksXG4gICAgICAgIGxhc3RuYW1lOiB1cGRhdGVQcm9maWxlLnVwZGF0ZVByb2ZpbGUubGFzdG5hbWUsXG4gICAgICAgIHBob25lOiB1cGRhdGVQcm9maWxlLnVwZGF0ZVByb2ZpbGUucGhvbmUsXG4gICAgICAgIHJvbGU6IHVwZGF0ZVByb2ZpbGUudXBkYXRlUHJvZmlsZS5yb2xlLFxuICAgICAgICBkZWxldGVkQXQ6IHVwZGF0ZVByb2ZpbGUudXBkYXRlUHJvZmlsZS5kZWxldGVkQXRcbiAgICAgICAgICA/IG5ldyBEYXRlKHVwZGF0ZVByb2ZpbGUudXBkYXRlUHJvZmlsZS5kZWxldGVkQXQpXG4gICAgICAgICAgOiBudWxsXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBwbGFucyhcbiAgICBlbnY6IFNlY3JlY3lFbnYsXG4gICAgc2Vzc2lvbklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPFN1Y2Nlc3NSZXNwb25zZTxQbGFuW10+IHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgcGxhbnMgfSA9IGF3YWl0IEJhc2VDbGllbnQuX2dldEJhc2VDbGllbnQoZW52LCBzZXNzaW9uSWQpKFwicXVlcnlcIikoe1xuICAgICAgcGxhbnM6IHtcbiAgICAgICAgXCIuLi5vbiBQbGFuUmVzcG9uc2VcIjoge1xuICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgcGxhbjoge1xuICAgICAgICAgICAga2luZDogdHJ1ZSxcbiAgICAgICAgICAgIGNvZGVzOiB0cnVlLFxuICAgICAgICAgICAgbGltaXRzOiB7XG4gICAgICAgICAgICAgIGRvd25sb2FkQmFuZHdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgICBkb3dubG9hZENvdW50OiB0cnVlLFxuICAgICAgICAgICAgICBoYXJkRmlsZUNvdW50OiB0cnVlLFxuICAgICAgICAgICAgICBoYXJkRmlsZVNpemU6IHRydWUsXG4gICAgICAgICAgICAgIHBlckZpbGVTaXplOiB0cnVlLFxuICAgICAgICAgICAgICB1cGxvYWRCYW5kd2lkdGg6IHRydWUsXG4gICAgICAgICAgICAgIHVwbG9hZENvdW50OiB0cnVlLFxuICAgICAgICAgICAgICByZWNlaXZlZE1haWxzOiB7XG4gICAgICAgICAgICAgICAgY291bnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZmlsZUNvdW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIGZpbGVTaXplOiB0cnVlLFxuICAgICAgICAgICAgICAgIGhhcmRDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBoYXJkRmlsZUNvdW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIGhhcmRGaWxlU2l6ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwZXJGaWxlU2l6ZTogdHJ1ZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBzZW50TWFpbHM6IHtcbiAgICAgICAgICAgICAgICBjb3VudDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBmaWxlQ291bnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZmlsZVNpemU6IHRydWUsXG4gICAgICAgICAgICAgICAgaGFyZENvdW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIGhhcmRGaWxlQ291bnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgaGFyZEZpbGVTaXplOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBlckZpbGVTaXplOiB0cnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcGxhbnMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogcGxhbnMucGxhblxuICAgIH07XG4gIH1cblxuICBhc3luYyBwYXkoXG4gICAgcGxhbkNvZGU6IFNlY3JlY3lQbGFuc0NvZGVzLFxuICAgIGlucHV0OiBQYXlJbnB1dCxcbiAgICBhdXRvUmVuZXc/OiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPFN1Y2Nlc3NSZXNwb25zZTxib29sZWFuPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgcGF5IH0gPSBhd2FpdCB0aGlzLmNsaWVudChcIm11dGF0aW9uXCIpKHtcbiAgICAgIHBheTogW1xuICAgICAgICB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgcGxhbkNvZGUsXG4gICAgICAgICAgYXV0b1JlbmV3XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIFBheVJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBwYXk6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghcGF5KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAocGF5Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIHBheTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IHBheS5wYXkgPz8gZmFsc2VcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgY2FuY2VsUGF5bWVudCgpOiBQcm9taXNlPFxuICAgIFN1Y2Nlc3NSZXNwb25zZTxib29sZWFuPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgbnVsbFxuICA+IHtcbiAgICBjb25zdCB7IGNhbmNlbFBheW1lbnQgfSA9IGF3YWl0IHRoaXMuY2xpZW50KFwibXV0YXRpb25cIikoe1xuICAgICAgY2FuY2VsUGF5bWVudDoge1xuICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCIuLi5vbiBDYW5jZWxQYXltZW50UmVzcG9uc2VcIjoge1xuICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgY2FuY2VsUGF5bWVudDogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIWNhbmNlbFBheW1lbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChjYW5jZWxQYXltZW50Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGNhbmNlbFBheW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiBjYW5jZWxQYXltZW50LmNhbmNlbFBheW1lbnQgPz8gZmFsc2VcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgcGF5bWVudEluZm9zKCk6IFByb21pc2U8XG4gICAgU3VjY2Vzc1Jlc3BvbnNlPFBheW1lbnRJbmZvcz4gfCBFcnJvckFjY2Vzc0RlbmllZCB8IG51bGxcbiAgPiB7XG4gICAgY29uc3QgeyBwYXltZW50SW5mb3MgfSA9IGF3YWl0IHRoaXMuY2xpZW50KFwicXVlcnlcIikoe1xuICAgICAgcGF5bWVudEluZm9zOiB7XG4gICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIi4uLm9uIFBheW1lbnRJbmZvc1Jlc3BvbnNlXCI6IHtcbiAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgIHBheW1lbnRJbmZvczoge1xuICAgICAgICAgICAgaG9zdGVkVXJsOiB0cnVlLFxuICAgICAgICAgICAgY3VycmVudFN1YnNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICBhdXRvcmVuZXc6IHRydWUsXG4gICAgICAgICAgICAgIGFjdGl2YXRlZEF0OiB0cnVlLFxuICAgICAgICAgICAgICBjdXJyZW50UGVyaW9kRW5kc0F0OiB0cnVlLFxuICAgICAgICAgICAgICBjdXJyZW50UGVyaW9kU3RhcnRlZEF0OiB0cnVlLFxuICAgICAgICAgICAgICBjYW5jZWxlZEF0OiB0cnVlLFxuICAgICAgICAgICAgICBjcmVhdGVkQXQ6IHRydWUsXG4gICAgICAgICAgICAgIGV4cGlyZXNBdDogdHJ1ZSxcbiAgICAgICAgICAgICAgcGF1c2VkQXQ6IHRydWUsXG4gICAgICAgICAgICAgIHRyaWFsRW5kc0F0OiB0cnVlLFxuICAgICAgICAgICAgICB0cmlhbFN0YXJ0ZWRBdDogdHJ1ZSxcbiAgICAgICAgICAgICAgdXBkYXRlZEF0OiB0cnVlLFxuICAgICAgICAgICAgICBzdGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgY29sbGVjdGlvbk1ldGhvZDogdHJ1ZSxcbiAgICAgICAgICAgICAgcGxhbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcGxhbkNvZGU6IHRydWUsXG4gICAgICAgICAgICAgIHRvdGFsOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW52b2ljZXM6IHtcbiAgICAgICAgICAgICAgcGRmOiB0cnVlLFxuICAgICAgICAgICAgICBkYXRlOiB0cnVlLFxuICAgICAgICAgICAgICBkdWU6IHRydWUsXG4gICAgICAgICAgICAgIHN0YXR1czogdHJ1ZSxcbiAgICAgICAgICAgICAgdG90YWw6IHRydWUsXG4gICAgICAgICAgICAgIG5hbWU6IHRydWUsXG4gICAgICAgICAgICAgIGN1cnJlbmN5OiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIXBheW1lbnRJbmZvcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHBheW1lbnRJbmZvcy5fX3R5cGVuYW1lID09PSBcIkVycm9yQWNjZXNzRGVuaWVkXCIpIHtcbiAgICAgIHJldHVybiBwYXltZW50SW5mb3M7XG4gICAgfVxuXG4gICAgaWYgKCFwYXltZW50SW5mb3MucGF5bWVudEluZm9zKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gaW50ZXJuYWxUb1BheW1lbnRJbmZvcyhwYXltZW50SW5mb3MucGF5bWVudEluZm9zKTtcbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IHJlc3VsdFxuICAgIH07XG4gIH1cblxuICBhc3luYyBsaW1pdHMoKTogUHJvbWlzZTxcbiAgICB8IFN1Y2Nlc3NSZXNwb25zZTxRdWVyeUxpbWl0cz5cbiAgICB8IEVycm9yQWNjZXNzRGVuaWVkXG4gICAgfCBFcnJvck5vdEV4aXN0XG4gICAgfCBFcnJvckxpbWl0XG4gICAgfCBFcnJvck5vdEZvdW5kXG4gICAgfCBudWxsXG4gID4ge1xuICAgIGNvbnN0IHsgbGltaXRzIH0gPSBhd2FpdCB0aGlzLmNsaWVudChcInF1ZXJ5XCIpKHtcbiAgICAgIGxpbWl0czoge1xuICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCIuLi5vbiBFcnJvckxpbWl0XCI6IHtcbiAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCIuLi5vbiBFcnJvck5vdEV4aXN0XCI6IHtcbiAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCIuLi5vbiBFcnJvck5vdEZvdW5kXCI6IHtcbiAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCIuLi5vbiBRdWVyeUxpbWl0c1wiOiB7XG4gICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICBjbG91ZDoge1xuICAgICAgICAgICAgc2l6ZTogdHJ1ZSxcbiAgICAgICAgICAgIG1heFNpemU6IHRydWUsXG4gICAgICAgICAgICBjb3VudDogdHJ1ZSxcbiAgICAgICAgICAgIG1heENvdW50OiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtYWlsOiB7XG4gICAgICAgICAgICByZWNlaXZlZDoge1xuICAgICAgICAgICAgICBjb3VudDogdHJ1ZSxcbiAgICAgICAgICAgICAgbWF4Q291bnQ6IHRydWUsXG4gICAgICAgICAgICAgIGZpbGVDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgICAgbWF4RmlsZUNvdW50OiB0cnVlLFxuICAgICAgICAgICAgICBmaWxlU2l6ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgbWF4RmlsZVNpemU6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZW50OiB7XG4gICAgICAgICAgICAgIGNvdW50OiB0cnVlLFxuICAgICAgICAgICAgICBtYXhDb3VudDogdHJ1ZSxcbiAgICAgICAgICAgICAgZmlsZUNvdW50OiB0cnVlLFxuICAgICAgICAgICAgICBtYXhGaWxlQ291bnQ6IHRydWUsXG4gICAgICAgICAgICAgIGZpbGVTaXplOiB0cnVlLFxuICAgICAgICAgICAgICBtYXhGaWxlU2l6ZTogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFsaW1pdHMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChsaW1pdHMuX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gbGltaXRzO1xuICAgIH1cbiAgICBpZiAobGltaXRzLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RFeGlzdFwiKSB7XG4gICAgICByZXR1cm4gbGltaXRzO1xuICAgIH1cbiAgICBpZiAobGltaXRzLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JMaW1pdFwiKSB7XG4gICAgICByZXR1cm4gbGltaXRzO1xuICAgIH1cbiAgICBpZiAobGltaXRzLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RGb3VuZFwiKSB7XG4gICAgICByZXR1cm4gbGltaXRzO1xuICAgIH1cblxuICAgIGNvbnN0IHsgY2xvdWQsIG1haWwgfSA9IGxpbWl0cztcblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YToge1xuICAgICAgICBjbG91ZDoge1xuICAgICAgICAgIGNvdW50OiBCaWdJbnQoY2xvdWQuY291bnQpLFxuICAgICAgICAgIHNpemU6IEJpZ0ludChjbG91ZC5zaXplKSxcbiAgICAgICAgICBtYXhDb3VudDogY2xvdWQubWF4Q291bnQgPyBCaWdJbnQoY2xvdWQubWF4Q291bnQpIDogbnVsbCxcbiAgICAgICAgICBtYXhTaXplOiBjbG91ZC5tYXhTaXplID8gQmlnSW50KGNsb3VkLm1heFNpemUpIDogbnVsbFxuICAgICAgICB9LFxuICAgICAgICBtYWlsOiB7XG4gICAgICAgICAgcmVjZWl2ZWQ6IHtcbiAgICAgICAgICAgIGNvdW50OiBCaWdJbnQobWFpbC5yZWNlaXZlZC5jb3VudCksXG4gICAgICAgICAgICBtYXhDb3VudDogbWFpbC5yZWNlaXZlZC5tYXhDb3VudFxuICAgICAgICAgICAgICA/IEJpZ0ludChtYWlsLnJlY2VpdmVkLm1heENvdW50KVxuICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICBmaWxlQ291bnQ6IEJpZ0ludChtYWlsLnJlY2VpdmVkLmZpbGVDb3VudCksXG4gICAgICAgICAgICBtYXhGaWxlQ291bnQ6IG1haWwucmVjZWl2ZWQubWF4RmlsZUNvdW50XG4gICAgICAgICAgICAgID8gQmlnSW50KG1haWwucmVjZWl2ZWQubWF4RmlsZUNvdW50KVxuICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICBmaWxlU2l6ZTogQmlnSW50KG1haWwucmVjZWl2ZWQuZmlsZVNpemUpLFxuICAgICAgICAgICAgbWF4RmlsZVNpemU6IG1haWwucmVjZWl2ZWQubWF4RmlsZVNpemVcbiAgICAgICAgICAgICAgPyBCaWdJbnQobWFpbC5yZWNlaXZlZC5tYXhGaWxlU2l6ZSlcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZW50OiB7XG4gICAgICAgICAgICBjb3VudDogQmlnSW50KG1haWwuc2VudC5jb3VudCksXG4gICAgICAgICAgICBtYXhDb3VudDogbWFpbC5zZW50Lm1heENvdW50ID8gQmlnSW50KG1haWwuc2VudC5tYXhDb3VudCkgOiBudWxsLFxuICAgICAgICAgICAgZmlsZUNvdW50OiBCaWdJbnQobWFpbC5zZW50LmZpbGVDb3VudCksXG4gICAgICAgICAgICBtYXhGaWxlQ291bnQ6IG1haWwuc2VudC5tYXhGaWxlQ291bnRcbiAgICAgICAgICAgICAgPyBCaWdJbnQobWFpbC5zZW50Lm1heEZpbGVDb3VudClcbiAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgZmlsZVNpemU6IEJpZ0ludChtYWlsLnNlbnQuZmlsZVNpemUpLFxuICAgICAgICAgICAgbWF4RmlsZVNpemU6IG1haWwuc2VudC5tYXhGaWxlU2l6ZVxuICAgICAgICAgICAgICA/IEJpZ0ludChtYWlsLnNlbnQubWF4RmlsZVNpemUpXG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBhc3luYyBnb2RGYXRoZXJBbmRDaGlsZHJlbigpOiBQcm9taXNlPFxuICAgIFN1Y2Nlc3NSZXNwb25zZTxHb2RGYXRoZXJBbmRDaGlsZHJlbj4gfCBFcnJvck5vdEZvdW5kIHwgbnVsbFxuICA+IHtcbiAgICBjb25zdCB7IHVzZXIgfSA9IGF3YWl0IHRoaXMuY2xpZW50KFwicXVlcnlcIikoe1xuICAgICAgdXNlcjogW1xuICAgICAgICB7fSxcbiAgICAgICAge1xuICAgICAgICAgIFwiLi4ub24gRXJyb3JOb3RGb3VuZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBVc2VyUmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGdvZENoaWxkcmVuOiB7XG4gICAgICAgICAgICAgIGlkOiB0cnVlLFxuICAgICAgICAgICAgICBmaXJzdG5hbWU6IHRydWUsXG4gICAgICAgICAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgICBlbWFpbDogdHJ1ZSxcbiAgICAgICAgICAgICAgcGhvbmU6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnb2RGYXRoZXI6IHtcbiAgICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgICAgbGFzdG5hbWU6IHRydWUsXG4gICAgICAgICAgICAgIGVtYWlsOiB0cnVlLFxuICAgICAgICAgICAgICBwaG9uZTogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCF1c2VyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodXNlci5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90Rm91bmRcIikge1xuICAgICAgcmV0dXJuIHVzZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGdvZENoaWxkcmVuOiB1c2VyLmdvZENoaWxkcmVuLFxuICAgICAgICBnb2RGYXRoZXI6IHVzZXIuZ29kRmF0aGVyXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyB1cGRhdGVBcHBEQkNvbmZpZyh7XG4gICAgYXBwQ29kZSxcbiAgICBjb25maWcsXG4gICAgZW52LFxuICAgIHNlc3Npb25JZFxuICB9OiB7XG4gICAgYXBwQ29kZTogc3RyaW5nO1xuICAgIGNvbmZpZzogQXBwREJDb25maWc7XG4gICAgZW52OiBTZWNyZWN5RW52O1xuICAgIHNlc3Npb25JZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH0pOiBQcm9taXNlPFN1Y2Nlc3NSZXNwb25zZTxBcHBEQkNvbmZpZz4gfCBFcnJvckFjY2Vzc0RlbmllZCB8IG51bGw+IHtcbiAgICBjb25zdCB7IGRiQ29uZmlnTXV0YXRpb24gfSA9IGF3YWl0IEJhc2VDbGllbnQuX2dldEJhc2VDbGllbnQoXG4gICAgICBlbnYsXG4gICAgICBzZXNzaW9uSWRcbiAgICApKFwibXV0YXRpb25cIikoe1xuICAgICAgZGJDb25maWdNdXRhdGlvbjogW1xuICAgICAgICB7XG4gICAgICAgICAgYXBwQ29kZSxcbiAgICAgICAgICBjb25maWc6IEpTT04uc3RyaW5naWZ5KGNvbmZpZylcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRGJDb25maWdNdXRhdGlvblJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBkYkNvbmZpZ011dGF0aW9uOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIWRiQ29uZmlnTXV0YXRpb24pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChkYkNvbmZpZ011dGF0aW9uLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGRiQ29uZmlnTXV0YXRpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiBkYkNvbmZpZ011dGF0aW9uLmRiQ29uZmlnTXV0YXRpb25cbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldEFwcERCQ29uZmlnKFxuICAgIGFwcENvZGU6IHN0cmluZyxcbiAgICBlbnY6IFNlY3JlY3lFbnYsXG4gICAgc2Vzc2lvbklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPFxuICAgIHwgU3VjY2Vzc1Jlc3BvbnNlPEFwcERCQ29uZmlnPlxuICAgIHwgRXJyb3JBY2Nlc3NEZW5pZWRcbiAgICB8IEVycm9yTm90Rm91bmRcbiAgICB8IEVycm9yTm90RXhpc3RcbiAgICB8IG51bGxcbiAgPiB7XG4gICAgY29uc3QgeyBkYkNvbmZpZyB9ID0gYXdhaXQgQmFzZUNsaWVudC5fZ2V0QmFzZUNsaWVudChcbiAgICAgIGVudixcbiAgICAgIHNlc3Npb25JZFxuICAgICkoXCJxdWVyeVwiKSh7XG4gICAgICBkYkNvbmZpZzogW1xuICAgICAgICB7XG4gICAgICAgICAgYXBwQ29kZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBFcnJvck5vdEZvdW5kXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yTm90RXhpc3RcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRGJDb25maWdSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAganNvbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCFkYkNvbmZpZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGRiQ29uZmlnLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGRiQ29uZmlnO1xuICAgIH1cblxuICAgIGlmIChkYkNvbmZpZy5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90Rm91bmRcIikge1xuICAgICAgcmV0dXJuIGRiQ29uZmlnO1xuICAgIH1cblxuICAgIGlmIChkYkNvbmZpZy5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90RXhpc3RcIikge1xuICAgICAgcmV0dXJuIGRiQ29uZmlnO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogZGJDb25maWcuanNvblxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0RkFRKHtcbiAgICBsYW5nLFxuICAgIGVudixcbiAgICBzZXNzaW9uSWRcbiAgfToge1xuICAgIGxhbmc/OiBMYW5nO1xuICAgIGVudjogU2VjcmVjeUVudjtcbiAgICBzZXNzaW9uSWQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICB9KTogUHJvbWlzZTxTdWNjZXNzUmVzcG9uc2U8RmFxSXRlbVtdPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgZmFxIH0gPSBhd2FpdCBCYXNlQ2xpZW50Ll9nZXRCYXNlQ2xpZW50KGVudiwgc2Vzc2lvbklkKShcInF1ZXJ5XCIpKHtcbiAgICAgIGZhcTogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFuZ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBGYXFSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgZmFxOiB7XG4gICAgICAgICAgICAgIGFuc3dlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgb3JkZXI6IHRydWUsXG4gICAgICAgICAgICAgIHF1ZXN0aW9uOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIWZhcSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGZhcS5fX3R5cGVuYW1lID09PSBcIkVycm9yQWNjZXNzRGVuaWVkXCIpIHtcbiAgICAgIHJldHVybiBmYXE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiBmYXEuZmFxXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBnZXRCbG9nKHtcbiAgICBlbnYsXG4gICAgbGFuZyxcbiAgICBzZXNzaW9uSWRcbiAgfToge1xuICAgIGVudjogU2VjcmVjeUVudjtcbiAgICBsYW5nPzogTGFuZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgc2Vzc2lvbklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPEJsb2dJdGVtW10+IHwgRXJyb3JMYW5nTm90RXhpc3QgfCBudWxsPiB7XG4gICAgY29uc3QgeyBibG9nIH0gPSBhd2FpdCBCYXNlQ2xpZW50Ll9nZXRCYXNlQ2xpZW50KGVudiwgc2Vzc2lvbklkKShcInF1ZXJ5XCIpKHtcbiAgICAgIGJsb2c6IFtcbiAgICAgICAge1xuICAgICAgICAgIGxhbmdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiLi4ub24gRXJyb3JMYW5nTm90RXhpc3RcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gQmxvZ1Jlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBibG9nSXRlbXM6IHtcbiAgICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICAgIGJsb2dJZDogdHJ1ZSxcbiAgICAgICAgICAgICAgYXV0aG9yOiB0cnVlLFxuICAgICAgICAgICAgICBib2R5OiB0cnVlLFxuICAgICAgICAgICAgICBkYXRlOiB0cnVlLFxuICAgICAgICAgICAgICBpbWFnZTogdHJ1ZSxcbiAgICAgICAgICAgICAgaW1hZ2VBbHQ6IHRydWUsXG4gICAgICAgICAgICAgIHN1bW1hcnk6IHRydWUsXG4gICAgICAgICAgICAgIHRpdGxlOiB0cnVlLFxuICAgICAgICAgICAgICBvcmRlcjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCFibG9nKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoYmxvZy5fX3R5cGVuYW1lID09PSBcIkVycm9yTGFuZ05vdEV4aXN0XCIpIHtcbiAgICAgIHJldHVybiBibG9nO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogYmxvZy5ibG9nSXRlbXMubWFwKGIgPT4gKHsgLi4uYiwgZGF0ZTogbmV3IERhdGUoYi5kYXRlKSB9KSlcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgcmVwb3J0VXNlcihcbiAgICByZXBvcnRlZFVzZXJJZDogc3RyaW5nLFxuICAgIGN1c3RvbU1lc3NhZ2U/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxcbiAgICBTdWNjZXNzUmVzcG9uc2U8U2VuZFJlcG9ydD4gfCBFcnJvckFjY2Vzc0RlbmllZCB8IEVycm9yTm90Rm91bmQgfCBudWxsXG4gID4ge1xuICAgIGNvbnN0IHsgc2VuZFJlcG9ydCB9ID0gYXdhaXQgdGhpcy5jbGllbnQoXCJtdXRhdGlvblwiKSh7XG4gICAgICBzZW5kUmVwb3J0OiBbXG4gICAgICAgIHtcbiAgICAgICAgICByZXBvcnRlZFVzZXJJZCxcbiAgICAgICAgICBjdXN0b21NZXNzYWdlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yTm90Rm91bmRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gU2VuZFJlcG9ydFJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBzZW5kUmVwb3J0OiB7XG4gICAgICAgICAgICAgIGlkOiB0cnVlLFxuICAgICAgICAgICAgICBjdXN0b21NZXNzYWdlOiB0cnVlLFxuICAgICAgICAgICAgICB1c2VyOiB7XG4gICAgICAgICAgICAgICAgaWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZmlyc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgICAgIGxhc3RuYW1lOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVtYWlsOiB0cnVlXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHJlcG9ydGVkVXNlcjoge1xuICAgICAgICAgICAgICAgIGlkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGZpcnN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBsYXN0bmFtZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbWFpbDogdHJ1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIXNlbmRSZXBvcnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChzZW5kUmVwb3J0Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIHNlbmRSZXBvcnQ7XG4gICAgfVxuXG4gICAgaWYgKHNlbmRSZXBvcnQuX190eXBlbmFtZSA9PT0gXCJFcnJvck5vdEZvdW5kXCIpIHtcbiAgICAgIHJldHVybiBzZW5kUmVwb3J0O1xuICAgIH1cblxuICAgIGlmICghc2VuZFJlcG9ydC5zZW5kUmVwb3J0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IHNlbmRSZXBvcnQuc2VuZFJlcG9ydFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZGVsZXRlVXNlcih7XG4gICAgc2Vzc2lvbklkLFxuICAgIHVzZXJJZCxcbiAgICBlbnZcbiAgfToge1xuICAgIHNlc3Npb25JZDogc3RyaW5nO1xuICAgIHVzZXJJZD86IHN0cmluZztcbiAgICBlbnY6IFNlY3JlY3lFbnY7XG4gIH0pOiBQcm9taXNlPFN1Y2Nlc3NSZXNwb25zZTxib29sZWFuPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgZGVsZXRlVXNlciB9ID0gYXdhaXQgQmFzZUNsaWVudC5fZ2V0QmFzZUNsaWVudChcbiAgICAgIGVudixcbiAgICAgIHNlc3Npb25JZFxuICAgICkoXCJtdXRhdGlvblwiKSh7XG4gICAgICBkZWxldGVVc2VyOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB1c2VySWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRGVsZXRlVXNlclJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBkZWxldGVVc2VyOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIWRlbGV0ZVVzZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChkZWxldGVVc2VyLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGRlbGV0ZVVzZXI7XG4gICAgfVxuXG4gICAgaWYgKCFkZWxldGVVc2VyLmRlbGV0ZVVzZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogZGVsZXRlVXNlci5kZWxldGVVc2VyXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGRiR2V0PFU+KHtcbiAgICBmaWVsZCxcbiAgICB1c2VySWRcbiAgfToge1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgdXNlcklkPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgfSk6IFByb21pc2U8XG4gICAgfCBTdWNjZXNzUmVzcG9uc2U8VT5cbiAgICB8IEVycm9yQWNjZXNzRGVuaWVkXG4gICAgfCBFcnJvck5vdEV4aXN0XG4gICAgfCBFcnJvck5vdEZvdW5kXG4gICAgfCBudWxsXG4gID4ge1xuICAgIGNvbnN0IHsgZGJHZXQgfSA9IGF3YWl0IHRoaXMuY2xpZW50KFwicXVlcnlcIikoe1xuICAgICAgZGJHZXQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHVzZXJJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBFcnJvck5vdEV4aXN0XCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yTm90Rm91bmRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRGJHZXRSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAganNvbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCFkYkdldCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGRiR2V0Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGRiR2V0O1xuICAgIH1cblxuICAgIGlmIChkYkdldC5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90RXhpc3RcIikge1xuICAgICAgcmV0dXJuIGRiR2V0O1xuICAgIH1cblxuICAgIGlmIChkYkdldC5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90Rm91bmRcIikge1xuICAgICAgcmV0dXJuIGRiR2V0O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogZGJHZXQuanNvbi5yZXNcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZGJTZXQ8VCBleHRlbmRzIFVzZXJEYXRhLCBVIGV4dGVuZHMgRG9jdW1lbnQ+KHtcbiAgICB2YWx1ZSxcbiAgICB1c2VySWRcbiAgfToge1xuICAgIHZhbHVlOiBVO1xuICAgIHVzZXJJZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH0pOiBQcm9taXNlPFN1Y2Nlc3NSZXNwb25zZTxUPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgRXJyb3JOb3RGb3VuZCB8IG51bGw+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGB2YWx1ZSBzaG91bGQgYmUgYW4gb2JqZWN0IGluY2x1ZGluZyBmaWVsZHMgeW91IHdhbnQgdG8gdXBkYXRlLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBkYlNldCB9ID0gYXdhaXQgdGhpcy5jbGllbnQoXCJtdXRhdGlvblwiKSh7XG4gICAgICBkYlNldDogW1xuICAgICAgICB7XG4gICAgICAgICAgdXNlcklkLFxuICAgICAgICAgIHZhbHVlOiBzZXJpYWxpemUodmFsdWUpLnRvU3RyaW5nKFwiYmFzZTY0XCIpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yTm90Rm91bmRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRGJTZXRSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgZGJTZXQ6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghZGJTZXQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChkYlNldC5fX3R5cGVuYW1lID09PSBcIkVycm9yQWNjZXNzRGVuaWVkXCIpIHtcbiAgICAgIHJldHVybiBkYlNldDtcbiAgICB9XG5cbiAgICBpZiAoZGJTZXQuX190eXBlbmFtZSA9PT0gXCJFcnJvck5vdEZvdW5kXCIpIHtcbiAgICAgIHJldHVybiBkYlNldDtcbiAgICB9XG5cbiAgICBpZiAoIWRiU2V0LmRiU2V0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IGRiU2V0LmRiU2V0LnJlc1xuICAgIH07XG4gIH1cblxuICBhc3luYyBkYlNlYXJjaDxUPih7XG4gICAgc2VhcmNoLFxuICAgIGZpZWxkXG4gIH06IHtcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIHNlYXJjaDogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxcbiAgICBTdWNjZXNzUmVzcG9uc2U8VFtdPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgRXJyb3JCYXNpYyB8IEVycm9yTm90RXhpc3QgfCBudWxsXG4gID4ge1xuICAgIGNvbnN0IHsgZGJTZWFyY2ggfSA9IGF3YWl0IHRoaXMuY2xpZW50KFwicXVlcnlcIikoe1xuICAgICAgZGJTZWFyY2g6IFtcbiAgICAgICAge1xuICAgICAgICAgIHNlYXJjaCxcbiAgICAgICAgICBmaWVsZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBFcnJvckJhc2ljXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yTm90RXhpc3RcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRGJTZWFyY2hSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAganNvbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCFkYlNlYXJjaCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGRiU2VhcmNoLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGRiU2VhcmNoO1xuICAgIH1cblxuICAgIGlmIChkYlNlYXJjaC5fX3R5cGVuYW1lID09PSBcIkVycm9yQmFzaWNcIikge1xuICAgICAgcmV0dXJuIGRiU2VhcmNoO1xuICAgIH1cblxuICAgIGlmIChkYlNlYXJjaC5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90RXhpc3RcIikge1xuICAgICAgcmV0dXJuIGRiU2VhcmNoO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogZGJTZWFyY2guanNvblxuICAgIH07XG4gIH1cblxuICBhc3luYyBkZWxldGVGb2xkZXIoe1xuICAgIGlkXG4gIH06IHtcbiAgICBpZDogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxcbiAgICBTdWNjZXNzUmVzcG9uc2U8Ym9vbGVhbj4gfCBFcnJvck5vdEV4aXN0IHwgRXJyb3JBY2Nlc3NEZW5pZWQgfCBudWxsXG4gID4ge1xuICAgIGNvbnN0IHsgZGVsZXRlRm9sZGVyIH0gPSBhd2FpdCB0aGlzLmNsaWVudChcIm11dGF0aW9uXCIpKHtcbiAgICAgIGRlbGV0ZUZvbGRlcjogW1xuICAgICAgICB7XG4gICAgICAgICAgaWRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiLi4ub24gRXJyb3JOb3RFeGlzdFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBEZWxldGVGb2xkZXJSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgZGVsZXRlRm9sZGVyOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIWRlbGV0ZUZvbGRlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGRlbGV0ZUZvbGRlci5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90RXhpc3RcIikge1xuICAgICAgcmV0dXJuIGRlbGV0ZUZvbGRlcjtcbiAgICB9XG5cbiAgICBpZiAoZGVsZXRlRm9sZGVyLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGRlbGV0ZUZvbGRlcjtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgX190eXBlbmFtZTogXCJTdWNjZXNzUmVzcG9uc2VcIixcbiAgICAgIGRhdGE6IGRlbGV0ZUZvbGRlci5kZWxldGVGb2xkZXIgPz8gZmFsc2VcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgbW92ZUZvbGRlcnMoe1xuICAgIGZvbGRlcnNJZCxcbiAgICBwYXJlbnRGb2xkZXJJZFxuICB9OiB7XG4gICAgZm9sZGVyc0lkOiBzdHJpbmdbXTtcbiAgICBwYXJlbnRGb2xkZXJJZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH0pOiBQcm9taXNlPFN1Y2Nlc3NSZXNwb25zZTxib29sZWFuPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgbW92ZUZvbGRlcnMgfSA9IGF3YWl0IHRoaXMuY2xpZW50KFwibXV0YXRpb25cIikoe1xuICAgICAgbW92ZUZvbGRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZvbGRlcnNJZCxcbiAgICAgICAgICBwYXJlbnRGb2xkZXJJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBNb3ZlRm9sZGVyc1Jlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtb3ZlRm9sZGVyczogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCFtb3ZlRm9sZGVycykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKG1vdmVGb2xkZXJzLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIG1vdmVGb2xkZXJzO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogbW92ZUZvbGRlcnMubW92ZUZvbGRlcnMgPz8gZmFsc2VcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgbW92ZUZpbGVzKHtcbiAgICBmaWxlc0lkLFxuICAgIHBhcmVudEZvbGRlcklkXG4gIH06IHtcbiAgICBmaWxlc0lkOiBzdHJpbmdbXTtcbiAgICBwYXJlbnRGb2xkZXJJZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH0pOiBQcm9taXNlPFN1Y2Nlc3NSZXNwb25zZTxib29sZWFuPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgbW92ZUZpbGVzIH0gPSBhd2FpdCB0aGlzLmNsaWVudChcIm11dGF0aW9uXCIpKHtcbiAgICAgIG1vdmVGaWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgZmlsZXNJZCxcbiAgICAgICAgICBwYXJlbnRGb2xkZXJJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBNb3ZlRmlsZXNSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbW92ZUZpbGVzOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIW1vdmVGaWxlcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKG1vdmVGaWxlcy5fX3R5cGVuYW1lID09PSBcIkVycm9yQWNjZXNzRGVuaWVkXCIpIHtcbiAgICAgIHJldHVybiBtb3ZlRmlsZXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiBtb3ZlRmlsZXMubW92ZUZpbGVzID8/IGZhbHNlXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZvbGRlclNpemUoe1xuICAgIGZvbGRlcklkXG4gIH06IHtcbiAgICBmb2xkZXJJZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH0pOiBQcm9taXNlPFN1Y2Nlc3NSZXNwb25zZTxGb2xkZXJTaXplPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgZm9sZGVyU2l6ZSB9ID0gYXdhaXQgdGhpcy5jbGllbnQoXCJxdWVyeVwiKSh7XG4gICAgICBmb2xkZXJTaXplOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmb2xkZXJJZFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBGb2xkZXJTaXplUmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIHNpemU6IHRydWUsXG4gICAgICAgICAgICBzaXplQmVmb3JlOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIWZvbGRlclNpemUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChmb2xkZXJTaXplLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGZvbGRlclNpemU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHNpemU6IEJpZ0ludChmb2xkZXJTaXplLnNpemUpLFxuICAgICAgICBzaXplQmVmb3JlOiBCaWdJbnQoZm9sZGVyU2l6ZS5zaXplQmVmb3JlKVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBhc3luYyBnZXRTcG9uc29yc2hpcExpbmsoe1xuICAgIGJhY2tVcmxcbiAgfToge1xuICAgIGJhY2tVcmw6IHN0cmluZztcbiAgfSk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIGNvbnN0IG1lID0gYXdhaXQgdGhpcy5tZSh7IHdpdGhQdWJsaWNLZXk6IGZhbHNlIH0pO1xuXG4gICAgaWYgKCFtZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKG1lLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RGb3VuZFwiKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0TGluayh7XG4gICAgICBhcHA6IFwiYXV0aFwiLFxuICAgICAgcGF0aDogYC9zaWduLXVwP2dmPSR7YnRvYShtZS5kYXRhLmVtYWlsKX0mYXU9JHtidG9hKGJhY2tVcmwpfWBcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUF1dG9EaXNjb25uZWN0RGVsYXkoe1xuICAgIGlkLFxuICAgIGRlbGF5XG4gIH06IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGRlbGF5OiBudW1iZXIgfCBudWxsO1xuICB9KTogUHJvbWlzZTxcbiAgICB8IFN1Y2Nlc3NSZXNwb25zZTxib29sZWFuPlxuICAgIHwgRXJyb3JOb3RGb3VuZFxuICAgIHwgRXJyb3JBY2Nlc3NEZW5pZWRcbiAgICB8IEVycm9yQmFzaWNcbiAgICB8IG51bGxcbiAgPiB7XG4gICAgY29uc3QgeyB1cGRhdGVBdXRvRGlzY29ubmVjdERlbGF5IH0gPSBhd2FpdCB0aGlzLmNsaWVudChcIm11dGF0aW9uXCIpKHtcbiAgICAgIHVwZGF0ZUF1dG9EaXNjb25uZWN0RGVsYXk6IFtcbiAgICAgICAge1xuICAgICAgICAgIHVzZXJJZDogaWQsXG4gICAgICAgICAgZGVsYXk6IGRlbGF5ID8/IG51bGxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRXJyb3JOb3RGb3VuZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBFcnJvckJhc2ljXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIFVwZGF0ZUF1dG9EaXNjb25uZWN0RGVsYXlSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgdXBkYXRlQXV0b0Rpc2Nvbm5lY3REZWxheTogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCF1cGRhdGVBdXRvRGlzY29ubmVjdERlbGF5KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlQXV0b0Rpc2Nvbm5lY3REZWxheS5fX3R5cGVuYW1lID09PSBcIkVycm9yQWNjZXNzRGVuaWVkXCIpIHtcbiAgICAgIHJldHVybiB1cGRhdGVBdXRvRGlzY29ubmVjdERlbGF5O1xuICAgIH1cblxuICAgIGlmICh1cGRhdGVBdXRvRGlzY29ubmVjdERlbGF5Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JCYXNpY1wiKSB7XG4gICAgICByZXR1cm4gdXBkYXRlQXV0b0Rpc2Nvbm5lY3REZWxheTtcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlQXV0b0Rpc2Nvbm5lY3REZWxheS5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90Rm91bmRcIikge1xuICAgICAgcmV0dXJuIHVwZGF0ZUF1dG9EaXNjb25uZWN0RGVsYXk7XG4gICAgfVxuXG4gICAgaWYgKCF1cGRhdGVBdXRvRGlzY29ubmVjdERlbGF5LnVwZGF0ZUF1dG9EaXNjb25uZWN0RGVsYXkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogdXBkYXRlQXV0b0Rpc2Nvbm5lY3REZWxheS51cGRhdGVBdXRvRGlzY29ubmVjdERlbGF5XG4gICAgfTtcbiAgfVxufVxuIl19
@@ -7,6 +7,7 @@ import type { ReceivedMail, SentMail, Folder, VFileWithFolder, FolderFull, UserA
7
7
  import type { KeyPair } from "../crypto/index.js";
8
8
  import type { SecrecyEnv } from "./helpers.js";
9
9
  import type { Rights } from "../zeus/index.js";
10
+ import type { JwtPayload } from "jsonwebtoken";
10
11
  import type { ErrorAccessDenied, ErrorNotFound, ErrorBasic, ErrorNotExist, ErrorLimit } from "../error.js";
11
12
  export declare type NewMail = {
12
13
  body: string;
@@ -22,8 +23,10 @@ export declare type ProgressCallback = (progress: Progress) => Promise<void>;
22
23
  export declare class SecrecyClient extends BaseClient {
23
24
  #private;
24
25
  jwt: string;
26
+ jwtDecoded: JwtPayload;
25
27
  constructor(uaSession: string, uaKeys: KeyPair, uaJwt: string, env: SecrecyEnv);
26
28
  get publicKey(): string;
29
+ get appUserId(): string;
27
30
  addFileToHistory({ fileId, vFileId }: {
28
31
  fileId: string;
29
32
  vFileId: string;