@rudderstack/integrations-lib 0.2.25 → 0.2.26

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdks/sfmc/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,YAAY,EAEZ,yBAAyB,EACzB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EAEjB,UAAU,EACX,MAAM,QAAQ,CAAC;AAChB,OAAO,EAML,SAAS,EACT,SAAS,EAEV,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,UAAU,EAAE,UAAU,CAAC;gBAEX,UAAU,KAAA;IAKtB,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAiCjC;;;OAGG;IACG,cAAc;IAWpB;;;;OAIG;IACG,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAkB3F;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAkB5E;;;;OAIG;IACG,mBAAmB,CACvB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAmBnD;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC;IAyC7D;;;;OAIG;IACG,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC;IAwChF;;;;OAIG;IACG,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC;CAiDrF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdks/sfmc/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,YAAY,EAEZ,yBAAyB,EACzB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EAEjB,UAAU,EACX,MAAM,QAAQ,CAAC;AAChB,OAAO,EAML,SAAS,EACT,SAAS,EAEV,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,UAAU,EAAE,UAAU,CAAC;gBAEX,UAAU,KAAA;IAKtB,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAiCjC;;;OAGG;IACG,cAAc;IAWpB;;;;OAIG;IACG,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAkB3F;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAkB5E;;;;OAIG;IACG,mBAAmB,CACvB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAmBnD;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC;IAqD7D;;;;OAIG;IACG,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC;IAwChF;;;;OAIG;IACG,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC;CAiDrF"}
@@ -145,19 +145,30 @@ class SFMC {
145
145
  const res = parsedData.RetrieveResponseMsg?.Results;
146
146
  const businessUnits = [];
147
147
  if (res) {
148
+ const createBusinessUnit = (response) => {
149
+ const { PartnerProperties } = response;
150
+ const entry = {};
151
+ PartnerProperties.forEach((prop) => {
152
+ switch (prop.Name) {
153
+ case 'name':
154
+ entry.Name = prop.Value;
155
+ break;
156
+ case 'id':
157
+ entry.ID = prop.Value;
158
+ break;
159
+ default:
160
+ throw new utils_1.SoapError(`Unknown property: ${prop}`);
161
+ }
162
+ });
163
+ return entry;
164
+ };
148
165
  if (Array.isArray(res)) {
149
166
  res.forEach((eachRes) => {
150
- businessUnits.push({
151
- Name: eachRes.PartnerProperties[0].Value,
152
- ID: eachRes.PartnerProperties[1].Value,
153
- });
167
+ businessUnits.push(createBusinessUnit(eachRes));
154
168
  });
155
169
  }
156
170
  else {
157
- businessUnits.push({
158
- Name: res.PartnerProperties[0].Value,
159
- ID: res.PartnerProperties[1].Value,
160
- });
171
+ businessUnits.push(createBusinessUnit(res));
161
172
  }
162
173
  return businessUnits;
163
174
  }
@@ -259,4 +270,4 @@ class SFMC {
259
270
  }
260
271
  }
261
272
  exports.default = SFMC;
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9zZm1jL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQTBCO0FBWTFCLG1DQVNpQjtBQUVqQixNQUFxQixJQUFJO0lBR3ZCLFlBQVksVUFBVTtRQUNwQixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVPLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxVQUFlO1FBQy9DLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHO1lBQ2xCLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDbkQsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUN2RDtnQkFDRSxHQUFHLEVBQUUsV0FBVztnQkFDaEIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsS0FBSyxFQUFFLFlBQVk7Z0JBQ25CLFlBQVksRUFBRSx5Q0FBeUM7YUFDeEQ7U0FDRixDQUFDO1FBRUYsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUU7WUFDbkUsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksUUFBUSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxHQUFHLHdC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R0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7Q0FDRjtBQS9RRCx1QkErUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHtcbiAgQXV0aE9iamVjdCxcbiAgQnVzaW5lc3NVbml0LFxuICBCdXNpbmVzc1VuaXRSZXNwb25zZSxcbiAgQ29udGFjdEF0dHJpYnV0ZXNSZXNwb25zZSxcbiAgQ3JlYXRlRGF0YUV4dGVuc2lvblJlc3BvbnNlLFxuICBEYXRhRXh0ZW5zaW9uLFxuICBEYXRhRXh0ZW5zaW9uQm9keSxcbiAgRGF0YUV4dGVuc2lvblJlc3BvbnNlLFxuICBEYXRhRm9sZGVyLFxufSBmcm9tICcuL3R5cGUnO1xuaW1wb3J0IHtcbiAgZ2V0VXJsLFxuICBpc0V4cGlyZWQsXG4gIHBhcnNlRmlsdGVyLFxuICBwYXJzZVhNTCxcbiAgZ2V0VG9rZW4sXG4gIFJlc3RFcnJvcixcbiAgU29hcEVycm9yLFxuICB4bWxCdWlsZGVyLFxufSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU0ZNQyB7XG4gIGF1dGhPYmplY3Q6IEF1dGhPYmplY3Q7XG5cbiAgY29uc3RydWN0b3IoYXV0aE9iamVjdCkge1xuICAgIFNGTUMudmFsaWRhdGVBdXRoT2JqZWN0KGF1dGhPYmplY3QpO1xuICAgIHRoaXMuYXV0aE9iamVjdCA9IGF1dGhPYmplY3Q7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdDogYW55KTogYW55IHtcbiAgICBpZiAoIWF1dGhPYmplY3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYXV0aE9iamVjdCBpcyByZXF1aXJlZC4gU2VlIHRoZSByZWFkbWUuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdGlvbnMgPSBbXG4gICAgICB7IGtleTogJ2NsaWVudElkJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICB7IGtleTogJ2NsaWVudFNlY3JldCcsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdzdWJEb21haW4nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHJlZ2V4OiAvXlxcd3syOH0kL2dtLFxuICAgICAgICByZWdleE1lc3NhZ2U6ICdzdWJEb21haW4gbXVzdCBiZSBhIHN0cmluZyBvZiBsZW5ndGggMjgnLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgdmFsaWRhdGlvbnMuZm9yRWFjaCgoeyBrZXksIHR5cGUsIHJlcXVpcmVkLCByZWdleCwgcmVnZXhNZXNzYWdlIH0pID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gYXV0aE9iamVjdFtrZXldO1xuICAgICAgaWYgKHJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7a2V5fSBpcyBtaXNzaW5nIG9yIGludmFsaWRgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IHR5cGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgJHtrZXl9IG11c3QgYmUgYSAke3R5cGV9YCk7XG4gICAgICB9XG4gICAgICBpZiAocmVnZXggJiYgIXJlZ2V4LnRlc3QodmFsdWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZWdleE1lc3NhZ2UgfHwgYCR7a2V5fSBkb2VzIG5vdCBtYXRjaCB0aGUgcmVxdWlyZWQgZm9ybWF0YCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXV0aE9iamVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFjY2VzcyB0b2tlbi4gSWYgdGhlIHRva2VuIGlzIGV4cGlyZWQsIGl0IHdpbGwgZ2VuZXJhdGUgYSBuZXcgdG9rZW4uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEF1dGhPYmplY3Q+fSAgSXQgcmV0dXJucyB0aGUgYWNjZXNzIHRva2VuIG9yIGVycm9yXG4gICAqL1xuICBhc3luYyBnZXRBY2Nlc3NUb2tlbigpIHtcbiAgICBpZiAoaXNFeHBpcmVkKHRoaXMuYXV0aE9iamVjdCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGdldFRva2VuKHRoaXMuYXV0aE9iamVjdCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGdlbmVyYXRlIHRva2VuLCB3aXRoIGVycm9yOiR7ZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXV0aE9iamVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBmZXRjaGVzIHRoZSBmaWVsZHMgb2YgYSBkYXRhIGV4dGVuc2lvbi4gSXQgcmVxdWlyZXMgdGhlIGRhdGEgZXh0ZW5zaW9uIGlkLiBUaGUgbWV0aG9kIHJldHVybnMgdGhlIGZpZWxkcyBvZiB0aGUgZGF0YSBleHRlbnNpb24uIElmIHRoZSBkYXRhIGV4dGVuc2lvbiBpcyBub3QgZm91bmQsIGl0IHJldHVybnMgYSBSZXN0RXJyb3IuXG4gICAqIEBwYXJhbSBkYXRhRXh0ZW5zaW9uSWQgSWQgb2YgdGhlIGRhdGEgZXh0ZW5zaW9uIHdob3NlIGZpZWxkcyBhcmUgdG8gYmUgZmV0Y2hlZFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXN5bmMgZ2V0RGVzdGluYXRpb25GaWVsZHMoZGF0YUV4dGVuc2lvbklkOiBzdHJpbmcpOiBQcm9taXNlPERhdGFFeHRlbnNpb25Cb2R5IHwgUmVzdEVycm9yPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3RIZWFkZXJzID0ge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7KGF3YWl0IHRoaXMuZ2V0QWNjZXNzVG9rZW4oKSkuYWNjZXNzX3Rva2VufWAsXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIGJhc2VVUkw6IGdldFVybCh0aGlzLmF1dGhPYmplY3Quc3ViRG9tYWluKSxcbiAgICAgICAgdXJsOiBgL2RhdGEvdjEvY3VzdG9tb2JqZWN0cy8ke2RhdGFFeHRlbnNpb25JZH0vZmllbGRzYCxcbiAgICAgICAgaGVhZGVyczogcmVzdEhlYWRlcnMsXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGF4aW9zKHJlcXVlc3RPcHRpb25zKTtcbiAgICAgIHJldHVybiByZXNwLmRhdGE7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgUmVzdEVycm9yKGVycik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGZldGNoZXMgdGhlIGNvbnRhY3QgYXR0cmlidXRlcy4gVGhlIG1ldGhvZCByZXR1cm5zIHRoZSBjb250YWN0IGF0dHJpYnV0ZXMuIElmIHRoZSBjb250YWN0IGF0dHJpYnV0ZXMgYXJlIG5vdCBmb3VuZCwgaXQgcmV0dXJucyBhIFJlc3RFcnJvci5cbiAgICogQHJldHVybnNcbiAgICovXG4gIGFzeW5jIGdldENvbnRhY3RBdHRyaWJ1dGVzKCk6IFByb21pc2U8Q29udGFjdEF0dHJpYnV0ZXNSZXNwb25zZSB8IFJlc3RFcnJvcj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN0SGVhZGVycyA9IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAkeyhhd2FpdCB0aGlzLmdldEFjY2Vzc1Rva2VuKCkpLmFjY2Vzc190b2tlbn1gLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBiYXNlVVJMOiBnZXRVcmwodGhpcy5hdXRoT2JqZWN0LnN1YkRvbWFpbiksXG4gICAgICAgIHVybDogJy9jb250YWN0cy92MS9hdHRyaWJ1dGVTZXREZWZpbml0aW9ucycsXG4gICAgICAgIGhlYWRlcnM6IHJlc3RIZWFkZXJzLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBheGlvcyhyZXF1ZXN0T3B0aW9ucyk7XG4gICAgICByZXR1cm4gcmVzcC5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgbmV3IFJlc3RFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGEgZGF0YSBleHRlbnNpb24uIEl0IHJlcXVpcmVzIHRoZSBkYXRhIGV4dGVuc2lvbiBmaWVsZHMuIFRoZSBtZXRob2QgcmV0dXJucyB0aGUgZGF0YSBleHRlbnNpb24gY3JlYXRlZC4gSWYgdGhlIGRhdGEgZXh0ZW5zaW9uIGlzIG5vdCBjcmVhdGVkLCBpdCByZXR1cm5zIGEgUmVzdEVycm9yLlxuICAgKiBAcGFyYW0gYm9keSBEYXRhRXh0ZW5zaW9uIGZpZWxkc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXN5bmMgY3JlYXRlRGF0YUV4dGVuc2lvbihcbiAgICBib2R5OiBEYXRhRXh0ZW5zaW9uQm9keSxcbiAgKTogUHJvbWlzZTxDcmVhdGVEYXRhRXh0ZW5zaW9uUmVzcG9uc2UgfCBSZXN0RXJyb3I+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdEhlYWRlcnMgPSB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHsoYXdhaXQgdGhpcy5nZXRBY2Nlc3NUb2tlbigpKS5hY2Nlc3NfdG9rZW59YCxcbiAgICAgIH07XG4gICAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJhc2VVUkw6IGdldFVybCh0aGlzLmF1dGhPYmplY3Quc3ViRG9tYWluKSxcbiAgICAgICAgdXJsOiAnL2RhdGEvdjEvY3VzdG9tb2JqZWN0cycsXG4gICAgICAgIGhlYWRlcnM6IHJlc3RIZWFkZXJzLFxuICAgICAgICBkYXRhOiBib2R5LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBheGlvcyhyZXF1ZXN0T3B0aW9ucyk7XG4gICAgICByZXR1cm4gcmVzcC5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgUmVzdEVycm9yKGVycik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGZldGNoZXMgdGhlIGJ1c2luZXNzIHVuaXRzLiBUaGUgbWV0aG9kIHJldHVybnMgdGhlIGJ1c2luZXNzIHVuaXRzLiBJZiB0aGUgYnVzaW5lc3MgdW5pdHMgYXJlIG5vdCBmb3VuZCwgaXQgcmV0dXJucyBhIFNvYXBFcnJvci5cbiAgICogQHJldHVybnNcbiAgICovXG4gIGFzeW5jIGdldEJ1c2luZXNzVW5pdHMoKTogUHJvbWlzZTxCdXNpbmVzc1VuaXRbXSB8IFNvYXBFcnJvcj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IChhd2FpdCB0aGlzLmdldEFjY2Vzc1Rva2VuKCkpLmFjY2Vzc190b2tlbjtcbiAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYmFzZVVSTDogYGh0dHBzOi8vJHt0aGlzLmF1dGhPYmplY3Quc3ViRG9tYWlufS5zb2FwLm1hcmtldGluZ2Nsb3VkYXBpcy5jb21gLFxuICAgICAgICB1cmw6ICcvU2VydmljZS5hc214JyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIFNPQVBBY3Rpb246ICdSZXRyaWV2ZScsXG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3htbCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IGF3YWl0IHhtbEJ1aWxkZXIoJ0J1c2luZXNzVW5pdCcsIFsnbmFtZScsICdpZCddLCBhY2Nlc3NUb2tlbiksXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGF4aW9zKHJlcXVlc3RPcHRpb25zKTtcbiAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSBwYXJzZVhNTChyZXNwLmRhdGEpO1xuICAgICAgY29uc3QgcmVzID0gcGFyc2VkRGF0YS5SZXRyaWV2ZVJlc3BvbnNlTXNnPy5SZXN1bHRzIGFzXG4gICAgICAgIHwgQnVzaW5lc3NVbml0UmVzcG9uc2VcbiAgICAgICAgfCBCdXNpbmVzc1VuaXRSZXNwb25zZVtdO1xuICAgICAgY29uc3QgYnVzaW5lc3NVbml0czogQnVzaW5lc3NVbml0W10gPSBbXTtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzKSkge1xuICAgICAgICAgIHJlcy5mb3JFYWNoKChlYWNoUmVzKSA9PiB7XG4gICAgICAgICAgICBidXNpbmVzc1VuaXRzLnB1c2goe1xuICAgICAgICAgICAgICBOYW1lOiBlYWNoUmVzLlBhcnRuZXJQcm9wZXJ0aWVzWzBdLlZhbHVlLFxuICAgICAgICAgICAgICBJRDogZWFjaFJlcy5QYXJ0bmVyUHJvcGVydGllc1sxXS5WYWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJ1c2luZXNzVW5pdHMucHVzaCh7XG4gICAgICAgICAgICBOYW1lOiByZXMuUGFydG5lclByb3BlcnRpZXNbMF0uVmFsdWUsXG4gICAgICAgICAgICBJRDogcmVzLlBhcnRuZXJQcm9wZXJ0aWVzWzFdLlZhbHVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBidXNpbmVzc1VuaXRzO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IFNvYXBFcnJvcignTm8gQnVzaW5lc3MgVW5pdHMgZm91bmQnKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBTb2FwRXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgZmV0Y2hlcyB0aGUgZGF0YSBmb2xkZXJzLiBJdCBidXNpbmVzcyB1bml0IGlkIGlzIHByb3ZpZGVkIGFsbCBkYXRhIGZvbGRlciB1bmRlciB0aGF0IGJ1c2luZXNzIGlkIHdvdWxkIGJlIHJldHJpZXZlZCBvdGhlcndpc2UgYWxsIHRoZSBkYXRhIGZvbGRlciB3aWxsIGJlIHJldHJpZXZlZC4gVGhlIG1ldGhvZCByZXR1cm5zIHRoZSBkYXRhIGZvbGRlcnMuIElmIHRoZSBkYXRhIGZvbGRlcnMgYXJlIG5vdCBmb3VuZCwgaXQgcmV0dXJucyBhIFNvYXBFcnJvci5cbiAgICogQHBhcmFtIGJ1c2luZXNzVW5pdElkIHRoaXMgaXMgdGhlIGlkIG9mIHRoZSBidXNpbmVzcyB1bml0XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBhc3luYyBnZXREYXRhRm9sZGVycyhidXNpbmVzc1VuaXRJZD86IHN0cmluZyk6IFByb21pc2U8RGF0YUZvbGRlcltdIHwgU29hcEVycm9yPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gKGF3YWl0IHRoaXMuZ2V0QWNjZXNzVG9rZW4oKSkuYWNjZXNzX3Rva2VuO1xuICAgICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBiYXNlVVJMOiBgaHR0cHM6Ly8ke3RoaXMuYXV0aE9iamVjdC5zdWJEb21haW59LnNvYXAubWFya2V0aW5nY2xvdWRhcGlzLmNvbWAsXG4gICAgICAgIHVybDogJy9TZXJ2aWNlLmFzbXgnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgU09BUEFjdGlvbjogJ1JldHJpZXZlJyxcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ3RleHQveG1sJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF0YTogYnVzaW5lc3NVbml0SWRcbiAgICAgICAgICA/IGF3YWl0IHhtbEJ1aWxkZXIoXG4gICAgICAgICAgICAgICdEYXRhRm9sZGVyJyxcbiAgICAgICAgICAgICAgWydOYW1lJywgJ0lEJywgJ1BhcmVudEZvbGRlci5JRCddLFxuICAgICAgICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgcGFyc2VGaWx0ZXIoeyBsZWZ0T3BlcmFuZDogJ0NsaWVudC5JRCcsIHJpZ2h0T3BlcmFuZDogYnVzaW5lc3NVbml0SWQgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBhd2FpdCB4bWxCdWlsZGVyKCdEYXRhRm9sZGVyJywgWydOYW1lJywgJ0lEJywgJ1BhcmVudEZvbGRlci5JRCddLCBhY2Nlc3NUb2tlbiksXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGF4aW9zKHJlcXVlc3RPcHRpb25zKTtcbiAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSBwYXJzZVhNTChyZXNwLmRhdGEpO1xuICAgICAgY29uc3QgcmVzID0gcGFyc2VkRGF0YS5SZXRyaWV2ZVJlc3BvbnNlTXNnPy5SZXN1bHRzIGFzIERhdGFGb2xkZXIgfCBEYXRhRm9sZGVyW107XG4gICAgICBjb25zdCBkYXRhRm9sZGVyczogRGF0YUZvbGRlcltdID0gW107XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlcykpIHtcbiAgICAgICAgICByZXMuZm9yRWFjaCgoZWFjaFJlcykgPT4ge1xuICAgICAgICAgICAgZGF0YUZvbGRlcnMucHVzaChlYWNoUmVzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkYXRhRm9sZGVycy5wdXNoKHJlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGFGb2xkZXJzO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IFNvYXBFcnJvcignTm8gRGF0YSBGb2xkZXIgZm91bmQnKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBTb2FwRXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBmZXRjaGVzIHRoZSBkYXRhIGV4dGVuc2lvbnMuIEl0IHRoZSBkYXRhIGZvbGRlciBpZCBpcyBwcm92aWRlZCBhbGwgdGhlIGRhdGEgZXh0ZW5zaW9uIHVuZGVyIHRoYXQgZGF0YSBmb2xkZXIgd2lsbCBiZSByZXRyaWV2ZWQgb3RoZXJ3aXNlIGFsbCB0aGUgZGF0YSBleHRlbnNpb25zIHVuZGVyIHRoZSBhY2Nlc3MgdG9rZW4gd2lsbCBiZSBmZXRjaGVkLiBUaGUgbWV0aG9kIHJldHVybnMgdGhlIGRhdGEgZXh0ZW5zaW9ucy4gSWYgdGhlIGRhdGEgZXh0ZW5zaW9ucyBhcmUgbm90IGZvdW5kLCBpdCByZXR1cm5zIGEgU29hcEVycm9yLlxuICAgKiBAcGFyYW0gZGF0YUZvbGRlcklkIElkIG9mIHRoZSBkYXRhIGZvbGRlclxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXN5bmMgZ2V0RGF0YUV4dGVuc2lvbnMoZGF0YUZvbGRlcklkPzogc3RyaW5nKTogUHJvbWlzZTxEYXRhRXh0ZW5zaW9uW10gfCBTb2FwRXJyb3I+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSAoYXdhaXQgdGhpcy5nZXRBY2Nlc3NUb2tlbigpKS5hY2Nlc3NfdG9rZW47XG4gICAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJhc2VVUkw6IGBodHRwczovLyR7dGhpcy5hdXRoT2JqZWN0LnN1YkRvbWFpbn0uc29hcC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tYCxcbiAgICAgICAgdXJsOiAnL1NlcnZpY2UuYXNteCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBTT0FQQWN0aW9uOiAnUmV0cmlldmUnLFxuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAndGV4dC94bWwnLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhOiBkYXRhRm9sZGVySWRcbiAgICAgICAgICA/IGF3YWl0IHhtbEJ1aWxkZXIoXG4gICAgICAgICAgICAgICdEYXRhRXh0ZW5zaW9uJyxcbiAgICAgICAgICAgICAgWydOQU1FJywgJ09iamVjdElkJywgJ0NhdGVnb3J5SWQnXSxcbiAgICAgICAgICAgICAgYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICAgIHBhcnNlRmlsdGVyKHsgbGVmdE9wZXJhbmQ6ICdDYXRlZ29yeUlkJywgcmlnaHRPcGVyYW5kOiBkYXRhRm9sZGVySWQgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBhd2FpdCB4bWxCdWlsZGVyKCdEYXRhRXh0ZW5zaW9uJywgWydOQU1FJywgJ09iamVjdElkJywgJ0NhdGVnb3J5SWQnXSwgYWNjZXNzVG9rZW4pLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBheGlvcyhyZXF1ZXN0T3B0aW9ucyk7XG4gICAgICBjb25zdCBwYXJzZWREYXRhID0gcGFyc2VYTUwocmVzcC5kYXRhKTtcbiAgICAgIGNvbnN0IHJlcyA9IHBhcnNlZERhdGEuUmV0cmlldmVSZXNwb25zZU1zZz8uUmVzdWx0cyBhc1xuICAgICAgICB8IERhdGFFeHRlbnNpb25SZXNwb25zZVxuICAgICAgICB8IERhdGFFeHRlbnNpb25SZXNwb25zZVtdO1xuICAgICAgY29uc3QgZGF0YUV4dGVuc2lvbnM6IERhdGFFeHRlbnNpb25bXSA9IFtdO1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXMpKSB7XG4gICAgICAgICAgcmVzLmZvckVhY2goKGVhY2hSZXMpID0+IHtcbiAgICAgICAgICAgIGRhdGFFeHRlbnNpb25zLnB1c2goe1xuICAgICAgICAgICAgICBPYmplY3RJZDogZWFjaFJlcy5QYXJ0bmVyUHJvcGVydGllc1swXS5WYWx1ZSxcbiAgICAgICAgICAgICAgTmFtZTogZWFjaFJlcy5QYXJ0bmVyUHJvcGVydGllc1sxXS5WYWx1ZSxcbiAgICAgICAgICAgICAgQ2F0ZWdvcnlJZDogZWFjaFJlcy5QYXJ0bmVyUHJvcGVydGllc1syXS5WYWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGFFeHRlbnNpb25zLnB1c2goe1xuICAgICAgICAgICAgT2JqZWN0SWQ6IHJlcy5QYXJ0bmVyUHJvcGVydGllc1swXS5WYWx1ZSxcbiAgICAgICAgICAgIE5hbWU6IHJlcy5QYXJ0bmVyUHJvcGVydGllc1sxXS5WYWx1ZSxcbiAgICAgICAgICAgIENhdGVnb3J5SWQ6IHJlcy5QYXJ0bmVyUHJvcGVydGllc1syXS5WYWx1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YUV4dGVuc2lvbnM7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgU29hcEVycm9yKCdObyBEYXRhIEV4dGVuc2lvbiBmb3VuZCcpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgbmV3IFNvYXBFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxufVxuIl19
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2Rrcy9zZm1jL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQTBCO0FBWTFCLG1DQVNpQjtBQUVqQixNQUFxQixJQUFJO0lBR3ZCLFlBQVksVUFBVTtRQUNwQixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVPLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxVQUFlO1FBQy9DLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHO1lBQ2xCLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDbkQsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUN2RDtnQkFDRSxHQUFHLEVBQUUsV0FBVztnQkFDaEIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsS0FBSyxFQUFFLFlBQVk7Z0JBQ25CLFlBQVksRUFBRSx5Q0FBeUM7YUFDeEQ7U0FDRixDQUFDO1FBRUYsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUU7WUFDbkUsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksUUFBUSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxHQUFHLHdC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QkFDeEMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO3dCQUNwQyxVQUFVLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7cUJBQzNDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE9BQU8sY0FBYyxDQUFDO1lBQ3hCLENBQUM7WUFDRCxNQUFNLElBQUksaUJBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLGlCQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTNSRCx1QkEyUkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHtcbiAgQXV0aE9iamVjdCxcbiAgQnVzaW5lc3NVbml0LFxuICBCdXNpbmVzc1VuaXRSZXNwb25zZSxcbiAgQ29udGFjdEF0dHJpYnV0ZXNSZXNwb25zZSxcbiAgQ3JlYXRlRGF0YUV4dGVuc2lvblJlc3BvbnNlLFxuICBEYXRhRXh0ZW5zaW9uLFxuICBEYXRhRXh0ZW5zaW9uQm9keSxcbiAgRGF0YUV4dGVuc2lvblJlc3BvbnNlLFxuICBEYXRhRm9sZGVyLFxufSBmcm9tICcuL3R5cGUnO1xuaW1wb3J0IHtcbiAgZ2V0VXJsLFxuICBpc0V4cGlyZWQsXG4gIHBhcnNlRmlsdGVyLFxuICBwYXJzZVhNTCxcbiAgZ2V0VG9rZW4sXG4gIFJlc3RFcnJvcixcbiAgU29hcEVycm9yLFxuICB4bWxCdWlsZGVyLFxufSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU0ZNQyB7XG4gIGF1dGhPYmplY3Q6IEF1dGhPYmplY3Q7XG5cbiAgY29uc3RydWN0b3IoYXV0aE9iamVjdCkge1xuICAgIFNGTUMudmFsaWRhdGVBdXRoT2JqZWN0KGF1dGhPYmplY3QpO1xuICAgIHRoaXMuYXV0aE9iamVjdCA9IGF1dGhPYmplY3Q7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZUF1dGhPYmplY3QoYXV0aE9iamVjdDogYW55KTogYW55IHtcbiAgICBpZiAoIWF1dGhPYmplY3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYXV0aE9iamVjdCBpcyByZXF1aXJlZC4gU2VlIHRoZSByZWFkbWUuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdGlvbnMgPSBbXG4gICAgICB7IGtleTogJ2NsaWVudElkJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICB7IGtleTogJ2NsaWVudFNlY3JldCcsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdzdWJEb21haW4nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHJlZ2V4OiAvXlxcd3syOH0kL2dtLFxuICAgICAgICByZWdleE1lc3NhZ2U6ICdzdWJEb21haW4gbXVzdCBiZSBhIHN0cmluZyBvZiBsZW5ndGggMjgnLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgdmFsaWRhdGlvbnMuZm9yRWFjaCgoeyBrZXksIHR5cGUsIHJlcXVpcmVkLCByZWdleCwgcmVnZXhNZXNzYWdlIH0pID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gYXV0aE9iamVjdFtrZXldO1xuICAgICAgaWYgKHJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7a2V5fSBpcyBtaXNzaW5nIG9yIGludmFsaWRgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IHR5cGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgJHtrZXl9IG11c3QgYmUgYSAke3R5cGV9YCk7XG4gICAgICB9XG4gICAgICBpZiAocmVnZXggJiYgIXJlZ2V4LnRlc3QodmFsdWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZWdleE1lc3NhZ2UgfHwgYCR7a2V5fSBkb2VzIG5vdCBtYXRjaCB0aGUgcmVxdWlyZWQgZm9ybWF0YCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXV0aE9iamVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFjY2VzcyB0b2tlbi4gSWYgdGhlIHRva2VuIGlzIGV4cGlyZWQsIGl0IHdpbGwgZ2VuZXJhdGUgYSBuZXcgdG9rZW4uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEF1dGhPYmplY3Q+fSAgSXQgcmV0dXJucyB0aGUgYWNjZXNzIHRva2VuIG9yIGVycm9yXG4gICAqL1xuICBhc3luYyBnZXRBY2Nlc3NUb2tlbigpIHtcbiAgICBpZiAoaXNFeHBpcmVkKHRoaXMuYXV0aE9iamVjdCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGdldFRva2VuKHRoaXMuYXV0aE9iamVjdCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGdlbmVyYXRlIHRva2VuLCB3aXRoIGVycm9yOiR7ZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXV0aE9iamVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBmZXRjaGVzIHRoZSBmaWVsZHMgb2YgYSBkYXRhIGV4dGVuc2lvbi4gSXQgcmVxdWlyZXMgdGhlIGRhdGEgZXh0ZW5zaW9uIGlkLiBUaGUgbWV0aG9kIHJldHVybnMgdGhlIGZpZWxkcyBvZiB0aGUgZGF0YSBleHRlbnNpb24uIElmIHRoZSBkYXRhIGV4dGVuc2lvbiBpcyBub3QgZm91bmQsIGl0IHJldHVybnMgYSBSZXN0RXJyb3IuXG4gICAqIEBwYXJhbSBkYXRhRXh0ZW5zaW9uSWQgSWQgb2YgdGhlIGRhdGEgZXh0ZW5zaW9uIHdob3NlIGZpZWxkcyBhcmUgdG8gYmUgZmV0Y2hlZFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXN5bmMgZ2V0RGVzdGluYXRpb25GaWVsZHMoZGF0YUV4dGVuc2lvbklkOiBzdHJpbmcpOiBQcm9taXNlPERhdGFFeHRlbnNpb25Cb2R5IHwgUmVzdEVycm9yPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3RIZWFkZXJzID0ge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7KGF3YWl0IHRoaXMuZ2V0QWNjZXNzVG9rZW4oKSkuYWNjZXNzX3Rva2VufWAsXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIGJhc2VVUkw6IGdldFVybCh0aGlzLmF1dGhPYmplY3Quc3ViRG9tYWluKSxcbiAgICAgICAgdXJsOiBgL2RhdGEvdjEvY3VzdG9tb2JqZWN0cy8ke2RhdGFFeHRlbnNpb25JZH0vZmllbGRzYCxcbiAgICAgICAgaGVhZGVyczogcmVzdEhlYWRlcnMsXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGF4aW9zKHJlcXVlc3RPcHRpb25zKTtcbiAgICAgIHJldHVybiByZXNwLmRhdGE7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgUmVzdEVycm9yKGVycik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGZldGNoZXMgdGhlIGNvbnRhY3QgYXR0cmlidXRlcy4gVGhlIG1ldGhvZCByZXR1cm5zIHRoZSBjb250YWN0IGF0dHJpYnV0ZXMuIElmIHRoZSBjb250YWN0IGF0dHJpYnV0ZXMgYXJlIG5vdCBmb3VuZCwgaXQgcmV0dXJucyBhIFJlc3RFcnJvci5cbiAgICogQHJldHVybnNcbiAgICovXG4gIGFzeW5jIGdldENvbnRhY3RBdHRyaWJ1dGVzKCk6IFByb21pc2U8Q29udGFjdEF0dHJpYnV0ZXNSZXNwb25zZSB8IFJlc3RFcnJvcj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN0SGVhZGVycyA9IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAkeyhhd2FpdCB0aGlzLmdldEFjY2Vzc1Rva2VuKCkpLmFjY2Vzc190b2tlbn1gLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBiYXNlVVJMOiBnZXRVcmwodGhpcy5hdXRoT2JqZWN0LnN1YkRvbWFpbiksXG4gICAgICAgIHVybDogJy9jb250YWN0cy92MS9hdHRyaWJ1dGVTZXREZWZpbml0aW9ucycsXG4gICAgICAgIGhlYWRlcnM6IHJlc3RIZWFkZXJzLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBheGlvcyhyZXF1ZXN0T3B0aW9ucyk7XG4gICAgICByZXR1cm4gcmVzcC5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgbmV3IFJlc3RFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGEgZGF0YSBleHRlbnNpb24uIEl0IHJlcXVpcmVzIHRoZSBkYXRhIGV4dGVuc2lvbiBmaWVsZHMuIFRoZSBtZXRob2QgcmV0dXJucyB0aGUgZGF0YSBleHRlbnNpb24gY3JlYXRlZC4gSWYgdGhlIGRhdGEgZXh0ZW5zaW9uIGlzIG5vdCBjcmVhdGVkLCBpdCByZXR1cm5zIGEgUmVzdEVycm9yLlxuICAgKiBAcGFyYW0gYm9keSBEYXRhRXh0ZW5zaW9uIGZpZWxkc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXN5bmMgY3JlYXRlRGF0YUV4dGVuc2lvbihcbiAgICBib2R5OiBEYXRhRXh0ZW5zaW9uQm9keSxcbiAgKTogUHJvbWlzZTxDcmVhdGVEYXRhRXh0ZW5zaW9uUmVzcG9uc2UgfCBSZXN0RXJyb3I+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdEhlYWRlcnMgPSB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHsoYXdhaXQgdGhpcy5nZXRBY2Nlc3NUb2tlbigpKS5hY2Nlc3NfdG9rZW59YCxcbiAgICAgIH07XG4gICAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJhc2VVUkw6IGdldFVybCh0aGlzLmF1dGhPYmplY3Quc3ViRG9tYWluKSxcbiAgICAgICAgdXJsOiAnL2RhdGEvdjEvY3VzdG9tb2JqZWN0cycsXG4gICAgICAgIGhlYWRlcnM6IHJlc3RIZWFkZXJzLFxuICAgICAgICBkYXRhOiBib2R5LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBheGlvcyhyZXF1ZXN0T3B0aW9ucyk7XG4gICAgICByZXR1cm4gcmVzcC5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgUmVzdEVycm9yKGVycik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGZldGNoZXMgdGhlIGJ1c2luZXNzIHVuaXRzLiBUaGUgbWV0aG9kIHJldHVybnMgdGhlIGJ1c2luZXNzIHVuaXRzLiBJZiB0aGUgYnVzaW5lc3MgdW5pdHMgYXJlIG5vdCBmb3VuZCwgaXQgcmV0dXJucyBhIFNvYXBFcnJvci5cbiAgICogQHJldHVybnNcbiAgICovXG4gIGFzeW5jIGdldEJ1c2luZXNzVW5pdHMoKTogUHJvbWlzZTxCdXNpbmVzc1VuaXRbXSB8IFNvYXBFcnJvcj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IChhd2FpdCB0aGlzLmdldEFjY2Vzc1Rva2VuKCkpLmFjY2Vzc190b2tlbjtcbiAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYmFzZVVSTDogYGh0dHBzOi8vJHt0aGlzLmF1dGhPYmplY3Quc3ViRG9tYWlufS5zb2FwLm1hcmtldGluZ2Nsb3VkYXBpcy5jb21gLFxuICAgICAgICB1cmw6ICcvU2VydmljZS5hc214JyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIFNPQVBBY3Rpb246ICdSZXRyaWV2ZScsXG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3htbCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IGF3YWl0IHhtbEJ1aWxkZXIoJ0J1c2luZXNzVW5pdCcsIFsnbmFtZScsICdpZCddLCBhY2Nlc3NUb2tlbiksXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGF4aW9zKHJlcXVlc3RPcHRpb25zKTtcbiAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSBwYXJzZVhNTChyZXNwLmRhdGEpO1xuICAgICAgY29uc3QgcmVzID0gcGFyc2VkRGF0YS5SZXRyaWV2ZVJlc3BvbnNlTXNnPy5SZXN1bHRzIGFzXG4gICAgICAgIHwgQnVzaW5lc3NVbml0UmVzcG9uc2VcbiAgICAgICAgfCBCdXNpbmVzc1VuaXRSZXNwb25zZVtdO1xuICAgICAgY29uc3QgYnVzaW5lc3NVbml0czogQnVzaW5lc3NVbml0W10gPSBbXTtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgY29uc3QgY3JlYXRlQnVzaW5lc3NVbml0ID0gKHJlc3BvbnNlOiBCdXNpbmVzc1VuaXRSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgUGFydG5lclByb3BlcnRpZXMgfSA9IHJlc3BvbnNlO1xuICAgICAgICAgIGNvbnN0IGVudHJ5ID0ge30gYXMgQnVzaW5lc3NVbml0O1xuICAgICAgICAgIFBhcnRuZXJQcm9wZXJ0aWVzLmZvckVhY2goKHByb3ApID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAocHJvcC5OYW1lKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ25hbWUnOlxuICAgICAgICAgICAgICAgIGVudHJ5Lk5hbWUgPSBwcm9wLlZhbHVlIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSAnaWQnOlxuICAgICAgICAgICAgICAgIGVudHJ5LklEID0gcHJvcC5WYWx1ZSBhcyBudW1iZXI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFNvYXBFcnJvcihgVW5rbm93biBwcm9wZXJ0eTogJHtwcm9wfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBlbnRyeTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXMpKSB7XG4gICAgICAgICAgcmVzLmZvckVhY2goKGVhY2hSZXMpID0+IHtcbiAgICAgICAgICAgIGJ1c2luZXNzVW5pdHMucHVzaChjcmVhdGVCdXNpbmVzc1VuaXQoZWFjaFJlcykpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJ1c2luZXNzVW5pdHMucHVzaChjcmVhdGVCdXNpbmVzc1VuaXQocmVzKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ1c2luZXNzVW5pdHM7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgU29hcEVycm9yKCdObyBCdXNpbmVzcyBVbml0cyBmb3VuZCcpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgbmV3IFNvYXBFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBmZXRjaGVzIHRoZSBkYXRhIGZvbGRlcnMuIEl0IGJ1c2luZXNzIHVuaXQgaWQgaXMgcHJvdmlkZWQgYWxsIGRhdGEgZm9sZGVyIHVuZGVyIHRoYXQgYnVzaW5lc3MgaWQgd291bGQgYmUgcmV0cmlldmVkIG90aGVyd2lzZSBhbGwgdGhlIGRhdGEgZm9sZGVyIHdpbGwgYmUgcmV0cmlldmVkLiBUaGUgbWV0aG9kIHJldHVybnMgdGhlIGRhdGEgZm9sZGVycy4gSWYgdGhlIGRhdGEgZm9sZGVycyBhcmUgbm90IGZvdW5kLCBpdCByZXR1cm5zIGEgU29hcEVycm9yLlxuICAgKiBAcGFyYW0gYnVzaW5lc3NVbml0SWQgdGhpcyBpcyB0aGUgaWQgb2YgdGhlIGJ1c2luZXNzIHVuaXRcbiAgICogQHJldHVybnNcbiAgICovXG4gIGFzeW5jIGdldERhdGFGb2xkZXJzKGJ1c2luZXNzVW5pdElkPzogc3RyaW5nKTogUHJvbWlzZTxEYXRhRm9sZGVyW10gfCBTb2FwRXJyb3I+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSAoYXdhaXQgdGhpcy5nZXRBY2Nlc3NUb2tlbigpKS5hY2Nlc3NfdG9rZW47XG4gICAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJhc2VVUkw6IGBodHRwczovLyR7dGhpcy5hdXRoT2JqZWN0LnN1YkRvbWFpbn0uc29hcC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tYCxcbiAgICAgICAgdXJsOiAnL1NlcnZpY2UuYXNteCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBTT0FQQWN0aW9uOiAnUmV0cmlldmUnLFxuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAndGV4dC94bWwnLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhOiBidXNpbmVzc1VuaXRJZFxuICAgICAgICAgID8gYXdhaXQgeG1sQnVpbGRlcihcbiAgICAgICAgICAgICAgJ0RhdGFGb2xkZXInLFxuICAgICAgICAgICAgICBbJ05hbWUnLCAnSUQnLCAnUGFyZW50Rm9sZGVyLklEJ10sXG4gICAgICAgICAgICAgIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICBwYXJzZUZpbHRlcih7IGxlZnRPcGVyYW5kOiAnQ2xpZW50LklEJywgcmlnaHRPcGVyYW5kOiBidXNpbmVzc1VuaXRJZCB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGF3YWl0IHhtbEJ1aWxkZXIoJ0RhdGFGb2xkZXInLCBbJ05hbWUnLCAnSUQnLCAnUGFyZW50Rm9sZGVyLklEJ10sIGFjY2Vzc1Rva2VuKSxcbiAgICAgIH07XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgYXhpb3MocmVxdWVzdE9wdGlvbnMpO1xuICAgICAgY29uc3QgcGFyc2VkRGF0YSA9IHBhcnNlWE1MKHJlc3AuZGF0YSk7XG4gICAgICBjb25zdCByZXMgPSBwYXJzZWREYXRhLlJldHJpZXZlUmVzcG9uc2VNc2c/LlJlc3VsdHMgYXMgRGF0YUZvbGRlciB8IERhdGFGb2xkZXJbXTtcbiAgICAgIGNvbnN0IGRhdGFGb2xkZXJzOiBEYXRhRm9sZGVyW10gPSBbXTtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzKSkge1xuICAgICAgICAgIHJlcy5mb3JFYWNoKChlYWNoUmVzKSA9PiB7XG4gICAgICAgICAgICBkYXRhRm9sZGVycy5wdXNoKGVhY2hSZXMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGFGb2xkZXJzLnB1c2gocmVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YUZvbGRlcnM7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgU29hcEVycm9yKCdObyBEYXRhIEZvbGRlciBmb3VuZCcpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgbmV3IFNvYXBFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGZldGNoZXMgdGhlIGRhdGEgZXh0ZW5zaW9ucy4gSXQgdGhlIGRhdGEgZm9sZGVyIGlkIGlzIHByb3ZpZGVkIGFsbCB0aGUgZGF0YSBleHRlbnNpb24gdW5kZXIgdGhhdCBkYXRhIGZvbGRlciB3aWxsIGJlIHJldHJpZXZlZCBvdGhlcndpc2UgYWxsIHRoZSBkYXRhIGV4dGVuc2lvbnMgdW5kZXIgdGhlIGFjY2VzcyB0b2tlbiB3aWxsIGJlIGZldGNoZWQuIFRoZSBtZXRob2QgcmV0dXJucyB0aGUgZGF0YSBleHRlbnNpb25zLiBJZiB0aGUgZGF0YSBleHRlbnNpb25zIGFyZSBub3QgZm91bmQsIGl0IHJldHVybnMgYSBTb2FwRXJyb3IuXG4gICAqIEBwYXJhbSBkYXRhRm9sZGVySWQgSWQgb2YgdGhlIGRhdGEgZm9sZGVyXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBhc3luYyBnZXREYXRhRXh0ZW5zaW9ucyhkYXRhRm9sZGVySWQ/OiBzdHJpbmcpOiBQcm9taXNlPERhdGFFeHRlbnNpb25bXSB8IFNvYXBFcnJvcj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IChhd2FpdCB0aGlzLmdldEFjY2Vzc1Rva2VuKCkpLmFjY2Vzc190b2tlbjtcbiAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYmFzZVVSTDogYGh0dHBzOi8vJHt0aGlzLmF1dGhPYmplY3Quc3ViRG9tYWlufS5zb2FwLm1hcmtldGluZ2Nsb3VkYXBpcy5jb21gLFxuICAgICAgICB1cmw6ICcvU2VydmljZS5hc214JyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIFNPQVBBY3Rpb246ICdSZXRyaWV2ZScsXG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3htbCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IGRhdGFGb2xkZXJJZFxuICAgICAgICAgID8gYXdhaXQgeG1sQnVpbGRlcihcbiAgICAgICAgICAgICAgJ0RhdGFFeHRlbnNpb24nLFxuICAgICAgICAgICAgICBbJ05BTUUnLCAnT2JqZWN0SWQnLCAnQ2F0ZWdvcnlJZCddLFxuICAgICAgICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgcGFyc2VGaWx0ZXIoeyBsZWZ0T3BlcmFuZDogJ0NhdGVnb3J5SWQnLCByaWdodE9wZXJhbmQ6IGRhdGFGb2xkZXJJZCB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGF3YWl0IHhtbEJ1aWxkZXIoJ0RhdGFFeHRlbnNpb24nLCBbJ05BTUUnLCAnT2JqZWN0SWQnLCAnQ2F0ZWdvcnlJZCddLCBhY2Nlc3NUb2tlbiksXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGF4aW9zKHJlcXVlc3RPcHRpb25zKTtcbiAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSBwYXJzZVhNTChyZXNwLmRhdGEpO1xuICAgICAgY29uc3QgcmVzID0gcGFyc2VkRGF0YS5SZXRyaWV2ZVJlc3BvbnNlTXNnPy5SZXN1bHRzIGFzXG4gICAgICAgIHwgRGF0YUV4dGVuc2lvblJlc3BvbnNlXG4gICAgICAgIHwgRGF0YUV4dGVuc2lvblJlc3BvbnNlW107XG4gICAgICBjb25zdCBkYXRhRXh0ZW5zaW9uczogRGF0YUV4dGVuc2lvbltdID0gW107XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlcykpIHtcbiAgICAgICAgICByZXMuZm9yRWFjaCgoZWFjaFJlcykgPT4ge1xuICAgICAgICAgICAgZGF0YUV4dGVuc2lvbnMucHVzaCh7XG4gICAgICAgICAgICAgIE9iamVjdElkOiBlYWNoUmVzLlBhcnRuZXJQcm9wZXJ0aWVzWzBdLlZhbHVlLFxuICAgICAgICAgICAgICBOYW1lOiBlYWNoUmVzLlBhcnRuZXJQcm9wZXJ0aWVzWzFdLlZhbHVlLFxuICAgICAgICAgICAgICBDYXRlZ29yeUlkOiBlYWNoUmVzLlBhcnRuZXJQcm9wZXJ0aWVzWzJdLlZhbHVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGF0YUV4dGVuc2lvbnMucHVzaCh7XG4gICAgICAgICAgICBPYmplY3RJZDogcmVzLlBhcnRuZXJQcm9wZXJ0aWVzWzBdLlZhbHVlLFxuICAgICAgICAgICAgTmFtZTogcmVzLlBhcnRuZXJQcm9wZXJ0aWVzWzFdLlZhbHVlLFxuICAgICAgICAgICAgQ2F0ZWdvcnlJZDogcmVzLlBhcnRuZXJQcm9wZXJ0aWVzWzJdLlZhbHVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhRXh0ZW5zaW9ucztcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBTb2FwRXJyb3IoJ05vIERhdGEgRXh0ZW5zaW9uIGZvdW5kJyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgU29hcEVycm9yKGVycik7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -463,8 +463,8 @@ describe('sfmc', () => {
463
463
  expect(utils.isExpired).toHaveBeenCalledWith(validAuthObject);
464
464
  expect(requestTokenSpy).not.toHaveBeenCalled();
465
465
  expect(result).toStrictEqual([
466
- { ID: 'Lansdowne Stadium LP', Name: 534003210 },
467
- { ID: 'Lansdowne Stadium LP', Name: 534003210 },
466
+ { Name: 'Lansdowne Stadium LP', ID: 534003210 },
467
+ { Name: 'Lansdowne Stadium LP', ID: 534003210 },
468
468
  ]);
469
469
  });
470
470
  it('should handle failure scenario', async () => {
@@ -748,4 +748,4 @@ describe('sfmc', () => {
748
748
  });
749
749
  });
750
750
  });
751
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZGtzL3NmbWMvaW5kZXgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQiw0RUFBa0Q7QUFDbEQseUNBQXFCO0FBQ3JCLCtDQUFpQztBQUVqQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtJQUNwQixRQUFRLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO1FBQzlCLEVBQUUsQ0FBQyw2REFBNkQsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMzRSxNQUFNLGVBQWUsR0FBRztnQkFDdEIsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLFlBQVksRUFBRSxhQUFhO2dCQUMzQixTQUFTLEVBQUUsOEJBQThCO2dCQUN6QyxZQUFZLEVBQUUsYUFBYTtnQkFDM0IsVUFBVSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJO2FBQ3ZDLENBQUM7WUFFRixNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM3QyxVQUFVLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQztZQUV4QyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFakQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNyQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLG9CQUFvQixD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O1lBQ3RFLENBQUM7WUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzlELE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IEF4aW9zTW9ja0FkYXB0ZXIgZnJvbSAnYXhpb3MtbW9jay1hZGFwdGVyJztcbmltcG9ydCBTRk1DIGZyb20gJy4nO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmRlc2NyaWJlKCdzZm1jJywgKCkgPT4ge1xuICBkZXNjcmliZSgnZ2V0QWNjZXNzVG9rZW4nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gZXhpc3RpbmcgYXV0aE9iamVjdCB3aGVuIHRva2VuIGlzIG5vdCBleHBpcmVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogJ3Rlc3QtY2xpZW50JyxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxJyxcbiAgICAgICAgYWNjZXNzX3Rva2VuOiAndmFsaWQtdG9rZW4nLFxuICAgICAgICBleHBpcmF0aW9uOiBwcm9jZXNzLmhydGltZSgpWzBdICsgMzYwMCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNmbWNDbGllbnQgPSBuZXcgU0ZNQyh2YWxpZEF1dGhPYmplY3QpO1xuICAgICAgc2ZtY0NsaWVudC5hdXRoT2JqZWN0ID0gdmFsaWRBdXRoT2JqZWN0O1xuXG4gICAgICBqZXN0LnNweU9uKHV0aWxzLCAnaXNFeHBpcmVkJykubW9ja1JldHVyblZhbHVlKGZhbHNlKTtcbiAgICAgIGNvbnN0IHJlcXVlc3RUb2tlblNweSA9IGplc3Quc3B5T24odXRpbHMsICdnZXRUb2tlbicpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2ZtY0NsaWVudC5nZXRBY2Nlc3NUb2tlbigpO1xuXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHZhbGlkQXV0aE9iamVjdCk7XG4gICAgICBleHBlY3QodXRpbHMuaXNFeHBpcmVkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh2YWxpZEF1dGhPYmplY3QpO1xuICAgICAgZXhwZWN0KHJlcXVlc3RUb2tlblNweSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcbiAgICAvLyBIYW5kbGVzIGNhc2Ugd2hlbiBhdXRoT2JqZWN0IGlzIGluaXRpYWxseSBlbXB0eSBvciBudWxsXG4gICAgaXQoJ3Nob3VsZCByZXF1ZXN0IG5ldyB0b2tlbiB3aGVuIGF1dGhPYmplY3QgaXMgZW1wdHknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlbXB0eUF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbmV3QXV0aE9iamVjdCA9IHtcbiAgICAgICAgLi4uZW1wdHlBdXRoT2JqZWN0LFxuICAgICAgICBhY2Nlc3NfdG9rZW46ICduZXctdG9rZW4nLFxuICAgICAgICBleHBpcmVzX2luOiAxMjM0NSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNmbWNDbGllbnQgPSBuZXcgU0ZNQyhlbXB0eUF1dGhPYmplY3QpO1xuICAgICAgc2ZtY0NsaWVudC5hdXRoT2JqZWN0ID0gZW1wdHlBdXRoT2JqZWN0O1xuXG4gICAgICBqZXN0LnNweU9uKHV0aWxzLCAnaXNFeHBpcmVkJykubW9ja1JldHVyblZhbHVlKHRydWUpO1xuICAgICAgLy8gamVzdC5zcHlPbihheGlvcywgJ2dldFRva2VuJykubW9ja1Jlc29sdmVkVmFsdWUobmV3QXV0aE9iamVjdCk7XG4gICAgICBjb25zdCBtb2NrQWRhcHRlciA9IG5ldyBBeGlvc01vY2tBZGFwdGVyKGF4aW9zLCB7IG9uTm9NYXRjaDogJ3Rocm93RXhjZXB0aW9uJyB9KTtcbiAgICAgIG1vY2tBZGFwdGVyXG4gICAgICAgIC5vblBvc3QoJ2h0dHBzOi8vYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMS5hdXRoLm1hcmtldGluZ2Nsb3VkYXBpcy5jb20vdjIvdG9rZW4nKVxuICAgICAgICAucmVwbHkoMjAwLCBuZXdBdXRoT2JqZWN0KTtcbiAgICAgIGplc3Quc3B5T24ocHJvY2VzcywgJ2hydGltZScpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBbMCwgMF0pO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2ZtY0NsaWVudC5nZXRBY2Nlc3NUb2tlbigpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7IC4uLm5ld0F1dGhPYmplY3QsIGV4cGlyYXRpb246IDEyMzQ1IH0pO1xuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZW1wdHlBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdCh1dGlscy5nZXRUb2tlbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoZW1wdHlBdXRoT2JqZWN0KTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gYXV0aE9iamVjdCBoYXMgaW52YWxpZCBjbGllbnRJZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGludmFsaWRBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogbnVsbCxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICd0ZXN0JyxcbiAgICAgIH07XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzZm1jSW5zdGFuY2UgPSBuZXcgU0ZNQyhpbnZhbGlkQXV0aE9iamVjdCk7XG4gICAgICAgIHNmbWNJbnN0YW5jZS5nZXRBY2Nlc3NUb2tlbigpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBleHBlY3QoZSkudG9FcXVhbChuZXcgRXJyb3IoJ2NsaWVudElkIGlzIG1pc3Npbmcgb3IgaW52YWxpZCcpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBjb25jdXJyZW50IHRva2VuIHJlZnJlc2ggcmVxdWVzdHMgY29ycmVjdGx5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZW1wdHlBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogJ3Rlc3QtY2xpZW50JyxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG5ld0F1dGhPYmplY3QgPSB7XG4gICAgICAgIC4uLmVtcHR5QXV0aE9iamVjdCxcbiAgICAgICAgYWNjZXNzX3Rva2VuOiAnbmV3LXRva2VuJyxcbiAgICAgICAgZXhwaXJlc19pbjogMTIzNDUsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzZm1jQ2xpZW50ID0gbmV3IFNGTUMoZW1wdHlBdXRoT2JqZWN0KTtcbiAgICAgIHNmbWNDbGllbnQuYXV0aE9iamVjdCA9IGVtcHR5QXV0aE9iamVjdDtcblxuICAgICAgamVzdC5zcHlPbih1dGlscywgJ2lzRXhwaXJlZCcpLm1vY2tSZXR1cm5WYWx1ZSh0cnVlKTtcbiAgICAgIGNvbnN0IG1vY2tBZGFwdGVyID0gbmV3IEF4aW9zTW9ja0FkYXB0ZXIoYXhpb3MsIHsgb25Ob01hdGNoOiAndGhyb3dFeGNlcHRpb24nIH0pO1xuICAgICAgbW9ja0FkYXB0ZXJcbiAgICAgICAgLm9uUG9zdCgnaHR0cHM6Ly9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxLmF1dGgubWFya2V0aW5nY2xvdWRhcGlzLmNvbS92Mi90b2tlbicpXG4gICAgICAgIC5yZXBseSgyMDAsIG5ld0F1dGhPYmplY3QpO1xuICAgICAgamVzdC5zcHlPbihwcm9jZXNzLCAnaHJ0aW1lJykubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFswLCAwXSk7XG4gICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgc2ZtY0NsaWVudC5nZXRBY2Nlc3NUb2tlbigpO1xuICAgICAgamVzdC5zcHlPbih1dGlscywgJ2lzRXhwaXJlZCcpLm1vY2tSZXR1cm5WYWx1ZShmYWxzZSk7XG4gICAgICByZXN1bHQgPSBhd2FpdCBzZm1jQ2xpZW50LmdldEFjY2Vzc1Rva2VuKCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHsgLi4ubmV3QXV0aE9iamVjdCwgZXhwaXJhdGlvbjogMTIzNDUgfSk7XG4gICAgICBleHBlY3QodXRpbHMuaXNFeHBpcmVkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChlbXB0eUF1dGhPYmplY3QpO1xuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZW1wdHlBdXRoT2JqZWN0KTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdpdGggb3JpZ2luYWwgbWVzc2FnZSB3aGVuIHRva2VuIHJlcXVlc3QgZmFpbHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlbXB0eUF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc2ZtY0NsaWVudCA9IG5ldyBTRk1DKGVtcHR5QXV0aE9iamVjdCk7XG4gICAgICBzZm1jQ2xpZW50LmF1dGhPYmplY3QgPSBlbXB0eUF1dGhPYmplY3Q7XG5cbiAgICAgIGplc3Quc3B5T24odXRpbHMsICdpc0V4cGlyZWQnKS5tb2NrUmV0dXJuVmFsdWUodHJ1ZSk7XG4gICAgICBjb25zdCBtb2NrQWRhcHRlciA9IG5ldyBBeGlvc01vY2tBZGFwdGVyKGF4aW9zLCB7IG9uTm9NYXRjaDogJ3Rocm93RXhjZXB0aW9uJyB9KTtcbiAgICAgIG1vY2tBZGFwdGVyXG4gICAgICAgIC5vblBvc3QoJ2h0dHBzOi8vYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMS5hdXRoLm1hcmtldGluZ2Nsb3VkYXBpcy5jb20vdjIvdG9rZW4nKVxuICAgICAgICAucmVwbHkoNDAwLCBuZXcgRXJyb3IoJ0JhZCBSZXF1ZXN0JykpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgc2ZtY0NsaWVudC5nZXRBY2Nlc3NUb2tlbigpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBleHBlY3QoZSkudG9FcXVhbChcbiAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnVW5hYmxlIHRvIGdlbmVyYXRlIHRva2VuLCB3aXRoIGVycm9yOkVycm9yOiBSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlIDQwMCcsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIGRlc2NyaWJlKCdnZXREZXN0aW5hdGlvbkZpZWxkcycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBkYXRhIGV4dGVuc2lvbiBmaWVsZHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZEF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgICBhY2Nlc3NfdG9rZW46ICd2YWxpZC10b2tlbicsXG4gICAgICAgIGV4cGlyYXRpb246IHByb2Nlc3MuaHJ0aW1lKClbMF0gKyAzNjAwLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc2ZtY0NsaWVudCA9IG5ldyBTRk1DKHZhbGlkQXV0aE9iamVjdCk7XG5cbiAgICAgIGplc3Quc3B5T24odXRpbHMsICdpc0V4cGlyZWQnKS5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuICAgICAgY29uc3QgcmVxdWVzdFRva2VuU3B5ID0gamVzdC5zcHlPbih1dGlscywgJ2dldFRva2VuJyk7XG5cbiAgICAgIGNvbnN0IG1vY2tBZGFwdGVyID0gbmV3IEF4aW9zTW9ja0FkYXB0ZXIoYXhpb3MsIHsgb25Ob01hdGNoOiAndGhyb3dFeGNlcHRpb24nIH0pO1xuICAgICAgY29uc3QgdmFsaWRSZXNwb25zZSA9IHtcbiAgICAgICAgbmFtZTogJ1Rlc3QgREUnLFxuICAgICAgICBjYXRlZ29yeUlEOiAnMTIzNDUnLFxuICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZmllbGQxJyxcbiAgICAgICAgICAgIHR5cGU6ICdUZXh0JyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICAgIG1vY2tBZGFwdGVyXG4gICAgICAgIC5vbkdldChcbiAgICAgICAgICAnaHR0cHM6Ly9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxLnJlc3QubWFya2V0aW5nY2xvdWRhcGlzLmNvbS9kYXRhL3YxL2N1c3RvbW9iamVjdHMvdGVzdC1kZS1pZC9maWVsZHMnLFxuICAgICAgICApXG4gICAgICAgIC5yZXBseSgyMDAsIHZhbGlkUmVzcG9uc2UpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2ZtY0NsaWVudC5nZXREZXN0aW5hdGlvbkZpZWxkcygndGVzdC1kZS1pZCcpO1xuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmFsaWRBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdChyZXF1ZXN0VG9rZW5TcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHZhbGlkUmVzcG9uc2UpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgaGFuZGxlIGZhaWx1cmUgc2NlbmFyaW8nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZEF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgICBhY2Nlc3NfdG9rZW46ICd2YWxpZC10b2tlbicsXG4gICAgICAgIGV4cGlyYXRpb246IHByb2Nlc3MuaHJ0aW1lKClbMF0gKyAzNjAwLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc2ZtY0NsaWVudCA9IG5ldyBTRk1DKHZhbGlkQXV0aE9iamVjdCk7XG5cbiAgICAgIGplc3Quc3B5T24odXRpbHMsICdpc0V4cGlyZWQnKS5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuICAgICAgY29uc3QgcmVxdWVzdFRva2VuU3B5ID0gamVzdC5zcHlPbih1dGlscywgJ2dldFRva2VuJyk7XG5cbiAgICAgIGNvbnN0IG1vY2tBZGFwdGVyID0gbmV3IEF4aW9zTW9ja0FkYXB0ZXIoYXhpb3MsIHsgb25Ob01hdGNoOiAndGhyb3dFeGNlcHRpb24nIH0pO1xuICAgICAgbW9ja0FkYXB0ZXJcbiAgICAgICAgLm9uR2V0KFxuICAgICAgICAgICdodHRwczovL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEucmVzdC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tL2RhdGEvdjEvY3VzdG9tb2JqZWN0cy90ZXN0LWRlLWlkL2ZpZWxkcycsXG4gICAgICAgIClcbiAgICAgICAgLnJlcGx5KDQwMSwge1xuICAgICAgICAgIGRvY3VtZW50YXRpb246XG4gICAgICAgICAgICAnaHR0cHM6Ly9kZXZlbG9wZXIuc2FsZXNmb3JjZS5jb20vZG9jcy9hdGxhcy5lbi11cy5tYy1hcGlzLm1ldGEvbWMtYXBpcy9lcnJvci1oYW5kbGluZy5odG0nLFxuICAgICAgICAgIGVycm9yY29kZTogMCxcbiAgICAgICAgICBtZXNzYWdlOiAnTm90IEF1dGhvcml6ZWQnLFxuICAgICAgICB9KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHNmbWNDbGllbnQuZ2V0RGVzdGluYXRpb25GaWVsZHMoJ3Rlc3QtZGUtaWQnKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZXhwZWN0KGUpLnRvRXF1YWwobmV3IEVycm9yKCdOb3QgQXV0aG9yaXplZCcpKTtcbiAgICAgIH1cbiAgICAgIGV4cGVjdCh1dGlscy5pc0V4cGlyZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHZhbGlkQXV0aE9iamVjdCk7XG4gICAgICBleHBlY3QocmVxdWVzdFRva2VuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcbiAgZGVzY3JpYmUoJ2dldENvbnRhY3RBdHRyaWJ1dGVzJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIGNvbnRhY3QgYXR0cmlidXRlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkQXV0aE9iamVjdCA9IHtcbiAgICAgICAgY2xpZW50SWQ6ICd0ZXN0LWNsaWVudCcsXG4gICAgICAgIGNsaWVudFNlY3JldDogJ3Rlc3Qtc2VjcmV0JyxcbiAgICAgICAgc3ViRG9tYWluOiAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMScsXG4gICAgICAgIGFjY2Vzc190b2tlbjogJ3ZhbGlkLXRva2VuJyxcbiAgICAgICAgZXhwaXJhdGlvbjogcHJvY2Vzcy5ocnRpbWUoKVswXSArIDM2MDAsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzZm1jQ2xpZW50ID0gbmV3IFNGTUModmFsaWRBdXRoT2JqZWN0KTtcblxuICAgICAgamVzdC5zcHlPbih1dGlscywgJ2lzRXhwaXJlZCcpLm1vY2tSZXR1cm5WYWx1ZShmYWxzZSk7XG4gICAgICBjb25zdCByZXF1ZXN0VG9rZW5TcHkgPSBqZXN0LnNweU9uKHV0aWxzLCAnZ2V0VG9rZW4nKTtcblxuICAgICAgY29uc3QgbW9ja0FkYXB0ZXIgPSBuZXcgQXhpb3NNb2NrQWRhcHRlcihheGlvcywgeyBvbk5vTWF0Y2g6ICd0aHJvd0V4Y2VwdGlvbicgfSk7XG4gICAgICBjb25zdCB2YWxpZFJlc3BvbnNlID0ge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaXNSZWFkT25seTogdHJ1ZSxcbiAgICAgICAgICAgICAgYXR0cmlidXRlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGlzUmVhZE9ubHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICBmdWxseVF1YWxpZmllZE5hbWU6ICd0ZXN0Lm5hbWUnLFxuICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgbW9ja0FkYXB0ZXJcbiAgICAgICAgLm9uR2V0KFxuICAgICAgICAgICdodHRwczovL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEucmVzdC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tL2NvbnRhY3RzL3YxL2F0dHJpYnV0ZVNldERlZmluaXRpb25zJyxcbiAgICAgICAgKVxuICAgICAgICAucmVwbHkoMjAwLCB2YWxpZFJlc3BvbnNlKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNmbWNDbGllbnQuZ2V0Q29udGFjdEF0dHJpYnV0ZXMoKTtcbiAgICAgIGV4cGVjdCh1dGlscy5pc0V4cGlyZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHZhbGlkQXV0aE9iamVjdCk7XG4gICAgICBleHBlY3QocmVxdWVzdFRva2VuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh2YWxpZFJlc3BvbnNlKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBmYWlsdXJlIHNjZW5hcmlvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogJ3Rlc3QtY2xpZW50JyxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxJyxcbiAgICAgICAgYWNjZXNzX3Rva2VuOiAndmFsaWQtdG9rZW4nLFxuICAgICAgICBleHBpcmF0aW9uOiBwcm9jZXNzLmhydGltZSgpWzBdICsgMzYwMCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNmbWNDbGllbnQgPSBuZXcgU0ZNQyh2YWxpZEF1dGhPYmplY3QpO1xuXG4gICAgICBqZXN0LnNweU9uKHV0aWxzLCAnaXNFeHBpcmVkJykubW9ja1JldHVyblZhbHVlKGZhbHNlKTtcbiAgICAgIGNvbnN0IHJlcXVlc3RUb2tlblNweSA9IGplc3Quc3B5T24odXRpbHMsICdnZXRUb2tlbicpO1xuXG4gICAgICBjb25zdCBtb2NrQWRhcHRlciA9IG5ldyBBeGlvc01vY2tBZGFwdGVyKGF4aW9zLCB7IG9uTm9NYXRjaDogJ3Rocm93RXhjZXB0aW9uJyB9KTtcbiAgICAgIG1vY2tBZGFwdGVyXG4gICAgICAgIC5vbkdldChcbiAgICAgICAgICAnaHR0cHM6Ly9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxLnJlc3QubWFya2V0aW5nY2xvdWRhcGlzLmNvbS9jb250YWN0cy92MS9hdHRyaWJ1dGVTZXREZWZpbml0aW9ucycsXG4gICAgICAgIClcbiAgICAgICAgLnJlcGx5KDQwMSwge1xuICAgICAgICAgIGRvY3VtZW50YXRpb246XG4gICAgICAgICAgICAnaHR0cHM6Ly9kZXZlbG9wZXIuc2FsZXNmb3JjZS5jb20vZG9jcy9hdGxhcy5lbi11cy5tYy1hcGlzLm1ldGEvbWMtYXBpcy9lcnJvci1oYW5kbGluZy5odG0nLFxuICAgICAgICAgIGVycm9yY29kZTogMCxcbiAgICAgICAgICBtZXNzYWdlOiAnTm90IEF1dGhvcml6ZWQnLFxuICAgICAgICB9KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHNmbWNDbGllbnQuZ2V0Q29udGFjdEF0dHJpYnV0ZXMoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZXhwZWN0KGUpLnRvRXF1YWwobmV3IEVycm9yKCdOb3QgQXV0aG9yaXplZCcpKTtcbiAgICAgIH1cbiAgICAgIGV4cGVjdCh1dGlscy5pc0V4cGlyZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHZhbGlkQXV0aE9iamVjdCk7XG4gICAgICBleHBlY3QocmVxdWVzdFRva2VuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcbiAgZGVzY3JpYmUoJ2NyZWF0ZURhdGFFeHRlbnNpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgbmV3IGRhdGEgZXh0ZW5zaW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogJ3Rlc3QtY2xpZW50JyxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxJyxcbiAgICAgICAgYWNjZXNzX3Rva2VuOiAndmFsaWQtdG9rZW4nLFxuICAgICAgICBleHBpcmF0aW9uOiBwcm9jZXNzLmhydGltZSgpWzBdICsgMzYwMCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNmbWNDbGllbnQgPSBuZXcgU0ZNQyh2YWxpZEF1dGhPYmplY3QpO1xuXG4gICAgICBqZXN0LnNweU9uKHV0aWxzLCAnaXNFeHBpcmVkJykubW9ja1JldHVyblZhbHVlKGZhbHNlKTtcbiAgICAgIGNvbnN0IHJlcXVlc3RUb2tlblNweSA9IGplc3Quc3B5T24odXRpbHMsICdnZXRUb2tlbicpO1xuXG4gICAgICBjb25zdCBtb2NrQWRhcHRlciA9IG5ldyBBeGlvc01vY2tBZGFwdGVyKGF4aW9zLCB7IG9uTm9NYXRjaDogJ3Rocm93RXhjZXB0aW9uJyB9KTtcbiAgICAgIGNvbnN0IHZhbGlkUmVzcG9uc2UgPSB7XG4gICAgICAgIGlkOiAnNGJhZjRjZjEtOGNjOS1lZjExLWJhNmUtZjQwMzQzZDM4MGM4JyxcbiAgICAgICAgbmFtZTogJ3J1ZGRlcnN0YWNrVGVzdGluZzAyOTUnLFxuICAgICAgICBrZXk6ICdydWRkZXJzdGFja1Rlc3RpbmcwMjk1JyxcbiAgICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgICAgIGlzU2VuZGFibGU6IGZhbHNlLFxuICAgICAgICBpc1Rlc3RhYmxlOiBmYWxzZSxcbiAgICAgICAgc3RhdHVzOiAwLFxuICAgICAgICBjYXRlZ29yeUlkOiAxMjM0NSxcbiAgICAgICAgb3duZXJJZDogNzM1NDQ0NTMxLFxuICAgICAgICBpc09iamVjdERlbGV0YWJsZTogdHJ1ZSxcbiAgICAgICAgaXNGaWVsZEFkZGl0aW9uQWxsb3dlZDogdHJ1ZSxcbiAgICAgICAgaXNGaWVsZE1vZGlmaWNhdGlvbkFsbG93ZWQ6IHRydWUsXG4gICAgICAgIGNyZWF0ZWREYXRlOiAnMjAyNS0wMS0wMlQyMjo0MToxMi41MDE4NDE1LTA2OjAwJyxcbiAgICAgICAgY3JlYXRlZEJ5SWQ6IDczNTQ0NDUzMSxcbiAgICAgICAgbW9kaWZpZWREYXRlOiAnMjAyNS0wMS0wMlQyMjo0MToxMi41MDE4NDE1LTA2OjAwJyxcbiAgICAgICAgbW9kaWZpZWRCeUlkOiA3MzU0NDQ1MzEsXG4gICAgICAgIG93bmVyTmFtZTogJ1J1ZGRlcnN0YWNrSW50ZWdyYXRpb24gYXBwIHVzZXInLFxuICAgICAgICByb3dDb3VudDogMCxcbiAgICAgICAgZGF0YVJldGVudGlvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICBpc0RlbGV0ZUF0RW5kT2ZSZXRlbnRpb25QZXJpb2Q6IHRydWUsXG4gICAgICAgICAgaXNSb3dCYXNlZFJldGVudGlvbjogZmFsc2UsXG4gICAgICAgICAgaXNSZXNldFJldGVudGlvblBlcmlvZE9uSW1wb3J0OiBmYWxzZSxcbiAgICAgICAgICByb3dCYXNlZFRocmVzaG9sZDogMTAwMDAwMDAwMCxcbiAgICAgICAgfSxcbiAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2tleTEnLFxuICAgICAgICAgICAgaWQ6ICczMDBiYTIzMy1iN2UwLTQ3MzItYmE4NS0xYmMwMTIwOGZjMWInLFxuICAgICAgICAgICAgdHlwZTogJ1RleHQnLFxuICAgICAgICAgICAgbWFza1R5cGU6ICdOb25lJyxcbiAgICAgICAgICAgIHN0b3JhZ2VUeXBlOiAnUGxhaW4nLFxuICAgICAgICAgICAgbGVuZ3RoOiAyNTQsXG4gICAgICAgICAgICBvcmRpbmFsOiAwLFxuICAgICAgICAgICAgaXNOdWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBpc1ByaW1hcnlLZXk6IHRydWUsXG4gICAgICAgICAgICBpc1RlbXBsYXRlRmllbGQ6IGZhbHNlLFxuICAgICAgICAgICAgaXNJbmhlcml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICBpc092ZXJyaWRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgaXNIaWRkZW46IGZhbHNlLFxuICAgICAgICAgICAgaXNSZWFkT25seTogZmFsc2UsXG4gICAgICAgICAgICBtdXN0T3ZlcnJpZGU6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2tleTInLFxuICAgICAgICAgICAgaWQ6ICc3NWEzOGY5OC1lODY1LTQzY2UtOTcwMi01YjMxN2JhMjlkOTInLFxuICAgICAgICAgICAgdHlwZTogJ0VtYWlsQWRkcmVzcycsXG4gICAgICAgICAgICBtYXNrVHlwZTogJ05vbmUnLFxuICAgICAgICAgICAgc3RvcmFnZVR5cGU6ICdQbGFpbicsXG4gICAgICAgICAgICBsZW5ndGg6IDI1NCxcbiAgICAgICAgICAgIG9yZGluYWw6IDAsXG4gICAgICAgICAgICBpc051bGxhYmxlOiB0cnVlLFxuICAgICAgICAgICAgaXNQcmltYXJ5S2V5OiBmYWxzZSxcbiAgICAgICAgICAgIGlzVGVtcGxhdGVGaWVsZDogZmFsc2UsXG4gICAgICAgICAgICBpc0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGlzT3ZlcnJpZGFibGU6IHRydWUsXG4gICAgICAgICAgICBpc0hpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICBpc1JlYWRPbmx5OiBmYWxzZSxcbiAgICAgICAgICAgIG11c3RPdmVycmlkZTogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZmllbGRDb3VudDogMixcbiAgICAgIH07XG4gICAgICBtb2NrQWRhcHRlclxuICAgICAgICAub25Qb3N0KFxuICAgICAgICAgICdodHRwczovL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEucmVzdC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tL2RhdGEvdjEvY3VzdG9tb2JqZWN0cycsXG4gICAgICAgIClcbiAgICAgICAgLnJlcGx5KDIwMCwgdmFsaWRSZXNwb25zZSk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzZm1jQ2xpZW50LmNyZWF0ZURhdGFFeHRlbnNpb24oe1xuICAgICAgICBuYW1lOiAndGVzdC1kZScsXG4gICAgICAgIGNhdGVnb3J5SUQ6ICcxMjM0NScsXG4gICAgICAgIGRhdGFSZXRlbnRpb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgaXNEZWxldGVBdEVuZE9mUmV0ZW50aW9uUGVyaW9kOiB0cnVlLFxuICAgICAgICAgIGlzUm93QmFzZWRSZXRlbnRpb246IGZhbHNlLFxuICAgICAgICAgIGlzUmVzZXRSZXRlbnRpb25QZXJpb2RPbkltcG9ydDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIGZpZWxkczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdrZXkxJyxcbiAgICAgICAgICAgIHR5cGU6ICdUZXh0JyxcbiAgICAgICAgICAgIGxlbmd0aDogMjU0LFxuICAgICAgICAgICAgaXNOdWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBpc1ByaW1hcnlLZXk6IHRydWUsXG4gICAgICAgICAgICBpc0hpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICBpc1JlYWRPbmx5OiBmYWxzZSxcbiAgICAgICAgICAgIGlzT3ZlcnJpZGFibGU6IHRydWUsXG4gICAgICAgICAgICBpc1RlbXBsYXRlRmllbGQ6IGZhbHNlLFxuICAgICAgICAgICAgaXNJbmhlcml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICBtdXN0T3ZlcnJpZGU6IGZhbHNlLFxuICAgICAgICAgICAgb3JkaW5hbDogMCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdrZXkyJyxcbiAgICAgICAgICAgIHR5cGU6ICdFbWFpbEFkZHJlc3MnLFxuICAgICAgICAgICAgbGVuZ3RoOiAyNTQsXG4gICAgICAgICAgICBpc051bGxhYmxlOiB0cnVlLFxuICAgICAgICAgICAgaXNQcmltYXJ5S2V5OiBmYWxzZSxcbiAgICAgICAgICAgIGlzSGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICAgIGlzUmVhZE9ubHk6IGZhbHNlLFxuICAgICAgICAgICAgaXNPdmVycmlkYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGlzVGVtcGxhdGVGaWVsZDogZmFsc2UsXG4gICAgICAgICAgICBpc0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIG11c3RPdmVycmlkZTogZmFsc2UsXG4gICAgICAgICAgICBvcmRpbmFsOiAwLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdCh1dGlscy5pc0V4cGlyZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHZhbGlkQXV0aE9iamVjdCk7XG4gICAgICBleHBlY3QocmVxdWVzdFRva2VuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh2YWxpZFJlc3BvbnNlKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBmYWlsdXJlIHNjZW5hcmlvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogJ3Rlc3QtY2xpZW50JyxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxJyxcbiAgICAgICAgYWNjZXNzX3Rva2VuOiAndmFsaWQtdG9rZW4nLFxuICAgICAgICBleHBpcmF0aW9uOiBwcm9jZXNzLmhydGltZSgpWzBdICsgMzYwMCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNmbWNDbGllbnQgPSBuZXcgU0ZNQyh2YWxpZEF1dGhPYmplY3QpO1xuXG4gICAgICBqZXN0LnNweU9uKHV0aWxzLCAnaXNFeHBpcmVkJykubW9ja1JldHVyblZhbHVlKGZhbHNlKTtcbiAgICAgIGNvbnN0IHJlcXVlc3RUb2tlblNweSA9IGplc3Quc3B5T24odXRpbHMsICdnZXRUb2tlbicpO1xuXG4gICAgICBjb25zdCBtb2NrQWRhcHRlciA9IG5ldyBBeGlvc01vY2tBZGFwdGVyKGF4aW9zLCB7IG9uTm9NYXRjaDogJ3Rocm93RXhjZXB0aW9uJyB9KTtcbiAgICAgIG1vY2tBZGFwdGVyXG4gICAgICAgIC5vblBvc3QoXG4gICAgICAgICAgJ2h0dHBzOi8vYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMS5yZXN0Lm1hcmtldGluZ2Nsb3VkYXBpcy5jb20vZGF0YS92MS9jdXN0b21vYmplY3RzJyxcbiAgICAgICAgKVxuICAgICAgICAucmVwbHkoNDAxLCB7XG4gICAgICAgICAgZG9jdW1lbnRhdGlvbjpcbiAgICAgICAgICAgICdodHRwczovL2RldmVsb3Blci5zYWxlc2ZvcmNlLmNvbS9kb2NzL2F0bGFzLmVuLXVzLm1jLWFwaXMubWV0YS9tYy1hcGlzL2Vycm9yLWhhbmRsaW5nLmh0bScsXG4gICAgICAgICAgZXJyb3Jjb2RlOiAwLFxuICAgICAgICAgIG1lc3NhZ2U6ICdOb3QgQXV0aG9yaXplZCcsXG4gICAgICAgIH0pO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgc2ZtY0NsaWVudC5jcmVhdGVEYXRhRXh0ZW5zaW9uKHtcbiAgICAgICAgICBuYW1lOiAndGVzdC1kZScsXG4gICAgICAgICAgY2F0ZWdvcnlJRDogJzEyMzQ1JyxcbiAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2tleTEnLFxuICAgICAgICAgICAgICB0eXBlOiAnVGV4dCcsXG4gICAgICAgICAgICAgIGxlbmd0aDogMjU0LFxuICAgICAgICAgICAgICBpc051bGxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgaXNQcmltYXJ5S2V5OiB0cnVlLFxuICAgICAgICAgICAgICBpc0hpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICAgIGlzUmVhZE9ubHk6IGZhbHNlLFxuICAgICAgICAgICAgICBpc092ZXJyaWRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBpc1RlbXBsYXRlRmllbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICBpc0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgbXVzdE92ZXJyaWRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgb3JkaW5hbDogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGV4cGVjdChlKS50b0VxdWFsKG5ldyBFcnJvcignTm90IEF1dGhvcml6ZWQnKSk7XG4gICAgICB9XG4gICAgICBleHBlY3QodXRpbHMuaXNFeHBpcmVkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh2YWxpZEF1dGhPYmplY3QpO1xuICAgICAgZXhwZWN0KHJlcXVlc3RUb2tlblNweSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcbiAgfSk7XG4gIGRlc2NyaWJlKCdnZXRCdXNpbmVzc1VuaXRzJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZ2V0IGFsbCB0aGUgYnVzaW5lc3MgdW5pdHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZEF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgICBhY2Nlc3NfdG9rZW46ICd2YWxpZC10b2tlbicsXG4gICAgICAgIGV4cGlyYXRpb246IHByb2Nlc3MuaHJ0aW1lKClbMF0gKyAzNjAwLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc2ZtY0NsaWVudCA9IG5ldyBTRk1DKHZhbGlkQXV0aE9iamVjdCk7XG5cbiAgICAgIGplc3Quc3B5T24odXRpbHMsICdpc0V4cGlyZWQnKS5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuICAgICAgY29uc3QgcmVxdWVzdFRva2VuU3B5ID0gamVzdC5zcHlPbih1dGlscywgJ2dldFRva2VuJyk7XG5cbiAgICAgIGNvbnN0IG1vY2tBZGFwdGVyID0gbmV3IEF4aW9zTW9ja0FkYXB0ZXIoYXhpb3MsIHsgb25Ob01hdGNoOiAndGhyb3dFeGNlcHRpb24nIH0pO1xuICAgICAgY29uc3QgdmFsaWRSZXNwb25zZSA9IGA8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz48c29hcDpFbnZlbG9wZSB4bWxuczpzb2FwPVwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS9cIiB4bWxuczp4c2k9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiIHhtbG5zOnhzZD1cImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hXCIgeG1sbnM6d3NhPVwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nXCIgeG1sbnM6d3NzZT1cImh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL3dzcy8yMDA0LzAxL29hc2lzLTIwMDQwMS13c3Mtd3NzZWN1cml0eS1zZWNleHQtMS4wLnhzZFwiIHhtbG5zOndzdT1cImh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL3dzcy8yMDA0LzAxL29hc2lzLTIwMDQwMS13c3Mtd3NzZWN1cml0eS11dGlsaXR5LTEuMC54c2RcIj48c29hcDpIZWFkZXI+PHdzYTpBY3Rpb24+UmV0cmlldmVSZXNwb25zZTwvd3NhOkFjdGlvbj48d3NhOk1lc3NhZ2VJRD51cm46dXVpZDowYmVkNjAyYi02M2M0LTRiYjQtOTU4Mi0yYjI3YzhmMmIxZGE8L3dzYTpNZXNzYWdlSUQ+PHdzYTpSZWxhdGVzVG8+dXJuOnV1aWQ6NDVkY2MyNTEtYTAzNy00MTcyLTk5Y2UtNjY2YTZiM2I4NzJjPC93c2E6UmVsYXRlc1RvPjx3c2E6VG8+aHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nL3JvbGUvYW5vbnltb3VzPC93c2E6VG8+PHdzc2U6U2VjdXJpdHk+PHdzdTpUaW1lc3RhbXAgd3N1OklkPVwiVGltZXN0YW1wLWQwMzA4YWUyLTRhZGYtNDU3OC04ZDg1LWZhYTcyMGE5NjZjZVwiPjx3c3U6Q3JlYXRlZD4yMDI1LTAxLTA5VDA1OjUwOjEwWjwvd3N1OkNyZWF0ZWQ+PHdzdTpFeHBpcmVzPjIwMjUtMDEtMDlUMDU6NTU6MTBaPC93c3U6RXhwaXJlcz48L3dzdTpUaW1lc3RhbXA+PC93c3NlOlNlY3VyaXR5Pjwvc29hcDpIZWFkZXI+PHNvYXA6Qm9keT48UmV0cmlldmVSZXNwb25zZU1zZyB4bWxucz1cImh0dHA6Ly9leGFjdHRhcmdldC5jb20vd3NkbC9wYXJ0bmVyQVBJXCI+PE92ZXJhbGxTdGF0dXM+T0s8L092ZXJhbGxTdGF0dXM+PFJlcXVlc3RJRD5hYjk0N2NhYS0zNGJkLTRlNWItODRjMS01NGFiMWU2MzNhNmY8L1JlcXVlc3RJRD48UmVzdWx0cyB4c2k6dHlwZT1cIkJ1c2luZXNzVW5pdFwiPjxQYXJ0bmVyS2V5IHhzaTpuaWw9XCJ0cnVlXCIgLz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+aWQ8L05hbWU+PFZhbHVlPjUzNDAwMzIxMDwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+bmFtZTwvTmFtZT48VmFsdWU+TGFuc2Rvd25lIFN0YWRpdW0gTFA8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PE9iamVjdElEIHhzaTpuaWw9XCJ0cnVlXCIgLz48QWNjb3VudFR5cGU+Tm9uZTwvQWNjb3VudFR5cGU+PFN1YnNjcmlwdGlvbiB4c2k6bmlsPVwidHJ1ZVwiIC8+PC9SZXN1bHRzPjxSZXN1bHRzIHhzaTp0eXBlPVwiQnVzaW5lc3NVbml0XCI+PFBhcnRuZXJLZXkgeHNpOm5pbD1cInRydWVcIiAvPjxQYXJ0bmVyUHJvcGVydGllcz48TmFtZT5pZDwvTmFtZT48VmFsdWU+NTM0MDAzMjEwPC9WYWx1ZT48L1BhcnRuZXJQcm9wZXJ0aWVzPjxQYXJ0bmVyUHJvcGVydGllcz48TmFtZT5uYW1lPC9OYW1lPjxWYWx1ZT5MYW5zZG93bmUgU3RhZGl1bSBMUDwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48T2JqZWN0SUQgeHNpOm5pbD1cInRydWVcIiAvPjxBY2NvdW50VHlwZT5Ob25lPC9BY2NvdW50VHlwZT48U3Vic2NyaXB0aW9uIHhzaTpuaWw9XCJ0cnVlXCIgLz48L1Jlc3VsdHM+PC9SZXRyaWV2ZVJlc3BvbnNlTXNnPjwvc29hcDpCb2R5Pjwvc29hcDpFbnZlbG9wZT5gO1xuICAgICAgbW9ja0FkYXB0ZXJcbiAgICAgICAgLm9uUG9zdCgnaHR0cHM6Ly9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxLnNvYXAubWFya2V0aW5nY2xvdWRhcGlzLmNvbS9TZXJ2aWNlLmFzbXgnKVxuICAgICAgICAucmVwbHkoMjAwLCB2YWxpZFJlc3BvbnNlKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNmbWNDbGllbnQuZ2V0QnVzaW5lc3NVbml0cygpO1xuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmFsaWRBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdChyZXF1ZXN0VG9rZW5TcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKFtcbiAgICAgICAgeyBJRDogJ0xhbnNkb3duZSBTdGFkaXVtIExQJywgTmFtZTogNTM0MDAzMjEwIH0sXG4gICAgICAgIHsgSUQ6ICdMYW5zZG93bmUgU3RhZGl1bSBMUCcsIE5hbWU6IDUzNDAwMzIxMCB9LFxuICAgICAgXSk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgZmFpbHVyZSBzY2VuYXJpbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkQXV0aE9iamVjdCA9IHtcbiAgICAgICAgY2xpZW50SWQ6ICd0ZXN0LWNsaWVudCcsXG4gICAgICAgIGNsaWVudFNlY3JldDogJ3Rlc3Qtc2VjcmV0JyxcbiAgICAgICAgc3ViRG9tYWluOiAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMScsXG4gICAgICAgIGFjY2Vzc190b2tlbjogJ3ZhbGlkLXRva2VuJyxcbiAgICAgICAgZXhwaXJhdGlvbjogcHJvY2Vzcy5ocnRpbWUoKVswXSArIDM2MDAsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzZm1jQ2xpZW50ID0gbmV3IFNGTUModmFsaWRBdXRoT2JqZWN0KTtcblxuICAgICAgamVzdC5zcHlPbih1dGlscywgJ2lzRXhwaXJlZCcpLm1vY2tSZXR1cm5WYWx1ZShmYWxzZSk7XG4gICAgICBjb25zdCByZXF1ZXN0VG9rZW5TcHkgPSBqZXN0LnNweU9uKHV0aWxzLCAnZ2V0VG9rZW4nKTtcblxuICAgICAgY29uc3QgbW9ja0FkYXB0ZXIgPSBuZXcgQXhpb3NNb2NrQWRhcHRlcihheGlvcywgeyBvbk5vTWF0Y2g6ICd0aHJvd0V4Y2VwdGlvbicgfSk7XG4gICAgICBtb2NrQWRhcHRlclxuICAgICAgICAub25Qb3N0KCdodHRwczovL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEuc29hcC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tL1NlcnZpY2UuYXNteCcpXG4gICAgICAgIC5yZXBseShcbiAgICAgICAgICA1MDAsXG4gICAgICAgICAgYDw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cInV0Zi04XCI/PlxuPHNvYXA6RW52ZWxvcGUgeG1sbnM6c29hcD1cImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvZW52ZWxvcGUvXCIgeG1sbnM6eHNpPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIiB4bWxuczp4c2Q9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYVwiIHhtbG5zOndzYT1cImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDQvMDgvYWRkcmVzc2luZ1wiIHhtbG5zOndzc2U9XCJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktc2VjZXh0LTEuMC54c2RcIiB4bWxuczp3c3U9XCJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktdXRpbGl0eS0xLjAueHNkXCI+XG4gICAgPHNvYXA6SGVhZGVyPlxuICAgICAgICA8d3NhOkFjdGlvbj5odHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA0LzA4L2FkZHJlc3NpbmcvZmF1bHQ8L3dzYTpBY3Rpb24+XG4gICAgICAgIDx3c2E6TWVzc2FnZUlEPnVybjp1dWlkOjE1ZDNlMjg2LTk3ZjUtNGY1Yy1iMGZhLWQ1ODY3MzYyMTU2ODwvd3NhOk1lc3NhZ2VJRD5cbiAgICAgICAgPHdzYTpSZWxhdGVzVG8+dXJuOnV1aWQ6YjM4ZWU4NWItOGY2Yi00ZWRjLTlhYjktMjNhYjZlNWE1MWUzPC93c2E6UmVsYXRlc1RvPlxuICAgICAgICA8d3NhOlRvPmh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDQvMDgvYWRkcmVzc2luZy9yb2xlL2Fub255bW91czwvd3NhOlRvPlxuICAgICAgICA8d3NzZTpTZWN1cml0eT5cbiAgICAgICAgICAgIDx3c3U6VGltZXN0YW1wIHdzdTpJZD1cIlRpbWVzdGFtcC1kYzAyZjhlOC1hZjc0LTQ3OTktYjVlOS05ZTljMDI5OTI3OGZcIj5cbiAgICAgICAgICAgICAgICA8d3N1OkNyZWF0ZWQ+MjAyNS0wMS0wM1QwNDo1OTo0NVo8L3dzdTpDcmVhdGVkPlxuICAgICAgICAgICAgICAgIDx3c3U6RXhwaXJlcz4yMDI1LTAxLTAzVDA1OjA0OjQ1Wjwvd3N1OkV4cGlyZXM+XG4gICAgICAgICAgICA8L3dzdTpUaW1lc3RhbXA+XG4gICAgICAgIDwvd3NzZTpTZWN1cml0eT5cbiAgICA8L3NvYXA6SGVhZGVyPlxuICAgIDxzb2FwOkJvZHk+XG4gICAgICAgIDxzb2FwOkZhdWx0PlxuICAgICAgICAgICAgPGZhdWx0Y29kZSB4bWxuczpxMD1cImh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL3dzcy8yMDA0LzAxL29hc2lzLTIwMDQwMS13c3Mtd3NzZWN1cml0eS1zZWNleHQtMS4wLnhzZFwiPnEwOlNlY3VyaXR5PC9mYXVsdGNvZGU+XG4gICAgICAgICAgICA8ZmF1bHRzdHJpbmc+TG9naW4gRmFpbGVkPC9mYXVsdHN0cmluZz5cbiAgICAgICAgICAgIDxmYXVsdGFjdG9yPmh0dHBzOi8vbWN2Z2txejNjMWNocmJzejU4Nms5MHM0MWhwOC5zb2FwLm1hcmtldGluZ2Nsb3VkYXBpcy5jb20vU2VydmljZS5hc214PC9mYXVsdGFjdG9yPlxuICAgICAgICA8L3NvYXA6RmF1bHQ+XG4gICAgPC9zb2FwOkJvZHk+XG48L3NvYXA6RW52ZWxvcGU+YCxcbiAgICAgICAgKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHNmbWNDbGllbnQuZ2V0QnVzaW5lc3NVbml0cygpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBleHBlY3QoZSkudG9FcXVhbChuZXcgRXJyb3IoJ1JlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgNTAwJykpO1xuICAgICAgfVxuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmFsaWRBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdChyZXF1ZXN0VG9rZW5TcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG4gIH0pO1xuICBkZXNjcmliZSgnZ2V0RGF0YUZvbGRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBnZXQgYWxsIHRoZSBkYXRhIGZvbGRlcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZEF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgICBhY2Nlc3NfdG9rZW46ICd2YWxpZC10b2tlbicsXG4gICAgICAgIGV4cGlyYXRpb246IHByb2Nlc3MuaHJ0aW1lKClbMF0gKyAzNjAwLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc2ZtY0NsaWVudCA9IG5ldyBTRk1DKHZhbGlkQXV0aE9iamVjdCk7XG5cbiAgICAgIGplc3Quc3B5T24odXRpbHMsICdpc0V4cGlyZWQnKS5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuICAgICAgY29uc3QgcmVxdWVzdFRva2VuU3B5ID0gamVzdC5zcHlPbih1dGlscywgJ2dldFRva2VuJyk7XG5cbiAgICAgIGNvbnN0IG1vY2tBZGFwdGVyID0gbmV3IEF4aW9zTW9ja0FkYXB0ZXIoYXhpb3MsIHsgb25Ob01hdGNoOiAndGhyb3dFeGNlcHRpb24nIH0pO1xuICAgICAgY29uc3QgdmFsaWRSZXNwb25zZSA9IGA8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiAgICAgICAgPHNvYXA6RW52ZWxvcGVcbiAgICAgICAgICB4bWxuczpzb2FwPVwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS9cIlxuICAgICAgICAgIHhtbG5zOnhzaT1cImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlXCJcbiAgICAgICAgICB4bWxuczp4c2Q9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYVwiXG4gICAgICAgICAgeG1sbnM6d3NhPVwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nXCJcbiAgICAgICAgICB4bWxuczp3c3NlPVwiaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvd3NzLzIwMDQvMDEvb2FzaXMtMjAwNDAxLXdzcy13c3NlY3VyaXR5LXNlY2V4dC0xLjAueHNkXCJcbiAgICAgICAgICB4bWxuczp3c3U9XCJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktdXRpbGl0eS0xLjAueHNkXCI+XG4gICAgICAgICAgPHNvYXA6SGVhZGVyPlxuICAgICAgICAgICAgPHdzYTpBY3Rpb24+UmV0cmlldmVSZXNwb25zZTwvd3NhOkFjdGlvbj5cbiAgICAgICAgICAgIDx3c2E6TWVzc2FnZUlEPnVybjp1dWlkOjFjZjRmZDcyLTkzYTktNDM2MC1hNzVjLTk4OGRjNzA4ZWI3Yzwvd3NhOk1lc3NhZ2VJRD5cbiAgICAgICAgICAgIDx3c2E6UmVsYXRlc1RvPnVybjp1dWlkOjUyN2ExM2E1LWE3OTgtNDQzOC1iMjNkLWI3ZmQwODRhYzk1Mzwvd3NhOlJlbGF0ZXNUbz5cbiAgICAgICAgICAgIDx3c2E6VG8+aHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nL3JvbGUvYW5vbnltb3VzPC93c2E6VG8+XG4gICAgICAgICAgICA8d3NzZTpTZWN1cml0eT5cbiAgICAgICAgICAgICAgPHdzdTpUaW1lc3RhbXAgd3N1OklkPVwiVGltZXN0YW1wLTlkN2M1NzA3LWU4ZWMtNGRiOC1iNTVlLTdjYmQyY2UyMmZhM1wiPlxuICAgICAgICAgICAgICAgIDx3c3U6Q3JlYXRlZD4yMDI1LTAxLTAzVDA1OjU0OjE2Wjwvd3N1OkNyZWF0ZWQ+XG4gICAgICAgICAgICAgICAgPHdzdTpFeHBpcmVzPjIwMjUtMDEtMDNUMDU6NTk6MTZaPC93c3U6RXhwaXJlcz5cbiAgICAgICAgICAgICAgPC93c3U6VGltZXN0YW1wPlxuICAgICAgICAgICAgPC93c3NlOlNlY3VyaXR5PlxuICAgICAgICAgIDwvc29hcDpIZWFkZXI+XG4gICAgICAgICAgPHNvYXA6Qm9keT5cbiAgICAgICAgICAgIDxSZXRyaWV2ZVJlc3BvbnNlTXNnXG4gICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL2V4YWN0dGFyZ2V0LmNvbS93c2RsL3BhcnRuZXJBUElcIj5cbiAgICAgICAgICAgICAgPE92ZXJhbGxTdGF0dXM+T0s8L092ZXJhbGxTdGF0dXM+XG4gICAgICAgICAgICAgIDxSZXF1ZXN0SUQ+NWQ5MTcwOGItMjVkMS00YjI3LTgwYTAtZGM4NGVmMGFhYzBjPC9SZXF1ZXN0SUQ+XG4gICAgICAgICAgICAgIDxSZXN1bHRzIHhzaTp0eXBlPVwiRGF0YUZvbGRlclwiPlxuICAgICAgICAgICAgICAgIDxDbGllbnQ+XG4gICAgICAgICAgICAgICAgICA8SUQ+NTM0MDAzMjEwPC9JRD5cbiAgICAgICAgICAgICAgICA8L0NsaWVudD5cbiAgICAgICAgICAgICAgICA8UGFydG5lcktleSB4c2k6bmlsPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICAgICAgPElEPjExNTQ2PC9JRD5cbiAgICAgICAgICAgICAgICA8T2JqZWN0SUQ+NGY1OTFjYTEtODIzNi00N2I4LTkyZmUtY2YwZGNmN2NmZmI1PC9PYmplY3RJRD5cbiAgICAgICAgICAgICAgICA8TmFtZT5teSBlbWFpbHM8L05hbWU+XG4gICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uIC8+XG4gICAgICAgICAgICAgICAgPENvbnRlbnRUeXBlPmVtYWlsPC9Db250ZW50VHlwZT5cbiAgICAgICAgICAgICAgPC9SZXN1bHRzPlxuICAgICAgICAgICAgICA8UmVzdWx0cyB4c2k6dHlwZT1cIkRhdGFGb2xkZXJcIj5cbiAgICAgICAgICAgICAgICA8Q2xpZW50PlxuICAgICAgICAgICAgICAgICAgPElEPjUzNDAwMzIxMDwvSUQ+XG4gICAgICAgICAgICAgICAgPC9DbGllbnQ+XG4gICAgICAgICAgICAgICAgPFBhcnRuZXJLZXkgeHNpOm5pbD1cInRydWVcIiAvPlxuICAgICAgICAgICAgICAgIDxJRD4xMTU0NzwvSUQ+XG4gICAgICAgICAgICAgICAgPE9iamVjdElEPjY5NWRkN2M2LWQ3NjQtNDc5ZC05ZTc3LTM2ZDE0MWNkZDM0MjwvT2JqZWN0SUQ+XG4gICAgICAgICAgICAgICAgPE5hbWU+c2ltcGxlIGF1dG9tYXRlZCBlbWFpbHM8L05hbWU+XG4gICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uIC8+XG4gICAgICAgICAgICAgICAgPENvbnRlbnRUeXBlPmF1dG9tYXRlZF9lbWFpbDwvQ29udGVudFR5cGU+XG4gICAgICAgICAgICAgIDwvUmVzdWx0cz5cbiAgICAgICAgICAgIDwvUmV0cmlldmVSZXNwb25zZU1zZz5cbiAgICAgICAgICA8L3NvYXA6Qm9keT5cbiAgICAgICAgPC9zb2FwOkVudmVsb3BlPmA7XG4gICAgICBtb2NrQWRhcHRlclxuICAgICAgICAub25Qb3N0KCdodHRwczovL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEuc29hcC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tL1NlcnZpY2UuYXNteCcpXG4gICAgICAgIC5yZXBseSgyMDAsIHZhbGlkUmVzcG9uc2UpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2ZtY0NsaWVudC5nZXREYXRhRm9sZGVycygpO1xuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmFsaWRBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdChyZXF1ZXN0VG9rZW5TcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKFtcbiAgICAgICAge1xuICAgICAgICAgIENsaWVudDoge1xuICAgICAgICAgICAgSUQ6IDUzNDAwMzIxMCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIENvbnRlbnRUeXBlOiAnZW1haWwnLFxuICAgICAgICAgIERlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICBJRDogMTE1NDYsXG4gICAgICAgICAgTmFtZTogJ215IGVtYWlscycsXG4gICAgICAgICAgT2JqZWN0SUQ6ICc0ZjU5MWNhMS04MjM2LTQ3YjgtOTJmZS1jZjBkY2Y3Y2ZmYjUnLFxuICAgICAgICAgIFBhcnRuZXJLZXk6ICcnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQ2xpZW50OiB7XG4gICAgICAgICAgICBJRDogNTM0MDAzMjEwLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgQ29udGVudFR5cGU6ICdhdXRvbWF0ZWRfZW1haWwnLFxuICAgICAgICAgIERlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICBJRDogMTE1NDcsXG4gICAgICAgICAgTmFtZTogJ3NpbXBsZSBhdXRvbWF0ZWQgZW1haWxzJyxcbiAgICAgICAgICBPYmplY3RJRDogJzY5NWRkN2M2LWQ3NjQtNDc5ZC05ZTc3LTM2ZDE0MWNkZDM0MicsXG4gICAgICAgICAgUGFydG5lcktleTogJycsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBmYWlsdXJlIHNjZW5hcmlvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogJ3Rlc3QtY2xpZW50JyxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxJyxcbiAgICAgICAgYWNjZXNzX3Rva2VuOiAndmFsaWQtdG9rZW4nLFxuICAgICAgICBleHBpcmF0aW9uOiBwcm9jZXNzLmhydGltZSgpWzBdICsgMzYwMCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNmbWNDbGllbnQgPSBuZXcgU0ZNQyh2YWxpZEF1dGhPYmplY3QpO1xuXG4gICAgICBqZXN0LnNweU9uKHV0aWxzLCAnaXNFeHBpcmVkJykubW9ja1JldHVyblZhbHVlKGZhbHNlKTtcbiAgICAgIGNvbnN0IHJlcXVlc3RUb2tlblNweSA9IGplc3Quc3B5T24odXRpbHMsICdnZXRUb2tlbicpO1xuXG4gICAgICBjb25zdCBtb2NrQWRhcHRlciA9IG5ldyBBeGlvc01vY2tBZGFwdGVyKGF4aW9zLCB7IG9uTm9NYXRjaDogJ3Rocm93RXhjZXB0aW9uJyB9KTtcbiAgICAgIG1vY2tBZGFwdGVyXG4gICAgICAgIC5vblBvc3QoJ2h0dHBzOi8vYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMS5zb2FwLm1hcmtldGluZ2Nsb3VkYXBpcy5jb20vU2VydmljZS5hc214JylcbiAgICAgICAgLnJlcGx5KFxuICAgICAgICAgIDUwMCxcbiAgICAgICAgICBgPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwidXRmLThcIj8+XG4gICAgICAgICAgPHNvYXA6RW52ZWxvcGUgeG1sbnM6c29hcD1cImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvZW52ZWxvcGUvXCIgeG1sbnM6eHNpPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIiB4bWxuczp4c2Q9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYVwiIHhtbG5zOndzYT1cImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDQvMDgvYWRkcmVzc2luZ1wiIHhtbG5zOndzc2U9XCJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktc2VjZXh0LTEuMC54c2RcIiB4bWxuczp3c3U9XCJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktdXRpbGl0eS0xLjAueHNkXCI+XG4gICAgICAgICAgICAgIDxzb2FwOkhlYWRlcj5cbiAgICAgICAgICAgICAgICAgIDx3c2E6QWN0aW9uPmh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDQvMDgvYWRkcmVzc2luZy9mYXVsdDwvd3NhOkFjdGlvbj5cbiAgICAgICAgICAgICAgICAgIDx3c2E6TWVzc2FnZUlEPnVybjp1dWlkOjE1ZDNlMjg2LTk3ZjUtNGY1Yy1iMGZhLWQ1ODY3MzYyMTU2ODwvd3NhOk1lc3NhZ2VJRD5cbiAgICAgICAgICAgICAgICAgIDx3c2E6UmVsYXRlc1RvPnVybjp1dWlkOmIzOGVlODViLThmNmItNGVkYy05YWI5LTIzYWI2ZTVhNTFlMzwvd3NhOlJlbGF0ZXNUbz5cbiAgICAgICAgICAgICAgICAgIDx3c2E6VG8+aHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nL3JvbGUvYW5vbnltb3VzPC93c2E6VG8+XG4gICAgICAgICAgICAgICAgICA8d3NzZTpTZWN1cml0eT5cbiAgICAgICAgICAgICAgICAgICAgICA8d3N1OlRpbWVzdGFtcCB3c3U6SWQ9XCJUaW1lc3RhbXAtZGMwMmY4ZTgtYWY3NC00Nzk5LWI1ZTktOWU5YzAyOTkyNzhmXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx3c3U6Q3JlYXRlZD4yMDI1LTAxLTAzVDA0OjU5OjQ1Wjwvd3N1OkNyZWF0ZWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx3c3U6RXhwaXJlcz4yMDI1LTAxLTAzVDA1OjA0OjQ1Wjwvd3N1OkV4cGlyZXM+XG4gICAgICAgICAgICAgICAgICAgICAgPC93c3U6VGltZXN0YW1wPlxuICAgICAgICAgICAgICAgICAgPC93c3NlOlNlY3VyaXR5PlxuICAgICAgICAgICAgICA8L3NvYXA6SGVhZGVyPlxuICAgICAgICAgICAgICA8c29hcDpCb2R5PlxuICAgICAgICAgICAgICAgICAgPHNvYXA6RmF1bHQ+XG4gICAgICAgICAgICAgICAgICAgICAgPGZhdWx0Y29kZSB4bWxuczpxMD1cImh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL3dzcy8yMDA0LzAxL29hc2lzLTIwMDQwMS13c3Mtd3NzZWN1cml0eS1zZWNleHQtMS4wLnhzZFwiPnEwOlNlY3VyaXR5PC9mYXVsdGNvZGU+XG4gICAgICAgICAgICAgICAgICAgICAgPGZhdWx0c3RyaW5nPkxvZ2luIEZhaWxlZDwvZmF1bHRzdHJpbmc+XG4gICAgICAgICAgICAgICAgICAgICAgPGZhdWx0YWN0b3I+aHR0cHM6Ly9tY3Zna3F6M2MxY2hyYnN6NTg2azkwczQxaHA4LnNvYXAubWFya2V0aW5nY2xvdWRhcGlzLmNvbS9TZXJ2aWNlLmFzbXg8L2ZhdWx0YWN0b3I+XG4gICAgICAgICAgICAgICAgICA8L3NvYXA6RmF1bHQ+XG4gICAgICAgICAgICAgIDwvc29hcDpCb2R5PlxuICAgICAgICAgIDwvc29hcDpFbnZlbG9wZT5gLFxuICAgICAgICApO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgc2ZtY0NsaWVudC5nZXREYXRhRm9sZGVycygpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBleHBlY3QoZSkudG9FcXVhbChuZXcgRXJyb3IoJ1JlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgNTAwJykpO1xuICAgICAgfVxuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmFsaWRBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdChyZXF1ZXN0VG9rZW5TcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG4gIH0pO1xuICBkZXNjcmliZSgnZ2V0RGF0YUV4dGVuc2lvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBnZXQgYWxsIHRoZSBkYXRhIGV4dGVuc2lvbnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZEF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgICBhY2Nlc3NfdG9rZW46ICd2YWxpZC10b2tlbicsXG4gICAgICAgIGV4cGlyYXRpb246IHByb2Nlc3MuaHJ0aW1lKClbMF0gKyAzNjAwLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc2ZtY0NsaWVudCA9IG5ldyBTRk1DKHZhbGlkQXV0aE9iamVjdCk7XG5cbiAgICAgIGplc3Quc3B5T24odXRpbHMsICdpc0V4cGlyZWQnKS5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuICAgICAgY29uc3QgcmVxdWVzdFRva2VuU3B5ID0gamVzdC5zcHlPbih1dGlscywgJ2dldFRva2VuJyk7XG5cbiAgICAgIGNvbnN0IG1vY2tBZGFwdGVyID0gbmV3IEF4aW9zTW9ja0FkYXB0ZXIoYXhpb3MsIHsgb25Ob01hdGNoOiAndGhyb3dFeGNlcHRpb24nIH0pO1xuICAgICAgY29uc3QgdmFsaWRSZXNwb25zZSA9IGA8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz48c29hcDpFbnZlbG9wZSB4bWxuczpzb2FwPVwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS9cIiB4bWxuczp4c2k9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiIHhtbG5zOnhzZD1cImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hXCIgeG1sbnM6d3NhPVwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nXCIgeG1sbnM6d3NzZT1cImh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL3dzcy8yMDA0LzAxL29hc2lzLTIwMDQwMS13c3Mtd3NzZWN1cml0eS1zZWNleHQtMS4wLnhzZFwiIHhtbG5zOndzdT1cImh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL3dzcy8yMDA0LzAxL29hc2lzLTIwMDQwMS13c3Mtd3NzZWN1cml0eS11dGlsaXR5LTEuMC54c2RcIj48c29hcDpIZWFkZXI+PHdzYTpBY3Rpb24+UmV0cmlldmVSZXNwb25zZTwvd3NhOkFjdGlvbj48d3NhOk1lc3NhZ2VJRD51cm46dXVpZDowMjE0ZDU5NS0zOWYyLTQyYmItYjE4Zi03ODJlM2FlYzkxMjU8L3dzYTpNZXNzYWdlSUQ+PHdzYTpSZWxhdGVzVG8+dXJuOnV1aWQ6OGM5ZjFmZTYtNTg0YS00OTJmLWFkMWUtYjYyODg3ZTZiMjdkPC93c2E6UmVsYXRlc1RvPjx3c2E6VG8+aHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nL3JvbGUvYW5vbnltb3VzPC93c2E6VG8+PHdzc2U6U2VjdXJpdHk+PHdzdTpUaW1lc3RhbXAgd3N1OklkPVwiVGltZXN0YW1wLTc0OWM1YjkwLTdjM2UtNDA1ZS1hODkxLTRjYWI5YWEzMTlkNVwiPjx3c3U6Q3JlYXRlZD4yMDI1LTAxLTA5VDEwOjAxOjE1Wjwvd3N1OkNyZWF0ZWQ+PHdzdTpFeHBpcmVzPjIwMjUtMDEtMDlUMTA6MDY6MTVaPC93c3U6RXhwaXJlcz48L3dzdTpUaW1lc3RhbXA+PC93c3NlOlNlY3VyaXR5Pjwvc29hcDpIZWFkZXI+PHNvYXA6Qm9keT48UmV0cmlldmVSZXNwb25zZU1zZyB4bWxucz1cImh0dHA6Ly9leGFjdHRhcmdldC5jb20vd3NkbC9wYXJ0bmVyQVBJXCI+PE92ZXJhbGxTdGF0dXM+T0s8L092ZXJhbGxTdGF0dXM+PFJlcXVlc3RJRD4yNjEyMzg0Ni00MDQ2LTQzMGItODlkYy05ZTVjMmViNTg3ZmQ8L1JlcXVlc3RJRD48UmVzdWx0cyB4c2k6dHlwZT1cIkRhdGFFeHRlbnNpb25cIj48UGFydG5lcktleSB4c2k6bmlsPVwidHJ1ZVwiIC8+PFBhcnRuZXJQcm9wZXJ0aWVzPjxOYW1lPk9iamVjdElkPC9OYW1lPjxWYWx1ZT5iMzBlMjZkYi01ZTU5LWVmMTEtYmE2ZC1mNDAzNDNjZTg5ZDg8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PFBhcnRuZXJQcm9wZXJ0aWVzPjxOYW1lPk5BTUU8L05hbWU+PFZhbHVlPnJ1ZGRlcnN0YWNrVGVzdGluZzEzMzQyPC9WYWx1ZT48L1BhcnRuZXJQcm9wZXJ0aWVzPjxQYXJ0bmVyUHJvcGVydGllcz48TmFtZT5DYXRlZ29yeUlkPC9OYW1lPjxWYWx1ZT4xMjM0NTwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48T2JqZWN0SUQgeHNpOm5pbD1cInRydWVcIiAvPjwvUmVzdWx0cz48UmVzdWx0cyB4c2k6dHlwZT1cIkRhdGFFeHRlbnNpb25cIj48UGFydG5lcktleSB4c2k6bmlsPVwidHJ1ZVwiIC8+PFBhcnRuZXJQcm9wZXJ0aWVzPjxOYW1lPk9iamVjdElkPC9OYW1lPjxWYWx1ZT4xOTFjNWIyYS01N2I4LWVmMTEtYmE2ZS1mNDAzNDNkMzgwYzg8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PFBhcnRuZXJQcm9wZXJ0aWVzPjxOYW1lPk5BTUU8L05hbWU+PFZhbHVlPlRlc3RGcm9tU0RLMTIzNDwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+Q2F0ZWdvcnlJZDwvTmFtZT48VmFsdWU+MTIzNDU8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PE9iamVjdElEIHhzaTpuaWw9XCJ0cnVlXCIgLz48L1Jlc3VsdHM+PFJlc3VsdHMgeHNpOnR5cGU9XCJEYXRhRXh0ZW5zaW9uXCI+PFBhcnRuZXJLZXkgeHNpOm5pbD1cInRydWVcIiAvPjxQYXJ0bmVyUHJvcGVydGllcz48TmFtZT5PYmplY3RJZDwvTmFtZT48VmFsdWU+NTAzODU2ZTMtNWFiOC1lZjExLWJhNmUtZjQwMzQzZDM4MGM4PC9WYWx1ZT48L1BhcnRuZXJQcm9wZXJ0aWVzPjxQYXJ0bmVyUHJvcGVydGllcz48TmFtZT5OQU1FPC9OYW1lPjxWYWx1ZT5ydWRkZXJzdGFja1Rlc3RpbmcxMjExMjA8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PFBhcnRuZXJQcm9wZXJ0aWVzPjxOYW1lPkNhdGVnb3J5SWQ8L05hbWU+PFZhbHVlPjEyMzQ1PC9WYWx1ZT48L1BhcnRuZXJQcm9wZXJ0aWVzPjxPYmplY3RJRCB4c2k6bmlsPVwidHJ1ZVwiIC8+PC9SZXN1bHRzPjxSZXN1bHRzIHhzaTp0eXBlPVwiRGF0YUV4dGVuc2lvblwiPjxQYXJ0bmVyS2V5IHhzaTpuaWw9XCJ0cnVlXCIgLz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+T2JqZWN0SWQ8L05hbWU+PFZhbHVlPjE3NDJmNmYxLTc5YjgtZWYxMS1iYTZlLWY0MDM0M2QzODBjODwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+TkFNRTwvTmFtZT48VmFsdWU+cnVkZGVyc3RhY2tUZXN0aW5nMTI0NDI8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PFBhcnRuZXJQcm9wZXJ0aWVzPjxOYW1lPkNhdGVnb3J5SWQ8L05hbWU+PFZhbHVlPjEyMzQ1PC9WYWx1ZT48L1BhcnRuZXJQcm9wZXJ0aWVzPjxPYmplY3RJRCB4c2k6bmlsPVwidHJ1ZVwiIC8+PC9SZXN1bHRzPjxSZXN1bHRzIHhzaTp0eXBlPVwiRGF0YUV4dGVuc2lvblwiPjxQYXJ0bmVyS2V5IHhzaTpuaWw9XCJ0cnVlXCIgLz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+T2JqZWN0SWQ8L05hbWU+PFZhbHVlPjRiYWY0Y2YxLThjYzktZWYxMS1iYTZlLWY0MDM0M2QzODBjODwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+TkFNRTwvTmFtZT48VmFsdWU+cnVkZGVyc3RhY2tUZXN0aW5nMDI5NTwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+Q2F0ZWdvcnlJZDwvTmFtZT48VmFsdWU+MTIzNDU8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PE9iamVjdElEIHhzaTpuaWw9XCJ0cnVlXCIgLz48L1Jlc3VsdHM+PC9SZXRyaWV2ZVJlc3BvbnNlTXNnPjwvc29hcDpCb2R5Pjwvc29hcDpFbnZlbG9wZT5gO1xuICAgICAgbW9ja0FkYXB0ZXJcbiAgICAgICAgLm9uUG9zdCgnaHR0cHM6Ly9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxLnNvYXAubWFya2V0aW5nY2xvdWRhcGlzLmNvbS9TZXJ2aWNlLmFzbXgnKVxuICAgICAgICAucmVwbHkoMjAwLCB2YWxpZFJlc3BvbnNlKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNmbWNDbGllbnQuZ2V0RGF0YUV4dGVuc2lvbnMoJ3ZhbGlkLWZvbGRlci1pZCcpO1xuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmFsaWRBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdChyZXF1ZXN0VG9rZW5TcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKFtcbiAgICAgICAge1xuICAgICAgICAgIENhdGVnb3J5SWQ6IDEyMzQ1LFxuICAgICAgICAgIE5hbWU6ICdydWRkZXJzdGFja1Rlc3RpbmcxMzM0MicsXG4gICAgICAgICAgT2JqZWN0SWQ6ICdiMzBlMjZkYi01ZTU5LWVmMTEtYmE2ZC1mNDAzNDNjZTg5ZDgnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQ2F0ZWdvcnlJZDogMTIzNDUsXG4gICAgICAgICAgTmFtZTogJ1Rlc3RGcm9tU0RLMTIzNCcsXG4gICAgICAgICAgT2JqZWN0SWQ6ICcxOTFjNWIyYS01N2I4LWVmMTEtYmE2ZS1mNDAzNDNkMzgwYzgnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQ2F0ZWdvcnlJZDogMTIzNDUsXG4gICAgICAgICAgTmFtZTogJ3J1ZGRlcnN0YWNrVGVzdGluZzEyMTEyMCcsXG4gICAgICAgICAgT2JqZWN0SWQ6ICc1MDM4NTZlMy01YWI4LWVmMTEtYmE2ZS1mNDAzNDNkMzgwYzgnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQ2F0ZWdvcnlJZDogMTIzNDUsXG4gICAgICAgICAgTmFtZTogJ3J1ZGRlcnN0YWNrVGVzdGluZzEyNDQyJyxcbiAgICAgICAgICBPYmplY3RJZDogJzE3NDJmNmYxLTc5YjgtZWYxMS1iYTZlLWY0MDM0M2QzODBjOCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBDYXRlZ29yeUlkOiAxMjM0NSxcbiAgICAgICAgICBOYW1lOiAncnVkZGVyc3RhY2tUZXN0aW5nMDI5NScsXG4gICAgICAgICAgT2JqZWN0SWQ6ICc0YmFmNGNmMS04Y2M5LWVmMTEtYmE2ZS1mNDAzNDNkMzgwYzgnLFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgZmFpbHVyZSBzY2VuYXJpbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkQXV0aE9iamVjdCA9IHtcbiAgICAgICAgY2xpZW50SWQ6ICd0ZXN0LWNsaWVudCcsXG4gICAgICAgIGNsaWVudFNlY3JldDogJ3Rlc3Qtc2VjcmV0JyxcbiAgICAgICAgc3ViRG9tYWluOiAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMScsXG4gICAgICAgIGFjY2Vzc190b2tlbjogJ3ZhbGlkLXRva2VuJyxcbiAgICAgICAgZXhwaXJhdGlvbjogcHJvY2Vzcy5ocnRpbWUoKVswXSArIDM2MDAsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzZm1jQ2xpZW50ID0gbmV3IFNGTUModmFsaWRBdXRoT2JqZWN0KTtcblxuICAgICAgamVzdC5zcHlPbih1dGlscywgJ2lzRXhwaXJlZCcpLm1vY2tSZXR1cm5WYWx1ZShmYWxzZSk7XG4gICAgICBjb25zdCByZXF1ZXN0VG9rZW5TcHkgPSBqZXN0LnNweU9uKHV0aWxzLCAnZ2V0VG9rZW4nKTtcblxuICAgICAgY29uc3QgbW9ja0FkYXB0ZXIgPSBuZXcgQXhpb3NNb2NrQWRhcHRlcihheGlvcywgeyBvbk5vTWF0Y2g6ICd0aHJvd0V4Y2VwdGlvbicgfSk7XG4gICAgICBtb2NrQWRhcHRlclxuICAgICAgICAub25Qb3N0KCdodHRwczovL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEuc29hcC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tL1NlcnZpY2UuYXNteCcpXG4gICAgICAgIC5yZXBseShcbiAgICAgICAgICA1MDAsXG4gICAgICAgICAgYDw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cInV0Zi04XCI/PlxuICAgICAgICAgIDxzb2FwOkVudmVsb3BlIHhtbG5zOnNvYXA9XCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy9zb2FwL2VudmVsb3BlL1wiIHhtbG5zOnhzaT1cImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlXCIgeG1sbnM6eHNkPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWFcIiB4bWxuczp3c2E9XCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA0LzA4L2FkZHJlc3NpbmdcIiB4bWxuczp3c3NlPVwiaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvd3NzLzIwMDQvMDEvb2FzaXMtMjAwNDAxLXdzcy13c3NlY3VyaXR5LXNlY2V4dC0xLjAueHNkXCIgeG1sbnM6d3N1PVwiaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvd3NzLzIwMDQvMDEvb2FzaXMtMjAwNDAxLXdzcy13c3NlY3VyaXR5LXV0aWxpdHktMS4wLnhzZFwiPlxuICAgICAgICAgICAgICA8c29hcDpIZWFkZXI+XG4gICAgICAgICAgICAgICAgICA8d3NhOkFjdGlvbj5odHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA0LzA4L2FkZHJlc3NpbmcvZmF1bHQ8L3dzYTpBY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8d3NhOk1lc3NhZ2VJRD51cm46dXVpZDoxNWQzZTI4Ni05N2Y1LTRmNWMtYjBmYS1kNTg2NzM2MjE1Njg8L3dzYTpNZXNzYWdlSUQ+XG4gICAgICAgICAgICAgICAgICA8d3NhOlJlbGF0ZXNUbz51cm46dXVpZDpiMzhlZTg1Yi04ZjZiLTRlZGMtOWFiOS0yM2FiNmU1YTUxZTM8L3dzYTpSZWxhdGVzVG8+XG4gICAgICAgICAgICAgICAgICA8d3NhOlRvPmh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDQvMDgvYWRkcmVzc2luZy9yb2xlL2Fub255bW91czwvd3NhOlRvPlxuICAgICAgICAgICAgICAgICAgPHdzc2U6U2VjdXJpdHk+XG4gICAgICAgICAgICAgICAgICAgICAgPHdzdTpUaW1lc3RhbXAgd3N1OklkPVwiVGltZXN0YW1wLWRjMDJmOGU4LWFmNzQtNDc5OS1iNWU5LTllOWMwMjk5Mjc4ZlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8d3N1OkNyZWF0ZWQ+MjAyNS0wMS0wM1QwNDo1OTo0NVo8L3dzdTpDcmVhdGVkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8d3N1OkV4cGlyZXM+MjAyNS0wMS0wM1QwNTowNDo0NVo8L3dzdTpFeHBpcmVzPlxuICAgICAgICAgICAgICAgICAgICAgIDwvd3N1OlRpbWVzdGFtcD5cbiAgICAgICAgICAgICAgICAgIDwvd3NzZTpTZWN1cml0eT5cbiAgICAgICAgICAgICAgPC9zb2FwOkhlYWRlcj5cbiAgICAgICAgICAgICAgPHNvYXA6Qm9keT5cbiAgICAgICAgICAgICAgICAgIDxzb2FwOkZhdWx0PlxuICAgICAgICAgICAgICAgICAgICAgIDxmYXVsdGNvZGUgeG1sbnM6cTA9XCJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktc2VjZXh0LTEuMC54c2RcIj5xMDpTZWN1cml0eTwvZmF1bHRjb2RlPlxuICAgICAgICAgICAgICAgICAgICAgIDxmYXVsdHN0cmluZz5Mb2dpbiBGYWlsZWQ8L2ZhdWx0c3RyaW5nPlxuICAgICAgICAgICAgICAgICAgICAgIDxmYXVsdGFjdG9yPmh0dHBzOi8vbWN2Z2txejNjMWNocmJzejU4Nms5MHM0MWhwOC5zb2FwLm1hcmtldGluZ2Nsb3VkYXBpcy5jb20vU2VydmljZS5hc214PC9mYXVsdGFjdG9yPlxuICAgICAgICAgICAgICAgICAgPC9zb2FwOkZhdWx0PlxuICAgICAgICAgICAgICA8L3NvYXA6Qm9keT5cbiAgICAgICAgICA8L3NvYXA6RW52ZWxvcGU+YCxcbiAgICAgICAgKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHNmbWNDbGllbnQuZ2V0RGF0YUV4dGVuc2lvbnMoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZXhwZWN0KGUpLnRvRXF1YWwobmV3IEVycm9yKCdSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlIDUwMCcpKTtcbiAgICAgIH1cbiAgICAgIGV4cGVjdCh1dGlscy5pc0V4cGlyZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHZhbGlkQXV0aE9iamVjdCk7XG4gICAgICBleHBlY3QocmVxdWVzdFRva2VuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
751
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZGtzL3NmbWMvaW5kZXgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQiw0RUFBa0Q7QUFDbEQseUNBQXFCO0FBQ3JCLCtDQUFpQztBQUVqQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtJQUNwQixRQUFRLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO1FBQzlCLEVBQUUsQ0FBQyw2REFBNkQsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMzRSxNQUFNLGVBQWUsR0FBRztnQkFDdEIsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLFlBQVksRUFBRSxhQUFhO2dCQUMzQixTQUFTLEVBQUUsOEJBQThCO2dCQUN6QyxZQUFZLEVBQUUsYUFBYTtnQkFDM0IsVUFBVSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJO2FBQ3ZDLENBQUM7WUFFRixNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM3QyxVQUFVLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQztZQUV4QyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFakQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNyQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLG9CQUFvQixD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O1lBQ3RFLENBQUM7WUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzlELE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IEF4aW9zTW9ja0FkYXB0ZXIgZnJvbSAnYXhpb3MtbW9jay1hZGFwdGVyJztcbmltcG9ydCBTRk1DIGZyb20gJy4nO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmRlc2NyaWJlKCdzZm1jJywgKCkgPT4ge1xuICBkZXNjcmliZSgnZ2V0QWNjZXNzVG9rZW4nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gZXhpc3RpbmcgYXV0aE9iamVjdCB3aGVuIHRva2VuIGlzIG5vdCBleHBpcmVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogJ3Rlc3QtY2xpZW50JyxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxJyxcbiAgICAgICAgYWNjZXNzX3Rva2VuOiAndmFsaWQtdG9rZW4nLFxuICAgICAgICBleHBpcmF0aW9uOiBwcm9jZXNzLmhydGltZSgpWzBdICsgMzYwMCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNmbWNDbGllbnQgPSBuZXcgU0ZNQyh2YWxpZEF1dGhPYmplY3QpO1xuICAgICAgc2ZtY0NsaWVudC5hdXRoT2JqZWN0ID0gdmFsaWRBdXRoT2JqZWN0O1xuXG4gICAgICBqZXN0LnNweU9uKHV0aWxzLCAnaXNFeHBpcmVkJykubW9ja1JldHVyblZhbHVlKGZhbHNlKTtcbiAgICAgIGNvbnN0IHJlcXVlc3RUb2tlblNweSA9IGplc3Quc3B5T24odXRpbHMsICdnZXRUb2tlbicpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2ZtY0NsaWVudC5nZXRBY2Nlc3NUb2tlbigpO1xuXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlKHZhbGlkQXV0aE9iamVjdCk7XG4gICAgICBleHBlY3QodXRpbHMuaXNFeHBpcmVkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh2YWxpZEF1dGhPYmplY3QpO1xuICAgICAgZXhwZWN0KHJlcXVlc3RUb2tlblNweSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcbiAgICAvLyBIYW5kbGVzIGNhc2Ugd2hlbiBhdXRoT2JqZWN0IGlzIGluaXRpYWxseSBlbXB0eSBvciBudWxsXG4gICAgaXQoJ3Nob3VsZCByZXF1ZXN0IG5ldyB0b2tlbiB3aGVuIGF1dGhPYmplY3QgaXMgZW1wdHknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlbXB0eUF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbmV3QXV0aE9iamVjdCA9IHtcbiAgICAgICAgLi4uZW1wdHlBdXRoT2JqZWN0LFxuICAgICAgICBhY2Nlc3NfdG9rZW46ICduZXctdG9rZW4nLFxuICAgICAgICBleHBpcmVzX2luOiAxMjM0NSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNmbWNDbGllbnQgPSBuZXcgU0ZNQyhlbXB0eUF1dGhPYmplY3QpO1xuICAgICAgc2ZtY0NsaWVudC5hdXRoT2JqZWN0ID0gZW1wdHlBdXRoT2JqZWN0O1xuXG4gICAgICBqZXN0LnNweU9uKHV0aWxzLCAnaXNFeHBpcmVkJykubW9ja1JldHVyblZhbHVlKHRydWUpO1xuICAgICAgLy8gamVzdC5zcHlPbihheGlvcywgJ2dldFRva2VuJykubW9ja1Jlc29sdmVkVmFsdWUobmV3QXV0aE9iamVjdCk7XG4gICAgICBjb25zdCBtb2NrQWRhcHRlciA9IG5ldyBBeGlvc01vY2tBZGFwdGVyKGF4aW9zLCB7IG9uTm9NYXRjaDogJ3Rocm93RXhjZXB0aW9uJyB9KTtcbiAgICAgIG1vY2tBZGFwdGVyXG4gICAgICAgIC5vblBvc3QoJ2h0dHBzOi8vYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMS5hdXRoLm1hcmtldGluZ2Nsb3VkYXBpcy5jb20vdjIvdG9rZW4nKVxuICAgICAgICAucmVwbHkoMjAwLCBuZXdBdXRoT2JqZWN0KTtcbiAgICAgIGplc3Quc3B5T24ocHJvY2VzcywgJ2hydGltZScpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBbMCwgMF0pO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2ZtY0NsaWVudC5nZXRBY2Nlc3NUb2tlbigpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7IC4uLm5ld0F1dGhPYmplY3QsIGV4cGlyYXRpb246IDEyMzQ1IH0pO1xuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZW1wdHlBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdCh1dGlscy5nZXRUb2tlbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoZW1wdHlBdXRoT2JqZWN0KTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gYXV0aE9iamVjdCBoYXMgaW52YWxpZCBjbGllbnRJZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGludmFsaWRBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogbnVsbCxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICd0ZXN0JyxcbiAgICAgIH07XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzZm1jSW5zdGFuY2UgPSBuZXcgU0ZNQyhpbnZhbGlkQXV0aE9iamVjdCk7XG4gICAgICAgIHNmbWNJbnN0YW5jZS5nZXRBY2Nlc3NUb2tlbigpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBleHBlY3QoZSkudG9FcXVhbChuZXcgRXJyb3IoJ2NsaWVudElkIGlzIG1pc3Npbmcgb3IgaW52YWxpZCcpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBjb25jdXJyZW50IHRva2VuIHJlZnJlc2ggcmVxdWVzdHMgY29ycmVjdGx5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZW1wdHlBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogJ3Rlc3QtY2xpZW50JyxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG5ld0F1dGhPYmplY3QgPSB7XG4gICAgICAgIC4uLmVtcHR5QXV0aE9iamVjdCxcbiAgICAgICAgYWNjZXNzX3Rva2VuOiAnbmV3LXRva2VuJyxcbiAgICAgICAgZXhwaXJlc19pbjogMTIzNDUsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzZm1jQ2xpZW50ID0gbmV3IFNGTUMoZW1wdHlBdXRoT2JqZWN0KTtcbiAgICAgIHNmbWNDbGllbnQuYXV0aE9iamVjdCA9IGVtcHR5QXV0aE9iamVjdDtcblxuICAgICAgamVzdC5zcHlPbih1dGlscywgJ2lzRXhwaXJlZCcpLm1vY2tSZXR1cm5WYWx1ZSh0cnVlKTtcbiAgICAgIGNvbnN0IG1vY2tBZGFwdGVyID0gbmV3IEF4aW9zTW9ja0FkYXB0ZXIoYXhpb3MsIHsgb25Ob01hdGNoOiAndGhyb3dFeGNlcHRpb24nIH0pO1xuICAgICAgbW9ja0FkYXB0ZXJcbiAgICAgICAgLm9uUG9zdCgnaHR0cHM6Ly9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxLmF1dGgubWFya2V0aW5nY2xvdWRhcGlzLmNvbS92Mi90b2tlbicpXG4gICAgICAgIC5yZXBseSgyMDAsIG5ld0F1dGhPYmplY3QpO1xuICAgICAgamVzdC5zcHlPbihwcm9jZXNzLCAnaHJ0aW1lJykubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFswLCAwXSk7XG4gICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgc2ZtY0NsaWVudC5nZXRBY2Nlc3NUb2tlbigpO1xuICAgICAgamVzdC5zcHlPbih1dGlscywgJ2lzRXhwaXJlZCcpLm1vY2tSZXR1cm5WYWx1ZShmYWxzZSk7XG4gICAgICByZXN1bHQgPSBhd2FpdCBzZm1jQ2xpZW50LmdldEFjY2Vzc1Rva2VuKCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHsgLi4ubmV3QXV0aE9iamVjdCwgZXhwaXJhdGlvbjogMTIzNDUgfSk7XG4gICAgICBleHBlY3QodXRpbHMuaXNFeHBpcmVkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChlbXB0eUF1dGhPYmplY3QpO1xuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZW1wdHlBdXRoT2JqZWN0KTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdpdGggb3JpZ2luYWwgbWVzc2FnZSB3aGVuIHRva2VuIHJlcXVlc3QgZmFpbHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlbXB0eUF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc2ZtY0NsaWVudCA9IG5ldyBTRk1DKGVtcHR5QXV0aE9iamVjdCk7XG4gICAgICBzZm1jQ2xpZW50LmF1dGhPYmplY3QgPSBlbXB0eUF1dGhPYmplY3Q7XG5cbiAgICAgIGplc3Quc3B5T24odXRpbHMsICdpc0V4cGlyZWQnKS5tb2NrUmV0dXJuVmFsdWUodHJ1ZSk7XG4gICAgICBjb25zdCBtb2NrQWRhcHRlciA9IG5ldyBBeGlvc01vY2tBZGFwdGVyKGF4aW9zLCB7IG9uTm9NYXRjaDogJ3Rocm93RXhjZXB0aW9uJyB9KTtcbiAgICAgIG1vY2tBZGFwdGVyXG4gICAgICAgIC5vblBvc3QoJ2h0dHBzOi8vYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMS5hdXRoLm1hcmtldGluZ2Nsb3VkYXBpcy5jb20vdjIvdG9rZW4nKVxuICAgICAgICAucmVwbHkoNDAwLCBuZXcgRXJyb3IoJ0JhZCBSZXF1ZXN0JykpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgc2ZtY0NsaWVudC5nZXRBY2Nlc3NUb2tlbigpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBleHBlY3QoZSkudG9FcXVhbChcbiAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnVW5hYmxlIHRvIGdlbmVyYXRlIHRva2VuLCB3aXRoIGVycm9yOkVycm9yOiBSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlIDQwMCcsXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIGRlc2NyaWJlKCdnZXREZXN0aW5hdGlvbkZpZWxkcycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBkYXRhIGV4dGVuc2lvbiBmaWVsZHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZEF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgICBhY2Nlc3NfdG9rZW46ICd2YWxpZC10b2tlbicsXG4gICAgICAgIGV4cGlyYXRpb246IHByb2Nlc3MuaHJ0aW1lKClbMF0gKyAzNjAwLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc2ZtY0NsaWVudCA9IG5ldyBTRk1DKHZhbGlkQXV0aE9iamVjdCk7XG5cbiAgICAgIGplc3Quc3B5T24odXRpbHMsICdpc0V4cGlyZWQnKS5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuICAgICAgY29uc3QgcmVxdWVzdFRva2VuU3B5ID0gamVzdC5zcHlPbih1dGlscywgJ2dldFRva2VuJyk7XG5cbiAgICAgIGNvbnN0IG1vY2tBZGFwdGVyID0gbmV3IEF4aW9zTW9ja0FkYXB0ZXIoYXhpb3MsIHsgb25Ob01hdGNoOiAndGhyb3dFeGNlcHRpb24nIH0pO1xuICAgICAgY29uc3QgdmFsaWRSZXNwb25zZSA9IHtcbiAgICAgICAgbmFtZTogJ1Rlc3QgREUnLFxuICAgICAgICBjYXRlZ29yeUlEOiAnMTIzNDUnLFxuICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZmllbGQxJyxcbiAgICAgICAgICAgIHR5cGU6ICdUZXh0JyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICAgIG1vY2tBZGFwdGVyXG4gICAgICAgIC5vbkdldChcbiAgICAgICAgICAnaHR0cHM6Ly9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxLnJlc3QubWFya2V0aW5nY2xvdWRhcGlzLmNvbS9kYXRhL3YxL2N1c3RvbW9iamVjdHMvdGVzdC1kZS1pZC9maWVsZHMnLFxuICAgICAgICApXG4gICAgICAgIC5yZXBseSgyMDAsIHZhbGlkUmVzcG9uc2UpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2ZtY0NsaWVudC5nZXREZXN0aW5hdGlvbkZpZWxkcygndGVzdC1kZS1pZCcpO1xuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmFsaWRBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdChyZXF1ZXN0VG9rZW5TcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKHZhbGlkUmVzcG9uc2UpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgaGFuZGxlIGZhaWx1cmUgc2NlbmFyaW8nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZEF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgICBhY2Nlc3NfdG9rZW46ICd2YWxpZC10b2tlbicsXG4gICAgICAgIGV4cGlyYXRpb246IHByb2Nlc3MuaHJ0aW1lKClbMF0gKyAzNjAwLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc2ZtY0NsaWVudCA9IG5ldyBTRk1DKHZhbGlkQXV0aE9iamVjdCk7XG5cbiAgICAgIGplc3Quc3B5T24odXRpbHMsICdpc0V4cGlyZWQnKS5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuICAgICAgY29uc3QgcmVxdWVzdFRva2VuU3B5ID0gamVzdC5zcHlPbih1dGlscywgJ2dldFRva2VuJyk7XG5cbiAgICAgIGNvbnN0IG1vY2tBZGFwdGVyID0gbmV3IEF4aW9zTW9ja0FkYXB0ZXIoYXhpb3MsIHsgb25Ob01hdGNoOiAndGhyb3dFeGNlcHRpb24nIH0pO1xuICAgICAgbW9ja0FkYXB0ZXJcbiAgICAgICAgLm9uR2V0KFxuICAgICAgICAgICdodHRwczovL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEucmVzdC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tL2RhdGEvdjEvY3VzdG9tb2JqZWN0cy90ZXN0LWRlLWlkL2ZpZWxkcycsXG4gICAgICAgIClcbiAgICAgICAgLnJlcGx5KDQwMSwge1xuICAgICAgICAgIGRvY3VtZW50YXRpb246XG4gICAgICAgICAgICAnaHR0cHM6Ly9kZXZlbG9wZXIuc2FsZXNmb3JjZS5jb20vZG9jcy9hdGxhcy5lbi11cy5tYy1hcGlzLm1ldGEvbWMtYXBpcy9lcnJvci1oYW5kbGluZy5odG0nLFxuICAgICAgICAgIGVycm9yY29kZTogMCxcbiAgICAgICAgICBtZXNzYWdlOiAnTm90IEF1dGhvcml6ZWQnLFxuICAgICAgICB9KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHNmbWNDbGllbnQuZ2V0RGVzdGluYXRpb25GaWVsZHMoJ3Rlc3QtZGUtaWQnKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZXhwZWN0KGUpLnRvRXF1YWwobmV3IEVycm9yKCdOb3QgQXV0aG9yaXplZCcpKTtcbiAgICAgIH1cbiAgICAgIGV4cGVjdCh1dGlscy5pc0V4cGlyZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHZhbGlkQXV0aE9iamVjdCk7XG4gICAgICBleHBlY3QocmVxdWVzdFRva2VuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcbiAgZGVzY3JpYmUoJ2dldENvbnRhY3RBdHRyaWJ1dGVzJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIGNvbnRhY3QgYXR0cmlidXRlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkQXV0aE9iamVjdCA9IHtcbiAgICAgICAgY2xpZW50SWQ6ICd0ZXN0LWNsaWVudCcsXG4gICAgICAgIGNsaWVudFNlY3JldDogJ3Rlc3Qtc2VjcmV0JyxcbiAgICAgICAgc3ViRG9tYWluOiAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMScsXG4gICAgICAgIGFjY2Vzc190b2tlbjogJ3ZhbGlkLXRva2VuJyxcbiAgICAgICAgZXhwaXJhdGlvbjogcHJvY2Vzcy5ocnRpbWUoKVswXSArIDM2MDAsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzZm1jQ2xpZW50ID0gbmV3IFNGTUModmFsaWRBdXRoT2JqZWN0KTtcblxuICAgICAgamVzdC5zcHlPbih1dGlscywgJ2lzRXhwaXJlZCcpLm1vY2tSZXR1cm5WYWx1ZShmYWxzZSk7XG4gICAgICBjb25zdCByZXF1ZXN0VG9rZW5TcHkgPSBqZXN0LnNweU9uKHV0aWxzLCAnZ2V0VG9rZW4nKTtcblxuICAgICAgY29uc3QgbW9ja0FkYXB0ZXIgPSBuZXcgQXhpb3NNb2NrQWRhcHRlcihheGlvcywgeyBvbk5vTWF0Y2g6ICd0aHJvd0V4Y2VwdGlvbicgfSk7XG4gICAgICBjb25zdCB2YWxpZFJlc3BvbnNlID0ge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaXNSZWFkT25seTogdHJ1ZSxcbiAgICAgICAgICAgICAgYXR0cmlidXRlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGlzUmVhZE9ubHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICBmdWxseVF1YWxpZmllZE5hbWU6ICd0ZXN0Lm5hbWUnLFxuICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgbW9ja0FkYXB0ZXJcbiAgICAgICAgLm9uR2V0KFxuICAgICAgICAgICdodHRwczovL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEucmVzdC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tL2NvbnRhY3RzL3YxL2F0dHJpYnV0ZVNldERlZmluaXRpb25zJyxcbiAgICAgICAgKVxuICAgICAgICAucmVwbHkoMjAwLCB2YWxpZFJlc3BvbnNlKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNmbWNDbGllbnQuZ2V0Q29udGFjdEF0dHJpYnV0ZXMoKTtcbiAgICAgIGV4cGVjdCh1dGlscy5pc0V4cGlyZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHZhbGlkQXV0aE9iamVjdCk7XG4gICAgICBleHBlY3QocmVxdWVzdFRva2VuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh2YWxpZFJlc3BvbnNlKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBmYWlsdXJlIHNjZW5hcmlvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogJ3Rlc3QtY2xpZW50JyxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxJyxcbiAgICAgICAgYWNjZXNzX3Rva2VuOiAndmFsaWQtdG9rZW4nLFxuICAgICAgICBleHBpcmF0aW9uOiBwcm9jZXNzLmhydGltZSgpWzBdICsgMzYwMCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNmbWNDbGllbnQgPSBuZXcgU0ZNQyh2YWxpZEF1dGhPYmplY3QpO1xuXG4gICAgICBqZXN0LnNweU9uKHV0aWxzLCAnaXNFeHBpcmVkJykubW9ja1JldHVyblZhbHVlKGZhbHNlKTtcbiAgICAgIGNvbnN0IHJlcXVlc3RUb2tlblNweSA9IGplc3Quc3B5T24odXRpbHMsICdnZXRUb2tlbicpO1xuXG4gICAgICBjb25zdCBtb2NrQWRhcHRlciA9IG5ldyBBeGlvc01vY2tBZGFwdGVyKGF4aW9zLCB7IG9uTm9NYXRjaDogJ3Rocm93RXhjZXB0aW9uJyB9KTtcbiAgICAgIG1vY2tBZGFwdGVyXG4gICAgICAgIC5vbkdldChcbiAgICAgICAgICAnaHR0cHM6Ly9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxLnJlc3QubWFya2V0aW5nY2xvdWRhcGlzLmNvbS9jb250YWN0cy92MS9hdHRyaWJ1dGVTZXREZWZpbml0aW9ucycsXG4gICAgICAgIClcbiAgICAgICAgLnJlcGx5KDQwMSwge1xuICAgICAgICAgIGRvY3VtZW50YXRpb246XG4gICAgICAgICAgICAnaHR0cHM6Ly9kZXZlbG9wZXIuc2FsZXNmb3JjZS5jb20vZG9jcy9hdGxhcy5lbi11cy5tYy1hcGlzLm1ldGEvbWMtYXBpcy9lcnJvci1oYW5kbGluZy5odG0nLFxuICAgICAgICAgIGVycm9yY29kZTogMCxcbiAgICAgICAgICBtZXNzYWdlOiAnTm90IEF1dGhvcml6ZWQnLFxuICAgICAgICB9KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHNmbWNDbGllbnQuZ2V0Q29udGFjdEF0dHJpYnV0ZXMoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZXhwZWN0KGUpLnRvRXF1YWwobmV3IEVycm9yKCdOb3QgQXV0aG9yaXplZCcpKTtcbiAgICAgIH1cbiAgICAgIGV4cGVjdCh1dGlscy5pc0V4cGlyZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHZhbGlkQXV0aE9iamVjdCk7XG4gICAgICBleHBlY3QocmVxdWVzdFRva2VuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcbiAgZGVzY3JpYmUoJ2NyZWF0ZURhdGFFeHRlbnNpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgbmV3IGRhdGEgZXh0ZW5zaW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogJ3Rlc3QtY2xpZW50JyxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxJyxcbiAgICAgICAgYWNjZXNzX3Rva2VuOiAndmFsaWQtdG9rZW4nLFxuICAgICAgICBleHBpcmF0aW9uOiBwcm9jZXNzLmhydGltZSgpWzBdICsgMzYwMCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNmbWNDbGllbnQgPSBuZXcgU0ZNQyh2YWxpZEF1dGhPYmplY3QpO1xuXG4gICAgICBqZXN0LnNweU9uKHV0aWxzLCAnaXNFeHBpcmVkJykubW9ja1JldHVyblZhbHVlKGZhbHNlKTtcbiAgICAgIGNvbnN0IHJlcXVlc3RUb2tlblNweSA9IGplc3Quc3B5T24odXRpbHMsICdnZXRUb2tlbicpO1xuXG4gICAgICBjb25zdCBtb2NrQWRhcHRlciA9IG5ldyBBeGlvc01vY2tBZGFwdGVyKGF4aW9zLCB7IG9uTm9NYXRjaDogJ3Rocm93RXhjZXB0aW9uJyB9KTtcbiAgICAgIGNvbnN0IHZhbGlkUmVzcG9uc2UgPSB7XG4gICAgICAgIGlkOiAnNGJhZjRjZjEtOGNjOS1lZjExLWJhNmUtZjQwMzQzZDM4MGM4JyxcbiAgICAgICAgbmFtZTogJ3J1ZGRlcnN0YWNrVGVzdGluZzAyOTUnLFxuICAgICAgICBrZXk6ICdydWRkZXJzdGFja1Rlc3RpbmcwMjk1JyxcbiAgICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgICAgIGlzU2VuZGFibGU6IGZhbHNlLFxuICAgICAgICBpc1Rlc3RhYmxlOiBmYWxzZSxcbiAgICAgICAgc3RhdHVzOiAwLFxuICAgICAgICBjYXRlZ29yeUlkOiAxMjM0NSxcbiAgICAgICAgb3duZXJJZDogNzM1NDQ0NTMxLFxuICAgICAgICBpc09iamVjdERlbGV0YWJsZTogdHJ1ZSxcbiAgICAgICAgaXNGaWVsZEFkZGl0aW9uQWxsb3dlZDogdHJ1ZSxcbiAgICAgICAgaXNGaWVsZE1vZGlmaWNhdGlvbkFsbG93ZWQ6IHRydWUsXG4gICAgICAgIGNyZWF0ZWREYXRlOiAnMjAyNS0wMS0wMlQyMjo0MToxMi41MDE4NDE1LTA2OjAwJyxcbiAgICAgICAgY3JlYXRlZEJ5SWQ6IDczNTQ0NDUzMSxcbiAgICAgICAgbW9kaWZpZWREYXRlOiAnMjAyNS0wMS0wMlQyMjo0MToxMi41MDE4NDE1LTA2OjAwJyxcbiAgICAgICAgbW9kaWZpZWRCeUlkOiA3MzU0NDQ1MzEsXG4gICAgICAgIG93bmVyTmFtZTogJ1J1ZGRlcnN0YWNrSW50ZWdyYXRpb24gYXBwIHVzZXInLFxuICAgICAgICByb3dDb3VudDogMCxcbiAgICAgICAgZGF0YVJldGVudGlvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICBpc0RlbGV0ZUF0RW5kT2ZSZXRlbnRpb25QZXJpb2Q6IHRydWUsXG4gICAgICAgICAgaXNSb3dCYXNlZFJldGVudGlvbjogZmFsc2UsXG4gICAgICAgICAgaXNSZXNldFJldGVudGlvblBlcmlvZE9uSW1wb3J0OiBmYWxzZSxcbiAgICAgICAgICByb3dCYXNlZFRocmVzaG9sZDogMTAwMDAwMDAwMCxcbiAgICAgICAgfSxcbiAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2tleTEnLFxuICAgICAgICAgICAgaWQ6ICczMDBiYTIzMy1iN2UwLTQ3MzItYmE4NS0xYmMwMTIwOGZjMWInLFxuICAgICAgICAgICAgdHlwZTogJ1RleHQnLFxuICAgICAgICAgICAgbWFza1R5cGU6ICdOb25lJyxcbiAgICAgICAgICAgIHN0b3JhZ2VUeXBlOiAnUGxhaW4nLFxuICAgICAgICAgICAgbGVuZ3RoOiAyNTQsXG4gICAgICAgICAgICBvcmRpbmFsOiAwLFxuICAgICAgICAgICAgaXNOdWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBpc1ByaW1hcnlLZXk6IHRydWUsXG4gICAgICAgICAgICBpc1RlbXBsYXRlRmllbGQ6IGZhbHNlLFxuICAgICAgICAgICAgaXNJbmhlcml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICBpc092ZXJyaWRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgaXNIaWRkZW46IGZhbHNlLFxuICAgICAgICAgICAgaXNSZWFkT25seTogZmFsc2UsXG4gICAgICAgICAgICBtdXN0T3ZlcnJpZGU6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2tleTInLFxuICAgICAgICAgICAgaWQ6ICc3NWEzOGY5OC1lODY1LTQzY2UtOTcwMi01YjMxN2JhMjlkOTInLFxuICAgICAgICAgICAgdHlwZTogJ0VtYWlsQWRkcmVzcycsXG4gICAgICAgICAgICBtYXNrVHlwZTogJ05vbmUnLFxuICAgICAgICAgICAgc3RvcmFnZVR5cGU6ICdQbGFpbicsXG4gICAgICAgICAgICBsZW5ndGg6IDI1NCxcbiAgICAgICAgICAgIG9yZGluYWw6IDAsXG4gICAgICAgICAgICBpc051bGxhYmxlOiB0cnVlLFxuICAgICAgICAgICAgaXNQcmltYXJ5S2V5OiBmYWxzZSxcbiAgICAgICAgICAgIGlzVGVtcGxhdGVGaWVsZDogZmFsc2UsXG4gICAgICAgICAgICBpc0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGlzT3ZlcnJpZGFibGU6IHRydWUsXG4gICAgICAgICAgICBpc0hpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICBpc1JlYWRPbmx5OiBmYWxzZSxcbiAgICAgICAgICAgIG11c3RPdmVycmlkZTogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZmllbGRDb3VudDogMixcbiAgICAgIH07XG4gICAgICBtb2NrQWRhcHRlclxuICAgICAgICAub25Qb3N0KFxuICAgICAgICAgICdodHRwczovL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEucmVzdC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tL2RhdGEvdjEvY3VzdG9tb2JqZWN0cycsXG4gICAgICAgIClcbiAgICAgICAgLnJlcGx5KDIwMCwgdmFsaWRSZXNwb25zZSk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzZm1jQ2xpZW50LmNyZWF0ZURhdGFFeHRlbnNpb24oe1xuICAgICAgICBuYW1lOiAndGVzdC1kZScsXG4gICAgICAgIGNhdGVnb3J5SUQ6ICcxMjM0NScsXG4gICAgICAgIGRhdGFSZXRlbnRpb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgaXNEZWxldGVBdEVuZE9mUmV0ZW50aW9uUGVyaW9kOiB0cnVlLFxuICAgICAgICAgIGlzUm93QmFzZWRSZXRlbnRpb246IGZhbHNlLFxuICAgICAgICAgIGlzUmVzZXRSZXRlbnRpb25QZXJpb2RPbkltcG9ydDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIGZpZWxkczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdrZXkxJyxcbiAgICAgICAgICAgIHR5cGU6ICdUZXh0JyxcbiAgICAgICAgICAgIGxlbmd0aDogMjU0LFxuICAgICAgICAgICAgaXNOdWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBpc1ByaW1hcnlLZXk6IHRydWUsXG4gICAgICAgICAgICBpc0hpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICBpc1JlYWRPbmx5OiBmYWxzZSxcbiAgICAgICAgICAgIGlzT3ZlcnJpZGFibGU6IHRydWUsXG4gICAgICAgICAgICBpc1RlbXBsYXRlRmllbGQ6IGZhbHNlLFxuICAgICAgICAgICAgaXNJbmhlcml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICBtdXN0T3ZlcnJpZGU6IGZhbHNlLFxuICAgICAgICAgICAgb3JkaW5hbDogMCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdrZXkyJyxcbiAgICAgICAgICAgIHR5cGU6ICdFbWFpbEFkZHJlc3MnLFxuICAgICAgICAgICAgbGVuZ3RoOiAyNTQsXG4gICAgICAgICAgICBpc051bGxhYmxlOiB0cnVlLFxuICAgICAgICAgICAgaXNQcmltYXJ5S2V5OiBmYWxzZSxcbiAgICAgICAgICAgIGlzSGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICAgIGlzUmVhZE9ubHk6IGZhbHNlLFxuICAgICAgICAgICAgaXNPdmVycmlkYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGlzVGVtcGxhdGVGaWVsZDogZmFsc2UsXG4gICAgICAgICAgICBpc0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIG11c3RPdmVycmlkZTogZmFsc2UsXG4gICAgICAgICAgICBvcmRpbmFsOiAwLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdCh1dGlscy5pc0V4cGlyZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHZhbGlkQXV0aE9iamVjdCk7XG4gICAgICBleHBlY3QocmVxdWVzdFRva2VuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9TdHJpY3RFcXVhbCh2YWxpZFJlc3BvbnNlKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBmYWlsdXJlIHNjZW5hcmlvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogJ3Rlc3QtY2xpZW50JyxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxJyxcbiAgICAgICAgYWNjZXNzX3Rva2VuOiAndmFsaWQtdG9rZW4nLFxuICAgICAgICBleHBpcmF0aW9uOiBwcm9jZXNzLmhydGltZSgpWzBdICsgMzYwMCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNmbWNDbGllbnQgPSBuZXcgU0ZNQyh2YWxpZEF1dGhPYmplY3QpO1xuXG4gICAgICBqZXN0LnNweU9uKHV0aWxzLCAnaXNFeHBpcmVkJykubW9ja1JldHVyblZhbHVlKGZhbHNlKTtcbiAgICAgIGNvbnN0IHJlcXVlc3RUb2tlblNweSA9IGplc3Quc3B5T24odXRpbHMsICdnZXRUb2tlbicpO1xuXG4gICAgICBjb25zdCBtb2NrQWRhcHRlciA9IG5ldyBBeGlvc01vY2tBZGFwdGVyKGF4aW9zLCB7IG9uTm9NYXRjaDogJ3Rocm93RXhjZXB0aW9uJyB9KTtcbiAgICAgIG1vY2tBZGFwdGVyXG4gICAgICAgIC5vblBvc3QoXG4gICAgICAgICAgJ2h0dHBzOi8vYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMS5yZXN0Lm1hcmtldGluZ2Nsb3VkYXBpcy5jb20vZGF0YS92MS9jdXN0b21vYmplY3RzJyxcbiAgICAgICAgKVxuICAgICAgICAucmVwbHkoNDAxLCB7XG4gICAgICAgICAgZG9jdW1lbnRhdGlvbjpcbiAgICAgICAgICAgICdodHRwczovL2RldmVsb3Blci5zYWxlc2ZvcmNlLmNvbS9kb2NzL2F0bGFzLmVuLXVzLm1jLWFwaXMubWV0YS9tYy1hcGlzL2Vycm9yLWhhbmRsaW5nLmh0bScsXG4gICAgICAgICAgZXJyb3Jjb2RlOiAwLFxuICAgICAgICAgIG1lc3NhZ2U6ICdOb3QgQXV0aG9yaXplZCcsXG4gICAgICAgIH0pO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgc2ZtY0NsaWVudC5jcmVhdGVEYXRhRXh0ZW5zaW9uKHtcbiAgICAgICAgICBuYW1lOiAndGVzdC1kZScsXG4gICAgICAgICAgY2F0ZWdvcnlJRDogJzEyMzQ1JyxcbiAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2tleTEnLFxuICAgICAgICAgICAgICB0eXBlOiAnVGV4dCcsXG4gICAgICAgICAgICAgIGxlbmd0aDogMjU0LFxuICAgICAgICAgICAgICBpc051bGxhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgaXNQcmltYXJ5S2V5OiB0cnVlLFxuICAgICAgICAgICAgICBpc0hpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICAgIGlzUmVhZE9ubHk6IGZhbHNlLFxuICAgICAgICAgICAgICBpc092ZXJyaWRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBpc1RlbXBsYXRlRmllbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICBpc0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgbXVzdE92ZXJyaWRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgb3JkaW5hbDogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGV4cGVjdChlKS50b0VxdWFsKG5ldyBFcnJvcignTm90IEF1dGhvcml6ZWQnKSk7XG4gICAgICB9XG4gICAgICBleHBlY3QodXRpbHMuaXNFeHBpcmVkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh2YWxpZEF1dGhPYmplY3QpO1xuICAgICAgZXhwZWN0KHJlcXVlc3RUb2tlblNweSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcbiAgfSk7XG4gIGRlc2NyaWJlKCdnZXRCdXNpbmVzc1VuaXRzJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZ2V0IGFsbCB0aGUgYnVzaW5lc3MgdW5pdHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZEF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgICBhY2Nlc3NfdG9rZW46ICd2YWxpZC10b2tlbicsXG4gICAgICAgIGV4cGlyYXRpb246IHByb2Nlc3MuaHJ0aW1lKClbMF0gKyAzNjAwLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc2ZtY0NsaWVudCA9IG5ldyBTRk1DKHZhbGlkQXV0aE9iamVjdCk7XG5cbiAgICAgIGplc3Quc3B5T24odXRpbHMsICdpc0V4cGlyZWQnKS5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuICAgICAgY29uc3QgcmVxdWVzdFRva2VuU3B5ID0gamVzdC5zcHlPbih1dGlscywgJ2dldFRva2VuJyk7XG5cbiAgICAgIGNvbnN0IG1vY2tBZGFwdGVyID0gbmV3IEF4aW9zTW9ja0FkYXB0ZXIoYXhpb3MsIHsgb25Ob01hdGNoOiAndGhyb3dFeGNlcHRpb24nIH0pO1xuICAgICAgY29uc3QgdmFsaWRSZXNwb25zZSA9IGA8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz48c29hcDpFbnZlbG9wZSB4bWxuczpzb2FwPVwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS9cIiB4bWxuczp4c2k9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiIHhtbG5zOnhzZD1cImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hXCIgeG1sbnM6d3NhPVwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nXCIgeG1sbnM6d3NzZT1cImh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL3dzcy8yMDA0LzAxL29hc2lzLTIwMDQwMS13c3Mtd3NzZWN1cml0eS1zZWNleHQtMS4wLnhzZFwiIHhtbG5zOndzdT1cImh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL3dzcy8yMDA0LzAxL29hc2lzLTIwMDQwMS13c3Mtd3NzZWN1cml0eS11dGlsaXR5LTEuMC54c2RcIj48c29hcDpIZWFkZXI+PHdzYTpBY3Rpb24+UmV0cmlldmVSZXNwb25zZTwvd3NhOkFjdGlvbj48d3NhOk1lc3NhZ2VJRD51cm46dXVpZDowYmVkNjAyYi02M2M0LTRiYjQtOTU4Mi0yYjI3YzhmMmIxZGE8L3dzYTpNZXNzYWdlSUQ+PHdzYTpSZWxhdGVzVG8+dXJuOnV1aWQ6NDVkY2MyNTEtYTAzNy00MTcyLTk5Y2UtNjY2YTZiM2I4NzJjPC93c2E6UmVsYXRlc1RvPjx3c2E6VG8+aHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nL3JvbGUvYW5vbnltb3VzPC93c2E6VG8+PHdzc2U6U2VjdXJpdHk+PHdzdTpUaW1lc3RhbXAgd3N1OklkPVwiVGltZXN0YW1wLWQwMzA4YWUyLTRhZGYtNDU3OC04ZDg1LWZhYTcyMGE5NjZjZVwiPjx3c3U6Q3JlYXRlZD4yMDI1LTAxLTA5VDA1OjUwOjEwWjwvd3N1OkNyZWF0ZWQ+PHdzdTpFeHBpcmVzPjIwMjUtMDEtMDlUMDU6NTU6MTBaPC93c3U6RXhwaXJlcz48L3dzdTpUaW1lc3RhbXA+PC93c3NlOlNlY3VyaXR5Pjwvc29hcDpIZWFkZXI+PHNvYXA6Qm9keT48UmV0cmlldmVSZXNwb25zZU1zZyB4bWxucz1cImh0dHA6Ly9leGFjdHRhcmdldC5jb20vd3NkbC9wYXJ0bmVyQVBJXCI+PE92ZXJhbGxTdGF0dXM+T0s8L092ZXJhbGxTdGF0dXM+PFJlcXVlc3RJRD5hYjk0N2NhYS0zNGJkLTRlNWItODRjMS01NGFiMWU2MzNhNmY8L1JlcXVlc3RJRD48UmVzdWx0cyB4c2k6dHlwZT1cIkJ1c2luZXNzVW5pdFwiPjxQYXJ0bmVyS2V5IHhzaTpuaWw9XCJ0cnVlXCIgLz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+aWQ8L05hbWU+PFZhbHVlPjUzNDAwMzIxMDwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+bmFtZTwvTmFtZT48VmFsdWU+TGFuc2Rvd25lIFN0YWRpdW0gTFA8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PE9iamVjdElEIHhzaTpuaWw9XCJ0cnVlXCIgLz48QWNjb3VudFR5cGU+Tm9uZTwvQWNjb3VudFR5cGU+PFN1YnNjcmlwdGlvbiB4c2k6bmlsPVwidHJ1ZVwiIC8+PC9SZXN1bHRzPjxSZXN1bHRzIHhzaTp0eXBlPVwiQnVzaW5lc3NVbml0XCI+PFBhcnRuZXJLZXkgeHNpOm5pbD1cInRydWVcIiAvPjxQYXJ0bmVyUHJvcGVydGllcz48TmFtZT5pZDwvTmFtZT48VmFsdWU+NTM0MDAzMjEwPC9WYWx1ZT48L1BhcnRuZXJQcm9wZXJ0aWVzPjxQYXJ0bmVyUHJvcGVydGllcz48TmFtZT5uYW1lPC9OYW1lPjxWYWx1ZT5MYW5zZG93bmUgU3RhZGl1bSBMUDwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48T2JqZWN0SUQgeHNpOm5pbD1cInRydWVcIiAvPjxBY2NvdW50VHlwZT5Ob25lPC9BY2NvdW50VHlwZT48U3Vic2NyaXB0aW9uIHhzaTpuaWw9XCJ0cnVlXCIgLz48L1Jlc3VsdHM+PC9SZXRyaWV2ZVJlc3BvbnNlTXNnPjwvc29hcDpCb2R5Pjwvc29hcDpFbnZlbG9wZT5gO1xuICAgICAgbW9ja0FkYXB0ZXJcbiAgICAgICAgLm9uUG9zdCgnaHR0cHM6Ly9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxLnNvYXAubWFya2V0aW5nY2xvdWRhcGlzLmNvbS9TZXJ2aWNlLmFzbXgnKVxuICAgICAgICAucmVwbHkoMjAwLCB2YWxpZFJlc3BvbnNlKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNmbWNDbGllbnQuZ2V0QnVzaW5lc3NVbml0cygpO1xuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmFsaWRBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdChyZXF1ZXN0VG9rZW5TcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKFtcbiAgICAgICAgeyBOYW1lOiAnTGFuc2Rvd25lIFN0YWRpdW0gTFAnLCBJRDogNTM0MDAzMjEwIH0sXG4gICAgICAgIHsgTmFtZTogJ0xhbnNkb3duZSBTdGFkaXVtIExQJywgSUQ6IDUzNDAwMzIxMCB9LFxuICAgICAgXSk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgZmFpbHVyZSBzY2VuYXJpbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkQXV0aE9iamVjdCA9IHtcbiAgICAgICAgY2xpZW50SWQ6ICd0ZXN0LWNsaWVudCcsXG4gICAgICAgIGNsaWVudFNlY3JldDogJ3Rlc3Qtc2VjcmV0JyxcbiAgICAgICAgc3ViRG9tYWluOiAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMScsXG4gICAgICAgIGFjY2Vzc190b2tlbjogJ3ZhbGlkLXRva2VuJyxcbiAgICAgICAgZXhwaXJhdGlvbjogcHJvY2Vzcy5ocnRpbWUoKVswXSArIDM2MDAsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzZm1jQ2xpZW50ID0gbmV3IFNGTUModmFsaWRBdXRoT2JqZWN0KTtcblxuICAgICAgamVzdC5zcHlPbih1dGlscywgJ2lzRXhwaXJlZCcpLm1vY2tSZXR1cm5WYWx1ZShmYWxzZSk7XG4gICAgICBjb25zdCByZXF1ZXN0VG9rZW5TcHkgPSBqZXN0LnNweU9uKHV0aWxzLCAnZ2V0VG9rZW4nKTtcblxuICAgICAgY29uc3QgbW9ja0FkYXB0ZXIgPSBuZXcgQXhpb3NNb2NrQWRhcHRlcihheGlvcywgeyBvbk5vTWF0Y2g6ICd0aHJvd0V4Y2VwdGlvbicgfSk7XG4gICAgICBtb2NrQWRhcHRlclxuICAgICAgICAub25Qb3N0KCdodHRwczovL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEuc29hcC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tL1NlcnZpY2UuYXNteCcpXG4gICAgICAgIC5yZXBseShcbiAgICAgICAgICA1MDAsXG4gICAgICAgICAgYDw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cInV0Zi04XCI/PlxuPHNvYXA6RW52ZWxvcGUgeG1sbnM6c29hcD1cImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvZW52ZWxvcGUvXCIgeG1sbnM6eHNpPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIiB4bWxuczp4c2Q9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYVwiIHhtbG5zOndzYT1cImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDQvMDgvYWRkcmVzc2luZ1wiIHhtbG5zOndzc2U9XCJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktc2VjZXh0LTEuMC54c2RcIiB4bWxuczp3c3U9XCJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktdXRpbGl0eS0xLjAueHNkXCI+XG4gICAgPHNvYXA6SGVhZGVyPlxuICAgICAgICA8d3NhOkFjdGlvbj5odHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA0LzA4L2FkZHJlc3NpbmcvZmF1bHQ8L3dzYTpBY3Rpb24+XG4gICAgICAgIDx3c2E6TWVzc2FnZUlEPnVybjp1dWlkOjE1ZDNlMjg2LTk3ZjUtNGY1Yy1iMGZhLWQ1ODY3MzYyMTU2ODwvd3NhOk1lc3NhZ2VJRD5cbiAgICAgICAgPHdzYTpSZWxhdGVzVG8+dXJuOnV1aWQ6YjM4ZWU4NWItOGY2Yi00ZWRjLTlhYjktMjNhYjZlNWE1MWUzPC93c2E6UmVsYXRlc1RvPlxuICAgICAgICA8d3NhOlRvPmh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDQvMDgvYWRkcmVzc2luZy9yb2xlL2Fub255bW91czwvd3NhOlRvPlxuICAgICAgICA8d3NzZTpTZWN1cml0eT5cbiAgICAgICAgICAgIDx3c3U6VGltZXN0YW1wIHdzdTpJZD1cIlRpbWVzdGFtcC1kYzAyZjhlOC1hZjc0LTQ3OTktYjVlOS05ZTljMDI5OTI3OGZcIj5cbiAgICAgICAgICAgICAgICA8d3N1OkNyZWF0ZWQ+MjAyNS0wMS0wM1QwNDo1OTo0NVo8L3dzdTpDcmVhdGVkPlxuICAgICAgICAgICAgICAgIDx3c3U6RXhwaXJlcz4yMDI1LTAxLTAzVDA1OjA0OjQ1Wjwvd3N1OkV4cGlyZXM+XG4gICAgICAgICAgICA8L3dzdTpUaW1lc3RhbXA+XG4gICAgICAgIDwvd3NzZTpTZWN1cml0eT5cbiAgICA8L3NvYXA6SGVhZGVyPlxuICAgIDxzb2FwOkJvZHk+XG4gICAgICAgIDxzb2FwOkZhdWx0PlxuICAgICAgICAgICAgPGZhdWx0Y29kZSB4bWxuczpxMD1cImh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL3dzcy8yMDA0LzAxL29hc2lzLTIwMDQwMS13c3Mtd3NzZWN1cml0eS1zZWNleHQtMS4wLnhzZFwiPnEwOlNlY3VyaXR5PC9mYXVsdGNvZGU+XG4gICAgICAgICAgICA8ZmF1bHRzdHJpbmc+TG9naW4gRmFpbGVkPC9mYXVsdHN0cmluZz5cbiAgICAgICAgICAgIDxmYXVsdGFjdG9yPmh0dHBzOi8vbWN2Z2txejNjMWNocmJzejU4Nms5MHM0MWhwOC5zb2FwLm1hcmtldGluZ2Nsb3VkYXBpcy5jb20vU2VydmljZS5hc214PC9mYXVsdGFjdG9yPlxuICAgICAgICA8L3NvYXA6RmF1bHQ+XG4gICAgPC9zb2FwOkJvZHk+XG48L3NvYXA6RW52ZWxvcGU+YCxcbiAgICAgICAgKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHNmbWNDbGllbnQuZ2V0QnVzaW5lc3NVbml0cygpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBleHBlY3QoZSkudG9FcXVhbChuZXcgRXJyb3IoJ1JlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgNTAwJykpO1xuICAgICAgfVxuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmFsaWRBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdChyZXF1ZXN0VG9rZW5TcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG4gIH0pO1xuICBkZXNjcmliZSgnZ2V0RGF0YUZvbGRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBnZXQgYWxsIHRoZSBkYXRhIGZvbGRlcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZEF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgICBhY2Nlc3NfdG9rZW46ICd2YWxpZC10b2tlbicsXG4gICAgICAgIGV4cGlyYXRpb246IHByb2Nlc3MuaHJ0aW1lKClbMF0gKyAzNjAwLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc2ZtY0NsaWVudCA9IG5ldyBTRk1DKHZhbGlkQXV0aE9iamVjdCk7XG5cbiAgICAgIGplc3Quc3B5T24odXRpbHMsICdpc0V4cGlyZWQnKS5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuICAgICAgY29uc3QgcmVxdWVzdFRva2VuU3B5ID0gamVzdC5zcHlPbih1dGlscywgJ2dldFRva2VuJyk7XG5cbiAgICAgIGNvbnN0IG1vY2tBZGFwdGVyID0gbmV3IEF4aW9zTW9ja0FkYXB0ZXIoYXhpb3MsIHsgb25Ob01hdGNoOiAndGhyb3dFeGNlcHRpb24nIH0pO1xuICAgICAgY29uc3QgdmFsaWRSZXNwb25zZSA9IGA8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiAgICAgICAgPHNvYXA6RW52ZWxvcGVcbiAgICAgICAgICB4bWxuczpzb2FwPVwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS9cIlxuICAgICAgICAgIHhtbG5zOnhzaT1cImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlXCJcbiAgICAgICAgICB4bWxuczp4c2Q9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYVwiXG4gICAgICAgICAgeG1sbnM6d3NhPVwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nXCJcbiAgICAgICAgICB4bWxuczp3c3NlPVwiaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvd3NzLzIwMDQvMDEvb2FzaXMtMjAwNDAxLXdzcy13c3NlY3VyaXR5LXNlY2V4dC0xLjAueHNkXCJcbiAgICAgICAgICB4bWxuczp3c3U9XCJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktdXRpbGl0eS0xLjAueHNkXCI+XG4gICAgICAgICAgPHNvYXA6SGVhZGVyPlxuICAgICAgICAgICAgPHdzYTpBY3Rpb24+UmV0cmlldmVSZXNwb25zZTwvd3NhOkFjdGlvbj5cbiAgICAgICAgICAgIDx3c2E6TWVzc2FnZUlEPnVybjp1dWlkOjFjZjRmZDcyLTkzYTktNDM2MC1hNzVjLTk4OGRjNzA4ZWI3Yzwvd3NhOk1lc3NhZ2VJRD5cbiAgICAgICAgICAgIDx3c2E6UmVsYXRlc1RvPnVybjp1dWlkOjUyN2ExM2E1LWE3OTgtNDQzOC1iMjNkLWI3ZmQwODRhYzk1Mzwvd3NhOlJlbGF0ZXNUbz5cbiAgICAgICAgICAgIDx3c2E6VG8+aHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nL3JvbGUvYW5vbnltb3VzPC93c2E6VG8+XG4gICAgICAgICAgICA8d3NzZTpTZWN1cml0eT5cbiAgICAgICAgICAgICAgPHdzdTpUaW1lc3RhbXAgd3N1OklkPVwiVGltZXN0YW1wLTlkN2M1NzA3LWU4ZWMtNGRiOC1iNTVlLTdjYmQyY2UyMmZhM1wiPlxuICAgICAgICAgICAgICAgIDx3c3U6Q3JlYXRlZD4yMDI1LTAxLTAzVDA1OjU0OjE2Wjwvd3N1OkNyZWF0ZWQ+XG4gICAgICAgICAgICAgICAgPHdzdTpFeHBpcmVzPjIwMjUtMDEtMDNUMDU6NTk6MTZaPC93c3U6RXhwaXJlcz5cbiAgICAgICAgICAgICAgPC93c3U6VGltZXN0YW1wPlxuICAgICAgICAgICAgPC93c3NlOlNlY3VyaXR5PlxuICAgICAgICAgIDwvc29hcDpIZWFkZXI+XG4gICAgICAgICAgPHNvYXA6Qm9keT5cbiAgICAgICAgICAgIDxSZXRyaWV2ZVJlc3BvbnNlTXNnXG4gICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL2V4YWN0dGFyZ2V0LmNvbS93c2RsL3BhcnRuZXJBUElcIj5cbiAgICAgICAgICAgICAgPE92ZXJhbGxTdGF0dXM+T0s8L092ZXJhbGxTdGF0dXM+XG4gICAgICAgICAgICAgIDxSZXF1ZXN0SUQ+NWQ5MTcwOGItMjVkMS00YjI3LTgwYTAtZGM4NGVmMGFhYzBjPC9SZXF1ZXN0SUQ+XG4gICAgICAgICAgICAgIDxSZXN1bHRzIHhzaTp0eXBlPVwiRGF0YUZvbGRlclwiPlxuICAgICAgICAgICAgICAgIDxDbGllbnQ+XG4gICAgICAgICAgICAgICAgICA8SUQ+NTM0MDAzMjEwPC9JRD5cbiAgICAgICAgICAgICAgICA8L0NsaWVudD5cbiAgICAgICAgICAgICAgICA8UGFydG5lcktleSB4c2k6bmlsPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICAgICAgPElEPjExNTQ2PC9JRD5cbiAgICAgICAgICAgICAgICA8T2JqZWN0SUQ+NGY1OTFjYTEtODIzNi00N2I4LTkyZmUtY2YwZGNmN2NmZmI1PC9PYmplY3RJRD5cbiAgICAgICAgICAgICAgICA8TmFtZT5teSBlbWFpbHM8L05hbWU+XG4gICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uIC8+XG4gICAgICAgICAgICAgICAgPENvbnRlbnRUeXBlPmVtYWlsPC9Db250ZW50VHlwZT5cbiAgICAgICAgICAgICAgPC9SZXN1bHRzPlxuICAgICAgICAgICAgICA8UmVzdWx0cyB4c2k6dHlwZT1cIkRhdGFGb2xkZXJcIj5cbiAgICAgICAgICAgICAgICA8Q2xpZW50PlxuICAgICAgICAgICAgICAgICAgPElEPjUzNDAwMzIxMDwvSUQ+XG4gICAgICAgICAgICAgICAgPC9DbGllbnQ+XG4gICAgICAgICAgICAgICAgPFBhcnRuZXJLZXkgeHNpOm5pbD1cInRydWVcIiAvPlxuICAgICAgICAgICAgICAgIDxJRD4xMTU0NzwvSUQ+XG4gICAgICAgICAgICAgICAgPE9iamVjdElEPjY5NWRkN2M2LWQ3NjQtNDc5ZC05ZTc3LTM2ZDE0MWNkZDM0MjwvT2JqZWN0SUQ+XG4gICAgICAgICAgICAgICAgPE5hbWU+c2ltcGxlIGF1dG9tYXRlZCBlbWFpbHM8L05hbWU+XG4gICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uIC8+XG4gICAgICAgICAgICAgICAgPENvbnRlbnRUeXBlPmF1dG9tYXRlZF9lbWFpbDwvQ29udGVudFR5cGU+XG4gICAgICAgICAgICAgIDwvUmVzdWx0cz5cbiAgICAgICAgICAgIDwvUmV0cmlldmVSZXNwb25zZU1zZz5cbiAgICAgICAgICA8L3NvYXA6Qm9keT5cbiAgICAgICAgPC9zb2FwOkVudmVsb3BlPmA7XG4gICAgICBtb2NrQWRhcHRlclxuICAgICAgICAub25Qb3N0KCdodHRwczovL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEuc29hcC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tL1NlcnZpY2UuYXNteCcpXG4gICAgICAgIC5yZXBseSgyMDAsIHZhbGlkUmVzcG9uc2UpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2ZtY0NsaWVudC5nZXREYXRhRm9sZGVycygpO1xuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmFsaWRBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdChyZXF1ZXN0VG9rZW5TcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKFtcbiAgICAgICAge1xuICAgICAgICAgIENsaWVudDoge1xuICAgICAgICAgICAgSUQ6IDUzNDAwMzIxMCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIENvbnRlbnRUeXBlOiAnZW1haWwnLFxuICAgICAgICAgIERlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICBJRDogMTE1NDYsXG4gICAgICAgICAgTmFtZTogJ215IGVtYWlscycsXG4gICAgICAgICAgT2JqZWN0SUQ6ICc0ZjU5MWNhMS04MjM2LTQ3YjgtOTJmZS1jZjBkY2Y3Y2ZmYjUnLFxuICAgICAgICAgIFBhcnRuZXJLZXk6ICcnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQ2xpZW50OiB7XG4gICAgICAgICAgICBJRDogNTM0MDAzMjEwLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgQ29udGVudFR5cGU6ICdhdXRvbWF0ZWRfZW1haWwnLFxuICAgICAgICAgIERlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICBJRDogMTE1NDcsXG4gICAgICAgICAgTmFtZTogJ3NpbXBsZSBhdXRvbWF0ZWQgZW1haWxzJyxcbiAgICAgICAgICBPYmplY3RJRDogJzY5NWRkN2M2LWQ3NjQtNDc5ZC05ZTc3LTM2ZDE0MWNkZDM0MicsXG4gICAgICAgICAgUGFydG5lcktleTogJycsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBmYWlsdXJlIHNjZW5hcmlvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRBdXRoT2JqZWN0ID0ge1xuICAgICAgICBjbGllbnRJZDogJ3Rlc3QtY2xpZW50JyxcbiAgICAgICAgY2xpZW50U2VjcmV0OiAndGVzdC1zZWNyZXQnLFxuICAgICAgICBzdWJEb21haW46ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxJyxcbiAgICAgICAgYWNjZXNzX3Rva2VuOiAndmFsaWQtdG9rZW4nLFxuICAgICAgICBleHBpcmF0aW9uOiBwcm9jZXNzLmhydGltZSgpWzBdICsgMzYwMCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNmbWNDbGllbnQgPSBuZXcgU0ZNQyh2YWxpZEF1dGhPYmplY3QpO1xuXG4gICAgICBqZXN0LnNweU9uKHV0aWxzLCAnaXNFeHBpcmVkJykubW9ja1JldHVyblZhbHVlKGZhbHNlKTtcbiAgICAgIGNvbnN0IHJlcXVlc3RUb2tlblNweSA9IGplc3Quc3B5T24odXRpbHMsICdnZXRUb2tlbicpO1xuXG4gICAgICBjb25zdCBtb2NrQWRhcHRlciA9IG5ldyBBeGlvc01vY2tBZGFwdGVyKGF4aW9zLCB7IG9uTm9NYXRjaDogJ3Rocm93RXhjZXB0aW9uJyB9KTtcbiAgICAgIG1vY2tBZGFwdGVyXG4gICAgICAgIC5vblBvc3QoJ2h0dHBzOi8vYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMS5zb2FwLm1hcmtldGluZ2Nsb3VkYXBpcy5jb20vU2VydmljZS5hc214JylcbiAgICAgICAgLnJlcGx5KFxuICAgICAgICAgIDUwMCxcbiAgICAgICAgICBgPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwidXRmLThcIj8+XG4gICAgICAgICAgPHNvYXA6RW52ZWxvcGUgeG1sbnM6c29hcD1cImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvZW52ZWxvcGUvXCIgeG1sbnM6eHNpPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIiB4bWxuczp4c2Q9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYVwiIHhtbG5zOndzYT1cImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDQvMDgvYWRkcmVzc2luZ1wiIHhtbG5zOndzc2U9XCJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktc2VjZXh0LTEuMC54c2RcIiB4bWxuczp3c3U9XCJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktdXRpbGl0eS0xLjAueHNkXCI+XG4gICAgICAgICAgICAgIDxzb2FwOkhlYWRlcj5cbiAgICAgICAgICAgICAgICAgIDx3c2E6QWN0aW9uPmh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDQvMDgvYWRkcmVzc2luZy9mYXVsdDwvd3NhOkFjdGlvbj5cbiAgICAgICAgICAgICAgICAgIDx3c2E6TWVzc2FnZUlEPnVybjp1dWlkOjE1ZDNlMjg2LTk3ZjUtNGY1Yy1iMGZhLWQ1ODY3MzYyMTU2ODwvd3NhOk1lc3NhZ2VJRD5cbiAgICAgICAgICAgICAgICAgIDx3c2E6UmVsYXRlc1RvPnVybjp1dWlkOmIzOGVlODViLThmNmItNGVkYy05YWI5LTIzYWI2ZTVhNTFlMzwvd3NhOlJlbGF0ZXNUbz5cbiAgICAgICAgICAgICAgICAgIDx3c2E6VG8+aHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nL3JvbGUvYW5vbnltb3VzPC93c2E6VG8+XG4gICAgICAgICAgICAgICAgICA8d3NzZTpTZWN1cml0eT5cbiAgICAgICAgICAgICAgICAgICAgICA8d3N1OlRpbWVzdGFtcCB3c3U6SWQ9XCJUaW1lc3RhbXAtZGMwMmY4ZTgtYWY3NC00Nzk5LWI1ZTktOWU5YzAyOTkyNzhmXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx3c3U6Q3JlYXRlZD4yMDI1LTAxLTAzVDA0OjU5OjQ1Wjwvd3N1OkNyZWF0ZWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx3c3U6RXhwaXJlcz4yMDI1LTAxLTAzVDA1OjA0OjQ1Wjwvd3N1OkV4cGlyZXM+XG4gICAgICAgICAgICAgICAgICAgICAgPC93c3U6VGltZXN0YW1wPlxuICAgICAgICAgICAgICAgICAgPC93c3NlOlNlY3VyaXR5PlxuICAgICAgICAgICAgICA8L3NvYXA6SGVhZGVyPlxuICAgICAgICAgICAgICA8c29hcDpCb2R5PlxuICAgICAgICAgICAgICAgICAgPHNvYXA6RmF1bHQ+XG4gICAgICAgICAgICAgICAgICAgICAgPGZhdWx0Y29kZSB4bWxuczpxMD1cImh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL3dzcy8yMDA0LzAxL29hc2lzLTIwMDQwMS13c3Mtd3NzZWN1cml0eS1zZWNleHQtMS4wLnhzZFwiPnEwOlNlY3VyaXR5PC9mYXVsdGNvZGU+XG4gICAgICAgICAgICAgICAgICAgICAgPGZhdWx0c3RyaW5nPkxvZ2luIEZhaWxlZDwvZmF1bHRzdHJpbmc+XG4gICAgICAgICAgICAgICAgICAgICAgPGZhdWx0YWN0b3I+aHR0cHM6Ly9tY3Zna3F6M2MxY2hyYnN6NTg2azkwczQxaHA4LnNvYXAubWFya2V0aW5nY2xvdWRhcGlzLmNvbS9TZXJ2aWNlLmFzbXg8L2ZhdWx0YWN0b3I+XG4gICAgICAgICAgICAgICAgICA8L3NvYXA6RmF1bHQ+XG4gICAgICAgICAgICAgIDwvc29hcDpCb2R5PlxuICAgICAgICAgIDwvc29hcDpFbnZlbG9wZT5gLFxuICAgICAgICApO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgc2ZtY0NsaWVudC5nZXREYXRhRm9sZGVycygpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBleHBlY3QoZSkudG9FcXVhbChuZXcgRXJyb3IoJ1JlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgNTAwJykpO1xuICAgICAgfVxuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmFsaWRBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdChyZXF1ZXN0VG9rZW5TcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG4gIH0pO1xuICBkZXNjcmliZSgnZ2V0RGF0YUV4dGVuc2lvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBnZXQgYWxsIHRoZSBkYXRhIGV4dGVuc2lvbnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZEF1dGhPYmplY3QgPSB7XG4gICAgICAgIGNsaWVudElkOiAndGVzdC1jbGllbnQnLFxuICAgICAgICBjbGllbnRTZWNyZXQ6ICd0ZXN0LXNlY3JldCcsXG4gICAgICAgIHN1YkRvbWFpbjogJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEnLFxuICAgICAgICBhY2Nlc3NfdG9rZW46ICd2YWxpZC10b2tlbicsXG4gICAgICAgIGV4cGlyYXRpb246IHByb2Nlc3MuaHJ0aW1lKClbMF0gKyAzNjAwLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc2ZtY0NsaWVudCA9IG5ldyBTRk1DKHZhbGlkQXV0aE9iamVjdCk7XG5cbiAgICAgIGplc3Quc3B5T24odXRpbHMsICdpc0V4cGlyZWQnKS5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuICAgICAgY29uc3QgcmVxdWVzdFRva2VuU3B5ID0gamVzdC5zcHlPbih1dGlscywgJ2dldFRva2VuJyk7XG5cbiAgICAgIGNvbnN0IG1vY2tBZGFwdGVyID0gbmV3IEF4aW9zTW9ja0FkYXB0ZXIoYXhpb3MsIHsgb25Ob01hdGNoOiAndGhyb3dFeGNlcHRpb24nIH0pO1xuICAgICAgY29uc3QgdmFsaWRSZXNwb25zZSA9IGA8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz48c29hcDpFbnZlbG9wZSB4bWxuczpzb2FwPVwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS9cIiB4bWxuczp4c2k9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiIHhtbG5zOnhzZD1cImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hXCIgeG1sbnM6d3NhPVwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nXCIgeG1sbnM6d3NzZT1cImh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL3dzcy8yMDA0LzAxL29hc2lzLTIwMDQwMS13c3Mtd3NzZWN1cml0eS1zZWNleHQtMS4wLnhzZFwiIHhtbG5zOndzdT1cImh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL3dzcy8yMDA0LzAxL29hc2lzLTIwMDQwMS13c3Mtd3NzZWN1cml0eS11dGlsaXR5LTEuMC54c2RcIj48c29hcDpIZWFkZXI+PHdzYTpBY3Rpb24+UmV0cmlldmVSZXNwb25zZTwvd3NhOkFjdGlvbj48d3NhOk1lc3NhZ2VJRD51cm46dXVpZDowMjE0ZDU5NS0zOWYyLTQyYmItYjE4Zi03ODJlM2FlYzkxMjU8L3dzYTpNZXNzYWdlSUQ+PHdzYTpSZWxhdGVzVG8+dXJuOnV1aWQ6OGM5ZjFmZTYtNTg0YS00OTJmLWFkMWUtYjYyODg3ZTZiMjdkPC93c2E6UmVsYXRlc1RvPjx3c2E6VG8+aHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNC8wOC9hZGRyZXNzaW5nL3JvbGUvYW5vbnltb3VzPC93c2E6VG8+PHdzc2U6U2VjdXJpdHk+PHdzdTpUaW1lc3RhbXAgd3N1OklkPVwiVGltZXN0YW1wLTc0OWM1YjkwLTdjM2UtNDA1ZS1hODkxLTRjYWI5YWEzMTlkNVwiPjx3c3U6Q3JlYXRlZD4yMDI1LTAxLTA5VDEwOjAxOjE1Wjwvd3N1OkNyZWF0ZWQ+PHdzdTpFeHBpcmVzPjIwMjUtMDEtMDlUMTA6MDY6MTVaPC93c3U6RXhwaXJlcz48L3dzdTpUaW1lc3RhbXA+PC93c3NlOlNlY3VyaXR5Pjwvc29hcDpIZWFkZXI+PHNvYXA6Qm9keT48UmV0cmlldmVSZXNwb25zZU1zZyB4bWxucz1cImh0dHA6Ly9leGFjdHRhcmdldC5jb20vd3NkbC9wYXJ0bmVyQVBJXCI+PE92ZXJhbGxTdGF0dXM+T0s8L092ZXJhbGxTdGF0dXM+PFJlcXVlc3RJRD4yNjEyMzg0Ni00MDQ2LTQzMGItODlkYy05ZTVjMmViNTg3ZmQ8L1JlcXVlc3RJRD48UmVzdWx0cyB4c2k6dHlwZT1cIkRhdGFFeHRlbnNpb25cIj48UGFydG5lcktleSB4c2k6bmlsPVwidHJ1ZVwiIC8+PFBhcnRuZXJQcm9wZXJ0aWVzPjxOYW1lPk9iamVjdElkPC9OYW1lPjxWYWx1ZT5iMzBlMjZkYi01ZTU5LWVmMTEtYmE2ZC1mNDAzNDNjZTg5ZDg8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PFBhcnRuZXJQcm9wZXJ0aWVzPjxOYW1lPk5BTUU8L05hbWU+PFZhbHVlPnJ1ZGRlcnN0YWNrVGVzdGluZzEzMzQyPC9WYWx1ZT48L1BhcnRuZXJQcm9wZXJ0aWVzPjxQYXJ0bmVyUHJvcGVydGllcz48TmFtZT5DYXRlZ29yeUlkPC9OYW1lPjxWYWx1ZT4xMjM0NTwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48T2JqZWN0SUQgeHNpOm5pbD1cInRydWVcIiAvPjwvUmVzdWx0cz48UmVzdWx0cyB4c2k6dHlwZT1cIkRhdGFFeHRlbnNpb25cIj48UGFydG5lcktleSB4c2k6bmlsPVwidHJ1ZVwiIC8+PFBhcnRuZXJQcm9wZXJ0aWVzPjxOYW1lPk9iamVjdElkPC9OYW1lPjxWYWx1ZT4xOTFjNWIyYS01N2I4LWVmMTEtYmE2ZS1mNDAzNDNkMzgwYzg8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PFBhcnRuZXJQcm9wZXJ0aWVzPjxOYW1lPk5BTUU8L05hbWU+PFZhbHVlPlRlc3RGcm9tU0RLMTIzNDwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+Q2F0ZWdvcnlJZDwvTmFtZT48VmFsdWU+MTIzNDU8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PE9iamVjdElEIHhzaTpuaWw9XCJ0cnVlXCIgLz48L1Jlc3VsdHM+PFJlc3VsdHMgeHNpOnR5cGU9XCJEYXRhRXh0ZW5zaW9uXCI+PFBhcnRuZXJLZXkgeHNpOm5pbD1cInRydWVcIiAvPjxQYXJ0bmVyUHJvcGVydGllcz48TmFtZT5PYmplY3RJZDwvTmFtZT48VmFsdWU+NTAzODU2ZTMtNWFiOC1lZjExLWJhNmUtZjQwMzQzZDM4MGM4PC9WYWx1ZT48L1BhcnRuZXJQcm9wZXJ0aWVzPjxQYXJ0bmVyUHJvcGVydGllcz48TmFtZT5OQU1FPC9OYW1lPjxWYWx1ZT5ydWRkZXJzdGFja1Rlc3RpbmcxMjExMjA8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PFBhcnRuZXJQcm9wZXJ0aWVzPjxOYW1lPkNhdGVnb3J5SWQ8L05hbWU+PFZhbHVlPjEyMzQ1PC9WYWx1ZT48L1BhcnRuZXJQcm9wZXJ0aWVzPjxPYmplY3RJRCB4c2k6bmlsPVwidHJ1ZVwiIC8+PC9SZXN1bHRzPjxSZXN1bHRzIHhzaTp0eXBlPVwiRGF0YUV4dGVuc2lvblwiPjxQYXJ0bmVyS2V5IHhzaTpuaWw9XCJ0cnVlXCIgLz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+T2JqZWN0SWQ8L05hbWU+PFZhbHVlPjE3NDJmNmYxLTc5YjgtZWYxMS1iYTZlLWY0MDM0M2QzODBjODwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+TkFNRTwvTmFtZT48VmFsdWU+cnVkZGVyc3RhY2tUZXN0aW5nMTI0NDI8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PFBhcnRuZXJQcm9wZXJ0aWVzPjxOYW1lPkNhdGVnb3J5SWQ8L05hbWU+PFZhbHVlPjEyMzQ1PC9WYWx1ZT48L1BhcnRuZXJQcm9wZXJ0aWVzPjxPYmplY3RJRCB4c2k6bmlsPVwidHJ1ZVwiIC8+PC9SZXN1bHRzPjxSZXN1bHRzIHhzaTp0eXBlPVwiRGF0YUV4dGVuc2lvblwiPjxQYXJ0bmVyS2V5IHhzaTpuaWw9XCJ0cnVlXCIgLz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+T2JqZWN0SWQ8L05hbWU+PFZhbHVlPjRiYWY0Y2YxLThjYzktZWYxMS1iYTZlLWY0MDM0M2QzODBjODwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+TkFNRTwvTmFtZT48VmFsdWU+cnVkZGVyc3RhY2tUZXN0aW5nMDI5NTwvVmFsdWU+PC9QYXJ0bmVyUHJvcGVydGllcz48UGFydG5lclByb3BlcnRpZXM+PE5hbWU+Q2F0ZWdvcnlJZDwvTmFtZT48VmFsdWU+MTIzNDU8L1ZhbHVlPjwvUGFydG5lclByb3BlcnRpZXM+PE9iamVjdElEIHhzaTpuaWw9XCJ0cnVlXCIgLz48L1Jlc3VsdHM+PC9SZXRyaWV2ZVJlc3BvbnNlTXNnPjwvc29hcDpCb2R5Pjwvc29hcDpFbnZlbG9wZT5gO1xuICAgICAgbW9ja0FkYXB0ZXJcbiAgICAgICAgLm9uUG9zdCgnaHR0cHM6Ly9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxLnNvYXAubWFya2V0aW5nY2xvdWRhcGlzLmNvbS9TZXJ2aWNlLmFzbXgnKVxuICAgICAgICAucmVwbHkoMjAwLCB2YWxpZFJlc3BvbnNlKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNmbWNDbGllbnQuZ2V0RGF0YUV4dGVuc2lvbnMoJ3ZhbGlkLWZvbGRlci1pZCcpO1xuICAgICAgZXhwZWN0KHV0aWxzLmlzRXhwaXJlZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmFsaWRBdXRoT2JqZWN0KTtcbiAgICAgIGV4cGVjdChyZXF1ZXN0VG9rZW5TcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b1N0cmljdEVxdWFsKFtcbiAgICAgICAge1xuICAgICAgICAgIENhdGVnb3J5SWQ6IDEyMzQ1LFxuICAgICAgICAgIE5hbWU6ICdydWRkZXJzdGFja1Rlc3RpbmcxMzM0MicsXG4gICAgICAgICAgT2JqZWN0SWQ6ICdiMzBlMjZkYi01ZTU5LWVmMTEtYmE2ZC1mNDAzNDNjZTg5ZDgnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQ2F0ZWdvcnlJZDogMTIzNDUsXG4gICAgICAgICAgTmFtZTogJ1Rlc3RGcm9tU0RLMTIzNCcsXG4gICAgICAgICAgT2JqZWN0SWQ6ICcxOTFjNWIyYS01N2I4LWVmMTEtYmE2ZS1mNDAzNDNkMzgwYzgnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQ2F0ZWdvcnlJZDogMTIzNDUsXG4gICAgICAgICAgTmFtZTogJ3J1ZGRlcnN0YWNrVGVzdGluZzEyMTEyMCcsXG4gICAgICAgICAgT2JqZWN0SWQ6ICc1MDM4NTZlMy01YWI4LWVmMTEtYmE2ZS1mNDAzNDNkMzgwYzgnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgQ2F0ZWdvcnlJZDogMTIzNDUsXG4gICAgICAgICAgTmFtZTogJ3J1ZGRlcnN0YWNrVGVzdGluZzEyNDQyJyxcbiAgICAgICAgICBPYmplY3RJZDogJzE3NDJmNmYxLTc5YjgtZWYxMS1iYTZlLWY0MDM0M2QzODBjOCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBDYXRlZ29yeUlkOiAxMjM0NSxcbiAgICAgICAgICBOYW1lOiAncnVkZGVyc3RhY2tUZXN0aW5nMDI5NScsXG4gICAgICAgICAgT2JqZWN0SWQ6ICc0YmFmNGNmMS04Y2M5LWVmMTEtYmE2ZS1mNDAzNDNkMzgwYzgnLFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgZmFpbHVyZSBzY2VuYXJpbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkQXV0aE9iamVjdCA9IHtcbiAgICAgICAgY2xpZW50SWQ6ICd0ZXN0LWNsaWVudCcsXG4gICAgICAgIGNsaWVudFNlY3JldDogJ3Rlc3Qtc2VjcmV0JyxcbiAgICAgICAgc3ViRG9tYWluOiAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMScsXG4gICAgICAgIGFjY2Vzc190b2tlbjogJ3ZhbGlkLXRva2VuJyxcbiAgICAgICAgZXhwaXJhdGlvbjogcHJvY2Vzcy5ocnRpbWUoKVswXSArIDM2MDAsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzZm1jQ2xpZW50ID0gbmV3IFNGTUModmFsaWRBdXRoT2JqZWN0KTtcblxuICAgICAgamVzdC5zcHlPbih1dGlscywgJ2lzRXhwaXJlZCcpLm1vY2tSZXR1cm5WYWx1ZShmYWxzZSk7XG4gICAgICBjb25zdCByZXF1ZXN0VG9rZW5TcHkgPSBqZXN0LnNweU9uKHV0aWxzLCAnZ2V0VG9rZW4nKTtcblxuICAgICAgY29uc3QgbW9ja0FkYXB0ZXIgPSBuZXcgQXhpb3NNb2NrQWRhcHRlcihheGlvcywgeyBvbk5vTWF0Y2g6ICd0aHJvd0V4Y2VwdGlvbicgfSk7XG4gICAgICBtb2NrQWRhcHRlclxuICAgICAgICAub25Qb3N0KCdodHRwczovL2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEuc29hcC5tYXJrZXRpbmdjbG91ZGFwaXMuY29tL1NlcnZpY2UuYXNteCcpXG4gICAgICAgIC5yZXBseShcbiAgICAgICAgICA1MDAsXG4gICAgICAgICAgYDw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cInV0Zi04XCI/PlxuICAgICAgICAgIDxzb2FwOkVudmVsb3BlIHhtbG5zOnNvYXA9XCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy9zb2FwL2VudmVsb3BlL1wiIHhtbG5zOnhzaT1cImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlXCIgeG1sbnM6eHNkPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWFcIiB4bWxuczp3c2E9XCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA0LzA4L2FkZHJlc3NpbmdcIiB4bWxuczp3c3NlPVwiaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvd3NzLzIwMDQvMDEvb2FzaXMtMjAwNDAxLXdzcy13c3NlY3VyaXR5LXNlY2V4dC0xLjAueHNkXCIgeG1sbnM6d3N1PVwiaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvd3NzLzIwMDQvMDEvb2FzaXMtMjAwNDAxLXdzcy13c3NlY3VyaXR5LXV0aWxpdHktMS4wLnhzZFwiPlxuICAgICAgICAgICAgICA8c29hcDpIZWFkZXI+XG4gICAgICAgICAgICAgICAgICA8d3NhOkFjdGlvbj5odHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA0LzA4L2FkZHJlc3NpbmcvZmF1bHQ8L3dzYTpBY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8d3NhOk1lc3NhZ2VJRD51cm46dXVpZDoxNWQzZTI4Ni05N2Y1LTRmNWMtYjBmYS1kNTg2NzM2MjE1Njg8L3dzYTpNZXNzYWdlSUQ+XG4gICAgICAgICAgICAgICAgICA8d3NhOlJlbGF0ZXNUbz51cm46dXVpZDpiMzhlZTg1Yi04ZjZiLTRlZGMtOWFiOS0yM2FiNmU1YTUxZTM8L3dzYTpSZWxhdGVzVG8+XG4gICAgICAgICAgICAgICAgICA8d3NhOlRvPmh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDQvMDgvYWRkcmVzc2luZy9yb2xlL2Fub255bW91czwvd3NhOlRvPlxuICAgICAgICAgICAgICAgICAgPHdzc2U6U2VjdXJpdHk+XG4gICAgICAgICAgICAgICAgICAgICAgPHdzdTpUaW1lc3RhbXAgd3N1OklkPVwiVGltZXN0YW1wLWRjMDJmOGU4LWFmNzQtNDc5OS1iNWU5LTllOWMwMjk5Mjc4ZlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8d3N1OkNyZWF0ZWQ+MjAyNS0wMS0wM1QwNDo1OTo0NVo8L3dzdTpDcmVhdGVkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8d3N1OkV4cGlyZXM+MjAyNS0wMS0wM1QwNTowNDo0NVo8L3dzdTpFeHBpcmVzPlxuICAgICAgICAgICAgICAgICAgICAgIDwvd3N1OlRpbWVzdGFtcD5cbiAgICAgICAgICAgICAgICAgIDwvd3NzZTpTZWN1cml0eT5cbiAgICAgICAgICAgICAgPC9zb2FwOkhlYWRlcj5cbiAgICAgICAgICAgICAgPHNvYXA6Qm9keT5cbiAgICAgICAgICAgICAgICAgIDxzb2FwOkZhdWx0PlxuICAgICAgICAgICAgICAgICAgICAgIDxmYXVsdGNvZGUgeG1sbnM6cTA9XCJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktc2VjZXh0LTEuMC54c2RcIj5xMDpTZWN1cml0eTwvZmF1bHRjb2RlPlxuICAgICAgICAgICAgICAgICAgICAgIDxmYXVsdHN0cmluZz5Mb2dpbiBGYWlsZWQ8L2ZhdWx0c3RyaW5nPlxuICAgICAgICAgICAgICAgICAgICAgIDxmYXVsdGFjdG9yPmh0dHBzOi8vbWN2Z2txejNjMWNocmJzejU4Nms5MHM0MWhwOC5zb2FwLm1hcmtldGluZ2Nsb3VkYXBpcy5jb20vU2VydmljZS5hc214PC9mYXVsdGFjdG9yPlxuICAgICAgICAgICAgICAgICAgPC9zb2FwOkZhdWx0PlxuICAgICAgICAgICAgICA8L3NvYXA6Qm9keT5cbiAgICAgICAgICA8L3NvYXA6RW52ZWxvcGU+YCxcbiAgICAgICAgKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHNmbWNDbGllbnQuZ2V0RGF0YUV4dGVuc2lvbnMoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgZXhwZWN0KGUpLnRvRXF1YWwobmV3IEVycm9yKCdSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlIDUwMCcpKTtcbiAgICAgIH1cbiAgICAgIGV4cGVjdCh1dGlscy5pc0V4cGlyZWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHZhbGlkQXV0aE9iamVjdCk7XG4gICAgICBleHBlY3QocmVxdWVzdFRva2VuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -78,14 +78,17 @@ export interface CreateDataExtensionResponse extends Omit<DataExtensionFields, '
78
78
  key: string;
79
79
  name: string;
80
80
  }
81
+ interface PartnerPropertyID {
82
+ Name: 'id';
83
+ Value: number;
84
+ }
85
+ interface PartnerPropertyName {
86
+ Name: 'name';
87
+ Value: string;
88
+ }
89
+ export type PartnerProperty = PartnerPropertyName | PartnerPropertyID;
81
90
  export interface BusinessUnitResponse {
82
- PartnerProperties: [{
83
- Name: string;
84
- Value: string;
85
- }, {
86
- Name: string;
87
- Value: number;
88
- }];
91
+ PartnerProperties: PartnerProperty[];
89
92
  }
90
93
  export interface DataExtensionResponse {
91
94
  PartnerProperties: [
@@ -108,4 +111,5 @@ export interface SoapResponseBody {
108
111
  Results: BusinessUnitResponse | BusinessUnitResponse[] | DataFolder | DataFolder[] | DataExtensionResponse | DataExtensionResponse[];
109
112
  };
110
113
  }
114
+ export {};
111
115
  //# sourceMappingURL=type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../src/sdks/sfmc/type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../src/sdks/sfmc/type.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZGtzL3NmbWMvdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBdXRoT2JqZWN0IHtcbiAgY2xpZW50SWQ6IHN0cmluZztcbiAgY2xpZW50U2VjcmV0OiBzdHJpbmc7XG4gIHN1YkRvbWFpbjogc3RyaW5nO1xuICBleHBpcmF0aW9uPzogbnVtYmVyO1xuICBhY2Nlc3NfdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyT2JqIHtcbiAgbGVmdE9wZXJhbmQ6IHN0cmluZztcbiAgcmlnaHRPcGVyYW5kOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkcyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBzY2FsZT86IG51bWJlcjtcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xuICBsZW5ndGg6IG51bWJlcjtcbiAgaXNOdWxsYWJsZTogYm9vbGVhbjtcbiAgaXNQcmltYXJ5S2V5OiBib29sZWFuO1xuICBpc0hpZGRlbjogYm9vbGVhbjtcbiAgaXNSZWFkT25seTogYm9vbGVhbjtcbiAgaXNPdmVycmlkYWJsZTogYm9vbGVhbjtcbiAgaXNUZW1wbGF0ZUZpZWxkOiBib29sZWFuO1xuICBpc0luaGVyaXRhYmxlOiBib29sZWFuO1xuICBtdXN0T3ZlcnJpZGU6IGJvb2xlYW47XG4gIG9yZGluYWw6IDA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUV4dGVuc2lvbkJvZHkge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNhdGVnb3J5SUQ6IHN0cmluZztcbiAgZGF0YVJldGVudGlvblByb3BlcnRpZXM/OiB7XG4gICAgaXNEZWxldGVBdEVuZE9mUmV0ZW50aW9uUGVyaW9kPzogYm9vbGVhbjtcbiAgICBpc1Jvd0Jhc2VkUmV0ZW50aW9uPzogYm9vbGVhbjtcbiAgICBpc1Jlc2V0UmV0ZW50aW9uUGVyaW9kT25JbXBvcnQ/OiBib29sZWFuO1xuICB9O1xuICBmaWVsZHM6IEZpZWxkc1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzVW5pdCB7XG4gIE5hbWU6IHN0cmluZztcbiAgSUQ6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUZvbGRlciB7XG4gIFBhcnRuZXJLZXk6IHN0cmluZztcbiAgSUQ6IG51bWJlcjtcbiAgT2JqZWN0SUQ6IHN0cmluZztcbiAgUGFyZW50Rm9sZGVyOiB7XG4gICAgUGFydG5lcktleTogc3RyaW5nO1xuICAgIElEOiBudW1iZXI7XG4gICAgT2JqZWN0SUQ6IHN0cmluZztcbiAgfTtcbiAgTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFFeHRlbnNpb24ge1xuICBOYW1lOiBzdHJpbmc7XG4gIE9iamVjdElkOiBzdHJpbmc7XG4gIENhdGVnb3J5SWQ6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdEF0dHJpYnV0ZXNSZXNwb25zZSB7XG4gIGl0ZW1zOiBbXG4gICAge1xuICAgICAgaXNSZWFkT25seTogYm9vbGVhbjtcbiAgICAgIGF0dHJpYnV0ZXM6IFt7IGlzUmVhZE9ubHk6IGJvb2xlYW47IGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nOyBkYXRhVHlwZTogc3RyaW5nIH1dO1xuICAgIH0sXG4gIF07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUV4dGVuc2lvbkZpZWxkcyB7XG4gIGZpZWxkczogRmllbGRzW107XG4gIGZpZWxkQ291bnQ6IG51bWJlcjtcbiAgZmllbGRQYWdlOiBudW1iZXI7XG4gIGZpZWxkUGFnZVNpemU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVEYXRhRXh0ZW5zaW9uUmVzcG9uc2VcbiAgZXh0ZW5kcyBPbWl0PERhdGFFeHRlbnNpb25GaWVsZHMsICdmaWVsc1BhZ2UnIHwgJ2ZpZWxkUGFnZVNpemUnPiB7XG4gIGlkOiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzVW5pdFJlc3BvbnNlIHtcbiAgUGFydG5lclByb3BlcnRpZXM6IFt7IE5hbWU6IHN0cmluZzsgVmFsdWU6IHN0cmluZyB9LCB7IE5hbWU6IHN0cmluZzsgVmFsdWU6IG51bWJlciB9XTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhRXh0ZW5zaW9uUmVzcG9uc2Uge1xuICBQYXJ0bmVyUHJvcGVydGllczogW1xuICAgIHsgTmFtZTogc3RyaW5nOyBWYWx1ZTogc3RyaW5nIH0sXG4gICAgeyBOYW1lOiBzdHJpbmc7IFZhbHVlOiBzdHJpbmcgfSxcbiAgICB7IE5hbWU6IHN0cmluZzsgVmFsdWU6IG51bWJlciB9LFxuICBdO1xufVxuZXhwb3J0IGludGVyZmFjZSBTb2FwUmVzcG9uc2VCb2R5IHtcbiAgUmV0cmlldmVSZXNwb25zZU1zZzoge1xuICAgIFJlc3VsdHM6XG4gICAgICB8IEJ1c2luZXNzVW5pdFJlc3BvbnNlXG4gICAgICB8IEJ1c2luZXNzVW5pdFJlc3BvbnNlW11cbiAgICAgIHwgRGF0YUZvbGRlclxuICAgICAgfCBEYXRhRm9sZGVyW11cbiAgICAgIHwgRGF0YUV4dGVuc2lvblJlc3BvbnNlXG4gICAgICB8IERhdGFFeHRlbnNpb25SZXNwb25zZVtdO1xuICB9O1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZGtzL3NmbWMvdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBdXRoT2JqZWN0IHtcbiAgY2xpZW50SWQ6IHN0cmluZztcbiAgY2xpZW50U2VjcmV0OiBzdHJpbmc7XG4gIHN1YkRvbWFpbjogc3RyaW5nO1xuICBleHBpcmF0aW9uPzogbnVtYmVyO1xuICBhY2Nlc3NfdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyT2JqIHtcbiAgbGVmdE9wZXJhbmQ6IHN0cmluZztcbiAgcmlnaHRPcGVyYW5kOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkcyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBzY2FsZT86IG51bWJlcjtcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xuICBsZW5ndGg6IG51bWJlcjtcbiAgaXNOdWxsYWJsZTogYm9vbGVhbjtcbiAgaXNQcmltYXJ5S2V5OiBib29sZWFuO1xuICBpc0hpZGRlbjogYm9vbGVhbjtcbiAgaXNSZWFkT25seTogYm9vbGVhbjtcbiAgaXNPdmVycmlkYWJsZTogYm9vbGVhbjtcbiAgaXNUZW1wbGF0ZUZpZWxkOiBib29sZWFuO1xuICBpc0luaGVyaXRhYmxlOiBib29sZWFuO1xuICBtdXN0T3ZlcnJpZGU6IGJvb2xlYW47XG4gIG9yZGluYWw6IDA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUV4dGVuc2lvbkJvZHkge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNhdGVnb3J5SUQ6IHN0cmluZztcbiAgZGF0YVJldGVudGlvblByb3BlcnRpZXM/OiB7XG4gICAgaXNEZWxldGVBdEVuZE9mUmV0ZW50aW9uUGVyaW9kPzogYm9vbGVhbjtcbiAgICBpc1Jvd0Jhc2VkUmV0ZW50aW9uPzogYm9vbGVhbjtcbiAgICBpc1Jlc2V0UmV0ZW50aW9uUGVyaW9kT25JbXBvcnQ/OiBib29sZWFuO1xuICB9O1xuICBmaWVsZHM6IEZpZWxkc1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzVW5pdCB7XG4gIE5hbWU6IHN0cmluZztcbiAgSUQ6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUZvbGRlciB7XG4gIFBhcnRuZXJLZXk6IHN0cmluZztcbiAgSUQ6IG51bWJlcjtcbiAgT2JqZWN0SUQ6IHN0cmluZztcbiAgUGFyZW50Rm9sZGVyOiB7XG4gICAgUGFydG5lcktleTogc3RyaW5nO1xuICAgIElEOiBudW1iZXI7XG4gICAgT2JqZWN0SUQ6IHN0cmluZztcbiAgfTtcbiAgTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFFeHRlbnNpb24ge1xuICBOYW1lOiBzdHJpbmc7XG4gIE9iamVjdElkOiBzdHJpbmc7XG4gIENhdGVnb3J5SWQ6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdEF0dHJpYnV0ZXNSZXNwb25zZSB7XG4gIGl0ZW1zOiBbXG4gICAge1xuICAgICAgaXNSZWFkT25seTogYm9vbGVhbjtcbiAgICAgIGF0dHJpYnV0ZXM6IFt7IGlzUmVhZE9ubHk6IGJvb2xlYW47IGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nOyBkYXRhVHlwZTogc3RyaW5nIH1dO1xuICAgIH0sXG4gIF07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUV4dGVuc2lvbkZpZWxkcyB7XG4gIGZpZWxkczogRmllbGRzW107XG4gIGZpZWxkQ291bnQ6IG51bWJlcjtcbiAgZmllbGRQYWdlOiBudW1iZXI7XG4gIGZpZWxkUGFnZVNpemU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVEYXRhRXh0ZW5zaW9uUmVzcG9uc2VcbiAgZXh0ZW5kcyBPbWl0PERhdGFFeHRlbnNpb25GaWVsZHMsICdmaWVsc1BhZ2UnIHwgJ2ZpZWxkUGFnZVNpemUnPiB7XG4gIGlkOiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBQYXJ0bmVyUHJvcGVydHlJRCB7XG4gIE5hbWU6ICdpZCc7XG4gIFZhbHVlOiBudW1iZXI7XG59XG5pbnRlcmZhY2UgUGFydG5lclByb3BlcnR5TmFtZSB7XG4gIE5hbWU6ICduYW1lJztcbiAgVmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUGFydG5lclByb3BlcnR5ID0gUGFydG5lclByb3BlcnR5TmFtZSB8IFBhcnRuZXJQcm9wZXJ0eUlEO1xuZXhwb3J0IGludGVyZmFjZSBCdXNpbmVzc1VuaXRSZXNwb25zZSB7XG4gIFBhcnRuZXJQcm9wZXJ0aWVzOiBQYXJ0bmVyUHJvcGVydHlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhRXh0ZW5zaW9uUmVzcG9uc2Uge1xuICBQYXJ0bmVyUHJvcGVydGllczogW1xuICAgIHsgTmFtZTogc3RyaW5nOyBWYWx1ZTogc3RyaW5nIH0sXG4gICAgeyBOYW1lOiBzdHJpbmc7IFZhbHVlOiBzdHJpbmcgfSxcbiAgICB7IE5hbWU6IHN0cmluZzsgVmFsdWU6IG51bWJlciB9LFxuICBdO1xufVxuZXhwb3J0IGludGVyZmFjZSBTb2FwUmVzcG9uc2VCb2R5IHtcbiAgUmV0cmlldmVSZXNwb25zZU1zZzoge1xuICAgIFJlc3VsdHM6XG4gICAgICB8IEJ1c2luZXNzVW5pdFJlc3BvbnNlXG4gICAgICB8IEJ1c2luZXNzVW5pdFJlc3BvbnNlW11cbiAgICAgIHwgRGF0YUZvbGRlclxuICAgICAgfCBEYXRhRm9sZGVyW11cbiAgICAgIHwgRGF0YUV4dGVuc2lvblJlc3BvbnNlXG4gICAgICB8IERhdGFFeHRlbnNpb25SZXNwb25zZVtdO1xuICB9O1xufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rudderstack/integrations-lib",
3
- "version": "0.2.25",
3
+ "version": "0.2.26",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "module": "build/index.js",