cdk-nuxt 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -118,7 +118,7 @@ const app = nuxt.server.app;
118
118
  let serverlessExpressInstance = null;
119
119
  async function initNuxt(event, context) {
120
120
  await nuxt.ready();
121
- serverlessExpressInstance = serverlessExpress({ app, eventSourceName: 'AWS_API_GATEWAY_V2' })
121
+ serverlessExpressInstance = serverlessExpress({ app })
122
122
 
123
123
  return serverlessExpressInstance(event, context)
124
124
  }
@@ -12,7 +12,7 @@ const app = nuxt.server.app;
12
12
  let serverlessExpressInstance = null;
13
13
  async function initNuxt(event, context) {
14
14
  await nuxt.ready();
15
- serverlessExpressInstance = serverlessExpress({ app, eventSourceName: 'AWS_API_GATEWAY_V2' })
15
+ serverlessExpressInstance = serverlessExpress({ app })
16
16
 
17
17
  return serverlessExpressInstance(event, context)
18
18
  }
@@ -34,7 +34,7 @@ class NuxtAppStack extends aws_cdk_lib_1.Stack {
34
34
  this.cdn = this.createCloudFrontDistribution(props);
35
35
  this.configureDeployments();
36
36
  this.createDnsRecords(props);
37
- this.createPingRule();
37
+ this.createPingRule(props);
38
38
  }
39
39
  /**
40
40
  * Creates the identity to access the S3 deployment asset files via the CloudFront distribution.
@@ -300,15 +300,32 @@ class NuxtAppStack extends aws_cdk_lib_1.Stack {
300
300
  *
301
301
  * @private
302
302
  */
303
- createPingRule() {
303
+ createPingRule(props) {
304
+ const fakeApiGatewayEventData = {
305
+ "version": "2.0",
306
+ "routeKey": "GET /{proxy+}",
307
+ "rawPath": "/",
308
+ "rawQueryString": "",
309
+ "headers": {},
310
+ "requestContext": {
311
+ "domainName": props.domain,
312
+ "http": {
313
+ "method": "GET",
314
+ "path": "/",
315
+ "protocol": "HTTP/1.1"
316
+ }
317
+ }
318
+ };
304
319
  new aws_events_1.Rule(this, `${this.resourceIdPrefix}-pinger-rule`, {
305
320
  ruleName: `${this.resourceIdPrefix}-pinger`,
306
321
  description: `Pings the Lambda function of the ${this.resourceIdPrefix} app every 5 minutes to keep it warm.`,
307
322
  enabled: true,
308
323
  schedule: aws_events_1.Schedule.rate(aws_cdk_lib_1.Duration.minutes(5)),
309
- targets: [new aws_events_targets_1.LambdaFunction(this.lambdaFunction)],
324
+ targets: [new aws_events_targets_1.LambdaFunction(this.lambdaFunction, {
325
+ event: aws_events_1.RuleTargetInput.fromObject(fakeApiGatewayEventData)
326
+ })],
310
327
  });
311
328
  }
312
329
  }
313
330
  exports.NuxtAppStack = NuxtAppStack;
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4dC1hcHAtc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJudXh0LWFwcC1zdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkQ7QUFFM0QsK0VBQStEO0FBQy9ELCtEQWdCb0M7QUFDcEMsdURBQW9HO0FBQ3BHLCtDQUEyRjtBQUMzRix5REFBbUc7QUFDbkcscUVBQW1HO0FBQ25HLCtFQUF3RTtBQUN4RSx5RUFBaUU7QUFDakUsaUZBQStEO0FBQy9ELG1EQUFtRDtBQUNuRCxzR0FBbUY7QUFDbkYsNEVBQWtHO0FBQ2xHLHFFQUF5RjtBQUV6Rix5QkFBeUI7QUFDekIsdURBQXNEO0FBQ3RELHVFQUE4RDtBQW1EOUQ7O0dBRUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxtQkFBSztJQTBEbkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFBLHFEQUE0QixFQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxD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LENBQUMsQ0FBQztRQUM5QyxNQUFNLFNBQVMsR0FBRywwQkFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLHNDQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXpFLDJCQUEyQjtRQUMzQixJQUFJLHFCQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixjQUFjLEVBQUU7WUFDdEQsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3hCLElBQUksRUFBRSxVQUFVO1lBQ2hCLE1BQU0sRUFBRSxTQUFTO1NBQ3BCLENBQUMsQ0FBQztRQUVILDJCQUEyQjtRQUMzQixJQUFJLHdCQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixjQUFjLEVBQUU7WUFDekQsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3hCLElBQUksRUFBRSxVQUFVO1lBQ2hCLE1BQU0sRUFBRSxTQUFTO1NBQ3BCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGNBQWM7UUFDbEIsSUFBSSxpQkFBSSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsY0FBYyxFQUFFO1lBQ25ELFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsU0FBUztZQUMzQyxXQUFXLEVBQUUsb0NBQW9DLElBQUksQ0FBQyxnQkFBZ0IsdUNBQXVDO1lBQzdHLE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLHFCQUFRLENBQUMsSUFBSSxDQUFDLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sRUFBRSxDQUFDLElBQUksbUNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDckQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBclhELG9DQXFYQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHVyYXRpb24sIFJlbW92YWxQb2xpY3ksIFN0YWNrfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge0NlcnRpZmljYXRlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHtcbiAgICBBbGxvd2VkTWV0aG9kcyxcbiAgICBCZWhhdmlvck9wdGlvbnMsXG4gICAgQ2FjaGVDb29raWVCZWhhdmlvcixcbiAgICBDYWNoZWRNZXRob2RzLFxuICAgIENhY2hlSGVhZGVyQmVoYXZpb3IsXG4gICAgQ2FjaGVQb2xpY3ksXG4gICAgQ2FjaGVRdWVyeVN0cmluZ0JlaGF2aW9yLFxuICAgIERpc3RyaWJ1dGlvbixcbiAgICBJQ2FjaGVQb2xpY3ksXG4gICAgSU9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgIE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgIE9yaWdpblByb3RvY29sUG9saWN5LFxuICAgIFByaWNlQ2xhc3MsXG4gICAgU2VjdXJpdHlQb2xpY3lQcm90b2NvbCxcbiAgICBWaWV3ZXJQcm90b2NvbFBvbGljeVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7QXJjaGl0ZWN0dXJlLCBDb2RlLCBGdW5jdGlvbiwgTGF5ZXJWZXJzaW9uLCBSdW50aW1lLCBUcmFjaW5nfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHtCbG9ja1B1YmxpY0FjY2VzcywgQnVja2V0LCBCdWNrZXRBY2Nlc3NDb250cm9sLCBJQnVja2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQge0FhYWFSZWNvcmQsIEFSZWNvcmQsIEhvc3RlZFpvbmUsIElIb3N0ZWRab25lLCBSZWNvcmRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtCdWNrZXREZXBsb3ltZW50LCBDYWNoZUNvbnRyb2wsIFNvdXJjZSwgU3RvcmFnZUNsYXNzfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7SHR0cE9yaWdpbiwgUzNPcmlnaW59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zXCI7XG5pbXBvcnQge0Nsb3VkRnJvbnRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQge0h0dHBNZXRob2R9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucy10YXNrc1wiO1xuaW1wb3J0IHtSZXRlbnRpb25EYXlzfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcbmltcG9ydCB7SHR0cExhbWJkYUludGVncmF0aW9ufSBmcm9tICdAYXdzLWNkay9hd3MtYXBpZ2F0ZXdheXYyLWludGVncmF0aW9ucy1hbHBoYSc7XG5pbXBvcnQge0RvbWFpbk5hbWUsIEVuZHBvaW50VHlwZSwgSHR0cEFwaSwgU2VjdXJpdHlQb2xpY3l9IGZyb20gXCJAYXdzLWNkay9hd3MtYXBpZ2F0ZXdheXYyLWFscGhhXCI7XG5pbXBvcnQge2dldE51eHRBcHBTdGF0aWNBc3NldENvbmZpZ3MsIFN0YXRpY0Fzc2V0Q29uZmlnfSBmcm9tIFwiLi9udXh0LWFwcC1zdGF0aWMtYXNzZXRzXCI7XG5pbXBvcnQge0FwcFN0YWNrUHJvcHN9IGZyb20gXCIuL2FwcC1zdGFjay1wcm9wc1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQge1J1bGUsIFNjaGVkdWxlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50c1wiO1xuaW1wb3J0IHtMYW1iZGFGdW5jdGlvbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0c1wiO1xuaW1wb3J0IHtOdXh0Q29uZmlnfSBmcm9tIFwiLi9udXh0LWNvbmZpZ1wiO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIHByb3BzIHJlcXVpcmVkIGZvciB0aGUge0BzZWUgTnV4dEFwcFN0YWNrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdXh0QXBwU3RhY2tQcm9wcyBleHRlbmRzIEFwcFN0YWNrUHJvcHMge1xuICAgIC8qKlxuICAgICAqIFRoZSBkb21haW4gKHdpdGhvdXQgdGhlIHByb3RvY29sKSBhdCB3aGljaCB0aGUgTnV4dCBhcHAgc2hhbGwgYmUgcHVibGljbHkgYXZhaWxhYmxlLlxuICAgICAqIEEgRE5TIHJlY29yZCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbiBSb3V0ZTUzIGZvciB0aGUgZG9tYWluLlxuICAgICAqIFRoaXMgYWxzbyBzdXBwb3J0cyBzdWJkb21haW5zLlxuICAgICAqIEV4YW1wbGVzOiBcImV4YW1wbGUuY29tXCIsIFwic3ViLmV4YW1wbGUuY29tXCJcbiAgICAgKi9cbiAgICByZWFkb25seSBkb21haW46IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBpZCBvZiB0aGUgaG9zdGVkIHpvbmUgdG8gY3JlYXRlIGEgRE5TIHJlY29yZCBmb3IgdGhlIHNwZWNpZmllZCBkb21haW4uXG4gICAgICovXG4gICAgcmVhZG9ubHkgaG9zdGVkWm9uZUlkOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgQVJOIG9mIHRoZSBjZXJ0aWZpY2F0ZSB0byB1c2Ugb24gQ2xvdWRGcm9udCBmb3IgdGhlIE51eHQgYXBwIHRvIG1ha2UgaXQgYWNjZXNzaWJsZSB2aWEgSFRUUFMuXG4gICAgICogVGhlIGNlcnRpZmljYXRlIG11c3QgYmUgaXNzdWVkIGZvciB0aGUgc3BlY2lmaWVkIGRvbWFpbiBpbiB1cy1lYXN0LTEgKGdsb2JhbCkgcmVnYXJkbGVzcyBvZiB0aGVcbiAgICAgKiByZWdpb24gc3BlY2lmaWVkIHZpYSAnZW52LnJlZ2lvbicgYXMgQ2xvdWRGcm9udCBvbmx5IHdvcmtzIGdsb2JhbGx5LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGdsb2JhbFRsc0NlcnRpZmljYXRlQXJuOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgQVJOIG9mIHRoZSBjZXJ0aWZpY2F0ZSB0byB1c2UgYXQgdGhlIEFwaUdhdGV3YXkgZm9yIHRoZSBOdXh0IGFwcCB0byBtYWtlIGl0IGFjY2Vzc2libGUgdmlhIHRoZSBjdXN0b20gZG9tYWluXG4gICAgICogYW5kIHRvIHByb3ZpZGUgdGhlIGN1c3RvbSBkb21haW4gdG8gdGhlIE51eHQgYXBwIHZpYSB0aGUgJ0hvc3QnIGhlYWRlciBmb3Igc2VydmVyIHNpZGUgcmVuZGVyaW5nIHVzZSBjYXNlcy5cbiAgICAgKiBUaGUgY2VydGlmaWNhdGUgbXVzdCBiZSBpc3N1ZWQgaW4gdGhlIHNhbWUgcmVnaW9uIGFzIHNwZWNpZmllZCB2aWEgJ2Vudi5yZWdpb24nIGFzIEFwaUdhdGV3YXkgd29ya3MgcmVnaW9uYWxseS5cbiAgICAgKi9cbiAgICByZWFkb25seSByZWdpb25hbFRsc0NlcnRpZmljYXRlQXJuOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbnV4dC5jb25maWcuanMgb2YgdGhlIE51eHQgYXBwLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG51eHRDb25maWc6IE51eHRDb25maWc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbWVtb3J5IHNpemUgdG8gYXBwbHkgdG8gdGhlIE51eHQgYXBwJ3MgTGFtYmRhLlxuICAgICAqIERlZmF1bHRzIHRvIDUxMk1CLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG1lbW9yeVNpemU/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBBV1MgWC1SYXkgZm9yIHRoZSBOdXh0IExhbWJkYSBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBlbmFibGVUcmFjaW5nPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgcmVuZGVycyB0aGUgTnV4dCBhcHAgYW5kIGlzIHB1YmxpY2x5IHJlYWNoYWJsZSB2aWEgYSBzcGVjaWZpZWQgZG9tYWluLlxuICovXG5leHBvcnQgY2xhc3MgTnV4dEFwcFN0YWNrIGV4dGVuZHMgU3RhY2sge1xuXG4gICAgLyoqXG4gICAgICogVGhlIGlkZW50aWZpZXIgcHJlZml4IG9mIHRoZSByZXNvdXJjZXMgY3JlYXRlZCBieSB0aGUgc3RhY2suXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VJZFByZWZpeDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBjdXJyZW50IGRlcGxveW1lbnQgdGhhdCBpcyB1c2VkIGFzIFMzIGZvbGRlciBuYW1lXG4gICAgICogdG8gc3RvcmUgdGhlIHN0YXRpYyBhc3NldHMgb2YgdGhlIE51eHQgYXBwLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlcGxveW1lbnRSZXZpc2lvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGlkZW50aXR5IHRvIHVzZSBmb3IgYWNjZXNzaW5nIHRoZSBkZXBsb3ltZW50IGFzc2V0cyBvbiBTMy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZG5BY2Nlc3NJZGVudGl0eTogSU9yaWdpbkFjY2Vzc0lkZW50aXR5O1xuXG4gICAgLyoqXG4gICAgICogVGhlIFMzIGJ1Y2tldCB3aGVyZSB0aGUgZGVwbG95bWVudCBhc3NldHMgZ2V0cyBzdG9yZWQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpY0Fzc2V0c0J1Y2tldDogSUJ1Y2tldDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdG8gcmVuZGVyIHRoZSBOdXh0IGFwcCBvbiB0aGUgc2VydmVyIHNpZGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb246IEZ1bmN0aW9uO1xuXG4gICAgLyoqXG4gICAgICogVGhlIEFQSSBnYXRld2F5IHRvIG1ha2UgdGhlIExhbWJkYSBmdW5jdGlvbiB0byByZW5kZXIgdGhlIE51eHQgYXBwIHB1YmxpY2x5IGF2YWlsYWJsZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBhcGlHYXRld2F5OiBIdHRwQXBpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNvbmZpZ3MgZm9yIHRoZSBzdGF0aWMgYXNzZXRzIG9mIHRoZSBOdXh0IGFwcCB0aGF0IHNoYWxsIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWNBc3NldENvbmZpZ3M6IFN0YXRpY0Fzc2V0Q29uZmlnW107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gdG8gcm91dGUgaW5jb21pbmcgcmVxdWVzdHMgdG8gdGhlIE51eHQgTGFtYmRhIGZ1bmN0aW9uICh2aWEgdGhlIEFQSSBnYXRld2F5KVxuICAgICAqIG9yIHRoZSBTMyBhc3NldHMgZm9sZGVyICh3aXRoIGNhY2hpbmcpLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkbjogRGlzdHJpYnV0aW9uO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE51eHRBcHBTdGFja1Byb3BzKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgICAgIHRoaXMucmVzb3VyY2VJZFByZWZpeCA9IGAke3Byb3BzLnByb2plY3R9LSR7cHJvcHMuc2VydmljZX0tJHtwcm9wcy5lbnZpcm9ubWVudH1gO1xuICAgICAgICB0aGlzLmRlcGxveW1lbnRSZXZpc2lvbiA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgdGhpcy5zdGF0aWNBc3NldENvbmZpZ3MgPSBnZXROdXh0QXBwU3RhdGljQXNzZXRDb25maWdzKHByb3BzLm51eHRDb25maWcpO1xuICAgICAgICB0aGlzLmNkbkFjY2Vzc0lkZW50aXR5ID0gdGhpcy5jcmVhdGVDZG5BY2Nlc3NJZGVudGl0eSgpO1xuICAgICAgICB0aGlzLnN0YXRpY0Fzc2V0c0J1Y2tldCA9IHRoaXMuY3JlYXRlU3RhdGljQXNzZXRzQnVja2V0KCk7XG4gICAgICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSB0aGlzLmNyZWF0ZUxhbWJkYUZ1bmN0aW9uKHByb3BzKTtcbiAgICAgICAgdGhpcy5hcGlHYXRld2F5ID0gdGhpcy5jcmVhdGVBcGlHYXRld2F5KHByb3BzKTtcbiAgICAgICAgdGhpcy5jZG4gPSB0aGlzLmNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb24ocHJvcHMpO1xuICAgICAgICB0aGlzLmNvbmZpZ3VyZURlcGxveW1lbnRzKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlRG5zUmVjb3Jkcyhwcm9wcyk7XG4gICAgICAgIHRoaXMuY3JlYXRlUGluZ1J1bGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBpZGVudGl0eSB0byBhY2Nlc3MgdGhlIFMzIGRlcGxveW1lbnQgYXNzZXQgZmlsZXMgdmlhIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVDZG5BY2Nlc3NJZGVudGl0eSgpOiBJT3JpZ2luQWNjZXNzSWRlbnRpdHkge1xuICAgICAgICBjb25zdCBvcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWUgPSBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWNkbi1zMy1hY2Nlc3NgO1xuICAgICAgICByZXR1cm4gbmV3IE9yaWdpbkFjY2Vzc0lkZW50aXR5KHRoaXMsIG9yaWdpbkFjY2Vzc0lkZW50aXR5TmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgYnVja2V0IHRvIHN0b3JlIHRoZSBzdGF0aWMgZGVwbG95bWVudCBhc3NldCBmaWxlcyBvZiB0aGUgTnV4dCBhcHAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlU3RhdGljQXNzZXRzQnVja2V0KCk6IElCdWNrZXQge1xuICAgICAgICBjb25zdCBidWNrZXROYW1lID0gYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1hc3NldHNgO1xuICAgICAgICBjb25zdCBidWNrZXQgPSBuZXcgQnVja2V0KHRoaXMsIGJ1Y2tldE5hbWUsIHtcbiAgICAgICAgICAgIGFjY2Vzc0NvbnRyb2w6IEJ1Y2tldEFjY2Vzc0NvbnRyb2wuQVVUSEVOVElDQVRFRF9SRUFELFxuICAgICAgICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgICAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICAvLyBUaGUgYnVja2V0IGFuZCBhbGwgb2YgaXRzIG9iamVjdHMgY2FuIGJlIGRlbGV0ZWQsIGJlY2F1c2UgYWxsIHRoZSBjb250ZW50IGlzIG1hbmFnZWQgaW4gdGhpcyBwcm9qZWN0XG4gICAgICAgICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICAgICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYnVja2V0LmdyYW50UmVhZFdyaXRlKHRoaXMuY2RuQWNjZXNzSWRlbnRpdHkpO1xuXG4gICAgICAgIHJldHVybiBidWNrZXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIExhbWJkYSBsYXllciB3aXRoIHRoZSBub2RlX21vZHVsZXMgcmVxdWlyZWQgdG8gcmVuZGVyIHRoZSBOdXh0IGFwcCBvbiB0aGUgc2VydmVyIHNpZGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlU3NyTGFtYmRhTGF5ZXIoKTogTGF5ZXJWZXJzaW9uIHtcbiAgICAgICAgY29uc3QgbGF5ZXJOYW1lID0gYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1zc3ItbGF5ZXJgO1xuICAgICAgICByZXR1cm4gbmV3IExheWVyVmVyc2lvbih0aGlzLCBsYXllck5hbWUsIHtcbiAgICAgICAgICAgIGxheWVyVmVyc2lvbk5hbWU6IGxheWVyTmFtZSxcbiAgICAgICAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KCcubnV4dC9jZGstZGVwbG95bWVudC9sYXllcicpLFxuICAgICAgICAgICAgY29tcGF0aWJsZVJ1bnRpbWVzOiBbUnVudGltZS5OT0RFSlNfMTJfWF0sXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogYFByb3ZpZGVzIHRoZSBub2RlX21vZHVsZXMgcmVxdWlyZWQgZm9yIFNTUiBvZiAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0uYCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgTGFtYmRhIGZ1bmN0aW9uIHRvIHJlbmRlciB0aGUgTnV4dCBhcHAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlTGFtYmRhRnVuY3Rpb24ocHJvcHM6IE51eHRBcHBTdGFja1Byb3BzKTogRnVuY3Rpb24ge1xuICAgICAgICBjb25zdCBmdW5jTmFtZSA9IGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tZnVuY3Rpb25gO1xuXG4gICAgICAgIHJldHVybiBuZXcgRnVuY3Rpb24odGhpcywgZnVuY05hbWUsIHtcbiAgICAgICAgICAgIGZ1bmN0aW9uTmFtZTogZnVuY05hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogYFJlbmRlcnMgdGhlICR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fSBOdXh0IGFwcC5gLFxuICAgICAgICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMTJfWCxcbiAgICAgICAgICAgIGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgICAgICAgIGxheWVyczogW3RoaXMuY3JlYXRlU3NyTGFtYmRhTGF5ZXIoKV0sXG4gICAgICAgICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldCgnLm51eHQvY2RrLWRlcGxveW1lbnQvc3JjJywge1xuICAgICAgICAgICAgICAgIGV4Y2x1ZGU6IFsnKiouc3ZnJywgJyoqLmljbycsICcqKi5wbmcnLCAnKiouanBnJywgJyoqLmpzLm1hcCddLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDEwKSxcbiAgICAgICAgICAgIG1lbW9yeVNpemU6IHByb3BzLm1lbW9yeVNpemUgPz8gNTEyLFxuICAgICAgICAgICAgbG9nUmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLk9ORV9NT05USCxcbiAgICAgICAgICAgIGFsbG93UHVibGljU3VibmV0OiBmYWxzZSxcbiAgICAgICAgICAgIHRyYWNpbmc6IHByb3BzLmVuYWJsZVRyYWNpbmcgPyBUcmFjaW5nLkFDVElWRSA6IFRyYWNpbmcuRElTQUJMRURcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgQVBJIGdhdGV3YXkgdG8gbWFrZSB0aGUgTnV4dCBhcHAgcmVuZGVyIExhbWJkYSBmdW5jdGlvbiBwdWJsaWNseSBhdmFpbGFibGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlQXBpR2F0ZXdheShwcm9wczogTnV4dEFwcFN0YWNrUHJvcHMpOiBIdHRwQXBpIHtcbiAgICAgICAgY29uc3QgYXBpTmFtZSA9IGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tYXBpYDtcbiAgICAgICAgY29uc3QgbGFtYmRhSW50ZWdyYXRpb24gPSBuZXcgSHR0cExhbWJkYUludGVncmF0aW9uKGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tbGFtYmRhLWludGVncmF0aW9uYCwgdGhpcy5sYW1iZGFGdW5jdGlvbik7XG5cbiAgICAgICAgLy8gV2Ugd2FudCB0aGUgQVBJIGdhdGV3YXkgdG8gYmUgYWNjZXNzaWJsZSBieSB0aGUgY3VzdG9tIGRvbWFpbiBuYW1lLlxuICAgICAgICAvLyBFdmVuIHRob3VnaCB3ZSBhY2Nlc3MgdGhlIGdhdGV3YXkgdmlhIENsb3VkRnJvbnQgKGZvciBhdXRvIGh0dHAgdG8gaHR0cHMgcmVkaXJlY3RzKSwgdGhpcyBpcyByZXF1aXJlZFxuICAgICAgICAvLyB0byBiZSBhYmxlIHRvIHJlZGlyZWN0IHRoZSBvcmlnaW5hbCAnSG9zdCcgaGVhZGVyIHRvIHRoZSBOdXh0IGFwcGxpY2F0aW9uLCBpZiByZXF1ZXN0ZWQuXG4gICAgICAgIGNvbnN0IGRvbWFpbk5hbWUgPSBuZXcgRG9tYWluTmFtZSh0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWFwaS1kb21haW5gLCB7XG4gICAgICAgICAgICBkb21haW5OYW1lOiBwcm9wcy5kb21haW4sXG4gICAgICAgICAgICBjZXJ0aWZpY2F0ZTogQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tcmVnaW9uYWwtY2VydGlmaWNhdGVgLCBwcm9wcy5yZWdpb25hbFRsc0NlcnRpZmljYXRlQXJuKSxcbiAgICAgICAgICAgIGVuZHBvaW50VHlwZTogRW5kcG9pbnRUeXBlLlJFR0lPTkFMLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6IFNlY3VyaXR5UG9saWN5LlRMU18xXzJcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgYXBpR2F0ZXdheSA9IG5ldyBIdHRwQXBpKHRoaXMsIGFwaU5hbWUsIHtcbiAgICAgICAgICAgIGFwaU5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogYENvbm5lY3RzIHRoZSAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0gQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gd2l0aCB0aGUgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9IExhbWJkYSBmdW5jdGlvbiB0byBtYWtlIGl0IHB1YmxpY2x5IGF2YWlsYWJsZS5gLFxuICAgICAgICAgICAgLy8gVGhlIGFwcCBkb2VzIG5vdCBhbGxvdyBhbnkgY3Jvc3Mtb3JpZ2luIGFjY2VzcyBieSBwdXJwb3NlOiB0aGUgYXBwIHNob3VsZCBub3QgYmUgZW1iZWRkYWJsZSBhbnl3aGVyZVxuICAgICAgICAgICAgY29yc1ByZWZsaWdodDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZGVmYXVsdEludGVncmF0aW9uOiBsYW1iZGFJbnRlZ3JhdGlvbixcbiAgICAgICAgICAgIGRlZmF1bHREb21haW5NYXBwaW5nOiB7XG4gICAgICAgICAgICAgICAgZG9tYWluTmFtZTogZG9tYWluTmFtZVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBhcGlHYXRld2F5LmFkZFJvdXRlcyh7XG4gICAgICAgICAgICBpbnRlZ3JhdGlvbjogbGFtYmRhSW50ZWdyYXRpb24sXG4gICAgICAgICAgICBwYXRoOiAnL3twcm94eSt9JyxcbiAgICAgICAgICAgIG1ldGhvZHM6IFtIdHRwTWV0aG9kLkdFVCwgSHR0cE1ldGhvZC5IRUFEXSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGFwaUdhdGV3YXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gdGhhdCByb3V0ZXMgaW5jb21pbmcgcmVxdWVzdHMgdG8gdGhlIE51eHQgTGFtYmRhIGZ1bmN0aW9uICh2aWEgdGhlIEFQSSBnYXRld2F5KVxuICAgICAqIG9yIHRoZSBTMyBhc3NldHMgZm9sZGVyICh3aXRoIGNhY2hpbmcpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BzXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZUNsb3VkRnJvbnREaXN0cmlidXRpb24ocHJvcHM6IE51eHRBcHBTdGFja1Byb3BzKTogRGlzdHJpYnV0aW9uIHtcbiAgICAgICAgY29uc3QgY2RuTmFtZSA9IGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tY2RuYDtcblxuICAgICAgICByZXR1cm4gbmV3IERpc3RyaWJ1dGlvbih0aGlzLCBjZG5OYW1lLCB7XG4gICAgICAgICAgICBkb21haW5OYW1lczogW3Byb3BzLmRvbWFpbl0sXG4gICAgICAgICAgICBjb21tZW50OiBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LXJlZGlyZWN0YCxcbiAgICAgICAgICAgIG1pbmltdW1Qcm90b2NvbFZlcnNpb246IFNlY3VyaXR5UG9saWN5UHJvdG9jb2wuVExTX1YxXzJfMjAxOCxcbiAgICAgICAgICAgIGNlcnRpZmljYXRlOiBDZXJ0aWZpY2F0ZS5mcm9tQ2VydGlmaWNhdGVBcm4odGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1nbG9iYWwtY2VydGlmaWNhdGVgLCBwcm9wcy5nbG9iYWxUbHNDZXJ0aWZpY2F0ZUFybiksXG4gICAgICAgICAgICBkZWZhdWx0QmVoYXZpb3I6IHRoaXMuY3JlYXRlTnV4dEFwcFJvdXRlQmVoYXZpb3IoKSxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxCZWhhdmlvcnM6IHRoaXMuY3JlYXRlU3RhdGljQXNzZXRzUm91dGVCZWhhdmlvcigpLFxuICAgICAgICAgICAgcHJpY2VDbGFzczogUHJpY2VDbGFzcy5QUklDRV9DTEFTU18xMDAsIC8vIFVzZSBvbmx5IE5vcnRoIEFtZXJpY2EgYW5kIEV1cm9wZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYmVoYXZpb3IgZm9yIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB0byByb3V0ZSBpbmNvbWluZyByZXF1ZXN0cyB0byB0aGUgTnV4dCByZW5kZXIgTGFtYmRhIGZ1bmN0aW9uICh2aWEgQVBJIGdhdGV3YXkpLlxuICAgICAqIEFkZGl0aW9uYWxseSwgdGhpcyBhdXRvbWF0aWNhbGx5IHJlZGlyZWN0cyBIVFRQIHJlcXVlc3RzIHRvIEhUVFBTLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZU51eHRBcHBSb3V0ZUJlaGF2aW9yKCk6IEJlaGF2aW9yT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvcmlnaW46IG5ldyBIdHRwT3JpZ2luKGAke3RoaXMuYXBpR2F0ZXdheS5odHRwQXBpSWR9LmV4ZWN1dGUtYXBpLiR7dGhpcy5yZWdpb259LmFtYXpvbmF3cy5jb21gLCB7XG4gICAgICAgICAgICAgICAgY29ubmVjdGlvbkF0dGVtcHRzOiAyLFxuICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25UaW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDIpLFxuICAgICAgICAgICAgICAgIHJlYWRUaW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDEwKSxcbiAgICAgICAgICAgICAgICBwcm90b2NvbFBvbGljeTogT3JpZ2luUHJvdG9jb2xQb2xpY3kuSFRUUFNfT05MWSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgYWxsb3dlZE1ldGhvZHM6IEFsbG93ZWRNZXRob2RzLkFMTE9XX0dFVF9IRUFELFxuICAgICAgICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5OiB1bmRlZmluZWQsXG4gICAgICAgICAgICBjYWNoZVBvbGljeTogdGhpcy5jcmVhdGVTc3JDYWNoZVBvbGljeSgpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjYWNoZSBwb2xpY3kgZm9yIHRoZSBOdXh0IGFwcCByb3V0ZSBiZWhhdmlvciBvZiB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gICAgICogRXZlbnRob3VnaCB3ZSBkb24ndCB3YW50IHRvIGNhY2hlIFNTUiByZXF1ZXN0cywgd2Ugc3RpbGwgaGF2ZSB0byBjcmVhdGUgdGhpcyBjYWNoZSBwb2xpY3kgaW4gb3JkZXIgdG9cbiAgICAgKiBmb3J3YXJkIHJlcXVpcmVkIGNvb2tpZXMsIHF1ZXJ5IHBhcmFtcyBhbmQgaGVhZGVycy4gVGhpcyBkb2Vzbid0IG1ha2UgYW55IHNlbnNlLCBiZWNhdXNlIGlmIG5vdGhpbmdcbiAgICAgKiBpcyBjYWNoZWQsIG9uZSB3b3VsZCBleHBlY3QsIHRoYXQgYW55dGhpbmcgd291bGQvY291bGQgYmUgZm9yd2FyZGVkLCBidXQgYW55d2F5Li4uXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVTc3JDYWNoZVBvbGljeSgpOiBJQ2FjaGVQb2xpY3kge1xuXG4gICAgICAgIC8vIFRoZSBoZWFkZXJzIHRvIG1ha2UgYWNjZXNzaWJsZSBpbiB0aGUgTnV4dCBhcHAgY29kZS5cbiAgICAgICAgLy8gVGhlcmUgaXMgbm8gJ0NhY2hlSGVhZGVyQmVoYXZpb3IuYWxsKCknIG9wdGlvbiwgc28gd2UgaGF2ZSB0byBleHBsaWNpdGx5IGRlZmluZSB0aGVtLlxuICAgICAgICBjb25zdCBoZWFkZXJzID0gW1xuICAgICAgICAgICAgJ1VzZXItQWdlbnQnLCAvLyBSZXF1aXJlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIG1vYmlsZSBhbmQgZGVza3RvcCB0ZW1wbGF0ZVxuICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nLCAvLyBGb3IgYXV0aG9yaXphdGlvblxuICAgICAgICAgICAgJ0hvc3QnIC8vIFRvIGFjY2VzcyB0aGUgZG9tYWluIG5hbWUgb24gU1NSIHJlcXVlc3RzXG4gICAgICAgIF07XG5cbiAgICAgICAgcmV0dXJuIG5ldyBDYWNoZVBvbGljeSh0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWNhY2hlLXBvbGljeWAsIHtcbiAgICAgICAgICAgIGNhY2hlUG9saWN5TmFtZTogYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1jZG4tY2FjaGUtcG9saWN5YCxcbiAgICAgICAgICAgIGNvbW1lbnQ6IGBQYXNzZXMgYWxsIHJlcXVpcmVkIHJlcXVlc3QgZGF0YSB0byB0aGUgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9IG9yaWdpbi5gLFxuICAgICAgICAgICAgZGVmYXVsdFR0bDogRHVyYXRpb24uc2Vjb25kcygwKSxcbiAgICAgICAgICAgIG1pblR0bDogRHVyYXRpb24uc2Vjb25kcygwKSxcbiAgICAgICAgICAgIG1heFR0bDogRHVyYXRpb24uc2Vjb25kcygxKSwgLy8gVGhlIG1heCBUVEwgbXVzdCBub3QgYmUgMCBmb3IgYSBjYWNoZSBwb2xpY3lcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nQmVoYXZpb3I6IENhY2hlUXVlcnlTdHJpbmdCZWhhdmlvci5hbGwoKSxcbiAgICAgICAgICAgIGhlYWRlckJlaGF2aW9yOiBDYWNoZUhlYWRlckJlaGF2aW9yLmFsbG93TGlzdCguLi5oZWFkZXJzKSxcbiAgICAgICAgICAgIGNvb2tpZUJlaGF2aW9yOiBDYWNoZUNvb2tpZUJlaGF2aW9yLmFsbCgpLFxuICAgICAgICAgICAgZW5hYmxlQWNjZXB0RW5jb2RpbmdCcm90bGk6IHRydWUsXG4gICAgICAgICAgICBlbmFibGVBY2NlcHRFbmNvZGluZ0d6aXA6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBiZWhhdmlvciBmb3IgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHRvIHJvdXRlIG1hdGNoaW5nIGluY29taW5nIHJlcXVlc3RzIGZvciB0aGUgc3RhdGljIGFzc2V0c1xuICAgICAqIHRvIHRoZSBTMyBidWNrZXQgdGhhdCBob2xkcyB0aGVzZSBzdGF0aWMgYXNzZXRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZVN0YXRpY0Fzc2V0c1JvdXRlQmVoYXZpb3IoKTogUmVjb3JkPHN0cmluZywgQmVoYXZpb3JPcHRpb25zPiB7XG4gICAgICAgIGNvbnN0IHN0YXRpY0Fzc2V0c0NhY2hlQ29uZmlnOiBCZWhhdmlvck9wdGlvbnMgPSB7XG4gICAgICAgICAgICBvcmlnaW46IG5ldyBTM09yaWdpbih0aGlzLnN0YXRpY0Fzc2V0c0J1Y2tldCwge1xuICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25BdHRlbXB0czogMixcbiAgICAgICAgICAgICAgICBjb25uZWN0aW9uVGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzKSxcbiAgICAgICAgICAgICAgICBvcmlnaW5BY2Nlc3NJZGVudGl0eTogdGhpcy5jZG5BY2Nlc3NJZGVudGl0eSxcbiAgICAgICAgICAgICAgICBvcmlnaW5QYXRoOiB0aGlzLmRlcGxveW1lbnRSZXZpc2lvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICAgICAgICBhbGxvd2VkTWV0aG9kczogQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgICAgICAgIGNhY2hlZE1ldGhvZHM6IENhY2hlZE1ldGhvZHMuQ0FDSEVfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgICAgICAgIGNhY2hlUG9saWN5OiBDYWNoZVBvbGljeS5DQUNISU5HX09QVElNSVpFRCxcbiAgICAgICAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBydWxlczogUmVjb3JkPHN0cmluZywgQmVoYXZpb3JPcHRpb25zPiA9IHt9O1xuICAgICAgICB0aGlzLnN0YXRpY0Fzc2V0Q29uZmlncy5mb3JFYWNoKGFzc2V0ID0+IHtcbiAgICAgICAgICAgIHJ1bGVzW2Ake2Fzc2V0LnRhcmdldH0ke2Fzc2V0LnBhdHRlcm59YF0gPSBzdGF0aWNBc3NldHNDYWNoZUNvbmZpZ1xuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiBydWxlc1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwbG9hZHMgdGhlIHN0YXRpYyBhc3NldHMgb2YgdGhlIE51eHQgYXBwIGFzIGRlZmluZWQgaW4ge0BzZWUgZ2V0TnV4dEFwcFN0YXRpY0Fzc2V0Q29uZmlnc30gdG8gdGhlIHN0YXRpYyBhc3NldHMgUzMgYnVja2V0LlxuICAgICAqIEluIG9yZGVyIHRvIGVuYWJsZSBhIHplcm8tZG93bnRpbWUgZGVwbG95bWVudCwgd2UgdXNlIGEgbmV3IHN1YmRpcmVjdG9yeSAocmV2aXNpb24pIGZvciBldmVyeSBkZXBsb3ltZW50LlxuICAgICAqIFRoZSBwcmV2aW91cyB2ZXJzaW9ucyBhcmUgcmV0YWluZWQgdG8gYWxsb3cgY2xpZW50cyB0byBjb250aW51ZSB0byB3b3JrIHdpdGggYW4gb2xkZXIgcmV2aXNpb24gYnV0IGdldHMgY2xlYW5lZCB1cFxuICAgICAqIGFmdGVyIGEgc3BlY2lmaWVkIHBlcmlvZCBvZiB0aW1lIHZpYSB0aGUgTGFtYmRhIGZ1bmN0aW9uIGluIHRoZSB7QHNlZSBOdXh0QXBwQXNzZXRzQ2xlYW51cFN0YWNrfS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbmZpZ3VyZURlcGxveW1lbnRzKCk6IEJ1Y2tldERlcGxveW1lbnRbXSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDYWNoZUNvbmZpZyA9IFtcbiAgICAgICAgICAgIENhY2hlQ29udHJvbC5zZXRQdWJsaWMoKSxcbiAgICAgICAgICAgIENhY2hlQ29udHJvbC5tYXhBZ2UoRHVyYXRpb24uZGF5cygzNjUpKSxcbiAgICAgICAgICAgIENhY2hlQ29udHJvbC5mcm9tU3RyaW5nKCdpbW11dGFibGUnKSxcbiAgICAgICAgXTtcblxuICAgICAgICAvLyBSZXR1cm5zIGEgZGVwbG95bWVudCBmb3IgZXZlcnkgY29uZmlndXJlZCBzdGF0aWMgYXNzZXQgdHlwZSB0byByZXNwZWN0IHRoZSBkaWZmZXJlbnQgY2FjaGUgc2V0dGluZ3NcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGljQXNzZXRDb25maWdzLmZpbHRlcihhc3NldCA9PiBmcy5leGlzdHNTeW5jKGFzc2V0LnNvdXJjZSkpLm1hcCgoYXNzZXQsIGFzc2V0SW5kZXgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQnVja2V0RGVwbG95bWVudCh0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWFzc2V0cy1kZXBsb3ltZW50LSR7YXNzZXRJbmRleH1gLCB7XG4gICAgICAgICAgICAgICAgc291cmNlczogW1NvdXJjZS5hc3NldChhc3NldC5zb3VyY2UpXSxcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5zdGF0aWNBc3NldHNCdWNrZXQsXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb25LZXlQcmVmaXg6IHRoaXMuZGVwbG95bWVudFJldmlzaW9uICsgYXNzZXQudGFyZ2V0LFxuICAgICAgICAgICAgICAgIHBydW5lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBzdG9yYWdlQ2xhc3M6IFN0b3JhZ2VDbGFzcy5TVEFOREFSRCxcbiAgICAgICAgICAgICAgICBleGNsdWRlOiBbJyonXSxcbiAgICAgICAgICAgICAgICBpbmNsdWRlOiBbYXNzZXQucGF0dGVybl0sXG4gICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiBhc3NldC5jYWNoZUNvbnRyb2wgPz8gZGVmYXVsdENhY2hlQ29uZmlnLFxuICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBhc3NldC5jb250ZW50VHlwZSxcbiAgICAgICAgICAgICAgICBsb2dSZXRlbnRpb246IFJldGVudGlvbkRheXMuT05FX0RBWSxcbiAgICAgICAgICAgICAgICBtZW1vcnlMaW1pdDogMjU2IC8vIFNvbWUgTnV4dCBhcHBsaWNhdGlvbnMgaGF2ZSBhIGxvdCBvZiBhc3NldHMgdG8gZGVwbG95IHdoZXJlYnkgdGhlIGZ1bmN0aW9uIG1pZ2h0IHJ1biBvdXQgb2YgbWVtb3J5XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNvbHZlcyB0aGUgaG9zdGVkIHpvbmUgYXQgd2hpY2ggdGhlIEROUyByZWNvcmRzIHNoYWxsIGJlIGNyZWF0ZWQgdG8gYWNjZXNzIHRoZSBOdXh0IGFwcCBvbiB0aGUgaW50ZXJuZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZEhvc3RlZFpvbmUocHJvcHM6IE51eHRBcHBTdGFja1Byb3BzKTogSUhvc3RlZFpvbmUge1xuICAgICAgICBjb25zdCBkb21haW5QYXJ0cyA9IHByb3BzLmRvbWFpbi5zcGxpdCgnLicpO1xuXG4gICAgICAgIHJldHVybiBIb3N0ZWRab25lLmZyb21Ib3N0ZWRab25lQXR0cmlidXRlcyh0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWhvc3RlZC16b25lYCwge1xuICAgICAgICAgICAgaG9zdGVkWm9uZUlkOiBwcm9wcy5ob3N0ZWRab25lSWQsXG4gICAgICAgICAgICB6b25lTmFtZTogZG9tYWluUGFydHNbZG9tYWluUGFydHMubGVuZ3RoIC0gMV0sIC8vIFN1cHBvcnQgc3ViZG9tYWluc1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBETlMgcmVjb3JkcyB0byBhY2Nlc3MgdGhlIE51eHQgYXBwIG9uIHRoZSBpbnRlcm5ldCB2aWEgdGhlIGN1c3RvbSBkb21haW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlRG5zUmVjb3Jkcyhwcm9wczogTnV4dEFwcFN0YWNrUHJvcHMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdGVkWm9uZSA9IHRoaXMuZmluZEhvc3RlZFpvbmUocHJvcHMpO1xuICAgICAgICBjb25zdCBkbnNUYXJnZXQgPSBSZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyBDbG91ZEZyb250VGFyZ2V0KHRoaXMuY2RuKSk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIGEgcmVjb3JkIGZvciBJUHY0XG4gICAgICAgIG5ldyBBUmVjb3JkKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0taXB2NC1yZWNvcmRgLCB7XG4gICAgICAgICAgICByZWNvcmROYW1lOiBwcm9wcy5kb21haW4sXG4gICAgICAgICAgICB6b25lOiBob3N0ZWRab25lLFxuICAgICAgICAgICAgdGFyZ2V0OiBkbnNUYXJnZXQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhIHJlY29yZCBmb3IgSVB2NlxuICAgICAgICBuZXcgQWFhYVJlY29yZCh0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWlwdjYtcmVjb3JkYCwge1xuICAgICAgICAgICAgcmVjb3JkTmFtZTogcHJvcHMuZG9tYWluLFxuICAgICAgICAgICAgem9uZTogaG9zdGVkWm9uZSxcbiAgICAgICAgICAgIHRhcmdldDogZG5zVGFyZ2V0LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2NoZWR1bGVkIHJ1bGUgdG8gcGluZyB0aGUgTnV4dCBhcHAgTGFtYmRhIGZ1bmN0aW9uIGV2ZXJ5IDUgbWludXRlcyBpbiBvcmRlciB0byBrZWVwIGl0IHdhcm1cbiAgICAgKiBhbmQgc3BlZWQgdXAgaW5pdGlhbCBTU1IgcmVxdWVzdHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlUGluZ1J1bGUoKTogdm9pZCB7XG4gICAgICAgIG5ldyBSdWxlKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tcGluZ2VyLXJ1bGVgLCB7XG4gICAgICAgICAgICBydWxlTmFtZTogYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1waW5nZXJgLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBQaW5ncyB0aGUgTGFtYmRhIGZ1bmN0aW9uIG9mIHRoZSAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0gYXBwIGV2ZXJ5IDUgbWludXRlcyB0byBrZWVwIGl0IHdhcm0uYCxcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBzY2hlZHVsZTogU2NoZWR1bGUucmF0ZShEdXJhdGlvbi5taW51dGVzKDUpKSxcbiAgICAgICAgICAgIHRhcmdldHM6IFtuZXcgTGFtYmRhRnVuY3Rpb24odGhpcy5sYW1iZGFGdW5jdGlvbildLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnV4dC1hcHAtc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJudXh0LWFwcC1zdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkQ7QUFFM0QsK0VBQStEO0FBQy9ELCtEQWdCb0M7QUFDcEMsdURBQW9HO0FBQ3BHLCtDQUEyRjtBQUMzRix5REFBbUc7QUFDbkcscUVBQW1HO0FBQ25HLCtFQUF3RTtBQUN4RSx5RUFBaUU7QUFDakUsaUZBQStEO0FBQy9ELG1EQUFtRDtBQUNuRCxzR0FBbUY7QUFDbkYsNEVBQWtHO0FBQ2xHLHFFQUF5RjtBQUV6Rix5QkFBeUI7QUFDekIsdURBQXVFO0FBQ3ZFLHVFQUE4RDtBQW1EOUQ7O0dBRUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxtQkFBSztJQTBEbkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFBLHFEQUE0QixFQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxD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QUFDLGdCQUFnQix1Q0FBdUM7WUFDN0csT0FBTyxFQUFFLElBQUk7WUFDYixRQUFRLEVBQUUscUJBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsT0FBTyxFQUFFLENBQUMsSUFBSSxtQ0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQzlDLEtBQUssRUFBRSw0QkFBZSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDN0QsQ0FBQyxDQUFDO1NBQ04sQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBdllELG9DQXVZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHVyYXRpb24sIFJlbW92YWxQb2xpY3ksIFN0YWNrfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge0NlcnRpZmljYXRlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHtcbiAgICBBbGxvd2VkTWV0aG9kcyxcbiAgICBCZWhhdmlvck9wdGlvbnMsXG4gICAgQ2FjaGVDb29raWVCZWhhdmlvcixcbiAgICBDYWNoZWRNZXRob2RzLFxuICAgIENhY2hlSGVhZGVyQmVoYXZpb3IsXG4gICAgQ2FjaGVQb2xpY3ksXG4gICAgQ2FjaGVRdWVyeVN0cmluZ0JlaGF2aW9yLFxuICAgIERpc3RyaWJ1dGlvbixcbiAgICBJQ2FjaGVQb2xpY3ksXG4gICAgSU9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgIE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgIE9yaWdpblByb3RvY29sUG9saWN5LFxuICAgIFByaWNlQ2xhc3MsXG4gICAgU2VjdXJpdHlQb2xpY3lQcm90b2NvbCxcbiAgICBWaWV3ZXJQcm90b2NvbFBvbGljeVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7QXJjaGl0ZWN0dXJlLCBDb2RlLCBGdW5jdGlvbiwgTGF5ZXJWZXJzaW9uLCBSdW50aW1lLCBUcmFjaW5nfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHtCbG9ja1B1YmxpY0FjY2VzcywgQnVja2V0LCBCdWNrZXRBY2Nlc3NDb250cm9sLCBJQnVja2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQge0FhYWFSZWNvcmQsIEFSZWNvcmQsIEhvc3RlZFpvbmUsIElIb3N0ZWRab25lLCBSZWNvcmRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtCdWNrZXREZXBsb3ltZW50LCBDYWNoZUNvbnRyb2wsIFNvdXJjZSwgU3RvcmFnZUNsYXNzfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7SHR0cE9yaWdpbiwgUzNPcmlnaW59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zXCI7XG5pbXBvcnQge0Nsb3VkRnJvbnRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQge0h0dHBNZXRob2R9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucy10YXNrc1wiO1xuaW1wb3J0IHtSZXRlbnRpb25EYXlzfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcbmltcG9ydCB7SHR0cExhbWJkYUludGVncmF0aW9ufSBmcm9tICdAYXdzLWNkay9hd3MtYXBpZ2F0ZXdheXYyLWludGVncmF0aW9ucy1hbHBoYSc7XG5pbXBvcnQge0RvbWFpbk5hbWUsIEVuZHBvaW50VHlwZSwgSHR0cEFwaSwgU2VjdXJpdHlQb2xpY3l9IGZyb20gXCJAYXdzLWNkay9hd3MtYXBpZ2F0ZXdheXYyLWFscGhhXCI7XG5pbXBvcnQge2dldE51eHRBcHBTdGF0aWNBc3NldENvbmZpZ3MsIFN0YXRpY0Fzc2V0Q29uZmlnfSBmcm9tIFwiLi9udXh0LWFwcC1zdGF0aWMtYXNzZXRzXCI7XG5pbXBvcnQge0FwcFN0YWNrUHJvcHN9IGZyb20gXCIuL2FwcC1zdGFjay1wcm9wc1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQge1J1bGUsIFJ1bGVUYXJnZXRJbnB1dCwgU2NoZWR1bGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzXCI7XG5pbXBvcnQge0xhbWJkYUZ1bmN0aW9ufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzXCI7XG5pbXBvcnQge051eHRDb25maWd9IGZyb20gXCIuL251eHQtY29uZmlnXCI7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgcHJvcHMgcmVxdWlyZWQgZm9yIHRoZSB7QHNlZSBOdXh0QXBwU3RhY2t9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE51eHRBcHBTdGFja1Byb3BzIGV4dGVuZHMgQXBwU3RhY2tQcm9wcyB7XG4gICAgLyoqXG4gICAgICogVGhlIGRvbWFpbiAod2l0aG91dCB0aGUgcHJvdG9jb2wpIGF0IHdoaWNoIHRoZSBOdXh0IGFwcCBzaGFsbCBiZSBwdWJsaWNseSBhdmFpbGFibGUuXG4gICAgICogQSBETlMgcmVjb3JkIHdpbGwgYmUgYXV0b21hdGljYWxseSBjcmVhdGVkIGluIFJvdXRlNTMgZm9yIHRoZSBkb21haW4uXG4gICAgICogVGhpcyBhbHNvIHN1cHBvcnRzIHN1YmRvbWFpbnMuXG4gICAgICogRXhhbXBsZXM6IFwiZXhhbXBsZS5jb21cIiwgXCJzdWIuZXhhbXBsZS5jb21cIlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRvbWFpbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGlkIG9mIHRoZSBob3N0ZWQgem9uZSB0byBjcmVhdGUgYSBETlMgcmVjb3JkIGZvciB0aGUgc3BlY2lmaWVkIGRvbWFpbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBob3N0ZWRab25lSWQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBBUk4gb2YgdGhlIGNlcnRpZmljYXRlIHRvIHVzZSBvbiBDbG91ZEZyb250IGZvciB0aGUgTnV4dCBhcHAgdG8gbWFrZSBpdCBhY2Nlc3NpYmxlIHZpYSBIVFRQUy5cbiAgICAgKiBUaGUgY2VydGlmaWNhdGUgbXVzdCBiZSBpc3N1ZWQgZm9yIHRoZSBzcGVjaWZpZWQgZG9tYWluIGluIHVzLWVhc3QtMSAoZ2xvYmFsKSByZWdhcmRsZXNzIG9mIHRoZVxuICAgICAqIHJlZ2lvbiBzcGVjaWZpZWQgdmlhICdlbnYucmVnaW9uJyBhcyBDbG91ZEZyb250IG9ubHkgd29ya3MgZ2xvYmFsbHkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZ2xvYmFsVGxzQ2VydGlmaWNhdGVBcm46IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBBUk4gb2YgdGhlIGNlcnRpZmljYXRlIHRvIHVzZSBhdCB0aGUgQXBpR2F0ZXdheSBmb3IgdGhlIE51eHQgYXBwIHRvIG1ha2UgaXQgYWNjZXNzaWJsZSB2aWEgdGhlIGN1c3RvbSBkb21haW5cbiAgICAgKiBhbmQgdG8gcHJvdmlkZSB0aGUgY3VzdG9tIGRvbWFpbiB0byB0aGUgTnV4dCBhcHAgdmlhIHRoZSAnSG9zdCcgaGVhZGVyIGZvciBzZXJ2ZXIgc2lkZSByZW5kZXJpbmcgdXNlIGNhc2VzLlxuICAgICAqIFRoZSBjZXJ0aWZpY2F0ZSBtdXN0IGJlIGlzc3VlZCBpbiB0aGUgc2FtZSByZWdpb24gYXMgc3BlY2lmaWVkIHZpYSAnZW52LnJlZ2lvbicgYXMgQXBpR2F0ZXdheSB3b3JrcyByZWdpb25hbGx5LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlZ2lvbmFsVGxzQ2VydGlmaWNhdGVBcm46IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBudXh0LmNvbmZpZy5qcyBvZiB0aGUgTnV4dCBhcHAuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbnV4dENvbmZpZzogTnV4dENvbmZpZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBtZW1vcnkgc2l6ZSB0byBhcHBseSB0byB0aGUgTnV4dCBhcHAncyBMYW1iZGEuXG4gICAgICogRGVmYXVsdHMgdG8gNTEyTUIuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbWVtb3J5U2l6ZT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gZW5hYmxlIEFXUyBYLVJheSBmb3IgdGhlIE51eHQgTGFtYmRhIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuYWJsZVRyYWNpbmc/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBMYW1iZGEgZnVuY3Rpb24gdGhhdCByZW5kZXJzIHRoZSBOdXh0IGFwcCBhbmQgaXMgcHVibGljbHkgcmVhY2hhYmxlIHZpYSBhIHNwZWNpZmllZCBkb21haW4uXG4gKi9cbmV4cG9ydCBjbGFzcyBOdXh0QXBwU3RhY2sgZXh0ZW5kcyBTdGFjayB7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBwcmVmaXggb2YgdGhlIHJlc291cmNlcyBjcmVhdGVkIGJ5IHRoZSBzdGFjay5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZUlkUHJlZml4OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBmb3IgdGhlIGN1cnJlbnQgZGVwbG95bWVudCB0aGF0IGlzIHVzZWQgYXMgUzMgZm9sZGVyIG5hbWVcbiAgICAgKiB0byBzdG9yZSB0aGUgc3RhdGljIGFzc2V0cyBvZiB0aGUgTnV4dCBhcHAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVwbG95bWVudFJldmlzaW9uOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpdHkgdG8gdXNlIGZvciBhY2Nlc3NpbmcgdGhlIGRlcGxveW1lbnQgYXNzZXRzIG9uIFMzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkbkFjY2Vzc0lkZW50aXR5OiBJT3JpZ2luQWNjZXNzSWRlbnRpdHk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgUzMgYnVja2V0IHdoZXJlIHRoZSBkZXBsb3ltZW50IGFzc2V0cyBnZXRzIHN0b3JlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljQXNzZXRzQnVja2V0OiBJQnVja2V0O1xuXG4gICAgLyoqXG4gICAgICogVGhlIExhbWJkYSBmdW5jdGlvbiB0byByZW5kZXIgdGhlIE51eHQgYXBwIG9uIHRoZSBzZXJ2ZXIgc2lkZS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogRnVuY3Rpb247XG5cbiAgICAvKipcbiAgICAgKiBUaGUgQVBJIGdhdGV3YXkgdG8gbWFrZSB0aGUgTGFtYmRhIGZ1bmN0aW9uIHRvIHJlbmRlciB0aGUgTnV4dCBhcHAgcHVibGljbHkgYXZhaWxhYmxlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGFwaUdhdGV3YXk6IEh0dHBBcGk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY29uZmlncyBmb3IgdGhlIHN0YXRpYyBhc3NldHMgb2YgdGhlIE51eHQgYXBwIHRoYXQgc2hhbGwgYmUgcHVibGljbHkgYXZhaWxhYmxlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHN0YXRpY0Fzc2V0Q29uZmlnczogU3RhdGljQXNzZXRDb25maWdbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB0byByb3V0ZSBpbmNvbWluZyByZXF1ZXN0cyB0byB0aGUgTnV4dCBMYW1iZGEgZnVuY3Rpb24gKHZpYSB0aGUgQVBJIGdhdGV3YXkpXG4gICAgICogb3IgdGhlIFMzIGFzc2V0cyBmb2xkZXIgKHdpdGggY2FjaGluZykuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RuOiBEaXN0cmlidXRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTnV4dEFwcFN0YWNrUHJvcHMpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5yZXNvdXJjZUlkUHJlZml4ID0gYCR7cHJvcHMucHJvamVjdH0tJHtwcm9wcy5zZXJ2aWNlfS0ke3Byb3BzLmVudmlyb25tZW50fWA7XG4gICAgICAgIHRoaXMuZGVwbG95bWVudFJldmlzaW9uID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgICAgICB0aGlzLnN0YXRpY0Fzc2V0Q29uZmlncyA9IGdldE51eHRBcHBTdGF0aWNBc3NldENvbmZpZ3MocHJvcHMubnV4dENvbmZpZyk7XG4gICAgICAgIHRoaXMuY2RuQWNjZXNzSWRlbnRpdHkgPSB0aGlzLmNyZWF0ZUNkbkFjY2Vzc0lkZW50aXR5KCk7XG4gICAgICAgIHRoaXMuc3RhdGljQXNzZXRzQnVja2V0ID0gdGhpcy5jcmVhdGVTdGF0aWNBc3NldHNCdWNrZXQoKTtcbiAgICAgICAgdGhpcy5sYW1iZGFGdW5jdGlvbiA9IHRoaXMuY3JlYXRlTGFtYmRhRnVuY3Rpb24ocHJvcHMpO1xuICAgICAgICB0aGlzLmFwaUdhdGV3YXkgPSB0aGlzLmNyZWF0ZUFwaUdhdGV3YXkocHJvcHMpO1xuICAgICAgICB0aGlzLmNkbiA9IHRoaXMuY3JlYXRlQ2xvdWRGcm9udERpc3RyaWJ1dGlvbihwcm9wcyk7XG4gICAgICAgIHRoaXMuY29uZmlndXJlRGVwbG95bWVudHMoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVEbnNSZWNvcmRzKHByb3BzKTtcbiAgICAgICAgdGhpcy5jcmVhdGVQaW5nUnVsZShwcm9wcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgaWRlbnRpdHkgdG8gYWNjZXNzIHRoZSBTMyBkZXBsb3ltZW50IGFzc2V0IGZpbGVzIHZpYSB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlQ2RuQWNjZXNzSWRlbnRpdHkoKTogSU9yaWdpbkFjY2Vzc0lkZW50aXR5IHtcbiAgICAgICAgY29uc3Qgb3JpZ2luQWNjZXNzSWRlbnRpdHlOYW1lID0gYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1jZG4tczMtYWNjZXNzYDtcbiAgICAgICAgcmV0dXJuIG5ldyBPcmlnaW5BY2Nlc3NJZGVudGl0eSh0aGlzLCBvcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIGJ1Y2tldCB0byBzdG9yZSB0aGUgc3RhdGljIGRlcGxveW1lbnQgYXNzZXQgZmlsZXMgb2YgdGhlIE51eHQgYXBwLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZVN0YXRpY0Fzc2V0c0J1Y2tldCgpOiBJQnVja2V0IHtcbiAgICAgICAgY29uc3QgYnVja2V0TmFtZSA9IGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tYXNzZXRzYDtcbiAgICAgICAgY29uc3QgYnVja2V0ID0gbmV3IEJ1Y2tldCh0aGlzLCBidWNrZXROYW1lLCB7XG4gICAgICAgICAgICBhY2Nlc3NDb250cm9sOiBCdWNrZXRBY2Nlc3NDb250cm9sLkFVVEhFTlRJQ0FURURfUkVBRCxcbiAgICAgICAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBCbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgICAgICAgICBidWNrZXROYW1lLFxuICAgICAgICAgICAgLy8gVGhlIGJ1Y2tldCBhbmQgYWxsIG9mIGl0cyBvYmplY3RzIGNhbiBiZSBkZWxldGVkLCBiZWNhdXNlIGFsbCB0aGUgY29udGVudCBpcyBtYW5hZ2VkIGluIHRoaXMgcHJvamVjdFxuICAgICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJ1Y2tldC5ncmFudFJlYWRXcml0ZSh0aGlzLmNkbkFjY2Vzc0lkZW50aXR5KTtcblxuICAgICAgICByZXR1cm4gYnVja2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBMYW1iZGEgbGF5ZXIgd2l0aCB0aGUgbm9kZV9tb2R1bGVzIHJlcXVpcmVkIHRvIHJlbmRlciB0aGUgTnV4dCBhcHAgb24gdGhlIHNlcnZlciBzaWRlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZVNzckxhbWJkYUxheWVyKCk6IExheWVyVmVyc2lvbiB7XG4gICAgICAgIGNvbnN0IGxheWVyTmFtZSA9IGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tc3NyLWxheWVyYDtcbiAgICAgICAgcmV0dXJuIG5ldyBMYXllclZlcnNpb24odGhpcywgbGF5ZXJOYW1lLCB7XG4gICAgICAgICAgICBsYXllclZlcnNpb25OYW1lOiBsYXllck5hbWUsXG4gICAgICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldCgnLm51eHQvY2RrLWRlcGxveW1lbnQvbGF5ZXInKSxcbiAgICAgICAgICAgIGNvbXBhdGlibGVSdW50aW1lczogW1J1bnRpbWUuTk9ERUpTXzEyX1hdLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBQcm92aWRlcyB0aGUgbm9kZV9tb2R1bGVzIHJlcXVpcmVkIGZvciBTU1Igb2YgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LmAsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIExhbWJkYSBmdW5jdGlvbiB0byByZW5kZXIgdGhlIE51eHQgYXBwLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZUxhbWJkYUZ1bmN0aW9uKHByb3BzOiBOdXh0QXBwU3RhY2tQcm9wcyk6IEZ1bmN0aW9uIHtcbiAgICAgICAgY29uc3QgZnVuY05hbWUgPSBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWZ1bmN0aW9uYDtcblxuICAgICAgICByZXR1cm4gbmV3IEZ1bmN0aW9uKHRoaXMsIGZ1bmNOYW1lLCB7XG4gICAgICAgICAgICBmdW5jdGlvbk5hbWU6IGZ1bmNOYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBSZW5kZXJzIHRoZSAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0gTnV4dCBhcHAuYCxcbiAgICAgICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzEyX1gsXG4gICAgICAgICAgICBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICAgICAgICBsYXllcnM6IFt0aGlzLmNyZWF0ZVNzckxhbWJkYUxheWVyKCldLFxuICAgICAgICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQoJy5udXh0L2Nkay1kZXBsb3ltZW50L3NyYycsIHtcbiAgICAgICAgICAgICAgICBleGNsdWRlOiBbJyoqLnN2ZycsICcqKi5pY28nLCAnKioucG5nJywgJyoqLmpwZycsICcqKi5qcy5tYXAnXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygxMCksXG4gICAgICAgICAgICBtZW1vcnlTaXplOiBwcm9wcy5tZW1vcnlTaXplID8/IDUxMixcbiAgICAgICAgICAgIGxvZ1JldGVudGlvbjogUmV0ZW50aW9uRGF5cy5PTkVfTU9OVEgsXG4gICAgICAgICAgICBhbGxvd1B1YmxpY1N1Ym5ldDogZmFsc2UsXG4gICAgICAgICAgICB0cmFjaW5nOiBwcm9wcy5lbmFibGVUcmFjaW5nID8gVHJhY2luZy5BQ1RJVkUgOiBUcmFjaW5nLkRJU0FCTEVEXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIEFQSSBnYXRld2F5IHRvIG1ha2UgdGhlIE51eHQgYXBwIHJlbmRlciBMYW1iZGEgZnVuY3Rpb24gcHVibGljbHkgYXZhaWxhYmxlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZUFwaUdhdGV3YXkocHJvcHM6IE51eHRBcHBTdGFja1Byb3BzKTogSHR0cEFwaSB7XG4gICAgICAgIGNvbnN0IGFwaU5hbWUgPSBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWFwaWA7XG4gICAgICAgIGNvbnN0IGxhbWJkYUludGVncmF0aW9uID0gbmV3IEh0dHBMYW1iZGFJbnRlZ3JhdGlvbihgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWxhbWJkYS1pbnRlZ3JhdGlvbmAsIHRoaXMubGFtYmRhRnVuY3Rpb24pO1xuXG4gICAgICAgIC8vIFdlIHdhbnQgdGhlIEFQSSBnYXRld2F5IHRvIGJlIGFjY2Vzc2libGUgYnkgdGhlIGN1c3RvbSBkb21haW4gbmFtZS5cbiAgICAgICAgLy8gRXZlbiB0aG91Z2ggd2UgYWNjZXNzIHRoZSBnYXRld2F5IHZpYSBDbG91ZEZyb250IChmb3IgYXV0byBodHRwIHRvIGh0dHBzIHJlZGlyZWN0cyksIHRoaXMgaXMgcmVxdWlyZWRcbiAgICAgICAgLy8gdG8gYmUgYWJsZSB0byByZWRpcmVjdCB0aGUgb3JpZ2luYWwgJ0hvc3QnIGhlYWRlciB0byB0aGUgTnV4dCBhcHBsaWNhdGlvbiwgaWYgcmVxdWVzdGVkLlxuICAgICAgICBjb25zdCBkb21haW5OYW1lID0gbmV3IERvbWFpbk5hbWUodGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1hcGktZG9tYWluYCwge1xuICAgICAgICAgICAgZG9tYWluTmFtZTogcHJvcHMuZG9tYWluLFxuICAgICAgICAgICAgY2VydGlmaWNhdGU6IENlcnRpZmljYXRlLmZyb21DZXJ0aWZpY2F0ZUFybih0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LXJlZ2lvbmFsLWNlcnRpZmljYXRlYCwgcHJvcHMucmVnaW9uYWxUbHNDZXJ0aWZpY2F0ZUFybiksXG4gICAgICAgICAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZS5SRUdJT05BTCxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiBTZWN1cml0eVBvbGljeS5UTFNfMV8yXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGFwaUdhdGV3YXkgPSBuZXcgSHR0cEFwaSh0aGlzLCBhcGlOYW1lLCB7XG4gICAgICAgICAgICBhcGlOYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBDb25uZWN0cyB0aGUgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9IENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHdpdGggdGhlICR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fSBMYW1iZGEgZnVuY3Rpb24gdG8gbWFrZSBpdCBwdWJsaWNseSBhdmFpbGFibGUuYCxcbiAgICAgICAgICAgIC8vIFRoZSBhcHAgZG9lcyBub3QgYWxsb3cgYW55IGNyb3NzLW9yaWdpbiBhY2Nlc3MgYnkgcHVycG9zZTogdGhlIGFwcCBzaG91bGQgbm90IGJlIGVtYmVkZGFibGUgYW55d2hlcmVcbiAgICAgICAgICAgIGNvcnNQcmVmbGlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGRlZmF1bHRJbnRlZ3JhdGlvbjogbGFtYmRhSW50ZWdyYXRpb24sXG4gICAgICAgICAgICBkZWZhdWx0RG9tYWluTWFwcGluZzoge1xuICAgICAgICAgICAgICAgIGRvbWFpbk5hbWU6IGRvbWFpbk5hbWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXBpR2F0ZXdheS5hZGRSb3V0ZXMoe1xuICAgICAgICAgICAgaW50ZWdyYXRpb246IGxhbWJkYUludGVncmF0aW9uLFxuICAgICAgICAgICAgcGF0aDogJy97cHJveHkrfScsXG4gICAgICAgICAgICBtZXRob2RzOiBbSHR0cE1ldGhvZC5HRVQsIEh0dHBNZXRob2QuSEVBRF0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBhcGlHYXRld2F5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHRoYXQgcm91dGVzIGluY29taW5nIHJlcXVlc3RzIHRvIHRoZSBOdXh0IExhbWJkYSBmdW5jdGlvbiAodmlhIHRoZSBBUEkgZ2F0ZXdheSlcbiAgICAgKiBvciB0aGUgUzMgYXNzZXRzIGZvbGRlciAod2l0aCBjYWNoaW5nKS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVDbG91ZEZyb250RGlzdHJpYnV0aW9uKHByb3BzOiBOdXh0QXBwU3RhY2tQcm9wcyk6IERpc3RyaWJ1dGlvbiB7XG4gICAgICAgIGNvbnN0IGNkbk5hbWUgPSBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWNkbmA7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBEaXN0cmlidXRpb24odGhpcywgY2RuTmFtZSwge1xuICAgICAgICAgICAgZG9tYWluTmFtZXM6IFtwcm9wcy5kb21haW5dLFxuICAgICAgICAgICAgY29tbWVudDogYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1yZWRpcmVjdGAsXG4gICAgICAgICAgICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uOiBTZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMTgsXG4gICAgICAgICAgICBjZXJ0aWZpY2F0ZTogQ2VydGlmaWNhdGUuZnJvbUNlcnRpZmljYXRlQXJuKHRoaXMsIGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tZ2xvYmFsLWNlcnRpZmljYXRlYCwgcHJvcHMuZ2xvYmFsVGxzQ2VydGlmaWNhdGVBcm4pLFxuICAgICAgICAgICAgZGVmYXVsdEJlaGF2aW9yOiB0aGlzLmNyZWF0ZU51eHRBcHBSb3V0ZUJlaGF2aW9yKCksXG4gICAgICAgICAgICBhZGRpdGlvbmFsQmVoYXZpb3JzOiB0aGlzLmNyZWF0ZVN0YXRpY0Fzc2V0c1JvdXRlQmVoYXZpb3IoKSxcbiAgICAgICAgICAgIHByaWNlQ2xhc3M6IFByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfMTAwLCAvLyBVc2Ugb25seSBOb3J0aCBBbWVyaWNhIGFuZCBFdXJvcGVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGJlaGF2aW9yIGZvciB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gdG8gcm91dGUgaW5jb21pbmcgcmVxdWVzdHMgdG8gdGhlIE51eHQgcmVuZGVyIExhbWJkYSBmdW5jdGlvbiAodmlhIEFQSSBnYXRld2F5KS5cbiAgICAgKiBBZGRpdGlvbmFsbHksIHRoaXMgYXV0b21hdGljYWxseSByZWRpcmVjdHMgSFRUUCByZXF1ZXN0cyB0byBIVFRQUy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVOdXh0QXBwUm91dGVCZWhhdmlvcigpOiBCZWhhdmlvck9wdGlvbnMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgb3JpZ2luOiBuZXcgSHR0cE9yaWdpbihgJHt0aGlzLmFwaUdhdGV3YXkuaHR0cEFwaUlkfS5leGVjdXRlLWFwaS4ke3RoaXMucmVnaW9ufS5hbWF6b25hd3MuY29tYCwge1xuICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25BdHRlbXB0czogMixcbiAgICAgICAgICAgICAgICBjb25uZWN0aW9uVGltZW91dDogRHVyYXRpb24uc2Vjb25kcygyKSxcbiAgICAgICAgICAgICAgICByZWFkVGltZW91dDogRHVyYXRpb24uc2Vjb25kcygxMCksXG4gICAgICAgICAgICAgICAgcHJvdG9jb2xQb2xpY3k6IE9yaWdpblByb3RvY29sUG9saWN5LkhUVFBTX09OTFksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGFsbG93ZWRNZXRob2RzOiBBbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRCxcbiAgICAgICAgICAgIGNvbXByZXNzOiB0cnVlLFxuICAgICAgICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IFZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTLFxuICAgICAgICAgICAgb3JpZ2luUmVxdWVzdFBvbGljeTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY2FjaGVQb2xpY3k6IHRoaXMuY3JlYXRlU3NyQ2FjaGVQb2xpY3koKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2FjaGUgcG9saWN5IGZvciB0aGUgTnV4dCBhcHAgcm91dGUgYmVoYXZpb3Igb2YgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICAgICAqIEV2ZW50aG91Z2ggd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSBTU1IgcmVxdWVzdHMsIHdlIHN0aWxsIGhhdmUgdG8gY3JlYXRlIHRoaXMgY2FjaGUgcG9saWN5IGluIG9yZGVyIHRvXG4gICAgICogZm9yd2FyZCByZXF1aXJlZCBjb29raWVzLCBxdWVyeSBwYXJhbXMgYW5kIGhlYWRlcnMuIFRoaXMgZG9lc24ndCBtYWtlIGFueSBzZW5zZSwgYmVjYXVzZSBpZiBub3RoaW5nXG4gICAgICogaXMgY2FjaGVkLCBvbmUgd291bGQgZXhwZWN0LCB0aGF0IGFueXRoaW5nIHdvdWxkL2NvdWxkIGJlIGZvcndhcmRlZCwgYnV0IGFueXdheS4uLlxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlU3NyQ2FjaGVQb2xpY3koKTogSUNhY2hlUG9saWN5IHtcblxuICAgICAgICAvLyBUaGUgaGVhZGVycyB0byBtYWtlIGFjY2Vzc2libGUgaW4gdGhlIE51eHQgYXBwIGNvZGUuXG4gICAgICAgIC8vIFRoZXJlIGlzIG5vICdDYWNoZUhlYWRlckJlaGF2aW9yLmFsbCgpJyBvcHRpb24sIHNvIHdlIGhhdmUgdG8gZXhwbGljaXRseSBkZWZpbmUgdGhlbS5cbiAgICAgICAgY29uc3QgaGVhZGVycyA9IFtcbiAgICAgICAgICAgICdVc2VyLUFnZW50JywgLy8gUmVxdWlyZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBtb2JpbGUgYW5kIGRlc2t0b3AgdGVtcGxhdGVcbiAgICAgICAgICAgICdBdXRob3JpemF0aW9uJywgLy8gRm9yIGF1dGhvcml6YXRpb25cbiAgICAgICAgICAgICdIb3N0JyAvLyBUbyBhY2Nlc3MgdGhlIGRvbWFpbiBuYW1lIG9uIFNTUiByZXF1ZXN0c1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiBuZXcgQ2FjaGVQb2xpY3kodGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1jYWNoZS1wb2xpY3lgLCB7XG4gICAgICAgICAgICBjYWNoZVBvbGljeU5hbWU6IGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tY2RuLWNhY2hlLXBvbGljeWAsXG4gICAgICAgICAgICBjb21tZW50OiBgUGFzc2VzIGFsbCByZXF1aXJlZCByZXF1ZXN0IGRhdGEgdG8gdGhlICR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fSBvcmlnaW4uYCxcbiAgICAgICAgICAgIGRlZmF1bHRUdGw6IER1cmF0aW9uLnNlY29uZHMoMCksXG4gICAgICAgICAgICBtaW5UdGw6IER1cmF0aW9uLnNlY29uZHMoMCksXG4gICAgICAgICAgICBtYXhUdGw6IER1cmF0aW9uLnNlY29uZHMoMSksIC8vIFRoZSBtYXggVFRMIG11c3Qgbm90IGJlIDAgZm9yIGEgY2FjaGUgcG9saWN5XG4gICAgICAgICAgICBxdWVyeVN0cmluZ0JlaGF2aW9yOiBDYWNoZVF1ZXJ5U3RyaW5nQmVoYXZpb3IuYWxsKCksXG4gICAgICAgICAgICBoZWFkZXJCZWhhdmlvcjogQ2FjaGVIZWFkZXJCZWhhdmlvci5hbGxvd0xpc3QoLi4uaGVhZGVycyksXG4gICAgICAgICAgICBjb29raWVCZWhhdmlvcjogQ2FjaGVDb29raWVCZWhhdmlvci5hbGwoKSxcbiAgICAgICAgICAgIGVuYWJsZUFjY2VwdEVuY29kaW5nQnJvdGxpOiB0cnVlLFxuICAgICAgICAgICAgZW5hYmxlQWNjZXB0RW5jb2RpbmdHemlwOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYmVoYXZpb3IgZm9yIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB0byByb3V0ZSBtYXRjaGluZyBpbmNvbWluZyByZXF1ZXN0cyBmb3IgdGhlIHN0YXRpYyBhc3NldHNcbiAgICAgKiB0byB0aGUgUzMgYnVja2V0IHRoYXQgaG9sZHMgdGhlc2Ugc3RhdGljIGFzc2V0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVTdGF0aWNBc3NldHNSb3V0ZUJlaGF2aW9yKCk6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yT3B0aW9ucz4ge1xuICAgICAgICBjb25zdCBzdGF0aWNBc3NldHNDYWNoZUNvbmZpZzogQmVoYXZpb3JPcHRpb25zID0ge1xuICAgICAgICAgICAgb3JpZ2luOiBuZXcgUzNPcmlnaW4odGhpcy5zdGF0aWNBc3NldHNCdWNrZXQsIHtcbiAgICAgICAgICAgICAgICBjb25uZWN0aW9uQXR0ZW1wdHM6IDIsXG4gICAgICAgICAgICAgICAgY29ubmVjdGlvblRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMyksXG4gICAgICAgICAgICAgICAgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IHRoaXMuY2RuQWNjZXNzSWRlbnRpdHksXG4gICAgICAgICAgICAgICAgb3JpZ2luUGF0aDogdGhpcy5kZXBsb3ltZW50UmV2aXNpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNvbXByZXNzOiB0cnVlLFxuICAgICAgICAgICAgYWxsb3dlZE1ldGhvZHM6IEFsbG93ZWRNZXRob2RzLkFMTE9XX0dFVF9IRUFEX09QVElPTlMsXG4gICAgICAgICAgICBjYWNoZWRNZXRob2RzOiBDYWNoZWRNZXRob2RzLkNBQ0hFX0dFVF9IRUFEX09QVElPTlMsXG4gICAgICAgICAgICBjYWNoZVBvbGljeTogQ2FjaGVQb2xpY3kuQ0FDSElOR19PUFRJTUlaRUQsXG4gICAgICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcnVsZXM6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yT3B0aW9ucz4gPSB7fTtcbiAgICAgICAgdGhpcy5zdGF0aWNBc3NldENvbmZpZ3MuZm9yRWFjaChhc3NldCA9PiB7XG4gICAgICAgICAgICBydWxlc1tgJHthc3NldC50YXJnZXR9JHthc3NldC5wYXR0ZXJufWBdID0gc3RhdGljQXNzZXRzQ2FjaGVDb25maWdcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4gcnVsZXNcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGxvYWRzIHRoZSBzdGF0aWMgYXNzZXRzIG9mIHRoZSBOdXh0IGFwcCBhcyBkZWZpbmVkIGluIHtAc2VlIGdldE51eHRBcHBTdGF0aWNBc3NldENvbmZpZ3N9IHRvIHRoZSBzdGF0aWMgYXNzZXRzIFMzIGJ1Y2tldC5cbiAgICAgKiBJbiBvcmRlciB0byBlbmFibGUgYSB6ZXJvLWRvd250aW1lIGRlcGxveW1lbnQsIHdlIHVzZSBhIG5ldyBzdWJkaXJlY3RvcnkgKHJldmlzaW9uKSBmb3IgZXZlcnkgZGVwbG95bWVudC5cbiAgICAgKiBUaGUgcHJldmlvdXMgdmVyc2lvbnMgYXJlIHJldGFpbmVkIHRvIGFsbG93IGNsaWVudHMgdG8gY29udGludWUgdG8gd29yayB3aXRoIGFuIG9sZGVyIHJldmlzaW9uIGJ1dCBnZXRzIGNsZWFuZWQgdXBcbiAgICAgKiBhZnRlciBhIHNwZWNpZmllZCBwZXJpb2Qgb2YgdGltZSB2aWEgdGhlIExhbWJkYSBmdW5jdGlvbiBpbiB0aGUge0BzZWUgTnV4dEFwcEFzc2V0c0NsZWFudXBTdGFja30uXG4gICAgICovXG4gICAgcHJpdmF0ZSBjb25maWd1cmVEZXBsb3ltZW50cygpOiBCdWNrZXREZXBsb3ltZW50W10ge1xuICAgICAgICBjb25zdCBkZWZhdWx0Q2FjaGVDb25maWcgPSBbXG4gICAgICAgICAgICBDYWNoZUNvbnRyb2wuc2V0UHVibGljKCksXG4gICAgICAgICAgICBDYWNoZUNvbnRyb2wubWF4QWdlKER1cmF0aW9uLmRheXMoMzY1KSksXG4gICAgICAgICAgICBDYWNoZUNvbnRyb2wuZnJvbVN0cmluZygnaW1tdXRhYmxlJyksXG4gICAgICAgIF07XG5cbiAgICAgICAgLy8gUmV0dXJucyBhIGRlcGxveW1lbnQgZm9yIGV2ZXJ5IGNvbmZpZ3VyZWQgc3RhdGljIGFzc2V0IHR5cGUgdG8gcmVzcGVjdCB0aGUgZGlmZmVyZW50IGNhY2hlIHNldHRpbmdzXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRpY0Fzc2V0Q29uZmlncy5maWx0ZXIoYXNzZXQgPT4gZnMuZXhpc3RzU3luYyhhc3NldC5zb3VyY2UpKS5tYXAoKGFzc2V0LCBhc3NldEluZGV4KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1hc3NldHMtZGVwbG95bWVudC0ke2Fzc2V0SW5kZXh9YCwge1xuICAgICAgICAgICAgICAgIHNvdXJjZXM6IFtTb3VyY2UuYXNzZXQoYXNzZXQuc291cmNlKV0sXG4gICAgICAgICAgICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuc3RhdGljQXNzZXRzQnVja2V0LFxuICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uS2V5UHJlZml4OiB0aGlzLmRlcGxveW1lbnRSZXZpc2lvbiArIGFzc2V0LnRhcmdldCxcbiAgICAgICAgICAgICAgICBwcnVuZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgc3RvcmFnZUNsYXNzOiBTdG9yYWdlQ2xhc3MuU1RBTkRBUkQsXG4gICAgICAgICAgICAgICAgZXhjbHVkZTogWycqJ10sXG4gICAgICAgICAgICAgICAgaW5jbHVkZTogW2Fzc2V0LnBhdHRlcm5dLFxuICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDogYXNzZXQuY2FjaGVDb250cm9sID8/IGRlZmF1bHRDYWNoZUNvbmZpZyxcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogYXNzZXQuY29udGVudFR5cGUsXG4gICAgICAgICAgICAgICAgbG9nUmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLk9ORV9EQVksXG4gICAgICAgICAgICAgICAgbWVtb3J5TGltaXQ6IDI1NiAvLyBTb21lIE51eHQgYXBwbGljYXRpb25zIGhhdmUgYSBsb3Qgb2YgYXNzZXRzIHRvIGRlcGxveSB3aGVyZWJ5IHRoZSBmdW5jdGlvbiBtaWdodCBydW4gb3V0IG9mIG1lbW9yeVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzb2x2ZXMgdGhlIGhvc3RlZCB6b25lIGF0IHdoaWNoIHRoZSBETlMgcmVjb3JkcyBzaGFsbCBiZSBjcmVhdGVkIHRvIGFjY2VzcyB0aGUgTnV4dCBhcHAgb24gdGhlIGludGVybmV0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BzXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRIb3N0ZWRab25lKHByb3BzOiBOdXh0QXBwU3RhY2tQcm9wcyk6IElIb3N0ZWRab25lIHtcbiAgICAgICAgY29uc3QgZG9tYWluUGFydHMgPSBwcm9wcy5kb21haW4uc3BsaXQoJy4nKTtcblxuICAgICAgICByZXR1cm4gSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXModGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1ob3N0ZWQtem9uZWAsIHtcbiAgICAgICAgICAgIGhvc3RlZFpvbmVJZDogcHJvcHMuaG9zdGVkWm9uZUlkLFxuICAgICAgICAgICAgem9uZU5hbWU6IGRvbWFpblBhcnRzW2RvbWFpblBhcnRzLmxlbmd0aCAtIDFdLCAvLyBTdXBwb3J0IHN1YmRvbWFpbnNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgRE5TIHJlY29yZHMgdG8gYWNjZXNzIHRoZSBOdXh0IGFwcCBvbiB0aGUgaW50ZXJuZXQgdmlhIHRoZSBjdXN0b20gZG9tYWluLlxuICAgICAqXG4gICAgICogQHBhcmFtIHByb3BzXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZURuc1JlY29yZHMocHJvcHM6IE51eHRBcHBTdGFja1Byb3BzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGhvc3RlZFpvbmUgPSB0aGlzLmZpbmRIb3N0ZWRab25lKHByb3BzKTtcbiAgICAgICAgY29uc3QgZG5zVGFyZ2V0ID0gUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgQ2xvdWRGcm9udFRhcmdldCh0aGlzLmNkbikpO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhIHJlY29yZCBmb3IgSVB2NFxuICAgICAgICBuZXcgQVJlY29yZCh0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LWlwdjQtcmVjb3JkYCwge1xuICAgICAgICAgICAgcmVjb3JkTmFtZTogcHJvcHMuZG9tYWluLFxuICAgICAgICAgICAgem9uZTogaG9zdGVkWm9uZSxcbiAgICAgICAgICAgIHRhcmdldDogZG5zVGFyZ2V0LFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBDcmVhdGUgYSByZWNvcmQgZm9yIElQdjZcbiAgICAgICAgbmV3IEFhYWFSZWNvcmQodGhpcywgYCR7dGhpcy5yZXNvdXJjZUlkUHJlZml4fS1pcHY2LXJlY29yZGAsIHtcbiAgICAgICAgICAgIHJlY29yZE5hbWU6IHByb3BzLmRvbWFpbixcbiAgICAgICAgICAgIHpvbmU6IGhvc3RlZFpvbmUsXG4gICAgICAgICAgICB0YXJnZXQ6IGRuc1RhcmdldCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNjaGVkdWxlZCBydWxlIHRvIHBpbmcgdGhlIE51eHQgYXBwIExhbWJkYSBmdW5jdGlvbiBldmVyeSA1IG1pbnV0ZXMgaW4gb3JkZXIgdG8ga2VlcCBpdCB3YXJtXG4gICAgICogYW5kIHNwZWVkIHVwIGluaXRpYWwgU1NSIHJlcXVlc3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZVBpbmdSdWxlKHByb3BzOiBOdXh0QXBwU3RhY2tQcm9wcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBmYWtlQXBpR2F0ZXdheUV2ZW50RGF0YSA9IHtcbiAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICAgICAgICAgICAgXCJyb3V0ZUtleVwiOiBcIkdFVCAve3Byb3h5K31cIixcbiAgICAgICAgICAgIFwicmF3UGF0aFwiOiBcIi9cIixcbiAgICAgICAgICAgIFwicmF3UXVlcnlTdHJpbmdcIjogXCJcIixcbiAgICAgICAgICAgIFwiaGVhZGVyc1wiOiB7fSxcbiAgICAgICAgICAgIFwicmVxdWVzdENvbnRleHRcIjoge1xuICAgICAgICAgICAgICAgIFwiZG9tYWluTmFtZVwiOiBwcm9wcy5kb21haW4sXG4gICAgICAgICAgICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJwYXRoXCI6IFwiL1wiLFxuICAgICAgICAgICAgICAgICAgICBcInByb3RvY29sXCI6IFwiSFRUUC8xLjFcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBuZXcgUnVsZSh0aGlzLCBgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9LXBpbmdlci1ydWxlYCwge1xuICAgICAgICAgICAgcnVsZU5hbWU6IGAke3RoaXMucmVzb3VyY2VJZFByZWZpeH0tcGluZ2VyYCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgUGluZ3MgdGhlIExhbWJkYSBmdW5jdGlvbiBvZiB0aGUgJHt0aGlzLnJlc291cmNlSWRQcmVmaXh9IGFwcCBldmVyeSA1IG1pbnV0ZXMgdG8ga2VlcCBpdCB3YXJtLmAsXG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgc2NoZWR1bGU6IFNjaGVkdWxlLnJhdGUoRHVyYXRpb24ubWludXRlcyg1KSksXG4gICAgICAgICAgICB0YXJnZXRzOiBbbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMubGFtYmRhRnVuY3Rpb24sIHtcbiAgICAgICAgICAgICAgICBldmVudDogUnVsZVRhcmdldElucHV0LmZyb21PYmplY3QoZmFrZUFwaUdhdGV3YXlFdmVudERhdGEpXG4gICAgICAgICAgICB9KV0sXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -31,7 +31,7 @@ import {DomainName, EndpointType, HttpApi, SecurityPolicy} from "@aws-cdk/aws-ap
31
31
  import {getNuxtAppStaticAssetConfigs, StaticAssetConfig} from "./nuxt-app-static-assets";
32
32
  import {AppStackProps} from "./app-stack-props";
33
33
  import * as fs from "fs";
34
- import {Rule, Schedule} from "aws-cdk-lib/aws-events";
34
+ import {Rule, RuleTargetInput, Schedule} from "aws-cdk-lib/aws-events";
35
35
  import {LambdaFunction} from "aws-cdk-lib/aws-events-targets";
36
36
  import {NuxtConfig} from "./nuxt-config";
37
37
 
@@ -157,7 +157,7 @@ export class NuxtAppStack extends Stack {
157
157
  this.cdn = this.createCloudFrontDistribution(props);
158
158
  this.configureDeployments();
159
159
  this.createDnsRecords(props);
160
- this.createPingRule();
160
+ this.createPingRule(props);
161
161
  }
162
162
 
163
163
  /**
@@ -450,13 +450,31 @@ export class NuxtAppStack extends Stack {
450
450
  *
451
451
  * @private
452
452
  */
453
- private createPingRule(): void {
453
+ private createPingRule(props: NuxtAppStackProps): void {
454
+ const fakeApiGatewayEventData = {
455
+ "version": "2.0",
456
+ "routeKey": "GET /{proxy+}",
457
+ "rawPath": "/",
458
+ "rawQueryString": "",
459
+ "headers": {},
460
+ "requestContext": {
461
+ "domainName": props.domain,
462
+ "http": {
463
+ "method": "GET",
464
+ "path": "/",
465
+ "protocol": "HTTP/1.1"
466
+ }
467
+ }
468
+ };
469
+
454
470
  new Rule(this, `${this.resourceIdPrefix}-pinger-rule`, {
455
471
  ruleName: `${this.resourceIdPrefix}-pinger`,
456
472
  description: `Pings the Lambda function of the ${this.resourceIdPrefix} app every 5 minutes to keep it warm.`,
457
473
  enabled: true,
458
474
  schedule: Schedule.rate(Duration.minutes(5)),
459
- targets: [new LambdaFunction(this.lambdaFunction)],
475
+ targets: [new LambdaFunction(this.lambdaFunction, {
476
+ event: RuleTargetInput.fromObject(fakeApiGatewayEventData)
477
+ })],
460
478
  });
461
479
  }
462
480
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cdk-nuxt",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "lib",