@liflig/cdk-cloudfront-auth 1.5.42 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,33 +1,8 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.RetrieveClientSecret = void 0;
27
- const iam = __importStar(require("aws-cdk-lib/aws-iam"));
28
- const cr = __importStar(require("aws-cdk-lib/custom-resources"));
29
- const constructs_1 = require("constructs");
30
- class RetrieveClientSecret extends constructs_1.Construct {
1
+ import * as iam from "aws-cdk-lib/aws-iam";
2
+ import * as cr from "aws-cdk-lib/custom-resources";
3
+ import { Construct } from "constructs";
4
+ export class RetrieveClientSecret extends Construct {
5
+ clientSecretValue;
31
6
  constructor(scope, id, props) {
32
7
  super(scope, id);
33
8
  const clientSecret = new cr.AwsCustomResource(this, "Resource", {
@@ -50,5 +25,4 @@ class RetrieveClientSecret extends constructs_1.Construct {
50
25
  this.clientSecretValue = clientSecret.getResponseField("UserPoolClient.ClientSecret");
51
26
  }
52
27
  }
53
- exports.RetrieveClientSecret = RetrieveClientSecret;
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LXNlY3JldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jbGllbnQtc2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EseURBQTBDO0FBQzFDLGlFQUFrRDtBQUNsRCwyQ0FBc0M7QUFPdEMsTUFBYSxvQkFBcUIsU0FBUSxzQkFBUztJQUdqRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdDO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUM5RCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLGdDQUFnQztnQkFDekMsTUFBTSxFQUFFLHdCQUF3QjtnQkFDaEMsVUFBVSxFQUFFO29CQUNWLFVBQVUsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVU7b0JBQ3JDLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQjtpQkFDeEM7Z0JBQ0Qsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FDMUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQ2hFO2FBQ0Y7WUFDRCxNQUFNLEVBQUUsRUFBRSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQztnQkFDaEQsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO29CQUN0QixPQUFPLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztvQkFDL0MsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7aUJBQ3hDLENBQUM7YUFDSCxDQUFDO1NBQ0gsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxnQkFBZ0IsQ0FDcEQsNkJBQTZCLENBQzlCLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUE5QkQsb0RBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29nbml0byBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZ25pdG9cIlxuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCJcbmltcG9ydCAqIGFzIGNyIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCJcblxuZXhwb3J0IGludGVyZmFjZSBSZXRyaWV2ZUNsaWVudFNlY3JldFByb3BzIHtcbiAgY2xpZW50OiBjb2duaXRvLklVc2VyUG9vbENsaWVudFxuICB1c2VyUG9vbDogY29nbml0by5JVXNlclBvb2xcbn1cblxuZXhwb3J0IGNsYXNzIFJldHJpZXZlQ2xpZW50U2VjcmV0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIGNsaWVudFNlY3JldFZhbHVlOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmV0cmlldmVDbGllbnRTZWNyZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGNvbnN0IGNsaWVudFNlY3JldCA9IG5ldyBjci5Bd3NDdXN0b21SZXNvdXJjZSh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiQ29nbml0b0lkZW50aXR5U2VydmljZVByb3ZpZGVyXCIsXG4gICAgICAgIGFjdGlvbjogXCJkZXNjcmliZVVzZXJQb29sQ2xpZW50XCIsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBVc2VyUG9vbElkOiBwcm9wcy51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgICAgICAgIENsaWVudElkOiBwcm9wcy5jbGllbnQudXNlclBvb2xDbGllbnRJZCxcbiAgICAgICAgfSxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjci5QaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgYCR7cHJvcHMudXNlclBvb2wudXNlclBvb2xJZH0tJHtwcm9wcy5jbGllbnQudXNlclBvb2xDbGllbnRJZH1gLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHBvbGljeTogY3IuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVN0YXRlbWVudHMoW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1wiY29nbml0by1pZHA6RGVzY3JpYmVVc2VyUG9vbENsaWVudFwiXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtwcm9wcy51c2VyUG9vbC51c2VyUG9vbEFybl0sXG4gICAgICAgIH0pLFxuICAgICAgXSksXG4gICAgfSlcblxuICAgIHRoaXMuY2xpZW50U2VjcmV0VmFsdWUgPSBjbGllbnRTZWNyZXQuZ2V0UmVzcG9uc2VGaWVsZChcbiAgICAgIFwiVXNlclBvb2xDbGllbnQuQ2xpZW50U2VjcmV0XCIsXG4gICAgKVxuICB9XG59XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LXNlY3JldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jbGllbnQtc2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxHQUFHLE1BQU0scUJBQXFCLENBQUE7QUFDMUMsT0FBTyxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBT3RDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxTQUFTO0lBQzFDLGlCQUFpQixDQUFRO0lBRWhDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0M7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixNQUFNLFlBQVksR0FBRyxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzlELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsZ0NBQWdDO2dCQUN6QyxNQUFNLEVBQUUsd0JBQXdCO2dCQUNoQyxVQUFVLEVBQUU7b0JBQ1YsVUFBVSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVTtvQkFDckMsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO2lCQUN4QztnQkFDRCxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUMxQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FDaEU7YUFDRjtZQUNELE1BQU0sRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDO2dCQUNoRCxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7b0JBQ3RCLE9BQU8sRUFBRSxDQUFDLG9DQUFvQyxDQUFDO29CQUMvQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztpQkFDeEMsQ0FBQzthQUNILENBQUM7U0FDSCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUNwRCw2QkFBNkIsQ0FDOUIsQ0FBQTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvZ25pdG8gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2duaXRvXCJcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiXG5pbXBvcnQgKiBhcyBjciBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cmlldmVDbGllbnRTZWNyZXRQcm9wcyB7XG4gIGNsaWVudDogY29nbml0by5JVXNlclBvb2xDbGllbnRcbiAgdXNlclBvb2w6IGNvZ25pdG8uSVVzZXJQb29sXG59XG5cbmV4cG9ydCBjbGFzcyBSZXRyaWV2ZUNsaWVudFNlY3JldCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyBjbGllbnRTZWNyZXRWYWx1ZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJldHJpZXZlQ2xpZW50U2VjcmV0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBjb25zdCBjbGllbnRTZWNyZXQgPSBuZXcgY3IuQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBvblVwZGF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkNvZ25pdG9JZGVudGl0eVNlcnZpY2VQcm92aWRlclwiLFxuICAgICAgICBhY3Rpb246IFwiZGVzY3JpYmVVc2VyUG9vbENsaWVudFwiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgVXNlclBvb2xJZDogcHJvcHMudXNlclBvb2wudXNlclBvb2xJZCxcbiAgICAgICAgICBDbGllbnRJZDogcHJvcHMuY2xpZW50LnVzZXJQb29sQ2xpZW50SWQsXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3IuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFxuICAgICAgICAgIGAke3Byb3BzLnVzZXJQb29sLnVzZXJQb29sSWR9LSR7cHJvcHMuY2xpZW50LnVzZXJQb29sQ2xpZW50SWR9YCxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICBwb2xpY3k6IGNyLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TdGF0ZW1lbnRzKFtcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFtcImNvZ25pdG8taWRwOkRlc2NyaWJlVXNlclBvb2xDbGllbnRcIl0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbcHJvcHMudXNlclBvb2wudXNlclBvb2xBcm5dLFxuICAgICAgICB9KSxcbiAgICAgIF0pLFxuICAgIH0pXG5cbiAgICB0aGlzLmNsaWVudFNlY3JldFZhbHVlID0gY2xpZW50U2VjcmV0LmdldFJlc3BvbnNlRmllbGQoXG4gICAgICBcIlVzZXJQb29sQ2xpZW50LkNsaWVudFNlY3JldFwiLFxuICAgIClcbiAgfVxufVxuIl19
@@ -1,33 +1,7 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.ClientUpdate = void 0;
27
- const iam = __importStar(require("aws-cdk-lib/aws-iam"));
28
- const cr = __importStar(require("aws-cdk-lib/custom-resources"));
29
- const constructs_1 = require("constructs");
30
- class ClientUpdate extends constructs_1.Construct {
1
+ import * as iam from "aws-cdk-lib/aws-iam";
2
+ import * as cr from "aws-cdk-lib/custom-resources";
3
+ import { Construct } from "constructs";
4
+ export class ClientUpdate extends Construct {
31
5
  constructor(scope, id, props) {
32
6
  super(scope, id);
33
7
  new cr.AwsCustomResource(this, "Resource", {
@@ -55,5 +29,4 @@ class ClientUpdate extends constructs_1.Construct {
55
29
  });
56
30
  }
57
31
  }
58
- exports.ClientUpdate = ClientUpdate;
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LXVwZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jbGllbnQtdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EseURBQTBDO0FBQzFDLGlFQUFrRDtBQUNsRCwyQ0FBc0M7QUFXdEMsTUFBYSxZQUFhLFNBQVEsc0JBQVM7SUFDekMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDekMsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxnQ0FBZ0M7Z0JBQ3pDLE1BQU0sRUFBRSxzQkFBc0I7Z0JBQzlCLFVBQVUsRUFBRTtvQkFDVixpQkFBaUIsRUFBRSxDQUFDLE1BQU0sQ0FBQztvQkFDM0IsK0JBQStCLEVBQUUsSUFBSTtvQkFDckMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtvQkFDbkQsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQ3JDLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQjtvQkFDdkMsWUFBWSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztvQkFDakMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztvQkFDOUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVTtpQkFDdEM7Z0JBQ0Qsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FDMUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQ2hFO2FBQ0Y7WUFDRCxNQUFNLEVBQUUsRUFBRSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQztnQkFDaEQsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO29CQUN0QixPQUFPLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7aUJBQ3hDLENBQUM7YUFDSCxDQUFDO1NBQ0gsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBOUJELG9DQThCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvZ25pdG8gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2duaXRvXCJcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiXG5pbXBvcnQgKiBhcyBjciBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiXG5cbmludGVyZmFjZSBDbGllbnRVcGRhdGVQcm9wcyB7XG4gIG9hdXRoU2NvcGVzOiBzdHJpbmdbXVxuICBjbGllbnQ6IGNvZ25pdG8uSVVzZXJQb29sQ2xpZW50XG4gIHVzZXJQb29sOiBjb2duaXRvLklVc2VyUG9vbFxuICBjYWxsYmFja1VybDogc3RyaW5nXG4gIHNpZ25PdXRVcmw6IHN0cmluZ1xuICBpZGVudGl0eVByb3ZpZGVyczogc3RyaW5nW11cbn1cblxuZXhwb3J0IGNsYXNzIENsaWVudFVwZGF0ZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDbGllbnRVcGRhdGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIG5ldyBjci5Bd3NDdXN0b21SZXNvdXJjZSh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiQ29nbml0b0lkZW50aXR5U2VydmljZVByb3ZpZGVyXCIsXG4gICAgICAgIGFjdGlvbjogXCJ1cGRhdGVVc2VyUG9vbENsaWVudFwiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgQWxsb3dlZE9BdXRoRmxvd3M6IFtcImNvZGVcIl0sXG4gICAgICAgICAgQWxsb3dlZE9BdXRoRmxvd3NVc2VyUG9vbENsaWVudDogdHJ1ZSxcbiAgICAgICAgICBTdXBwb3J0ZWRJZGVudGl0eVByb3ZpZGVyczogcHJvcHMuaWRlbnRpdHlQcm92aWRlcnMsXG4gICAgICAgICAgQWxsb3dlZE9BdXRoU2NvcGVzOiBwcm9wcy5vYXV0aFNjb3BlcyxcbiAgICAgICAgICBDbGllbnRJZDogcHJvcHMuY2xpZW50LnVzZXJQb29sQ2xpZW50SWQsXG4gICAgICAgICAgQ2FsbGJhY2tVUkxzOiBbcHJvcHMuY2FsbGJhY2tVcmxdLFxuICAgICAgICAgIExvZ291dFVSTHM6IFtwcm9wcy5zaWduT3V0VXJsXSxcbiAgICAgICAgICBVc2VyUG9vbElkOiBwcm9wcy51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgICAgICB9LFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGNyLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihcbiAgICAgICAgICBgJHtwcm9wcy51c2VyUG9vbC51c2VyUG9vbElkfS0ke3Byb3BzLmNsaWVudC51c2VyUG9vbENsaWVudElkfWAsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXCJjb2duaXRvLWlkcDpVcGRhdGVVc2VyUG9vbENsaWVudFwiXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtwcm9wcy51c2VyUG9vbC51c2VyUG9vbEFybl0sXG4gICAgICAgIH0pLFxuICAgICAgXSksXG4gICAgfSlcbiAgfVxufVxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LXVwZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jbGllbnQtdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxHQUFHLE1BQU0scUJBQXFCLENBQUE7QUFDMUMsT0FBTyxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBV3RDLE1BQU0sT0FBTyxZQUFhLFNBQVEsU0FBUztJQUN6QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXdCO1FBQ2hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUN6QyxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLGdDQUFnQztnQkFDekMsTUFBTSxFQUFFLHNCQUFzQjtnQkFDOUIsVUFBVSxFQUFFO29CQUNWLGlCQUFpQixFQUFFLENBQUMsTUFBTSxDQUFDO29CQUMzQiwrQkFBK0IsRUFBRSxJQUFJO29CQUNyQywwQkFBMEIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO29CQUNuRCxrQkFBa0IsRUFBRSxLQUFLLENBQUMsV0FBVztvQkFDckMsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO29CQUN2QyxZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO29CQUNqQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO29CQUM5QixVQUFVLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVO2lCQUN0QztnQkFDRCxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUMxQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FDaEU7YUFDRjtZQUNELE1BQU0sRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDO2dCQUNoRCxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7b0JBQ3RCLE9BQU8sRUFBRSxDQUFDLGtDQUFrQyxDQUFDO29CQUM3QyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztpQkFDeEMsQ0FBQzthQUNILENBQUM7U0FDSCxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb2duaXRvIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29nbml0b1wiXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIlxuaW1wb3J0ICogYXMgY3IgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIlxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIlxuXG5pbnRlcmZhY2UgQ2xpZW50VXBkYXRlUHJvcHMge1xuICBvYXV0aFNjb3Blczogc3RyaW5nW11cbiAgY2xpZW50OiBjb2duaXRvLklVc2VyUG9vbENsaWVudFxuICB1c2VyUG9vbDogY29nbml0by5JVXNlclBvb2xcbiAgY2FsbGJhY2tVcmw6IHN0cmluZ1xuICBzaWduT3V0VXJsOiBzdHJpbmdcbiAgaWRlbnRpdHlQcm92aWRlcnM6IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBjbGFzcyBDbGllbnRVcGRhdGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2xpZW50VXBkYXRlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBuZXcgY3IuQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBvblVwZGF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkNvZ25pdG9JZGVudGl0eVNlcnZpY2VQcm92aWRlclwiLFxuICAgICAgICBhY3Rpb246IFwidXBkYXRlVXNlclBvb2xDbGllbnRcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIEFsbG93ZWRPQXV0aEZsb3dzOiBbXCJjb2RlXCJdLFxuICAgICAgICAgIEFsbG93ZWRPQXV0aEZsb3dzVXNlclBvb2xDbGllbnQ6IHRydWUsXG4gICAgICAgICAgU3VwcG9ydGVkSWRlbnRpdHlQcm92aWRlcnM6IHByb3BzLmlkZW50aXR5UHJvdmlkZXJzLFxuICAgICAgICAgIEFsbG93ZWRPQXV0aFNjb3BlczogcHJvcHMub2F1dGhTY29wZXMsXG4gICAgICAgICAgQ2xpZW50SWQ6IHByb3BzLmNsaWVudC51c2VyUG9vbENsaWVudElkLFxuICAgICAgICAgIENhbGxiYWNrVVJMczogW3Byb3BzLmNhbGxiYWNrVXJsXSxcbiAgICAgICAgICBMb2dvdXRVUkxzOiBbcHJvcHMuc2lnbk91dFVybF0sXG4gICAgICAgICAgVXNlclBvb2xJZDogcHJvcHMudXNlclBvb2wudXNlclBvb2xJZCxcbiAgICAgICAgfSxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjci5QaHlzaWNhbFJlc291cmNlSWQub2YoXG4gICAgICAgICAgYCR7cHJvcHMudXNlclBvb2wudXNlclBvb2xJZH0tJHtwcm9wcy5jbGllbnQudXNlclBvb2xDbGllbnRJZH1gLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHBvbGljeTogY3IuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVN0YXRlbWVudHMoW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1wiY29nbml0by1pZHA6VXBkYXRlVXNlclBvb2xDbGllbnRcIl0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbcHJvcHMudXNlclBvb2wudXNlclBvb2xBcm5dLFxuICAgICAgICB9KSxcbiAgICAgIF0pLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
@@ -1,48 +1,34 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.CloudFrontAuth = void 0;
27
- const cloudfront = __importStar(require("aws-cdk-lib/aws-cloudfront"));
28
- const aws_cloudfront_1 = require("aws-cdk-lib/aws-cloudfront");
29
- const cdk_lambda_config_1 = require("@liflig/cdk-lambda-config");
30
- const client_secret_1 = require("./client-secret");
31
- const client_update_1 = require("./client-update");
32
- const generate_secret_1 = require("./generate-secret");
33
- const constructs_1 = require("constructs");
1
+ import * as cloudfront from "aws-cdk-lib/aws-cloudfront";
2
+ import { ViewerProtocolPolicy, } from "aws-cdk-lib/aws-cloudfront";
3
+ import { LambdaConfig } from "@liflig/cdk-lambda-config";
4
+ import { RetrieveClientSecret } from "./client-secret";
5
+ import { ClientUpdate } from "./client-update";
6
+ import { GenerateSecret } from "./generate-secret";
7
+ import { Construct } from "constructs";
34
8
  /**
35
9
  * Configure previously deployed lambda functions, Cognito client
36
10
  * and CloudFront distribution.
37
11
  */
38
- class CloudFrontAuth extends constructs_1.Construct {
12
+ export class CloudFrontAuth extends Construct {
13
+ callbackPath;
14
+ signOutRedirectTo;
15
+ signOutPath;
16
+ refreshAuthPath;
17
+ userPool;
18
+ clientCreated;
19
+ client;
20
+ checkAuthFn;
21
+ httpHeadersFn;
22
+ parseAuthFn;
23
+ refreshAuthFn;
24
+ signOutFn;
25
+ oauthScopes;
39
26
  constructor(scope, id, props) {
40
- var _a, _b, _c, _d, _e, _f;
41
27
  super(scope, id);
42
- this.callbackPath = (_a = props.callbackPath) !== null && _a !== void 0 ? _a : "/auth/callback";
43
- this.signOutRedirectTo = (_b = props.signOutRedirectTo) !== null && _b !== void 0 ? _b : "/";
44
- this.signOutPath = (_c = props.signOutPath) !== null && _c !== void 0 ? _c : "/auth/sign-out";
45
- this.refreshAuthPath = (_d = props.refreshAuthPath) !== null && _d !== void 0 ? _d : "/auth/refresh";
28
+ this.callbackPath = props.callbackPath ?? "/auth/callback";
29
+ this.signOutRedirectTo = props.signOutRedirectTo ?? "/";
30
+ this.signOutPath = props.signOutPath ?? "/auth/sign-out";
31
+ this.refreshAuthPath = props.refreshAuthPath ?? "/auth/refresh";
46
32
  this.oauthScopes = [
47
33
  "phone",
48
34
  "email",
@@ -53,24 +39,25 @@ class CloudFrontAuth extends constructs_1.Construct {
53
39
  this.userPool = props.userPool;
54
40
  this.clientCreated = !props.client;
55
41
  this.client =
56
- (_e = props.client) !== null && _e !== void 0 ? _e : props.userPool.addClient("UserPoolClient", {
57
- // Note: The following must be kept in sync with the API
58
- // call performed in ClientUpdate.
59
- authFlows: {
60
- userPassword: true,
61
- userSrp: true,
62
- },
63
- oAuth: {
64
- flows: {
65
- authorizationCodeGrant: true,
42
+ props.client ??
43
+ props.userPool.addClient("UserPoolClient", {
44
+ // Note: The following must be kept in sync with the API
45
+ // call performed in ClientUpdate.
46
+ authFlows: {
47
+ userPassword: true,
48
+ userSrp: true,
66
49
  },
67
- },
68
- preventUserExistenceErrors: true,
69
- generateSecret: true,
70
- });
71
- const nonceSigningSecret = new generate_secret_1.GenerateSecret(this, "NonceSigningSecret")
50
+ oAuth: {
51
+ flows: {
52
+ authorizationCodeGrant: true,
53
+ },
54
+ },
55
+ preventUserExistenceErrors: true,
56
+ generateSecret: true,
57
+ });
58
+ const nonceSigningSecret = new GenerateSecret(this, "NonceSigningSecret")
72
59
  .value;
73
- const { clientSecretValue } = new client_secret_1.RetrieveClientSecret(this, "ClientSecret", {
60
+ const { clientSecretValue } = new RetrieveClientSecret(this, "ClientSecret", {
74
61
  client: this.client,
75
62
  userPool: this.userPool,
76
63
  });
@@ -84,7 +71,7 @@ class CloudFrontAuth extends constructs_1.Construct {
84
71
  "X-Content-Type-Options": "nosniff",
85
72
  "Cache-Control": "no-cache",
86
73
  },
87
- logLevel: (_f = props.logLevel) !== null && _f !== void 0 ? _f : "warn",
74
+ logLevel: props.logLevel ?? "warn",
88
75
  userPoolId: this.userPool.userPoolId,
89
76
  clientId: this.client.userPoolClientId,
90
77
  clientSecret: clientSecretValue,
@@ -110,23 +97,23 @@ class CloudFrontAuth extends constructs_1.Construct {
110
97
  },
111
98
  nonceSigningSecret,
112
99
  };
113
- this.checkAuthFn = new cdk_lambda_config_1.LambdaConfig(this, "CheckAuthFn", {
100
+ this.checkAuthFn = new LambdaConfig(this, "CheckAuthFn", {
114
101
  function: props.authLambdas.checkAuthFn.get(this, "CheckAuthFnImport"),
115
102
  config,
116
103
  }).version;
117
- this.httpHeadersFn = new cdk_lambda_config_1.LambdaConfig(this, "HttpHeadersFn", {
104
+ this.httpHeadersFn = new LambdaConfig(this, "HttpHeadersFn", {
118
105
  function: props.authLambdas.httpHeadersFn.get(this, "HttpHeadersFnImport"),
119
106
  config,
120
107
  }).version;
121
- this.parseAuthFn = new cdk_lambda_config_1.LambdaConfig(this, "ParseAuthFn", {
108
+ this.parseAuthFn = new LambdaConfig(this, "ParseAuthFn", {
122
109
  function: props.authLambdas.parseAuthFn.get(this, "ParseAuthFnImport"),
123
110
  config,
124
111
  }).version;
125
- this.refreshAuthFn = new cdk_lambda_config_1.LambdaConfig(this, "RefreshAuthFn", {
112
+ this.refreshAuthFn = new LambdaConfig(this, "RefreshAuthFn", {
126
113
  function: props.authLambdas.refreshAuthFn.get(this, "RefreshAuthFnImport"),
127
114
  config,
128
115
  }).version;
129
- this.signOutFn = new cdk_lambda_config_1.LambdaConfig(this, "SignOutFn", {
116
+ this.signOutFn = new LambdaConfig(this, "SignOutFn", {
130
117
  function: props.authLambdas.signOutFn.get(this, "SignOutFnImport"),
131
118
  config,
132
119
  }).version;
@@ -177,7 +164,7 @@ class CloudFrontAuth extends constructs_1.Construct {
177
164
  [path]: {
178
165
  origin,
179
166
  compress: true,
180
- viewerProtocolPolicy: aws_cloudfront_1.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
167
+ viewerProtocolPolicy: ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
181
168
  edgeLambdas: [
182
169
  {
183
170
  eventType: cloudfront.LambdaEdgeEventType.VIEWER_REQUEST,
@@ -219,13 +206,13 @@ class CloudFrontAuth extends constructs_1.Construct {
219
206
  * This is to be used with Distribution.
220
207
  */
221
208
  createProtectedBehavior(origin, options) {
222
- if ((options === null || options === void 0 ? void 0 : options.edgeLambdas) != null) {
209
+ if (options?.edgeLambdas != null) {
223
210
  throw Error("User-defined edgeLambdas is currently not supported");
224
211
  }
225
212
  return {
226
213
  origin,
227
214
  compress: true,
228
- viewerProtocolPolicy: aws_cloudfront_1.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
215
+ viewerProtocolPolicy: ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
229
216
  edgeLambdas: [
230
217
  {
231
218
  eventType: cloudfront.LambdaEdgeEventType.VIEWER_REQUEST,
@@ -248,20 +235,19 @@ class CloudFrontAuth extends constructs_1.Construct {
248
235
  * How can we avoid this scenario?
249
236
  */
250
237
  updateClient(id, props) {
251
- var _a;
252
238
  if (!this.clientCreated) {
253
239
  throw new Error("You cannot use updateClient with a user-provided Cognito Client " +
254
240
  "since it would override the user-provided settings");
255
241
  }
256
- return new client_update_1.ClientUpdate(this, id, {
242
+ return new ClientUpdate(this, id, {
257
243
  client: this.client,
258
244
  userPool: this.userPool,
259
245
  signOutUrl: props.signOutUrl,
260
246
  callbackUrl: props.callbackUrl,
261
247
  oauthScopes: this.oauthScopes,
262
- identityProviders: (_a = props.identityProviders) !== null && _a !== void 0 ? _a : ["COGNITO"].concat(this.userPool.identityProviders.map((it) => it.providerName)),
248
+ identityProviders: props.identityProviders ??
249
+ ["COGNITO"].concat(this.userPool.identityProviders.map((it) => it.providerName)),
263
250
  });
264
251
  }
265
252
  }
266
- exports.CloudFrontAuth = CloudFrontAuth;
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nsb3VkZnJvbnQtYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVFQUF3RDtBQUN4RCwrREFLbUM7QUFJbkMsaUVBQXdEO0FBQ3hELG1EQUFzRDtBQUN0RCxtREFBOEM7QUFDOUMsdURBQWtEO0FBR2xELDJDQUFzQztBQWlFdEM7OztHQUdHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUFrQjNDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7O1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFBLEtBQUssQ0FBQyxZQUFZLG1DQUFJLGdCQUFnQixDQUFBO1FBQzFELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFBLEtBQUssQ0FBQyxpQkFBaUIsbUNBQUksR0FBRyxDQUFBO1FBQ3ZELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBQSxLQUFLLENBQUMsV0FBVyxtQ0FBSSxnQkFBZ0IsQ0FBQTtRQUN4RCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQUEsS0FBSyxDQUFDLGVBQWUsbUNBQUksZUFBZSxDQUFBO1FBRS9ELElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDakIsT0FBTztZQUNQLE9BQU87WUFDUCxTQUFTO1lBQ1QsUUFBUTtZQUNSLCtCQUErQjtTQUNoQyxDQUFBO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFBO1FBRTlCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxNQUFNO1lBQ1QsTUFBQSxLQUFLLENBQUMsTUFBTSxtQ0FDWixLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDekMs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QjtZQUM1RCxXQUFXLEVBQUU7Z0JBQ1g7b0JBQ0UsU0FBUyxFQUFFLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjO29CQUN4RCxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVc7aUJBQ2xDO2dCQUNEO29CQUNFLFNBQVMsRUFBRSxVQUFVLENBQUMsbUJBQW1CLENBQUMsZUFBZTtvQkFDekQsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhO2lCQUNwQzthQUNGO1lBQ0QsR0FBRyxPQUFPO1NBQ1gsQ0FBQTtJQUNILENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksWUFBWSxDQUFDLEVBQVUsRUFBRSxLQUF3Qjs7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUNiLGtFQUFrRTtnQkFDaEUsb0RBQW9ELENBQ3ZELENBQUE7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLDRCQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNoQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGlCQUFpQixFQUNmLE1BQUEsS0FBSyxDQUFDLGlCQUFpQixtQ0FDdkIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQzdEO1NBQ0osQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBblNELHdDQW1TQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCJcbmltcG9ydCB7XG4gIEFkZEJlaGF2aW9yT3B0aW9ucyxcbiAgQmVoYXZpb3JPcHRpb25zLFxuICBJT3JpZ2luLFxuICBWaWV3ZXJQcm90b2NvbFBvbGljeSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCJcbmltcG9ydCAqIGFzIGNvZ25pdG8gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2duaXRvXCJcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiXG5pbXBvcnQgeyBJVmVyc2lvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCJcbmltcG9ydCB7IExhbWJkYUNvbmZpZyB9IGZyb20gXCJAbGlmbGlnL2Nkay1sYW1iZGEtY29uZmlnXCJcbmltcG9ydCB7IFJldHJpZXZlQ2xpZW50U2VjcmV0IH0gZnJvbSBcIi4vY2xpZW50LXNlY3JldFwiXG5pbXBvcnQgeyBDbGllbnRVcGRhdGUgfSBmcm9tIFwiLi9jbGllbnQtdXBkYXRlXCJcbmltcG9ydCB7IEdlbmVyYXRlU2VjcmV0IH0gZnJvbSBcIi4vZ2VuZXJhdGUtc2VjcmV0XCJcbmltcG9ydCB7IFN0b3JlZENvbmZpZyB9IGZyb20gXCIuL2hhbmRsZXJzL3V0aWwvY29uZmlnXCJcbmltcG9ydCB7IEF1dGhMYW1iZGFzIH0gZnJvbSBcIi4vbGFtYmRhc1wiXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGcm9udEF1dGhQcm9wcyB7XG4gIC8qKlxuICAgKiBDb2duaXRvIENsaWVudCB0aGF0IHdpbGwgYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgdGhlIHVzZXIuXG4gICAqXG4gICAqIElmIGEgY3VzdG9tIGNsaWVudCBpcyBwcm92aWRlZCwgdGhlIHVwZGF0ZUNsaWVudCBtZXRob2QgY2Fubm90XG4gICAqIGJlIHVzZWQgc2luY2Ugd2UgY2Fubm90IGtub3cgd2hpY2ggcGFyYW1ldGVycyB3YXMgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmV3IGNsaWVudCB3aWxsIGJlIGdlbmVyYXRlZFxuICAgKi9cbiAgY2xpZW50PzogY29nbml0by5Vc2VyUG9vbENsaWVudFxuICB1c2VyUG9vbDogY29nbml0by5JVXNlclBvb2xcbiAgLyoqXG4gICAqIFRoZSBkb21haW4gdGhhdCBpcyB1c2VkIGZvciBDb2duaXRvIEF1dGguXG4gICAqXG4gICAqIElmIG5vdCB1c2luZyBjdXN0b20gZG9tYWlucyB0aGlzIHdpbGwgYmUgYSBuYW1lIHVuZGVyIGFtYXpvbmNvZ25pdG8uY29tLlxuICAgKlxuICAgKiBAZXhhbXBsZSBgJHtkb21haW4uZG9tYWluTmFtZX0uYXV0aC4ke3JlZ2lvbn0uYW1hem9uY29nbml0by5jb21gXG4gICAqL1xuICBjb2duaXRvQXV0aERvbWFpbjogc3RyaW5nXG4gIGF1dGhMYW1iZGFzOiBBdXRoTGFtYmRhc1xuICAvKipcbiAgICogQGRlZmF1bHQgL2F1dGgvY2FsbGJhY2tcbiAgICovXG4gIGNhbGxiYWNrUGF0aD86IHN0cmluZ1xuICAvKipcbiAgICogQGRlZmF1bHQgL1xuICAgKi9cbiAgc2lnbk91dFJlZGlyZWN0VG8/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZWZhdWx0IC9hdXRoL3NpZ24tb3V0XG4gICAqL1xuICBzaWduT3V0UGF0aD86IHN0cmluZ1xuICAvKipcbiAgICogQGRlZmF1bHQgL2F1dGgvcmVmcmVzaFxuICAgKi9cbiAgcmVmcmVzaEF1dGhQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBMb2cgbGV2ZWwuXG4gICAqXG4gICAqIEEgbG9nIGxldmVsIG9mIGRlYnVnIHdpbGwgbG9nIHNlY3JldHMgYW5kIHNob3VsZCBvbmx5IGJlIHVzZWQgaW5cbiAgICogYSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgd2FyblxuICAgKi9cbiAgbG9nTGV2ZWw/OiBcIm5vbmVcIiB8IFwiZXJyb3JcIiB8IFwid2FyblwiIHwgXCJpbmZvXCIgfCBcImRlYnVnXCJcbiAgLyoqXG4gICAqIFJlcXVpcmUgdGhlIHVzZXIgdG8gYmUgcGFydCBvZiBhIHNwZWNpZmljIENvZ25pdG8gZ3JvdXAgdG9cbiAgICogYWNjZXNzIGFueSByZXNvdXJjZS5cbiAgICovXG4gIHJlcXVpcmVHcm91cEFueU9mPzogc3RyaW5nW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDbGllbnRQcm9wcyB7XG4gIHNpZ25PdXRVcmw6IHN0cmluZ1xuICBjYWxsYmFja1VybDogc3RyaW5nXG4gIC8qKlxuICAgKiBMaXN0IG9mIGlkZW50aXR5IHByb3ZpZGVycyB1c2VkIGZvciB0aGUgY2xpZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIENPR05JVE8gYW5kIGlkZW50aXR5IHByb3ZpZGVycyByZWdpc3RlcmVkIGluIHRoZSBVc2VyUG9vbCBjb25zdHJ1Y3RcbiAgICovXG4gIGlkZW50aXR5UHJvdmlkZXJzPzogc3RyaW5nW11cbn1cblxuLyoqXG4gKiBDb25maWd1cmUgcHJldmlvdXNseSBkZXBsb3llZCBsYW1iZGEgZnVuY3Rpb25zLCBDb2duaXRvIGNsaWVudFxuICogYW5kIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRGcm9udEF1dGggZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgY2FsbGJhY2tQYXRoOiBzdHJpbmdcbiAgcHVibGljIHJlYWRvbmx5IHNpZ25PdXRSZWRpcmVjdFRvOiBzdHJpbmdcbiAgcHVibGljIHJlYWRvbmx5IHNpZ25PdXRQYXRoOiBzdHJpbmdcbiAgcHVibGljIHJlYWRvbmx5IHJlZnJlc2hBdXRoUGF0aDogc3RyaW5nXG5cbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyUG9vbDogY29nbml0by5JVXNlclBvb2xcbiAgcHJpdmF0ZSByZWFkb25seSBjbGllbnRDcmVhdGVkOiBib29sZWFuXG4gIHB1YmxpYyByZWFkb25seSBjbGllbnQ6IGNvZ25pdG8uVXNlclBvb2xDbGllbnRcblxuICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrQXV0aEZuOiBsYW1iZGEuSVZlcnNpb25cbiAgcHJpdmF0ZSByZWFkb25seSBodHRwSGVhZGVyc0ZuOiBsYW1iZGEuSVZlcnNpb25cbiAgcHJpdmF0ZSByZWFkb25seSBwYXJzZUF1dGhGbjogbGFtYmRhLklWZXJzaW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVmcmVzaEF1dGhGbjogbGFtYmRhLklWZXJzaW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgc2lnbk91dEZuOiBsYW1iZGEuSVZlcnNpb25cblxuICBwcml2YXRlIHJlYWRvbmx5IG9hdXRoU2NvcGVzOiBzdHJpbmdbXVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDbG91ZEZyb250QXV0aFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgdGhpcy5jYWxsYmFja1BhdGggPSBwcm9wcy5jYWxsYmFja1BhdGggPz8gXCIvYXV0aC9jYWxsYmFja1wiXG4gICAgdGhpcy5zaWduT3V0UmVkaXJlY3RUbyA9IHByb3BzLnNpZ25PdXRSZWRpcmVjdFRvID8/IFwiL1wiXG4gICAgdGhpcy5zaWduT3V0UGF0aCA9IHByb3BzLnNpZ25PdXRQYXRoID8/IFwiL2F1dGgvc2lnbi1vdXRcIlxuICAgIHRoaXMucmVmcmVzaEF1dGhQYXRoID0gcHJvcHMucmVmcmVzaEF1dGhQYXRoID8/IFwiL2F1dGgvcmVmcmVzaFwiXG5cbiAgICB0aGlzLm9hdXRoU2NvcGVzID0gW1xuICAgICAgXCJwaG9uZVwiLFxuICAgICAgXCJlbWFpbFwiLFxuICAgICAgXCJwcm9maWxlXCIsXG4gICAgICBcIm9wZW5pZFwiLFxuICAgICAgXCJhd3MuY29nbml0by5zaWduaW4udXNlci5hZG1pblwiLFxuICAgIF1cblxuICAgIHRoaXMudXNlclBvb2wgPSBwcm9wcy51c2VyUG9vbFxuXG4gICAgdGhpcy5jbGllbnRDcmVhdGVkID0gIXByb3BzLmNsaWVudFxuICAgIHRoaXMuY2xpZW50ID1cbiAgICAgIHByb3BzLmNsaWVudCA/P1xuICAgICAgcHJvcHMudXNlclBvb2wuYWRkQ2xpZW50KFwiVXNlclBvb2xDbGllbnRcIiwge1xuICAgICAgICAvLyBOb3RlOiBUaGUgZm9sbG93aW5nIG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggdGhlIEFQSVxuICAgICAgICAvLyBjYWxsIHBlcmZvcm1lZCBpbiBDbGllbnRVcGRhdGUuXG4gICAgICAgIGF1dGhGbG93czoge1xuICAgICAgICAgIHVzZXJQYXNzd29yZDogdHJ1ZSxcbiAgICAgICAgICB1c2VyU3JwOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBvQXV0aDoge1xuICAgICAgICAgIGZsb3dzOiB7XG4gICAgICAgICAgICBhdXRob3JpemF0aW9uQ29kZUdyYW50OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHByZXZlbnRVc2VyRXhpc3RlbmNlRXJyb3JzOiB0cnVlLFxuICAgICAgICBnZW5lcmF0ZVNlY3JldDogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICBjb25zdCBub25jZVNpZ25pbmdTZWNyZXQgPSBuZXcgR2VuZXJhdGVTZWNyZXQodGhpcywgXCJOb25jZVNpZ25pbmdTZWNyZXRcIilcbiAgICAgIC52YWx1ZVxuXG4gICAgY29uc3QgeyBjbGllbnRTZWNyZXRWYWx1ZSB9ID0gbmV3IFJldHJpZXZlQ2xpZW50U2VjcmV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwiQ2xpZW50U2VjcmV0XCIsXG4gICAgICB7XG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHVzZXJQb29sOiB0aGlzLnVzZXJQb29sLFxuICAgICAgfSxcbiAgICApXG5cbiAgICBjb25zdCBjb25maWc6IFN0b3JlZENvbmZpZyA9IHtcbiAgICAgIGh0dHBIZWFkZXJzOiB7XG4gICAgICAgIFwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIjpcbiAgICAgICAgICBcImRlZmF1bHQtc3JjICdub25lJzsgaW1nLXNyYyAnc2VsZic7IHNjcmlwdC1zcmMgJ3NlbGYnOyBzdHlsZS1zcmMgJ3NlbGYnICd1bnNhZmUtaW5saW5lJzsgb2JqZWN0LXNyYyAnbm9uZSc7IGNvbm5lY3Qtc3JjICdzZWxmJ1wiLFxuICAgICAgICBcIlN0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHlcIjpcbiAgICAgICAgICBcIm1heC1hZ2U9MzE1MzYwMDA7IGluY2x1ZGVTdWJkb21haW5zOyBwcmVsb2FkXCIsXG4gICAgICAgIFwiUmVmZXJyZXItUG9saWN5XCI6IFwic2FtZS1vcmlnaW5cIixcbiAgICAgICAgXCJYLVhTUy1Qcm90ZWN0aW9uXCI6IFwiMTsgbW9kZT1ibG9ja1wiLFxuICAgICAgICBcIlgtRnJhbWUtT3B0aW9uc1wiOiBcIkRFTllcIixcbiAgICAgICAgXCJYLUNvbnRlbnQtVHlwZS1PcHRpb25zXCI6IFwibm9zbmlmZlwiLFxuICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgfSxcbiAgICAgIGxvZ0xldmVsOiBwcm9wcy5sb2dMZXZlbCA/PyBcIndhcm5cIixcbiAgICAgIHVzZXJQb29sSWQ6IHRoaXMudXNlclBvb2wudXNlclBvb2xJZCxcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudC51c2VyUG9vbENsaWVudElkLFxuICAgICAgY2xpZW50U2VjcmV0OiBjbGllbnRTZWNyZXRWYWx1ZSxcbiAgICAgIG9hdXRoU2NvcGVzOiB0aGlzLm9hdXRoU2NvcGVzLFxuICAgICAgY29nbml0b0F1dGhEb21haW46IHByb3BzLmNvZ25pdG9BdXRoRG9tYWluLFxuICAgICAgY2FsbGJhY2tQYXRoOiB0aGlzLmNhbGxiYWNrUGF0aCxcbiAgICAgIHNpZ25PdXRSZWRpcmVjdFRvOiB0aGlzLnNpZ25PdXRSZWRpcmVjdFRvLFxuICAgICAgc2lnbk91dFBhdGg6IHRoaXMuc2lnbk91dFBhdGgsXG4gICAgICByZWZyZXNoQXV0aFBhdGg6IHRoaXMucmVmcmVzaEF1dGhQYXRoLFxuICAgICAgcmVxdWlyZUdyb3VwQW55T2Y6IHByb3BzLnJlcXVpcmVHcm91cEFueU9mLFxuICAgICAgY29va2llU2V0dGluZ3M6IHtcbiAgICAgICAgLypcbiAgICAgICAgc3BhTW9kZSAtIGNvbnNpZGVyIGlmIHRoaXMgc2hvdWxkIGJlIHN1cHBvcnRlZFxuICAgICAgICBpZFRva2VuOiBcIlBhdGg9LzsgU2VjdXJlOyBTYW1lU2l0ZT1MYXhcIixcbiAgICAgICAgYWNjZXNzVG9rZW46IFwiUGF0aD0vOyBTZWN1cmU7IFNhbWVTaXRlPUxheFwiLFxuICAgICAgICByZWZyZXNoVG9rZW46IFwiUGF0aD0vOyBTZWN1cmU7IFNhbWVTaXRlPUxheFwiLFxuICAgICAgICBub25jZTogXCJQYXRoPS87IFNlY3VyZTsgSHR0cE9ubHk7IFNhbWVTaXRlPUxheFwiLFxuICAgICAgICAqL1xuICAgICAgICBpZFRva2VuOiBcIlBhdGg9LzsgU2VjdXJlOyBIdHRwT25seTsgU2FtZVNpdGU9TGF4XCIsXG4gICAgICAgIGFjY2Vzc1Rva2VuOiBcIlBhdGg9LzsgU2VjdXJlOyBIdHRwT25seTsgU2FtZVNpdGU9TGF4XCIsXG4gICAgICAgIHJlZnJlc2hUb2tlbjogXCJQYXRoPS87IFNlY3VyZTsgSHR0cE9ubHk7IFNhbWVTaXRlPUxheFwiLFxuICAgICAgICBub25jZTogXCJQYXRoPS87IFNlY3VyZTsgSHR0cE9ubHk7IFNhbWVTaXRlPUxheFwiLFxuICAgICAgfSxcbiAgICAgIG5vbmNlU2lnbmluZ1NlY3JldCxcbiAgICB9XG5cbiAgICB0aGlzLmNoZWNrQXV0aEZuID0gbmV3IExhbWJkYUNvbmZpZyh0aGlzLCBcIkNoZWNrQXV0aEZuXCIsIHtcbiAgICAgIGZ1bmN0aW9uOiBwcm9wcy5hdXRoTGFtYmRhcy5jaGVja0F1dGhGbi5nZXQodGhpcywgXCJDaGVja0F1dGhGbkltcG9ydFwiKSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KS52ZXJzaW9uXG5cbiAgICB0aGlzLmh0dHBIZWFkZXJzRm4gPSBuZXcgTGFtYmRhQ29uZmlnKHRoaXMsIFwiSHR0cEhlYWRlcnNGblwiLCB7XG4gICAgICBmdW5jdGlvbjogcHJvcHMuYXV0aExhbWJkYXMuaHR0cEhlYWRlcnNGbi5nZXQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiSHR0cEhlYWRlcnNGbkltcG9ydFwiLFxuICAgICAgKSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KS52ZXJzaW9uXG5cbiAgICB0aGlzLnBhcnNlQXV0aEZuID0gbmV3IExhbWJkYUNvbmZpZyh0aGlzLCBcIlBhcnNlQXV0aEZuXCIsIHtcbiAgICAgIGZ1bmN0aW9uOiBwcm9wcy5hdXRoTGFtYmRhcy5wYXJzZUF1dGhGbi5nZXQodGhpcywgXCJQYXJzZUF1dGhGbkltcG9ydFwiKSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KS52ZXJzaW9uXG5cbiAgICB0aGlzLnJlZnJlc2hBdXRoRm4gPSBuZXcgTGFtYmRhQ29uZmlnKHRoaXMsIFwiUmVmcmVzaEF1dGhGblwiLCB7XG4gICAgICBmdW5jdGlvbjogcHJvcHMuYXV0aExhbWJkYXMucmVmcmVzaEF1dGhGbi5nZXQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiUmVmcmVzaEF1dGhGbkltcG9ydFwiLFxuICAgICAgKSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KS52ZXJzaW9uXG5cbiAgICB0aGlzLnNpZ25PdXRGbiA9IG5ldyBMYW1iZGFDb25maWcodGhpcywgXCJTaWduT3V0Rm5cIiwge1xuICAgICAgZnVuY3Rpb246IHByb3BzLmF1dGhMYW1iZGFzLnNpZ25PdXRGbi5nZXQodGhpcywgXCJTaWduT3V0Rm5JbXBvcnRcIiksXG4gICAgICBjb25maWcsXG4gICAgfSkudmVyc2lvblxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQYXRoTGFtYmRhKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBmbjogbGFtYmRhLklWZXJzaW9uLFxuICApOiBjbG91ZGZyb250LkJlaGF2aW9yIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aFBhdHRlcm46IHBhdGgsXG4gICAgICBmb3J3YXJkZWRWYWx1ZXM6IHtcbiAgICAgICAgcXVlcnlTdHJpbmc6IHRydWUsXG4gICAgICB9LFxuICAgICAgbGFtYmRhRnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5MYW1iZGFFZGdlRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgICAgIGxhbWJkYUZ1bmN0aW9uOiBmbixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBiZWhhdmlvcnMgZm9yIGF1dGhlbnRpY2F0aW9uIHBhZ2VzOlxuICAgKlxuICAgKiAtIGNhbGxiYWNrIHBhZ2VcbiAgICogLSByZWZyZXNoIHBhZ2VcbiAgICogLSBzaWduIG91dCBwYWdlXG4gICAqXG4gICAqIFRoaXMgaXMgdG8gYmUgdXNlZCB3aXRoIENsb3VkRnJvbnRXZWJEaXN0cmlidXRpb24uIFNlZVxuICAgKiBjcmVhdGVBdXRoUGFnZXNCZWhhdmlvcnMgaWYgdXNpbmcgRGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcHVibGljIGdldCBhdXRoUGFnZXMoKTogY2xvdWRmcm9udC5CZWhhdmlvcltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgdGhpcy5jcmVhdGVQYXRoTGFtYmRhKHRoaXMuY2FsbGJhY2tQYXRoLCB0aGlzLnBhcnNlQXV0aEZuKSxcbiAgICAgIHRoaXMuY3JlYXRlUGF0aExhbWJkYSh0aGlzLnJlZnJlc2hBdXRoUGF0aCwgdGhpcy5yZWZyZXNoQXV0aEZuKSxcbiAgICAgIHRoaXMuY3JlYXRlUGF0aExhbWJkYSh0aGlzLnNpZ25PdXRQYXRoLCB0aGlzLnNpZ25PdXRGbiksXG4gICAgXVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBiZWhhdmlvcnMgZm9yIGF1dGhlbnRpY2F0aW9uIHBhZ2VzLlxuICAgKlxuICAgKiAtIGNhbGxiYWNrIHBhZ2VcbiAgICogLSByZWZyZXNoIHBhZ2VcbiAgICogLSBzaWduIG91dCBwYWdlXG4gICAqXG4gICAqIFRoaXMgaXMgdG8gYmUgdXNlZCB3aXRoIERpc3RyaWJ1dGlvbi5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVBdXRoUGFnZXNCZWhhdmlvcnMoXG4gICAgb3JpZ2luOiBJT3JpZ2luLFxuICAgIG9wdGlvbnM/OiBBZGRCZWhhdmlvck9wdGlvbnMsXG4gICk6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yT3B0aW9ucz4ge1xuICAgIGZ1bmN0aW9uIHBhdGgocGF0aDogc3RyaW5nLCBmbjogSVZlcnNpb24pOiBSZWNvcmQ8c3RyaW5nLCBCZWhhdmlvck9wdGlvbnM+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIFtwYXRoXToge1xuICAgICAgICAgIG9yaWdpbixcbiAgICAgICAgICBjb21wcmVzczogdHJ1ZSxcbiAgICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgICAgZWRnZUxhbWJkYXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZXZlbnRUeXBlOiBjbG91ZGZyb250LkxhbWJkYUVkZ2VFdmVudFR5cGUuVklFV0VSX1JFUVVFU1QsXG4gICAgICAgICAgICAgIGZ1bmN0aW9uVmVyc2lvbjogZm4sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGF0aCh0aGlzLmNhbGxiYWNrUGF0aCwgdGhpcy5wYXJzZUF1dGhGbiksXG4gICAgICAuLi5wYXRoKHRoaXMucmVmcmVzaEF1dGhQYXRoLCB0aGlzLnJlZnJlc2hBdXRoRm4pLFxuICAgICAgLi4ucGF0aCh0aGlzLnNpZ25PdXRQYXRoLCB0aGlzLnNpZ25PdXRGbiksXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBsYW1iZGEgZnVuY3Rpb24gYXNzb2NpYXRpb24gZm9yIHZpZXdlciByZXF1ZXN0IHRvIGNoZWNrXG4gICAqIGF1dGhlbnRpY2F0aW9uIGFuZCBvcmlnaW5hbCByZXNwb25zZSB0byBhZGQgaGVhZGVycy5cbiAgICpcbiAgICogVGhpcyBpcyB0byBiZSB1c2VkIHdpdGggQ2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbi4gU2VlXG4gICAqIGNyZWF0ZVByb3RlY3RlZEJlaGF2aW9yIGlmIHVzaW5nIERpc3RyaWJ1dGlvbi5cbiAgICovXG4gIHB1YmxpYyBnZXQgYXV0aEZpbHRlcnMoKTogY2xvdWRmcm9udC5MYW1iZGFGdW5jdGlvbkFzc29jaWF0aW9uW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5MYW1iZGFFZGdlRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgICBsYW1iZGFGdW5jdGlvbjogdGhpcy5jaGVja0F1dGhGbixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5MYW1iZGFFZGdlRXZlbnRUeXBlLk9SSUdJTl9SRVNQT05TRSxcbiAgICAgICAgbGFtYmRhRnVuY3Rpb246IHRoaXMuaHR0cEhlYWRlcnNGbixcbiAgICAgIH0sXG4gICAgXVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBiZWhhdmlvciB0aGF0IGluY2x1ZGVzIGF1dGhvcml6YXRpb24gY2hlY2suXG4gICAqXG4gICAqIFRoaXMgaXMgdG8gYmUgdXNlZCB3aXRoIERpc3RyaWJ1dGlvbi5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVQcm90ZWN0ZWRCZWhhdmlvcihcbiAgICBvcmlnaW46IElPcmlnaW4sXG4gICAgb3B0aW9ucz86IEFkZEJlaGF2aW9yT3B0aW9ucyxcbiAgKTogQmVoYXZpb3JPcHRpb25zIHtcbiAgICBpZiAob3B0aW9ucz8uZWRnZUxhbWJkYXMgIT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoXCJVc2VyLWRlZmluZWQgZWRnZUxhbWJkYXMgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWRcIilcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3JpZ2luLFxuICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICBlZGdlTGFtYmRhczogW1xuICAgICAgICB7XG4gICAgICAgICAgZXZlbnRUeXBlOiBjbG91ZGZyb250LkxhbWJkYUVkZ2VFdmVudFR5cGUuVklFV0VSX1JFUVVFU1QsXG4gICAgICAgICAgZnVuY3Rpb25WZXJzaW9uOiB0aGlzLmNoZWNrQXV0aEZuLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZXZlbnRUeXBlOiBjbG91ZGZyb250LkxhbWJkYUVkZ2VFdmVudFR5cGUuT1JJR0lOX1JFU1BPTlNFLFxuICAgICAgICAgIGZ1bmN0aW9uVmVyc2lvbjogdGhpcy5odHRwSGVhZGVyc0ZuLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBDb2duaXRvIGNsaWVudCB0byB1c2UgdGhlIHByb3BlciBVUkxzIGFuZCBPQXV0aCBzY29wZXMuXG4gICAqXG4gICAqIFRPRE86IEluIGNhc2UgdGhlIGNsaWVudCBjb25maWd1cmF0aW9uIGNoYW5nZXMgYW5kIGlzIHVwZGF0ZWRcbiAgICogIGJ5IENsb3VkRm9ybWF0aW9uLCB0aGlzIHdpbGwgbm90IGJlIHJlYXBwbGllZCBjYXVzaW5nIHRoZSBjbGllbnRcbiAgICogIHRvIG5vdCBiZSBjb3JyZWN0bHkgY29uZmlndXJlZC5cbiAgICogIEhvdyBjYW4gd2UgYXZvaWQgdGhpcyBzY2VuYXJpbz9cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVDbGllbnQoaWQ6IHN0cmluZywgcHJvcHM6IFVwZGF0ZUNsaWVudFByb3BzKTogQ2xpZW50VXBkYXRlIHtcbiAgICBpZiAoIXRoaXMuY2xpZW50Q3JlYXRlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIllvdSBjYW5ub3QgdXNlIHVwZGF0ZUNsaWVudCB3aXRoIGEgdXNlci1wcm92aWRlZCBDb2duaXRvIENsaWVudCBcIiArXG4gICAgICAgICAgXCJzaW5jZSBpdCB3b3VsZCBvdmVycmlkZSB0aGUgdXNlci1wcm92aWRlZCBzZXR0aW5nc1wiLFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgQ2xpZW50VXBkYXRlKHRoaXMsIGlkLCB7XG4gICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgdXNlclBvb2w6IHRoaXMudXNlclBvb2wsXG4gICAgICBzaWduT3V0VXJsOiBwcm9wcy5zaWduT3V0VXJsLFxuICAgICAgY2FsbGJhY2tVcmw6IHByb3BzLmNhbGxiYWNrVXJsLFxuICAgICAgb2F1dGhTY29wZXM6IHRoaXMub2F1dGhTY29wZXMsXG4gICAgICBpZGVudGl0eVByb3ZpZGVyczpcbiAgICAgICAgcHJvcHMuaWRlbnRpdHlQcm92aWRlcnMgPz9cbiAgICAgICAgW1wiQ09HTklUT1wiXS5jb25jYXQoXG4gICAgICAgICAgdGhpcy51c2VyUG9vbC5pZGVudGl0eVByb3ZpZGVycy5tYXAoKGl0KSA9PiBpdC5wcm92aWRlck5hbWUpLFxuICAgICAgICApLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nsb3VkZnJvbnQtYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLDRCQUE0QixDQUFBO0FBQ3hELE9BQU8sRUFJTCxvQkFBb0IsR0FDckIsTUFBTSw0QkFBNEIsQ0FBQTtBQUluQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUdsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBaUV0Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFDM0IsWUFBWSxDQUFRO0lBQ3BCLGlCQUFpQixDQUFRO0lBQ3pCLFdBQVcsQ0FBUTtJQUNuQixlQUFlLENBQVE7SUFFdEIsUUFBUSxDQUFtQjtJQUMzQixhQUFhLENBQVM7SUFDdkIsTUFBTSxDQUF3QjtJQUU3QixXQUFXLENBQWlCO0lBQzVCLGFBQWEsQ0FBaUI7SUFDOUIsV0FBVyxDQUFpQjtJQUM1QixhQUFhLENBQWlCO0lBQzlCLFNBQVMsQ0FBaUI7SUFFMUIsV0FBVyxDQUFVO0lBRXRDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLElBQUksZ0JBQWdCLENBQUE7UUFDMUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxHQUFHLENBQUE7UUFDdkQsSUFBSSxDQUFDLFdBQVcsR0FB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V0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGlCQUFpQixFQUNmLEtBQUssQ0FBQyxpQkFBaUI7Z0JBQ3ZCLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUM3RDtTQUNKLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCJcbmltcG9ydCB7XG4gIEFkZEJlaGF2aW9yT3B0aW9ucyxcbiAgQmVoYXZpb3JPcHRpb25zLFxuICBJT3JpZ2luLFxuICBWaWV3ZXJQcm90b2NvbFBvbGljeSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCJcbmltcG9ydCAqIGFzIGNvZ25pdG8gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2duaXRvXCJcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiXG5pbXBvcnQgeyBJVmVyc2lvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCJcbmltcG9ydCB7IExhbWJkYUNvbmZpZyB9IGZyb20gXCJAbGlmbGlnL2Nkay1sYW1iZGEtY29uZmlnXCJcbmltcG9ydCB7IFJldHJpZXZlQ2xpZW50U2VjcmV0IH0gZnJvbSBcIi4vY2xpZW50LXNlY3JldFwiXG5pbXBvcnQgeyBDbGllbnRVcGRhdGUgfSBmcm9tIFwiLi9jbGllbnQtdXBkYXRlXCJcbmltcG9ydCB7IEdlbmVyYXRlU2VjcmV0IH0gZnJvbSBcIi4vZ2VuZXJhdGUtc2VjcmV0XCJcbmltcG9ydCB7IFN0b3JlZENvbmZpZyB9IGZyb20gXCIuL2hhbmRsZXJzL3V0aWwvY29uZmlnXCJcbmltcG9ydCB7IEF1dGhMYW1iZGFzIH0gZnJvbSBcIi4vbGFtYmRhc1wiXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGcm9udEF1dGhQcm9wcyB7XG4gIC8qKlxuICAgKiBDb2duaXRvIENsaWVudCB0aGF0IHdpbGwgYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgdGhlIHVzZXIuXG4gICAqXG4gICAqIElmIGEgY3VzdG9tIGNsaWVudCBpcyBwcm92aWRlZCwgdGhlIHVwZGF0ZUNsaWVudCBtZXRob2QgY2Fubm90XG4gICAqIGJlIHVzZWQgc2luY2Ugd2UgY2Fubm90IGtub3cgd2hpY2ggcGFyYW1ldGVycyB3YXMgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmV3IGNsaWVudCB3aWxsIGJlIGdlbmVyYXRlZFxuICAgKi9cbiAgY2xpZW50PzogY29nbml0by5Vc2VyUG9vbENsaWVudFxuICB1c2VyUG9vbDogY29nbml0by5JVXNlclBvb2xcbiAgLyoqXG4gICAqIFRoZSBkb21haW4gdGhhdCBpcyB1c2VkIGZvciBDb2duaXRvIEF1dGguXG4gICAqXG4gICAqIElmIG5vdCB1c2luZyBjdXN0b20gZG9tYWlucyB0aGlzIHdpbGwgYmUgYSBuYW1lIHVuZGVyIGFtYXpvbmNvZ25pdG8uY29tLlxuICAgKlxuICAgKiBAZXhhbXBsZSBgJHtkb21haW4uZG9tYWluTmFtZX0uYXV0aC4ke3JlZ2lvbn0uYW1hem9uY29nbml0by5jb21gXG4gICAqL1xuICBjb2duaXRvQXV0aERvbWFpbjogc3RyaW5nXG4gIGF1dGhMYW1iZGFzOiBBdXRoTGFtYmRhc1xuICAvKipcbiAgICogQGRlZmF1bHQgL2F1dGgvY2FsbGJhY2tcbiAgICovXG4gIGNhbGxiYWNrUGF0aD86IHN0cmluZ1xuICAvKipcbiAgICogQGRlZmF1bHQgL1xuICAgKi9cbiAgc2lnbk91dFJlZGlyZWN0VG8/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZWZhdWx0IC9hdXRoL3NpZ24tb3V0XG4gICAqL1xuICBzaWduT3V0UGF0aD86IHN0cmluZ1xuICAvKipcbiAgICogQGRlZmF1bHQgL2F1dGgvcmVmcmVzaFxuICAgKi9cbiAgcmVmcmVzaEF1dGhQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBMb2cgbGV2ZWwuXG4gICAqXG4gICAqIEEgbG9nIGxldmVsIG9mIGRlYnVnIHdpbGwgbG9nIHNlY3JldHMgYW5kIHNob3VsZCBvbmx5IGJlIHVzZWQgaW5cbiAgICogYSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgd2FyblxuICAgKi9cbiAgbG9nTGV2ZWw/OiBcIm5vbmVcIiB8IFwiZXJyb3JcIiB8IFwid2FyblwiIHwgXCJpbmZvXCIgfCBcImRlYnVnXCJcbiAgLyoqXG4gICAqIFJlcXVpcmUgdGhlIHVzZXIgdG8gYmUgcGFydCBvZiBhIHNwZWNpZmljIENvZ25pdG8gZ3JvdXAgdG9cbiAgICogYWNjZXNzIGFueSByZXNvdXJjZS5cbiAgICovXG4gIHJlcXVpcmVHcm91cEFueU9mPzogc3RyaW5nW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDbGllbnRQcm9wcyB7XG4gIHNpZ25PdXRVcmw6IHN0cmluZ1xuICBjYWxsYmFja1VybDogc3RyaW5nXG4gIC8qKlxuICAgKiBMaXN0IG9mIGlkZW50aXR5IHByb3ZpZGVycyB1c2VkIGZvciB0aGUgY2xpZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIENPR05JVE8gYW5kIGlkZW50aXR5IHByb3ZpZGVycyByZWdpc3RlcmVkIGluIHRoZSBVc2VyUG9vbCBjb25zdHJ1Y3RcbiAgICovXG4gIGlkZW50aXR5UHJvdmlkZXJzPzogc3RyaW5nW11cbn1cblxuLyoqXG4gKiBDb25maWd1cmUgcHJldmlvdXNseSBkZXBsb3llZCBsYW1iZGEgZnVuY3Rpb25zLCBDb2duaXRvIGNsaWVudFxuICogYW5kIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRGcm9udEF1dGggZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgY2FsbGJhY2tQYXRoOiBzdHJpbmdcbiAgcHVibGljIHJlYWRvbmx5IHNpZ25PdXRSZWRpcmVjdFRvOiBzdHJpbmdcbiAgcHVibGljIHJlYWRvbmx5IHNpZ25PdXRQYXRoOiBzdHJpbmdcbiAgcHVibGljIHJlYWRvbmx5IHJlZnJlc2hBdXRoUGF0aDogc3RyaW5nXG5cbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyUG9vbDogY29nbml0by5JVXNlclBvb2xcbiAgcHJpdmF0ZSByZWFkb25seSBjbGllbnRDcmVhdGVkOiBib29sZWFuXG4gIHB1YmxpYyByZWFkb25seSBjbGllbnQ6IGNvZ25pdG8uVXNlclBvb2xDbGllbnRcblxuICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrQXV0aEZuOiBsYW1iZGEuSVZlcnNpb25cbiAgcHJpdmF0ZSByZWFkb25seSBodHRwSGVhZGVyc0ZuOiBsYW1iZGEuSVZlcnNpb25cbiAgcHJpdmF0ZSByZWFkb25seSBwYXJzZUF1dGhGbjogbGFtYmRhLklWZXJzaW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVmcmVzaEF1dGhGbjogbGFtYmRhLklWZXJzaW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgc2lnbk91dEZuOiBsYW1iZGEuSVZlcnNpb25cblxuICBwcml2YXRlIHJlYWRvbmx5IG9hdXRoU2NvcGVzOiBzdHJpbmdbXVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDbG91ZEZyb250QXV0aFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgdGhpcy5jYWxsYmFja1BhdGggPSBwcm9wcy5jYWxsYmFja1BhdGggPz8gXCIvYXV0aC9jYWxsYmFja1wiXG4gICAgdGhpcy5zaWduT3V0UmVkaXJlY3RUbyA9IHByb3BzLnNpZ25PdXRSZWRpcmVjdFRvID8/IFwiL1wiXG4gICAgdGhpcy5zaWduT3V0UGF0aCA9IHByb3BzLnNpZ25PdXRQYXRoID8/IFwiL2F1dGgvc2lnbi1vdXRcIlxuICAgIHRoaXMucmVmcmVzaEF1dGhQYXRoID0gcHJvcHMucmVmcmVzaEF1dGhQYXRoID8/IFwiL2F1dGgvcmVmcmVzaFwiXG5cbiAgICB0aGlzLm9hdXRoU2NvcGVzID0gW1xuICAgICAgXCJwaG9uZVwiLFxuICAgICAgXCJlbWFpbFwiLFxuICAgICAgXCJwcm9maWxlXCIsXG4gICAgICBcIm9wZW5pZFwiLFxuICAgICAgXCJhd3MuY29nbml0by5zaWduaW4udXNlci5hZG1pblwiLFxuICAgIF1cblxuICAgIHRoaXMudXNlclBvb2wgPSBwcm9wcy51c2VyUG9vbFxuXG4gICAgdGhpcy5jbGllbnRDcmVhdGVkID0gIXByb3BzLmNsaWVudFxuICAgIHRoaXMuY2xpZW50ID1cbiAgICAgIHByb3BzLmNsaWVudCA/P1xuICAgICAgcHJvcHMudXNlclBvb2wuYWRkQ2xpZW50KFwiVXNlclBvb2xDbGllbnRcIiwge1xuICAgICAgICAvLyBOb3RlOiBUaGUgZm9sbG93aW5nIG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggdGhlIEFQSVxuICAgICAgICAvLyBjYWxsIHBlcmZvcm1lZCBpbiBDbGllbnRVcGRhdGUuXG4gICAgICAgIGF1dGhGbG93czoge1xuICAgICAgICAgIHVzZXJQYXNzd29yZDogdHJ1ZSxcbiAgICAgICAgICB1c2VyU3JwOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBvQXV0aDoge1xuICAgICAgICAgIGZsb3dzOiB7XG4gICAgICAgICAgICBhdXRob3JpemF0aW9uQ29kZUdyYW50OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHByZXZlbnRVc2VyRXhpc3RlbmNlRXJyb3JzOiB0cnVlLFxuICAgICAgICBnZW5lcmF0ZVNlY3JldDogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICBjb25zdCBub25jZVNpZ25pbmdTZWNyZXQgPSBuZXcgR2VuZXJhdGVTZWNyZXQodGhpcywgXCJOb25jZVNpZ25pbmdTZWNyZXRcIilcbiAgICAgIC52YWx1ZVxuXG4gICAgY29uc3QgeyBjbGllbnRTZWNyZXRWYWx1ZSB9ID0gbmV3IFJldHJpZXZlQ2xpZW50U2VjcmV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwiQ2xpZW50U2VjcmV0XCIsXG4gICAgICB7XG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHVzZXJQb29sOiB0aGlzLnVzZXJQb29sLFxuICAgICAgfSxcbiAgICApXG5cbiAgICBjb25zdCBjb25maWc6IFN0b3JlZENvbmZpZyA9IHtcbiAgICAgIGh0dHBIZWFkZXJzOiB7XG4gICAgICAgIFwiQ29udGVudC1TZWN1cml0eS1Qb2xpY3lcIjpcbiAgICAgICAgICBcImRlZmF1bHQtc3JjICdub25lJzsgaW1nLXNyYyAnc2VsZic7IHNjcmlwdC1zcmMgJ3NlbGYnOyBzdHlsZS1zcmMgJ3NlbGYnICd1bnNhZmUtaW5saW5lJzsgb2JqZWN0LXNyYyAnbm9uZSc7IGNvbm5lY3Qtc3JjICdzZWxmJ1wiLFxuICAgICAgICBcIlN0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHlcIjpcbiAgICAgICAgICBcIm1heC1hZ2U9MzE1MzYwMDA7IGluY2x1ZGVTdWJkb21haW5zOyBwcmVsb2FkXCIsXG4gICAgICAgIFwiUmVmZXJyZXItUG9saWN5XCI6IFwic2FtZS1vcmlnaW5cIixcbiAgICAgICAgXCJYLVhTUy1Qcm90ZWN0aW9uXCI6IFwiMTsgbW9kZT1ibG9ja1wiLFxuICAgICAgICBcIlgtRnJhbWUtT3B0aW9uc1wiOiBcIkRFTllcIixcbiAgICAgICAgXCJYLUNvbnRlbnQtVHlwZS1PcHRpb25zXCI6IFwibm9zbmlmZlwiLFxuICAgICAgICBcIkNhY2hlLUNvbnRyb2xcIjogXCJuby1jYWNoZVwiLFxuICAgICAgfSxcbiAgICAgIGxvZ0xldmVsOiBwcm9wcy5sb2dMZXZlbCA/PyBcIndhcm5cIixcbiAgICAgIHVzZXJQb29sSWQ6IHRoaXMudXNlclBvb2wudXNlclBvb2xJZCxcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudC51c2VyUG9vbENsaWVudElkLFxuICAgICAgY2xpZW50U2VjcmV0OiBjbGllbnRTZWNyZXRWYWx1ZSxcbiAgICAgIG9hdXRoU2NvcGVzOiB0aGlzLm9hdXRoU2NvcGVzLFxuICAgICAgY29nbml0b0F1dGhEb21haW46IHByb3BzLmNvZ25pdG9BdXRoRG9tYWluLFxuICAgICAgY2FsbGJhY2tQYXRoOiB0aGlzLmNhbGxiYWNrUGF0aCxcbiAgICAgIHNpZ25PdXRSZWRpcmVjdFRvOiB0aGlzLnNpZ25PdXRSZWRpcmVjdFRvLFxuICAgICAgc2lnbk91dFBhdGg6IHRoaXMuc2lnbk91dFBhdGgsXG4gICAgICByZWZyZXNoQXV0aFBhdGg6IHRoaXMucmVmcmVzaEF1dGhQYXRoLFxuICAgICAgcmVxdWlyZUdyb3VwQW55T2Y6IHByb3BzLnJlcXVpcmVHcm91cEFueU9mLFxuICAgICAgY29va2llU2V0dGluZ3M6IHtcbiAgICAgICAgLypcbiAgICAgICAgc3BhTW9kZSAtIGNvbnNpZGVyIGlmIHRoaXMgc2hvdWxkIGJlIHN1cHBvcnRlZFxuICAgICAgICBpZFRva2VuOiBcIlBhdGg9LzsgU2VjdXJlOyBTYW1lU2l0ZT1MYXhcIixcbiAgICAgICAgYWNjZXNzVG9rZW46IFwiUGF0aD0vOyBTZWN1cmU7IFNhbWVTaXRlPUxheFwiLFxuICAgICAgICByZWZyZXNoVG9rZW46IFwiUGF0aD0vOyBTZWN1cmU7IFNhbWVTaXRlPUxheFwiLFxuICAgICAgICBub25jZTogXCJQYXRoPS87IFNlY3VyZTsgSHR0cE9ubHk7IFNhbWVTaXRlPUxheFwiLFxuICAgICAgICAqL1xuICAgICAgICBpZFRva2VuOiBcIlBhdGg9LzsgU2VjdXJlOyBIdHRwT25seTsgU2FtZVNpdGU9TGF4XCIsXG4gICAgICAgIGFjY2Vzc1Rva2VuOiBcIlBhdGg9LzsgU2VjdXJlOyBIdHRwT25seTsgU2FtZVNpdGU9TGF4XCIsXG4gICAgICAgIHJlZnJlc2hUb2tlbjogXCJQYXRoPS87IFNlY3VyZTsgSHR0cE9ubHk7IFNhbWVTaXRlPUxheFwiLFxuICAgICAgICBub25jZTogXCJQYXRoPS87IFNlY3VyZTsgSHR0cE9ubHk7IFNhbWVTaXRlPUxheFwiLFxuICAgICAgfSxcbiAgICAgIG5vbmNlU2lnbmluZ1NlY3JldCxcbiAgICB9XG5cbiAgICB0aGlzLmNoZWNrQXV0aEZuID0gbmV3IExhbWJkYUNvbmZpZyh0aGlzLCBcIkNoZWNrQXV0aEZuXCIsIHtcbiAgICAgIGZ1bmN0aW9uOiBwcm9wcy5hdXRoTGFtYmRhcy5jaGVja0F1dGhGbi5nZXQodGhpcywgXCJDaGVja0F1dGhGbkltcG9ydFwiKSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KS52ZXJzaW9uXG5cbiAgICB0aGlzLmh0dHBIZWFkZXJzRm4gPSBuZXcgTGFtYmRhQ29uZmlnKHRoaXMsIFwiSHR0cEhlYWRlcnNGblwiLCB7XG4gICAgICBmdW5jdGlvbjogcHJvcHMuYXV0aExhbWJkYXMuaHR0cEhlYWRlcnNGbi5nZXQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiSHR0cEhlYWRlcnNGbkltcG9ydFwiLFxuICAgICAgKSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KS52ZXJzaW9uXG5cbiAgICB0aGlzLnBhcnNlQXV0aEZuID0gbmV3IExhbWJkYUNvbmZpZyh0aGlzLCBcIlBhcnNlQXV0aEZuXCIsIHtcbiAgICAgIGZ1bmN0aW9uOiBwcm9wcy5hdXRoTGFtYmRhcy5wYXJzZUF1dGhGbi5nZXQodGhpcywgXCJQYXJzZUF1dGhGbkltcG9ydFwiKSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KS52ZXJzaW9uXG5cbiAgICB0aGlzLnJlZnJlc2hBdXRoRm4gPSBuZXcgTGFtYmRhQ29uZmlnKHRoaXMsIFwiUmVmcmVzaEF1dGhGblwiLCB7XG4gICAgICBmdW5jdGlvbjogcHJvcHMuYXV0aExhbWJkYXMucmVmcmVzaEF1dGhGbi5nZXQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiUmVmcmVzaEF1dGhGbkltcG9ydFwiLFxuICAgICAgKSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KS52ZXJzaW9uXG5cbiAgICB0aGlzLnNpZ25PdXRGbiA9IG5ldyBMYW1iZGFDb25maWcodGhpcywgXCJTaWduT3V0Rm5cIiwge1xuICAgICAgZnVuY3Rpb246IHByb3BzLmF1dGhMYW1iZGFzLnNpZ25PdXRGbi5nZXQodGhpcywgXCJTaWduT3V0Rm5JbXBvcnRcIiksXG4gICAgICBjb25maWcsXG4gICAgfSkudmVyc2lvblxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQYXRoTGFtYmRhKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBmbjogbGFtYmRhLklWZXJzaW9uLFxuICApOiBjbG91ZGZyb250LkJlaGF2aW9yIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aFBhdHRlcm46IHBhdGgsXG4gICAgICBmb3J3YXJkZWRWYWx1ZXM6IHtcbiAgICAgICAgcXVlcnlTdHJpbmc6IHRydWUsXG4gICAgICB9LFxuICAgICAgbGFtYmRhRnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5MYW1iZGFFZGdlRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgICAgIGxhbWJkYUZ1bmN0aW9uOiBmbixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBiZWhhdmlvcnMgZm9yIGF1dGhlbnRpY2F0aW9uIHBhZ2VzOlxuICAgKlxuICAgKiAtIGNhbGxiYWNrIHBhZ2VcbiAgICogLSByZWZyZXNoIHBhZ2VcbiAgICogLSBzaWduIG91dCBwYWdlXG4gICAqXG4gICAqIFRoaXMgaXMgdG8gYmUgdXNlZCB3aXRoIENsb3VkRnJvbnRXZWJEaXN0cmlidXRpb24uIFNlZVxuICAgKiBjcmVhdGVBdXRoUGFnZXNCZWhhdmlvcnMgaWYgdXNpbmcgRGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcHVibGljIGdldCBhdXRoUGFnZXMoKTogY2xvdWRmcm9udC5CZWhhdmlvcltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgdGhpcy5jcmVhdGVQYXRoTGFtYmRhKHRoaXMuY2FsbGJhY2tQYXRoLCB0aGlzLnBhcnNlQXV0aEZuKSxcbiAgICAgIHRoaXMuY3JlYXRlUGF0aExhbWJkYSh0aGlzLnJlZnJlc2hBdXRoUGF0aCwgdGhpcy5yZWZyZXNoQXV0aEZuKSxcbiAgICAgIHRoaXMuY3JlYXRlUGF0aExhbWJkYSh0aGlzLnNpZ25PdXRQYXRoLCB0aGlzLnNpZ25PdXRGbiksXG4gICAgXVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBiZWhhdmlvcnMgZm9yIGF1dGhlbnRpY2F0aW9uIHBhZ2VzLlxuICAgKlxuICAgKiAtIGNhbGxiYWNrIHBhZ2VcbiAgICogLSByZWZyZXNoIHBhZ2VcbiAgICogLSBzaWduIG91dCBwYWdlXG4gICAqXG4gICAqIFRoaXMgaXMgdG8gYmUgdXNlZCB3aXRoIERpc3RyaWJ1dGlvbi5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVBdXRoUGFnZXNCZWhhdmlvcnMoXG4gICAgb3JpZ2luOiBJT3JpZ2luLFxuICAgIG9wdGlvbnM/OiBBZGRCZWhhdmlvck9wdGlvbnMsXG4gICk6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yT3B0aW9ucz4ge1xuICAgIGZ1bmN0aW9uIHBhdGgocGF0aDogc3RyaW5nLCBmbjogSVZlcnNpb24pOiBSZWNvcmQ8c3RyaW5nLCBCZWhhdmlvck9wdGlvbnM+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIFtwYXRoXToge1xuICAgICAgICAgIG9yaWdpbixcbiAgICAgICAgICBjb21wcmVzczogdHJ1ZSxcbiAgICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgICAgZWRnZUxhbWJkYXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZXZlbnRUeXBlOiBjbG91ZGZyb250LkxhbWJkYUVkZ2VFdmVudFR5cGUuVklFV0VSX1JFUVVFU1QsXG4gICAgICAgICAgICAgIGZ1bmN0aW9uVmVyc2lvbjogZm4sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGF0aCh0aGlzLmNhbGxiYWNrUGF0aCwgdGhpcy5wYXJzZUF1dGhGbiksXG4gICAgICAuLi5wYXRoKHRoaXMucmVmcmVzaEF1dGhQYXRoLCB0aGlzLnJlZnJlc2hBdXRoRm4pLFxuICAgICAgLi4ucGF0aCh0aGlzLnNpZ25PdXRQYXRoLCB0aGlzLnNpZ25PdXRGbiksXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBsYW1iZGEgZnVuY3Rpb24gYXNzb2NpYXRpb24gZm9yIHZpZXdlciByZXF1ZXN0IHRvIGNoZWNrXG4gICAqIGF1dGhlbnRpY2F0aW9uIGFuZCBvcmlnaW5hbCByZXNwb25zZSB0byBhZGQgaGVhZGVycy5cbiAgICpcbiAgICogVGhpcyBpcyB0byBiZSB1c2VkIHdpdGggQ2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbi4gU2VlXG4gICAqIGNyZWF0ZVByb3RlY3RlZEJlaGF2aW9yIGlmIHVzaW5nIERpc3RyaWJ1dGlvbi5cbiAgICovXG4gIHB1YmxpYyBnZXQgYXV0aEZpbHRlcnMoKTogY2xvdWRmcm9udC5MYW1iZGFGdW5jdGlvbkFzc29jaWF0aW9uW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5MYW1iZGFFZGdlRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgICBsYW1iZGFGdW5jdGlvbjogdGhpcy5jaGVja0F1dGhGbixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5MYW1iZGFFZGdlRXZlbnRUeXBlLk9SSUdJTl9SRVNQT05TRSxcbiAgICAgICAgbGFtYmRhRnVuY3Rpb246IHRoaXMuaHR0cEhlYWRlcnNGbixcbiAgICAgIH0sXG4gICAgXVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBiZWhhdmlvciB0aGF0IGluY2x1ZGVzIGF1dGhvcml6YXRpb24gY2hlY2suXG4gICAqXG4gICAqIFRoaXMgaXMgdG8gYmUgdXNlZCB3aXRoIERpc3RyaWJ1dGlvbi5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVQcm90ZWN0ZWRCZWhhdmlvcihcbiAgICBvcmlnaW46IElPcmlnaW4sXG4gICAgb3B0aW9ucz86IEFkZEJlaGF2aW9yT3B0aW9ucyxcbiAgKTogQmVoYXZpb3JPcHRpb25zIHtcbiAgICBpZiAob3B0aW9ucz8uZWRnZUxhbWJkYXMgIT0gbnVsbCkge1xuICAgICAgdGhyb3cgRXJyb3IoXCJVc2VyLWRlZmluZWQgZWRnZUxhbWJkYXMgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWRcIilcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3JpZ2luLFxuICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICBlZGdlTGFtYmRhczogW1xuICAgICAgICB7XG4gICAgICAgICAgZXZlbnRUeXBlOiBjbG91ZGZyb250LkxhbWJkYUVkZ2VFdmVudFR5cGUuVklFV0VSX1JFUVVFU1QsXG4gICAgICAgICAgZnVuY3Rpb25WZXJzaW9uOiB0aGlzLmNoZWNrQXV0aEZuLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZXZlbnRUeXBlOiBjbG91ZGZyb250LkxhbWJkYUVkZ2VFdmVudFR5cGUuT1JJR0lOX1JFU1BPTlNFLFxuICAgICAgICAgIGZ1bmN0aW9uVmVyc2lvbjogdGhpcy5odHRwSGVhZGVyc0ZuLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBDb2duaXRvIGNsaWVudCB0byB1c2UgdGhlIHByb3BlciBVUkxzIGFuZCBPQXV0aCBzY29wZXMuXG4gICAqXG4gICAqIFRPRE86IEluIGNhc2UgdGhlIGNsaWVudCBjb25maWd1cmF0aW9uIGNoYW5nZXMgYW5kIGlzIHVwZGF0ZWRcbiAgICogIGJ5IENsb3VkRm9ybWF0aW9uLCB0aGlzIHdpbGwgbm90IGJlIHJlYXBwbGllZCBjYXVzaW5nIHRoZSBjbGllbnRcbiAgICogIHRvIG5vdCBiZSBjb3JyZWN0bHkgY29uZmlndXJlZC5cbiAgICogIEhvdyBjYW4gd2UgYXZvaWQgdGhpcyBzY2VuYXJpbz9cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVDbGllbnQoaWQ6IHN0cmluZywgcHJvcHM6IFVwZGF0ZUNsaWVudFByb3BzKTogQ2xpZW50VXBkYXRlIHtcbiAgICBpZiAoIXRoaXMuY2xpZW50Q3JlYXRlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIllvdSBjYW5ub3QgdXNlIHVwZGF0ZUNsaWVudCB3aXRoIGEgdXNlci1wcm92aWRlZCBDb2duaXRvIENsaWVudCBcIiArXG4gICAgICAgICAgXCJzaW5jZSBpdCB3b3VsZCBvdmVycmlkZSB0aGUgdXNlci1wcm92aWRlZCBzZXR0aW5nc1wiLFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgQ2xpZW50VXBkYXRlKHRoaXMsIGlkLCB7XG4gICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgdXNlclBvb2w6IHRoaXMudXNlclBvb2wsXG4gICAgICBzaWduT3V0VXJsOiBwcm9wcy5zaWduT3V0VXJsLFxuICAgICAgY2FsbGJhY2tVcmw6IHByb3BzLmNhbGxiYWNrVXJsLFxuICAgICAgb2F1dGhTY29wZXM6IHRoaXMub2F1dGhTY29wZXMsXG4gICAgICBpZGVudGl0eVByb3ZpZGVyczpcbiAgICAgICAgcHJvcHMuaWRlbnRpdHlQcm92aWRlcnMgPz9cbiAgICAgICAgW1wiQ09HTklUT1wiXS5jb25jYXQoXG4gICAgICAgICAgdGhpcy51c2VyUG9vbC5pZGVudGl0eVByb3ZpZGVycy5tYXAoKGl0KSA9PiBpdC5wcm92aWRlck5hbWUpLFxuICAgICAgICApLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
@@ -1,61 +1,39 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.GenerateSecret = void 0;
27
- const lambda = __importStar(require("aws-cdk-lib/aws-lambda"));
28
- const cr = __importStar(require("aws-cdk-lib/custom-resources"));
29
- const path = __importStar(require("path"));
30
- const constructs_1 = require("constructs");
31
- const aws_cdk_lib_1 = require("aws-cdk-lib");
1
+ import * as lambda from "aws-cdk-lib/aws-lambda";
2
+ import * as cr from "aws-cdk-lib/custom-resources";
3
+ import * as path from "path";
4
+ import { Construct } from "constructs";
5
+ import { CustomResource, Stack } from "aws-cdk-lib";
6
+ import { fileURLToPath } from "url";
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = path.dirname(__filename);
32
9
  /**
33
10
  * Generate a secret to be used in other parts of the deployment.
34
11
  */
35
- class GenerateSecret extends constructs_1.Construct {
12
+ export class GenerateSecret extends Construct {
13
+ value;
36
14
  constructor(scope, id, props) {
37
- var _a;
38
15
  super(scope, id);
39
- const resource = new aws_cdk_lib_1.CustomResource(this, "Resource", {
16
+ const resource = new CustomResource(this, "Resource", {
40
17
  serviceToken: GenerateSecretProvider.getOrCreate(this).serviceToken,
41
18
  properties: {
42
- Nonce: (_a = props === null || props === void 0 ? void 0 : props.nonce) !== null && _a !== void 0 ? _a : "",
19
+ Nonce: props?.nonce ?? "",
43
20
  },
44
21
  });
45
22
  this.value = resource.getAttString("Value");
46
23
  }
47
24
  }
48
- exports.GenerateSecret = GenerateSecret;
49
- class GenerateSecretProvider extends constructs_1.Construct {
25
+ class GenerateSecretProvider extends Construct {
50
26
  /**
51
27
  * Returns the singleton provider.
52
28
  */
53
29
  static getOrCreate(scope) {
54
- const stack = aws_cdk_lib_1.Stack.of(scope);
30
+ const stack = Stack.of(scope);
55
31
  const id = "liflig-infra.cloudfront-auth.generate-secret.provider";
56
32
  return (stack.node.tryFindChild(id) ||
57
33
  new GenerateSecretProvider(stack, id));
58
34
  }
35
+ provider;
36
+ serviceToken;
59
37
  constructor(scope, id) {
60
38
  super(scope, id);
61
39
  this.provider = new cr.Provider(this, "Provider", {
@@ -68,4 +46,4 @@ class GenerateSecretProvider extends constructs_1.Construct {
68
46
  this.serviceToken = this.provider.serviceToken;
69
47
  }
70
48
  }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtc2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dlbmVyYXRlLXNlY3JldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtEQUFnRDtBQUNoRCxpRUFBa0Q7QUFDbEQsMkNBQTRCO0FBQzVCLDJDQUFzQztBQUN0Qyw2Q0FBbUQ7QUFTbkQ7O0dBRUc7QUFDSCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQUczQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCOztRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLE1BQU0sUUFBUSxHQUFHLElBQUksNEJBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3BELFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWTtZQUNuRSxVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEtBQUssbUNBQUksRUFBRTthQUMxQjtTQUNGLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0NBQ0Y7QUFmRCx3Q0FlQztBQUVELE1BQU0sc0JBQXVCLFNBQVEsc0JBQVM7SUFDNUM7O09BRUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWdCO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdCLE1BQU0sRUFBRSxHQUFHLHVEQUF1RCxDQUFBO1FBQ2xFLE9BQU8sQ0FDSixLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQTRCO1lBQ3ZELElBQUksc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUN0QyxDQUFBO0lBQ0gsQ0FBQztJQUtELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNoRCxjQUFjLEVBQUUsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ3BELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUseUJBQXlCLENBQUMsQ0FDaEQ7Z0JBQ0QsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7YUFDcEMsQ0FBQztTQUNILENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUE7SUFDaEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCJcbmltcG9ydCAqIGFzIGNyIGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCJcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UsIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCJcblxuaW50ZXJmYWNlIEdlbmVyYXRlU2VjcmV0UHJvcHMge1xuICAvKipcbiAgICogTm9uY2UgdG8gZm9yY2Ugc2VjcmV0IHVwZGF0ZS5cbiAgICovXG4gIG5vbmNlPzogc3RyaW5nXG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSBzZWNyZXQgdG8gYmUgdXNlZCBpbiBvdGhlciBwYXJ0cyBvZiB0aGUgZGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIEdlbmVyYXRlU2VjcmV0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEdlbmVyYXRlU2VjcmV0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDdXN0b21SZXNvdXJjZSh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogR2VuZXJhdGVTZWNyZXRQcm92aWRlci5nZXRPckNyZWF0ZSh0aGlzKS5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIE5vbmNlOiBwcm9wcz8ubm9uY2UgPz8gXCJcIixcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIHRoaXMudmFsdWUgPSByZXNvdXJjZS5nZXRBdHRTdHJpbmcoXCJWYWx1ZVwiKVxuICB9XG59XG5cbmNsYXNzIEdlbmVyYXRlU2VjcmV0UHJvdmlkZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2luZ2xldG9uIHByb3ZpZGVyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRPckNyZWF0ZShzY29wZTogQ29uc3RydWN0KSB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSlcbiAgICBjb25zdCBpZCA9IFwibGlmbGlnLWluZnJhLmNsb3VkZnJvbnQtYXV0aC5nZW5lcmF0ZS1zZWNyZXQucHJvdmlkZXJcIlxuICAgIHJldHVybiAoXG4gICAgICAoc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoaWQpIGFzIEdlbmVyYXRlU2VjcmV0UHJvdmlkZXIpIHx8XG4gICAgICBuZXcgR2VuZXJhdGVTZWNyZXRQcm92aWRlcihzdGFjaywgaWQpXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlcjogY3IuUHJvdmlkZXJcbiAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2VUb2tlbjogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIHRoaXMucHJvdmlkZXIgPSBuZXcgY3IuUHJvdmlkZXIodGhpcywgXCJQcm92aWRlclwiLCB7XG4gICAgICBvbkV2ZW50SGFuZGxlcjogbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBcIkZ1bmN0aW9uXCIsIHtcbiAgICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KFxuICAgICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi4vZGlzdC9nZW5lcmF0ZS1zZWNyZXRcIiksXG4gICAgICAgICksXG4gICAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMThfWCxcbiAgICAgIH0pLFxuICAgIH0pXG5cbiAgICB0aGlzLnNlcnZpY2VUb2tlbiA9IHRoaXMucHJvdmlkZXIuc2VydmljZVRva2VuXG4gIH1cbn1cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtc2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dlbmVyYXRlLXNlY3JldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLHdCQUF3QixDQUFBO0FBQ2hELE9BQU8sS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDbEQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUE7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRW5DLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ2pELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUE7QUFTMUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFDM0IsS0FBSyxDQUFRO0lBRTdCLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3BELFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWTtZQUNuRSxVQUFVLEVBQUU7Z0JBQ1YsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLElBQUksRUFBRTthQUMxQjtTQUNGLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLHNCQUF1QixTQUFRLFNBQVM7SUFDNUM7O09BRUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWdCO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0IsTUFBTSxFQUFFLEdBQUcsdURBQXVELENBQUE7UUFDbEUsT0FBTyxDQUNKLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBNEI7WUFDdkQsSUFBSSxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQ3RDLENBQUE7SUFDSCxDQUFDO0lBRWdCLFFBQVEsQ0FBYTtJQUN0QixZQUFZLENBQVE7SUFFcEMsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2hELGNBQWMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDcEQsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSx5QkFBeUIsQ0FBQyxDQUNoRDtnQkFDRCxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVzthQUNwQyxDQUFDO1NBQ0gsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQTtJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIlxuaW1wb3J0ICogYXMgY3IgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIlxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuXG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSBcInVybFwiXG5cbmNvbnN0IF9fZmlsZW5hbWUgPSBmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybClcbmNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShfX2ZpbGVuYW1lKVxuXG5pbnRlcmZhY2UgR2VuZXJhdGVTZWNyZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBOb25jZSB0byBmb3JjZSBzZWNyZXQgdXBkYXRlLlxuICAgKi9cbiAgbm9uY2U/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHNlY3JldCB0byBiZSB1c2VkIGluIG90aGVyIHBhcnRzIG9mIHRoZSBkZXBsb3ltZW50LlxuICovXG5leHBvcnQgY2xhc3MgR2VuZXJhdGVTZWNyZXQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogR2VuZXJhdGVTZWNyZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgc2VydmljZVRva2VuOiBHZW5lcmF0ZVNlY3JldFByb3ZpZGVyLmdldE9yQ3JlYXRlKHRoaXMpLnNlcnZpY2VUb2tlbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgTm9uY2U6IHByb3BzPy5ub25jZSA/PyBcIlwiLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgdGhpcy52YWx1ZSA9IHJlc291cmNlLmdldEF0dFN0cmluZyhcIlZhbHVlXCIpXG4gIH1cbn1cblxuY2xhc3MgR2VuZXJhdGVTZWNyZXRQcm92aWRlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzaW5nbGV0b24gcHJvdmlkZXIuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldE9yQ3JlYXRlKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHNjb3BlKVxuICAgIGNvbnN0IGlkID0gXCJsaWZsaWctaW5mcmEuY2xvdWRmcm9udC1hdXRoLmdlbmVyYXRlLXNlY3JldC5wcm92aWRlclwiXG4gICAgcmV0dXJuIChcbiAgICAgIChzdGFjay5ub2RlLnRyeUZpbmRDaGlsZChpZCkgYXMgR2VuZXJhdGVTZWNyZXRQcm92aWRlcikgfHxcbiAgICAgIG5ldyBHZW5lcmF0ZVNlY3JldFByb3ZpZGVyKHN0YWNrLCBpZClcbiAgICApXG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHByb3ZpZGVyOiBjci5Qcm92aWRlclxuICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZVRva2VuOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgdGhpcy5wcm92aWRlciA9IG5ldyBjci5Qcm92aWRlcih0aGlzLCBcIlByb3ZpZGVyXCIsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwiRnVuY3Rpb25cIiwge1xuICAgICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoXG4gICAgICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi9kaXN0L2dlbmVyYXRlLXNlY3JldFwiKSxcbiAgICAgICAgKSxcbiAgICAgICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xOF9YLFxuICAgICAgfSksXG4gICAgfSlcblxuICAgIHRoaXMuc2VydmljZVRva2VuID0gdGhpcy5wcm92aWRlci5zZXJ2aWNlVG9rZW5cbiAgfVxufVxuIl19
@@ -1,19 +1,13 @@
1
- "use strict";
2
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
2
  /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
4
- var __importDefault = (this && this.__importDefault) || function (mod) {
5
- return (mod && mod.__esModule) ? mod : { "default": mod };
6
- };
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.httpPostWithRetry = httpPostWithRetry;
9
3
  // Workaround for https://github.com/axios/axios/issues/3219
10
4
  /// <reference lib="dom" />
11
- const axios_1 = __importDefault(require("axios"));
12
- const https_1 = require("https");
13
- const axiosInstance = axios_1.default.create({
14
- httpsAgent: new https_1.Agent({ keepAlive: true }),
5
+ import axios from "axios";
6
+ import { Agent } from "https";
7
+ const axiosInstance = axios.create({
8
+ httpsAgent: new Agent({ keepAlive: true }),
15
9
  });
16
- async function httpPostWithRetry(url, data, config, logger) {
10
+ export async function httpPostWithRetry(url, data, config, logger) {
17
11
  let attempts = 0;
18
12
  while (true) {
19
13
  ++attempts;
@@ -38,4 +32,4 @@ async function httpPostWithRetry(url, data, config, logger) {
38
32
  }
39
33
  }
40
34
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGFuZGxlcnMvdXRpbC9heGlvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdURBQXVEO0FBQ3ZELHNFQUFzRTs7Ozs7QUFhdEUsOENBcUNDO0FBaERELDREQUE0RDtBQUM1RCwyQkFBMkI7QUFFM0Isa0RBQWdFO0FBQ2hFLGlDQUE2QjtBQUc3QixNQUFNLGFBQWEsR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDO0lBQ2pDLFVBQVUsRUFBRSxJQUFJLGFBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztDQUMzQyxDQUFDLENBQUE7QUFFSyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLEdBQVcsRUFDWCxJQUFTLEVBQ1QsTUFBMEIsRUFDMUIsTUFBYztJQUVkLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQTtJQUNoQixPQUFPLElBQUksRUFBRSxDQUFDO1FBQ1osRUFBRSxRQUFRLENBQUE7UUFDVixJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ3BELENBQUM7UUFBQyxPQUFPLEdBQVEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsb0JBQW9CLFFBQVEsSUFBSSxDQUFDLENBQUE7WUFDakUsc0VBQXNFO1lBQ3RFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7WUFDeEQsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLHVCQUF1QjtnQkFDdkIsTUFBTSxDQUFDLEtBQUssQ0FDVixvQkFBb0IsUUFBUSxxQ0FBcUMsQ0FDbEUsQ0FBQTtnQkFDRCxNQUFNLEdBQUcsQ0FBQTtZQUNYLENBQUM7WUFDRCxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsK0VBQStFO2dCQUMvRSxNQUFNLENBQUMsS0FBSyxDQUNWLDhFQUE4RSxDQUMvRSxDQUFBO2dCQUNELE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUM1QixVQUFVLENBQ1IsT0FBTyxFQUNQLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FDeEQsQ0FDRixDQUFBO2dCQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQTtZQUM1RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1vZHVsZS1ib3VuZGFyeS10eXBlcyAqL1xuXG4vLyBXb3JrYXJvdW5kIGZvciBodHRwczovL2dpdGh1Yi5jb20vYXhpb3MvYXhpb3MvaXNzdWVzLzMyMTlcbi8vLyA8cmVmZXJlbmNlIGxpYj1cImRvbVwiIC8+XG5cbmltcG9ydCBheGlvcywgeyBBeGlvc1JlcXVlc3RDb25maWcsIEF4aW9zUmVzcG9uc2UgfSBmcm9tIFwiYXhpb3NcIlxuaW1wb3J0IHsgQWdlbnQgfSBmcm9tIFwiaHR0cHNcIlxuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2VyXCJcblxuY29uc3QgYXhpb3NJbnN0YW5jZSA9IGF4aW9zLmNyZWF0ZSh7XG4gIGh0dHBzQWdlbnQ6IG5ldyBBZ2VudCh7IGtlZXBBbGl2ZTogdHJ1ZSB9KSxcbn0pXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBodHRwUG9zdFdpdGhSZXRyeShcbiAgdXJsOiBzdHJpbmcsXG4gIGRhdGE6IGFueSxcbiAgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcsXG4gIGxvZ2dlcjogTG9nZ2VyLFxuKTogUHJvbWlzZTxBeGlvc1Jlc3BvbnNlPGFueT4+IHtcbiAgbGV0IGF0dGVtcHRzID0gMFxuICB3aGlsZSAodHJ1ZSkge1xuICAgICsrYXR0ZW1wdHNcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGF4aW9zSW5zdGFuY2UucG9zdCh1cmwsIGRhdGEsIGNvbmZpZylcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgbG9nZ2VyLmRlYnVnKGBIVFRQIFBPU1QgdG8gJHt1cmx9IGZhaWxlZCAoYXR0ZW1wdCAke2F0dGVtcHRzfSk6YClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgICAgIGxvZ2dlci5kZWJ1ZygoZXJyLnJlc3BvbnNlICYmIGVyci5yZXNwb25zZS5kYXRhKSB8fCBlcnIpXG4gICAgICBpZiAoYXR0ZW1wdHMgPj0gNSkge1xuICAgICAgICAvLyBUcnkgNSB0aW1lcyBhdCBtb3N0LlxuICAgICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICAgYE5vIHN1Y2Nlc3MgYWZ0ZXIgJHthdHRlbXB0c30gYXR0ZW1wdHMsIHNlaXppbmcgZnVydGhlciBhdHRlbXB0c2AsXG4gICAgICAgIClcbiAgICAgICAgdGhyb3cgZXJyXG4gICAgICB9XG4gICAgICBpZiAoYXR0ZW1wdHMgPj0gMikge1xuICAgICAgICAvLyBBZnRlciBhdHRlbXB0aW5nIHR3aWNlIGltbWVkaWF0ZWx5LCBkbyBzb21lIGV4cG9uZW50aWFsIGJhY2tvZmYgd2l0aCBqaXR0ZXIuXG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBcIkRvaW5nIGV4cG9uZW50aWFsIGJhY2tvZmYgd2l0aCBqaXR0ZXIsIGJlZm9yZSBhdHRlbXB0aW5nIEhUVFAgUE9TVCBhZ2FpbiAuLi5cIixcbiAgICAgICAgKVxuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT5cbiAgICAgICAgICBzZXRUaW1lb3V0KFxuICAgICAgICAgICAgcmVzb2x2ZSxcbiAgICAgICAgICAgIDI1ICogKE1hdGgucG93KDIsIGF0dGVtcHRzKSArIE1hdGgucmFuZG9tKCkgKiBhdHRlbXB0cyksXG4gICAgICAgICAgKSxcbiAgICAgICAgKVxuICAgICAgICBsb2dnZXIuZGVidWcoXCJEb25lIHdhaXRpbmcsIHdpbGwgdHJ5IEhUVFAgUE9TVCBhZ2FpbiBub3dcIilcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGFuZGxlcnMvdXRpbC9heGlvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsc0VBQXNFO0FBRXRFLDREQUE0RDtBQUM1RCwyQkFBMkI7QUFFM0IsT0FBTyxLQUE0QyxNQUFNLE9BQU8sQ0FBQTtBQUNoRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBRzdCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDakMsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO0NBQzNDLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLEdBQVcsRUFDWCxJQUFTLEVBQ1QsTUFBMEIsRUFDMUIsTUFBYztJQUVkLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQTtJQUNoQixPQUFPLElBQUksRUFBRSxDQUFDO1FBQ1osRUFBRSxRQUFRLENBQUE7UUFDVixJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ3BELENBQUM7UUFBQyxPQUFPLEdBQVEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsb0JBQW9CLFFBQVEsSUFBSSxDQUFDLENBQUE7WUFDakUsc0VBQXNFO1lBQ3RFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7WUFDeEQsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLHVCQUF1QjtnQkFDdkIsTUFBTSxDQUFDLEtBQUssQ0FDVixvQkFBb0IsUUFBUSxxQ0FBcUMsQ0FDbEUsQ0FBQTtnQkFDRCxNQUFNLEdBQUcsQ0FBQTtZQUNYLENBQUM7WUFDRCxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsK0VBQStFO2dCQUMvRSxNQUFNLENBQUMsS0FBSyxDQUNWLDhFQUE4RSxDQUMvRSxDQUFBO2dCQUNELE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUM1QixVQUFVLENBQ1IsT0FBTyxFQUNQLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FDeEQsQ0FDRixDQUFBO2dCQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQTtZQUM1RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1vZHVsZS1ib3VuZGFyeS10eXBlcyAqL1xuXG4vLyBXb3JrYXJvdW5kIGZvciBodHRwczovL2dpdGh1Yi5jb20vYXhpb3MvYXhpb3MvaXNzdWVzLzMyMTlcbi8vLyA8cmVmZXJlbmNlIGxpYj1cImRvbVwiIC8+XG5cbmltcG9ydCBheGlvcywgeyBBeGlvc1JlcXVlc3RDb25maWcsIEF4aW9zUmVzcG9uc2UgfSBmcm9tIFwiYXhpb3NcIlxuaW1wb3J0IHsgQWdlbnQgfSBmcm9tIFwiaHR0cHNcIlxuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2VyXCJcblxuY29uc3QgYXhpb3NJbnN0YW5jZSA9IGF4aW9zLmNyZWF0ZSh7XG4gIGh0dHBzQWdlbnQ6IG5ldyBBZ2VudCh7IGtlZXBBbGl2ZTogdHJ1ZSB9KSxcbn0pXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBodHRwUG9zdFdpdGhSZXRyeShcbiAgdXJsOiBzdHJpbmcsXG4gIGRhdGE6IGFueSxcbiAgY29uZmlnOiBBeGlvc1JlcXVlc3RDb25maWcsXG4gIGxvZ2dlcjogTG9nZ2VyLFxuKTogUHJvbWlzZTxBeGlvc1Jlc3BvbnNlPGFueT4+IHtcbiAgbGV0IGF0dGVtcHRzID0gMFxuICB3aGlsZSAodHJ1ZSkge1xuICAgICsrYXR0ZW1wdHNcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGF4aW9zSW5zdGFuY2UucG9zdCh1cmwsIGRhdGEsIGNvbmZpZylcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgbG9nZ2VyLmRlYnVnKGBIVFRQIFBPU1QgdG8gJHt1cmx9IGZhaWxlZCAoYXR0ZW1wdCAke2F0dGVtcHRzfSk6YClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgICAgIGxvZ2dlci5kZWJ1ZygoZXJyLnJlc3BvbnNlICYmIGVyci5yZXNwb25zZS5kYXRhKSB8fCBlcnIpXG4gICAgICBpZiAoYXR0ZW1wdHMgPj0gNSkge1xuICAgICAgICAvLyBUcnkgNSB0aW1lcyBhdCBtb3N0LlxuICAgICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICAgYE5vIHN1Y2Nlc3MgYWZ0ZXIgJHthdHRlbXB0c30gYXR0ZW1wdHMsIHNlaXppbmcgZnVydGhlciBhdHRlbXB0c2AsXG4gICAgICAgIClcbiAgICAgICAgdGhyb3cgZXJyXG4gICAgICB9XG4gICAgICBpZiAoYXR0ZW1wdHMgPj0gMikge1xuICAgICAgICAvLyBBZnRlciBhdHRlbXB0aW5nIHR3aWNlIGltbWVkaWF0ZWx5LCBkbyBzb21lIGV4cG9uZW50aWFsIGJhY2tvZmYgd2l0aCBqaXR0ZXIuXG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBcIkRvaW5nIGV4cG9uZW50aWFsIGJhY2tvZmYgd2l0aCBqaXR0ZXIsIGJlZm9yZSBhdHRlbXB0aW5nIEhUVFAgUE9TVCBhZ2FpbiAuLi5cIixcbiAgICAgICAgKVxuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT5cbiAgICAgICAgICBzZXRUaW1lb3V0KFxuICAgICAgICAgICAgcmVzb2x2ZSxcbiAgICAgICAgICAgIDI1ICogKE1hdGgucG93KDIsIGF0dGVtcHRzKSArIE1hdGgucmFuZG9tKCkgKiBhdHRlbXB0cyksXG4gICAgICAgICAgKSxcbiAgICAgICAgKVxuICAgICAgICBsb2dnZXIuZGVidWcoXCJEb25lIHdhaXRpbmcsIHdpbGwgdHJ5IEhUVFAgUE9TVCBhZ2FpbiBub3dcIilcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  Functions to translate base64-encoded strings, so they can be used:
4
3
 
@@ -6,20 +5,17 @@ Functions to translate base64-encoded strings, so they can be used:
6
5
  - in OAuth2 PKCE verifier
7
6
  - in cookies (to be on the safe side, as = + / are in fact valid characters in cookies)
8
7
  */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.safeBase64Stringify = safeBase64Stringify;
11
- exports.decodeSafeBase64 = decodeSafeBase64;
12
8
  /**
13
9
  * Use this on a base64-encoded string to translate = + / into replacement characters.
14
10
  */
15
- function safeBase64Stringify(value) {
11
+ export function safeBase64Stringify(value) {
16
12
  return value.replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
17
13
  }
18
14
  /**
19
15
  * Decode a Base64 value that is run through safeBase64Stringify to the actual string.
20
16
  */
21
- function decodeSafeBase64(value) {
17
+ export function decodeSafeBase64(value) {
22
18
  const desafed = value.replace(/-/g, "+").replace(/_/g, "/");
23
19
  return Buffer.from(desafed, "base64").toString();
24
20
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZTY0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hhbmRsZXJzL3V0aWwvYmFzZTY0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0VBTUU7O0FBS0Ysa0RBRUM7QUFLRCw0Q0FHQztBQWJEOztHQUVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsS0FBYTtJQUMvQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUN4RSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFhO0lBQzVDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDM0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkZ1bmN0aW9ucyB0byB0cmFuc2xhdGUgYmFzZTY0LWVuY29kZWQgc3RyaW5ncywgc28gdGhleSBjYW4gYmUgdXNlZDpcblxuICAtIGluIFVSTCdzIHdpdGhvdXQgbmVlZGluZyBhZGRpdGlvbmFsIGVuY29kaW5nXG4gIC0gaW4gT0F1dGgyIFBLQ0UgdmVyaWZpZXJcbiAgLSBpbiBjb29raWVzICh0byBiZSBvbiB0aGUgc2FmZSBzaWRlLCBhcyA9ICsgLyBhcmUgaW4gZmFjdCB2YWxpZCBjaGFyYWN0ZXJzIGluIGNvb2tpZXMpXG4qL1xuXG4vKipcbiAqIFVzZSB0aGlzIG9uIGEgYmFzZTY0LWVuY29kZWQgc3RyaW5nIHRvIHRyYW5zbGF0ZSA9ICsgLyBpbnRvIHJlcGxhY2VtZW50IGNoYXJhY3RlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzYWZlQmFzZTY0U3RyaW5naWZ5KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZSgvPS9nLCBcIlwiKS5yZXBsYWNlKC9cXCsvZywgXCItXCIpLnJlcGxhY2UoL1xcLy9nLCBcIl9cIilcbn1cblxuLyoqXG4gKiBEZWNvZGUgYSBCYXNlNjQgdmFsdWUgdGhhdCBpcyBydW4gdGhyb3VnaCBzYWZlQmFzZTY0U3RyaW5naWZ5IHRvIHRoZSBhY3R1YWwgc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlU2FmZUJhc2U2NCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGVzYWZlZCA9IHZhbHVlLnJlcGxhY2UoLy0vZywgXCIrXCIpLnJlcGxhY2UoL18vZywgXCIvXCIpXG4gIHJldHVybiBCdWZmZXIuZnJvbShkZXNhZmVkLCBcImJhc2U2NFwiKS50b1N0cmluZygpXG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZTY0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hhbmRsZXJzL3V0aWwvYmFzZTY0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7RUFNRTtBQUVGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEtBQWE7SUFDL0MsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUE7QUFDeEUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWE7SUFDNUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUMzRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuRnVuY3Rpb25zIHRvIHRyYW5zbGF0ZSBiYXNlNjQtZW5jb2RlZCBzdHJpbmdzLCBzbyB0aGV5IGNhbiBiZSB1c2VkOlxuXG4gIC0gaW4gVVJMJ3Mgd2l0aG91dCBuZWVkaW5nIGFkZGl0aW9uYWwgZW5jb2RpbmdcbiAgLSBpbiBPQXV0aDIgUEtDRSB2ZXJpZmllclxuICAtIGluIGNvb2tpZXMgKHRvIGJlIG9uIHRoZSBzYWZlIHNpZGUsIGFzID0gKyAvIGFyZSBpbiBmYWN0IHZhbGlkIGNoYXJhY3RlcnMgaW4gY29va2llcylcbiovXG5cbi8qKlxuICogVXNlIHRoaXMgb24gYSBiYXNlNjQtZW5jb2RlZCBzdHJpbmcgdG8gdHJhbnNsYXRlID0gKyAvIGludG8gcmVwbGFjZW1lbnQgY2hhcmFjdGVycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhZmVCYXNlNjRTdHJpbmdpZnkodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlKC89L2csIFwiXCIpLnJlcGxhY2UoL1xcKy9nLCBcIi1cIikucmVwbGFjZSgvXFwvL2csIFwiX1wiKVxufVxuXG4vKipcbiAqIERlY29kZSBhIEJhc2U2NCB2YWx1ZSB0aGF0IGlzIHJ1biB0aHJvdWdoIHNhZmVCYXNlNjRTdHJpbmdpZnkgdG8gdGhlIGFjdHVhbCBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVTYWZlQmFzZTY0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBkZXNhZmVkID0gdmFsdWUucmVwbGFjZSgvLS9nLCBcIitcIikucmVwbGFjZSgvXy9nLCBcIi9cIilcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGRlc2FmZWQsIFwiYmFzZTY0XCIpLnRvU3RyaW5nKClcbn1cbiJdfQ==