cdk-nextjs 0.7.13 → 0.7.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/.jsii +132 -42
  2. package/.jsii.tabl.json +1 -1
  3. package/API.md +56 -0
  4. package/docs/harness-coverage.md +16 -6
  5. package/docs/next-build-output-guide.md +1 -1
  6. package/lib/adapter/adapter.mjs +1 -1
  7. package/lib/generated-structs/OptionalNextjsApiProps.d.ts +6 -0
  8. package/lib/generated-structs/OptionalNextjsApiProps.js +1 -1
  9. package/lib/generated-structs/OptionalNextjsDistributionProps.d.ts +6 -0
  10. package/lib/generated-structs/OptionalNextjsDistributionProps.js +1 -1
  11. package/lib/nextjs-api.d.ts +11 -0
  12. package/lib/nextjs-api.js +63 -9
  13. package/lib/nextjs-api.test.js +127 -1
  14. package/lib/nextjs-build/nextjs-build.js +1 -1
  15. package/lib/nextjs-cache.js +1 -1
  16. package/lib/nextjs-compute/nextjs-containers.js +1 -1
  17. package/lib/nextjs-compute/nextjs-functions.js +1 -1
  18. package/lib/nextjs-distribution.d.ts +21 -0
  19. package/lib/nextjs-distribution.js +69 -4
  20. package/lib/nextjs-distribution.test.js +132 -1
  21. package/lib/nextjs-post-deploy.js +1 -1
  22. package/lib/nextjs-static-assets.js +1 -1
  23. package/lib/root-constructs/nextjs-base-construct.d.ts +7 -0
  24. package/lib/root-constructs/nextjs-base-construct.js +14 -2
  25. package/lib/root-constructs/nextjs-global-containers.js +3 -2
  26. package/lib/root-constructs/nextjs-global-functions.js +3 -2
  27. package/lib/root-constructs/nextjs-regional-containers.js +1 -1
  28. package/lib/root-constructs/nextjs-regional-functions.js +3 -2
  29. package/lib/runtime/lambda.mjs +1 -1
  30. package/lib/runtime/server.mjs +1 -1
  31. package/package.json +1 -1
  32. package/scripts/e2e-harness/README.md +10 -8
@@ -18,7 +18,7 @@ const base_path_1 = require("./utils/base-path");
18
18
  * current build id AND are older than `msTtl`
19
19
  */
20
20
  class NextjsPostDeploy extends constructs_1.Construct {
21
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsPostDeploy", version: "0.7.13" };
21
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsPostDeploy", version: "0.7.14" };
22
22
  customResource;
23
23
  lambdaFunction;
24
24
  props;
@@ -112,7 +112,7 @@ function isWithin(path, dir) {
112
112
  * Creates S3 Bucket for public and _next/static assets and deploys them using S3Deployment.
113
113
  */
114
114
  class NextjsStaticAssets extends constructs_1.Construct {
115
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsStaticAssets", version: "0.7.13" };
115
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsStaticAssets", version: "0.7.14" };
116
116
  bucket;
117
117
  /**
118
118
  * The first of `staticDeployment`, `serviceWorkerDeployment` and
@@ -233,6 +233,13 @@ export declare abstract class NextjsBaseConstruct extends Construct {
233
233
  * infers no ordering between these custom resources on its own.
234
234
  */
235
235
  protected createNextjsPostDeploy(distribution?: IDistribution): NextjsPostDeploy;
236
+ /**
237
+ * The `Service-Worker-Allowed` value for `_next/static/service-worker/*`, or
238
+ * `undefined` when the build has no service worker. The app's own
239
+ * `basePath`, as `next build` uses, not `resolvedBasePath`: it is the URL
240
+ * scope the browser checks.
241
+ */
242
+ protected get serviceWorkerAllowed(): string | undefined;
236
243
  private createNextjsBuild;
237
244
  private createNextjsCache;
238
245
  private createNextjsStaticAssets;
@@ -15,7 +15,7 @@ const base_path_1 = require("../utils/base-path");
15
15
  * Base class for all Next.js root constructs
16
16
  */
17
17
  class NextjsBaseConstruct extends constructs_1.Construct {
18
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsBaseConstruct", version: "0.7.13" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsBaseConstruct", version: "0.7.14" };
19
19
  nextjsBuild;
20
20
  nextjsStaticAssets;
21
21
  nextjsCache;
@@ -222,6 +222,18 @@ class NextjsBaseConstruct extends constructs_1.Construct {
222
222
  }
223
223
  return postDeploy;
224
224
  }
225
+ /**
226
+ * The `Service-Worker-Allowed` value for `_next/static/service-worker/*`, or
227
+ * `undefined` when the build has no service worker. The app's own
228
+ * `basePath`, as `next build` uses, not `resolvedBasePath`: it is the URL
229
+ * scope the browser checks.
230
+ */
231
+ get serviceWorkerAllowed() {
232
+ if (!this.nextjsStaticAssets.serviceWorkerDeployment) {
233
+ return undefined;
234
+ }
235
+ return `/${this.nextjsBuild.nextConfigBasePath}`;
236
+ }
225
237
  createNextjsBuild() {
226
238
  return new nextjs_build_1.NextjsBuild(this, "NextjsBuild", {
227
239
  buildCommand: this.baseProps.buildCommand,
@@ -287,4 +299,4 @@ class NextjsBaseConstruct extends constructs_1.Construct {
287
299
  }
288
300
  }
289
301
  exports.NextjsBaseConstruct = NextjsBaseConstruct;
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWJhc2UtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jvb3QtY29uc3RydWN0cy9uZXh0anMtYmFzZS1jb25zdHJ1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDZDQUFvQztBQUtwQywyQ0FBdUM7QUFDdkMsNENBQXNEO0FBS3RELCtEQUEyRDtBQUMzRCxrREFBb0U7QUFFcEUseUVBSTRDO0FBQzVDLDhEQUcrQjtBQUMvQixrRUFJaUM7QUFDakMsa0RBSzRCO0FBOEg1Qjs7R0FFRztBQUNILE1BQXNCLG1CQUFvQixTQUFRLHNCQUFTOztJQUN6RCxXQUFXLENBQWM7SUFDekIsa0JBQWtCLENBQXFCO0lBQ3ZDLFdBQVcsQ0FBYztJQUlOLFVBQVUsQ0FBYTtJQUMxQyxxRUFBcUU7SUFDbEQsU0FBUyxDQUEyQjtJQUN2RCw0RUFBNEU7SUFDNUUseUVBQXlFO0lBQ3RELGtCQUFrQixDQUFnQztJQUNyRTs7Ozs7T0FLRztJQUNnQixnQkFBZ0IsQ0FBVTtJQUU3QyxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUErQixFQUMvQixVQUFzQjtRQUV0QixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM1Qyx5RUFBeUU7UUFDekUsMkVBQTJFO1FBQzNFLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBQSwyQkFBZSxFQUNyQyxVQUFVLEVBQ1YsS0FBSyxDQUFDLFFBQVEsRUFDZCxJQUFJLENBQUMsV0FBVyxD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QyxDQUFDO0lBQ0wsQ0FBQzs7QUEvVEgsa0RBZ1VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IElEaXN0cmlidXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7IElUYWJsZVYyIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1keW5hbW9kYlwiO1xuaW1wb3J0IHsgSVZwYyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IExPR19QUkVGSVgsIE5leHRqc1R5cGUgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBPcHRpb25hbE5leHRqc0J1aWxkUHJvcHMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNCdWlsZFByb3BzXCI7XG5pbXBvcnQgeyBPcHRpb25hbE5leHRqc0NhY2hlUHJvcHMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNDYWNoZVByb3BzXCI7XG5pbXBvcnQgeyBPcHRpb25hbE5leHRqc1Bvc3REZXBsb3lQcm9wcyB9IGZyb20gXCIuLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc1Bvc3REZXBsb3lQcm9wc1wiO1xuaW1wb3J0IHsgTmV4dGpzQXBpT3ZlcnJpZGVzIH0gZnJvbSBcIi4uL25leHRqcy1hcGlcIjtcbmltcG9ydCB7IE5leHRqc0J1aWxkIH0gZnJvbSBcIi4uL25leHRqcy1idWlsZC9uZXh0anMtYnVpbGRcIjtcbmltcG9ydCB7IE5leHRqc0NhY2hlLCBOZXh0anNDYWNoZU92ZXJyaWRlcyB9IGZyb20gXCIuLi9uZXh0anMtY2FjaGVcIjtcbmltcG9ydCB7IE5leHRqc0NvbXB1dGVCYXNlUHJvcHMgfSBmcm9tIFwiLi4vbmV4dGpzLWNvbXB1dGUvbmV4dGpzLWNvbXB1dGUtYmFzZS1wcm9wc1wiO1xuaW1wb3J0IHtcbiAgTmV4dGpzRnVuY3Rpb25Hcm91cCxcbiAgTmV4dGpzRnVuY3Rpb25zLFxuICBOZXh0anNGdW5jdGlvbnNPdmVycmlkZXMsXG59IGZyb20gXCIuLi9uZXh0anMtY29tcHV0ZS9uZXh0anMtZnVuY3Rpb25zXCI7XG5pbXBvcnQge1xuICBOZXh0anNQb3N0RGVwbG95LFxuICBOZXh0anNQb3N0RGVwbG95T3ZlcnJpZGVzLFxufSBmcm9tIFwiLi4vbmV4dGpzLXBvc3QtZGVwbG95XCI7XG5pbXBvcnQge1xuICBOZXh0anNTdGF0aWNBc3NldHMsXG4gIE5leHRqc1N0YXRpY0Fzc2V0c092ZXJyaWRlcyxcbiAgTmV4dGpzU3RhdGljQXNzZXRzUHJvcHMsXG59IGZyb20gXCIuLi9uZXh0anMtc3RhdGljLWFzc2V0c1wiO1xuaW1wb3J0IHtcbiAgQXBpR2F0ZXdheVByZWZpeCxcbiAgaXNBc3NldFByZWZpeFVuc2VydmVkLFxuICBwcmVmaXhXaXRoQmFzZVBhdGgsXG4gIHJlc29sdmVCYXNlUGF0aCxcbn0gZnJvbSBcIi4uL3V0aWxzL2Jhc2UtcGF0aFwiO1xuXG4vKipcbiAqIEJhc2Ugb3ZlcnJpZGVzIGZvciB0aGUgcHJvcHMgcGFzc2VkIHRvIGNvbnN0cnVjdHMgd2l0aGluIHJvb3QvdG9wLWxldmVsIE5leHQuanMgY29uc3RydWN0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0Jhc2VDb25zdHJ1Y3RPdmVycmlkZXMge1xuICByZWFkb25seSBuZXh0anNCdWlsZFByb3BzPzogT3B0aW9uYWxOZXh0anNCdWlsZFByb3BzO1xuICByZWFkb25seSBuZXh0anNDYWNoZVByb3BzPzogT3B0aW9uYWxOZXh0anNDYWNoZVByb3BzO1xuICByZWFkb25seSBuZXh0anNQb3N0RGVwbG95UHJvcHM/OiBPcHRpb25hbE5leHRqc1Bvc3REZXBsb3lQcm9wcztcbiAgcmVhZG9ubHkgbmV4dGpzU3RhdGljQXNzZXRzUHJvcHM/OiBOZXh0anNTdGF0aWNBc3NldHNQcm9wcztcbn1cblxuLyoqXG4gKiBCYXNlIG92ZXJyaWRlcyBmb3IgY29uc3RydWN0cyBzaGFyZWQgYmV0d2VlbiBhbGwgcm9vdC90b3AtbGV2ZWwgTmV4dC5qcyBjb25zdHJ1Y3RzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0Jhc2VPdmVycmlkZXMge1xuICByZWFkb25seSBuZXh0anNDYWNoZT86IE5leHRqc0NhY2hlT3ZlcnJpZGVzO1xuICByZWFkb25seSBuZXh0anNQb3N0RGVwbG95PzogTmV4dGpzUG9zdERlcGxveU92ZXJyaWRlcztcbiAgcmVhZG9ubHkgbmV4dGpzU3RhdGljQXNzZXRzPzogTmV4dGpzU3RhdGljQXNzZXRzT3ZlcnJpZGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0Jhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBQcmVmaXggdG8gdGhlIFVSSSBwYXRoIHRoZSBhcHAgd2lsbCBiZSBzZXJ2ZWQgYXQuIEFsc28gbmFtZXNwYWNlcyB0aGVcbiAgICogc3RhdGljIGFzc2V0cyBpbiBTMywgc28gaXQgZG91YmxlcyBhcyBhIHdheSB0byBob3N0IG11bHRpcGxlIGFwcHMgb3JcbiAgICogYnJhbmNoZXMgb3V0IG9mIG9uZSBidWNrZXQuXG4gICAqXG4gICAqIEhvdyB0aGlzIHJlbGF0ZXMgdG8gdGhlIGBiYXNlUGF0aGAgaW4geW91ciBhcHAncyBgbmV4dC5jb25maWcuanNgIGRlcGVuZHNcbiAgICogb24gdGhlIGNvbnN0cnVjdCwgYW5kIHN5bnRoIGZhaWxzIG9uIGEgY29tYmluYXRpb24gdGhhdCBjYW4ndCBzZXJ2ZSB0aGVcbiAgICogYXBwOlxuICAgKlxuICAgKiAtIGBOZXh0anNHbG9iYWxGdW5jdGlvbnNgL2BOZXh0anNHbG9iYWxDb250YWluZXJzYDogbGVhdmUgdGhpcyB1bnNldCBhbmQgaXRcbiAgICogICBmb2xsb3dzIHlvdXIgYXBwJ3MgYGJhc2VQYXRoYCwgd2hpY2ggaXMgd2hhdCB5b3Ugd2FudCDigJQgQ2xvdWRGcm9udCBzZXJ2ZXNcbiAgICogICBzdGF0aWMgYXNzZXRzIGZyb20gUzMgdXNpbmcgdGhlIHJlcXVlc3QgcGF0aCBhcyB0aGUgb2JqZWN0IGtleSwgc28gdGhlIHR3b1xuICAgKiAgIGhhdmUgdG8gYmUgaWRlbnRpY2FsIGFuZCBhIG1pc21hdGNoIDQwNHMgYWxsIG9mIHRoZW0uIFNldHRpbmcgYSBkaWZmZXJlbnRcbiAgICogICB2YWx1ZSB0aHJvd3MuXG4gICAqIC0gYE5leHRqc1JlZ2lvbmFsRnVuY3Rpb25zYDogbGVhdmUgdGhpcyB1bnNldCBhbmQgaXQgZm9sbG93cyB5b3VyIGFwcCdzXG4gICAqICAgYGJhc2VQYXRoYCBtaW51cyB0aGUgcHJlZml4IEFQSSBHYXRld2F5IHN0cmlwcyBiZWZvcmUgbWF0Y2hpbmcgcmVzb3VyY2VzIOKAlFxuICAgKiAgIHRoZSBzdGFnZSAoYGRlcGxveU9wdGlvbnMuc3RhZ2VOYW1lYCwgZGVmYXVsdCBgcHJvZGApLCBvciB0aGUgYmFzZSBwYXRoXG4gICAqICAgbWFwcGluZyBvZiBhIGN1c3RvbSBkb21haW4gc2V0IGluIGByZXN0QXBpUHJvcHMuZG9tYWluTmFtZWAuIFNvXG4gICAqICAgYGJhc2VQYXRoOiBcIi9wcm9kXCJgIG1vdW50cyBhdCB0aGUgcm9vdCwgYFwiL3Byb2QvYmFzZVwiYCB1bmRlciBgYmFzZWAsIGFuZFxuICAgKiAgIGBcIi9kb2NzXCJgIGJlaGluZCBhIGN1c3RvbSBkb21haW4gbWFwcGVkIGF0IHRoZSByb290IHVuZGVyIGBkb2NzYC4gT24gdGhlXG4gICAqICAgZXhlY3V0ZS1hcGkgZW5kcG9pbnQgYW4gYXBwIGBiYXNlUGF0aGAgdGhhdCBkb2Vzbid0IHN0YXJ0IHdpdGggdGhlIHN0YWdlXG4gICAqICAgd2FybnMsIHNpbmNlIGl0cyBsaW5rcyB3aWxsIG1pc3MgdGhlIHN0YWdlLiBJZiB5b3Ugc2V0IHRoaXMsIHRoZSBhcHAnc1xuICAgKiAgIGBiYXNlUGF0aGAgbXVzdCBlbmQgd2l0aCBpdC4gQSBkb21haW4gYXR0YWNoZWQgbGF0ZXIgd2l0aFxuICAgKiAgIGBhZGREb21haW5OYW1lKClgIGlzIG5vdCBzZWVuIGF0IHN5bnRoOyBzZXQgdGhpcyBleHBsaWNpdGx5IHRoZW4g4oCUIHRvXG4gICAqICAgYFwiL1wiYCB3aGVuIHRoYXQgZG9tYWluJ3MgYmFzZSBwYXRoIG1hcHBpbmcgc3RyaXBzIHlvdXIgYXBwJ3Mgd2hvbGVcbiAgICogICBgYmFzZVBhdGhgLCB3aGljaCBtb3VudHMgZXZlcnkgcmVzb3VyY2UgYXQgdGhlIHJvb3QuXG4gICAqIC0gYE5leHRqc1JlZ2lvbmFsQ29udGFpbmVyc2A6IG9ubHkgbmFtZXNwYWNlcyB0aGUgUzMgYnVja2V0LiBUaGUgQUxCIHNlbmRzXG4gICAqICAgZXZlcnkgcGF0aCB0byB0aGUgY29udGFpbmVyLCB3aGljaCBzZXJ2ZXMgaXRzIG93biBzdGF0aWMgYXNzZXRzLCBzbyB0aGlzXG4gICAqICAgaXMgdW5jb25zdHJhaW5lZC5cbiAgICogQGV4YW1wbGUgXCIvbXktYmFzZS1wYXRoXCJcbiAgICovXG4gIHJlYWRvbmx5IGJhc2VQYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogQ29tbWFuZCB0byBnZW5lcmF0ZSBvcHRpbWl6ZWQgdmVyc2lvbiBvZiB5b3VyIE5leHQuanMgYXBwIGluIGNvbnRhaW5lcjtcbiAgICogQGRlZmF1bHQgXCJucG0gcnVuIGJ1aWxkXCJcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQ29tbWFuZD86IHN0cmluZztcbiAgLyoqXG4gICAqIERpcmVjdG9yeSB3aGVyZSB0aGUgTmV4dC5qcyBhcHBsaWNhdGlvbiBpcyBsb2NhdGVkIGZvciBsb2NhbCBidWlsZHMuXG4gICAqIFRoaXMgc2hvdWxkIGNvbnRhaW4gdGhlIHBhY2thZ2UuanNvbiBhbmQgTmV4dC5qcyBhcHBsaWNhdGlvbiBmaWxlcy5cbiAgICogVGhpcyBpcyB3aGVyZSB7QGxpbmsgTmV4dGpzQmFzZVByb3BzLmJ1aWxkQ29tbWFuZH0gaXMgcnVuLlxuICAgKiBAZXhhbXBsZSBqb2luKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiLi5cIiwgXCJ3ZWJcIikgb3IgXCIvcGF0aC90by9uZXh0anMvYXBwXCJcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkRGlyZWN0b3J5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBCcmluZyB5b3VyIG93biBTMyBidWNrZXQgZm9yIGNhY2hlIHN0b3JhZ2UuIFdoZW4gcHJvdmlkZWQsIGNkay1uZXh0anNcbiAgICogd2lsbCB1c2UgdGhpcyBidWNrZXQgaW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBvbmUuXG4gICAqXG4gICAqIFRoZSBidWNrZXQgbXVzdCBiZSBkZWRpY2F0ZWQgdG8gdGhpcyBvbmUgZGVwbG95bWVudC4gRG9uJ3Qgc2hhcmUgaXQgd2l0aFxuICAgKiBhbm90aGVyIGRlcGxveW1lbnQgKGFub3RoZXIgYnJhbmNoLCBzdGFnZSwgb3IgYXBwKTogZXZlcnkgZGVwbG95J3NcbiAgICogcG9zdC1kZXBsb3kgc3RlcCBkZWxldGVzIGV2ZXJ5IG9iamVjdCB1bmRlciBhIHRvcC1sZXZlbCBwcmVmaXggb3RoZXIgdGhhblxuICAgKiB0aGUgY3VycmVudCBgYnVpbGRJZC9gLCB3aGljaCBpbmNsdWRlcyBldmVyeSBvdGhlciBkZXBsb3ltZW50J3MgY2FjaGUuXG4gICAqL1xuICByZWFkb25seSBjYWNoZUJ1Y2tldD86IElCdWNrZXQ7XG4gIC8qKlxuICAgKiBCcmluZyB5b3VyIG93biBEeW5hbW9EQiB0YWJsZSBmb3IgcmV2YWxpZGF0aW9uIG1ldGFkYXRhLiBXaGVuIHByb3ZpZGVkLFxuICAgKiBjZGstbmV4dGpzIHdpbGwgdXNlIHRoaXMgdGFibGUgaW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBvbmUuIFRoZSB0YWJsZVxuICAgKiBtdXN0IGhhdmUgYHBrYCAoU3RyaW5nKSBhcyBwYXJ0aXRpb24ga2V5IGFuZCBgc2tgIChTdHJpbmcpIGFzIHNvcnQga2V5LlxuICAgKiBFbmFibGUgVFRMIG9uIGl0cyBgdHRsYCBhdHRyaWJ1dGUgdG9vOiBlYWNoIHRhZyByZXZhbGlkYXRpb24gd3JpdGVzIGFcbiAgICogcmV2YWxpZGF0aW9uIGxvZyByb3cgdGhhdCBleHBpcmVzIHRocm91Z2ggaXQsIGFuZCB3aXRob3V0IFRUTCB0aG9zZSByb3dzXG4gICAqIGFjY3VtdWxhdGUuXG4gICAqXG4gICAqIFRoZSB0YWJsZSBtdXN0IGJlIGRlZGljYXRlZCB0byB0aGlzIG9uZSBkZXBsb3ltZW50LiBEb24ndCBzaGFyZSBpdCB3aXRoXG4gICAqIGFub3RoZXIgZGVwbG95bWVudCAoYW5vdGhlciBicmFuY2gsIHN0YWdlLCBvciBhcHApOiBldmVyeSBkZXBsb3knc1xuICAgKiBwb3N0LWRlcGxveSBzdGVwIGRlbGV0ZXMgdGhlIGVudHJpZXMgb2YgdGhlIGJ1aWxkIGl0IGxhc3QgcmVjb3JkZWQgaW4gdGhlXG4gICAqIHRhYmxlLCB3aGljaCB3aXRoIGEgc2hhcmVkIHRhYmxlIGlzIGFub3RoZXIgZGVwbG95bWVudCdzIGxpdmUgYnVpbGQuXG4gICAqL1xuICByZWFkb25seSByZXZhbGlkYXRpb25UYWJsZT86IElUYWJsZVYyO1xuICAvKipcbiAgICogU2tpcHMgcnVubmluZyBgbmV4dCBidWlsZGAuIElmIGB0cnVlYCwgeW91IGFyZSByZXNwb25zaWJsZSBmb3IgcnVubmluZ1xuICAgKiBgbmV4dCBidWlsZGAgYmVmb3JlIHRoaXMgY29uc3RydWN0IGlzIHN5bnRoZXNpemVkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcEJ1aWxkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEJyaW5nIHlvdXIgb3duIFMzIGJ1Y2tldCBmb3Igc3RhdGljIGFzc2V0cy4gV2hlbiBwcm92aWRlZCwgY2RrLW5leHRqc1xuICAgKiB3aWxsIGRlcGxveSBzdGF0aWMgYXNzZXRzIHRvIHRoaXMgYnVja2V0IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb25lLlxuICAgKlxuICAgKiBVbmxpa2UgYGNhY2hlQnVja2V0YCwgdGhpcyBvbmUgY2FuIGJlIHNoYXJlZCwgYnV0IG9ubHkgYmV0d2VlbiBkZXBsb3ltZW50c1xuICAgKiB3aXRoIGRpZmZlcmVudCBgYmFzZVBhdGhgcyAoc28gZGlmZmVyZW50IFMzIGtleSBwcmVmaXhlcykuIFBydW5pbmcgb25seVxuICAgKiB0b3VjaGVzIGA8YmFzZVBhdGg+L19uZXh0L2AsIHNvIGl0IGxlYXZlcyB0aGUgb3RoZXJzJyBhc3NldHMgYWxvbmUuIFR3b1xuICAgKiBkZXBsb3ltZW50cyB1bmRlciB0aGUgc2FtZSBwcmVmaXggb3ZlcndyaXRlIGVhY2ggb3RoZXIncyBgcHVibGljL2AgZmlsZXNcbiAgICogYW5kIHBydW5lIGVhY2ggb3RoZXIncyBgX25leHQvYCBhc3NldHMgb25jZSB0aGV5IGFyZSBwYXN0IHRoZSBwcnVuZVxuICAgKiBUVEwgKDMwIGRheXMgYnkgZGVmYXVsdCkuXG4gICAqL1xuICByZWFkb25seSBzdGF0aWNBc3NldHNCdWNrZXQ/OiBJQnVja2V0O1xuICAvKipcbiAgICogQnJpbmcgeW91ciBvd24gVlBDLlxuICAgKiBJZiBwcm92aWRlZCwgd2lsbCBiZSBwYXNzZWQgdmlhIG92ZXJyaWRlcyB0byB0aGUgRUNTIENsdXN0ZXIgKGZvciBjb250YWluZXItYmFzZWQgY29uc3RydWN0cylcbiAgICogb3IgdG8gdGhlIExhbWJkYSBmdW5jdGlvbiAoZm9yIGZ1bmN0aW9uLWJhc2VkIGNvbnN0cnVjdHMpLlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIEVDUyBDbHVzdGVyIHdpbGwgY3JlYXRlIGEgVlBDIGF1dG9tYXRpY2FsbHkgZm9yIGNvbnRhaW5lcnMsXG4gICAqIGFuZCBMYW1iZGEgZnVuY3Rpb25zIHdpbGwgcnVuIG91dHNpZGUgYSBWUEMuXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBJVnBjO1xufVxuXG4vKipcbiAqIFJlcXVpcmVkIGJlY2F1c2UgaWYgd2UgYWRkIGBvdmVycmlkZXNgIG9udG8gYE5leHRqc0Jhc2VQcm9wc2Agd2UgZ2V0IGpzaWlcbiAqIGVycm9yOiBgSW50ZXJmYWNlIC4uLiByZS1kZWNsYXJlcyBtZW1iZXIgXCJvdmVycmlkZXNcImBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0anNCYXNlQ29uc3RydWN0UHJvcHMgZXh0ZW5kcyBOZXh0anNCYXNlUHJvcHMge1xuICByZWFkb25seSBvdmVycmlkZXM/OiBOZXh0anNCYXNlT3ZlcnJpZGVzO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGFsbCBOZXh0LmpzIHJvb3QgY29uc3RydWN0c1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmV4dGpzQmFzZUNvbnN0cnVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIG5leHRqc0J1aWxkOiBOZXh0anNCdWlsZDtcbiAgbmV4dGpzU3RhdGljQXNzZXRzOiBOZXh0anNTdGF0aWNBc3NldHM7XG4gIG5leHRqc0NhY2hlOiBOZXh0anNDYWNoZTtcblxuICBhYnN0cmFjdCBnZXQgdXJsKCk6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmV4dGpzVHlwZTogTmV4dGpzVHlwZTtcbiAgLy8gdXNlIGJhc2VQcm9wcyBpbnN0ZWFkIG9mIHByb3BzIHNvIHRoYXQgY2hpbGQgY2xhc3NlcyBjYW4gdXNlIHByb3BzXG4gIHByb3RlY3RlZCByZWFkb25seSBiYXNlUHJvcHM6IE5leHRqc0Jhc2VDb25zdHJ1Y3RQcm9wcztcbiAgLy8gV2lkZXN0IHNoYXBlIG9mIHRoZSBwZXItYE5leHRqc1R5cGVgIG92ZXJyaWRlcy4gVGhlIHB1YmxpYyBpbnRlcmZhY2UgZWFjaFxuICAvLyByb290IGNvbnN0cnVjdCBhY2NlcHRzIGlzIHdoYXQgYWN0dWFsbHkgZ2F0ZXMgd2hpY2gga2V5cyBhcmUgc2V0dGFibGUuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25zdHJ1Y3RPdmVycmlkZXM/OiBOZXh0anNCYXNlQ29uc3RydWN0T3ZlcnJpZGVzO1xuICAvKipcbiAgICogVGhlIGBiYXNlUGF0aGAgZXZlcnl0aGluZyBkb3duc3RyZWFtIGlzIGJ1aWx0IGZyb206IHRoZSBgYmFzZVBhdGhgIHByb3Agd2hlblxuICAgKiBzZXQsIG90aGVyd2lzZSB0aGUgYXBwJ3Mgb3duIGBiYXNlUGF0aGAgZm9yIHRoZSBgTmV4dGpzVHlwZWBzIHdoZXJlIHRoZSB0d29cbiAgICogYXJlIG5lY2Vzc2FyaWx5IHRoZSBzYW1lLiBOb3JtYWxpemVkIHRvIGEgYmFyZSBwYXRoIHNlZ21lbnQsIGB1bmRlZmluZWRgIGZvclxuICAgKiBubyBgYmFzZVBhdGhgLiBVc2UgdGhpcyBpbnN0ZWFkIG9mIGBiYXNlUHJvcHMuYmFzZVBhdGhgLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlc29sdmVkQmFzZVBhdGg/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBOZXh0anNCYXNlQ29uc3RydWN0UHJvcHMsXG4gICAgbmV4dGpzVHlwZTogTmV4dGpzVHlwZSxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLmJhc2VQcm9wcyA9IHByb3BzO1xuICAgIHRoaXMubmV4dGpzVHlwZSA9IG5leHRqc1R5cGU7XG4gICAgdGhpcy5jb25zdHJ1Y3RPdmVycmlkZXMgPSB0aGlzLmdldENvbnN0cnVjdE92ZXJyaWRlcyhuZXh0anNUeXBlKTtcblxuICAgIHRoaXMubmV4dGpzQnVpbGQgPSB0aGlzLmNyZWF0ZU5leHRqc0J1aWxkKCk7XG4gICAgLy8gQSBiYXNlUGF0aCB0aGF0IGRvZXNuJ3QgbGluZSB1cCB3aXRoIHRoZSBhcHAncyBvd24gZGVwbG95cyBjbGVhbmx5IGFuZFxuICAgIC8vIHRoZW4gNDA0cyBzdGF0aWMgYXNzZXRzLCBzbyByZWNvbmNpbGUgdGhlIHR3byB1cCBmcm9udCBhbmQgZmFpbCBhdCBzeW50aFxuICAgIC8vIG9uIGEgY29tYmluYXRpb24gdGhhdCBjYW4ndCB3b3JrLlxuICAgIHRoaXMucmVzb2x2ZWRCYXNlUGF0aCA9IHJlc29sdmVCYXNlUGF0aChcbiAgICAgIG5leHRqc1R5cGUsXG4gICAgICBwcm9wcy5iYXNlUGF0aCxcbiAgICAgIHRoaXMubmV4dGpzQnVpbGQubmV4dENvbmZpZ0Jhc2VQYXRoLFxuICAgICAgdGhpcy5hcGlHYXRld2F5UHJlZml4KCksXG4gICAgKTtcbiAgICB0aGlzLm5leHRqc0NhY2hlID0gdGhpcy5jcmVhdGVOZXh0anNDYWNoZSgpO1xuICAgIHRoaXMubmV4dGpzU3RhdGljQXNzZXRzID0gdGhpcy5jcmVhdGVOZXh0anNTdGF0aWNBc3NldHMoKTtcbiAgICB0aGlzLnZhbGlkYXRlU3RhdGljQXNzZXRzS2V5UHJlZml4KCk7XG4gICAgdGhpcy53YXJuVW5zZXJ2ZWRBc3NldFByZWZpeCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdhcm5zIHdoZW4gYSBwYXRoLXN0eWxlIGBhc3NldFByZWZpeGAgd291bGQgNDA0IGV2ZXJ5IGJ1bmRsZSBvbiB0aGlzXG4gICAqIGBOZXh0anNUeXBlYCDigJQgc2VlIHtAbGluayBpc0Fzc2V0UHJlZml4VW5zZXJ2ZWR9IGZvciB3aGljaCBjb21iaW5hdGlvbnMgdGhvc2VcbiAgICogYXJlIGFuZCB3aHkgYSBwcmVmaXggZXF1YWwgdG8gdGhlIGFwcCdzIGBiYXNlUGF0aGAgaXMgbm90IG9uZSBvZiB0aGVtLlxuICAgKlxuICAgKiBXYXJuIHJhdGhlciB0aGFuIHRocm93OiBpdCBpcyB0aGUgYXBwJ3MgY29uZmlnLCB0aGUgZGVwbG95bWVudCBvdGhlcndpc2VcbiAgICogd29ya3MsIGFuZCBhbiBhYnNvbHV0ZSBgYXNzZXRQcmVmaXhgIChhbHJlYWR5IHJlZHVjZWQgdG8gYFwiXCJgIGJ5XG4gICAqIGByZWxhdGl2ZUFzc2V0UHJlZml4YCkgaXMgdGhlIHN1cHBvcnRlZCB3YXkgdG8gc2VydmUgYXNzZXRzIGZyb21cbiAgICogZWxzZXdoZXJlLlxuICAgKi9cbiAgcHJpdmF0ZSB3YXJuVW5zZXJ2ZWRBc3NldFByZWZpeCgpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhaXNBc3NldFByZWZpeFVuc2VydmVkKFxuICAgICAgICB0aGlzLm5leHRqc1R5cGUsXG4gICAgICAgIHRoaXMubmV4dGpzQnVpbGQubmV4dENvbmZpZ0Fzc2V0UHJlZml4LFxuICAgICAgICB0aGlzLm5leHRqc0J1aWxkLm5leHRDb25maWdCYXNlUGF0aCxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgYCR7TE9HX1BSRUZJWH0geW91ciBOZXh0LmpzIGFwcCBzZXRzIFxcYGFzc2V0UHJlZml4OiBcIiR7dGhpcy5uZXh0anNCdWlsZC5uZXh0Q29uZmlnQXNzZXRQcmVmaXh9XCJcXGAsIGAgK1xuICAgICAgICBgd2hpY2ggTmV4dGpzVHlwZS4ke3RoaXMubmV4dGpzVHlwZX0gY2Fubm90IHNlcnZlOiB5b3VyIGJ1bmRsZXMgd2lsbCBiZSByZXF1ZXN0ZWQgYXQgYCArXG4gICAgICAgIGBcIiR7dGhpcy5uZXh0anNCdWlsZC5uZXh0Q29uZmlnQXNzZXRQcmVmaXh9L19uZXh0L3N0YXRpYy8uLi5cIiBhbmQgbm90aGluZyBhbnN3ZXJzIHRoZXJlLCBzbyB0aGV5IHdpbGwgNDA0LiBgICtcbiAgICAgICAgXCJEcm9wIGBhc3NldFByZWZpeGAsIHVzZSBhbiBhYnNvbHV0ZSBvbmUgcG9pbnRpbmcgYXQgYSBDRE4geW91IGZyb250IHRoZSBhc3NldHMgYnVja2V0IHdpdGgsIFwiICtcbiAgICAgICAgXCJvciBkZXBsb3kgd2l0aCBOZXh0anNHbG9iYWxGdW5jdGlvbnMvTmV4dGpzR2xvYmFsQ29udGFpbmVycy5cIixcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvciB0aGUgR2xvYmFsIGBOZXh0anNUeXBlYHMgdGhlIGtleSBwcmVmaXggaXNuJ3QgYSBmcmVlIGNob2ljZTogaXQgaGFzIHRvIGJlXG4gICAqIGBiYXNlUGF0aGAgKHNlZSBgcmVzb2x2ZUJhc2VQYXRoYCkuIEEgYGRlc3RpbmF0aW9uS2V5UHJlZml4YCBvdmVycmlkZSB0aGF0XG4gICAqIG1vdmVzIHRoZSBvYmplY3RzIGVsc2V3aGVyZSBoYXMgbm8gd2F5IHRvIHRlbGwgdGhlIGRpc3RyaWJ1dGlvbiBhYm91dCBpdCDigJRcbiAgICogdW5saWtlIHRoZSBmdW5jdGlvbnMnIGltYWdlIG9wdGltaXplciBhbmQgYE5leHRqc0FwaWAsIHdoaWNoIHJlYWRcbiAgICogYE5leHRqc1N0YXRpY0Fzc2V0cy5rZXlQcmVmaXhgIOKAlCBzbyBmYWlsIGF0IHN5bnRoIHJhdGhlciB0aGFuIDQwNCBldmVyeVxuICAgKiBzdGF0aWMgcmVxdWVzdC5cbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVTdGF0aWNBc3NldHNLZXlQcmVmaXgoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5uZXh0anNUeXBlICE9PSBOZXh0anNUeXBlLkdMT0JBTF9GVU5DVElPTlMgJiZcbiAgICAgIHRoaXMubmV4dGpzVHlwZSAhPT0gTmV4dGpzVHlwZS5HTE9CQUxfQ09OVEFJTkVSU1xuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBleHBlY3RlZCA9IHRoaXMucmVzb2x2ZWRCYXNlUGF0aCA/PyBcIlwiO1xuICAgIGNvbnN0IGFjdHVhbCA9IHRoaXMubmV4dGpzU3RhdGljQXNzZXRzLmtleVByZWZpeDtcbiAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgJHtMT0dfUFJFRklYfSBzdGF0aWMgYXNzZXRzIGtleSBwcmVmaXggbWlzbWF0Y2ggZm9yIE5leHRqc1R5cGUuJHt0aGlzLm5leHRqc1R5cGV9OiBgICtcbiAgICAgICAgICBgdGhlIGFzc2V0cyBhcmUgdXBsb2FkZWQgdW5kZXIgJHthY3R1YWwgPyBgXCIke2FjdHVhbH1cImAgOiBcInRoZSBidWNrZXQgcm9vdFwifSBgICtcbiAgICAgICAgICBgYnV0IENsb3VkRnJvbnQgd2lsbCByZXF1ZXN0IHRoZW0gdW5kZXIgJHtleHBlY3RlZCA/IGBcIiR7ZXhwZWN0ZWR9XCJgIDogXCJ0aGUgYnVja2V0IHJvb3RcIn0sIGAgK1xuICAgICAgICAgIFwidXNpbmcgdGhlIHJlcXVlc3QgcGF0aCBhcyB0aGUgUzMgb2JqZWN0IGtleSwgc28gZXZlcnkgYF9uZXh0L3N0YXRpY2AgYW5kIGBwdWJsaWMvYCByZXF1ZXN0IHdvdWxkIDQwNC4gXCIgK1xuICAgICAgICAgIFwiRHJvcCB0aGUgYGRlc3RpbmF0aW9uS2V5UHJlZml4YCBvdmVycmlkZSwgb3Igc2V0IGl0IHRvIHRoZSBzYW1lIHZhbHVlIGFzIGBiYXNlUGF0aGAuIFwiICtcbiAgICAgICAgICBcIlRvIG5hbWVzcGFjZSBhIHNoYXJlZCBidWNrZXQsIHVzZSBgYmFzZVBhdGhgIOKAlCBpdCBwcmVmaXhlcyB0aGUga2V5cyBhbmQgdGhlIFVSTHMgdG9nZXRoZXIuXCIsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcHJlZml4IEFQSSBHYXRld2F5IHdpbGwgc3RyaXAsIHJlYWQgZnJvbSB0aGUgc2FtZSBgcmVzdEFwaVByb3BzYFxuICAgKiBvdmVycmlkZSBgTmV4dGpzQXBpYCBidWlsZHMgaXRzIGBSZXN0QXBpYCBmcm9tLiBPbmx5IG1lYW5pbmdmdWwgZm9yXG4gICAqIGBSRUdJT05BTF9GVU5DVElPTlNgLCBhbmQgcmVhZCBiZWZvcmUgYE5leHRqc0FwaWAgZXhpc3RzIGJlY2F1c2UgdGhlXG4gICAqIHJlc29sdmVkIGBiYXNlUGF0aGAgYWxzbyBkZWNpZGVzIHRoZSBzdGF0aWMgYXNzZXRzJyBTMyBrZXkgcHJlZml4LlxuICAgKlxuICAgKiBBIGRvbWFpbiBhdHRhY2hlZCBsYXRlciB3aXRoIGBhcGkuYWRkRG9tYWluTmFtZSgpYCBpcyBpbnZpc2libGUgaGVyZSwgdGhlXG4gICAqIHNhbWUgbGltaXRhdGlvbiBgTmV4dGpzQXBpLnVybGAgZG9jdW1lbnRzLlxuICAgKi9cbiAgcHJpdmF0ZSBhcGlHYXRld2F5UHJlZml4KCk6IEFwaUdhdGV3YXlQcmVmaXgge1xuICAgIC8vIGBvdmVycmlkZXMubmV4dGpzQXBpYCBpcyB0aGUgb25seSB0eXBlZCB3YXkgdG8gcmVhY2ggdGhlIGBSZXN0QXBpYCdzXG4gICAgLy8gcHJvcHM6IGBuZXh0anNSZWdpb25hbEZ1bmN0aW9ucy5uZXh0anNBcGlQcm9wc2AgaXNcbiAgICAvLyBgT3B0aW9uYWxOZXh0anNBcGlQcm9wc2AsIHdoaWNoIGhhcyBubyBgb3ZlcnJpZGVzYC5cbiAgICBjb25zdCBhcGlPdmVycmlkZXMgPSAoXG4gICAgICB0aGlzLmJhc2VQcm9wcy5vdmVycmlkZXMgYXMgeyBuZXh0anNBcGk/OiBOZXh0anNBcGlPdmVycmlkZXMgfSB8IHVuZGVmaW5lZFxuICAgICk/Lm5leHRqc0FwaTtcbiAgICBjb25zdCByZXN0QXBpUHJvcHMgPSBhcGlPdmVycmlkZXM/LnJlc3RBcGlQcm9wcztcbiAgICBjb25zdCBkb21haW5OYW1lID0gcmVzdEFwaVByb3BzPy5kb21haW5OYW1lO1xuICAgIGNvbnN0IHN0cmlwcGVkUHJlZml4ID0gZG9tYWluTmFtZVxuICAgICAgPyAoZG9tYWluTmFtZS5iYXNlUGF0aCA/PyBcIlwiKVxuICAgICAgOiAocmVzdEFwaVByb3BzPy5kZXBsb3lPcHRpb25zPy5zdGFnZU5hbWUgPz8gXCJwcm9kXCIpO1xuICAgIHJldHVybiB7XG4gICAgICBzdHJpcHBlZFByZWZpeDogVG9rZW4uaXNVbnJlc29sdmVkKHN0cmlwcGVkUHJlZml4KVxuICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICA6IHN0cmlwcGVkUHJlZml4LFxuICAgICAgY3VzdG9tRG9tYWluOiBkb21haW5OYW1lICE9PSB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kcyBjb25zdHJ1Y3Qgb3ZlcnJpZGVzIChpZiBwcmVzZW50KSBvbiBwcm9wcyBmb3IgYW55IGBOZXh0anNUeXBlYFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRDb25zdHJ1Y3RPdmVycmlkZXMobmV4dGpzVHlwZTogTmV4dGpzVHlwZSkge1xuICAgIGNvbnN0IG5leHRqc1R5cGVUb0tleTogUmVjb3JkPE5leHRqc1R5cGUsIHN0cmluZz4gPSB7XG4gICAgICBbTmV4dGpzVHlwZS5HTE9CQUxfQ09OVEFJTkVSU106IFwibmV4dGpzR2xvYmFsQ29udGFpbmVyc1wiLFxuICAgICAgW05leHRqc1R5cGUuR0xPQkFMX0ZVTkNUSU9OU106IFwibmV4dGpzR2xvYmFsRnVuY3Rpb25zXCIsXG4gICAgICBbTmV4dGpzVHlwZS5SRUdJT05BTF9DT05UQUlORVJTXTogXCJuZXh0anNSZWdpb25hbENvbnRhaW5lcnNcIixcbiAgICAgIFtOZXh0anNUeXBlLlJFR0lPTkFMX0ZVTkNUSU9OU106IFwibmV4dGpzUmVnaW9uYWxGdW5jdGlvbnNcIixcbiAgICB9O1xuICAgIGNvbnN0IGtleSA9IG5leHRqc1R5cGVUb0tleVtuZXh0anNUeXBlXTtcbiAgICBjb25zdCBvdmVycmlkZXMgPSB0aGlzLmJhc2VQcm9wcy5vdmVycmlkZXMgYXNcbiAgICAgIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIGlmIChvdmVycmlkZXMgJiYga2V5IGluIG92ZXJyaWRlcykge1xuICAgICAgcmV0dXJuIG92ZXJyaWRlc1trZXldIGFzIE5leHRqc0Jhc2VDb25zdHJ1Y3RPdmVycmlkZXM7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBgb3ZlcnJpZGVzLm5leHRqc0Z1bmN0aW9uc2AsIHdoaWNoIG9ubHkgdGhlIHR3byBGdW5jdGlvbnMgcm9vdCBjb25zdHJ1Y3RzXG4gICAqIGRlY2xhcmUuIENhc3QgZm9yIHRoZSBzYW1lIHJlYXNvbiBhcyB7QGxpbmsgZnVuY3Rpb25Hcm91cHN9LlxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgZnVuY3Rpb25zT3ZlcnJpZGVzKCk6IE5leHRqc0Z1bmN0aW9uc092ZXJyaWRlcyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgb3ZlcnJpZGVzID0gdGhpcy5iYXNlUHJvcHMub3ZlcnJpZGVzIGFzXG4gICAgICB7IG5leHRqc0Z1bmN0aW9ucz86IE5leHRqc0Z1bmN0aW9uc092ZXJyaWRlcyB9IHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiBvdmVycmlkZXM/Lm5leHRqc0Z1bmN0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBgZnVuY3Rpb25Hcm91cHNgLCB3aGljaCBvbmx5IHRoZSB0d28gRnVuY3Rpb25zIHJvb3QgY29uc3RydWN0cyBhY2NlcHQg4oCUXG4gICAqIENvbnRhaW5lcnMgZGVwbG95IG9uZSB0YXNrIGRlZmluaXRpb24gYW5kIGhhdmUgbm8gMjUwIE1CIHBhY2thZ2UgbGltaXQgdG9cbiAgICogc3BsaXQgYXJvdW5kLlxuICAgKlxuICAgKiBSZWFkIG9mZiBgYmFzZVByb3BzYCB3aXRoIGEgY2FzdCBmb3IgdGhlIHNhbWUgcmVhc29uIGFzXG4gICAqIHtAbGluayBnZXRDb25zdHJ1Y3RPdmVycmlkZXN9OiBgY3JlYXRlTmV4dGpzQnVpbGRgIGFuZFxuICAgKiBgY3JlYXRlTmV4dGpzRnVuY3Rpb25zYCBhcmUgc2hhcmVkIGhlcmUsIGJ1dCB0aGUgcHJvcCBpcyBkZWNsYXJlZCBvbiB0aGVcbiAgICogc3ViY2xhc3Nlcywgc28gbm90aGluZyB3ZWFrZXIgdGhhbiBhIGNhc3QgY2FuIHNlZSBpdC4gQWRkaW5nIGl0IHRvXG4gICAqIGBOZXh0anNCYXNlUHJvcHNgIHdvdWxkIG9mZmVyIGl0IHRvIENvbnRhaW5lcnMsIHdoZXJlIGl0IGRvZXMgbm90aGluZy5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgZnVuY3Rpb25Hcm91cHMoKTogTmV4dGpzRnVuY3Rpb25Hcm91cFtdIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMuYmFzZVByb3BzIGFzIHsgZnVuY3Rpb25Hcm91cHM/OiBOZXh0anNGdW5jdGlvbkdyb3VwW10gfTtcbiAgICByZXR1cm4gcHJvcHMuZnVuY3Rpb25Hcm91cHM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGhlYWx0aCBjaGVjayBwYXRoIGFzIHRoZSBydW5uaW5nIGFwcCBhY3R1YWxseSBzZXJ2ZXMgaXQuXG4gICAqXG4gICAqIEJvdGggY29uc3VtZXJzIG9mIHRoaXMgaGl0IHRoZSBhcHAgZGlyZWN0bHkg4oCUIHRoZSBBTEIgdGFyZ2V0IGdyb3VwIGZvcndhcmRzXG4gICAqIHRoZSBwYXRoIHRvIHRoZSBjb250YWluZXIgdW5jaGFuZ2VkLCBhbmQgdGhlIGNvbnRhaW5lcidzIGB3Z2V0YCBwcm9iZSB0YXJnZXRzXG4gICAqIHRoZSBsb2NhbCBzZXJ2ZXIg4oCUIHNvIHRoZSBwcmVmaXggdGhhdCBtYXR0ZXJzIGlzIHRoZSBhcHAncyBvd24gYGJhc2VQYXRoYCxcbiAgICogbm90IGByZXNvbHZlZEJhc2VQYXRoYCAod2hpY2ggZm9yIGBSRUdJT05BTF9DT05UQUlORVJTYCBpcyBvbmx5IGFuIFMzXG4gICAqIG5hbWVzcGFjZSkuIExlZnQgdW5wcmVmaXhlZCwgYW4gYXBwIHdpdGggYSBgYmFzZVBhdGhgIDQwNHMgZXZlcnkgaGVhbHRoXG4gICAqIGNoZWNrLCBzbyB0aGUgdGFyZ2V0IG5ldmVyIHR1cm5zIGhlYWx0aHkgYW5kIHRoZSBkZXBsb3ltZW50IHJvbGxzIGJhY2suXG4gICAqIGBoZWFsdGhDaGVja1BhdGhgIGlzIHRoZXJlZm9yZSB0aGUgcGF0aCBhcyB0aGUgYXBwIHJvdXRlcyBpdCwgd2l0aG91dFxuICAgKiBgYmFzZVBhdGhgOyBvbmUgdGhhdCBjYXJyaWVzIHRoZSBwcmVmaXggYWxyZWFkeSBnZXRzIGl0IHR3aWNlLCB3aGljaCBpcyB0aGVcbiAgICogMC42LjIgYnJlYWtpbmcgY2hhbmdlIGZvciBhbnlvbmUgd2hvIHByZWZpeGVkIGJ5IGhhbmQgdG8gd29yayBhcm91bmQgdGhpcy5cbiAgICpcbiAgICogVGFrZXMgdGhlIHBhdGggYXMgYW4gYXJndW1lbnQgcmF0aGVyIHRoYW4gcmVhZGluZyBpdCBvZmYgYGJhc2VQcm9wc2A6IG9ubHlcbiAgICogdGhlIHR3byBDb250YWluZXJzIHJvb3QgY29uc3RydWN0cyBkZWNsYXJlIGBoZWFsdGhDaGVja1BhdGhgLCBzaW5jZSB0aGV5J3JlXG4gICAqIHRoZSBvbmx5IG9uZXMgd2l0aCBzb21ldGhpbmcgdG8gaGVhbHRoLWNoZWNrLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc29sdmVkSGVhbHRoQ2hlY2tQYXRoKGhlYWx0aENoZWNrUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcHJlZml4V2l0aEJhc2VQYXRoKFxuICAgICAgdGhpcy5uZXh0anNCdWlsZC5uZXh0Q29uZmlnQmFzZVBhdGgsXG4gICAgICBoZWFsdGhDaGVja1BhdGgsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29tcHV0ZSBiYXNlIHByb3BzIGZvciBib3RoIExhbWJkYSBmdW5jdGlvbnMgYW5kIGNvbnRhaW5lcnNcbiAgICovXG4gIHByb3RlY3RlZCBjb21wdXRlQmFzZVByb3BzKCk6IE5leHRqc0NvbXB1dGVCYXNlUHJvcHMge1xuICAgIHJldHVybiB7XG4gICAgICBjYWNoZUJ1Y2tldDogdGhpcy5uZXh0anNDYWNoZS5jYWNoZUJ1Y2tldCxcbiAgICAgIHJldmFsaWRhdGlvblRhYmxlOiB0aGlzLm5leHRqc0NhY2hlLnJldmFsaWRhdGlvblRhYmxlLFxuICAgICAgYnVpbGRJZDogdGhpcy5uZXh0anNCdWlsZC5idWlsZElkLFxuICAgICAgbmV4dGpzVHlwZTogdGhpcy5uZXh0anNUeXBlLFxuICAgICAgc3RhdGljQXNzZXRzQnVja2V0OiB0aGlzLm5leHRqc1N0YXRpY0Fzc2V0cy5idWNrZXQsXG4gICAgICBzdGF0aWNBc3NldHNLZXlQcmVmaXg6IHRoaXMubmV4dGpzU3RhdGljQXNzZXRzLmtleVByZWZpeCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYWZ0ZXIgdGhlIGluaXQgY2FjaGUgYW5kIHN0YXRpYyBhc3NldCB1cGxvYWRzOiBpbnZhbGlkYXRpbmcgdGhlIENETlxuICAgKiBiZWZvcmUgdGhlIG5ldyBmaWxlcyBhcmUgaW4gcGxhY2Ugd291bGQgb25seSByZS1jYWNoZSB0aGUgcmVzcG9uc2VzIHRoZVxuICAgKiBpbnZhbGlkYXRpb24gd2FzIG1lYW50IHRvIGRyb3AsIGFuZCBwcnVuaW5nIGJlZm9yZSB0aGVtIGNvdWxkIGRlbGV0ZSBhblxuICAgKiBvYmplY3QgdGhlIHVwbG9hZCBpcyBhYm91dCB0byByZS10YWcgd2l0aCB0aGlzIGJ1aWxkJ3MgSUQuIENsb3VkRm9ybWF0aW9uXG4gICAqIGluZmVycyBubyBvcmRlcmluZyBiZXR3ZWVuIHRoZXNlIGN1c3RvbSByZXNvdXJjZXMgb24gaXRzIG93bi5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVOZXh0anNQb3N0RGVwbG95KFxuICAgIGRpc3RyaWJ1dGlvbj86IElEaXN0cmlidXRpb24sXG4gICk6IE5leHRqc1Bvc3REZXBsb3kge1xuICAgIGNvbnN0IHBvc3REZXBsb3kgPSBuZXcgTmV4dGpzUG9zdERlcGxveSh0aGlzLCBcIk5leHRqc1Bvc3REZXBsb3lcIiwge1xuICAgICAgYmFzZVBhdGg6IHRoaXMucmVzb2x2ZWRCYXNlUGF0aCxcbiAgICAgIGJ1aWxkSWQ6IHRoaXMubmV4dGpzQnVpbGQuYnVpbGRJZCxcbiAgICAgIGRpc3RyaWJ1dGlvbixcbiAgICAgIGNhY2hlQnVja2V0OiB0aGlzLm5leHRqc0NhY2hlLmNhY2hlQnVja2V0LFxuICAgICAgcmV2YWxpZGF0aW9uVGFibGU6IHRoaXMubmV4dGpzQ2FjaGUucmV2YWxpZGF0aW9uVGFibGUsXG4gICAgICBzdGF0aWNBc3NldHNCdWNrZXQ6IHRoaXMubmV4dGpzU3RhdGljQXNzZXRzLmJ1Y2tldCxcbiAgICAgIHN0YXRpY0Fzc2V0c0tleVByZWZpeDogdGhpcy5uZXh0anNTdGF0aWNBc3NldHMua2V5UHJlZml4LFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLmJhc2VQcm9wcy5vdmVycmlkZXM/Lm5leHRqc1Bvc3REZXBsb3ksXG4gICAgICAuLi50aGlzLmNvbnN0cnVjdE92ZXJyaWRlcz8ubmV4dGpzUG9zdERlcGxveVByb3BzLFxuICAgIH0pO1xuICAgIGNvbnN0IHsgc3RhdGljRGVwbG95bWVudCwgc2VydmljZVdvcmtlckRlcGxveW1lbnQsIHB1YmxpY0RlcGxveW1lbnQgfSA9XG4gICAgICB0aGlzLm5leHRqc1N0YXRpY0Fzc2V0cztcbiAgICBmb3IgKGNvbnN0IHVwbG9hZCBvZiBbXG4gICAgICB0aGlzLm5leHRqc0NhY2hlLmJ1Y2tldERlcGxveW1lbnQsXG4gICAgICBzdGF0aWNEZXBsb3ltZW50LFxuICAgICAgc2VydmljZVdvcmtlckRlcGxveW1lbnQsXG4gICAgICBwdWJsaWNEZXBsb3ltZW50LFxuICAgIF0pIHtcbiAgICAgIGlmICh1cGxvYWQpIHtcbiAgICAgICAgcG9zdERlcGxveS5ub2RlLmFkZERlcGVuZGVuY3kodXBsb2FkKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBvc3REZXBsb3k7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0J1aWxkKCk6IE5leHRqc0J1aWxkIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc0J1aWxkKHRoaXMsIFwiTmV4dGpzQnVpbGRcIiwge1xuICAgICAgYnVpbGRDb21tYW5kOiB0aGlzLmJhc2VQcm9wcy5idWlsZENvbW1hbmQsXG4gICAgICBidWlsZERpcmVjdG9yeTogdGhpcy5iYXNlUHJvcHMuYnVpbGREaXJlY3RvcnksXG4gICAgICBuZXh0anNUeXBlOiB0aGlzLm5leHRqc1R5cGUsXG4gICAgICBza2lwQnVpbGQ6IHRoaXMuYmFzZVByb3BzLnNraXBCdWlsZCxcbiAgICAgIC8vIFRoZSBidWlsZCByZXNvbHZlcyB0aGUgc3BsaXQsIHNpbmNlIG9ubHkgaXQga25vd3MgdGhlIHJvdXRlIHRlbXBsYXRlcztcbiAgICAgIC8vIHRoZSBjb25zdHJ1Y3RzIHJlYWQgdGhlIHJlc3VsdCBiYWNrIG9mZiB0aGUgbWFuaWZlc3QuXG4gICAgICBmdW5jdGlvbkdyb3VwczogdGhpcy5mdW5jdGlvbkdyb3Vwcz8ubWFwKCh7IG5hbWUsIHJvdXRlcyB9KSA9PiAoe1xuICAgICAgICBuYW1lLFxuICAgICAgICByb3V0ZXMsXG4gICAgICB9KSksXG4gICAgICAvLyBXaGF0IHRoZSBMYW1iZGFzIHdpbGwgcnVuIGRlY2lkZXMgdGhlIGBzaGFycGAgYmluYXJpZXMgc3RhZ2VkIGZvciB0aGVtLlxuICAgICAgYXJjaGl0ZWN0dXJlOiB0aGlzLmZ1bmN0aW9uc092ZXJyaWRlcz8uZnVuY3Rpb25Qcm9wcz8uYXJjaGl0ZWN0dXJlLFxuICAgICAgLi4udGhpcy5jb25zdHJ1Y3RPdmVycmlkZXM/Lm5leHRqc0J1aWxkUHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0NhY2hlKCk6IE5leHRqc0NhY2hlIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc0NhY2hlKHRoaXMsIFwiTmV4dGpzQ2FjaGVcIiwge1xuICAgICAgYnVpbGRJZDogdGhpcy5uZXh0anNCdWlsZC5idWlsZElkLFxuICAgICAgY2FjaGVCdWNrZXQ6IHRoaXMuYmFzZVByb3BzLmNhY2hlQnVja2V0LFxuICAgICAgaW5pdENhY2hlRGlyOiB0aGlzLm5leHRqc0J1aWxkLmluaXRDYWNoZURpcixcbiAgICAgIG92ZXJyaWRlczogdGhpcy5iYXNlUHJvcHMub3ZlcnJpZGVzPy5uZXh0anNDYWNoZSxcbiAgICAgIHJldmFsaWRhdGlvblRhYmxlOiB0aGlzLmJhc2VQcm9wcy5yZXZhbGlkYXRpb25UYWJsZSxcbiAgICAgIC4uLnRoaXMuY29uc3RydWN0T3ZlcnJpZGVzPy5uZXh0anNDYWNoZVByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNTdGF0aWNBc3NldHMoKTogTmV4dGpzU3RhdGljQXNzZXRzIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc1N0YXRpY0Fzc2V0cyh0aGlzLCBcIk5leHRqc1N0YXRpY0Fzc2V0c1wiLCB7XG4gICAgICBidWNrZXQ6IHRoaXMuYmFzZVByb3BzLnN0YXRpY0Fzc2V0c0J1Y2tldCxcbiAgICAgIGJ1aWxkRGlyZWN0b3J5OiB0aGlzLmJhc2VQcm9wcy5idWlsZERpcmVjdG9yeSxcbiAgICAgIGJ1aWxkSWQ6IHRoaXMubmV4dGpzQnVpbGQuYnVpbGRJZCxcbiAgICAgIGJhc2VQYXRoOiB0aGlzLnJlc29sdmVkQmFzZVBhdGgsXG4gICAgICBvdmVycmlkZXM6IHRoaXMuYmFzZVByb3BzLm92ZXJyaWRlcz8ubmV4dGpzU3RhdGljQXNzZXRzLFxuICAgICAgLi4udGhpcy5jb25zdHJ1Y3RPdmVycmlkZXM/Lm5leHRqc1N0YXRpY0Fzc2V0c1Byb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNoYXJlZCBieSBgTmV4dGpzR2xvYmFsRnVuY3Rpb25zYCBhbmQgYE5leHRqc1JlZ2lvbmFsRnVuY3Rpb25zYC5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVOZXh0anNGdW5jdGlvbnMoKTogTmV4dGpzRnVuY3Rpb25zIHtcbiAgICAvLyBUaGUgZ2V0dGVyLCBub3QgYSBwYXJhbWV0ZXIsIHNvIHRoZSBidWlsZCBhbmQgdGhlIGZ1bmN0aW9ucyByZWFkIHRoZVxuICAgIC8vIHNhbWUgYGFyY2hpdGVjdHVyZWAuXG4gICAgY29uc3Qgb3ZlcnJpZGVzID0gdGhpcy5mdW5jdGlvbnNPdmVycmlkZXM7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNGdW5jdGlvbnModGhpcywgXCJOZXh0anNGdW5jdGlvbnNcIiwge1xuICAgICAgLi4udGhpcy5jb21wdXRlQmFzZVByb3BzKCksXG4gICAgICBkZXBsb3ltZW50Um9vdHM6IHRoaXMubmV4dGpzQnVpbGQuZGVwbG95bWVudFJvb3RzLFxuICAgICAgYXJjaGl0ZWN0dXJlOiB0aGlzLm5leHRqc0J1aWxkLmFyY2hpdGVjdHVyZSxcbiAgICAgIGZ1bmN0aW9uR3JvdXBzOiB0aGlzLmZ1bmN0aW9uR3JvdXBzLFxuICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgIC4uLm92ZXJyaWRlcyxcbiAgICAgICAgZnVuY3Rpb25Qcm9wczoge1xuICAgICAgICAgIC4uLm92ZXJyaWRlcz8uZnVuY3Rpb25Qcm9wcyxcbiAgICAgICAgICAvLyBTcHJlYWQgY29uZGl0aW9uYWxseSByYXRoZXIgdGhhbiBhc3NpZ25lZDogYW4gdW5jb25kaXRpb25hbFxuICAgICAgICAgIC8vIGB2cGM6IHRoaXMuYmFzZVByb3BzLnZwY2Agd3JpdGVzIGB1bmRlZmluZWRgIG92ZXIgYW5cbiAgICAgICAgICAvLyBgb3ZlcnJpZGVzLm5leHRqc0Z1bmN0aW9ucy5mdW5jdGlvblByb3BzLnZwY2AgdGhlIGNvbnN1bWVyIHN1cHBsaWVkLFxuICAgICAgICAgIC8vIHNvIHRoZSBMYW1iZGFzIGRlcGxveSBvdXRzaWRlIHRoZSBWUEMgYW5kIGNhbm5vdCByZWFjaCBhIHByaXZhdGVcbiAgICAgICAgICAvLyBSRFMsIEVsYXN0aUNhY2hlLCBvciBWUEMgZW5kcG9pbnQgLSB3aXRoIG5vdGhpbmcgc2FpZCBhdCBzeW50aC5cbiAgICAgICAgICAuLi4odGhpcy5iYXNlUHJvcHMudnBjID8geyB2cGM6IHRoaXMuYmFzZVByb3BzLnZwYyB9IDoge30pLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWJhc2UtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jvb3QtY29uc3RydWN0cy9uZXh0anMtYmFzZS1jb25zdHJ1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDZDQUFvQztBQUtwQywyQ0FBdUM7QUFDdkMsNENBQXNEO0FBS3RELCtEQUEyRDtBQUMzRCxrREFBb0U7QUFFcEUseUVBSTRDO0FBQzVDLDhEQUcrQjtBQUMvQixrRUFJaUM7QUFDakMsa0RBSzRCO0FBOEg1Qjs7R0FFRztBQUNILE1BQXNCLG1CQUFvQixTQUFRLHNCQUFTOztJQUN6RCxXQUFXLENBQWM7SUFDekIsa0JBQWtCLENBQXFCO0lBQ3ZDLFdBQVcsQ0FBYztJQUlOLFVBQVUsQ0FBYTtJQUMxQyxxRUFBcUU7SUFDbEQsU0FBUyxDQUEyQjtJQUN2RCw0RUFBNEU7SUFDNUUseUVBQXlFO0lBQ3RELGtCQUFrQixDQUFnQztJQUNyRTs7Ozs7T0FLRztJQUNnQixnQkFBZ0IsQ0FBVTtJQUU3QyxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUErQixFQUMvQixVQUFzQjtRQUV0QixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM1Qyx5RUFBeUU7UUFDekUsMkVBQTJFO1FBQzNFLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBQSwyQkFBZSxFQUNyQyxVQUFVLEVBQ1YsS0FBSyxDQUFDLFFBQVEsRUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FDeEIsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSyx1QkFBdUI7UUFDN0IsSUFDRSxDQUFDLElBQUEsaUNBQXFCLEVBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FDcEMsRUFDRCxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUNWLEdBQUcsc0JBQVUsMENBQTBDLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLE9BQU87WUFDbEcsb0JBQW9CLElBQUksQ0FBQyxVQUFVLG1EQUFtRDtZQUN0RixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLGtFQUFrRTtZQUM1Ryw4RkFBOEY7WUFDOUYsOERBQThELENBQ2pFLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNLLDZCQUE2QjtRQUNuQyxJQUNFLElBQUksQ0FBQyxVQUFVLEtBQUssc0JBQVUsQ0FBQyxnQkFBZ0I7WUFDL0MsSUFBSSxDQUFDLFVBQVUsS0FBSyxzQkFBVSxDQUFDLGlCQUFpQixFQUNoRCxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1FBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7UUFDakQsSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLHNCQUFVLHFEQUFxRCxJQUFJLENBQUMsVUFBVSxJQUFJO2dCQUNuRixpQ0FBaUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBRztnQkFDOUUsMENBQTBDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLElBQUk7Z0JBQzVGLHdHQUF3RztnQkFDeEcsdUZBQXVGO2dCQUN2Riw0RkFBNEYsQ0FDL0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSyxnQkFBZ0I7UUFDdEIsdUVBQXVFO1FBQ3ZFLHFEQUFxRDtRQUNyRCxzREFBc0Q7UUFDdEQsTUFBTSxZQUFZLEdBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FDaEIsRUFBRSxTQUFTLENBQUM7UUFDYixNQUFNLFlBQVksR0FBRyxZQUFZLEVBQUUsWUFBWSxDQUFDO1FBQ2hELE1BQU0sVUFBVSxHQUFHLFlBQVksRUFBRSxVQUFVLENBQUM7UUFDNUMsTUFBTSxjQUFjLEdBQUcsVUFBVTtZQUMvQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFNBQVMsSUFBSSxNQUFNLENBQUMsQ0FBQztRQUN2RCxPQUFPO1lBQ0wsY0FBYyxFQUFFLG1CQUFLLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQztnQkFDaEQsQ0FBQyxDQUFDLFNBQVM7Z0JBQ1gsQ0FBQyxDQUFDLGNBQWM7WUFDbEIsWUFBWSxFQUFFLFVBQVUsS0FBSyxTQUFTO1NBQ3ZDLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxxQkFBcUIsQ0FBQyxVQUFzQjtRQUNsRCxNQUFNLGVBQWUsR0FBK0I7WUFDbEQsQ0FBQyxzQkFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsd0JBQXdCO1lBQ3hELENBQUMsc0JBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLHVCQUF1QjtZQUN0RCxDQUFDLHNCQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBRSwwQkFBMEI7WUFDNUQsQ0FBQyxzQkFBVSxDQUFDLGtCQUFrQixDQUFDLEVBQUUseUJBQXlCO1NBQzNELENBQUM7UUFDRixNQUFNLEdBQUcsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUNJLENBQUM7UUFDdEMsSUFBSSxTQUFTLElBQUksR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBaUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsT0FBTztJQUNULENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFZLGtCQUFrQjtRQUM1QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQzJCLENBQUM7UUFDN0QsT0FBTyxTQUFTLEVBQUUsZUFBZSxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsSUFBYyxjQUFjO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUF1RCxDQUFDO1FBQzNFLE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDTyx1QkFBdUIsQ0FBQyxlQUF1QjtRQUN2RCxPQUFPLElBQUEsOEJBQWtCLEVBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQ25DLGVBQWUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNPLGdCQUFnQjtRQUN4QixPQUFPO1lBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVztZQUN6QyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQjtZQUNyRCxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPO1lBQ2pDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTTtZQUNsRCxxQkFBcUIsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUztTQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNPLHNCQUFzQixDQUM5QixZQUE0QjtRQUU1QixNQUFNLFVBQVUsR0FBRyxJQUFJLHFDQUFnQixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUNoRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUMvQixPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPO1lBQ2pDLFlBQVk7WUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXO1lBQ3pDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCO1lBQ3JELGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNO1lBQ2xELHFCQUFxQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTO1lBQ3hELFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0I7WUFDckQsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCO1NBQ2xELENBQUMsQ0FBQztRQUNILE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxHQUNuRSxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDMUIsS0FBSyxNQUFNLE1BQU0sSUFBSTtZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQjtZQUNqQyxnQkFBZ0I7WUFDaEIsdUJBQXVCO1lBQ3ZCLGdCQUFnQjtTQUNqQixFQUFFLENBQUM7WUFDRixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBYyxvQkFBb0I7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ3JELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsT0FBTyxJQUFJLDBCQUFXLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUMxQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZO1lBQ3pDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWM7WUFDN0MsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVM7WUFDbkMseUVBQXlFO1lBQ3pFLHdEQUF3RDtZQUN4RCxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDOUQsSUFBSTtnQkFDSixNQUFNO2FBQ1AsQ0FBQyxDQUFDO1lBQ0gsMEVBQTBFO1lBQzFFLFlBQVksRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLFlBQVk7WUFDbEUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCO1NBQzdDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsT0FBTyxJQUFJLDBCQUFXLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUMxQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPO1lBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVc7WUFDdkMsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWTtZQUMzQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsV0FBVztZQUNoRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQjtZQUNuRCxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0I7U0FDN0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixPQUFPLElBQUkseUNBQWtCLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ3hELE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQjtZQUN6QyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjO1lBQzdDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU87WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLGtCQUFrQjtZQUN2RCxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSx1QkFBdUI7U0FDcEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ08scUJBQXFCO1FBQzdCLHVFQUF1RTtRQUN2RSx1QkFBdUI7UUFDdkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQzFDLE9BQU8sSUFBSSxrQ0FBZSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUNsRCxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlO1lBQ2pELFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVk7WUFDM0MsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLFNBQVMsRUFBRTtnQkFDVCxHQUFHLFNBQVM7Z0JBQ1osYUFBYSxFQUFFO29CQUNiLEdBQUcsU0FBUyxFQUFFLGFBQWE7b0JBQzNCLDhEQUE4RDtvQkFDOUQsdURBQXVEO29CQUN2RCx1RUFBdUU7b0JBQ3ZFLG1FQUFtRTtvQkFDbkUsa0VBQWtFO29CQUNsRSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDM0Q7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBNVVILGtEQTZVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRva2VuIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBJRGlzdHJpYnV0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQgeyBJVGFibGVWMiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGJcIjtcbmltcG9ydCB7IElWcGMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgSUJ1Y2tldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBMT0dfUFJFRklYLCBOZXh0anNUeXBlIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgT3B0aW9uYWxOZXh0anNCdWlsZFByb3BzIH0gZnJvbSBcIi4uL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzQnVpbGRQcm9wc1wiO1xuaW1wb3J0IHsgT3B0aW9uYWxOZXh0anNDYWNoZVByb3BzIH0gZnJvbSBcIi4uL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzQ2FjaGVQcm9wc1wiO1xuaW1wb3J0IHsgT3B0aW9uYWxOZXh0anNQb3N0RGVwbG95UHJvcHMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNQb3N0RGVwbG95UHJvcHNcIjtcbmltcG9ydCB7IE5leHRqc0FwaU92ZXJyaWRlcyB9IGZyb20gXCIuLi9uZXh0anMtYXBpXCI7XG5pbXBvcnQgeyBOZXh0anNCdWlsZCB9IGZyb20gXCIuLi9uZXh0anMtYnVpbGQvbmV4dGpzLWJ1aWxkXCI7XG5pbXBvcnQgeyBOZXh0anNDYWNoZSwgTmV4dGpzQ2FjaGVPdmVycmlkZXMgfSBmcm9tIFwiLi4vbmV4dGpzLWNhY2hlXCI7XG5pbXBvcnQgeyBOZXh0anNDb21wdXRlQmFzZVByb3BzIH0gZnJvbSBcIi4uL25leHRqcy1jb21wdXRlL25leHRqcy1jb21wdXRlLWJhc2UtcHJvcHNcIjtcbmltcG9ydCB7XG4gIE5leHRqc0Z1bmN0aW9uR3JvdXAsXG4gIE5leHRqc0Z1bmN0aW9ucyxcbiAgTmV4dGpzRnVuY3Rpb25zT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi4vbmV4dGpzLWNvbXB1dGUvbmV4dGpzLWZ1bmN0aW9uc1wiO1xuaW1wb3J0IHtcbiAgTmV4dGpzUG9zdERlcGxveSxcbiAgTmV4dGpzUG9zdERlcGxveU92ZXJyaWRlcyxcbn0gZnJvbSBcIi4uL25leHRqcy1wb3N0LWRlcGxveVwiO1xuaW1wb3J0IHtcbiAgTmV4dGpzU3RhdGljQXNzZXRzLFxuICBOZXh0anNTdGF0aWNBc3NldHNPdmVycmlkZXMsXG4gIE5leHRqc1N0YXRpY0Fzc2V0c1Byb3BzLFxufSBmcm9tIFwiLi4vbmV4dGpzLXN0YXRpYy1hc3NldHNcIjtcbmltcG9ydCB7XG4gIEFwaUdhdGV3YXlQcmVmaXgsXG4gIGlzQXNzZXRQcmVmaXhVbnNlcnZlZCxcbiAgcHJlZml4V2l0aEJhc2VQYXRoLFxuICByZXNvbHZlQmFzZVBhdGgsXG59IGZyb20gXCIuLi91dGlscy9iYXNlLXBhdGhcIjtcblxuLyoqXG4gKiBCYXNlIG92ZXJyaWRlcyBmb3IgdGhlIHByb3BzIHBhc3NlZCB0byBjb25zdHJ1Y3RzIHdpdGhpbiByb290L3RvcC1sZXZlbCBOZXh0LmpzIGNvbnN0cnVjdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0anNCYXNlQ29uc3RydWN0T3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgbmV4dGpzQnVpbGRQcm9wcz86IE9wdGlvbmFsTmV4dGpzQnVpbGRQcm9wcztcbiAgcmVhZG9ubHkgbmV4dGpzQ2FjaGVQcm9wcz86IE9wdGlvbmFsTmV4dGpzQ2FjaGVQcm9wcztcbiAgcmVhZG9ubHkgbmV4dGpzUG9zdERlcGxveVByb3BzPzogT3B0aW9uYWxOZXh0anNQb3N0RGVwbG95UHJvcHM7XG4gIHJlYWRvbmx5IG5leHRqc1N0YXRpY0Fzc2V0c1Byb3BzPzogTmV4dGpzU3RhdGljQXNzZXRzUHJvcHM7XG59XG5cbi8qKlxuICogQmFzZSBvdmVycmlkZXMgZm9yIGNvbnN0cnVjdHMgc2hhcmVkIGJldHdlZW4gYWxsIHJvb3QvdG9wLWxldmVsIE5leHQuanMgY29uc3RydWN0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0anNCYXNlT3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgbmV4dGpzQ2FjaGU/OiBOZXh0anNDYWNoZU92ZXJyaWRlcztcbiAgcmVhZG9ubHkgbmV4dGpzUG9zdERlcGxveT86IE5leHRqc1Bvc3REZXBsb3lPdmVycmlkZXM7XG4gIHJlYWRvbmx5IG5leHRqc1N0YXRpY0Fzc2V0cz86IE5leHRqc1N0YXRpY0Fzc2V0c092ZXJyaWRlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNCYXNlUHJvcHMge1xuICAvKipcbiAgICogUHJlZml4IHRvIHRoZSBVUkkgcGF0aCB0aGUgYXBwIHdpbGwgYmUgc2VydmVkIGF0LiBBbHNvIG5hbWVzcGFjZXMgdGhlXG4gICAqIHN0YXRpYyBhc3NldHMgaW4gUzMsIHNvIGl0IGRvdWJsZXMgYXMgYSB3YXkgdG8gaG9zdCBtdWx0aXBsZSBhcHBzIG9yXG4gICAqIGJyYW5jaGVzIG91dCBvZiBvbmUgYnVja2V0LlxuICAgKlxuICAgKiBIb3cgdGhpcyByZWxhdGVzIHRvIHRoZSBgYmFzZVBhdGhgIGluIHlvdXIgYXBwJ3MgYG5leHQuY29uZmlnLmpzYCBkZXBlbmRzXG4gICAqIG9uIHRoZSBjb25zdHJ1Y3QsIGFuZCBzeW50aCBmYWlscyBvbiBhIGNvbWJpbmF0aW9uIHRoYXQgY2FuJ3Qgc2VydmUgdGhlXG4gICAqIGFwcDpcbiAgICpcbiAgICogLSBgTmV4dGpzR2xvYmFsRnVuY3Rpb25zYC9gTmV4dGpzR2xvYmFsQ29udGFpbmVyc2A6IGxlYXZlIHRoaXMgdW5zZXQgYW5kIGl0XG4gICAqICAgZm9sbG93cyB5b3VyIGFwcCdzIGBiYXNlUGF0aGAsIHdoaWNoIGlzIHdoYXQgeW91IHdhbnQg4oCUIENsb3VkRnJvbnQgc2VydmVzXG4gICAqICAgc3RhdGljIGFzc2V0cyBmcm9tIFMzIHVzaW5nIHRoZSByZXF1ZXN0IHBhdGggYXMgdGhlIG9iamVjdCBrZXksIHNvIHRoZSB0d29cbiAgICogICBoYXZlIHRvIGJlIGlkZW50aWNhbCBhbmQgYSBtaXNtYXRjaCA0MDRzIGFsbCBvZiB0aGVtLiBTZXR0aW5nIGEgZGlmZmVyZW50XG4gICAqICAgdmFsdWUgdGhyb3dzLlxuICAgKiAtIGBOZXh0anNSZWdpb25hbEZ1bmN0aW9uc2A6IGxlYXZlIHRoaXMgdW5zZXQgYW5kIGl0IGZvbGxvd3MgeW91ciBhcHAnc1xuICAgKiAgIGBiYXNlUGF0aGAgbWludXMgdGhlIHByZWZpeCBBUEkgR2F0ZXdheSBzdHJpcHMgYmVmb3JlIG1hdGNoaW5nIHJlc291cmNlcyDigJRcbiAgICogICB0aGUgc3RhZ2UgKGBkZXBsb3lPcHRpb25zLnN0YWdlTmFtZWAsIGRlZmF1bHQgYHByb2RgKSwgb3IgdGhlIGJhc2UgcGF0aFxuICAgKiAgIG1hcHBpbmcgb2YgYSBjdXN0b20gZG9tYWluIHNldCBpbiBgcmVzdEFwaVByb3BzLmRvbWFpbk5hbWVgLiBTb1xuICAgKiAgIGBiYXNlUGF0aDogXCIvcHJvZFwiYCBtb3VudHMgYXQgdGhlIHJvb3QsIGBcIi9wcm9kL2Jhc2VcImAgdW5kZXIgYGJhc2VgLCBhbmRcbiAgICogICBgXCIvZG9jc1wiYCBiZWhpbmQgYSBjdXN0b20gZG9tYWluIG1hcHBlZCBhdCB0aGUgcm9vdCB1bmRlciBgZG9jc2AuIE9uIHRoZVxuICAgKiAgIGV4ZWN1dGUtYXBpIGVuZHBvaW50IGFuIGFwcCBgYmFzZVBhdGhgIHRoYXQgZG9lc24ndCBzdGFydCB3aXRoIHRoZSBzdGFnZVxuICAgKiAgIHdhcm5zLCBzaW5jZSBpdHMgbGlua3Mgd2lsbCBtaXNzIHRoZSBzdGFnZS4gSWYgeW91IHNldCB0aGlzLCB0aGUgYXBwJ3NcbiAgICogICBgYmFzZVBhdGhgIG11c3QgZW5kIHdpdGggaXQuIEEgZG9tYWluIGF0dGFjaGVkIGxhdGVyIHdpdGhcbiAgICogICBgYWRkRG9tYWluTmFtZSgpYCBpcyBub3Qgc2VlbiBhdCBzeW50aDsgc2V0IHRoaXMgZXhwbGljaXRseSB0aGVuIOKAlCB0b1xuICAgKiAgIGBcIi9cImAgd2hlbiB0aGF0IGRvbWFpbidzIGJhc2UgcGF0aCBtYXBwaW5nIHN0cmlwcyB5b3VyIGFwcCdzIHdob2xlXG4gICAqICAgYGJhc2VQYXRoYCwgd2hpY2ggbW91bnRzIGV2ZXJ5IHJlc291cmNlIGF0IHRoZSByb290LlxuICAgKiAtIGBOZXh0anNSZWdpb25hbENvbnRhaW5lcnNgOiBvbmx5IG5hbWVzcGFjZXMgdGhlIFMzIGJ1Y2tldC4gVGhlIEFMQiBzZW5kc1xuICAgKiAgIGV2ZXJ5IHBhdGggdG8gdGhlIGNvbnRhaW5lciwgd2hpY2ggc2VydmVzIGl0cyBvd24gc3RhdGljIGFzc2V0cywgc28gdGhpc1xuICAgKiAgIGlzIHVuY29uc3RyYWluZWQuXG4gICAqIEBleGFtcGxlIFwiL215LWJhc2UtcGF0aFwiXG4gICAqL1xuICByZWFkb25seSBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIENvbW1hbmQgdG8gZ2VuZXJhdGUgb3B0aW1pemVkIHZlcnNpb24gb2YgeW91ciBOZXh0LmpzIGFwcCBpbiBjb250YWluZXI7XG4gICAqIEBkZWZhdWx0IFwibnBtIHJ1biBidWlsZFwiXG4gICAqL1xuICByZWFkb25seSBidWlsZENvbW1hbmQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEaXJlY3Rvcnkgd2hlcmUgdGhlIE5leHQuanMgYXBwbGljYXRpb24gaXMgbG9jYXRlZCBmb3IgbG9jYWwgYnVpbGRzLlxuICAgKiBUaGlzIHNob3VsZCBjb250YWluIHRoZSBwYWNrYWdlLmpzb24gYW5kIE5leHQuanMgYXBwbGljYXRpb24gZmlsZXMuXG4gICAqIFRoaXMgaXMgd2hlcmUge0BsaW5rIE5leHRqc0Jhc2VQcm9wcy5idWlsZENvbW1hbmR9IGlzIHJ1bi5cbiAgICogQGV4YW1wbGUgam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi4uXCIsIFwid2ViXCIpIG9yIFwiL3BhdGgvdG8vbmV4dGpzL2FwcFwiXG4gICAqL1xuICByZWFkb25seSBidWlsZERpcmVjdG9yeTogc3RyaW5nO1xuICAvKipcbiAgICogQnJpbmcgeW91ciBvd24gUzMgYnVja2V0IGZvciBjYWNoZSBzdG9yYWdlLiBXaGVuIHByb3ZpZGVkLCBjZGstbmV4dGpzXG4gICAqIHdpbGwgdXNlIHRoaXMgYnVja2V0IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb25lLlxuICAgKlxuICAgKiBUaGUgYnVja2V0IG11c3QgYmUgZGVkaWNhdGVkIHRvIHRoaXMgb25lIGRlcGxveW1lbnQuIERvbid0IHNoYXJlIGl0IHdpdGhcbiAgICogYW5vdGhlciBkZXBsb3ltZW50IChhbm90aGVyIGJyYW5jaCwgc3RhZ2UsIG9yIGFwcCk6IGV2ZXJ5IGRlcGxveSdzXG4gICAqIHBvc3QtZGVwbG95IHN0ZXAgZGVsZXRlcyBldmVyeSBvYmplY3QgdW5kZXIgYSB0b3AtbGV2ZWwgcHJlZml4IG90aGVyIHRoYW5cbiAgICogdGhlIGN1cnJlbnQgYGJ1aWxkSWQvYCwgd2hpY2ggaW5jbHVkZXMgZXZlcnkgb3RoZXIgZGVwbG95bWVudCdzIGNhY2hlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FjaGVCdWNrZXQ/OiBJQnVja2V0O1xuICAvKipcbiAgICogQnJpbmcgeW91ciBvd24gRHluYW1vREIgdGFibGUgZm9yIHJldmFsaWRhdGlvbiBtZXRhZGF0YS4gV2hlbiBwcm92aWRlZCxcbiAgICogY2RrLW5leHRqcyB3aWxsIHVzZSB0aGlzIHRhYmxlIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb25lLiBUaGUgdGFibGVcbiAgICogbXVzdCBoYXZlIGBwa2AgKFN0cmluZykgYXMgcGFydGl0aW9uIGtleSBhbmQgYHNrYCAoU3RyaW5nKSBhcyBzb3J0IGtleS5cbiAgICogRW5hYmxlIFRUTCBvbiBpdHMgYHR0bGAgYXR0cmlidXRlIHRvbzogZWFjaCB0YWcgcmV2YWxpZGF0aW9uIHdyaXRlcyBhXG4gICAqIHJldmFsaWRhdGlvbiBsb2cgcm93IHRoYXQgZXhwaXJlcyB0aHJvdWdoIGl0LCBhbmQgd2l0aG91dCBUVEwgdGhvc2Ugcm93c1xuICAgKiBhY2N1bXVsYXRlLlxuICAgKlxuICAgKiBUaGUgdGFibGUgbXVzdCBiZSBkZWRpY2F0ZWQgdG8gdGhpcyBvbmUgZGVwbG95bWVudC4gRG9uJ3Qgc2hhcmUgaXQgd2l0aFxuICAgKiBhbm90aGVyIGRlcGxveW1lbnQgKGFub3RoZXIgYnJhbmNoLCBzdGFnZSwgb3IgYXBwKTogZXZlcnkgZGVwbG95J3NcbiAgICogcG9zdC1kZXBsb3kgc3RlcCBkZWxldGVzIHRoZSBlbnRyaWVzIG9mIHRoZSBidWlsZCBpdCBsYXN0IHJlY29yZGVkIGluIHRoZVxuICAgKiB0YWJsZSwgd2hpY2ggd2l0aCBhIHNoYXJlZCB0YWJsZSBpcyBhbm90aGVyIGRlcGxveW1lbnQncyBsaXZlIGJ1aWxkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmV2YWxpZGF0aW9uVGFibGU/OiBJVGFibGVWMjtcbiAgLyoqXG4gICAqIFNraXBzIHJ1bm5pbmcgYG5leHQgYnVpbGRgLiBJZiBgdHJ1ZWAsIHlvdSBhcmUgcmVzcG9uc2libGUgZm9yIHJ1bm5pbmdcbiAgICogYG5leHQgYnVpbGRgIGJlZm9yZSB0aGlzIGNvbnN0cnVjdCBpcyBzeW50aGVzaXplZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNraXBCdWlsZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCcmluZyB5b3VyIG93biBTMyBidWNrZXQgZm9yIHN0YXRpYyBhc3NldHMuIFdoZW4gcHJvdmlkZWQsIGNkay1uZXh0anNcbiAgICogd2lsbCBkZXBsb3kgc3RhdGljIGFzc2V0cyB0byB0aGlzIGJ1Y2tldCBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbmV3IG9uZS5cbiAgICpcbiAgICogVW5saWtlIGBjYWNoZUJ1Y2tldGAsIHRoaXMgb25lIGNhbiBiZSBzaGFyZWQsIGJ1dCBvbmx5IGJldHdlZW4gZGVwbG95bWVudHNcbiAgICogd2l0aCBkaWZmZXJlbnQgYGJhc2VQYXRoYHMgKHNvIGRpZmZlcmVudCBTMyBrZXkgcHJlZml4ZXMpLiBQcnVuaW5nIG9ubHlcbiAgICogdG91Y2hlcyBgPGJhc2VQYXRoPi9fbmV4dC9gLCBzbyBpdCBsZWF2ZXMgdGhlIG90aGVycycgYXNzZXRzIGFsb25lLiBUd29cbiAgICogZGVwbG95bWVudHMgdW5kZXIgdGhlIHNhbWUgcHJlZml4IG92ZXJ3cml0ZSBlYWNoIG90aGVyJ3MgYHB1YmxpYy9gIGZpbGVzXG4gICAqIGFuZCBwcnVuZSBlYWNoIG90aGVyJ3MgYF9uZXh0L2AgYXNzZXRzIG9uY2UgdGhleSBhcmUgcGFzdCB0aGUgcHJ1bmVcbiAgICogVFRMICgzMCBkYXlzIGJ5IGRlZmF1bHQpLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGljQXNzZXRzQnVja2V0PzogSUJ1Y2tldDtcbiAgLyoqXG4gICAqIEJyaW5nIHlvdXIgb3duIFZQQy5cbiAgICogSWYgcHJvdmlkZWQsIHdpbGwgYmUgcGFzc2VkIHZpYSBvdmVycmlkZXMgdG8gdGhlIEVDUyBDbHVzdGVyIChmb3IgY29udGFpbmVyLWJhc2VkIGNvbnN0cnVjdHMpXG4gICAqIG9yIHRvIHRoZSBMYW1iZGEgZnVuY3Rpb24gKGZvciBmdW5jdGlvbi1iYXNlZCBjb25zdHJ1Y3RzKS5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBFQ1MgQ2x1c3RlciB3aWxsIGNyZWF0ZSBhIFZQQyBhdXRvbWF0aWNhbGx5IGZvciBjb250YWluZXJzLFxuICAgKiBhbmQgTGFtYmRhIGZ1bmN0aW9ucyB3aWxsIHJ1biBvdXRzaWRlIGEgVlBDLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjPzogSVZwYztcbn1cblxuLyoqXG4gKiBSZXF1aXJlZCBiZWNhdXNlIGlmIHdlIGFkZCBgb3ZlcnJpZGVzYCBvbnRvIGBOZXh0anNCYXNlUHJvcHNgIHdlIGdldCBqc2lpXG4gKiBlcnJvcjogYEludGVyZmFjZSAuLi4gcmUtZGVjbGFyZXMgbWVtYmVyIFwib3ZlcnJpZGVzXCJgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzQmFzZUNvbnN0cnVjdFByb3BzIGV4dGVuZHMgTmV4dGpzQmFzZVByb3BzIHtcbiAgcmVhZG9ubHkgb3ZlcnJpZGVzPzogTmV4dGpzQmFzZU92ZXJyaWRlcztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgTmV4dC5qcyByb290IGNvbnN0cnVjdHNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5leHRqc0Jhc2VDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBuZXh0anNCdWlsZDogTmV4dGpzQnVpbGQ7XG4gIG5leHRqc1N0YXRpY0Fzc2V0czogTmV4dGpzU3RhdGljQXNzZXRzO1xuICBuZXh0anNDYWNoZTogTmV4dGpzQ2FjaGU7XG5cbiAgYWJzdHJhY3QgZ2V0IHVybCgpOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5leHRqc1R5cGU6IE5leHRqc1R5cGU7XG4gIC8vIHVzZSBiYXNlUHJvcHMgaW5zdGVhZCBvZiBwcm9wcyBzbyB0aGF0IGNoaWxkIGNsYXNzZXMgY2FuIHVzZSBwcm9wc1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYmFzZVByb3BzOiBOZXh0anNCYXNlQ29uc3RydWN0UHJvcHM7XG4gIC8vIFdpZGVzdCBzaGFwZSBvZiB0aGUgcGVyLWBOZXh0anNUeXBlYCBvdmVycmlkZXMuIFRoZSBwdWJsaWMgaW50ZXJmYWNlIGVhY2hcbiAgLy8gcm9vdCBjb25zdHJ1Y3QgYWNjZXB0cyBpcyB3aGF0IGFjdHVhbGx5IGdhdGVzIHdoaWNoIGtleXMgYXJlIHNldHRhYmxlLlxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uc3RydWN0T3ZlcnJpZGVzPzogTmV4dGpzQmFzZUNvbnN0cnVjdE92ZXJyaWRlcztcbiAgLyoqXG4gICAqIFRoZSBgYmFzZVBhdGhgIGV2ZXJ5dGhpbmcgZG93bnN0cmVhbSBpcyBidWlsdCBmcm9tOiB0aGUgYGJhc2VQYXRoYCBwcm9wIHdoZW5cbiAgICogc2V0LCBvdGhlcndpc2UgdGhlIGFwcCdzIG93biBgYmFzZVBhdGhgIGZvciB0aGUgYE5leHRqc1R5cGVgcyB3aGVyZSB0aGUgdHdvXG4gICAqIGFyZSBuZWNlc3NhcmlseSB0aGUgc2FtZS4gTm9ybWFsaXplZCB0byBhIGJhcmUgcGF0aCBzZWdtZW50LCBgdW5kZWZpbmVkYCBmb3JcbiAgICogbm8gYGJhc2VQYXRoYC4gVXNlIHRoaXMgaW5zdGVhZCBvZiBgYmFzZVByb3BzLmJhc2VQYXRoYC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSByZXNvbHZlZEJhc2VQYXRoPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogTmV4dGpzQmFzZUNvbnN0cnVjdFByb3BzLFxuICAgIG5leHRqc1R5cGU6IE5leHRqc1R5cGUsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5iYXNlUHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLm5leHRqc1R5cGUgPSBuZXh0anNUeXBlO1xuICAgIHRoaXMuY29uc3RydWN0T3ZlcnJpZGVzID0gdGhpcy5nZXRDb25zdHJ1Y3RPdmVycmlkZXMobmV4dGpzVHlwZSk7XG5cbiAgICB0aGlzLm5leHRqc0J1aWxkID0gdGhpcy5jcmVhdGVOZXh0anNCdWlsZCgpO1xuICAgIC8vIEEgYmFzZVBhdGggdGhhdCBkb2Vzbid0IGxpbmUgdXAgd2l0aCB0aGUgYXBwJ3Mgb3duIGRlcGxveXMgY2xlYW5seSBhbmRcbiAgICAvLyB0aGVuIDQwNHMgc3RhdGljIGFzc2V0cywgc28gcmVjb25jaWxlIHRoZSB0d28gdXAgZnJvbnQgYW5kIGZhaWwgYXQgc3ludGhcbiAgICAvLyBvbiBhIGNvbWJpbmF0aW9uIHRoYXQgY2FuJ3Qgd29yay5cbiAgICB0aGlzLnJlc29sdmVkQmFzZVBhdGggPSByZXNvbHZlQmFzZVBhdGgoXG4gICAgICBuZXh0anNUeXBlLFxuICAgICAgcHJvcHMuYmFzZVBhdGgsXG4gICAgICB0aGlzLm5leHRqc0J1aWxkLm5leHRDb25maWdCYXNlUGF0aCxcbiAgICAgIHRoaXMuYXBpR2F0ZXdheVByZWZpeCgpLFxuICAgICk7XG4gICAgdGhpcy5uZXh0anNDYWNoZSA9IHRoaXMuY3JlYXRlTmV4dGpzQ2FjaGUoKTtcbiAgICB0aGlzLm5leHRqc1N0YXRpY0Fzc2V0cyA9IHRoaXMuY3JlYXRlTmV4dGpzU3RhdGljQXNzZXRzKCk7XG4gICAgdGhpcy52YWxpZGF0ZVN0YXRpY0Fzc2V0c0tleVByZWZpeCgpO1xuICAgIHRoaXMud2FyblVuc2VydmVkQXNzZXRQcmVmaXgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYXJucyB3aGVuIGEgcGF0aC1zdHlsZSBgYXNzZXRQcmVmaXhgIHdvdWxkIDQwNCBldmVyeSBidW5kbGUgb24gdGhpc1xuICAgKiBgTmV4dGpzVHlwZWAg4oCUIHNlZSB7QGxpbmsgaXNBc3NldFByZWZpeFVuc2VydmVkfSBmb3Igd2hpY2ggY29tYmluYXRpb25zIHRob3NlXG4gICAqIGFyZSBhbmQgd2h5IGEgcHJlZml4IGVxdWFsIHRvIHRoZSBhcHAncyBgYmFzZVBhdGhgIGlzIG5vdCBvbmUgb2YgdGhlbS5cbiAgICpcbiAgICogV2FybiByYXRoZXIgdGhhbiB0aHJvdzogaXQgaXMgdGhlIGFwcCdzIGNvbmZpZywgdGhlIGRlcGxveW1lbnQgb3RoZXJ3aXNlXG4gICAqIHdvcmtzLCBhbmQgYW4gYWJzb2x1dGUgYGFzc2V0UHJlZml4YCAoYWxyZWFkeSByZWR1Y2VkIHRvIGBcIlwiYCBieVxuICAgKiBgcmVsYXRpdmVBc3NldFByZWZpeGApIGlzIHRoZSBzdXBwb3J0ZWQgd2F5IHRvIHNlcnZlIGFzc2V0cyBmcm9tXG4gICAqIGVsc2V3aGVyZS5cbiAgICovXG4gIHByaXZhdGUgd2FyblVuc2VydmVkQXNzZXRQcmVmaXgoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIWlzQXNzZXRQcmVmaXhVbnNlcnZlZChcbiAgICAgICAgdGhpcy5uZXh0anNUeXBlLFxuICAgICAgICB0aGlzLm5leHRqc0J1aWxkLm5leHRDb25maWdBc3NldFByZWZpeCxcbiAgICAgICAgdGhpcy5uZXh0anNCdWlsZC5uZXh0Q29uZmlnQmFzZVBhdGgsXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnNvbGUud2FybihcbiAgICAgIGAke0xPR19QUkVGSVh9IHlvdXIgTmV4dC5qcyBhcHAgc2V0cyBcXGBhc3NldFByZWZpeDogXCIke3RoaXMubmV4dGpzQnVpbGQubmV4dENvbmZpZ0Fzc2V0UHJlZml4fVwiXFxgLCBgICtcbiAgICAgICAgYHdoaWNoIE5leHRqc1R5cGUuJHt0aGlzLm5leHRqc1R5cGV9IGNhbm5vdCBzZXJ2ZTogeW91ciBidW5kbGVzIHdpbGwgYmUgcmVxdWVzdGVkIGF0IGAgK1xuICAgICAgICBgXCIke3RoaXMubmV4dGpzQnVpbGQubmV4dENvbmZpZ0Fzc2V0UHJlZml4fS9fbmV4dC9zdGF0aWMvLi4uXCIgYW5kIG5vdGhpbmcgYW5zd2VycyB0aGVyZSwgc28gdGhleSB3aWxsIDQwNC4gYCArXG4gICAgICAgIFwiRHJvcCBgYXNzZXRQcmVmaXhgLCB1c2UgYW4gYWJzb2x1dGUgb25lIHBvaW50aW5nIGF0IGEgQ0ROIHlvdSBmcm9udCB0aGUgYXNzZXRzIGJ1Y2tldCB3aXRoLCBcIiArXG4gICAgICAgIFwib3IgZGVwbG95IHdpdGggTmV4dGpzR2xvYmFsRnVuY3Rpb25zL05leHRqc0dsb2JhbENvbnRhaW5lcnMuXCIsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3IgdGhlIEdsb2JhbCBgTmV4dGpzVHlwZWBzIHRoZSBrZXkgcHJlZml4IGlzbid0IGEgZnJlZSBjaG9pY2U6IGl0IGhhcyB0byBiZVxuICAgKiBgYmFzZVBhdGhgIChzZWUgYHJlc29sdmVCYXNlUGF0aGApLiBBIGBkZXN0aW5hdGlvbktleVByZWZpeGAgb3ZlcnJpZGUgdGhhdFxuICAgKiBtb3ZlcyB0aGUgb2JqZWN0cyBlbHNld2hlcmUgaGFzIG5vIHdheSB0byB0ZWxsIHRoZSBkaXN0cmlidXRpb24gYWJvdXQgaXQg4oCUXG4gICAqIHVubGlrZSB0aGUgZnVuY3Rpb25zJyBpbWFnZSBvcHRpbWl6ZXIgYW5kIGBOZXh0anNBcGlgLCB3aGljaCByZWFkXG4gICAqIGBOZXh0anNTdGF0aWNBc3NldHMua2V5UHJlZml4YCDigJQgc28gZmFpbCBhdCBzeW50aCByYXRoZXIgdGhhbiA0MDQgZXZlcnlcbiAgICogc3RhdGljIHJlcXVlc3QuXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlU3RhdGljQXNzZXRzS2V5UHJlZml4KCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMubmV4dGpzVHlwZSAhPT0gTmV4dGpzVHlwZS5HTE9CQUxfRlVOQ1RJT05TICYmXG4gICAgICB0aGlzLm5leHRqc1R5cGUgIT09IE5leHRqc1R5cGUuR0xPQkFMX0NPTlRBSU5FUlNcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZXhwZWN0ZWQgPSB0aGlzLnJlc29sdmVkQmFzZVBhdGggPz8gXCJcIjtcbiAgICBjb25zdCBhY3R1YWwgPSB0aGlzLm5leHRqc1N0YXRpY0Fzc2V0cy5rZXlQcmVmaXg7XG4gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7TE9HX1BSRUZJWH0gc3RhdGljIGFzc2V0cyBrZXkgcHJlZml4IG1pc21hdGNoIGZvciBOZXh0anNUeXBlLiR7dGhpcy5uZXh0anNUeXBlfTogYCArXG4gICAgICAgICAgYHRoZSBhc3NldHMgYXJlIHVwbG9hZGVkIHVuZGVyICR7YWN0dWFsID8gYFwiJHthY3R1YWx9XCJgIDogXCJ0aGUgYnVja2V0IHJvb3RcIn0gYCArXG4gICAgICAgICAgYGJ1dCBDbG91ZEZyb250IHdpbGwgcmVxdWVzdCB0aGVtIHVuZGVyICR7ZXhwZWN0ZWQgPyBgXCIke2V4cGVjdGVkfVwiYCA6IFwidGhlIGJ1Y2tldCByb290XCJ9LCBgICtcbiAgICAgICAgICBcInVzaW5nIHRoZSByZXF1ZXN0IHBhdGggYXMgdGhlIFMzIG9iamVjdCBrZXksIHNvIGV2ZXJ5IGBfbmV4dC9zdGF0aWNgIGFuZCBgcHVibGljL2AgcmVxdWVzdCB3b3VsZCA0MDQuIFwiICtcbiAgICAgICAgICBcIkRyb3AgdGhlIGBkZXN0aW5hdGlvbktleVByZWZpeGAgb3ZlcnJpZGUsIG9yIHNldCBpdCB0byB0aGUgc2FtZSB2YWx1ZSBhcyBgYmFzZVBhdGhgLiBcIiArXG4gICAgICAgICAgXCJUbyBuYW1lc3BhY2UgYSBzaGFyZWQgYnVja2V0LCB1c2UgYGJhc2VQYXRoYCDigJQgaXQgcHJlZml4ZXMgdGhlIGtleXMgYW5kIHRoZSBVUkxzIHRvZ2V0aGVyLlwiLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIHByZWZpeCBBUEkgR2F0ZXdheSB3aWxsIHN0cmlwLCByZWFkIGZyb20gdGhlIHNhbWUgYHJlc3RBcGlQcm9wc2BcbiAgICogb3ZlcnJpZGUgYE5leHRqc0FwaWAgYnVpbGRzIGl0cyBgUmVzdEFwaWAgZnJvbS4gT25seSBtZWFuaW5nZnVsIGZvclxuICAgKiBgUkVHSU9OQUxfRlVOQ1RJT05TYCwgYW5kIHJlYWQgYmVmb3JlIGBOZXh0anNBcGlgIGV4aXN0cyBiZWNhdXNlIHRoZVxuICAgKiByZXNvbHZlZCBgYmFzZVBhdGhgIGFsc28gZGVjaWRlcyB0aGUgc3RhdGljIGFzc2V0cycgUzMga2V5IHByZWZpeC5cbiAgICpcbiAgICogQSBkb21haW4gYXR0YWNoZWQgbGF0ZXIgd2l0aCBgYXBpLmFkZERvbWFpbk5hbWUoKWAgaXMgaW52aXNpYmxlIGhlcmUsIHRoZVxuICAgKiBzYW1lIGxpbWl0YXRpb24gYE5leHRqc0FwaS51cmxgIGRvY3VtZW50cy5cbiAgICovXG4gIHByaXZhdGUgYXBpR2F0ZXdheVByZWZpeCgpOiBBcGlHYXRld2F5UHJlZml4IHtcbiAgICAvLyBgb3ZlcnJpZGVzLm5leHRqc0FwaWAgaXMgdGhlIG9ubHkgdHlwZWQgd2F5IHRvIHJlYWNoIHRoZSBgUmVzdEFwaWAnc1xuICAgIC8vIHByb3BzOiBgbmV4dGpzUmVnaW9uYWxGdW5jdGlvbnMubmV4dGpzQXBpUHJvcHNgIGlzXG4gICAgLy8gYE9wdGlvbmFsTmV4dGpzQXBpUHJvcHNgLCB3aGljaCBoYXMgbm8gYG92ZXJyaWRlc2AuXG4gICAgY29uc3QgYXBpT3ZlcnJpZGVzID0gKFxuICAgICAgdGhpcy5iYXNlUHJvcHMub3ZlcnJpZGVzIGFzIHsgbmV4dGpzQXBpPzogTmV4dGpzQXBpT3ZlcnJpZGVzIH0gfCB1bmRlZmluZWRcbiAgICApPy5uZXh0anNBcGk7XG4gICAgY29uc3QgcmVzdEFwaVByb3BzID0gYXBpT3ZlcnJpZGVzPy5yZXN0QXBpUHJvcHM7XG4gICAgY29uc3QgZG9tYWluTmFtZSA9IHJlc3RBcGlQcm9wcz8uZG9tYWluTmFtZTtcbiAgICBjb25zdCBzdHJpcHBlZFByZWZpeCA9IGRvbWFpbk5hbWVcbiAgICAgID8gKGRvbWFpbk5hbWUuYmFzZVBhdGggPz8gXCJcIilcbiAgICAgIDogKHJlc3RBcGlQcm9wcz8uZGVwbG95T3B0aW9ucz8uc3RhZ2VOYW1lID8/IFwicHJvZFwiKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3RyaXBwZWRQcmVmaXg6IFRva2VuLmlzVW5yZXNvbHZlZChzdHJpcHBlZFByZWZpeClcbiAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgOiBzdHJpcHBlZFByZWZpeCxcbiAgICAgIGN1c3RvbURvbWFpbjogZG9tYWluTmFtZSAhPT0gdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgY29uc3RydWN0IG92ZXJyaWRlcyAoaWYgcHJlc2VudCkgb24gcHJvcHMgZm9yIGFueSBgTmV4dGpzVHlwZWBcbiAgICovXG4gIHByaXZhdGUgZ2V0Q29uc3RydWN0T3ZlcnJpZGVzKG5leHRqc1R5cGU6IE5leHRqc1R5cGUpIHtcbiAgICBjb25zdCBuZXh0anNUeXBlVG9LZXk6IFJlY29yZDxOZXh0anNUeXBlLCBzdHJpbmc+ID0ge1xuICAgICAgW05leHRqc1R5cGUuR0xPQkFMX0NPTlRBSU5FUlNdOiBcIm5leHRqc0dsb2JhbENvbnRhaW5lcnNcIixcbiAgICAgIFtOZXh0anNUeXBlLkdMT0JBTF9GVU5DVElPTlNdOiBcIm5leHRqc0dsb2JhbEZ1bmN0aW9uc1wiLFxuICAgICAgW05leHRqc1R5cGUuUkVHSU9OQUxfQ09OVEFJTkVSU106IFwibmV4dGpzUmVnaW9uYWxDb250YWluZXJzXCIsXG4gICAgICBbTmV4dGpzVHlwZS5SRUdJT05BTF9GVU5DVElPTlNdOiBcIm5leHRqc1JlZ2lvbmFsRnVuY3Rpb25zXCIsXG4gICAgfTtcbiAgICBjb25zdCBrZXkgPSBuZXh0anNUeXBlVG9LZXlbbmV4dGpzVHlwZV07XG4gICAgY29uc3Qgb3ZlcnJpZGVzID0gdGhpcy5iYXNlUHJvcHMub3ZlcnJpZGVzIGFzXG4gICAgICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICBpZiAob3ZlcnJpZGVzICYmIGtleSBpbiBvdmVycmlkZXMpIHtcbiAgICAgIHJldHVybiBvdmVycmlkZXNba2V5XSBhcyBOZXh0anNCYXNlQ29uc3RydWN0T3ZlcnJpZGVzO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogYG92ZXJyaWRlcy5uZXh0anNGdW5jdGlvbnNgLCB3aGljaCBvbmx5IHRoZSB0d28gRnVuY3Rpb25zIHJvb3QgY29uc3RydWN0c1xuICAgKiBkZWNsYXJlLiBDYXN0IGZvciB0aGUgc2FtZSByZWFzb24gYXMge0BsaW5rIGZ1bmN0aW9uR3JvdXBzfS5cbiAgICovXG4gIHByaXZhdGUgZ2V0IGZ1bmN0aW9uc092ZXJyaWRlcygpOiBOZXh0anNGdW5jdGlvbnNPdmVycmlkZXMgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG92ZXJyaWRlcyA9IHRoaXMuYmFzZVByb3BzLm92ZXJyaWRlcyBhc1xuICAgICAgeyBuZXh0anNGdW5jdGlvbnM/OiBOZXh0anNGdW5jdGlvbnNPdmVycmlkZXMgfSB8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gb3ZlcnJpZGVzPy5uZXh0anNGdW5jdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogYGZ1bmN0aW9uR3JvdXBzYCwgd2hpY2ggb25seSB0aGUgdHdvIEZ1bmN0aW9ucyByb290IGNvbnN0cnVjdHMgYWNjZXB0IOKAlFxuICAgKiBDb250YWluZXJzIGRlcGxveSBvbmUgdGFzayBkZWZpbml0aW9uIGFuZCBoYXZlIG5vIDI1MCBNQiBwYWNrYWdlIGxpbWl0IHRvXG4gICAqIHNwbGl0IGFyb3VuZC5cbiAgICpcbiAgICogUmVhZCBvZmYgYGJhc2VQcm9wc2Agd2l0aCBhIGNhc3QgZm9yIHRoZSBzYW1lIHJlYXNvbiBhc1xuICAgKiB7QGxpbmsgZ2V0Q29uc3RydWN0T3ZlcnJpZGVzfTogYGNyZWF0ZU5leHRqc0J1aWxkYCBhbmRcbiAgICogYGNyZWF0ZU5leHRqc0Z1bmN0aW9uc2AgYXJlIHNoYXJlZCBoZXJlLCBidXQgdGhlIHByb3AgaXMgZGVjbGFyZWQgb24gdGhlXG4gICAqIHN1YmNsYXNzZXMsIHNvIG5vdGhpbmcgd2Vha2VyIHRoYW4gYSBjYXN0IGNhbiBzZWUgaXQuIEFkZGluZyBpdCB0b1xuICAgKiBgTmV4dGpzQmFzZVByb3BzYCB3b3VsZCBvZmZlciBpdCB0byBDb250YWluZXJzLCB3aGVyZSBpdCBkb2VzIG5vdGhpbmcuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGZ1bmN0aW9uR3JvdXBzKCk6IE5leHRqc0Z1bmN0aW9uR3JvdXBbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmJhc2VQcm9wcyBhcyB7IGZ1bmN0aW9uR3JvdXBzPzogTmV4dGpzRnVuY3Rpb25Hcm91cFtdIH07XG4gICAgcmV0dXJuIHByb3BzLmZ1bmN0aW9uR3JvdXBzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFsdGggY2hlY2sgcGF0aCBhcyB0aGUgcnVubmluZyBhcHAgYWN0dWFsbHkgc2VydmVzIGl0LlxuICAgKlxuICAgKiBCb3RoIGNvbnN1bWVycyBvZiB0aGlzIGhpdCB0aGUgYXBwIGRpcmVjdGx5IOKAlCB0aGUgQUxCIHRhcmdldCBncm91cCBmb3J3YXJkc1xuICAgKiB0aGUgcGF0aCB0byB0aGUgY29udGFpbmVyIHVuY2hhbmdlZCwgYW5kIHRoZSBjb250YWluZXIncyBgd2dldGAgcHJvYmUgdGFyZ2V0c1xuICAgKiB0aGUgbG9jYWwgc2VydmVyIOKAlCBzbyB0aGUgcHJlZml4IHRoYXQgbWF0dGVycyBpcyB0aGUgYXBwJ3Mgb3duIGBiYXNlUGF0aGAsXG4gICAqIG5vdCBgcmVzb2x2ZWRCYXNlUGF0aGAgKHdoaWNoIGZvciBgUkVHSU9OQUxfQ09OVEFJTkVSU2AgaXMgb25seSBhbiBTM1xuICAgKiBuYW1lc3BhY2UpLiBMZWZ0IHVucHJlZml4ZWQsIGFuIGFwcCB3aXRoIGEgYGJhc2VQYXRoYCA0MDRzIGV2ZXJ5IGhlYWx0aFxuICAgKiBjaGVjaywgc28gdGhlIHRhcmdldCBuZXZlciB0dXJucyBoZWFsdGh5IGFuZCB0aGUgZGVwbG95bWVudCByb2xscyBiYWNrLlxuICAgKiBgaGVhbHRoQ2hlY2tQYXRoYCBpcyB0aGVyZWZvcmUgdGhlIHBhdGggYXMgdGhlIGFwcCByb3V0ZXMgaXQsIHdpdGhvdXRcbiAgICogYGJhc2VQYXRoYDsgb25lIHRoYXQgY2FycmllcyB0aGUgcHJlZml4IGFscmVhZHkgZ2V0cyBpdCB0d2ljZSwgd2hpY2ggaXMgdGhlXG4gICAqIDAuNi4yIGJyZWFraW5nIGNoYW5nZSBmb3IgYW55b25lIHdobyBwcmVmaXhlZCBieSBoYW5kIHRvIHdvcmsgYXJvdW5kIHRoaXMuXG4gICAqXG4gICAqIFRha2VzIHRoZSBwYXRoIGFzIGFuIGFyZ3VtZW50IHJhdGhlciB0aGFuIHJlYWRpbmcgaXQgb2ZmIGBiYXNlUHJvcHNgOiBvbmx5XG4gICAqIHRoZSB0d28gQ29udGFpbmVycyByb290IGNvbnN0cnVjdHMgZGVjbGFyZSBgaGVhbHRoQ2hlY2tQYXRoYCwgc2luY2UgdGhleSdyZVxuICAgKiB0aGUgb25seSBvbmVzIHdpdGggc29tZXRoaW5nIHRvIGhlYWx0aC1jaGVjay5cbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlZEhlYWx0aENoZWNrUGF0aChoZWFsdGhDaGVja1BhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHByZWZpeFdpdGhCYXNlUGF0aChcbiAgICAgIHRoaXMubmV4dGpzQnVpbGQubmV4dENvbmZpZ0Jhc2VQYXRoLFxuICAgICAgaGVhbHRoQ2hlY2tQYXRoLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbXB1dGUgYmFzZSBwcm9wcyBmb3IgYm90aCBMYW1iZGEgZnVuY3Rpb25zIGFuZCBjb250YWluZXJzXG4gICAqL1xuICBwcm90ZWN0ZWQgY29tcHV0ZUJhc2VQcm9wcygpOiBOZXh0anNDb21wdXRlQmFzZVByb3BzIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2FjaGVCdWNrZXQ6IHRoaXMubmV4dGpzQ2FjaGUuY2FjaGVCdWNrZXQsXG4gICAgICByZXZhbGlkYXRpb25UYWJsZTogdGhpcy5uZXh0anNDYWNoZS5yZXZhbGlkYXRpb25UYWJsZSxcbiAgICAgIGJ1aWxkSWQ6IHRoaXMubmV4dGpzQnVpbGQuYnVpbGRJZCxcbiAgICAgIG5leHRqc1R5cGU6IHRoaXMubmV4dGpzVHlwZSxcbiAgICAgIHN0YXRpY0Fzc2V0c0J1Y2tldDogdGhpcy5uZXh0anNTdGF0aWNBc3NldHMuYnVja2V0LFxuICAgICAgc3RhdGljQXNzZXRzS2V5UHJlZml4OiB0aGlzLm5leHRqc1N0YXRpY0Fzc2V0cy5rZXlQcmVmaXgsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGFmdGVyIHRoZSBpbml0IGNhY2hlIGFuZCBzdGF0aWMgYXNzZXQgdXBsb2FkczogaW52YWxpZGF0aW5nIHRoZSBDRE5cbiAgICogYmVmb3JlIHRoZSBuZXcgZmlsZXMgYXJlIGluIHBsYWNlIHdvdWxkIG9ubHkgcmUtY2FjaGUgdGhlIHJlc3BvbnNlcyB0aGVcbiAgICogaW52YWxpZGF0aW9uIHdhcyBtZWFudCB0byBkcm9wLCBhbmQgcHJ1bmluZyBiZWZvcmUgdGhlbSBjb3VsZCBkZWxldGUgYW5cbiAgICogb2JqZWN0IHRoZSB1cGxvYWQgaXMgYWJvdXQgdG8gcmUtdGFnIHdpdGggdGhpcyBidWlsZCdzIElELiBDbG91ZEZvcm1hdGlvblxuICAgKiBpbmZlcnMgbm8gb3JkZXJpbmcgYmV0d2VlbiB0aGVzZSBjdXN0b20gcmVzb3VyY2VzIG9uIGl0cyBvd24uXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlTmV4dGpzUG9zdERlcGxveShcbiAgICBkaXN0cmlidXRpb24/OiBJRGlzdHJpYnV0aW9uLFxuICApOiBOZXh0anNQb3N0RGVwbG95IHtcbiAgICBjb25zdCBwb3N0RGVwbG95ID0gbmV3IE5leHRqc1Bvc3REZXBsb3kodGhpcywgXCJOZXh0anNQb3N0RGVwbG95XCIsIHtcbiAgICAgIGJhc2VQYXRoOiB0aGlzLnJlc29sdmVkQmFzZVBhdGgsXG4gICAgICBidWlsZElkOiB0aGlzLm5leHRqc0J1aWxkLmJ1aWxkSWQsXG4gICAgICBkaXN0cmlidXRpb24sXG4gICAgICBjYWNoZUJ1Y2tldDogdGhpcy5uZXh0anNDYWNoZS5jYWNoZUJ1Y2tldCxcbiAgICAgIHJldmFsaWRhdGlvblRhYmxlOiB0aGlzLm5leHRqc0NhY2hlLnJldmFsaWRhdGlvblRhYmxlLFxuICAgICAgc3RhdGljQXNzZXRzQnVja2V0OiB0aGlzLm5leHRqc1N0YXRpY0Fzc2V0cy5idWNrZXQsXG4gICAgICBzdGF0aWNBc3NldHNLZXlQcmVmaXg6IHRoaXMubmV4dGpzU3RhdGljQXNzZXRzLmtleVByZWZpeCxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5iYXNlUHJvcHMub3ZlcnJpZGVzPy5uZXh0anNQb3N0RGVwbG95LFxuICAgICAgLi4udGhpcy5jb25zdHJ1Y3RPdmVycmlkZXM/Lm5leHRqc1Bvc3REZXBsb3lQcm9wcyxcbiAgICB9KTtcbiAgICBjb25zdCB7IHN0YXRpY0RlcGxveW1lbnQsIHNlcnZpY2VXb3JrZXJEZXBsb3ltZW50LCBwdWJsaWNEZXBsb3ltZW50IH0gPVxuICAgICAgdGhpcy5uZXh0anNTdGF0aWNBc3NldHM7XG4gICAgZm9yIChjb25zdCB1cGxvYWQgb2YgW1xuICAgICAgdGhpcy5uZXh0anNDYWNoZS5idWNrZXREZXBsb3ltZW50LFxuICAgICAgc3RhdGljRGVwbG95bWVudCxcbiAgICAgIHNlcnZpY2VXb3JrZXJEZXBsb3ltZW50LFxuICAgICAgcHVibGljRGVwbG95bWVudCxcbiAgICBdKSB7XG4gICAgICBpZiAodXBsb2FkKSB7XG4gICAgICAgIHBvc3REZXBsb3kubm9kZS5hZGREZXBlbmRlbmN5KHVwbG9hZCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwb3N0RGVwbG95O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBgU2VydmljZS1Xb3JrZXItQWxsb3dlZGAgdmFsdWUgZm9yIGBfbmV4dC9zdGF0aWMvc2VydmljZS13b3JrZXIvKmAsIG9yXG4gICAqIGB1bmRlZmluZWRgIHdoZW4gdGhlIGJ1aWxkIGhhcyBubyBzZXJ2aWNlIHdvcmtlci4gVGhlIGFwcCdzIG93blxuICAgKiBgYmFzZVBhdGhgLCBhcyBgbmV4dCBidWlsZGAgdXNlcywgbm90IGByZXNvbHZlZEJhc2VQYXRoYDogaXQgaXMgdGhlIFVSTFxuICAgKiBzY29wZSB0aGUgYnJvd3NlciBjaGVja3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHNlcnZpY2VXb3JrZXJBbGxvd2VkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLm5leHRqc1N0YXRpY0Fzc2V0cy5zZXJ2aWNlV29ya2VyRGVwbG95bWVudCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIGAvJHt0aGlzLm5leHRqc0J1aWxkLm5leHRDb25maWdCYXNlUGF0aH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNCdWlsZCgpOiBOZXh0anNCdWlsZCB7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNCdWlsZCh0aGlzLCBcIk5leHRqc0J1aWxkXCIsIHtcbiAgICAgIGJ1aWxkQ29tbWFuZDogdGhpcy5iYXNlUHJvcHMuYnVpbGRDb21tYW5kLFxuICAgICAgYnVpbGREaXJlY3Rvcnk6IHRoaXMuYmFzZVByb3BzLmJ1aWxkRGlyZWN0b3J5LFxuICAgICAgbmV4dGpzVHlwZTogdGhpcy5uZXh0anNUeXBlLFxuICAgICAgc2tpcEJ1aWxkOiB0aGlzLmJhc2VQcm9wcy5za2lwQnVpbGQsXG4gICAgICAvLyBUaGUgYnVpbGQgcmVzb2x2ZXMgdGhlIHNwbGl0LCBzaW5jZSBvbmx5IGl0IGtub3dzIHRoZSByb3V0ZSB0ZW1wbGF0ZXM7XG4gICAgICAvLyB0aGUgY29uc3RydWN0cyByZWFkIHRoZSByZXN1bHQgYmFjayBvZmYgdGhlIG1hbmlmZXN0LlxuICAgICAgZnVuY3Rpb25Hcm91cHM6IHRoaXMuZnVuY3Rpb25Hcm91cHM/Lm1hcCgoeyBuYW1lLCByb3V0ZXMgfSkgPT4gKHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcm91dGVzLFxuICAgICAgfSkpLFxuICAgICAgLy8gV2hhdCB0aGUgTGFtYmRhcyB3aWxsIHJ1biBkZWNpZGVzIHRoZSBgc2hhcnBgIGJpbmFyaWVzIHN0YWdlZCBmb3IgdGhlbS5cbiAgICAgIGFyY2hpdGVjdHVyZTogdGhpcy5mdW5jdGlvbnNPdmVycmlkZXM/LmZ1bmN0aW9uUHJvcHM/LmFyY2hpdGVjdHVyZSxcbiAgICAgIC4uLnRoaXMuY29uc3RydWN0T3ZlcnJpZGVzPy5uZXh0anNCdWlsZFByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVOZXh0anNDYWNoZSgpOiBOZXh0anNDYWNoZSB7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNDYWNoZSh0aGlzLCBcIk5leHRqc0NhY2hlXCIsIHtcbiAgICAgIGJ1aWxkSWQ6IHRoaXMubmV4dGpzQnVpbGQuYnVpbGRJZCxcbiAgICAgIGNhY2hlQnVja2V0OiB0aGlzLmJhc2VQcm9wcy5jYWNoZUJ1Y2tldCxcbiAgICAgIGluaXRDYWNoZURpcjogdGhpcy5uZXh0anNCdWlsZC5pbml0Q2FjaGVEaXIsXG4gICAgICBvdmVycmlkZXM6IHRoaXMuYmFzZVByb3BzLm92ZXJyaWRlcz8ubmV4dGpzQ2FjaGUsXG4gICAgICByZXZhbGlkYXRpb25UYWJsZTogdGhpcy5iYXNlUHJvcHMucmV2YWxpZGF0aW9uVGFibGUsXG4gICAgICAuLi50aGlzLmNvbnN0cnVjdE92ZXJyaWRlcz8ubmV4dGpzQ2FjaGVQcm9wcyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzU3RhdGljQXNzZXRzKCk6IE5leHRqc1N0YXRpY0Fzc2V0cyB7XG4gICAgcmV0dXJuIG5ldyBOZXh0anNTdGF0aWNBc3NldHModGhpcywgXCJOZXh0anNTdGF0aWNBc3NldHNcIiwge1xuICAgICAgYnVja2V0OiB0aGlzLmJhc2VQcm9wcy5zdGF0aWNBc3NldHNCdWNrZXQsXG4gICAgICBidWlsZERpcmVjdG9yeTogdGhpcy5iYXNlUHJvcHMuYnVpbGREaXJlY3RvcnksXG4gICAgICBidWlsZElkOiB0aGlzLm5leHRqc0J1aWxkLmJ1aWxkSWQsXG4gICAgICBiYXNlUGF0aDogdGhpcy5yZXNvbHZlZEJhc2VQYXRoLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLmJhc2VQcm9wcy5vdmVycmlkZXM/Lm5leHRqc1N0YXRpY0Fzc2V0cyxcbiAgICAgIC4uLnRoaXMuY29uc3RydWN0T3ZlcnJpZGVzPy5uZXh0anNTdGF0aWNBc3NldHNQcm9wcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaGFyZWQgYnkgYE5leHRqc0dsb2JhbEZ1bmN0aW9uc2AgYW5kIGBOZXh0anNSZWdpb25hbEZ1bmN0aW9uc2AuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlTmV4dGpzRnVuY3Rpb25zKCk6IE5leHRqc0Z1bmN0aW9ucyB7XG4gICAgLy8gVGhlIGdldHRlciwgbm90IGEgcGFyYW1ldGVyLCBzbyB0aGUgYnVpbGQgYW5kIHRoZSBmdW5jdGlvbnMgcmVhZCB0aGVcbiAgICAvLyBzYW1lIGBhcmNoaXRlY3R1cmVgLlxuICAgIGNvbnN0IG92ZXJyaWRlcyA9IHRoaXMuZnVuY3Rpb25zT3ZlcnJpZGVzO1xuICAgIHJldHVybiBuZXcgTmV4dGpzRnVuY3Rpb25zKHRoaXMsIFwiTmV4dGpzRnVuY3Rpb25zXCIsIHtcbiAgICAgIC4uLnRoaXMuY29tcHV0ZUJhc2VQcm9wcygpLFxuICAgICAgZGVwbG95bWVudFJvb3RzOiB0aGlzLm5leHRqc0J1aWxkLmRlcGxveW1lbnRSb290cyxcbiAgICAgIGFyY2hpdGVjdHVyZTogdGhpcy5uZXh0anNCdWlsZC5hcmNoaXRlY3R1cmUsXG4gICAgICBmdW5jdGlvbkdyb3VwczogdGhpcy5mdW5jdGlvbkdyb3VwcyxcbiAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICAuLi5vdmVycmlkZXMsXG4gICAgICAgIGZ1bmN0aW9uUHJvcHM6IHtcbiAgICAgICAgICAuLi5vdmVycmlkZXM/LmZ1bmN0aW9uUHJvcHMsXG4gICAgICAgICAgLy8gU3ByZWFkIGNvbmRpdGlvbmFsbHkgcmF0aGVyIHRoYW4gYXNzaWduZWQ6IGFuIHVuY29uZGl0aW9uYWxcbiAgICAgICAgICAvLyBgdnBjOiB0aGlzLmJhc2VQcm9wcy52cGNgIHdyaXRlcyBgdW5kZWZpbmVkYCBvdmVyIGFuXG4gICAgICAgICAgLy8gYG92ZXJyaWRlcy5uZXh0anNGdW5jdGlvbnMuZnVuY3Rpb25Qcm9wcy52cGNgIHRoZSBjb25zdW1lciBzdXBwbGllZCxcbiAgICAgICAgICAvLyBzbyB0aGUgTGFtYmRhcyBkZXBsb3kgb3V0c2lkZSB0aGUgVlBDIGFuZCBjYW5ub3QgcmVhY2ggYSBwcml2YXRlXG4gICAgICAgICAgLy8gUkRTLCBFbGFzdGlDYWNoZSwgb3IgVlBDIGVuZHBvaW50IC0gd2l0aCBub3RoaW5nIHNhaWQgYXQgc3ludGguXG4gICAgICAgICAgLi4uKHRoaXMuYmFzZVByb3BzLnZwYyA/IHsgdnBjOiB0aGlzLmJhc2VQcm9wcy52cGMgfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -14,7 +14,7 @@ const base_path_1 = require("../utils/base-path");
14
14
  * for containers.
15
15
  */
16
16
  class NextjsGlobalContainers extends nextjs_base_construct_1.NextjsBaseConstruct {
17
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsGlobalContainers", version: "0.7.13" };
17
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsGlobalContainers", version: "0.7.14" };
18
18
  nextjsContainers;
19
19
  nextjsDistribution;
20
20
  nextjsPostDeploy;
@@ -78,6 +78,7 @@ class NextjsGlobalContainers extends nextjs_base_construct_1.NextjsBaseConstruct
78
78
  nextjsType: this.nextjsType,
79
79
  overrides: this.props.overrides?.nextjsDistribution,
80
80
  publicDirEntries: this.nextjsBuild.publicDirEntries,
81
+ serviceWorkerAllowed: this.serviceWorkerAllowed,
81
82
  viewerRequestFunctionCode: this.props.viewerRequestFunctionCode,
82
83
  viewerRequestKeyValueStore: this.props.viewerRequestKeyValueStore,
83
84
  ...this.props.overrides?.nextjsGlobalContainers?.nextjsDistributionProps,
@@ -85,4 +86,4 @@ class NextjsGlobalContainers extends nextjs_base_construct_1.NextjsBaseConstruct
85
86
  }
86
87
  }
87
88
  exports.NextjsGlobalContainers = NextjsGlobalContainers;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWdsb2JhbC1jb250YWluZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jvb3QtY29uc3RydWN0cy9uZXh0anMtZ2xvYmFsLWNvbnRhaW5lcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQVFBLDRDQUEwQztBQUMxQyxtRUFLaUM7QUFHakMsMkVBRzZDO0FBQzdDLGdFQUdnQztBQUVoQyxrREFBOEM7QUEwRTlDOzs7OztHQUtHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSwyQ0FBbUI7O0lBQzdELGdCQUFnQixDQUFtQjtJQUNuQyxrQkFBa0IsQ0FBcUI7SUFDdkMsZ0JBQWdCLENBQW1CO0lBQ25DOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUEsb0JBQVEsRUFDYixXQUFXLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQzVELElBQUksQ0FBQyxnQkFBZ0IsQ0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLLENBQThCO0lBRTNDLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQWtDO1FBRWxDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxzQkFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUMxRCxNQUFNLEVBQUUsY0FBYyxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDO1FBQ25FLDJFQUEyRTtRQUMzRSx5RUFBeUU7UUFDekUsd0VBQXdFO1FBQ3hFLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtC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biAgRGlzdHJpYnV0aW9uLFxuICBGdW5jdGlvbkNvZGUsXG4gIElLZXlWYWx1ZVN0b3JlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7IElDbHVzdGVyIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3NcIjtcbmltcG9ydCB7IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2MlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IE5leHRqc1R5cGUgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQge1xuICBOZXh0anNCYXNlQ29uc3RydWN0T3ZlcnJpZGVzLFxuICBOZXh0anNCYXNlT3ZlcnJpZGVzLFxuICBOZXh0anNCYXNlQ29uc3RydWN0LFxuICBOZXh0anNCYXNlUHJvcHMsXG59IGZyb20gXCIuL25leHRqcy1iYXNlLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgT3B0aW9uYWxOZXh0anNDb250YWluZXJzUHJvcHMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNDb250YWluZXJzUHJvcHNcIjtcbmltcG9ydCB7IE9wdGlvbmFsTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wc1wiO1xuaW1wb3J0IHtcbiAgTmV4dGpzQ29udGFpbmVycyxcbiAgTmV4dGpzQ29udGFpbmVyc092ZXJyaWRlcyxcbn0gZnJvbSBcIi4uL25leHRqcy1jb21wdXRlL25leHRqcy1jb250YWluZXJzXCI7XG5pbXBvcnQge1xuICBOZXh0anNEaXN0cmlidXRpb24sXG4gIE5leHRqc0Rpc3RyaWJ1dGlvbk92ZXJyaWRlcyxcbn0gZnJvbSBcIi4uL25leHRqcy1kaXN0cmlidXRpb25cIjtcbmltcG9ydCB7IE5leHRqc1Bvc3REZXBsb3kgfSBmcm9tIFwiLi4vbmV4dGpzLXBvc3QtZGVwbG95XCI7XG5pbXBvcnQgeyBqb2luUGF0aCB9IGZyb20gXCIuLi91dGlscy9iYXNlLXBhdGhcIjtcblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNHbG9iYWxDb250YWluZXJzQ29uc3RydWN0T3ZlcnJpZGVzIGV4dGVuZHMgTmV4dGpzQmFzZUNvbnN0cnVjdE92ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IG5leHRqc0NvbnRhaW5lcnNQcm9wcz86IE9wdGlvbmFsTmV4dGpzQ29udGFpbmVyc1Byb3BzO1xuICByZWFkb25seSBuZXh0anNEaXN0cmlidXRpb25Qcm9wcz86IE9wdGlvbmFsTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHM7XG59XG5cbi8qKlxuICogT3ZlcnJpZGVzIGZvciBgTmV4dGpzR2xvYmFsQ29udGFpbmVyc2AuIE92ZXJyaWRlcyBhcmUgbG93ZXIgbGV2ZWwgdGhhblxuICogcHJvcHMgYW5kIGFyZSBwYXNzZWQgZGlyZWN0bHkgdG8gQ0RLIENvbnN0cnVjdHMgZ2l2aW5nIHlvdSBtb3JlIGNvbnRyb2wuIEl0J3NcbiAqIHJlY29tbWVuZGVkIHRvIHVzZSBjYXV0aW9uIGFuZCByZXZpZXcgc291cmNlIGNvZGUgc28geW91IGtub3cgaG93IHRoZXkncmUgdXNlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0anNHbG9iYWxDb250YWluZXJzT3ZlcnJpZGVzIGV4dGVuZHMgTmV4dGpzQmFzZU92ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IG5leHRqc0dsb2JhbENvbnRhaW5lcnM/OiBOZXh0anNHbG9iYWxDb250YWluZXJzQ29uc3RydWN0T3ZlcnJpZGVzO1xuICByZWFkb25seSBuZXh0anNDb250YWluZXJzPzogTmV4dGpzQ29udGFpbmVyc092ZXJyaWRlcztcbiAgcmVhZG9ubHkgbmV4dGpzRGlzdHJpYnV0aW9uPzogTmV4dGpzRGlzdHJpYnV0aW9uT3ZlcnJpZGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0dsb2JhbENvbnRhaW5lcnNQcm9wcyBleHRlbmRzIE5leHRqc0Jhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBCcmluZyB5b3VyIG93biBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLiBXaGVuIHByb3ZpZGVkLCBpdCBpcyBwYXNzZWRcbiAgICogZGlyZWN0bHkgdG8gYEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkRmFyZ2F0ZVNlcnZpY2VgLiBJZiB0aGUgQUxCIGFscmVhZHlcbiAgICogaGFzIGEgbGlzdGVuZXIgb24gcG9ydCA4MCwgY2FsbCBgcmVtb3ZlQXV0b0NyZWF0ZWRMaXN0ZW5lcigpYCBhZnRlclxuICAgKiBjb25zdHJ1Y3Rpb24gdG8gYXZvaWQgZGVwbG95bWVudCBmYWlsdXJlcy5cbiAgICovXG4gIHJlYWRvbmx5IGFsYj86IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjtcbiAgLyoqXG4gICAqIEJyaW5nIHlvdXIgb3duIGRpc3RyaWJ1dGlvbi4gQ2FuIGJlIHVzZWQgd2l0aCBgYmFzZVBhdGhgIHRvIGhvc3QgbXVsdGlwbGVcbiAgICogYXBwcyBvbiB0aGUgc2FtZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbj86IERpc3RyaWJ1dGlvbjtcbiAgLyoqXG4gICAqIEJyaW5nIHlvdXIgb3duIEVDUyBjbHVzdGVyLiBXaGVuIHByb3ZpZGVkLCBjZGstbmV4dGpzIHdpbGwgc2tpcCBjcmVhdGluZ1xuICAgKiBhIG5ldyBjbHVzdGVyIGFuZCBWUEMgZ2F0ZXdheSBlbmRwb2ludHMuXG4gICAqL1xuICByZWFkb25seSBlY3NDbHVzdGVyPzogSUNsdXN0ZXI7XG4gIC8qKlxuICAgKiBQYXRoIHRvIEFQSSBSb3V0ZSBIYW5kbGVyIHRoYXQgcmV0dXJucyBIVFRQIDIwMCB0byBlbnN1cmUgY29tcHV0ZSBoZWFsdGguXG4gICAqIFVzZWQgYnkgdGhlIEFMQiB0YXJnZXQgZ3JvdXAgYW5kIHRoZSBFQ1MgY29udGFpbmVyIGhlYWx0aCBjaGVjaywgYm90aCBvZlxuICAgKiB3aGljaCBoYXZlIHRvIGJlIGFibGUgdG8gdGVsbCBhIHJ1bm5pbmcgdGFzayBmcm9tIGEgd2VkZ2VkIG9uZS5cbiAgICpcbiAgICogR2l2ZSB0aGUgcGF0aCBhcyB5b3VyIGFwcCByb3V0ZXMgaXQsIHdpdGhvdXQgeW91ciBhcHAncyBgYmFzZVBhdGhgIOKAlFxuICAgKiBjZGstbmV4dGpzIGFkZHMgdGhhdCBwcmVmaXgsIHNpbmNlIGJvdGggY2hlY2tzIGhpdCB0aGUgYXBwIGRpcmVjdGx5LlxuICAgKiBAZXhhbXBsZSBcIi9hcGkvaGVhbHRoXCJcbiAgICogQGV4YW1wbGVcbiAgICogLy8gYXBpL2hlYWx0aC9yb3V0ZS50c1xuICAgKiBpbXBvcnQgeyBOZXh0UmVzcG9uc2UgfSBmcm9tIFwibmV4dC9zZXJ2ZXJcIjtcbiAgICpcbiAgICogZXhwb3J0IGZ1bmN0aW9uIEdFVCgpIHtcbiAgICogICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oXCJcIik7XG4gICAqIH1cbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrUGF0aDogc3RyaW5nO1xuICAvKipcbiAgICogT3ZlcnJpZGUgcHJvcHMgb2YgYW55IGNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlcz86IE5leHRqc0dsb2JhbENvbnRhaW5lcnNPdmVycmlkZXM7XG4gIC8qKlxuICAgKiBDbG91ZEZyb250IEZ1bmN0aW9uIGNvZGUgcnVuIGZpcnN0IG9uIGV2ZXJ5IHZpZXdlciByZXF1ZXN0LCBzdGF0aWMgYXNzZXRzXG4gICAqIGluY2x1ZGVkIOKAlCBIVFRQIEJhc2ljIGF1dGggb24gYSBwcmUtbGF1bmNoIHNpdGUsIHNheS4gSXQgbXVzdCBkZWZpbmVcbiAgICogYHZpZXdlclJlcXVlc3QoZXZlbnQpYCwgYXMgYSBmdW5jdGlvbiBvciBhIGB2YXJgL2BsZXRgL2Bjb25zdGAuXG4gICAqIEBzZWUgTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMudmlld2VyUmVxdWVzdEZ1bmN0aW9uQ29kZVxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHZpZXdlclJlcXVlc3RGdW5jdGlvbkNvZGU/OiBGdW5jdGlvbkNvZGU7XG4gIC8qKlxuICAgKiBBIENsb3VkRnJvbnQgS2V5VmFsdWVTdG9yZSBgdmlld2VyUmVxdWVzdEZ1bmN0aW9uQ29kZWAgY2FuIHJlYWQgd2l0aFxuICAgKiBgY2Yua3ZzKClgLCBzbyBjcmVkZW50aWFscyBzdGF5IG91dCBvZiB0aGUgdGVtcGxhdGUuXG4gICAqIEBzZWUgTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMudmlld2VyUmVxdWVzdEtleVZhbHVlU3RvcmVcbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSB2aWV3ZXJSZXF1ZXN0S2V5VmFsdWVTdG9yZT86IElLZXlWYWx1ZVN0b3JlO1xufVxuXG4vKipcbiAqIERlcGxveSBOZXh0LmpzIGdsb2JhbGx5IGRpc3RyaWJ1dGVkIHdpdGggY29udGFpbmVycy4gVXNlcyBbQ2xvdWRGcm9udFxuICogRGlzdHJpYnV0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvZGlzdHJpYnV0aW9uLXdvcmtpbmctd2l0aC5odG1sKVxuICogYXMgQ29udGVudCBEZWxpdmVyeSBOZXR3b3JrIChDRE4pIGZvciBnbG9iYWwgZGlzdHJpYnV0aW9uIGFuZCBbQVdTIEZhcmdhdGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1MvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0FXU19GYXJnYXRlLmh0bWwpXG4gKiBmb3IgY29udGFpbmVycy5cbiAqL1xuZXhwb3J0IGNsYXNzIE5leHRqc0dsb2JhbENvbnRhaW5lcnMgZXh0ZW5kcyBOZXh0anNCYXNlQ29uc3RydWN0IHtcbiAgbmV4dGpzQ29udGFpbmVyczogTmV4dGpzQ29udGFpbmVycztcbiAgbmV4dGpzRGlzdHJpYnV0aW9uOiBOZXh0anNEaXN0cmlidXRpb247XG4gIG5leHRqc1Bvc3REZXBsb3k6IE5leHRqc1Bvc3REZXBsb3k7XG4gIC8qKlxuICAgKiBQdWJsaWMgVVJMIG9mIHRoZSBhcHAsIGluY2x1ZGluZyBgYmFzZVBhdGhgIOKAlCB0aGUgYXBwIG9ubHkgYW5zd2VycyB1bmRlclxuICAgKiB0aGF0IHByZWZpeCwgYW5kIGl0J3MgZGVyaXZlZCBmcm9tIHRoZSBhcHAncyBvd24gYGJhc2VQYXRoYCB3aGVuIHRoZSBwcm9wIGlzXG4gICAqIGxlZnQgdW5zZXQsIHNvIGl0J3MgdGhlcmUgd2hldGhlciBvciBub3QgeW91IGFza2VkIGZvciBpdC5cbiAgICovXG4gIGdldCB1cmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gam9pblBhdGgoXG4gICAgICBgaHR0cHM6Ly8ke3RoaXMubmV4dGpzRGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbi5kb21haW5OYW1lfWAsXG4gICAgICB0aGlzLnJlc29sdmVkQmFzZVBhdGgsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvcHM6IE5leHRqc0dsb2JhbENvbnRhaW5lcnNQcm9wcztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IE5leHRqc0dsb2JhbENvbnRhaW5lcnNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcywgTmV4dGpzVHlwZS5HTE9CQUxfQ09OVEFJTkVSUyk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgdGhpcy5uZXh0anNDb250YWluZXJzID0gdGhpcy5jcmVhdGVOZXh0anNDb250YWluZXJzKCk7XG4gICAgdGhpcy5uZXh0anNEaXN0cmlidXRpb24gPSB0aGlzLmNyZWF0ZU5leHRqc0Rpc3RyaWJ1dGlvbigpO1xuICAgIGNvbnN0IHsgdGFza0RlZmluaXRpb24gfSA9IHRoaXMubmV4dGpzQ29udGFpbmVycy5hbGJGYXJnYXRlU2VydmljZTtcbiAgICAvLyBMZXRzIG9uLWRlbWFuZCByZXZhbGlkYXRpb24gZXZpY3Qgc3RhbGUgcmVzcG9uc2VzIGZyb20gdGhlIENETiBlZGdlLCBub3RcbiAgICAvLyBqdXN0IHRoZSBvcmlnaW4ncyBjYWNoZS4gVGhlIG9yaWdpbiBpcyB0aGUgQUxCLCB3aGljaCB0aGUgdGFzayBkb2Vzbid0XG4gICAgLy8gZGVwZW5kIG9uLCBzbyBuYW1pbmcgdGhlIGRpc3RyaWJ1dGlvbiBoZXJlIG1ha2VzIG5vIGRlcGVuZGVuY3kgY3ljbGUuXG4gICAgY29uc3QgeyBkaXN0cmlidXRpb24gfSA9IHRoaXMubmV4dGpzRGlzdHJpYnV0aW9uO1xuICAgIGRpc3RyaWJ1dGlvbi5ncmFudENyZWF0ZUludmFsaWRhdGlvbih0YXNrRGVmaW5pdGlvbi50YXNrUm9sZSk7XG4gICAgdGFza0RlZmluaXRpb24uZGVmYXVsdENvbnRhaW5lcj8uYWRkRW52aXJvbm1lbnQoXG4gICAgICBcIkNES19ORVhUSlNfRElTVFJJQlVUSU9OX0lEXCIsXG4gICAgICBkaXN0cmlidXRpb24uZGlzdHJpYnV0aW9uSWQsXG4gICAgKTtcbiAgICAvLyBUaGUgQUxCIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBkaXN0cmlidXRpb24ncyBWUEMgb3JpZ2luIGFsb25lLCBzb1xuICAgIC8vIGBDbG91ZEZyb250LUZvcndhcmRlZC1Qcm90b2AgaXMgYWx3YXlzIENsb3VkRnJvbnQncyBvd247IHNlZVxuICAgIC8vIGB2aWV3ZXJIZWFkZXJzYCBpbiBzcmMvcnVudGltZS9odHRwL25vZGUtc2VydmVyLnRzLlxuICAgIHRhc2tEZWZpbml0aW9uLmRlZmF1bHRDb250YWluZXI/LmFkZEVudmlyb25tZW50KFxuICAgICAgXCJDREtfTkVYVEpTX1RSVVNUX0NMT1VERlJPTlRfUFJPVE9cIixcbiAgICAgIFwiMVwiLFxuICAgICk7XG4gICAgdGhpcy5uZXh0anNQb3N0RGVwbG95ID0gdGhpcy5jcmVhdGVOZXh0anNQb3N0RGVwbG95KFxuICAgICAgdGhpcy5uZXh0anNEaXN0cmlidXRpb24uZGlzdHJpYnV0aW9uLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0NvbnRhaW5lcnMoKTogTmV4dGpzQ29udGFpbmVycyB7XG4gICAgLy8gQ3JlYXRlIGNvbnRhaW5lcnMgd2l0aCBsb2NhbCBidWlsZCBvdXRwdXRcbiAgICByZXR1cm4gbmV3IE5leHRqc0NvbnRhaW5lcnModGhpcywgXCJOZXh0anNDb250YWluZXJzXCIsIHtcbiAgICAgIC4uLnRoaXMuY29tcHV0ZUJhc2VQcm9wcygpLFxuICAgICAgYWxiOiB0aGlzLnByb3BzLmFsYixcbiAgICAgIGJ1aWxkRGlyZWN0b3J5OiB0aGlzLnByb3BzLmJ1aWxkRGlyZWN0b3J5LFxuICAgICAgZWNzQ2x1c3RlcjogdGhpcy5wcm9wcy5lY3NDbHVzdGVyLFxuICAgICAgaGVhbHRoQ2hlY2tQYXRoOiB0aGlzLnJlc29sdmVkSGVhbHRoQ2hlY2tQYXRoKHRoaXMucHJvcHMuaGVhbHRoQ2hlY2tQYXRoKSxcbiAgICAgIHJlbGF0aXZlRW50cnlwb2ludFBhdGg6IHRoaXMubmV4dGpzQnVpbGQucmVsYXRpdmVQYXRoVG9FbnRyeXBvaW50LFxuICAgICAgcmVsYXRpdmVQcm9qZWN0RGlyOiB0aGlzLm5leHRqc0J1aWxkLnJlbGF0aXZlUHJvamVjdERpcixcbiAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzQ29udGFpbmVycyxcbiAgICAgICAgZWNzQ2x1c3RlclByb3BzOiB7XG4gICAgICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0NvbnRhaW5lcnM/LmVjc0NsdXN0ZXJQcm9wcyxcbiAgICAgICAgICAvLyBDb25kaXRpb25hbCBmb3IgdGhlIHNhbWUgcmVhc29uIGFzIHRoZSBGdW5jdGlvbnMnIGB2cGNgOiBhc3NpZ25lZFxuICAgICAgICAgIC8vIHVuY29uZGl0aW9uYWxseSwgYW4gdW5zZXQgYHZwY2AgcHJvcCB3b3VsZCBlcmFzZSB0aGUgb3ZlcnJpZGUncy5cbiAgICAgICAgICAuLi4odGhpcy5iYXNlUHJvcHMudnBjID8geyB2cGM6IHRoaXMuYmFzZVByb3BzLnZwYyB9IDoge30pLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNHbG9iYWxDb250YWluZXJzPy5uZXh0anNDb250YWluZXJzUHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0Rpc3RyaWJ1dGlvbigpIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc0Rpc3RyaWJ1dGlvbih0aGlzLCBcIk5leHRqc0Rpc3RyaWJ1dGlvblwiLCB7XG4gICAgICBhc3NldHNCdWNrZXQ6IHRoaXMubmV4dGpzU3RhdGljQXNzZXRzLmJ1Y2tldCxcbiAgICAgIGFzc2V0UHJlZml4OiB0aGlzLm5leHRqc0J1aWxkLm5leHRDb25maWdBc3NldFByZWZpeFBhdGgsXG4gICAgICBiYXNlUGF0aDogdGhpcy5yZXNvbHZlZEJhc2VQYXRoLFxuICAgICAgY2VydGlmaWNhdGU6IHRoaXMubmV4dGpzQ29udGFpbmVycy5hbGJGYXJnYXRlU2VydmljZS5jZXJ0aWZpY2F0ZSxcbiAgICAgIGRpc3RyaWJ1dGlvbjogdGhpcy5wcm9wcy5kaXN0cmlidXRpb24sXG4gICAgICBsb2FkQmFsYW5jZXI6IHRoaXMubmV4dGpzQ29udGFpbmVycy5hbGJGYXJnYXRlU2VydmljZS5sb2FkQmFsYW5jZXIsXG4gICAgICBuZXh0anNUeXBlOiB0aGlzLm5leHRqc1R5cGUsXG4gICAgICBvdmVycmlkZXM6IHRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNEaXN0cmlidXRpb24sXG4gICAgICBwdWJsaWNEaXJFbnRyaWVzOiB0aGlzLm5leHRqc0J1aWxkLnB1YmxpY0RpckVudHJpZXMsXG4gICAgICB2aWV3ZXJSZXF1ZXN0RnVuY3Rpb25Db2RlOiB0aGlzLnByb3BzLnZpZXdlclJlcXVlc3RGdW5jdGlvbkNvZGUsXG4gICAgICB2aWV3ZXJSZXF1ZXN0S2V5VmFsdWVTdG9yZTogdGhpcy5wcm9wcy52aWV3ZXJSZXF1ZXN0S2V5VmFsdWVTdG9yZSxcbiAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNHbG9iYWxDb250YWluZXJzPy5uZXh0anNEaXN0cmlidXRpb25Qcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWdsb2JhbC1jb250YWluZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jvb3QtY29uc3RydWN0cy9uZXh0anMtZ2xvYmFsLWNvbnRhaW5lcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQVFBLDRDQUEwQztBQUMxQyxtRUFLaUM7QUFHakMsMkVBRzZDO0FBQzdDLGdFQUdnQztBQUVoQyxrREFBOEM7QUEwRTlDOzs7OztHQUtHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSwyQ0FBbUI7O0lBQzdELGdCQUFnQixDQUFtQjtJQUNuQyxrQkFBa0IsQ0FBcUI7SUFDdkMsZ0JBQWdCLENBQW1CO0lBQ25DOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUEsb0JBQVEsRUFDYixXQUFXLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQzVELElBQUksQ0FBQyxnQkFBZ0IsQ0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLLENBQThCO0lBRTNDLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQWtDO1FBRWxDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxzQkFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUMxRCxNQUFNLEVBQUUsY0FBYyxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDO1FBQ25FLDJFQUEyRTtRQUMzRSx5RUFBeUU7UUFDekUsd0VBQXdFO1FBQ3hFLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtC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REEwRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXN0cmlidXRpb24sXG4gIEZ1bmN0aW9uQ29kZSxcbiAgSUtleVZhbHVlU3RvcmUsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udFwiO1xuaW1wb3J0IHsgSUNsdXN0ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjc1wiO1xuaW1wb3J0IHsgSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgTmV4dGpzVHlwZSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIE5leHRqc0Jhc2VDb25zdHJ1Y3RPdmVycmlkZXMsXG4gIE5leHRqc0Jhc2VPdmVycmlkZXMsXG4gIE5leHRqc0Jhc2VDb25zdHJ1Y3QsXG4gIE5leHRqc0Jhc2VQcm9wcyxcbn0gZnJvbSBcIi4vbmV4dGpzLWJhc2UtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBPcHRpb25hbE5leHRqc0NvbnRhaW5lcnNQcm9wcyB9IGZyb20gXCIuLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc0NvbnRhaW5lcnNQcm9wc1wiO1xuaW1wb3J0IHsgT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wcyB9IGZyb20gXCIuLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzXCI7XG5pbXBvcnQge1xuICBOZXh0anNDb250YWluZXJzLFxuICBOZXh0anNDb250YWluZXJzT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi4vbmV4dGpzLWNvbXB1dGUvbmV4dGpzLWNvbnRhaW5lcnNcIjtcbmltcG9ydCB7XG4gIE5leHRqc0Rpc3RyaWJ1dGlvbixcbiAgTmV4dGpzRGlzdHJpYnV0aW9uT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi4vbmV4dGpzLWRpc3RyaWJ1dGlvblwiO1xuaW1wb3J0IHsgTmV4dGpzUG9zdERlcGxveSB9IGZyb20gXCIuLi9uZXh0anMtcG9zdC1kZXBsb3lcIjtcbmltcG9ydCB7IGpvaW5QYXRoIH0gZnJvbSBcIi4uL3V0aWxzL2Jhc2UtcGF0aFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0dsb2JhbENvbnRhaW5lcnNDb25zdHJ1Y3RPdmVycmlkZXMgZXh0ZW5kcyBOZXh0anNCYXNlQ29uc3RydWN0T3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgbmV4dGpzQ29udGFpbmVyc1Byb3BzPzogT3B0aW9uYWxOZXh0anNDb250YWluZXJzUHJvcHM7XG4gIHJlYWRvbmx5IG5leHRqc0Rpc3RyaWJ1dGlvblByb3BzPzogT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wcztcbn1cblxuLyoqXG4gKiBPdmVycmlkZXMgZm9yIGBOZXh0anNHbG9iYWxDb250YWluZXJzYC4gT3ZlcnJpZGVzIGFyZSBsb3dlciBsZXZlbCB0aGFuXG4gKiBwcm9wcyBhbmQgYXJlIHBhc3NlZCBkaXJlY3RseSB0byBDREsgQ29uc3RydWN0cyBnaXZpbmcgeW91IG1vcmUgY29udHJvbC4gSXQnc1xuICogcmVjb21tZW5kZWQgdG8gdXNlIGNhdXRpb24gYW5kIHJldmlldyBzb3VyY2UgY29kZSBzbyB5b3Uga25vdyBob3cgdGhleSdyZSB1c2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0dsb2JhbENvbnRhaW5lcnNPdmVycmlkZXMgZXh0ZW5kcyBOZXh0anNCYXNlT3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgbmV4dGpzR2xvYmFsQ29udGFpbmVycz86IE5leHRqc0dsb2JhbENvbnRhaW5lcnNDb25zdHJ1Y3RPdmVycmlkZXM7XG4gIHJlYWRvbmx5IG5leHRqc0NvbnRhaW5lcnM/OiBOZXh0anNDb250YWluZXJzT3ZlcnJpZGVzO1xuICByZWFkb25seSBuZXh0anNEaXN0cmlidXRpb24/OiBOZXh0anNEaXN0cmlidXRpb25PdmVycmlkZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzR2xvYmFsQ29udGFpbmVyc1Byb3BzIGV4dGVuZHMgTmV4dGpzQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIEJyaW5nIHlvdXIgb3duIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIuIFdoZW4gcHJvdmlkZWQsIGl0IGlzIHBhc3NlZFxuICAgKiBkaXJlY3RseSB0byBgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRGYXJnYXRlU2VydmljZWAuIElmIHRoZSBBTEIgYWxyZWFkeVxuICAgKiBoYXMgYSBsaXN0ZW5lciBvbiBwb3J0IDgwLCBjYWxsIGByZW1vdmVBdXRvQ3JlYXRlZExpc3RlbmVyKClgIGFmdGVyXG4gICAqIGNvbnN0cnVjdGlvbiB0byBhdm9pZCBkZXBsb3ltZW50IGZhaWx1cmVzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxiPzogSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyO1xuICAvKipcbiAgICogQnJpbmcgeW91ciBvd24gZGlzdHJpYnV0aW9uLiBDYW4gYmUgdXNlZCB3aXRoIGBiYXNlUGF0aGAgdG8gaG9zdCBtdWx0aXBsZVxuICAgKiBhcHBzIG9uIHRoZSBzYW1lIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uPzogRGlzdHJpYnV0aW9uO1xuICAvKipcbiAgICogQnJpbmcgeW91ciBvd24gRUNTIGNsdXN0ZXIuIFdoZW4gcHJvdmlkZWQsIGNkay1uZXh0anMgd2lsbCBza2lwIGNyZWF0aW5nXG4gICAqIGEgbmV3IGNsdXN0ZXIgYW5kIFZQQyBnYXRld2F5IGVuZHBvaW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGVjc0NsdXN0ZXI/OiBJQ2x1c3RlcjtcbiAgLyoqXG4gICAqIFBhdGggdG8gQVBJIFJvdXRlIEhhbmRsZXIgdGhhdCByZXR1cm5zIEhUVFAgMjAwIHRvIGVuc3VyZSBjb21wdXRlIGhlYWx0aC5cbiAgICogVXNlZCBieSB0aGUgQUxCIHRhcmdldCBncm91cCBhbmQgdGhlIEVDUyBjb250YWluZXIgaGVhbHRoIGNoZWNrLCBib3RoIG9mXG4gICAqIHdoaWNoIGhhdmUgdG8gYmUgYWJsZSB0byB0ZWxsIGEgcnVubmluZyB0YXNrIGZyb20gYSB3ZWRnZWQgb25lLlxuICAgKlxuICAgKiBHaXZlIHRoZSBwYXRoIGFzIHlvdXIgYXBwIHJvdXRlcyBpdCwgd2l0aG91dCB5b3VyIGFwcCdzIGBiYXNlUGF0aGAg4oCUXG4gICAqIGNkay1uZXh0anMgYWRkcyB0aGF0IHByZWZpeCwgc2luY2UgYm90aCBjaGVja3MgaGl0IHRoZSBhcHAgZGlyZWN0bHkuXG4gICAqIEBleGFtcGxlIFwiL2FwaS9oZWFsdGhcIlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBhcGkvaGVhbHRoL3JvdXRlLnRzXG4gICAqIGltcG9ydCB7IE5leHRSZXNwb25zZSB9IGZyb20gXCJuZXh0L3NlcnZlclwiO1xuICAgKlxuICAgKiBleHBvcnQgZnVuY3Rpb24gR0VUKCkge1xuICAgKiAgIHJldHVybiBOZXh0UmVzcG9uc2UuanNvbihcIlwiKTtcbiAgICogfVxuICAgKi9cbiAgcmVhZG9ubHkgaGVhbHRoQ2hlY2tQYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPdmVycmlkZSBwcm9wcyBvZiBhbnkgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnJpZGVzPzogTmV4dGpzR2xvYmFsQ29udGFpbmVyc092ZXJyaWRlcztcbiAgLyoqXG4gICAqIENsb3VkRnJvbnQgRnVuY3Rpb24gY29kZSBydW4gZmlyc3Qgb24gZXZlcnkgdmlld2VyIHJlcXVlc3QsIHN0YXRpYyBhc3NldHNcbiAgICogaW5jbHVkZWQg4oCUIEhUVFAgQmFzaWMgYXV0aCBvbiBhIHByZS1sYXVuY2ggc2l0ZSwgc2F5LiBJdCBtdXN0IGRlZmluZVxuICAgKiBgdmlld2VyUmVxdWVzdChldmVudClgLCBhcyBhIGZ1bmN0aW9uIG9yIGEgYHZhcmAvYGxldGAvYGNvbnN0YC5cbiAgICogQHNlZSBOZXh0anNEaXN0cmlidXRpb25Qcm9wcy52aWV3ZXJSZXF1ZXN0RnVuY3Rpb25Db2RlXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgdmlld2VyUmVxdWVzdEZ1bmN0aW9uQ29kZT86IEZ1bmN0aW9uQ29kZTtcbiAgLyoqXG4gICAqIEEgQ2xvdWRGcm9udCBLZXlWYWx1ZVN0b3JlIGB2aWV3ZXJSZXF1ZXN0RnVuY3Rpb25Db2RlYCBjYW4gcmVhZCB3aXRoXG4gICAqIGBjZi5rdnMoKWAsIHNvIGNyZWRlbnRpYWxzIHN0YXkgb3V0IG9mIHRoZSB0ZW1wbGF0ZS5cbiAgICogQHNlZSBOZXh0anNEaXN0cmlidXRpb25Qcm9wcy52aWV3ZXJSZXF1ZXN0S2V5VmFsdWVTdG9yZVxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHZpZXdlclJlcXVlc3RLZXlWYWx1ZVN0b3JlPzogSUtleVZhbHVlU3RvcmU7XG59XG5cbi8qKlxuICogRGVwbG95IE5leHQuanMgZ2xvYmFsbHkgZGlzdHJpYnV0ZWQgd2l0aCBjb250YWluZXJzLiBVc2VzIFtDbG91ZEZyb250XG4gKiBEaXN0cmlidXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9kaXN0cmlidXRpb24td29ya2luZy13aXRoLmh0bWwpXG4gKiBhcyBDb250ZW50IERlbGl2ZXJ5IE5ldHdvcmsgKENETikgZm9yIGdsb2JhbCBkaXN0cmlidXRpb24gYW5kIFtBV1MgRmFyZ2F0ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvQVdTX0ZhcmdhdGUuaHRtbClcbiAqIGZvciBjb250YWluZXJzLlxuICovXG5leHBvcnQgY2xhc3MgTmV4dGpzR2xvYmFsQ29udGFpbmVycyBleHRlbmRzIE5leHRqc0Jhc2VDb25zdHJ1Y3Qge1xuICBuZXh0anNDb250YWluZXJzOiBOZXh0anNDb250YWluZXJzO1xuICBuZXh0anNEaXN0cmlidXRpb246IE5leHRqc0Rpc3RyaWJ1dGlvbjtcbiAgbmV4dGpzUG9zdERlcGxveTogTmV4dGpzUG9zdERlcGxveTtcbiAgLyoqXG4gICAqIFB1YmxpYyBVUkwgb2YgdGhlIGFwcCwgaW5jbHVkaW5nIGBiYXNlUGF0aGAg4oCUIHRoZSBhcHAgb25seSBhbnN3ZXJzIHVuZGVyXG4gICAqIHRoYXQgcHJlZml4LCBhbmQgaXQncyBkZXJpdmVkIGZyb20gdGhlIGFwcCdzIG93biBgYmFzZVBhdGhgIHdoZW4gdGhlIHByb3AgaXNcbiAgICogbGVmdCB1bnNldCwgc28gaXQncyB0aGVyZSB3aGV0aGVyIG9yIG5vdCB5b3UgYXNrZWQgZm9yIGl0LlxuICAgKi9cbiAgZ2V0IHVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBqb2luUGF0aChcbiAgICAgIGBodHRwczovLyR7dGhpcy5uZXh0anNEaXN0cmlidXRpb24uZGlzdHJpYnV0aW9uLmRvbWFpbk5hbWV9YCxcbiAgICAgIHRoaXMucmVzb2x2ZWRCYXNlUGF0aCxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9wczogTmV4dGpzR2xvYmFsQ29udGFpbmVyc1Byb3BzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogTmV4dGpzR2xvYmFsQ29udGFpbmVyc1Byb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzLCBOZXh0anNUeXBlLkdMT0JBTF9DT05UQUlORVJTKTtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICB0aGlzLm5leHRqc0NvbnRhaW5lcnMgPSB0aGlzLmNyZWF0ZU5leHRqc0NvbnRhaW5lcnMoKTtcbiAgICB0aGlzLm5leHRqc0Rpc3RyaWJ1dGlvbiA9IHRoaXMuY3JlYXRlTmV4dGpzRGlzdHJpYnV0aW9uKCk7XG4gICAgY29uc3QgeyB0YXNrRGVmaW5pdGlvbiB9ID0gdGhpcy5uZXh0anNDb250YWluZXJzLmFsYkZhcmdhdGVTZXJ2aWNlO1xuICAgIC8vIExldHMgb24tZGVtYW5kIHJldmFsaWRhdGlvbiBldmljdCBzdGFsZSByZXNwb25zZXMgZnJvbSB0aGUgQ0ROIGVkZ2UsIG5vdFxuICAgIC8vIGp1c3QgdGhlIG9yaWdpbidzIGNhY2hlLiBUaGUgb3JpZ2luIGlzIHRoZSBBTEIsIHdoaWNoIHRoZSB0YXNrIGRvZXNuJ3RcbiAgICAvLyBkZXBlbmQgb24sIHNvIG5hbWluZyB0aGUgZGlzdHJpYnV0aW9uIGhlcmUgbWFrZXMgbm8gZGVwZW5kZW5jeSBjeWNsZS5cbiAgICBjb25zdCB7IGRpc3RyaWJ1dGlvbiB9ID0gdGhpcy5uZXh0anNEaXN0cmlidXRpb247XG4gICAgZGlzdHJpYnV0aW9uLmdyYW50Q3JlYXRlSW52YWxpZGF0aW9uKHRhc2tEZWZpbml0aW9uLnRhc2tSb2xlKTtcbiAgICB0YXNrRGVmaW5pdGlvbi5kZWZhdWx0Q29udGFpbmVyPy5hZGRFbnZpcm9ubWVudChcbiAgICAgIFwiQ0RLX05FWFRKU19ESVNUUklCVVRJT05fSURcIixcbiAgICAgIGRpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb25JZCxcbiAgICApO1xuICAgIC8vIFRoZSBBTEIgaXMgcmVhY2hhYmxlIHRocm91Z2ggdGhlIGRpc3RyaWJ1dGlvbidzIFZQQyBvcmlnaW4gYWxvbmUsIHNvXG4gICAgLy8gYENsb3VkRnJvbnQtRm9yd2FyZGVkLVByb3RvYCBpcyBhbHdheXMgQ2xvdWRGcm9udCdzIG93bjsgc2VlXG4gICAgLy8gYHZpZXdlckhlYWRlcnNgIGluIHNyYy9ydW50aW1lL2h0dHAvbm9kZS1zZXJ2ZXIudHMuXG4gICAgdGFza0RlZmluaXRpb24uZGVmYXVsdENvbnRhaW5lcj8uYWRkRW52aXJvbm1lbnQoXG4gICAgICBcIkNES19ORVhUSlNfVFJVU1RfQ0xPVURGUk9OVF9QUk9UT1wiLFxuICAgICAgXCIxXCIsXG4gICAgKTtcbiAgICB0aGlzLm5leHRqc1Bvc3REZXBsb3kgPSB0aGlzLmNyZWF0ZU5leHRqc1Bvc3REZXBsb3koXG4gICAgICB0aGlzLm5leHRqc0Rpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb24sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzQ29udGFpbmVycygpOiBOZXh0anNDb250YWluZXJzIHtcbiAgICAvLyBDcmVhdGUgY29udGFpbmVycyB3aXRoIGxvY2FsIGJ1aWxkIG91dHB1dFxuICAgIHJldHVybiBuZXcgTmV4dGpzQ29udGFpbmVycyh0aGlzLCBcIk5leHRqc0NvbnRhaW5lcnNcIiwge1xuICAgICAgLi4udGhpcy5jb21wdXRlQmFzZVByb3BzKCksXG4gICAgICBhbGI6IHRoaXMucHJvcHMuYWxiLFxuICAgICAgYnVpbGREaXJlY3Rvcnk6IHRoaXMucHJvcHMuYnVpbGREaXJlY3RvcnksXG4gICAgICBlY3NDbHVzdGVyOiB0aGlzLnByb3BzLmVjc0NsdXN0ZXIsXG4gICAgICBoZWFsdGhDaGVja1BhdGg6IHRoaXMucmVzb2x2ZWRIZWFsdGhDaGVja1BhdGgodGhpcy5wcm9wcy5oZWFsdGhDaGVja1BhdGgpLFxuICAgICAgcmVsYXRpdmVFbnRyeXBvaW50UGF0aDogdGhpcy5uZXh0anNCdWlsZC5yZWxhdGl2ZVBhdGhUb0VudHJ5cG9pbnQsXG4gICAgICByZWxhdGl2ZVByb2plY3REaXI6IHRoaXMubmV4dGpzQnVpbGQucmVsYXRpdmVQcm9qZWN0RGlyLFxuICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgIC4uLnRoaXMucHJvcHMub3ZlcnJpZGVzPy5uZXh0anNDb250YWluZXJzLFxuICAgICAgICBlY3NDbHVzdGVyUHJvcHM6IHtcbiAgICAgICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzQ29udGFpbmVycz8uZWNzQ2x1c3RlclByb3BzLFxuICAgICAgICAgIC8vIENvbmRpdGlvbmFsIGZvciB0aGUgc2FtZSByZWFzb24gYXMgdGhlIEZ1bmN0aW9ucycgYHZwY2A6IGFzc2lnbmVkXG4gICAgICAgICAgLy8gdW5jb25kaXRpb25hbGx5LCBhbiB1bnNldCBgdnBjYCBwcm9wIHdvdWxkIGVyYXNlIHRoZSBvdmVycmlkZSdzLlxuICAgICAgICAgIC4uLih0aGlzLmJhc2VQcm9wcy52cGMgPyB7IHZwYzogdGhpcy5iYXNlUHJvcHMudnBjIH0gOiB7fSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0dsb2JhbENvbnRhaW5lcnM/Lm5leHRqc0NvbnRhaW5lcnNQcm9wcyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzRGlzdHJpYnV0aW9uKCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzRGlzdHJpYnV0aW9uKHRoaXMsIFwiTmV4dGpzRGlzdHJpYnV0aW9uXCIsIHtcbiAgICAgIGFzc2V0c0J1Y2tldDogdGhpcy5uZXh0anNTdGF0aWNBc3NldHMuYnVja2V0LFxuICAgICAgYXNzZXRQcmVmaXg6IHRoaXMubmV4dGpzQnVpbGQubmV4dENvbmZpZ0Fzc2V0UHJlZml4UGF0aCxcbiAgICAgIGJhc2VQYXRoOiB0aGlzLnJlc29sdmVkQmFzZVBhdGgsXG4gICAgICBjZXJ0aWZpY2F0ZTogdGhpcy5uZXh0anNDb250YWluZXJzLmFsYkZhcmdhdGVTZXJ2aWNlLmNlcnRpZmljYXRlLFxuICAgICAgZGlzdHJpYnV0aW9uOiB0aGlzLnByb3BzLmRpc3RyaWJ1dGlvbixcbiAgICAgIGxvYWRCYWxhbmNlcjogdGhpcy5uZXh0anNDb250YWluZXJzLmFsYkZhcmdhdGVTZXJ2aWNlLmxvYWRCYWxhbmNlcixcbiAgICAgIG5leHRqc1R5cGU6IHRoaXMubmV4dGpzVHlwZSxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0Rpc3RyaWJ1dGlvbixcbiAgICAgIHB1YmxpY0RpckVudHJpZXM6IHRoaXMubmV4dGpzQnVpbGQucHVibGljRGlyRW50cmllcyxcbiAgICAgIHNlcnZpY2VXb3JrZXJBbGxvd2VkOiB0aGlzLnNlcnZpY2VXb3JrZXJBbGxvd2VkLFxuICAgICAgdmlld2VyUmVxdWVzdEZ1bmN0aW9uQ29kZTogdGhpcy5wcm9wcy52aWV3ZXJSZXF1ZXN0RnVuY3Rpb25Db2RlLFxuICAgICAgdmlld2VyUmVxdWVzdEtleVZhbHVlU3RvcmU6IHRoaXMucHJvcHMudmlld2VyUmVxdWVzdEtleVZhbHVlU3RvcmUsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzR2xvYmFsQ29udGFpbmVycz8ubmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -17,7 +17,7 @@ const base_path_1 = require("../utils/base-path");
17
17
  * for functions.
18
18
  */
19
19
  class NextjsGlobalFunctions extends nextjs_base_construct_1.NextjsBaseConstruct {
20
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsGlobalFunctions", version: "0.7.13" };
20
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsGlobalFunctions", version: "0.7.14" };
21
21
  nextjsFunctions;
22
22
  nextjsDistribution;
23
23
  nextjsPostDeploy;
@@ -92,6 +92,7 @@ class NextjsGlobalFunctions extends nextjs_base_construct_1.NextjsBaseConstruct
92
92
  nextjsType: this.nextjsType,
93
93
  overrides: this.props.overrides?.nextjsDistribution,
94
94
  publicDirEntries: this.nextjsBuild.publicDirEntries,
95
+ serviceWorkerAllowed: this.serviceWorkerAllowed,
95
96
  // The default group backs the default behavior, so only the rest need
96
97
  // behaviors of their own.
97
98
  functionGroups: this.nextjsFunctions.functionGroups
@@ -108,4 +109,4 @@ class NextjsGlobalFunctions extends nextjs_base_construct_1.NextjsBaseConstruct
108
109
  }
109
110
  }
110
111
  exports.NextjsGlobalFunctions = NextjsGlobalFunctions;
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWdsb2JhbC1mdW5jdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm9vdC1jb25zdHJ1Y3RzL25leHRqcy1nbG9iYWwtZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2Q0FBb0M7QUFNcEMsaURBQThEO0FBRTlELGlEQUFzRDtBQUV0RCxnRUFBb0U7QUFDcEUsNENBQTBDO0FBQzFDLG1FQUtpQztBQU9qQyxnRUFHZ0M7QUFFaEMsa0RBQThDO0FBeUQ5Qzs7Ozs7R0FLRztBQUNILE1BQWEscUJBQXNCLFNBQVEsMkNBQW1COztJQUM1RCxlQUFlLENBQWtCO0lBQ2pDLGtCQUFrQixDQUFxQjtJQUN2QyxnQkFBZ0IsQ0FBbUI7SUFDbkM7Ozs7T0FJRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBQSxvQkFBUSxFQUNiLFdBQVcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFDNUQsSUFBSSxDQUFDLGdCQUFnQixDQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBNkI7SUFFMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsc0JBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzFELDhFQUE4RTtRQUM5RSw0RUFBNEU7UUFDNUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUN2RCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxD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QUUsSUFBSSxDQUFDLEtBQUssQ0FBQywwQkFBMEI7WUFDakUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUI7U0FDeEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF0R0gsc0RBdUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7XG4gIERpc3RyaWJ1dGlvbixcbiAgRnVuY3Rpb25Db2RlLFxuICBJS2V5VmFsdWVTdG9yZSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQgeyBQb2xpY3ksIFBvbGljeVN0YXRlbWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBGdW5jdGlvbiBhcyBMYW1iZGFGdW5jdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBTdHJpbmdQYXJhbWV0ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzbVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IERFRkFVTFRfRlVOQ1RJT05fR1JPVVAgfSBmcm9tIFwiLi4vYWRhcHRlci9mdW5jdGlvbi1ncm91cHNcIjtcbmltcG9ydCB7IE5leHRqc1R5cGUgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQge1xuICBOZXh0anNCYXNlQ29uc3RydWN0T3ZlcnJpZGVzLFxuICBOZXh0anNCYXNlT3ZlcnJpZGVzLFxuICBOZXh0anNCYXNlQ29uc3RydWN0LFxuICBOZXh0anNCYXNlUHJvcHMsXG59IGZyb20gXCIuL25leHRqcy1iYXNlLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wcyB9IGZyb20gXCIuLi9nZW5lcmF0ZWQtc3RydWN0cy9PcHRpb25hbE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzXCI7XG5pbXBvcnQge1xuICBOZXh0anNGdW5jdGlvbkdyb3VwLFxuICBOZXh0anNGdW5jdGlvbnMsXG4gIE5leHRqc0Z1bmN0aW9uc092ZXJyaWRlcyxcbn0gZnJvbSBcIi4uL25leHRqcy1jb21wdXRlL25leHRqcy1mdW5jdGlvbnNcIjtcbmltcG9ydCB7XG4gIE5leHRqc0Rpc3RyaWJ1dGlvbixcbiAgTmV4dGpzRGlzdHJpYnV0aW9uT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi4vbmV4dGpzLWRpc3RyaWJ1dGlvblwiO1xuaW1wb3J0IHsgTmV4dGpzUG9zdERlcGxveSB9IGZyb20gXCIuLi9uZXh0anMtcG9zdC1kZXBsb3lcIjtcbmltcG9ydCB7IGpvaW5QYXRoIH0gZnJvbSBcIi4uL3V0aWxzL2Jhc2UtcGF0aFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0dsb2JhbEZ1bmN0aW9uc0NvbnN0cnVjdE92ZXJyaWRlcyBleHRlbmRzIE5leHRqc0Jhc2VDb25zdHJ1Y3RPdmVycmlkZXMge1xuICByZWFkb25seSBuZXh0anNEaXN0cmlidXRpb25Qcm9wcz86IE9wdGlvbmFsTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHM7XG59XG5cbi8qKlxuICogT3ZlcnJpZGVzIGZvciBgTmV4dGpzR2xvYmFsRnVuY3Rpb25zYC4gT3ZlcnJpZGVzIGFyZSBsb3dlciBsZXZlbCB0aGFuXG4gKiBwcm9wcyBhbmQgYXJlIHBhc3NlZCBkaXJlY3RseSB0byBDREsgQ29uc3RydWN0cyBnaXZpbmcgeW91IG1vcmUgY29udHJvbC4gSXQnc1xuICogcmVjb21tZW5kZWQgdG8gdXNlIGNhdXRpb24gYW5kIHJldmlldyBzb3VyY2UgY29kZSBzbyB5b3Uga25vdyBob3cgdGhleSdyZSB1c2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0dsb2JhbEZ1bmN0aW9uc092ZXJyaWRlcyBleHRlbmRzIE5leHRqc0Jhc2VPdmVycmlkZXMge1xuICByZWFkb25seSBuZXh0anNHbG9iYWxGdW5jdGlvbnM/OiBOZXh0anNHbG9iYWxGdW5jdGlvbnNDb25zdHJ1Y3RPdmVycmlkZXM7XG4gIHJlYWRvbmx5IG5leHRqc0Z1bmN0aW9ucz86IE5leHRqc0Z1bmN0aW9uc092ZXJyaWRlcztcbiAgcmVhZG9ubHkgbmV4dGpzRGlzdHJpYnV0aW9uPzogTmV4dGpzRGlzdHJpYnV0aW9uT3ZlcnJpZGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc0dsb2JhbEZ1bmN0aW9uc1Byb3BzIGV4dGVuZHMgTmV4dGpzQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIEJyaW5nIHlvdXIgb3duIGRpc3RyaWJ1dGlvbi4gQ2FuIGJlIHVzZWQgd2l0aCBgYmFzZVBhdGhgIHRvIGhvc3QgbXVsdGlwbGVcbiAgICogYXBwcyBvbiB0aGUgc2FtZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbj86IERpc3RyaWJ1dGlvbjtcbiAgLyoqXG4gICAqIFBhY2thZ2Ugc2V0cyBvZiByb3V0ZXMgaW50byBzZXBhcmF0ZSBMYW1iZGEgZnVuY3Rpb25zLCBlYWNoIGZyb250ZWQgYnkgaXRzXG4gICAqIG93biBDbG91ZEZyb250IGJlaGF2aW9ycy5cbiAgICpcbiAgICogUmVhY2ggZm9yIHRoaXMgd2hlbiBhIHNpbmdsZSBmdW5jdGlvbiBleGNlZWRzIExhbWJkYSdzIDI1MCBNQiB1bnppcHBlZFxuICAgKiBsaW1pdCDigJQgY2RrLW5leHRqcyB0aHJvd3MgYXQgc3ludGggd2l0aCB0aGUgbWVhc3VyZWQgc2l6ZSB3aGVuIGl0IGRvZXMuIEl0IGlzXG4gICAqIG5vdCBhIHBlcmZvcm1hbmNlIG9yIGlzb2xhdGlvbiBmZWF0dXJlOiBldmVyeSBncm91cCBzaGlwcyB0aGUgc2FtZSBOZXh0LmpzXG4gICAqIHJ1bnRpbWUsIHNvIHNwbGl0dGluZyBvbmx5IG1vdmVzIHJvdXRlLWxvY2FsIGNvZGUuXG4gICAqXG4gICAqIEBzZWUgTmV4dGpzRnVuY3Rpb25Hcm91cCBmb3IgdGhlIHBhdHRlcm4gZ3JhbW1hciBhbmQgaXRzIGxpbWl0cy5cbiAgICogQGRlZmF1bHQgLSBvbmUgZnVuY3Rpb24gc2VydmVzIGV2ZXJ5IHJvdXRlXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbkdyb3Vwcz86IE5leHRqc0Z1bmN0aW9uR3JvdXBbXTtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHByb3BzIG9mIGFueSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBvdmVycmlkZXM/OiBOZXh0anNHbG9iYWxGdW5jdGlvbnNPdmVycmlkZXM7XG4gIC8qKlxuICAgKiBDbG91ZEZyb250IEZ1bmN0aW9uIGNvZGUgcnVuIGZpcnN0IG9uIGV2ZXJ5IHZpZXdlciByZXF1ZXN0LCBzdGF0aWMgYXNzZXRzXG4gICAqIGluY2x1ZGVkIOKAlCBIVFRQIEJhc2ljIGF1dGggb24gYSBwcmUtbGF1bmNoIHNpdGUsIHNheS4gSXQgbXVzdCBkZWZpbmVcbiAgICogYHZpZXdlclJlcXVlc3QoZXZlbnQpYCwgYXMgYSBmdW5jdGlvbiBvciBhIGB2YXJgL2BsZXRgL2Bjb25zdGAuXG4gICAqIEBzZWUgTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMudmlld2VyUmVxdWVzdEZ1bmN0aW9uQ29kZVxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHZpZXdlclJlcXVlc3RGdW5jdGlvbkNvZGU/OiBGdW5jdGlvbkNvZGU7XG4gIC8qKlxuICAgKiBBIENsb3VkRnJvbnQgS2V5VmFsdWVTdG9yZSBgdmlld2VyUmVxdWVzdEZ1bmN0aW9uQ29kZWAgY2FuIHJlYWQgd2l0aFxuICAgKiBgY2Yua3ZzKClgLCBzbyBjcmVkZW50aWFscyBzdGF5IG91dCBvZiB0aGUgdGVtcGxhdGUuXG4gICAqIEBzZWUgTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMudmlld2VyUmVxdWVzdEtleVZhbHVlU3RvcmVcbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSB2aWV3ZXJSZXF1ZXN0S2V5VmFsdWVTdG9yZT86IElLZXlWYWx1ZVN0b3JlO1xufVxuXG4vKipcbiAqIERlcGxveSBOZXh0LmpzIGdsb2JhbGx5IGRpc3RyaWJ1dGVkIHdpdGggZnVuY3Rpb25zLiBVc2VzIFtDbG91ZEZyb250XG4gKiBEaXN0cmlidXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9kaXN0cmlidXRpb24td29ya2luZy13aXRoLmh0bWwpXG4gKiBhcyBDb250ZW50IERlbGl2ZXJ5IE5ldHdvcmsgKENETikgZm9yIGdsb2JhbCBkaXN0cmlidXRpb24gYW5kIFtBV1MgTGFtYmRhIEZ1bmN0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2VsY29tZS5odG1sKVxuICogZm9yIGZ1bmN0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIE5leHRqc0dsb2JhbEZ1bmN0aW9ucyBleHRlbmRzIE5leHRqc0Jhc2VDb25zdHJ1Y3Qge1xuICBuZXh0anNGdW5jdGlvbnM6IE5leHRqc0Z1bmN0aW9ucztcbiAgbmV4dGpzRGlzdHJpYnV0aW9uOiBOZXh0anNEaXN0cmlidXRpb247XG4gIG5leHRqc1Bvc3REZXBsb3k6IE5leHRqc1Bvc3REZXBsb3k7XG4gIC8qKlxuICAgKiBQdWJsaWMgVVJMIG9mIHRoZSBhcHAsIGluY2x1ZGluZyBgYmFzZVBhdGhgIOKAlCB0aGUgYXBwIG9ubHkgYW5zd2VycyB1bmRlclxuICAgKiB0aGF0IHByZWZpeCwgYW5kIGl0J3MgZGVyaXZlZCBmcm9tIHRoZSBhcHAncyBvd24gYGJhc2VQYXRoYCB3aGVuIHRoZSBwcm9wIGlzXG4gICAqIGxlZnQgdW5zZXQsIHNvIGl0J3MgdGhlcmUgd2hldGhlciBvciBub3QgeW91IGFza2VkIGZvciBpdC5cbiAgICovXG4gIGdldCB1cmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gam9pblBhdGgoXG4gICAgICBgaHR0cHM6Ly8ke3RoaXMubmV4dGpzRGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbi5kb21haW5OYW1lfWAsXG4gICAgICB0aGlzLnJlc29sdmVkQmFzZVBhdGgsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvcHM6IE5leHRqc0dsb2JhbEZ1bmN0aW9uc1Byb3BzO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBOZXh0anNHbG9iYWxGdW5jdGlvbnNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMsIE5leHRqc1R5cGUuR0xPQkFMX0ZVTkNUSU9OUyk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgdGhpcy5uZXh0anNGdW5jdGlvbnMgPSB0aGlzLmNyZWF0ZU5leHRqc0Z1bmN0aW9ucygpO1xuICAgIHRoaXMubmV4dGpzRGlzdHJpYnV0aW9uID0gdGhpcy5jcmVhdGVOZXh0anNEaXN0cmlidXRpb24oKTtcbiAgICAvLyBFdmVyeSBncm91cCwgbm90IGp1c3QgdGhlIGRlZmF1bHQgb25lOiBgcmV2YWxpZGF0ZVRhZ2AvYHJldmFsaWRhdGVQYXRoYCBjYW5cbiAgICAvLyBiZSBjYWxsZWQgZnJvbSBhbnkgcm91dGUgaGFuZGxlciwgc28gYW55IGZ1bmN0aW9uIG1heSBuZWVkIHRvIGludmFsaWRhdGUuXG4gICAgY29uc3QgZnVuY3Rpb25zID0gdGhpcy5uZXh0anNGdW5jdGlvbnMuZnVuY3Rpb25Hcm91cHMubWFwKFxuICAgICAgKGdyb3VwKSA9PiBncm91cC5mdW5jdGlvbixcbiAgICApO1xuICAgIHRoaXMud2lyZUNsb3VkRnJvbnRJbnZhbGlkYXRpb24oZnVuY3Rpb25zKTtcbiAgICB0aGlzLm5leHRqc1Bvc3REZXBsb3kgPSB0aGlzLmNyZWF0ZU5leHRqc1Bvc3REZXBsb3koXG4gICAgICB0aGlzLm5leHRqc0Rpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb24sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMZXRzIGBmdW5jdGlvbnNgIGludmFsaWRhdGUgdGhlIGRpc3RyaWJ1dGlvbiwgc28gb24tZGVtYW5kIHJldmFsaWRhdGlvblxuICAgKiAocmV2YWxpZGF0ZVRhZy9yZXZhbGlkYXRlUGF0aCkgY2FuIGV2aWN0IHN0YWxlIHJlc3BvbnNlcyBmcm9tIHRoZSBDRE4gZWRnZVxuICAgKiBjYWNoZSwgbm90IGp1c3QgdGhlIG9yaWdpbidzIFMzL0R5bmFtb0RCIGNhY2hlLlxuICAgKlxuICAgKiBUaGUgZGlzdHJpYnV0aW9uJ3Mgb3JpZ2luIGlzIHRoZSBmdW5jdGlvbnMnIFVSTCwgc28gYSBmdW5jdGlvbiBuYW1pbmcgdGhlXG4gICAqIGRpc3RyaWJ1dGlvbiBiYWNrIOKAlCBpbiBpdHMgZW52aXJvbm1lbnQsIG9yIGluIGl0cyByb2xlJ3MgZGVmYXVsdCBwb2xpY3ksXG4gICAqIHdoaWNoIGEgZnVuY3Rpb24gZGVwZW5kcyBvbiDigJQgd291bGQgYmUgYSBjaXJjdWxhciBDbG91ZEZvcm1hdGlvblxuICAgKiBkZXBlbmRlbmN5LiBTbyB0aGUgSUQgaXMgcHVibGlzaGVkIHRvIGFuIFNTTSBQYXJhbWV0ZXIgd2hvc2UgKm5hbWUqIGlzXG4gICAqIHN0YXRpYywgYW5kIHRoZSBncmFudHMgZ28gaW4gYSBzZXBhcmF0ZSBwb2xpY3kgdGhhdCBkZXBlbmRzIG9uIHRoZVxuICAgKiBkaXN0cmlidXRpb24gd2hpbGUgbm8gZnVuY3Rpb24gZGVwZW5kcyBvbiBpdC5cbiAgICovXG4gIHByaXZhdGUgd2lyZUNsb3VkRnJvbnRJbnZhbGlkYXRpb24oZnVuY3Rpb25zOiBMYW1iZGFGdW5jdGlvbltdKSB7XG4gICAgY29uc3QgeyBkaXN0cmlidXRpb24gfSA9IHRoaXMubmV4dGpzRGlzdHJpYnV0aW9uO1xuICAgIGNvbnN0IHBhcmFtZXRlck5hbWUgPSBgY2RrLW5leHRqcy1kaXN0cmlidXRpb24taWQtJHt0aGlzLm5vZGUuYWRkcn1gO1xuICAgIG5ldyBTdHJpbmdQYXJhbWV0ZXIodGhpcywgXCJEaXN0cmlidXRpb25JZFBhcmFtZXRlclwiLCB7XG4gICAgICBwYXJhbWV0ZXJOYW1lLFxuICAgICAgc3RyaW5nVmFsdWU6IGRpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb25JZCxcbiAgICB9KTtcbiAgICBuZXcgUG9saWN5KHRoaXMsIFwiSW52YWxpZGF0aW9uUG9saWN5XCIsIHtcbiAgICAgIC8vIEEgYG5ldyBGdW5jdGlvbmAgYWx3YXlzIGhhcyBhIHJvbGU7IG9ubHkgaW1wb3J0ZWQgb25lcyBsYWNrIGl0LlxuICAgICAgcm9sZXM6IGZ1bmN0aW9ucy5tYXAoKGZuKSA9PiBmbi5yb2xlISksXG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFtcInNzbTpHZXRQYXJhbWV0ZXJcIl0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICAgICAgICBzZXJ2aWNlOiBcInNzbVwiLFxuICAgICAgICAgICAgICByZXNvdXJjZTogXCJwYXJhbWV0ZXJcIixcbiAgICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiBwYXJhbWV0ZXJOYW1lLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFtcImNsb3VkZnJvbnQ6Q3JlYXRlSW52YWxpZGF0aW9uXCJdLFxuICAgICAgICAgIHJlc291cmNlczogW2Rpc3RyaWJ1dGlvbi5kaXN0cmlidXRpb25Bcm5dLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgZnVuY3Rpb25zLmZvckVhY2goKGZuKSA9PlxuICAgICAgZm4uYWRkRW52aXJvbm1lbnQoXCJDREtfTkVYVEpTX0RJU1RSSUJVVElPTl9JRF9QQVJBTV9OQU1FXCIsIHBhcmFtZXRlck5hbWUpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0Rpc3RyaWJ1dGlvbigpIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc0Rpc3RyaWJ1dGlvbih0aGlzLCBcIk5leHRqc0Rpc3RyaWJ1dGlvblwiLCB7XG4gICAgICBhc3NldHNCdWNrZXQ6IHRoaXMubmV4dGpzU3RhdGljQXNzZXRzLmJ1Y2tldCxcbiAgICAgIGFzc2V0UHJlZml4OiB0aGlzLm5leHRqc0J1aWxkLm5leHRDb25maWdBc3NldFByZWZpeFBhdGgsXG4gICAgICBiYXNlUGF0aDogdGhpcy5yZXNvbHZlZEJhc2VQYXRoLFxuICAgICAgZGlzdHJpYnV0aW9uOiB0aGlzLnByb3BzLmRpc3RyaWJ1dGlvbixcbiAgICAgIGZ1bmN0aW9uVXJsOiB0aGlzLm5leHRqc0Z1bmN0aW9ucy5mdW5jdGlvblVybCxcbiAgICAgIG5leHRqc1R5cGU6IHRoaXMubmV4dGpzVHlwZSxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0Rpc3RyaWJ1dGlvbixcbiAgICAgIHB1YmxpY0RpckVudHJpZXM6IHRoaXMubmV4dGpzQnVpbGQucHVibGljRGlyRW50cmllcyxcbiAgICAgIC8vIFRoZSBkZWZhdWx0IGdyb3VwIGJhY2tzIHRoZSBkZWZhdWx0IGJlaGF2aW9yLCBzbyBvbmx5IHRoZSByZXN0IG5lZWRcbiAgICAgIC8vIGJlaGF2aW9ycyBvZiB0aGVpciBvd24uXG4gICAgICBmdW5jdGlvbkdyb3VwczogdGhpcy5uZXh0anNGdW5jdGlvbnMuZnVuY3Rpb25Hcm91cHNcbiAgICAgICAgLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwLm5hbWUgIT09IERFRkFVTFRfRlVOQ1RJT05fR1JPVVApXG4gICAgICAgIC5tYXAoKGdyb3VwKSA9PiAoe1xuICAgICAgICAgIG5hbWU6IGdyb3VwLm5hbWUsXG4gICAgICAgICAgZnVuY3Rpb25Vcmw6IGdyb3VwLmZ1bmN0aW9uVXJsISxcbiAgICAgICAgfSkpLFxuICAgICAgZnVuY3Rpb25Hcm91cEJlaGF2aW9yczogdGhpcy5uZXh0anNCdWlsZC5mdW5jdGlvbkdyb3VwQmVoYXZpb3JzLFxuICAgICAgdmlld2VyUmVxdWVzdEZ1bmN0aW9uQ29kZTogdGhpcy5wcm9wcy52aWV3ZXJSZXF1ZXN0RnVuY3Rpb25Db2RlLFxuICAgICAgdmlld2VyUmVxdWVzdEtleVZhbHVlU3RvcmU6IHRoaXMucHJvcHMudmlld2VyUmVxdWVzdEtleVZhbHVlU3RvcmUsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzR2xvYmFsRnVuY3Rpb25zPy5uZXh0anNEaXN0cmlidXRpb25Qcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLWdsb2JhbC1mdW5jdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm9vdC1jb25zdHJ1Y3RzL25leHRqcy1nbG9iYWwtZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2Q0FBb0M7QUFNcEMsaURBQThEO0FBRTlELGlEQUFzRDtBQUV0RCxnRUFBb0U7QUFDcEUsNENBQTBDO0FBQzFDLG1FQUtpQztBQU9qQyxnRUFHZ0M7QUFFaEMsa0RBQThDO0FBeUQ5Qzs7Ozs7R0FLRztBQUNILE1BQWEscUJBQXNCLFNBQVEsMkNBQW1COztJQUM1RCxlQUFlLENBQWtCO0lBQ2pDLGtCQUFrQixDQUFxQjtJQUN2QyxnQkFBZ0IsQ0FBbUI7SUFDbkM7Ozs7T0FJRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBQSxvQkFBUSxFQUNiLFdBQVcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFDNUQsSUFBSSxDQUFDLGdCQUFnQixDQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBNkI7SUFFMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsc0JBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzFELDhFQUE4RTtRQUM5RSw0RUFBNEU7UUFDNUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUN2RCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxD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QUMsS0FBSyxDQUFDLHlCQUF5QjtZQUMvRCwwQkFBMEIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLDBCQUEwQjtZQUNqRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLHFCQUFxQixFQUFFLHVCQUF1QjtTQUN4RSxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXZHSCxzREF3R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgRGlzdHJpYnV0aW9uLFxuICBGdW5jdGlvbkNvZGUsXG4gIElLZXlWYWx1ZVN0b3JlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7IFBvbGljeSwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IEZ1bmN0aW9uIGFzIExhbWJkYUZ1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IFN0cmluZ1BhcmFtZXRlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3NtXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgREVGQVVMVF9GVU5DVElPTl9HUk9VUCB9IGZyb20gXCIuLi9hZGFwdGVyL2Z1bmN0aW9uLWdyb3Vwc1wiO1xuaW1wb3J0IHsgTmV4dGpzVHlwZSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIE5leHRqc0Jhc2VDb25zdHJ1Y3RPdmVycmlkZXMsXG4gIE5leHRqc0Jhc2VPdmVycmlkZXMsXG4gIE5leHRqc0Jhc2VDb25zdHJ1Y3QsXG4gIE5leHRqc0Jhc2VQcm9wcyxcbn0gZnJvbSBcIi4vbmV4dGpzLWJhc2UtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBPcHRpb25hbE5leHRqc0Rpc3RyaWJ1dGlvblByb3BzIH0gZnJvbSBcIi4uL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzRGlzdHJpYnV0aW9uUHJvcHNcIjtcbmltcG9ydCB7XG4gIE5leHRqc0Z1bmN0aW9uR3JvdXAsXG4gIE5leHRqc0Z1bmN0aW9ucyxcbiAgTmV4dGpzRnVuY3Rpb25zT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi4vbmV4dGpzLWNvbXB1dGUvbmV4dGpzLWZ1bmN0aW9uc1wiO1xuaW1wb3J0IHtcbiAgTmV4dGpzRGlzdHJpYnV0aW9uLFxuICBOZXh0anNEaXN0cmlidXRpb25PdmVycmlkZXMsXG59IGZyb20gXCIuLi9uZXh0anMtZGlzdHJpYnV0aW9uXCI7XG5pbXBvcnQgeyBOZXh0anNQb3N0RGVwbG95IH0gZnJvbSBcIi4uL25leHRqcy1wb3N0LWRlcGxveVwiO1xuaW1wb3J0IHsgam9pblBhdGggfSBmcm9tIFwiLi4vdXRpbHMvYmFzZS1wYXRoXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzR2xvYmFsRnVuY3Rpb25zQ29uc3RydWN0T3ZlcnJpZGVzIGV4dGVuZHMgTmV4dGpzQmFzZUNvbnN0cnVjdE92ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IG5leHRqc0Rpc3RyaWJ1dGlvblByb3BzPzogT3B0aW9uYWxOZXh0anNEaXN0cmlidXRpb25Qcm9wcztcbn1cblxuLyoqXG4gKiBPdmVycmlkZXMgZm9yIGBOZXh0anNHbG9iYWxGdW5jdGlvbnNgLiBPdmVycmlkZXMgYXJlIGxvd2VyIGxldmVsIHRoYW5cbiAqIHByb3BzIGFuZCBhcmUgcGFzc2VkIGRpcmVjdGx5IHRvIENESyBDb25zdHJ1Y3RzIGdpdmluZyB5b3UgbW9yZSBjb250cm9sLiBJdCdzXG4gKiByZWNvbW1lbmRlZCB0byB1c2UgY2F1dGlvbiBhbmQgcmV2aWV3IHNvdXJjZSBjb2RlIHNvIHlvdSBrbm93IGhvdyB0aGV5J3JlIHVzZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzR2xvYmFsRnVuY3Rpb25zT3ZlcnJpZGVzIGV4dGVuZHMgTmV4dGpzQmFzZU92ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IG5leHRqc0dsb2JhbEZ1bmN0aW9ucz86IE5leHRqc0dsb2JhbEZ1bmN0aW9uc0NvbnN0cnVjdE92ZXJyaWRlcztcbiAgcmVhZG9ubHkgbmV4dGpzRnVuY3Rpb25zPzogTmV4dGpzRnVuY3Rpb25zT3ZlcnJpZGVzO1xuICByZWFkb25seSBuZXh0anNEaXN0cmlidXRpb24/OiBOZXh0anNEaXN0cmlidXRpb25PdmVycmlkZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzR2xvYmFsRnVuY3Rpb25zUHJvcHMgZXh0ZW5kcyBOZXh0anNCYXNlUHJvcHMge1xuICAvKipcbiAgICogQnJpbmcgeW91ciBvd24gZGlzdHJpYnV0aW9uLiBDYW4gYmUgdXNlZCB3aXRoIGBiYXNlUGF0aGAgdG8gaG9zdCBtdWx0aXBsZVxuICAgKiBhcHBzIG9uIHRoZSBzYW1lIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uPzogRGlzdHJpYnV0aW9uO1xuICAvKipcbiAgICogUGFja2FnZSBzZXRzIG9mIHJvdXRlcyBpbnRvIHNlcGFyYXRlIExhbWJkYSBmdW5jdGlvbnMsIGVhY2ggZnJvbnRlZCBieSBpdHNcbiAgICogb3duIENsb3VkRnJvbnQgYmVoYXZpb3JzLlxuICAgKlxuICAgKiBSZWFjaCBmb3IgdGhpcyB3aGVuIGEgc2luZ2xlIGZ1bmN0aW9uIGV4Y2VlZHMgTGFtYmRhJ3MgMjUwIE1CIHVuemlwcGVkXG4gICAqIGxpbWl0IOKAlCBjZGstbmV4dGpzIHRocm93cyBhdCBzeW50aCB3aXRoIHRoZSBtZWFzdXJlZCBzaXplIHdoZW4gaXQgZG9lcy4gSXQgaXNcbiAgICogbm90IGEgcGVyZm9ybWFuY2Ugb3IgaXNvbGF0aW9uIGZlYXR1cmU6IGV2ZXJ5IGdyb3VwIHNoaXBzIHRoZSBzYW1lIE5leHQuanNcbiAgICogcnVudGltZSwgc28gc3BsaXR0aW5nIG9ubHkgbW92ZXMgcm91dGUtbG9jYWwgY29kZS5cbiAgICpcbiAgICogQHNlZSBOZXh0anNGdW5jdGlvbkdyb3VwIGZvciB0aGUgcGF0dGVybiBncmFtbWFyIGFuZCBpdHMgbGltaXRzLlxuICAgKiBAZGVmYXVsdCAtIG9uZSBmdW5jdGlvbiBzZXJ2ZXMgZXZlcnkgcm91dGVcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uR3JvdXBzPzogTmV4dGpzRnVuY3Rpb25Hcm91cFtdO1xuICAvKipcbiAgICogT3ZlcnJpZGUgcHJvcHMgb2YgYW55IGNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlcz86IE5leHRqc0dsb2JhbEZ1bmN0aW9uc092ZXJyaWRlcztcbiAgLyoqXG4gICAqIENsb3VkRnJvbnQgRnVuY3Rpb24gY29kZSBydW4gZmlyc3Qgb24gZXZlcnkgdmlld2VyIHJlcXVlc3QsIHN0YXRpYyBhc3NldHNcbiAgICogaW5jbHVkZWQg4oCUIEhUVFAgQmFzaWMgYXV0aCBvbiBhIHByZS1sYXVuY2ggc2l0ZSwgc2F5LiBJdCBtdXN0IGRlZmluZVxuICAgKiBgdmlld2VyUmVxdWVzdChldmVudClgLCBhcyBhIGZ1bmN0aW9uIG9yIGEgYHZhcmAvYGxldGAvYGNvbnN0YC5cbiAgICogQHNlZSBOZXh0anNEaXN0cmlidXRpb25Qcm9wcy52aWV3ZXJSZXF1ZXN0RnVuY3Rpb25Db2RlXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgdmlld2VyUmVxdWVzdEZ1bmN0aW9uQ29kZT86IEZ1bmN0aW9uQ29kZTtcbiAgLyoqXG4gICAqIEEgQ2xvdWRGcm9udCBLZXlWYWx1ZVN0b3JlIGB2aWV3ZXJSZXF1ZXN0RnVuY3Rpb25Db2RlYCBjYW4gcmVhZCB3aXRoXG4gICAqIGBjZi5rdnMoKWAsIHNvIGNyZWRlbnRpYWxzIHN0YXkgb3V0IG9mIHRoZSB0ZW1wbGF0ZS5cbiAgICogQHNlZSBOZXh0anNEaXN0cmlidXRpb25Qcm9wcy52aWV3ZXJSZXF1ZXN0S2V5VmFsdWVTdG9yZVxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHZpZXdlclJlcXVlc3RLZXlWYWx1ZVN0b3JlPzogSUtleVZhbHVlU3RvcmU7XG59XG5cbi8qKlxuICogRGVwbG95IE5leHQuanMgZ2xvYmFsbHkgZGlzdHJpYnV0ZWQgd2l0aCBmdW5jdGlvbnMuIFVzZXMgW0Nsb3VkRnJvbnRcbiAqIERpc3RyaWJ1dGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL2Rpc3RyaWJ1dGlvbi13b3JraW5nLXdpdGguaHRtbClcbiAqIGFzIENvbnRlbnQgRGVsaXZlcnkgTmV0d29yayAoQ0ROKSBmb3IgZ2xvYmFsIGRpc3RyaWJ1dGlvbiBhbmQgW0FXUyBMYW1iZGEgRnVuY3Rpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93ZWxjb21lLmh0bWwpXG4gKiBmb3IgZnVuY3Rpb25zLlxuICovXG5leHBvcnQgY2xhc3MgTmV4dGpzR2xvYmFsRnVuY3Rpb25zIGV4dGVuZHMgTmV4dGpzQmFzZUNvbnN0cnVjdCB7XG4gIG5leHRqc0Z1bmN0aW9uczogTmV4dGpzRnVuY3Rpb25zO1xuICBuZXh0anNEaXN0cmlidXRpb246IE5leHRqc0Rpc3RyaWJ1dGlvbjtcbiAgbmV4dGpzUG9zdERlcGxveTogTmV4dGpzUG9zdERlcGxveTtcbiAgLyoqXG4gICAqIFB1YmxpYyBVUkwgb2YgdGhlIGFwcCwgaW5jbHVkaW5nIGBiYXNlUGF0aGAg4oCUIHRoZSBhcHAgb25seSBhbnN3ZXJzIHVuZGVyXG4gICAqIHRoYXQgcHJlZml4LCBhbmQgaXQncyBkZXJpdmVkIGZyb20gdGhlIGFwcCdzIG93biBgYmFzZVBhdGhgIHdoZW4gdGhlIHByb3AgaXNcbiAgICogbGVmdCB1bnNldCwgc28gaXQncyB0aGVyZSB3aGV0aGVyIG9yIG5vdCB5b3UgYXNrZWQgZm9yIGl0LlxuICAgKi9cbiAgZ2V0IHVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBqb2luUGF0aChcbiAgICAgIGBodHRwczovLyR7dGhpcy5uZXh0anNEaXN0cmlidXRpb24uZGlzdHJpYnV0aW9uLmRvbWFpbk5hbWV9YCxcbiAgICAgIHRoaXMucmVzb2x2ZWRCYXNlUGF0aCxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9wczogTmV4dGpzR2xvYmFsRnVuY3Rpb25zUHJvcHM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5leHRqc0dsb2JhbEZ1bmN0aW9uc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcywgTmV4dGpzVHlwZS5HTE9CQUxfRlVOQ1RJT05TKTtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICB0aGlzLm5leHRqc0Z1bmN0aW9ucyA9IHRoaXMuY3JlYXRlTmV4dGpzRnVuY3Rpb25zKCk7XG4gICAgdGhpcy5uZXh0anNEaXN0cmlidXRpb24gPSB0aGlzLmNyZWF0ZU5leHRqc0Rpc3RyaWJ1dGlvbigpO1xuICAgIC8vIEV2ZXJ5IGdyb3VwLCBub3QganVzdCB0aGUgZGVmYXVsdCBvbmU6IGByZXZhbGlkYXRlVGFnYC9gcmV2YWxpZGF0ZVBhdGhgIGNhblxuICAgIC8vIGJlIGNhbGxlZCBmcm9tIGFueSByb3V0ZSBoYW5kbGVyLCBzbyBhbnkgZnVuY3Rpb24gbWF5IG5lZWQgdG8gaW52YWxpZGF0ZS5cbiAgICBjb25zdCBmdW5jdGlvbnMgPSB0aGlzLm5leHRqc0Z1bmN0aW9ucy5mdW5jdGlvbkdyb3Vwcy5tYXAoXG4gICAgICAoZ3JvdXApID0+IGdyb3VwLmZ1bmN0aW9uLFxuICAgICk7XG4gICAgdGhpcy53aXJlQ2xvdWRGcm9udEludmFsaWRhdGlvbihmdW5jdGlvbnMpO1xuICAgIHRoaXMubmV4dGpzUG9zdERlcGxveSA9IHRoaXMuY3JlYXRlTmV4dGpzUG9zdERlcGxveShcbiAgICAgIHRoaXMubmV4dGpzRGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbixcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIExldHMgYGZ1bmN0aW9uc2AgaW52YWxpZGF0ZSB0aGUgZGlzdHJpYnV0aW9uLCBzbyBvbi1kZW1hbmQgcmV2YWxpZGF0aW9uXG4gICAqIChyZXZhbGlkYXRlVGFnL3JldmFsaWRhdGVQYXRoKSBjYW4gZXZpY3Qgc3RhbGUgcmVzcG9uc2VzIGZyb20gdGhlIENETiBlZGdlXG4gICAqIGNhY2hlLCBub3QganVzdCB0aGUgb3JpZ2luJ3MgUzMvRHluYW1vREIgY2FjaGUuXG4gICAqXG4gICAqIFRoZSBkaXN0cmlidXRpb24ncyBvcmlnaW4gaXMgdGhlIGZ1bmN0aW9ucycgVVJMLCBzbyBhIGZ1bmN0aW9uIG5hbWluZyB0aGVcbiAgICogZGlzdHJpYnV0aW9uIGJhY2sg4oCUIGluIGl0cyBlbnZpcm9ubWVudCwgb3IgaW4gaXRzIHJvbGUncyBkZWZhdWx0IHBvbGljeSxcbiAgICogd2hpY2ggYSBmdW5jdGlvbiBkZXBlbmRzIG9uIOKAlCB3b3VsZCBiZSBhIGNpcmN1bGFyIENsb3VkRm9ybWF0aW9uXG4gICAqIGRlcGVuZGVuY3kuIFNvIHRoZSBJRCBpcyBwdWJsaXNoZWQgdG8gYW4gU1NNIFBhcmFtZXRlciB3aG9zZSAqbmFtZSogaXNcbiAgICogc3RhdGljLCBhbmQgdGhlIGdyYW50cyBnbyBpbiBhIHNlcGFyYXRlIHBvbGljeSB0aGF0IGRlcGVuZHMgb24gdGhlXG4gICAqIGRpc3RyaWJ1dGlvbiB3aGlsZSBubyBmdW5jdGlvbiBkZXBlbmRzIG9uIGl0LlxuICAgKi9cbiAgcHJpdmF0ZSB3aXJlQ2xvdWRGcm9udEludmFsaWRhdGlvbihmdW5jdGlvbnM6IExhbWJkYUZ1bmN0aW9uW10pIHtcbiAgICBjb25zdCB7IGRpc3RyaWJ1dGlvbiB9ID0gdGhpcy5uZXh0anNEaXN0cmlidXRpb247XG4gICAgY29uc3QgcGFyYW1ldGVyTmFtZSA9IGBjZGstbmV4dGpzLWRpc3RyaWJ1dGlvbi1pZC0ke3RoaXMubm9kZS5hZGRyfWA7XG4gICAgbmV3IFN0cmluZ1BhcmFtZXRlcih0aGlzLCBcIkRpc3RyaWJ1dGlvbklkUGFyYW1ldGVyXCIsIHtcbiAgICAgIHBhcmFtZXRlck5hbWUsXG4gICAgICBzdHJpbmdWYWx1ZTogZGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbklkLFxuICAgIH0pO1xuICAgIG5ldyBQb2xpY3kodGhpcywgXCJJbnZhbGlkYXRpb25Qb2xpY3lcIiwge1xuICAgICAgLy8gQSBgbmV3IEZ1bmN0aW9uYCBhbHdheXMgaGFzIGEgcm9sZTsgb25seSBpbXBvcnRlZCBvbmVzIGxhY2sgaXQuXG4gICAgICByb2xlczogZnVuY3Rpb25zLm1hcCgoZm4pID0+IGZuLnJvbGUhKSxcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1wic3NtOkdldFBhcmFtZXRlclwiXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICAgIFN0YWNrLm9mKHRoaXMpLmZvcm1hdEFybih7XG4gICAgICAgICAgICAgIHNlcnZpY2U6IFwic3NtXCIsXG4gICAgICAgICAgICAgIHJlc291cmNlOiBcInBhcmFtZXRlclwiLFxuICAgICAgICAgICAgICByZXNvdXJjZU5hbWU6IHBhcmFtZXRlck5hbWUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1wiY2xvdWRmcm9udDpDcmVhdGVJbnZhbGlkYXRpb25cIl0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbZGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbkFybl0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBmdW5jdGlvbnMuZm9yRWFjaCgoZm4pID0+XG4gICAgICBmbi5hZGRFbnZpcm9ubWVudChcIkNES19ORVhUSlNfRElTVFJJQlVUSU9OX0lEX1BBUkFNX05BTUVcIiwgcGFyYW1ldGVyTmFtZSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzRGlzdHJpYnV0aW9uKCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzRGlzdHJpYnV0aW9uKHRoaXMsIFwiTmV4dGpzRGlzdHJpYnV0aW9uXCIsIHtcbiAgICAgIGFzc2V0c0J1Y2tldDogdGhpcy5uZXh0anNTdGF0aWNBc3NldHMuYnVja2V0LFxuICAgICAgYXNzZXRQcmVmaXg6IHRoaXMubmV4dGpzQnVpbGQubmV4dENvbmZpZ0Fzc2V0UHJlZml4UGF0aCxcbiAgICAgIGJhc2VQYXRoOiB0aGlzLnJlc29sdmVkQmFzZVBhdGgsXG4gICAgICBkaXN0cmlidXRpb246IHRoaXMucHJvcHMuZGlzdHJpYnV0aW9uLFxuICAgICAgZnVuY3Rpb25Vcmw6IHRoaXMubmV4dGpzRnVuY3Rpb25zLmZ1bmN0aW9uVXJsLFxuICAgICAgbmV4dGpzVHlwZTogdGhpcy5uZXh0anNUeXBlLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzRGlzdHJpYnV0aW9uLFxuICAgICAgcHVibGljRGlyRW50cmllczogdGhpcy5uZXh0anNCdWlsZC5wdWJsaWNEaXJFbnRyaWVzLFxuICAgICAgc2VydmljZVdvcmtlckFsbG93ZWQ6IHRoaXMuc2VydmljZVdvcmtlckFsbG93ZWQsXG4gICAgICAvLyBUaGUgZGVmYXVsdCBncm91cCBiYWNrcyB0aGUgZGVmYXVsdCBiZWhhdmlvciwgc28gb25seSB0aGUgcmVzdCBuZWVkXG4gICAgICAvLyBiZWhhdmlvcnMgb2YgdGhlaXIgb3duLlxuICAgICAgZnVuY3Rpb25Hcm91cHM6IHRoaXMubmV4dGpzRnVuY3Rpb25zLmZ1bmN0aW9uR3JvdXBzXG4gICAgICAgIC5maWx0ZXIoKGdyb3VwKSA9PiBncm91cC5uYW1lICE9PSBERUZBVUxUX0ZVTkNUSU9OX0dST1VQKVxuICAgICAgICAubWFwKChncm91cCkgPT4gKHtcbiAgICAgICAgICBuYW1lOiBncm91cC5uYW1lLFxuICAgICAgICAgIGZ1bmN0aW9uVXJsOiBncm91cC5mdW5jdGlvblVybCEsXG4gICAgICAgIH0pKSxcbiAgICAgIGZ1bmN0aW9uR3JvdXBCZWhhdmlvcnM6IHRoaXMubmV4dGpzQnVpbGQuZnVuY3Rpb25Hcm91cEJlaGF2aW9ycyxcbiAgICAgIHZpZXdlclJlcXVlc3RGdW5jdGlvbkNvZGU6IHRoaXMucHJvcHMudmlld2VyUmVxdWVzdEZ1bmN0aW9uQ29kZSxcbiAgICAgIHZpZXdlclJlcXVlc3RLZXlWYWx1ZVN0b3JlOiB0aGlzLnByb3BzLnZpZXdlclJlcXVlc3RLZXlWYWx1ZVN0b3JlLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0dsb2JhbEZ1bmN0aW9ucz8ubmV4dGpzRGlzdHJpYnV0aW9uUHJvcHMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -13,7 +13,7 @@ const base_path_1 = require("../utils/base-path");
13
13
  * for containers.
14
14
  */
15
15
  class NextjsRegionalContainers extends nextjs_base_construct_1.NextjsBaseConstruct {
16
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsRegionalContainers", version: "0.7.13" };
16
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsRegionalContainers", version: "0.7.14" };
17
17
  nextjsContainers;
18
18
  nextjsPostDeploy;
19
19
  /**
@@ -11,7 +11,7 @@ const nextjs_base_construct_1 = require("./nextjs-base-construct");
11
11
  * for routing requests and AWS Lambda Functions for server-side rendering.
12
12
  */
13
13
  class NextjsRegionalFunctions extends nextjs_base_construct_1.NextjsBaseConstruct {
14
- static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsRegionalFunctions", version: "0.7.13" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk-nextjs.NextjsRegionalFunctions", version: "0.7.14" };
15
15
  nextjsFunctions;
16
16
  nextjsApi;
17
17
  nextjsPostDeploy;
@@ -34,6 +34,7 @@ class NextjsRegionalFunctions extends nextjs_base_construct_1.NextjsBaseConstruc
34
34
  basePath: this.resolvedBasePath,
35
35
  overrides: this.props.overrides?.nextjsApi,
36
36
  publicDirEntries: this.nextjsBuild.publicDirEntries,
37
+ serviceWorkerAllowed: this.serviceWorkerAllowed,
37
38
  // `serverFunction` above is the default group's, which the `{proxy+}`
38
39
  // catch-all reaches; the rest get resources of their own.
39
40
  functionGroups: this.nextjsFunctions.functionGroups.filter((group) => group.name !== function_groups_1.DEFAULT_FUNCTION_GROUP),
@@ -43,4 +44,4 @@ class NextjsRegionalFunctions extends nextjs_base_construct_1.NextjsBaseConstruc
43
44
  }
44
45
  }
45
46
  exports.NextjsRegionalFunctions = NextjsRegionalFunctions;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLXJlZ2lvbmFsLWZ1bmN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb290LWNvbnN0cnVjdHMvbmV4dGpzLXJlZ2lvbmFsLWZ1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsZ0VBQW9FO0FBQ3BFLDRDQUEwQztBQUUxQyw4Q0FBOEQ7QUFDOUQsbUVBS2lDO0FBNkNqQzs7O0dBR0c7QUFDSCxNQUFhLHVCQUF3QixTQUFRLDJDQUFtQjs7SUFDOUQsZUFBZSxDQUFrQjtJQUNqQyxTQUFTLENBQVk7SUFDckIsZ0JBQWdCLENBQW1CO0lBQ25DLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7SUFDNUIsQ0FBQztJQUVPLEtBQUssQ0FBK0I7SUFFNUMsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLHNCQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRU8sZUFBZTtRQUNyQixPQUFPLElBQUksc0JBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3RDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNO1lBQ2xELHFCQUFxQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTO1lBQ3hELGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVE7WUFDN0MsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLFNBQVM7WUFDMUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0I7WUFDbkQsc0VBQXNFO1lBQ3RFLDBEQUEwRDtZQUMxRCxjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUN4RCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyx3Q0FBc0IsQ0FDakQ7WUFDRCxzQkFBc0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQjtZQUMvRCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLHVCQUF1QixFQUFFLGNBQWM7U0FDakUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF2Q0gsMERBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IERFRkFVTFRfRlVOQ1RJT05fR1JPVVAgfSBmcm9tIFwiLi4vYWRhcHRlci9mdW5jdGlvbi1ncm91cHNcIjtcbmltcG9ydCB7IE5leHRqc1R5cGUgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBPcHRpb25hbE5leHRqc0FwaVByb3BzIH0gZnJvbSBcIi4uL2dlbmVyYXRlZC1zdHJ1Y3RzL09wdGlvbmFsTmV4dGpzQXBpUHJvcHNcIjtcbmltcG9ydCB7IE5leHRqc0FwaSwgTmV4dGpzQXBpT3ZlcnJpZGVzIH0gZnJvbSBcIi4uL25leHRqcy1hcGlcIjtcbmltcG9ydCB7XG4gIE5leHRqc0Jhc2VDb25zdHJ1Y3QsXG4gIE5leHRqc0Jhc2VQcm9wcyxcbiAgTmV4dGpzQmFzZUNvbnN0cnVjdE92ZXJyaWRlcyxcbiAgTmV4dGpzQmFzZU92ZXJyaWRlcyxcbn0gZnJvbSBcIi4vbmV4dGpzLWJhc2UtY29uc3RydWN0XCI7XG5pbXBvcnQge1xuICBOZXh0anNGdW5jdGlvbkdyb3VwLFxuICBOZXh0anNGdW5jdGlvbnMsXG4gIE5leHRqc0Z1bmN0aW9uc092ZXJyaWRlcyxcbn0gZnJvbSBcIi4uL25leHRqcy1jb21wdXRlL25leHRqcy1mdW5jdGlvbnNcIjtcbmltcG9ydCB7IE5leHRqc1Bvc3REZXBsb3kgfSBmcm9tIFwiLi4vbmV4dGpzLXBvc3QtZGVwbG95XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzUmVnaW9uYWxGdW5jdGlvbnNDb25zdHJ1Y3RPdmVycmlkZXMgZXh0ZW5kcyBOZXh0anNCYXNlQ29uc3RydWN0T3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgbmV4dGpzQXBpUHJvcHM/OiBPcHRpb25hbE5leHRqc0FwaVByb3BzO1xufVxuXG4vKipcbiAqIE92ZXJyaWRlcyBmb3IgYE5leHRqc1JlZ2lvbmFsRnVuY3Rpb25zYC4gT3ZlcnJpZGVzIGFyZSBsb3dlciBsZXZlbCB0aGFuXG4gKiBwcm9wcyBhbmQgYXJlIHBhc3NlZCBkaXJlY3RseSB0byBDREsgQ29uc3RydWN0cyBnaXZpbmcgeW91IG1vcmUgY29udHJvbC4gSXQnc1xuICogcmVjb21tZW5kZWQgdG8gdXNlIGNhdXRpb24gYW5kIHJldmlldyBzb3VyY2UgY29kZSBzbyB5b3Uga25vdyBob3cgdGhleSdyZSB1c2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc1JlZ2lvbmFsRnVuY3Rpb25zT3ZlcnJpZGVzIGV4dGVuZHMgTmV4dGpzQmFzZU92ZXJyaWRlcyB7XG4gIHJlYWRvbmx5IG5leHRqc1JlZ2lvbmFsRnVuY3Rpb25zPzogTmV4dGpzUmVnaW9uYWxGdW5jdGlvbnNDb25zdHJ1Y3RPdmVycmlkZXM7XG4gIHJlYWRvbmx5IG5leHRqc0Z1bmN0aW9ucz86IE5leHRqc0Z1bmN0aW9uc092ZXJyaWRlcztcbiAgcmVhZG9ubHkgbmV4dGpzQXBpPzogTmV4dGpzQXBpT3ZlcnJpZGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRqc1JlZ2lvbmFsRnVuY3Rpb25zUHJvcHMgZXh0ZW5kcyBOZXh0anNCYXNlUHJvcHMge1xuICAvKipcbiAgICogUGFja2FnZSBzZXRzIG9mIHJvdXRlcyBpbnRvIHNlcGFyYXRlIExhbWJkYSBmdW5jdGlvbnMsIGVhY2ggZnJvbnRlZCBieSBpdHNcbiAgICogb3duIEFQSSBHYXRld2F5IHJlc291cmNlcy5cbiAgICpcbiAgICogUmVhY2ggZm9yIHRoaXMgd2hlbiBhIHNpbmdsZSBmdW5jdGlvbiBleGNlZWRzIExhbWJkYSdzIDI1MCBNQiB1bnppcHBlZFxuICAgKiBsaW1pdCDigJQgY2RrLW5leHRqcyB0aHJvd3MgYXQgc3ludGggd2l0aCB0aGUgbWVhc3VyZWQgc2l6ZSB3aGVuIGl0IGRvZXMuIEl0IGlzXG4gICAqIG5vdCBhIHBlcmZvcm1hbmNlIG9yIGlzb2xhdGlvbiBmZWF0dXJlOiBldmVyeSBncm91cCBzaGlwcyB0aGUgc2FtZSBOZXh0LmpzXG4gICAqIHJ1bnRpbWUsIHNvIHNwbGl0dGluZyBvbmx5IG1vdmVzIHJvdXRlLWxvY2FsIGNvZGUuXG4gICAqXG4gICAqIEBzZWUgTmV4dGpzRnVuY3Rpb25Hcm91cCBmb3IgdGhlIHBhdHRlcm4gZ3JhbW1hciBhbmQgaXRzIGxpbWl0cy4gQVBJIEdhdGV3YXlcbiAgICogY291bGQgZXhwcmVzcyBtb3JlIHRoYW4gQ2xvdWRGcm9udCBjYW4sIGJ1dCB0aGUgZ3JhbW1hciBpcyBkZWxpYmVyYXRlbHkgdGhlXG4gICAqIHNhbWUgaW4gYm90aCBzbyBzd2l0Y2hpbmcgZGVwbG95bWVudCB0eXBlIG5ldmVyIHJlZ3JvdXBzIHJvdXRlcy5cbiAgICogQGRlZmF1bHQgLSBvbmUgZnVuY3Rpb24gc2VydmVzIGV2ZXJ5IHJvdXRlXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbkdyb3Vwcz86IE5leHRqc0Z1bmN0aW9uR3JvdXBbXTtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHByb3BzIG9mIGFueSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBvdmVycmlkZXM/OiBOZXh0anNSZWdpb25hbEZ1bmN0aW9uc092ZXJyaWRlcztcbn1cblxuLyoqXG4gKiBEZXBsb3kgTmV4dC5qcyByZWdpb25hbGx5IHdpdGggZnVuY3Rpb25zLiBVc2VzIEFQSSBHYXRld2F5IFJFU1QgQVBJXG4gKiBmb3Igcm91dGluZyByZXF1ZXN0cyBhbmQgQVdTIExhbWJkYSBGdW5jdGlvbnMgZm9yIHNlcnZlci1zaWRlIHJlbmRlcmluZy5cbiAqL1xuZXhwb3J0IGNsYXNzIE5leHRqc1JlZ2lvbmFsRnVuY3Rpb25zIGV4dGVuZHMgTmV4dGpzQmFzZUNvbnN0cnVjdCB7XG4gIG5leHRqc0Z1bmN0aW9uczogTmV4dGpzRnVuY3Rpb25zO1xuICBuZXh0anNBcGk6IE5leHRqc0FwaTtcbiAgbmV4dGpzUG9zdERlcGxveTogTmV4dGpzUG9zdERlcGxveTtcbiAgZ2V0IHVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5leHRqc0FwaS51cmw7XG4gIH1cblxuICBwcml2YXRlIHByb3BzOiBOZXh0anNSZWdpb25hbEZ1bmN0aW9uc1Byb3BzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogTmV4dGpzUmVnaW9uYWxGdW5jdGlvbnNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcywgTmV4dGpzVHlwZS5SRUdJT05BTF9GVU5DVElPTlMpO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMubmV4dGpzRnVuY3Rpb25zID0gdGhpcy5jcmVhdGVOZXh0anNGdW5jdGlvbnMoKTtcbiAgICB0aGlzLm5leHRqc0FwaSA9IHRoaXMuY3JlYXRlTmV4dGpzQXBpKCk7XG4gICAgdGhpcy5uZXh0anNQb3N0RGVwbG95ID0gdGhpcy5jcmVhdGVOZXh0anNQb3N0RGVwbG95KCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5leHRqc0FwaSgpIHtcbiAgICByZXR1cm4gbmV3IE5leHRqc0FwaSh0aGlzLCBcIk5leHRqc0FwaVwiLCB7XG4gICAgICBzdGF0aWNBc3NldHNCdWNrZXQ6IHRoaXMubmV4dGpzU3RhdGljQXNzZXRzLmJ1Y2tldCxcbiAgICAgIHN0YXRpY0Fzc2V0c0tleVByZWZpeDogdGhpcy5uZXh0anNTdGF0aWNBc3NldHMua2V5UHJlZml4LFxuICAgICAgc2VydmVyRnVuY3Rpb246IHRoaXMubmV4dGpzRnVuY3Rpb25zLmZ1bmN0aW9uLFxuICAgICAgYmFzZVBhdGg6IHRoaXMucmVzb2x2ZWRCYXNlUGF0aCxcbiAgICAgIG92ZXJyaWRlczogdGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc0FwaSxcbiAgICAgIHB1YmxpY0RpckVudHJpZXM6IHRoaXMubmV4dGpzQnVpbGQucHVibGljRGlyRW50cmllcyxcbiAgICAgIC8vIGBzZXJ2ZXJGdW5jdGlvbmAgYWJvdmUgaXMgdGhlIGRlZmF1bHQgZ3JvdXAncywgd2hpY2ggdGhlIGB7cHJveHkrfWBcbiAgICAgIC8vIGNhdGNoLWFsbCByZWFjaGVzOyB0aGUgcmVzdCBnZXQgcmVzb3VyY2VzIG9mIHRoZWlyIG93bi5cbiAgICAgIGZ1bmN0aW9uR3JvdXBzOiB0aGlzLm5leHRqc0Z1bmN0aW9ucy5mdW5jdGlvbkdyb3Vwcy5maWx0ZXIoXG4gICAgICAgIChncm91cCkgPT4gZ3JvdXAubmFtZSAhPT0gREVGQVVMVF9GVU5DVElPTl9HUk9VUCxcbiAgICAgICksXG4gICAgICBmdW5jdGlvbkdyb3VwQmVoYXZpb3JzOiB0aGlzLm5leHRqc0J1aWxkLmZ1bmN0aW9uR3JvdXBCZWhhdmlvcnMsXG4gICAgICAuLi50aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzUmVnaW9uYWxGdW5jdGlvbnM/Lm5leHRqc0FwaVByb3BzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dGpzLXJlZ2lvbmFsLWZ1bmN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb290LWNvbnN0cnVjdHMvbmV4dGpzLXJlZ2lvbmFsLWZ1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsZ0VBQW9FO0FBQ3BFLDRDQUEwQztBQUUxQyw4Q0FBOEQ7QUFDOUQsbUVBS2lDO0FBNkNqQzs7O0dBR0c7QUFDSCxNQUFhLHVCQUF3QixTQUFRLDJDQUFtQjs7SUFDOUQsZUFBZSxDQUFrQjtJQUNqQyxTQUFTLENBQVk7SUFDckIsZ0JBQWdCLENBQW1CO0lBQ25DLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7SUFDNUIsQ0FBQztJQUVPLEtBQUssQ0FBK0I7SUFFNUMsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLHNCQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRU8sZUFBZTtRQUNyQixPQUFPLElBQUksc0JBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3RDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNO1lBQ2xELHFCQUFxQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTO1lBQ3hELGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVE7WUFDN0MsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLFNBQVM7WUFDMUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0I7WUFDbkQsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtZQUMvQyxzRUFBc0U7WUFDdEUsMERBQTBEO1lBQzFELGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQ3hELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLHdDQUFzQixDQUNqRDtZQUNELHNCQUFzQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCO1lBQy9ELEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsY0FBYztTQUNqRSxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXhDSCwwREF5Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgREVGQVVMVF9GVU5DVElPTl9HUk9VUCB9IGZyb20gXCIuLi9hZGFwdGVyL2Z1bmN0aW9uLWdyb3Vwc1wiO1xuaW1wb3J0IHsgTmV4dGpzVHlwZSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IE9wdGlvbmFsTmV4dGpzQXBpUHJvcHMgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkLXN0cnVjdHMvT3B0aW9uYWxOZXh0anNBcGlQcm9wc1wiO1xuaW1wb3J0IHsgTmV4dGpzQXBpLCBOZXh0anNBcGlPdmVycmlkZXMgfSBmcm9tIFwiLi4vbmV4dGpzLWFwaVwiO1xuaW1wb3J0IHtcbiAgTmV4dGpzQmFzZUNvbnN0cnVjdCxcbiAgTmV4dGpzQmFzZVByb3BzLFxuICBOZXh0anNCYXNlQ29uc3RydWN0T3ZlcnJpZGVzLFxuICBOZXh0anNCYXNlT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi9uZXh0anMtYmFzZS1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7XG4gIE5leHRqc0Z1bmN0aW9uR3JvdXAsXG4gIE5leHRqc0Z1bmN0aW9ucyxcbiAgTmV4dGpzRnVuY3Rpb25zT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi4vbmV4dGpzLWNvbXB1dGUvbmV4dGpzLWZ1bmN0aW9uc1wiO1xuaW1wb3J0IHsgTmV4dGpzUG9zdERlcGxveSB9IGZyb20gXCIuLi9uZXh0anMtcG9zdC1kZXBsb3lcIjtcblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNSZWdpb25hbEZ1bmN0aW9uc0NvbnN0cnVjdE92ZXJyaWRlcyBleHRlbmRzIE5leHRqc0Jhc2VDb25zdHJ1Y3RPdmVycmlkZXMge1xuICByZWFkb25seSBuZXh0anNBcGlQcm9wcz86IE9wdGlvbmFsTmV4dGpzQXBpUHJvcHM7XG59XG5cbi8qKlxuICogT3ZlcnJpZGVzIGZvciBgTmV4dGpzUmVnaW9uYWxGdW5jdGlvbnNgLiBPdmVycmlkZXMgYXJlIGxvd2VyIGxldmVsIHRoYW5cbiAqIHByb3BzIGFuZCBhcmUgcGFzc2VkIGRpcmVjdGx5IHRvIENESyBDb25zdHJ1Y3RzIGdpdmluZyB5b3UgbW9yZSBjb250cm9sLiBJdCdzXG4gKiByZWNvbW1lbmRlZCB0byB1c2UgY2F1dGlvbiBhbmQgcmV2aWV3IHNvdXJjZSBjb2RlIHNvIHlvdSBrbm93IGhvdyB0aGV5J3JlIHVzZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzUmVnaW9uYWxGdW5jdGlvbnNPdmVycmlkZXMgZXh0ZW5kcyBOZXh0anNCYXNlT3ZlcnJpZGVzIHtcbiAgcmVhZG9ubHkgbmV4dGpzUmVnaW9uYWxGdW5jdGlvbnM/OiBOZXh0anNSZWdpb25hbEZ1bmN0aW9uc0NvbnN0cnVjdE92ZXJyaWRlcztcbiAgcmVhZG9ubHkgbmV4dGpzRnVuY3Rpb25zPzogTmV4dGpzRnVuY3Rpb25zT3ZlcnJpZGVzO1xuICByZWFkb25seSBuZXh0anNBcGk/OiBOZXh0anNBcGlPdmVycmlkZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dGpzUmVnaW9uYWxGdW5jdGlvbnNQcm9wcyBleHRlbmRzIE5leHRqc0Jhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBQYWNrYWdlIHNldHMgb2Ygcm91dGVzIGludG8gc2VwYXJhdGUgTGFtYmRhIGZ1bmN0aW9ucywgZWFjaCBmcm9udGVkIGJ5IGl0c1xuICAgKiBvd24gQVBJIEdhdGV3YXkgcmVzb3VyY2VzLlxuICAgKlxuICAgKiBSZWFjaCBmb3IgdGhpcyB3aGVuIGEgc2luZ2xlIGZ1bmN0aW9uIGV4Y2VlZHMgTGFtYmRhJ3MgMjUwIE1CIHVuemlwcGVkXG4gICAqIGxpbWl0IOKAlCBjZGstbmV4dGpzIHRocm93cyBhdCBzeW50aCB3aXRoIHRoZSBtZWFzdXJlZCBzaXplIHdoZW4gaXQgZG9lcy4gSXQgaXNcbiAgICogbm90IGEgcGVyZm9ybWFuY2Ugb3IgaXNvbGF0aW9uIGZlYXR1cmU6IGV2ZXJ5IGdyb3VwIHNoaXBzIHRoZSBzYW1lIE5leHQuanNcbiAgICogcnVudGltZSwgc28gc3BsaXR0aW5nIG9ubHkgbW92ZXMgcm91dGUtbG9jYWwgY29kZS5cbiAgICpcbiAgICogQHNlZSBOZXh0anNGdW5jdGlvbkdyb3VwIGZvciB0aGUgcGF0dGVybiBncmFtbWFyIGFuZCBpdHMgbGltaXRzLiBBUEkgR2F0ZXdheVxuICAgKiBjb3VsZCBleHByZXNzIG1vcmUgdGhhbiBDbG91ZEZyb250IGNhbiwgYnV0IHRoZSBncmFtbWFyIGlzIGRlbGliZXJhdGVseSB0aGVcbiAgICogc2FtZSBpbiBib3RoIHNvIHN3aXRjaGluZyBkZXBsb3ltZW50IHR5cGUgbmV2ZXIgcmVncm91cHMgcm91dGVzLlxuICAgKiBAZGVmYXVsdCAtIG9uZSBmdW5jdGlvbiBzZXJ2ZXMgZXZlcnkgcm91dGVcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uR3JvdXBzPzogTmV4dGpzRnVuY3Rpb25Hcm91cFtdO1xuICAvKipcbiAgICogT3ZlcnJpZGUgcHJvcHMgb2YgYW55IGNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlcz86IE5leHRqc1JlZ2lvbmFsRnVuY3Rpb25zT3ZlcnJpZGVzO1xufVxuXG4vKipcbiAqIERlcGxveSBOZXh0LmpzIHJlZ2lvbmFsbHkgd2l0aCBmdW5jdGlvbnMuIFVzZXMgQVBJIEdhdGV3YXkgUkVTVCBBUElcbiAqIGZvciByb3V0aW5nIHJlcXVlc3RzIGFuZCBBV1MgTGFtYmRhIEZ1bmN0aW9ucyBmb3Igc2VydmVyLXNpZGUgcmVuZGVyaW5nLlxuICovXG5leHBvcnQgY2xhc3MgTmV4dGpzUmVnaW9uYWxGdW5jdGlvbnMgZXh0ZW5kcyBOZXh0anNCYXNlQ29uc3RydWN0IHtcbiAgbmV4dGpzRnVuY3Rpb25zOiBOZXh0anNGdW5jdGlvbnM7XG4gIG5leHRqc0FwaTogTmV4dGpzQXBpO1xuICBuZXh0anNQb3N0RGVwbG95OiBOZXh0anNQb3N0RGVwbG95O1xuICBnZXQgdXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmV4dGpzQXBpLnVybDtcbiAgfVxuXG4gIHByaXZhdGUgcHJvcHM6IE5leHRqc1JlZ2lvbmFsRnVuY3Rpb25zUHJvcHM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBOZXh0anNSZWdpb25hbEZ1bmN0aW9uc1Byb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzLCBOZXh0anNUeXBlLlJFR0lPTkFMX0ZVTkNUSU9OUyk7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgdGhpcy5uZXh0anNGdW5jdGlvbnMgPSB0aGlzLmNyZWF0ZU5leHRqc0Z1bmN0aW9ucygpO1xuICAgIHRoaXMubmV4dGpzQXBpID0gdGhpcy5jcmVhdGVOZXh0anNBcGkoKTtcbiAgICB0aGlzLm5leHRqc1Bvc3REZXBsb3kgPSB0aGlzLmNyZWF0ZU5leHRqc1Bvc3REZXBsb3koKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTmV4dGpzQXBpKCkge1xuICAgIHJldHVybiBuZXcgTmV4dGpzQXBpKHRoaXMsIFwiTmV4dGpzQXBpXCIsIHtcbiAgICAgIHN0YXRpY0Fzc2V0c0J1Y2tldDogdGhpcy5uZXh0anNTdGF0aWNBc3NldHMuYnVja2V0LFxuICAgICAgc3RhdGljQXNzZXRzS2V5UHJlZml4OiB0aGlzLm5leHRqc1N0YXRpY0Fzc2V0cy5rZXlQcmVmaXgsXG4gICAgICBzZXJ2ZXJGdW5jdGlvbjogdGhpcy5uZXh0anNGdW5jdGlvbnMuZnVuY3Rpb24sXG4gICAgICBiYXNlUGF0aDogdGhpcy5yZXNvbHZlZEJhc2VQYXRoLFxuICAgICAgb3ZlcnJpZGVzOiB0aGlzLnByb3BzLm92ZXJyaWRlcz8ubmV4dGpzQXBpLFxuICAgICAgcHVibGljRGlyRW50cmllczogdGhpcy5uZXh0anNCdWlsZC5wdWJsaWNEaXJFbnRyaWVzLFxuICAgICAgc2VydmljZVdvcmtlckFsbG93ZWQ6IHRoaXMuc2VydmljZVdvcmtlckFsbG93ZWQsXG4gICAgICAvLyBgc2VydmVyRnVuY3Rpb25gIGFib3ZlIGlzIHRoZSBkZWZhdWx0IGdyb3VwJ3MsIHdoaWNoIHRoZSBge3Byb3h5K31gXG4gICAgICAvLyBjYXRjaC1hbGwgcmVhY2hlczsgdGhlIHJlc3QgZ2V0IHJlc291cmNlcyBvZiB0aGVpciBvd24uXG4gICAgICBmdW5jdGlvbkdyb3VwczogdGhpcy5uZXh0anNGdW5jdGlvbnMuZnVuY3Rpb25Hcm91cHMuZmlsdGVyKFxuICAgICAgICAoZ3JvdXApID0+IGdyb3VwLm5hbWUgIT09IERFRkFVTFRfRlVOQ1RJT05fR1JPVVAsXG4gICAgICApLFxuICAgICAgZnVuY3Rpb25Hcm91cEJlaGF2aW9yczogdGhpcy5uZXh0anNCdWlsZC5mdW5jdGlvbkdyb3VwQmVoYXZpb3JzLFxuICAgICAgLi4udGhpcy5wcm9wcy5vdmVycmlkZXM/Lm5leHRqc1JlZ2lvbmFsRnVuY3Rpb25zPy5uZXh0anNBcGlQcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -37036,7 +37036,7 @@ var require_package = __commonJS({
37036
37036
  publishConfig: {
37037
37037
  access: "public"
37038
37038
  },
37039
- version: "0.7.13",
37039
+ version: "0.7.14",
37040
37040
  packageManager: "pnpm@10.32.1",
37041
37041
  jest: {
37042
37042
  coverageProvider: "v8",
@@ -37036,7 +37036,7 @@ var require_package = __commonJS({
37036
37036
  publishConfig: {
37037
37037
  access: "public"
37038
37038
  },
37039
- version: "0.7.13",
37039
+ version: "0.7.14",
37040
37040
  packageManager: "pnpm@10.32.1",
37041
37041
  jest: {
37042
37042
  coverageProvider: "v8",
package/package.json CHANGED
@@ -85,7 +85,7 @@
85
85
  "publishConfig": {
86
86
  "access": "public"
87
87
  },
88
- "version": "0.7.13",
88
+ "version": "0.7.14",
89
89
  "jest": {
90
90
  "coverageProvider": "v8",
91
91
  "testPathIgnorePatterns": [
@@ -150,19 +150,21 @@ with a shared stack named `hrns-shard-<n>` (with the type's infix) and each
150
150
  running its own slice of that type's file list.
151
151
 
152
152
  A run of one type starts all its shards at once. A run of `all` (the schedule)
153
- lists 45 jobs, Global Functions first, then Regional Functions, Regional
154
- Containers and Global Containers, and runs at most 10 at a time, which is about 11
155
- hours end to end (about 95 shard-hours: Global Containers' 15 shards take about
156
- 2.5 hours each, the others about 2; the shards of one type end together, so the
157
- last five Global Containers shards run with half the slots idle). Ten is the peak
158
- a single-type run of the other three already reaches: no more CloudFront
153
+ lists 45 jobs, Global Functions first, then Regional Containers, Global
154
+ Containers and Regional Functions, and runs at most 10 at a time, which is about
155
+ 9.6 hours end to end (about 90 shard-hours: the Containers types' shards take
156
+ about 2.3 hours each, Global Functions' about 1.7 and Regional Functions' about
157
+ 1.5). Regional Functions goes last because its shards are the shortest, so they
158
+ fill the slots the others free at the end. Listing Global Containers last, as
159
+ the workflow once did, left its last five shards running with half the slots
160
+ idle, for about 10.2 hours. Ten is the peak a single-type run of the other three already reaches: no more CloudFront
159
161
  distributions at once than a Global Functions run, under the CloudFront
160
162
  response-headers-policy quota (3 per distribution), no more ECR pulls than a
161
163
  Regional Containers run, and no more of the org's concurrent jobs than the
162
164
  schedule has always taken. A slot goes to the next job as soon as one frees, so
163
165
  types overlap where one ends and the next begins; that is safe, because no two
164
166
  entries share a stack name. Results arrive in that order: a Global Functions
165
- regression shows up first, about 2 hours in.
167
+ regression shows up first, about 2 hours in, and Regional Functions' last.
166
168
 
167
169
  To check the workflow itself rather than compatibility, dispatch `all` with
168
170
  `shard_total: 1` and `test_filters: ../test/harness-smoke-manifest.json`: one
@@ -205,7 +207,7 @@ cancels. It is one group for every type, not one per type: each run's
205
207
  account-wide sweep could otherwise delete another type's idle-looking shard stack
206
208
  as that run warms into it. GitHub keeps only one _pending_ run per group, so
207
209
  dispatch a second type once the first has started, not while one is queued, or
208
- dispatch `all`. A dispatch on a schedule day waits behind the schedule's ~11
210
+ dispatch `all`. A dispatch on a schedule day waits behind the schedule's ~10
209
211
  hours. A pending run that gets cancelled that way, the scheduled one included,
210
212
  loses no sweep: every run sweeps, not just the scheduled one.
211
213