@aws-cdk/region-info 2.72.1 → 2.74.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.
package/.jsii CHANGED
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "name": "@aws-cdk/region-info",
33
33
  "readme": {
34
- "markdown": "# AWS Region-Specific Information Directory\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Stable](https://img.shields.io/badge/cdk--constructs-stable-success.svg?style=for-the-badge)\n\n---\n\n<!--END STABILITY BANNER-->\n\n## Usage\n\nSome information used in CDK Applications differs from one AWS region to\nanother, such as service principals used in IAM policies, S3 static website\nendpoints, ...\n\n### The `RegionInfo` class\n\nThe library offers a simple interface to obtain region specific information in\nthe form of the `RegionInfo` class. This is the preferred way to interact with\nthe regional information database:\n\n```ts\n// Get the information for \"eu-west-1\":\nconst region = regionInfo.RegionInfo.get('eu-west-1');\n\n// Access attributes:\nregion.s3StaticWebsiteEndpoint; // s3-website-eu-west-1.amazonaws.com\nregion.servicePrincipal('logs.amazonaws.com'); // logs.eu-west-1.amazonaws.com\n```\n\nThe `RegionInfo` layer is built on top of the Low-Level API, which is described\nbelow and can be used to register additional data, including user-defined facts\nthat are not available through the `RegionInfo` interface.\n\n### Low-Level API\n\nThis library offers a primitive database of such information so that CDK\nconstructs can easily access regional information. The `FactName` class provides\na list of known fact names, which can then be used with the `RegionInfo` to\nretrieve a particular value:\n\n```ts\nconst codeDeployPrincipal = regionInfo.Fact.find('us-east-1', regionInfo.FactName.servicePrincipal('codedeploy.amazonaws.com'));\n// => codedeploy.us-east-1.amazonaws.com\n\nconst staticWebsite = regionInfo.Fact.find('ap-northeast-1', regionInfo.FactName.S3_STATIC_WEBSITE_ENDPOINT);\n// => s3-website-ap-northeast-1.amazonaws.com\n```\n\n## Supplying new or missing information\n\nAs new regions are released, it might happen that a particular fact you need is\nmissing from the library. In such cases, the `Fact.register` method can be used\nto inject FactName into the database:\n\n```ts\nclass MyFact implements regionInfo.IFact {\n public readonly region = 'bermuda-triangle-1';\n public readonly name = regionInfo.FactName.servicePrincipal('s3.amazonaws.com');\n public readonly value = 's3-website.bermuda-triangle-1.nowhere.com';\n}\n\nregionInfo.Fact.register(new MyFact());\n```\n\n## Overriding incorrect information\n\nIn the event information provided by the library is incorrect, it can be\noverridden using the same `Fact.register` method demonstrated above, simply\nadding an extra boolean argument:\n\n```ts\nclass MyFact implements regionInfo.IFact {\n public readonly region = 'us-east-1';\n public readonly name = regionInfo.FactName.servicePrincipal('service.amazonaws.com');\n public readonly value = 'the-correct-principal.amazonaws.com';\n}\n\nregionInfo.Fact.register(new MyFact(), true /* Allow overriding information */);\n```\n\nIf you happen to have stumbled upon incorrect data built into this library, it\nis always a good idea to report your findings in a [GitHub issue], so we can fix\nit for everyone else!\n\n[GitHub issue]: https://github.com/aws/aws-cdk/issues\n\n---\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n"
34
+ "markdown": "# AWS Region-Specific Information Directory\n\n\n## Usage\n\nSome information used in CDK Applications differs from one AWS region to\nanother, such as service principals used in IAM policies, S3 static website\nendpoints, ...\n\n### The `RegionInfo` class\n\nThe library offers a simple interface to obtain region specific information in\nthe form of the `RegionInfo` class. This is the preferred way to interact with\nthe regional information database:\n\n```ts\n// Get the information for \"eu-west-1\":\nconst region = regionInfo.RegionInfo.get('eu-west-1');\n\n// Access attributes:\nregion.s3StaticWebsiteEndpoint; // s3-website-eu-west-1.amazonaws.com\nregion.servicePrincipal('logs.amazonaws.com'); // logs.eu-west-1.amazonaws.com\n```\n\nThe `RegionInfo` layer is built on top of the Low-Level API, which is described\nbelow and can be used to register additional data, including user-defined facts\nthat are not available through the `RegionInfo` interface.\n\n### Low-Level API\n\nThis library offers a primitive database of such information so that CDK\nconstructs can easily access regional information. The `FactName` class provides\na list of known fact names, which can then be used with the `RegionInfo` to\nretrieve a particular value:\n\n```ts\nconst codeDeployPrincipal = regionInfo.Fact.find('us-east-1', regionInfo.FactName.servicePrincipal('codedeploy.amazonaws.com'));\n// => codedeploy.us-east-1.amazonaws.com\n\nconst staticWebsite = regionInfo.Fact.find('ap-northeast-1', regionInfo.FactName.S3_STATIC_WEBSITE_ENDPOINT);\n// => s3-website-ap-northeast-1.amazonaws.com\n```\n\n## Supplying new or missing information\n\nAs new regions are released, it might happen that a particular fact you need is\nmissing from the library. In such cases, the `Fact.register` method can be used\nto inject FactName into the database:\n\n```ts\nclass MyFact implements regionInfo.IFact {\n public readonly region = 'bermuda-triangle-1';\n public readonly name = regionInfo.FactName.servicePrincipal('s3.amazonaws.com');\n public readonly value = 's3-website.bermuda-triangle-1.nowhere.com';\n}\n\nregionInfo.Fact.register(new MyFact());\n```\n\n## Overriding incorrect information\n\nIn the event information provided by the library is incorrect, it can be\noverridden using the same `Fact.register` method demonstrated above, simply\nadding an extra boolean argument:\n\n```ts\nclass MyFact implements regionInfo.IFact {\n public readonly region = 'us-east-1';\n public readonly name = regionInfo.FactName.servicePrincipal('service.amazonaws.com');\n public readonly value = 'the-correct-principal.amazonaws.com';\n}\n\nregionInfo.Fact.register(new MyFact(), true /* Allow overriding information */);\n```\n\nIf you happen to have stumbled upon incorrect data built into this library, it\nis always a good idea to report your findings in a [GitHub issue], so we can fix\nit for everyone else!\n\n[GitHub issue]: https://github.com/aws/aws-cdk/issues\n\n---\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n"
35
35
  },
36
36
  "repository": {
37
37
  "directory": "packages/@aws-cdk/region-info",
@@ -152,11 +152,7 @@
152
152
  "assembly": "@aws-cdk/region-info",
153
153
  "docs": {
154
154
  "stability": "stable",
155
- "summary": "A database of regional information.",
156
- "example": "class MyFact implements regionInfo.IFact {\n public readonly region = 'bermuda-triangle-1';\n public readonly name = regionInfo.FactName.servicePrincipal('s3.amazonaws.com');\n public readonly value = 's3-website.bermuda-triangle-1.nowhere.com';\n}\n\nregionInfo.Fact.register(new MyFact());",
157
- "custom": {
158
- "exampleMetadata": "infused"
159
- }
155
+ "summary": "A database of regional information."
160
156
  },
161
157
  "fqn": "@aws-cdk/region-info.Fact",
162
158
  "kind": "class",
@@ -349,9 +345,9 @@
349
345
  "docs": {
350
346
  "stability": "stable",
351
347
  "summary": "All standardized fact names.",
352
- "example": "class MyFact implements regionInfo.IFact {\n public readonly region = 'bermuda-triangle-1';\n public readonly name = regionInfo.FactName.servicePrincipal('s3.amazonaws.com');\n public readonly value = 's3-website.bermuda-triangle-1.nowhere.com';\n}\n\nregionInfo.Fact.register(new MyFact());",
348
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as region_info from '@aws-cdk/region-info';\nconst factName = new region_info.FactName();",
353
349
  "custom": {
354
- "exampleMetadata": "infused"
350
+ "exampleMetadata": "fixture=_generated"
355
351
  }
356
352
  },
357
353
  "fqn": "@aws-cdk/region-info.FactName",
@@ -756,9 +752,9 @@
756
752
  "docs": {
757
753
  "stability": "stable",
758
754
  "summary": "Information pertaining to an AWS region.",
759
- "example": "// Get the information for \"eu-west-1\":\nconst region = regionInfo.RegionInfo.get('eu-west-1');\n\n// Access attributes:\nregion.s3StaticWebsiteEndpoint; // s3-website-eu-west-1.amazonaws.com\nregion.servicePrincipal('logs.amazonaws.com'); // logs.eu-west-1.amazonaws.com",
755
+ "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as region_info from '@aws-cdk/region-info';\nconst regionInfo = region_info.RegionInfo.get('name');",
760
756
  "custom": {
761
- "exampleMetadata": "infused"
757
+ "exampleMetadata": "fixture=_generated"
762
758
  }
763
759
  },
764
760
  "fqn": "@aws-cdk/region-info.RegionInfo",
@@ -1225,6 +1221,6 @@
1225
1221
  "symbolId": "lib/region-info:RegionInfo"
1226
1222
  }
1227
1223
  },
1228
- "version": "2.72.1",
1224
+ "version": "2.74.0",
1229
1225
  "fingerprint": "**********"
1230
1226
  }
Binary file
package/README.md CHANGED
@@ -1,13 +1,5 @@
1
1
  # AWS Region-Specific Information Directory
2
- <!--BEGIN STABILITY BANNER-->
3
2
 
4
- ---
5
-
6
- ![cdk-constructs: Stable](https://img.shields.io/badge/cdk--constructs-stable-success.svg?style=for-the-badge)
7
-
8
- ---
9
-
10
- <!--END STABILITY BANNER-->
11
3
 
12
4
  ## Usage
13
5
 
@@ -1 +1,2 @@
1
+ export declare function main(): Promise<void>;
1
2
  export declare function after(region: string, ruleOrRegion: string | symbol): boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.after = void 0;
3
+ exports.after = exports.main = void 0;
4
4
  const path = require("path");
5
5
  const fs = require("fs-extra");
6
6
  const fact_tables_1 = require("./fact-tables");
@@ -84,6 +84,7 @@ async function main() {
84
84
  lines.push(` Fact.register({ region: ${JSON.stringify(region)}, name: FactName.${factName}, value: ${JSON.stringify(value)} });`);
85
85
  }
86
86
  }
87
+ exports.main = main;
87
88
  /**
88
89
  * Verifies that the provided map of region to fact does not contain an entry
89
90
  * for a region that was not registered in `AWS_REGIONS`.
@@ -121,4 +122,4 @@ main().catch(e => {
121
122
  console.error(e);
122
123
  process.exit(-1);
123
124
  });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtc3RhdGljLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnZW5lcmF0ZS1zdGF0aWMtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLCtDQUd1QjtBQUN2QixzREFNNkI7QUFDN0IsNENBQXlDO0FBRXpDLEtBQUssVUFBVSxJQUFJO0lBQ2pCLFlBQVksQ0FBQyxrQ0FBb0IsQ0FBQyxDQUFDO0lBQ25DLFlBQVksQ0FBQyxxQ0FBdUIsQ0FBQyxDQUFDO0lBQ3RDLFlBQVksQ0FBQyw0QkFBYyxDQUFDLENBQUM7SUFDN0IsWUFBWSxDQUFDLGtDQUFvQixDQUFDLENBQUM7SUFDbkMsWUFBWSxDQUFDLDhDQUFnQyxDQUFDLENBQUM7SUFDL0Msa0JBQWtCLENBQUMsNkNBQStCLENBQUMsQ0FBQztJQUVwRCxNQUFNLEtBQUssR0FBRztRQUNaLDBDQUEwQztRQUMxQyxFQUFFO1FBQ0Ysa0NBQWtDO1FBQ2xDLDhCQUE4QjtRQUM5QixFQUFFO1FBQ0YsS0FBSztRQUNMLG9FQUFvRTtRQUNwRSxJQUFJO1FBQ0osaUJBQWlCLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDM0MsS0FBSztRQUNMLHlCQUF5QjtRQUN6QixPQUFPO1FBQ1AsMkVBQTJFO1FBQzNFLE9BQU87UUFDUCxvQ0FBb0M7S0FDckMsQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUU3QixLQUFLLE1BQU0sTUFBTSxJQUFJLDBCQUFXLEVBQUU7UUFDaEMsSUFBSSxTQUFTLEdBQUcsMkJBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDcEQsSUFBSSxZQUFZLEdBQUcsMkJBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFFMUQsS0FBSyxNQUFNLEdBQUcsSUFBSSwyQkFBYSxFQUFFO1lBQy9CLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxH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QUFPLE1BQU0sS0FBSyxZQUFZLElBQUksQ0FBQyxJQUFBLHFCQUFNLEVBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFGRCxzQkFFQztBQUVELElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUNmLHNDQUFzQztJQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQge1xuICBBUFBNRVNIX0VDUl9BQ0NPVU5UUywgQVdTX0NES19NRVRBREFUQSwgQ0xPVURXQVRDSF9MQU1CREFfSU5TSUdIVFNfQVJOUywgRExDX1JFUE9TSVRPUllfQUNDT1VOVFMsXG4gIEVMQlYyX0FDQ09VTlRTLCBGSVJFSE9TRV9DSURSX0JMT0NLUywgUEFSVElUSU9OX01BUCwgUk9VVEVfNTNfQlVDS0VUX1dFQlNJVEVfWk9ORV9JRFMsIEVCU19FTlZfRU5EUE9JTlRfSE9TVEVEX1pPTkVfSURTLCBBRE9UX0xBTUJEQV9MQVlFUl9BUk5TLFxufSBmcm9tICcuL2ZhY3QtdGFibGVzJztcbmltcG9ydCB7XG4gIEFXU19SRUdJT05TLFxuICBBV1NfU0VSVklDRVMsXG4gIGJlZm9yZSxcbiAgUlVMRV9TM19XRUJTSVRFX1JFR0lPTkFMX1NVQkRPTUFJTixcbiAgUlVMRV9DTEFTU0lDX1BBUlRJVElPTl9CRUNPTUVTX09QVF9JTixcbn0gZnJvbSAnLi4vbGliL2F3cy1lbnRpdGllcyc7XG5pbXBvcnQgeyBEZWZhdWx0IH0gZnJvbSAnLi4vbGliL2RlZmF1bHQnO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCk6IFByb21pc2U8dm9pZD4ge1xuICBjaGVja1JlZ2lvbnMoQVBQTUVTSF9FQ1JfQUNDT1VOVFMpO1xuICBjaGVja1JlZ2lvbnMoRExDX1JFUE9TSVRPUllfQUNDT1VOVFMpO1xuICBjaGVja1JlZ2lvbnMoRUxCVjJfQUNDT1VOVFMpO1xuICBjaGVja1JlZ2lvbnMoRklSRUhPU0VfQ0lEUl9CTE9DS1MpO1xuICBjaGVja1JlZ2lvbnMoUk9VVEVfNTNfQlVDS0VUX1dFQlNJVEVfWk9ORV9JRFMpO1xuICBjaGVja1JlZ2lvbnNTdWJNYXAoQ0xPVURXQVRDSF9MQU1CREFfSU5TSUdIVFNfQVJOUyk7XG5cbiAgY29uc3QgbGluZXMgPSBbXG4gICAgXCJpbXBvcnQgeyBGYWN0LCBGYWN0TmFtZSB9IGZyb20gJy4vZmFjdCc7XCIsXG4gICAgJycsXG4gICAgJy8qIGVzbGludC1kaXNhYmxlIHF1b3RlLXByb3BzICovJyxcbiAgICAnLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqLycsXG4gICAgJycsXG4gICAgJy8qKicsXG4gICAgJyAqIEJ1aWx0LWluIHJlZ2lvbmFsIGluZm9ybWF0aW9uLCByZS1nZW5lcmF0ZWQgYnkgYG5wbSBydW4gYnVpbGRgLicsXG4gICAgJyAqJyxcbiAgICBgICogQGdlbmVyYXRlZCAke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1gLFxuICAgICcgKi8nLFxuICAgICdleHBvcnQgY2xhc3MgQnVpbHRJbnMgeycsXG4gICAgJyAgLyoqJyxcbiAgICAnICAgKiBSZWdpc3RlcnMgYWxsIHRoZSBidWlsdCBpbiByZWdpb25hbCBkYXRhIGluIHRoZSBSZWdpb25JbmZvIGRhdGFiYXNlLicsXG4gICAgJyAgICovJyxcbiAgICAnICBwdWJsaWMgc3RhdGljIHJlZ2lzdGVyKCk6IHZvaWQgeycsXG4gIF07XG5cbiAgY29uc3QgZGVmYXVsdE1hcCA9ICdkZWZhdWx0JztcblxuICBmb3IgKGNvbnN0IHJlZ2lvbiBvZiBBV1NfUkVHSU9OUykge1xuICAgIGxldCBwYXJ0aXRpb24gPSBQQVJUSVRJT05fTUFQW2RlZmF1bHRNYXBdLnBhcnRpdGlvbjtcbiAgICBsZXQgZG9tYWluU3VmZml4ID0gUEFSVElUSU9OX01BUFtkZWZhdWx0TWFwXS5kb21haW5TdWZmaXg7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBQQVJUSVRJT05fTUFQKSB7XG4gICAgICBpZiAocmVnaW9uLnN0YXJ0c1dpdGgoa2V5KSkge1xuICAgICAgICBwYXJ0aXRpb24gPSBQQVJUSVRJT05fTUFQW2tleV0ucGFydGl0aW9uO1xuICAgICAgICBkb21haW5TdWZmaXggPSBQQVJUSVRJT05fTUFQW2tleV0uZG9tYWluU3VmZml4O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyRmFjdChyZWdpb24sICdQQVJUSVRJT04nLCBwYXJ0aXRpb24pO1xuICAgIHJlZ2lzdGVyRmFjdChyZWdpb24sICdET01BSU5fU1VGRklYJywgZG9tYWluU3VmZml4KTtcblxuICAgIHJlZ2lzdGVyRmFjdChyZWdpb24sICdDREtfTUVUQURBVEFfUkVTT1VSQ0VfQVZBSUxBQkxFJywgQVdTX0NES19NRVRBREFUQS5oYXMocmVnaW9uKSA/ICdZRVMnIDogJ05PJyk7XG5cbiAgICByZWdpc3RlckZhY3QocmVnaW9uLCAnSVNfT1BUX0lOX1JFR0lPTicsIHBhcnRpdGlvbiA9PT0gJ2F3cycgJiYgYWZ0ZXIocmVnaW9uLCBSVUxFX0NMQVNTSUNfUEFSVElUSU9OX0JFQ09NRVNfT1BUX0lOKSA/ICdZRVMnIDogJ05PJyk7XG5cbiAgICByZWdpc3RlckZhY3QocmVnaW9uLCAnUzNfU1RBVElDX1dFQlNJVEVfRU5EUE9JTlQnLCBiZWZvcmUocmVnaW9uLCBSVUxFX1MzX1dFQlNJVEVfUkVHSU9OQUxfU1VCRE9NQUlOKVxuICAgICAgPyBgczMtd2Vic2l0ZS0ke3JlZ2lvbn0uJHtkb21haW5TdWZmaXh9YFxuICAgICAgOiBgczMtd2Vic2l0ZS4ke3JlZ2lvbn0uJHtkb21haW5TdWZmaXh9YCk7XG5cbiAgICByZWdpc3RlckZhY3QocmVnaW9uLCAnUzNfU1RBVElDX1dFQlNJVEVfWk9ORV81M19IT1NURURfWk9ORV9JRCcsIFJPVVRFXzUzX0JVQ0tFVF9XRUJTSVRFX1pPTkVfSURTW3JlZ2lvbl0gfHwgJycpO1xuXG4gICAgcmVnaXN0ZXJGYWN0KHJlZ2lvbiwgJ0VCU19FTlZfRU5EUE9JTlRfSE9TVEVEX1pPTkVfSUQnLCBFQlNfRU5WX0VORFBPSU5UX0hPU1RFRF9aT05FX0lEU1tyZWdpb25dIHx8ICcnKTtcblxuICAgIHJlZ2lzdGVyRmFjdChyZWdpb24sICdFTEJWMl9BQ0NPVU5UJywgRUxCVjJfQUNDT1VOVFNbcmVnaW9uXSk7XG5cbiAgICByZWdpc3RlckZhY3QocmVnaW9uLCAnRExDX1JFUE9TSVRPUllfQUNDT1VOVCcsIERMQ19SRVBPU0lUT1JZX0FDQ09VTlRTW3JlZ2lvbl0pO1xuXG4gICAgcmVnaXN0ZXJGYWN0KHJlZ2lvbiwgJ0FQUE1FU0hfRUNSX0FDQ09VTlQnLCBBUFBNRVNIX0VDUl9BQ0NPVU5UU1tyZWdpb25dKTtcblxuICAgIGNvbnN0IGZpcmVob3NlQ2lkckJsb2NrID0gRklSRUhPU0VfQ0lEUl9CTE9DS1NbcmVnaW9uXTtcbiAgICBpZiAoZmlyZWhvc2VDaWRyQmxvY2spIHtcbiAgICAgIHJlZ2lzdGVyRmFjdChyZWdpb24sICdGSVJFSE9TRV9DSURSX0JMT0NLJywgYCR7RklSRUhPU0VfQ0lEUl9CTE9DS1NbcmVnaW9uXX0vMjdgKTtcbiAgICB9XG5cbiAgICBjb25zdCB2cGNFbmRwb2ludFNlcnZpY2VOYW1lUHJlZml4ID0gYCR7ZG9tYWluU3VmZml4LnNwbGl0KCcuJykucmV2ZXJzZSgpLmpvaW4oJy4nKX0udnBjZWA7XG4gICAgcmVnaXN0ZXJGYWN0KHJlZ2lvbiwgJ1ZQQ19FTkRQT0lOVF9TRVJWSUNFX05BTUVfUFJFRklYJywgdnBjRW5kcG9pbnRTZXJ2aWNlTmFtZVByZWZpeCk7XG5cbiAgICBmb3IgKGNvbnN0IHNlcnZpY2Ugb2YgQVdTX1NFUlZJQ0VTKSB7XG4gICAgICByZWdpc3RlckZhY3QocmVnaW9uLCBbJ3NlcnZpY2VQcmluY2lwYWwnLCBzZXJ2aWNlXSwgRGVmYXVsdC5zZXJ2aWNlUHJpbmNpcGFsKHNlcnZpY2UsIHJlZ2lvbiwgZG9tYWluU3VmZml4KSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB2ZXJzaW9uIGluIENMT1VEV0FUQ0hfTEFNQkRBX0lOU0lHSFRTX0FSTlMpIHtcbiAgICAgIGZvciAoY29uc3QgYXJjaCBpbiBDTE9VRFdBVENIX0xBTUJEQV9JTlNJR0hUU19BUk5TW3ZlcnNpb25dKSB7XG4gICAgICAgIHJlZ2lzdGVyRmFjdChyZWdpb24sIFsnY2xvdWR3YXRjaExhbWJkYUluc2lnaHRzVmVyc2lvbicsIHZlcnNpb24sIGFyY2hdLCBDTE9VRFdBVENIX0xBTUJEQV9JTlNJR0hUU19BUk5TW3ZlcnNpb25dW2FyY2hdW3JlZ2lvbl0pO1xuXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB0eXBlIGluIEFET1RfTEFNQkRBX0xBWUVSX0FSTlMpIHtcbiAgICAgIGZvciAoY29uc3QgdmVyc2lvbiBpbiBBRE9UX0xBTUJEQV9MQVlFUl9BUk5TW3R5cGVdKSB7XG4gICAgICAgIGZvciAoY29uc3QgYXJjaCBpbiBBRE9UX0xBTUJEQV9MQVlFUl9BUk5TW3R5cGVdW3ZlcnNpb25dKSB7XG4gICAgICAgICAgcmVnaXN0ZXJGYWN0KFxuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgWydhZG90TGFtYmRhTGF5ZXInLCB0eXBlLCB2ZXJzaW9uLCBhcmNoXSxcbiAgICAgICAgICAgIEFET1RfTEFNQkRBX0xBWUVSX0FSTlNbdHlwZV1bdmVyc2lvbl1bYXJjaF1bcmVnaW9uXSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGxpbmVzLnB1c2goJyAgfScpO1xuICBsaW5lcy5wdXNoKCcnKTtcbiAgbGluZXMucHVzaCgnICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge30nKTtcbiAgbGluZXMucHVzaCgnfScpO1xuXG4gIGF3YWl0IGZzLndyaXRlRmlsZShwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnbGliJywgJ2J1aWx0LWlucy5nZW5lcmF0ZWQudHMnKSwgbGluZXMuam9pbignXFxuJykpO1xuXG4gIGZ1bmN0aW9uIHJlZ2lzdGVyRmFjdChyZWdpb246IHN0cmluZywgbmFtZTogc3RyaW5nIHwgc3RyaW5nW10sIHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmYWN0TmFtZSA9IHR5cGVvZiBuYW1lID09PSAnc3RyaW5nJyA/IG5hbWUgOiBgJHtuYW1lWzBdfSgke25hbWUuc2xpY2UoMSkubWFwKHMgPT4gSlNPTi5zdHJpbmdpZnkocykpLmpvaW4oJywgJyl9KWA7XG4gICAgbGluZXMucHVzaChgICAgIEZhY3QucmVnaXN0ZXIoeyByZWdpb246ICR7SlNPTi5zdHJpbmdpZnkocmVnaW9uKX0sIG5hbWU6IEZhY3ROYW1lLiR7ZmFjdE5hbWV9LCB2YWx1ZTogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9IH0pO2ApO1xuICB9XG59XG5cbi8qKlxuICogVmVyaWZpZXMgdGhhdCB0aGUgcHJvdmlkZWQgbWFwIG9mIHJlZ2lvbiB0byBmYWN0IGRvZXMgbm90IGNvbnRhaW4gYW4gZW50cnlcbiAqIGZvciBhIHJlZ2lvbiB0aGF0IHdhcyBub3QgcmVnaXN0ZXJlZCBpbiBgQVdTX1JFR0lPTlNgLlxuICovXG5mdW5jdGlvbiBjaGVja1JlZ2lvbnMobWFwOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICBjb25zdCBhbGxSZWdpb25zID0gbmV3IFNldChBV1NfUkVHSU9OUyk7XG4gIGZvciAoY29uc3QgcmVnaW9uIG9mIE9iamVjdC5rZXlzKG1hcCkpIHtcbiAgICBpZiAoIWFsbFJlZ2lvbnMuaGFzKHJlZ2lvbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW4tcmVnaXN0ZXJlZCByZWdpb24gZmFjdCBmb3VuZDogJHtyZWdpb259LiBBZGQgdG8gQVdTX1JFR0lPTlMgbGlzdCFgKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBWZXJpZmllcyB0aGF0IHRoZSBwcm92aWRlZCBtYXAgb2YgPEtFWT4gdG8gcmVnaW9uIHRvIGZhY3QgZG9lcyBub3QgY29udGFpbiBhbiBlbnRyeVxuICogZm9yIGEgcmVnaW9uIHRoYXQgd2FzIG5vdCByZWdpc3RlcmVkIGluIGBBV1NfUkVHSU9OU2AuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrUmVnaW9uc1N1Yk1hcChtYXA6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+Pj4pIHtcbiAgY29uc3QgYWxsUmVnaW9ucyA9IG5ldyBTZXQoQVdTX1JFR0lPTlMpO1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtYXApKSB7XG4gICAgZm9yIChjb25zdCBzdWJLZXkgb2YgT2JqZWN0LmtleXMobWFwW2tleV0pKSB7XG4gICAgICBmb3IgKGNvbnN0IHJlZ2lvbiBvZiBPYmplY3Qua2V5cyhtYXBba2V5XVtzdWJLZXldKSkge1xuICAgICAgICBpZiAoIWFsbFJlZ2lvbnMuaGFzKHJlZ2lvbikpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuLXJlZ2lzdGVyZWQgcmVnaW9uIGZhY3QgZm91bmQ6ICR7cmVnaW9ufS4gQWRkIHRvIEFXU19SRUdJT05TIGxpc3QhYCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWZ0ZXIocmVnaW9uOiBzdHJpbmcsIHJ1bGVPclJlZ2lvbjogc3RyaW5nIHwgc3ltYm9sKSB7XG4gIHJldHVybiByZWdpb24gIT09IHJ1bGVPclJlZ2lvbiAmJiAhYmVmb3JlKHJlZ2lvbiwgcnVsZU9yUmVnaW9uKTtcbn1cblxubWFpbigpLmNhdGNoKGUgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICBjb25zb2xlLmVycm9yKGUpO1xuICBwcm9jZXNzLmV4aXQoLTEpO1xufSk7XG4iXX0=
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtc3RhdGljLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnZW5lcmF0ZS1zdGF0aWMtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLCtDQUd1QjtBQUN2QixzREFNNkI7QUFDN0IsNENBQXlDO0FBRWxDLEtBQUssVUFBVSxJQUFJO0lBQ3hCLFlBQVksQ0FBQyxrQ0FBb0IsQ0FBQyxDQUFDO0lBQ25DLFlBQVksQ0FBQyxxQ0FBdUIsQ0FBQyxDQUFDO0lBQ3RDLFlBQVksQ0FBQyw0QkFBYyxDQUFDLENBQUM7SUFDN0IsWUFBWSxDQUFDLGtDQUFvQixDQUFDLENBQUM7SUFDbkMsWUFBWSxDQUFDLDhDQUFnQyxDQUFDLENBQUM7SUFDL0Msa0JBQWtCLENBQUMsNkNBQStCLENBQUMsQ0FBQztJQUVwRCxNQUFNLEtBQUssR0FBRztRQUNaLDBDQUEwQztRQUMxQyxFQUFFO1FBQ0Ysa0NBQWtDO1FBQ2xDLDhCQUE4QjtRQUM5QixFQUFFO1FBQ0YsS0FBSztRQUNMLG9FQUFvRTtRQUNwRSxJQUFJO1FBQ0osaUJBQWlCLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDM0MsS0FBSztRQUNMLHlCQUF5QjtRQUN6QixPQUFPO1FBQ1AsMkVBQTJFO1FBQzNFLE9BQU87UUFDUCxvQ0FBb0M7S0FDckMsQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUU3QixLQUFLLE1BQU0sTUFBTSxJQUFJLDBCQUFXLEVBQUU7UUFDaEMsSUFBSSxTQUFTLEdBQUcsMkJBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDcEQsSUFBSSxZQUFZLEdBQUcsMkJBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFFMUQsS0FBSyxNQUFNLEdBQUcsSUFBSSwyQkFBYSxFQUFFO1lBQy9CLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxH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WUFBNkI7SUFDakUsT0FBTyxNQUFNLEtBQUssWUFBWSxJQUFJLENBQUMsSUFBQSxxQkFBTSxFQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRkQsc0JBRUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDZixzQ0FBc0M7SUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHtcbiAgQVBQTUVTSF9FQ1JfQUNDT1VOVFMsIEFXU19DREtfTUVUQURBVEEsIENMT1VEV0FUQ0hfTEFNQkRBX0lOU0lHSFRTX0FSTlMsIERMQ19SRVBPU0lUT1JZX0FDQ09VTlRTLFxuICBFTEJWMl9BQ0NPVU5UUywgRklSRUhPU0VfQ0lEUl9CTE9DS1MsIFBBUlRJVElPTl9NQVAsIFJPVVRFXzUzX0JVQ0tFVF9XRUJTSVRFX1pPTkVfSURTLCBFQlNfRU5WX0VORFBPSU5UX0hPU1RFRF9aT05FX0lEUywgQURPVF9MQU1CREFfTEFZRVJfQVJOUyxcbn0gZnJvbSAnLi9mYWN0LXRhYmxlcyc7XG5pbXBvcnQge1xuICBBV1NfUkVHSU9OUyxcbiAgQVdTX1NFUlZJQ0VTLFxuICBiZWZvcmUsXG4gIFJVTEVfUzNfV0VCU0lURV9SRUdJT05BTF9TVUJET01BSU4sXG4gIFJVTEVfQ0xBU1NJQ19QQVJUSVRJT05fQkVDT01FU19PUFRfSU4sXG59IGZyb20gJy4uL2xpYi9hd3MtZW50aXRpZXMnO1xuaW1wb3J0IHsgRGVmYXVsdCB9IGZyb20gJy4uL2xpYi9kZWZhdWx0JztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1haW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNoZWNrUmVnaW9ucyhBUFBNRVNIX0VDUl9BQ0NPVU5UUyk7XG4gIGNoZWNrUmVnaW9ucyhETENfUkVQT1NJVE9SWV9BQ0NPVU5UUyk7XG4gIGNoZWNrUmVnaW9ucyhFTEJWMl9BQ0NPVU5UUyk7XG4gIGNoZWNrUmVnaW9ucyhGSVJFSE9TRV9DSURSX0JMT0NLUyk7XG4gIGNoZWNrUmVnaW9ucyhST1VURV81M19CVUNLRVRfV0VCU0lURV9aT05FX0lEUyk7XG4gIGNoZWNrUmVnaW9uc1N1Yk1hcChDTE9VRFdBVENIX0xBTUJEQV9JTlNJR0hUU19BUk5TKTtcblxuICBjb25zdCBsaW5lcyA9IFtcbiAgICBcImltcG9ydCB7IEZhY3QsIEZhY3ROYW1lIH0gZnJvbSAnLi9mYWN0JztcIixcbiAgICAnJyxcbiAgICAnLyogZXNsaW50LWRpc2FibGUgcXVvdGUtcHJvcHMgKi8nLFxuICAgICcvKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovJyxcbiAgICAnJyxcbiAgICAnLyoqJyxcbiAgICAnICogQnVpbHQtaW4gcmVnaW9uYWwgaW5mb3JtYXRpb24sIHJlLWdlbmVyYXRlZCBieSBgbnBtIHJ1biBidWlsZGAuJyxcbiAgICAnIConLFxuICAgIGAgKiBAZ2VuZXJhdGVkICR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfWAsXG4gICAgJyAqLycsXG4gICAgJ2V4cG9ydCBjbGFzcyBCdWlsdElucyB7JyxcbiAgICAnICAvKionLFxuICAgICcgICAqIFJlZ2lzdGVycyBhbGwgdGhlIGJ1aWx0IGluIHJlZ2lvbmFsIGRhdGEgaW4gdGhlIFJlZ2lvbkluZm8gZGF0YWJhc2UuJyxcbiAgICAnICAgKi8nLFxuICAgICcgIHB1YmxpYyBzdGF0aWMgcmVnaXN0ZXIoKTogdm9pZCB7JyxcbiAgXTtcblxuICBjb25zdCBkZWZhdWx0TWFwID0gJ2RlZmF1bHQnO1xuXG4gIGZvciAoY29uc3QgcmVnaW9uIG9mIEFXU19SRUdJT05TKSB7XG4gICAgbGV0IHBhcnRpdGlvbiA9IFBBUlRJVElPTl9NQVBbZGVmYXVsdE1hcF0ucGFydGl0aW9uO1xuICAgIGxldCBkb21haW5TdWZmaXggPSBQQVJUSVRJT05fTUFQW2RlZmF1bHRNYXBdLmRvbWFpblN1ZmZpeDtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIFBBUlRJVElPTl9NQVApIHtcbiAgICAgIGlmIChyZWdpb24uc3RhcnRzV2l0aChrZXkpKSB7XG4gICAgICAgIHBhcnRpdGlvbiA9IFBBUlRJVElPTl9NQVBba2V5XS5wYXJ0aXRpb247XG4gICAgICAgIGRvbWFpblN1ZmZpeCA9IFBBUlRJVElPTl9NQVBba2V5XS5kb21haW5TdWZmaXg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJGYWN0KHJlZ2lvbiwgJ1BBUlRJVElPTicsIHBhcnRpdGlvbik7XG4gICAgcmVnaXN0ZXJGYWN0KHJlZ2lvbiwgJ0RPTUFJTl9TVUZGSVgnLCBkb21haW5TdWZmaXgpO1xuXG4gICAgcmVnaXN0ZXJGYWN0KHJlZ2lvbiwgJ0NES19NRVRBREFUQV9SRVNPVVJDRV9BVkFJTEFCTEUnLCBBV1NfQ0RLX01FVEFEQVRBLmhhcyhyZWdpb24pID8gJ1lFUycgOiAnTk8nKTtcblxuICAgIHJlZ2lzdGVyRmFjdChyZWdpb24sICdJU19PUFRfSU5fUkVHSU9OJywgcGFydGl0aW9uID09PSAnYXdzJyAmJiBhZnRlcihyZWdpb24sIFJVTEVfQ0xBU1NJQ19QQVJUSVRJT05fQkVDT01FU19PUFRfSU4pID8gJ1lFUycgOiAnTk8nKTtcblxuICAgIHJlZ2lzdGVyRmFjdChyZWdpb24sICdTM19TVEFUSUNfV0VCU0lURV9FTkRQT0lOVCcsIGJlZm9yZShyZWdpb24sIFJVTEVfUzNfV0VCU0lURV9SRUdJT05BTF9TVUJET01BSU4pXG4gICAgICA/IGBzMy13ZWJzaXRlLSR7cmVnaW9ufS4ke2RvbWFpblN1ZmZpeH1gXG4gICAgICA6IGBzMy13ZWJzaXRlLiR7cmVnaW9ufS4ke2RvbWFpblN1ZmZpeH1gKTtcblxuICAgIHJlZ2lzdGVyRmFjdChyZWdpb24sICdTM19TVEFUSUNfV0VCU0lURV9aT05FXzUzX0hPU1RFRF9aT05FX0lEJywgUk9VVEVfNTNfQlVDS0VUX1dFQlNJVEVfWk9ORV9JRFNbcmVnaW9uXSB8fCAnJyk7XG5cbiAgICByZWdpc3RlckZhY3QocmVnaW9uLCAnRUJTX0VOVl9FTkRQT0lOVF9IT1NURURfWk9ORV9JRCcsIEVCU19FTlZfRU5EUE9JTlRfSE9TVEVEX1pPTkVfSURTW3JlZ2lvbl0gfHwgJycpO1xuXG4gICAgcmVnaXN0ZXJGYWN0KHJlZ2lvbiwgJ0VMQlYyX0FDQ09VTlQnLCBFTEJWMl9BQ0NPVU5UU1tyZWdpb25dKTtcblxuICAgIHJlZ2lzdGVyRmFjdChyZWdpb24sICdETENfUkVQT1NJVE9SWV9BQ0NPVU5UJywgRExDX1JFUE9TSVRPUllfQUNDT1VOVFNbcmVnaW9uXSk7XG5cbiAgICByZWdpc3RlckZhY3QocmVnaW9uLCAnQVBQTUVTSF9FQ1JfQUNDT1VOVCcsIEFQUE1FU0hfRUNSX0FDQ09VTlRTW3JlZ2lvbl0pO1xuXG4gICAgY29uc3QgZmlyZWhvc2VDaWRyQmxvY2sgPSBGSVJFSE9TRV9DSURSX0JMT0NLU1tyZWdpb25dO1xuICAgIGlmIChmaXJlaG9zZUNpZHJCbG9jaykge1xuICAgICAgcmVnaXN0ZXJGYWN0KHJlZ2lvbiwgJ0ZJUkVIT1NFX0NJRFJfQkxPQ0snLCBgJHtGSVJFSE9TRV9DSURSX0JMT0NLU1tyZWdpb25dfS8yN2ApO1xuICAgIH1cblxuICAgIGNvbnN0IHZwY0VuZHBvaW50U2VydmljZU5hbWVQcmVmaXggPSBgJHtkb21haW5TdWZmaXguc3BsaXQoJy4nKS5yZXZlcnNlKCkuam9pbignLicpfS52cGNlYDtcbiAgICByZWdpc3RlckZhY3QocmVnaW9uLCAnVlBDX0VORFBPSU5UX1NFUlZJQ0VfTkFNRV9QUkVGSVgnLCB2cGNFbmRwb2ludFNlcnZpY2VOYW1lUHJlZml4KTtcblxuICAgIGZvciAoY29uc3Qgc2VydmljZSBvZiBBV1NfU0VSVklDRVMpIHtcbiAgICAgIHJlZ2lzdGVyRmFjdChyZWdpb24sIFsnc2VydmljZVByaW5jaXBhbCcsIHNlcnZpY2VdLCBEZWZhdWx0LnNlcnZpY2VQcmluY2lwYWwoc2VydmljZSwgcmVnaW9uLCBkb21haW5TdWZmaXgpKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHZlcnNpb24gaW4gQ0xPVURXQVRDSF9MQU1CREFfSU5TSUdIVFNfQVJOUykge1xuICAgICAgZm9yIChjb25zdCBhcmNoIGluIENMT1VEV0FUQ0hfTEFNQkRBX0lOU0lHSFRTX0FSTlNbdmVyc2lvbl0pIHtcbiAgICAgICAgcmVnaXN0ZXJGYWN0KHJlZ2lvbiwgWydjbG91ZHdhdGNoTGFtYmRhSW5zaWdodHNWZXJzaW9uJywgdmVyc2lvbiwgYXJjaF0sIENMT1VEV0FUQ0hfTEFNQkRBX0lOU0lHSFRTX0FSTlNbdmVyc2lvbl1bYXJjaF1bcmVnaW9uXSk7XG5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHR5cGUgaW4gQURPVF9MQU1CREFfTEFZRVJfQVJOUykge1xuICAgICAgZm9yIChjb25zdCB2ZXJzaW9uIGluIEFET1RfTEFNQkRBX0xBWUVSX0FSTlNbdHlwZV0pIHtcbiAgICAgICAgZm9yIChjb25zdCBhcmNoIGluIEFET1RfTEFNQkRBX0xBWUVSX0FSTlNbdHlwZV1bdmVyc2lvbl0pIHtcbiAgICAgICAgICByZWdpc3RlckZhY3QoXG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICBbJ2Fkb3RMYW1iZGFMYXllcicsIHR5cGUsIHZlcnNpb24sIGFyY2hdLFxuICAgICAgICAgICAgQURPVF9MQU1CREFfTEFZRVJfQVJOU1t0eXBlXVt2ZXJzaW9uXVthcmNoXVtyZWdpb25dLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgbGluZXMucHVzaCgnICB9Jyk7XG4gIGxpbmVzLnB1c2goJycpO1xuICBsaW5lcy5wdXNoKCcgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7fScpO1xuICBsaW5lcy5wdXNoKCd9Jyk7XG5cbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICdsaWInLCAnYnVpbHQtaW5zLmdlbmVyYXRlZC50cycpLCBsaW5lcy5qb2luKCdcXG4nKSk7XG5cbiAgZnVuY3Rpb24gcmVnaXN0ZXJGYWN0KHJlZ2lvbjogc3RyaW5nLCBuYW1lOiBzdHJpbmcgfCBzdHJpbmdbXSwgdmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IGZhY3ROYW1lID0gdHlwZW9mIG5hbWUgPT09ICdzdHJpbmcnID8gbmFtZSA6IGAke25hbWVbMF19KCR7bmFtZS5zbGljZSgxKS5tYXAocyA9PiBKU09OLnN0cmluZ2lmeShzKSkuam9pbignLCAnKX0pYDtcbiAgICBsaW5lcy5wdXNoKGAgICAgRmFjdC5yZWdpc3Rlcih7IHJlZ2lvbjogJHtKU09OLnN0cmluZ2lmeShyZWdpb24pfSwgbmFtZTogRmFjdE5hbWUuJHtmYWN0TmFtZX0sIHZhbHVlOiAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX0gfSk7YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBWZXJpZmllcyB0aGF0IHRoZSBwcm92aWRlZCBtYXAgb2YgcmVnaW9uIHRvIGZhY3QgZG9lcyBub3QgY29udGFpbiBhbiBlbnRyeVxuICogZm9yIGEgcmVnaW9uIHRoYXQgd2FzIG5vdCByZWdpc3RlcmVkIGluIGBBV1NfUkVHSU9OU2AuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrUmVnaW9ucyhtYXA6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB7XG4gIGNvbnN0IGFsbFJlZ2lvbnMgPSBuZXcgU2V0KEFXU19SRUdJT05TKTtcbiAgZm9yIChjb25zdCByZWdpb24gb2YgT2JqZWN0LmtleXMobWFwKSkge1xuICAgIGlmICghYWxsUmVnaW9ucy5oYXMocmVnaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbi1yZWdpc3RlcmVkIHJlZ2lvbiBmYWN0IGZvdW5kOiAke3JlZ2lvbn0uIEFkZCB0byBBV1NfUkVHSU9OUyBsaXN0IWApO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFZlcmlmaWVzIHRoYXQgdGhlIHByb3ZpZGVkIG1hcCBvZiA8S0VZPiB0byByZWdpb24gdG8gZmFjdCBkb2VzIG5vdCBjb250YWluIGFuIGVudHJ5XG4gKiBmb3IgYSByZWdpb24gdGhhdCB3YXMgbm90IHJlZ2lzdGVyZWQgaW4gYEFXU19SRUdJT05TYC5cbiAqL1xuZnVuY3Rpb24gY2hlY2tSZWdpb25zU3ViTWFwKG1hcDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+Pikge1xuICBjb25zdCBhbGxSZWdpb25zID0gbmV3IFNldChBV1NfUkVHSU9OUyk7XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG1hcCkpIHtcbiAgICBmb3IgKGNvbnN0IHN1YktleSBvZiBPYmplY3Qua2V5cyhtYXBba2V5XSkpIHtcbiAgICAgIGZvciAoY29uc3QgcmVnaW9uIG9mIE9iamVjdC5rZXlzKG1hcFtrZXldW3N1YktleV0pKSB7XG4gICAgICAgIGlmICghYWxsUmVnaW9ucy5oYXMocmVnaW9uKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW4tcmVnaXN0ZXJlZCByZWdpb24gZmFjdCBmb3VuZDogJHtyZWdpb259LiBBZGQgdG8gQVdTX1JFR0lPTlMgbGlzdCFgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZnRlcihyZWdpb246IHN0cmluZywgcnVsZU9yUmVnaW9uOiBzdHJpbmcgfCBzeW1ib2wpIHtcbiAgcmV0dXJuIHJlZ2lvbiAhPT0gcnVsZU9yUmVnaW9uICYmICFiZWZvcmUocmVnaW9uLCBydWxlT3JSZWdpb24pO1xufVxuXG5tYWluKCkuY2F0Y2goZSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUuZXJyb3IoZSk7XG4gIHByb2Nlc3MuZXhpdCgtMSk7XG59KTtcbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Built-in regional information, re-generated by `npm run build`.
3
3
  *
4
- * @generated 2023-03-30T18:01:16.057Z
4
+ * @generated 2023-04-13T15:45:57.670Z
5
5
  */
6
6
  export declare class BuiltIns {
7
7
  /**