eoapi-cdk 7.4.1 → 7.5.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/.github/workflows/build.yaml +6 -6
- package/.github/workflows/conventional-pr.yaml +1 -1
- package/.github/workflows/deploy.yaml +2 -2
- package/.github/workflows/distribute.yaml +2 -2
- package/.github/workflows/docs.yaml +2 -2
- package/.jsii +38 -20
- package/CHANGELOG.md +22 -0
- package/integration_tests/cdk/app.py +3 -0
- package/lib/bastion-host/index.js +1 -1
- package/lib/database/PgBouncer.d.ts +2 -1
- package/lib/database/PgBouncer.js +2 -2
- package/lib/database/bootstrapper_runtime/Dockerfile +1 -3
- package/lib/database/index.d.ts +6 -0
- package/lib/database/index.js +4 -5
- package/lib/ingestor-api/index.js +1 -1
- package/lib/stac-api/index.js +1 -1
- package/lib/stac-browser/index.js +1 -1
- package/lib/tipg-api/index.js +1 -1
- package/lib/titiler-pgstac-api/index.js +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -18,9 +18,9 @@ jobs:
|
|
|
18
18
|
name: Build and package
|
|
19
19
|
runs-on: ubuntu-latest
|
|
20
20
|
steps:
|
|
21
|
-
- uses: actions/checkout@
|
|
21
|
+
- uses: actions/checkout@v4
|
|
22
22
|
|
|
23
|
-
- uses: actions/setup-node@
|
|
23
|
+
- uses: actions/setup-node@v4
|
|
24
24
|
with:
|
|
25
25
|
node-version: 18
|
|
26
26
|
cache: "npm"
|
|
@@ -37,22 +37,22 @@ jobs:
|
|
|
37
37
|
- name: Generate documentation
|
|
38
38
|
run: npm run docgen
|
|
39
39
|
|
|
40
|
-
- uses: actions/upload-artifact@
|
|
40
|
+
- uses: actions/upload-artifact@v4
|
|
41
41
|
with:
|
|
42
42
|
name: docs
|
|
43
43
|
path: docs
|
|
44
44
|
|
|
45
|
-
- uses: actions/upload-artifact@
|
|
45
|
+
- uses: actions/upload-artifact@v4
|
|
46
46
|
with:
|
|
47
47
|
name: python
|
|
48
48
|
path: dist/python/*
|
|
49
49
|
|
|
50
|
-
- uses: actions/upload-artifact@
|
|
50
|
+
- uses: actions/upload-artifact@v4
|
|
51
51
|
with:
|
|
52
52
|
name: js
|
|
53
53
|
path: dist/js/*
|
|
54
54
|
|
|
55
|
-
- uses: actions/upload-artifact@
|
|
55
|
+
- uses: actions/upload-artifact@v4
|
|
56
56
|
with:
|
|
57
57
|
name: jsii
|
|
58
58
|
path: .jsii
|
|
@@ -14,9 +14,9 @@ jobs:
|
|
|
14
14
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_DEPLOY }}
|
|
15
15
|
AWS_DEFAULT_ACCOUNT: ${{ secrets.AWS_ACCOUNT_ID }}
|
|
16
16
|
steps:
|
|
17
|
-
- uses: actions/checkout@
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
18
|
|
|
19
|
-
- uses: actions/setup-node@
|
|
19
|
+
- uses: actions/setup-node@v4
|
|
20
20
|
with:
|
|
21
21
|
node-version: 18
|
|
22
22
|
cache: "npm"
|
|
@@ -14,7 +14,7 @@ jobs:
|
|
|
14
14
|
needs: package
|
|
15
15
|
steps:
|
|
16
16
|
|
|
17
|
-
- uses: actions/download-artifact@
|
|
17
|
+
- uses: actions/download-artifact@v4
|
|
18
18
|
with:
|
|
19
19
|
name: python
|
|
20
20
|
path: dist
|
|
@@ -31,7 +31,7 @@ jobs:
|
|
|
31
31
|
runs-on: ubuntu-latest
|
|
32
32
|
needs: package
|
|
33
33
|
steps:
|
|
34
|
-
- uses: actions/download-artifact@
|
|
34
|
+
- uses: actions/download-artifact@v4
|
|
35
35
|
with:
|
|
36
36
|
name: js
|
|
37
37
|
path: dist
|
package/.jsii
CHANGED
|
@@ -3932,7 +3932,7 @@
|
|
|
3932
3932
|
"kind": "interface",
|
|
3933
3933
|
"locationInModule": {
|
|
3934
3934
|
"filename": "lib/database/index.ts",
|
|
3935
|
-
"line":
|
|
3935
|
+
"line": 274
|
|
3936
3936
|
},
|
|
3937
3937
|
"name": "DatabaseParameters",
|
|
3938
3938
|
"properties": [
|
|
@@ -3945,7 +3945,7 @@
|
|
|
3945
3945
|
"immutable": true,
|
|
3946
3946
|
"locationInModule": {
|
|
3947
3947
|
"filename": "lib/database/index.ts",
|
|
3948
|
-
"line":
|
|
3948
|
+
"line": 290
|
|
3949
3949
|
},
|
|
3950
3950
|
"name": "effectiveCacheSize",
|
|
3951
3951
|
"type": {
|
|
@@ -3961,7 +3961,7 @@
|
|
|
3961
3961
|
"immutable": true,
|
|
3962
3962
|
"locationInModule": {
|
|
3963
3963
|
"filename": "lib/database/index.ts",
|
|
3964
|
-
"line":
|
|
3964
|
+
"line": 300
|
|
3965
3965
|
},
|
|
3966
3966
|
"name": "maintenanceWorkMem",
|
|
3967
3967
|
"type": {
|
|
@@ -3977,7 +3977,7 @@
|
|
|
3977
3977
|
"immutable": true,
|
|
3978
3978
|
"locationInModule": {
|
|
3979
3979
|
"filename": "lib/database/index.ts",
|
|
3980
|
-
"line":
|
|
3980
|
+
"line": 278
|
|
3981
3981
|
},
|
|
3982
3982
|
"name": "maxConnections",
|
|
3983
3983
|
"type": {
|
|
@@ -3993,7 +3993,7 @@
|
|
|
3993
3993
|
"immutable": true,
|
|
3994
3994
|
"locationInModule": {
|
|
3995
3995
|
"filename": "lib/database/index.ts",
|
|
3996
|
-
"line":
|
|
3996
|
+
"line": 305
|
|
3997
3997
|
},
|
|
3998
3998
|
"name": "maxLocksPerTransaction",
|
|
3999
3999
|
"type": {
|
|
@@ -4009,7 +4009,7 @@
|
|
|
4009
4009
|
"immutable": true,
|
|
4010
4010
|
"locationInModule": {
|
|
4011
4011
|
"filename": "lib/database/index.ts",
|
|
4012
|
-
"line":
|
|
4012
|
+
"line": 320
|
|
4013
4013
|
},
|
|
4014
4014
|
"name": "randomPageCost",
|
|
4015
4015
|
"type": {
|
|
@@ -4025,7 +4025,7 @@
|
|
|
4025
4025
|
"immutable": true,
|
|
4026
4026
|
"locationInModule": {
|
|
4027
4027
|
"filename": "lib/database/index.ts",
|
|
4028
|
-
"line":
|
|
4028
|
+
"line": 315
|
|
4029
4029
|
},
|
|
4030
4030
|
"name": "seqPageCost",
|
|
4031
4031
|
"type": {
|
|
@@ -4042,7 +4042,7 @@
|
|
|
4042
4042
|
"immutable": true,
|
|
4043
4043
|
"locationInModule": {
|
|
4044
4044
|
"filename": "lib/database/index.ts",
|
|
4045
|
-
"line":
|
|
4045
|
+
"line": 285
|
|
4046
4046
|
},
|
|
4047
4047
|
"name": "sharedBuffers",
|
|
4048
4048
|
"type": {
|
|
@@ -4058,7 +4058,7 @@
|
|
|
4058
4058
|
"immutable": true,
|
|
4059
4059
|
"locationInModule": {
|
|
4060
4060
|
"filename": "lib/database/index.ts",
|
|
4061
|
-
"line":
|
|
4061
|
+
"line": 310
|
|
4062
4062
|
},
|
|
4063
4063
|
"name": "tempBuffers",
|
|
4064
4064
|
"type": {
|
|
@@ -4074,7 +4074,7 @@
|
|
|
4074
4074
|
"immutable": true,
|
|
4075
4075
|
"locationInModule": {
|
|
4076
4076
|
"filename": "lib/database/index.ts",
|
|
4077
|
-
"line":
|
|
4077
|
+
"line": 295
|
|
4078
4078
|
},
|
|
4079
4079
|
"name": "workMem",
|
|
4080
4080
|
"type": {
|
|
@@ -4356,7 +4356,7 @@
|
|
|
4356
4356
|
},
|
|
4357
4357
|
"locationInModule": {
|
|
4358
4358
|
"filename": "lib/database/index.ts",
|
|
4359
|
-
"line":
|
|
4359
|
+
"line": 180
|
|
4360
4360
|
},
|
|
4361
4361
|
"name": "getParameters",
|
|
4362
4362
|
"parameters": [
|
|
@@ -4468,7 +4468,7 @@
|
|
|
4468
4468
|
"kind": "interface",
|
|
4469
4469
|
"locationInModule": {
|
|
4470
4470
|
"filename": "lib/database/index.ts",
|
|
4471
|
-
"line":
|
|
4471
|
+
"line": 220
|
|
4472
4472
|
},
|
|
4473
4473
|
"name": "PgStacDatabaseProps",
|
|
4474
4474
|
"properties": [
|
|
@@ -4482,7 +4482,7 @@
|
|
|
4482
4482
|
"immutable": true,
|
|
4483
4483
|
"locationInModule": {
|
|
4484
4484
|
"filename": "lib/database/index.ts",
|
|
4485
|
-
"line":
|
|
4485
|
+
"line": 254
|
|
4486
4486
|
},
|
|
4487
4487
|
"name": "addPgbouncer",
|
|
4488
4488
|
"optional": true,
|
|
@@ -4500,7 +4500,7 @@
|
|
|
4500
4500
|
"immutable": true,
|
|
4501
4501
|
"locationInModule": {
|
|
4502
4502
|
"filename": "lib/database/index.ts",
|
|
4503
|
-
"line":
|
|
4503
|
+
"line": 271
|
|
4504
4504
|
},
|
|
4505
4505
|
"name": "bootstrapperLambdaFunctionOptions",
|
|
4506
4506
|
"optional": true,
|
|
@@ -4518,7 +4518,7 @@
|
|
|
4518
4518
|
"immutable": true,
|
|
4519
4519
|
"locationInModule": {
|
|
4520
4520
|
"filename": "lib/database/index.ts",
|
|
4521
|
-
"line":
|
|
4521
|
+
"line": 262
|
|
4522
4522
|
},
|
|
4523
4523
|
"name": "customResourceProperties",
|
|
4524
4524
|
"optional": true,
|
|
@@ -4541,7 +4541,7 @@
|
|
|
4541
4541
|
"immutable": true,
|
|
4542
4542
|
"locationInModule": {
|
|
4543
4543
|
"filename": "lib/database/index.ts",
|
|
4544
|
-
"line":
|
|
4544
|
+
"line": 226
|
|
4545
4545
|
},
|
|
4546
4546
|
"name": "pgstacDbName",
|
|
4547
4547
|
"optional": true,
|
|
@@ -4559,7 +4559,7 @@
|
|
|
4559
4559
|
"immutable": true,
|
|
4560
4560
|
"locationInModule": {
|
|
4561
4561
|
"filename": "lib/database/index.ts",
|
|
4562
|
-
"line":
|
|
4562
|
+
"line": 247
|
|
4563
4563
|
},
|
|
4564
4564
|
"name": "pgstacUsername",
|
|
4565
4565
|
"optional": true,
|
|
@@ -4567,6 +4567,24 @@
|
|
|
4567
4567
|
"primitive": "string"
|
|
4568
4568
|
}
|
|
4569
4569
|
},
|
|
4570
|
+
{
|
|
4571
|
+
"abstract": true,
|
|
4572
|
+
"docs": {
|
|
4573
|
+
"default": "0.8.5",
|
|
4574
|
+
"stability": "experimental",
|
|
4575
|
+
"summary": "Version of pgstac to install on the database."
|
|
4576
|
+
},
|
|
4577
|
+
"immutable": true,
|
|
4578
|
+
"locationInModule": {
|
|
4579
|
+
"filename": "lib/database/index.ts",
|
|
4580
|
+
"line": 233
|
|
4581
|
+
},
|
|
4582
|
+
"name": "pgstacVersion",
|
|
4583
|
+
"optional": true,
|
|
4584
|
+
"type": {
|
|
4585
|
+
"primitive": "string"
|
|
4586
|
+
}
|
|
4587
|
+
},
|
|
4570
4588
|
{
|
|
4571
4589
|
"abstract": true,
|
|
4572
4590
|
"docs": {
|
|
@@ -4577,7 +4595,7 @@
|
|
|
4577
4595
|
"immutable": true,
|
|
4578
4596
|
"locationInModule": {
|
|
4579
4597
|
"filename": "lib/database/index.ts",
|
|
4580
|
-
"line":
|
|
4598
|
+
"line": 240
|
|
4581
4599
|
},
|
|
4582
4600
|
"name": "secretsPrefix",
|
|
4583
4601
|
"optional": true,
|
|
@@ -5585,6 +5603,6 @@
|
|
|
5585
5603
|
"symbolId": "lib/titiler-pgstac-api/index:TitilerPgstacApiLambda"
|
|
5586
5604
|
}
|
|
5587
5605
|
},
|
|
5588
|
-
"version": "7.
|
|
5589
|
-
"fingerprint": "
|
|
5606
|
+
"version": "7.5.0",
|
|
5607
|
+
"fingerprint": "T40DSELPsAP955iV1u6Zc7g/8YGO+46Aw8q71FvTqgQ="
|
|
5590
5608
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
# [7.5.0](https://github.com/developmentseed/eoapi-cdk/compare/v7.4.2...v7.5.0) (2025-02-04)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* configure pgstac version in custom properties ([#123](https://github.com/developmentseed/eoapi-cdk/issues/123)) ([a29ea21](https://github.com/developmentseed/eoapi-cdk/commit/a29ea216dbb4631081f052c312ee9c7957276dae))
|
|
7
|
+
|
|
8
|
+
## [7.4.2](https://github.com/developmentseed/eoapi-cdk/compare/v7.4.1...v7.4.2) (2025-02-03)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* ensure dependency secret update function completes ([#120](https://github.com/developmentseed/eoapi-cdk/issues/120)) ([90cdc89](https://github.com/developmentseed/eoapi-cdk/commit/90cdc89381f36528172e0035d50a174f7f1ee330))
|
|
14
|
+
* upgrade workflow versions ([#121](https://github.com/developmentseed/eoapi-cdk/issues/121)) ([45e72dd](https://github.com/developmentseed/eoapi-cdk/commit/45e72dd7cf20ae32e1b643ffcafd54bcac2cfd1e))
|
|
15
|
+
|
|
16
|
+
## [7.4.2](https://github.com/developmentseed/eoapi-cdk/compare/v7.4.1...v7.4.2) (2025-02-03)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* ensure dependency secret update function completes ([#120](https://github.com/developmentseed/eoapi-cdk/issues/120)) ([90cdc89](https://github.com/developmentseed/eoapi-cdk/commit/90cdc89381f36528172e0035d50a174f7f1ee330))
|
|
22
|
+
|
|
1
23
|
## [7.4.1](https://github.com/developmentseed/eoapi-cdk/compare/v7.4.0...v7.4.1) (2025-01-24)
|
|
2
24
|
|
|
3
25
|
|
|
@@ -85,6 +85,9 @@ class pgStacInfraStack(Stack):
|
|
|
85
85
|
|
|
86
86
|
assert pgstac_db.security_group
|
|
87
87
|
|
|
88
|
+
# make sure we can get the secret value!
|
|
89
|
+
assert pgstac_db.pgstac_secret.secret_value_from_json("host").to_string()
|
|
90
|
+
|
|
88
91
|
pgstac_db.security_group.add_ingress_rule(
|
|
89
92
|
aws_ec2.Peer.any_ipv4(), aws_ec2.Port.tcp(5432)
|
|
90
93
|
)
|
|
@@ -158,5 +158,5 @@ class BastionHost extends constructs_1.Construct {
|
|
|
158
158
|
}
|
|
159
159
|
exports.BastionHost = BastionHost;
|
|
160
160
|
_a = JSII_RTTI_SYMBOL_1;
|
|
161
|
-
BastionHost[_a] = { fqn: "eoapi-cdk.BastionHost", version: "7.
|
|
161
|
+
BastionHost[_a] = { fqn: "eoapi-cdk.BastionHost", version: "7.5.0" };
|
|
162
162
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQU1xQjtBQUNyQiwyQ0FBdUM7QUFFdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpR0c7QUFDSCxNQUFhLFdBQVksU0FBUSxzQkFBUztJQUd4QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJDLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkscUJBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUNyRCxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUscUJBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ2pELFlBQVksRUFBRSxHQUFHLFNBQVMsZUFBZTtZQUN6QyxZQUFZLEVBQUUscUJBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUMvQixxQkFBRyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFDckMscUJBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN0QjtZQUNELFlBQVksRUFBRSxxQkFBRyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0MsVUFBVSxFQUFFLHFCQUFHLENBQUMscUJBQXFCLENBQUMsY0FBYztnQkFDcEQsT0FBTyxFQUFFLHFCQUFHLENBQUMsa0JBQWtCLENBQUMsTUFBTTthQUN2QyxDQUFDO1lBQ0YsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLHlCQUF5QixFQUFFLElBQUk7U0FDaEMsQ0FBQyxDQUFDO1FBRUgsb0JBQW9CO1FBQ3BCLElBQUksS0FBSyxDQUFDLGVBQWUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNsQyxJQUFJLHFCQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7Z0JBQ3pCLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVU7Z0JBQ3BDLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7YUFDMUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELHNDQUFzQztRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQy9CLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFDdEMscUJBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUNsQixvQ0FBb0MsQ0FDckMsQ0FBQztRQUVGLGtDQUFrQztRQUNsQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQ2pDLHFCQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDbkIscUJBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQ2pDLFlBQVksQ0FDYixDQUFDO1FBQ0osQ0FBQztRQUVELHFCQUFxQjtRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDM0IsSUFBSSxxQkFBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixPQUFPLEVBQUU7Z0JBQ1AsZUFBZTtnQkFDZiwrQkFBK0I7Z0JBQy9CLGVBQWU7YUFDaEI7WUFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDakIsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVU7WUFDL0IsVUFBVSxFQUFFLEdBQUcsU0FBUyxjQUFjO1NBQ3ZDLENBQUMsQ0FBQztRQUNILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsMkJBQTJCLEVBQUU7WUFDL0MsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO1lBQ3JDLFVBQVUsRUFBRSxHQUFHLFNBQVMscUJBQXFCO1NBQzlDLENBQUMsQ0FBQztRQUNILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsaUNBQWlDLEVBQUU7WUFDckQsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCO1lBQzFDLFVBQVUsRUFBRSxHQUFHLFNBQVMsa0JBQWtCO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBekVILGtDQTBFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFN0YWNrLFxuICBhd3NfZWMyIGFzIGVjMixcbiAgYXdzX2lhbSBhcyBpYW0sXG4gIGF3c19yZHMgYXMgcmRzLFxuICBDZm5PdXRwdXQsXG59IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuLyoqXG4gKiBUaGUgZGF0YWJhc2UgaXMgbG9jYXRlZCBpbiBhbiBpc29sYXRlZCBzdWJuZXQsIG1lYW5pbmcgdGhhdCBpdCBpcyBub3QgYWNjZXNzaWJsZSBmcm9tIHRoZSBwdWJsaWMgaW50ZXJuZXQuIEFzIHN1Y2gsIHRvIGludGVyYWN0IHdpdGggdGhlIGRhdGFiYXNlIGRpcmVjdGx5LCBhIHVzZXIgbXVzdCB0dW5uZWwgdGhyb3VnaCBhIGJhc3Rpb24gaG9zdC5cbiAqXG4gKiAjIyMgQ29uZmlndXJpbmdcbiAqXG4gKiBUaGlzIGNvZGViYXNlIGNvbnRyb2xzIF93aG9fIGlzIGFsbG93ZWQgdG8gY29ubmVjdCB0byB0aGUgYmFzdGlvbiBob3N0LiBUaGlzIHJlcXVpcmVzIHR3byBzdGVwczpcbiAqXG4gKiAxLiBBZGRpbmcgdGhlIElQIGFkZHJlc3MgZnJvbSB3aGljaCB5b3UgYXJlIGNvbm5lY3RpbmcgdG8gdGhlIGBpcHY0QWxsb3dsaXN0YCBhcnJheVxuICogMS4gQ3JlYXRpbmcgYSBiYXN0aW9uIGhvc3Qgc3lzdGVtIHVzZXIgYnkgYWRkaW5nIHRoZSB1c2VyJ3MgY29uZmlndXJhdGlvbiBpbmZvcm0gdG8gYHVzZXJkYXRhLnlhbWxgXG4gKlxuICogIyMjIyBBZGRpbmcgYW4gSVAgYWRkcmVzcyB0byB0aGUgYGlwdjRBbGxvd2xpc3RgIGFycmF5XG4gKlxuICogVGhlIGBCYXN0aW9uSG9zdGAgY29uc3RydWN0IHRha2VzIGluIGFuIGBpcHY0QWxsb3dsaXN0YCBhcnJheSBhcyBhbiBhcmd1bWVudC4gRmluZCB5b3VyIElQIGFkZHJlc3MgKGVnIGBjdXJsIGFwaS5pcGlmeS5vcmdgKSBhbmQgYWRkIHRoYXQgdG8gdGhlIGFycmF5IGFsb25nIHdpdGggdGhlIHRyYWlsaW5nIENJRFIgYmxvY2sgKGxpa2VseSBgLzMyYCB0byBpbmRpY2F0ZSB0aGF0IHlvdSBhcmUgYWRkaW5nIGEgc2luZ2xlIElQIGFkZHJlc3MpLlxuICpcbiAqICMjIyMgQ3JlYXRpbmcgYSB1c2VyIHZpYSBgdXNlcmRhdGEueWFtbGBcbiAqXG4gKiBBZGQgYW4gZW50cnkgdG8gdGhlIGB1c2Vyc2AgYXJyYXkgd2l0aCBhIHVzZXJuYW1lIChsaWtlbHkgbWF0Y2hpbmcgeW91ciBsb2NhbCBzeXN0ZW1zIHVzZXJuYW1lLCB3aGljaCB5b3UgY2FuIGdldCBieSBydW5uaW5nIHRoZSBgd2hvYW1pYCBjb21tYW5kIGluIHlvdXIgdGVybWluYWwpIGFuZCBhIHB1YmxpYyBrZXkgKGxpa2VseSB5b3VyIGRlZmF1bHQgcHVibGljIGtleSwgd2hpY2ggeW91IGNhbiBnZXQgYnkgcnVubmluZyBgY2F0IH4vLnNzaC9pZF8qLnB1YmAgaW4geW91ciB0ZXJtaW5hbCkuXG4gKlxuICogIyMjIyBUaXBzICYgVHJpY2tzIHdoZW4gdXNpbmcgdGhlIEJhc3Rpb24gSG9zdFxuICpcbiAqICoqQ29ubmVjdGluZyB0byBSRFMgSW5zdGFuY2UgdmlhIFNTTSoqXG4gKlxuICogYGBgc2hcbiAqIGF3cyBzc20gc3RhcnQtc2Vzc2lvbiAtLXRhcmdldCAkSU5TVEFOQ0VfSUQgXFxcbiAqIC0tZG9jdW1lbnQtbmFtZSBBV1MtU3RhcnRQb3J0Rm9yd2FyZGluZ1Nlc3Npb25Ub1JlbW90ZUhvc3QgXFxcbiAqIC0tcGFyYW1ldGVycyAne1xuICogXCJob3N0XCI6IFtcbiAqIFwiZXhhbXBsZS1kYi5jNWFiY2RlZmdoaWoudXMtd2VzdC0yLnJkcy5hbWF6b25hd3MuY29tXCJcbiAqIF0sXG4gKiBcInBvcnROdW1iZXJcIjogW1xuICogXCI1NDMyXCJcbiAqIF0sXG4gKiBcImxvY2FsUG9ydE51bWJlclwiOiBbXG4gKiBcIjk5OTlcIlxuICogXVxuICogfScgXFxcbiAqIC0tcHJvZmlsZSAkQVdTX1BST0ZJTEVcbiAqIGBgYFxuICpcbiAqIGBgYHNoXG4gKiBwc3FsIC1oIGxvY2FsaG9zdCAtcCA5OTk5ICMgY29udGludWUgYWRkaW5nIHVzZXJuYW1lICgtVSkgYW5kIGRiICgtZCkgaGVyZS4uLlxuICogYGBgXG4gKlxuICogQ29ubmVjdCBkaXJlY3RseSB0byBCYXN0aW9uIEhvc3Q6XG4gKlxuICogYGBgc2hcbiAqIGF3cyBzc20gc3RhcnQtc2Vzc2lvbiAtLXRhcmdldCAkSU5TVEFOQ0VfSUQgLS1wcm9maWxlICRBV1NfUFJPRklMRVxuICogYGBgXG4gKlxuICogKipTZXR0aW5nIHVwIGFuIFNTSCB0dW5uZWwqKlxuICpcbiAqIEluIHlvdXIgYH4vLnNzaC9jb25maWdgIGZpbGUsIGFkZCBhbiBlbnRyeSBsaWtlOlxuICpcbiAqIGBgYFxuICogSG9zdCBkYi10dW5uZWxcbiAqIEhvc3RuYW1lIHt0aGUtYmFzdGlvbi1ob3N0LWFkZHJlc3N9XG4gKiBMb2NhbEZvcndhcmQgOTk5OSB7dGhlLWRiLWhvc3RuYW1lfTo1NDMyXG4gKiBgYGBcbiAqXG4gKiBUaGVuIGEgdHVubmVsIGNhbiBiZSBvcGVuZWQgdmlhOlxuICpcbiAqIGBgYFxuICogc3NoIC1OIGRiLXR1bm5lbFxuICogYGBgXG4gKlxuICogQW5kIGEgY29ubmVjdGlvbiB0byB0aGUgREIgY2FuIGJlIG1hZGUgdmlhOlxuICpcbiAqIGBgYFxuICogcHNxbCAtaCAxMjcuMC4wLjEgLXAgOTk5OSAtVSB7dXNlcm5hbWV9IC1kIHtkYXRhYmFzZX1cbiAqIGBgYFxuICpcbiAqICoqSGFuZGxpbmcgYFJFTU9URSBIT1NUIElERU5USUZJQ0FUSU9OIEhBUyBDSEFOR0VEIWAgZXJyb3IqKlxuICpcbiAqIElmIHlvdSd2ZSByZWRlcGxveWVkIGEgYmFzdGlvbiBob3N0IHRoYXQgeW91J3ZlIHByZXZpb3VzbHkgY29ubmVjdGVkIHRvLCB5b3UgbWF5IHNlZSBhbiBlcnJvciBsaWtlOlxuICpcbiAqIGBgYFxuICogQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBcbiAqIEAgICAgV0FSTklORzogUkVNT1RFIEhPU1QgSURFTlRJRklDQVRJT04gSEFTIENIQU5HRUQhICAgICBAXG4gKiBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFxuICogSVQgSVMgUE9TU0lCTEUgVEhBVCBTT01FT05FIElTIERPSU5HIFNPTUVUSElORyBOQVNUWSFcbiAqIFNvbWVvbmUgY291bGQgYmUgZWF2ZXNkcm9wcGluZyBvbiB5b3UgcmlnaHQgbm93IChtYW4taW4tdGhlLW1pZGRsZSBhdHRhY2spIVxuICogSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGF0IGEgaG9zdCBrZXkgaGFzIGp1c3QgYmVlbiBjaGFuZ2VkLlxuICogVGhlIGZpbmdlcnByaW50IGZvciB0aGUgRUNEU0Ega2V5IHNlbnQgYnkgdGhlIHJlbW90ZSBob3N0IGlzXG4gKiBTSEEyNTY6bVBueEFPWFRwYjA2UEZnSTFRYzhUTVEyZTliN2dvVTh5Mk5kUzVoeklyOC5cbiAqIFBsZWFzZSBjb250YWN0IHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IuXG4gKiBBZGQgY29ycmVjdCBob3N0IGtleSBpbiAvVXNlcnMvdXNlcm5hbWUvLnNzaC9rbm93bl9ob3N0cyB0byBnZXQgcmlkIG9mIHRoaXMgbWVzc2FnZS5cbiAqIE9mZmVuZGluZyBFQ0RTQSBrZXkgaW4gL1VzZXJzL3VzZXJuYW1lLy5zc2gva25vd25faG9zdHM6MjhcbiAqIEVDRFNBIGhvc3Qga2V5IGZvciBlYzItMTItMzQtNTYtNzg5LnVzLXdlc3QtMi5jb21wdXRlLmFtYXpvbmF3cy5jb20gaGFzIGNoYW5nZWQgYW5kIHlvdSBoYXZlIHJlcXVlc3RlZCBzdHJpY3QgY2hlY2tpbmcuXG4gKiBIb3N0IGtleSB2ZXJpZmljYXRpb24gZmFpbGVkLlxuICogYGBgXG4gKlxuICogVGhpcyBpcyBkdWUgdG8gdGhlIHNlcnZlcidzIGZpbmdlcnByaW50IGNoYW5naW5nLiBXZSBjYW4gc2NydWIgdGhlIGZpbmdlcnByaW50IGZyb20gb3VyIHN5c3RlbSB3aXRoIGEgY29tbWFuZCBsaWtlOlxuICpcbiAqIGBgYFxuICogc3NoLWtleWdlbiAtUiAxMi4zNC41Ni43ODlcbiAqIGBgYFxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc3Rpb25Ib3N0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgaW5zdGFuY2U6IGVjMi5JbnN0YW5jZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzdGlvbkhvc3RQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7IHN0YWNrTmFtZSB9ID0gU3RhY2sub2YodGhpcyk7XG5cbiAgICAvLyBCdWlsZCBlYzIgaW5zdGFuY2VcbiAgICB0aGlzLmluc3RhbmNlID0gbmV3IGVjMi5JbnN0YW5jZSh0aGlzLCBcImJhc3Rpb24taG9zdFwiLCB7XG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHsgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFVCTElDIH0sXG4gICAgICBpbnN0YW5jZU5hbWU6IGAke3N0YWNrTmFtZX0gYmFzdGlvbiBob3N0YCxcbiAgICAgIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgZWMyLkluc3RhbmNlQ2xhc3MuQlVSU1RBQkxFNF9HUkFWSVRPTixcbiAgICAgICAgZWMyLkluc3RhbmNlU2l6ZS5OQU5PXG4gICAgICApLFxuICAgICAgbWFjaGluZUltYWdlOiBlYzIuTWFjaGluZUltYWdlLmxhdGVzdEFtYXpvbkxpbnV4KHtcbiAgICAgICAgZ2VuZXJhdGlvbjogZWMyLkFtYXpvbkxpbnV4R2VuZXJhdGlvbi5BTUFaT05fTElOVVhfMixcbiAgICAgICAgY3B1VHlwZTogZWMyLkFtYXpvbkxpbnV4Q3B1VHlwZS5BUk1fNjQsXG4gICAgICB9KSxcbiAgICAgIHVzZXJEYXRhOiBwcm9wcy51c2VyRGF0YSxcbiAgICAgIHVzZXJEYXRhQ2F1c2VzUmVwbGFjZW1lbnQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBBc3NpZ24gZWxhc3RpYyBJUFxuICAgIGlmIChwcm9wcy5jcmVhdGVFbGFzdGljSXAgPz8gdHJ1ZSkge1xuICAgICAgbmV3IGVjMi5DZm5FSVAodGhpcywgXCJJUFwiLCB7XG4gICAgICAgIGluc3RhbmNlSWQ6IHRoaXMuaW5zdGFuY2UuaW5zdGFuY2VJZCxcbiAgICAgICAgdGFnczogW3sga2V5OiBcIk5hbWVcIiwgdmFsdWU6IHN0YWNrTmFtZSB9XSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEFsbG93IGJhc3Rpb24gaG9zdCB0byBjb25uZWN0IHRvIGRiXG4gICAgdGhpcy5pbnN0YW5jZS5jb25uZWN0aW9ucy5hbGxvd1RvKFxuICAgICAgcHJvcHMuZGIuY29ubmVjdGlvbnMuc2VjdXJpdHlHcm91cHNbMF0sXG4gICAgICBlYzIuUG9ydC50Y3AoNTQzMiksXG4gICAgICBcIkFsbG93IGNvbm5lY3Rpb24gZnJvbSBiYXN0aW9uIGhvc3RcIlxuICAgICk7XG5cbiAgICAvLyBBbGxvdyBJUCBhY2Nlc3MgdG8gYmFzdGlvbiBob3N0XG4gICAgZm9yIChjb25zdCBpcHY0IG9mIHByb3BzLmlwdjRBbGxvd2xpc3QpIHtcbiAgICAgIHRoaXMuaW5zdGFuY2UuY29ubmVjdGlvbnMuYWxsb3dGcm9tKFxuICAgICAgICBlYzIuUGVlci5pcHY0KGlwdjQpLFxuICAgICAgICBlYzIuUG9ydC50Y3AocHJvcHMuc3NoUG9ydCB8fCAyMiksXG4gICAgICAgIFwiU1NIIEFjY2Vzc1wiXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEludGVncmF0ZSB3aXRoIFNTTVxuICAgIHRoaXMuaW5zdGFuY2UuYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJzc21tZXNzYWdlczoqXCIsXG4gICAgICAgICAgXCJzc206VXBkYXRlSW5zdGFuY2VJbmZvcm1hdGlvblwiLFxuICAgICAgICAgIFwiZWMybWVzc2FnZXM6KlwiLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICB9KVxuICAgICk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiaW5zdGFuY2UtaWQtb3V0cHV0XCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLmluc3RhbmNlLmluc3RhbmNlSWQsXG4gICAgICBleHBvcnROYW1lOiBgJHtzdGFja05hbWV9LWluc3RhbmNlLWlkYCxcbiAgICB9KTtcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiaW5zdGFuY2UtcHVibGljLWlwLW91dHB1dFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pbnN0YW5jZS5pbnN0YW5jZVB1YmxpY0lwLFxuICAgICAgZXhwb3J0TmFtZTogYCR7c3RhY2tOYW1lfS1pbnN0YW5jZS1wdWJsaWMtaXBgLFxuICAgIH0pO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJpbnN0YW5jZS1wdWJsaWMtZG5zLW5hbWUtb3V0cHV0XCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLmluc3RhbmNlLmluc3RhbmNlUHVibGljRG5zTmFtZSxcbiAgICAgIGV4cG9ydE5hbWU6IGAke3N0YWNrTmFtZX0tcHVibGljLWRucy1uYW1lYCxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc3Rpb25Ib3N0UHJvcHMge1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICByZWFkb25seSBkYjogcmRzLklEYXRhYmFzZUluc3RhbmNlO1xuICByZWFkb25seSB1c2VyRGF0YTogZWMyLlVzZXJEYXRhO1xuICByZWFkb25seSBpcHY0QWxsb3dsaXN0OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgc3NoUG9ydD86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgYW4gZWxhc3RpYyBJUCBzaG91bGQgYmUgY3JlYXRlZCBmb3IgdGhlIGJhc3Rpb24gaG9zdC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUVsYXN0aWNJcD86IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { aws_ec2 as ec2, aws_secretsmanager as secretsmanager } from "aws-cdk-lib";
|
|
1
|
+
import { aws_ec2 as ec2, aws_secretsmanager as secretsmanager, CustomResource } from "aws-cdk-lib";
|
|
2
2
|
import { Construct } from "constructs";
|
|
3
3
|
export interface PgBouncerConfigProps {
|
|
4
4
|
poolMode?: "transaction" | "session" | "statement";
|
|
@@ -50,6 +50,7 @@ export declare class PgBouncer extends Construct {
|
|
|
50
50
|
readonly instance: ec2.Instance;
|
|
51
51
|
readonly pgbouncerSecret: secretsmanager.Secret;
|
|
52
52
|
readonly securityGroup: ec2.SecurityGroup;
|
|
53
|
+
readonly secretUpdateComplete: CustomResource;
|
|
53
54
|
private getDefaultConfig;
|
|
54
55
|
constructor(scope: Construct, id: string, props: PgBouncerProps);
|
|
55
56
|
private loadUserDataScript;
|
|
@@ -106,7 +106,7 @@ class PgBouncer extends constructs_1.Construct {
|
|
|
106
106
|
});
|
|
107
107
|
props.database.secret.grantRead(secretUpdaterFn);
|
|
108
108
|
this.pgbouncerSecret.grantWrite(secretUpdaterFn);
|
|
109
|
-
new aws_cdk_lib_1.CustomResource(this, "pgbouncerSecretBootstrapper", {
|
|
109
|
+
this.secretUpdateComplete = new aws_cdk_lib_1.CustomResource(this, "pgbouncerSecretBootstrapper", {
|
|
110
110
|
serviceToken: secretUpdaterFn.functionArn,
|
|
111
111
|
properties: {
|
|
112
112
|
instanceIp: props.usePublicSubnet
|
|
@@ -129,4 +129,4 @@ class PgBouncer extends constructs_1.Construct {
|
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
exports.PgBouncer = PgBouncer;
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGdCb3VuY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiUGdCb3VuY2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQU9xQjtBQUNyQiwyQ0FBdUM7QUFFdkMseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQTBEN0IsTUFBYSxTQUFVLFNBQVEsc0JBQVM7SUFLdEMsOEVBQThFO0lBQzlFLDhFQUE4RTtJQUM5RSxnRkFBZ0Y7SUFDaEYsa0NBQWtDO0lBRTFCLGdCQUFnQixDQUN0QixnQkFBd0I7UUFFeEIsNEVBQTRFO1FBQzVFLGdFQUFnRTtRQUNoRSxPQUFPO1lBQ0wsUUFBUSxFQUFFLGFBQWE7WUFDdkIsYUFBYSxFQUFFLElBQUk7WUFDbkIsZUFBZSxFQUFFLENBQUM7WUFDbEIsV0FBVyxFQUFFLENBQUM7WUFDZCxlQUFlLEVBQUUsQ0FBQztZQUNsQixrQkFBa0IsRUFBRSxDQUFDO1lBQ3JCLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLEVBQUU7WUFDdkMsa0JBQWtCLEVBQUUsZ0JBQWdCLEdBQUcsRUFBRTtTQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixrQ0FBa0M7UUFDbEMsTUFBTSxtQkFBbUIsR0FBRyxxQkFBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQzdDLHFCQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFDcEIscUJBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUN2QixDQUFDO1FBRUYsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxtQkFBbUIsQ0FBQztRQUMvRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFcEUsc0NBQXNDO1FBQ3RDLE1BQU0sZUFBZSxHQUFtQztZQUN0RCxHQUFHLGFB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Y0FBYyxHQUFHLHFCQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRS9DLDBEQUEwRDtRQUMxRCxjQUFjLENBQUMsV0FBVyxDQUN4QixxQkFBcUIsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQ3ZELGlCQUFpQixHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQy9DLG9CQUFvQixHQUFHLGVBQWUsQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUNyRCwwQkFBMEIsR0FBRyxlQUFlLENBQUMsYUFBYSxHQUFHLEdBQUcsRUFDaEUsNEJBQTRCLEdBQUcsZUFBZSxDQUFDLGVBQWUsR0FBRyxHQUFHLEVBQ3BFLHdCQUF3QixHQUFHLGVBQWUsQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUM1RCw0QkFBNEIsR0FBRyxlQUFlLENBQUMsZUFBZSxHQUFHLEdBQUcsRUFDcEUsK0JBQStCO1lBQzdCLGVBQWUsQ0FBQyxrQkFBa0I7WUFDbEMsR0FBRyxFQUNMLDZCQUE2QixHQUFHLGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLEVBQ3RFLCtCQUErQixHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQzNFLENBQUM7UUFFRiwwQkFBMEI7UUFDMUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUNoRSxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVqRCxjQUFjLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5DLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQXJMRCw4QkFxTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhd3NfZWMyIGFzIGVjMixcbiAgYXdzX2lhbSBhcyBpYW0sXG4gIGF3c19sYW1iZGEgYXMgbGFtYmRhLFxuICBhd3Nfc2VjcmV0c21hbmFnZXIgYXMgc2VjcmV0c21hbmFnZXIsXG4gIEN1c3RvbVJlc291cmNlLFxuICBTdGFjayxcbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuLy8gdXNlZCB0byBwb3B1bGF0ZSBwZ2JvdW5jZXIgY29uZmlnOlxuLy8gc2VlIGh0dHBzOi8vd3d3LnBnYm91bmNlci5vcmcvY29uZmlnLmh0bWwgZm9yIGRldGFpbHNcbmV4cG9ydCBpbnRlcmZhY2UgUGdCb3VuY2VyQ29uZmlnUHJvcHMge1xuICBwb29sTW9kZT86IFwidHJhbnNhY3Rpb25cIiB8IFwic2Vzc2lvblwiIHwgXCJzdGF0ZW1lbnRcIjtcbiAgbWF4Q2xpZW50Q29ubj86IG51bWJlcjtcbiAgZGVmYXVsdFBvb2xTaXplPzogbnVtYmVyO1xuICBtaW5Qb29sU2l6ZT86IG51bWJlcjtcbiAgcmVzZXJ2ZVBvb2xTaXplPzogbnVtYmVyO1xuICByZXNlcnZlUG9vbFRpbWVvdXQ/OiBudW1iZXI7XG4gIG1heERiQ29ubmVjdGlvbnM/OiBudW1iZXI7XG4gIG1heFVzZXJDb25uZWN0aW9ucz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZ0JvdW5jZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIGZvciB0aGUgcGdib3VuY2VyIGluc3RhbmNlXG4gICAqL1xuICBpbnN0YW5jZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVlBDIHRvIGRlcGxveSBQZ0JvdW5jZXIgaW50b1xuICAgKi9cbiAgdnBjOiBlYzIuSVZwYztcblxuICAvKipcbiAgICogVGhlIFJEUyBpbnN0YW5jZSB0byBjb25uZWN0IHRvXG4gICAqL1xuICBkYXRhYmFzZToge1xuICAgIGNvbm5lY3Rpb25zOiBlYzIuQ29ubmVjdGlvbnM7XG4gICAgc2VjcmV0OiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0O1xuICB9O1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIGNvbm5lY3Rpb25zIHNldHRpbmcgZm9yIHRoZSBkYXRhYmFzZS5cbiAgICogUGdCb3VuY2VyIHdpbGwgdXNlIDEwIGZld2VyIHRoYW4gdGhpcyB2YWx1ZS5cbiAgICovXG4gIGRiTWF4Q29ubmVjdGlvbnM6IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkZXBsb3kgaW4gcHVibGljIHN1Ym5ldFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgdXNlUHVibGljU3VibmV0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5zdGFuY2UgdHlwZSBmb3IgUGdCb3VuY2VyXG4gICAqIEBkZWZhdWx0IHQzLm1pY3JvXG4gICAqL1xuICBpbnN0YW5jZVR5cGU/OiBlYzIuSW5zdGFuY2VUeXBlO1xuXG4gIC8qKlxuICAgKiBQZ0JvdW5jZXIgY29uZmlndXJhdGlvbiBvcHRpb25zXG4gICAqL1xuICBwZ0JvdW5jZXJDb25maWc/OiBQZ0JvdW5jZXJDb25maWdQcm9wcztcbn1cblxuZXhwb3J0IGNsYXNzIFBnQm91bmNlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZTogZWMyLkluc3RhbmNlO1xuICBwdWJsaWMgcmVhZG9ubHkgcGdib3VuY2VyU2VjcmV0OiBzZWNyZXRzbWFuYWdlci5TZWNyZXQ7XG4gIHB1YmxpYyByZWFkb25seSBzZWN1cml0eUdyb3VwOiBlYzIuU2VjdXJpdHlHcm91cDtcblxuICAvLyBUaGUgbWF4X2Nvbm5lY3Rpb25zIHBhcmFtZXRlciBpbiBQZ0JvdW5jZXIgZGV0ZXJtaW5lcyB0aGUgbWF4aW11bSBudW1iZXIgb2ZcbiAgLy8gY29ubmVjdGlvbnMgdG8gb3BlbiBvbiB0aGUgYWN0dWFsIGRhdGFiYXNlIGluc3RhbmNlLiBXZSB3YW50IHRoYXQgbnVtYmVyIHRvXG4gIC8vIGJlIHNsaWdodGx5IHNtYWxsZXIgdGhhbiB0aGUgYWN0dWFsIG1heF9jb25uZWN0aW9ucyB2YWx1ZSBvbiB0aGUgUkRTIGluc3RhbmNlXG4gIC8vIHNvIHdlIHBlcmZvcm0gdGhpcyBjYWxjdWxhdGlvbi5cblxuICBwcml2YXRlIGdldERlZmF1bHRDb25maWcoXG4gICAgZGJNYXhDb25uZWN0aW9uczogbnVtYmVyXG4gICk6IFJlcXVpcmVkPFBnQm91bmNlckNvbmZpZ1Byb3BzPiB7XG4gICAgLy8gbWF4RGJDb25uZWN0aW9ucyAoYW5kIG1heFVzZXJDb25uZWN0aW9ucykgYXJlIHRoZSBvbmx5IHNldHRpbmdzIHRoYXQgbmVlZFxuICAgIC8vIHRvIGJlIHJlc3BvbnNpdmUgdG8gdGhlIGRhdGFiYXNlIHNpemUvbWF4X2Nvbm5lY3Rpb25zIHNldHRpbmdcbiAgICByZXR1cm4ge1xuICAgICAgcG9vbE1vZGU6IFwidHJhbnNhY3Rpb25cIixcbiAgICAgIG1heENsaWVudENvbm46IDEwMDAsXG4gICAgICBkZWZhdWx0UG9vbFNpemU6IDUsXG4gICAgICBtaW5Qb29sU2l6ZTogMCxcbiAgICAgIHJlc2VydmVQb29sU2l6ZTogNSxcbiAgICAgIHJlc2VydmVQb29sVGltZW91dDogNSxcbiAgICAgIG1heERiQ29ubmVjdGlvbnM6IGRiTWF4Q29ubmVjdGlvbnMgLSAxMCxcbiAgICAgIG1heFVzZXJDb25uZWN0aW9uczogZGJNYXhDb25uZWN0aW9ucyAtIDEwLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUGdCb3VuY2VyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gU2V0IGRlZmF1bHRzIGZvciBvcHRpb25hbCBwcm9wc1xuICAgIGNvbnN0IGRlZmF1bHRJbnN0YW5jZVR5cGUgPSBlYzIuSW5zdGFuY2VUeXBlLm9mKFxuICAgICAgZWMyLkluc3RhbmNlQ2xhc3MuVDMsXG4gICAgICBlYzIuSW5zdGFuY2VTaXplLk1JQ1JPXG4gICAgKTtcblxuICAgIGNvbnN0IGluc3RhbmNlVHlwZSA9IHByb3BzLmluc3RhbmNlVHlwZSA/PyBkZWZhdWx0SW5zdGFuY2VUeXBlO1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWcgPSB0aGlzLmdldERlZmF1bHRDb25maWcocHJvcHMuZGJNYXhDb25uZWN0aW9ucyk7XG5cbiAgICAvLyBNZXJnZSBwcm92aWRlZCBjb25maWcgd2l0aCBkZWZhdWx0c1xuICAgIGNvbnN0IHBnQm91bmNlckNvbmZpZzogUmVxdWlyZWQ8UGdCb3VuY2VyQ29uZmlnUHJvcHM+ID0ge1xuICAgICAgLi4uZGVmYXVsdENvbmZpZyxcbiAgICAgIC4uLnByb3BzLnBnQm91bmNlckNvbmZpZyxcbiAgICB9O1xuXG4gICAgLy8gQ3JlYXRlIHJvbGUgZm9yIFBnQm91bmNlciBpbnN0YW5jZSB0byBlbmFibGUgd3JpdGluZyB0byBDbG91ZFdhdGNoXG4gICAgY29uc3Qgcm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCBcIkluc3RhbmNlUm9sZVwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJwZ2JvdW5jZXIgaW5zdGFuY2Ugcm9sZSB3aXRoIFN5c3RlbXMgTWFuYWdlciArIENsb3VkV2F0Y2ggcGVybWlzc2lvbnNcIixcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiZWMyLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFxuICAgICAgICAgIFwiQW1hem9uU1NNTWFuYWdlZEluc3RhbmNlQ29yZVwiXG4gICAgICAgICksXG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcbiAgICAgICAgICBcIkNsb3VkV2F0Y2hBZ2VudFNlcnZlclBvbGljeVwiXG4gICAgICAgICksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIHBvbGljeSB0byBhbGxvdyByZWFkaW5nIFJEUyBjcmVkZW50aWFscyBmcm9tIFNlY3JldHMgTWFuYWdlclxuICAgIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcInNlY3JldHNtYW5hZ2VyOkdldFNlY3JldFZhbHVlXCJdLFxuICAgICAgICByZXNvdXJjZXM6IFtwcm9wcy5kYXRhYmFzZS5zZWNyZXQuc2VjcmV0QXJuXSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIENyZWF0ZSBhIHNlY3VyaXR5IGdyb3VwIGFuZCBhbGxvdyBjb25uZWN0aW9ucyBmcm9tIHRoZSBMYW1iZGEgSVAgcmFuZ2VzIGZvciB0aGlzIHJlZ2lvblxuICAgIHRoaXMuc2VjdXJpdHlHcm91cCA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBcIlBnQm91bmNlclNlY3VyaXR5R3JvdXBcIiwge1xuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICBkZXNjcmlwdGlvbjogXCJTZWN1cml0eSBncm91cCBmb3IgUGdCb3VuY2VyIGluc3RhbmNlXCIsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIFBnQm91bmNlciBpbnN0YW5jZVxuICAgIHRoaXMuaW5zdGFuY2UgPSBuZXcgZWMyLkluc3RhbmNlKHRoaXMsIFwiSW5zdGFuY2VcIiwge1xuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiB7XG4gICAgICAgIHN1Ym5ldFR5cGU6IHByb3BzLnVzZVB1YmxpY1N1Ym5ldFxuICAgICAgICAgID8gZWMyLlN1Ym5ldFR5cGUuUFVCTElDXG4gICAgICAgICAgOiBlYzIuU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfRUdSRVNTLFxuICAgICAgfSxcbiAgICAgIHNlY3VyaXR5R3JvdXA6IHRoaXMuc2VjdXJpdHlHcm91cCxcbiAgICAgIGluc3RhbmNlVHlwZSxcbiAgICAgIGluc3RhbmNlTmFtZTogcHJvcHMuaW5zdGFuY2VOYW1lLFxuICAgICAgbWFjaGluZUltYWdlOiBlYzIuTWFjaGluZUltYWdlLmZyb21Tc21QYXJhbWV0ZXIoXG4gICAgICAgIFwiL2F3cy9zZXJ2aWNlL2Nhbm9uaWNhbC91YnVudHUvc2VydmVyL2phbW15L3N0YWJsZS9jdXJyZW50L2FtZDY0L2h2bS9lYnMtZ3AyL2FtaS1pZFwiLFxuICAgICAgICB7IG9zOiBlYzIuT3BlcmF0aW5nU3lzdGVtVHlwZS5MSU5VWCB9XG4gICAgICApLFxuICAgICAgcm9sZSxcbiAgICAgIGJsb2NrRGV2aWNlczogW1xuICAgICAgICB7XG4gICAgICAgICAgZGV2aWNlTmFtZTogXCIvZGV2L3h2ZGFcIixcbiAgICAgICAgICB2b2x1bWU6IGVjMi5CbG9ja0RldmljZVZvbHVtZS5lYnMoMjAsIHtcbiAgICAgICAgICAgIHZvbHVtZVR5cGU6IGVjMi5FYnNEZXZpY2VWb2x1bWVUeXBlLkdQMyxcbiAgICAgICAgICAgIGVuY3J5cHRlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRlbGV0ZU9uVGVybWluYXRpb246IHRydWUsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgdXNlckRhdGE6IHRoaXMubG9hZFVzZXJEYXRhU2NyaXB0KHBnQm91bmNlckNvbmZpZywgcHJvcHMuZGF0YWJhc2UpLFxuICAgICAgdXNlckRhdGFDYXVzZXNSZXBsYWNlbWVudDogdHJ1ZSxcbiAgICAgIGFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzczogcHJvcHMudXNlUHVibGljU3VibmV0LFxuICAgIH0pO1xuXG4gICAgLy8gQWxsb3cgUGdCb3VuY2VyIHRvIGNvbm5lY3QgdG8gUkRTXG4gICAgcHJvcHMuZGF0YWJhc2UuY29ubmVjdGlvbnMuYWxsb3dGcm9tKFxuICAgICAgdGhpcy5pbnN0YW5jZSxcbiAgICAgIGVjMi5Qb3J0LnRjcCg1NDMyKSxcbiAgICAgIFwiQWxsb3cgUGdCb3VuY2VyIHRvIGNvbm5lY3QgdG8gUkRTXCJcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIGEgbmV3IHNlY3JldCBmb3IgcGdib3VuY2VyIGNvbm5lY3Rpb24gY3JlZGVudGlhbHNcbiAgICB0aGlzLnBnYm91bmNlclNlY3JldCA9IG5ldyBzZWNyZXRzbWFuYWdlci5TZWNyZXQodGhpcywgXCJQZ0JvdW5jZXJTZWNyZXRcIiwge1xuICAgICAgZGVzY3JpcHRpb246IGBDb25uZWN0aW9uIGluZm9ybWF0aW9uIGZvciBQZ0JvdW5jZXIgaW5zdGFuY2UgJHtwcm9wcy5pbnN0YW5jZU5hbWV9YCxcbiAgICAgIGdlbmVyYXRlU2VjcmV0U3RyaW5nOiB7XG4gICAgICAgIGdlbmVyYXRlU3RyaW5nS2V5OiBcImR1bW15XCIsXG4gICAgICAgIHNlY3JldFN0cmluZ1RlbXBsYXRlOiBcInt9XCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gR3JhbnQgdGhlIHJvbGUgcGVybWlzc2lvbiB0byByZWFkIHRoZSBuZXcgc2VjcmV0XG4gICAgdGhpcy5wZ2JvdW5jZXJTZWNyZXQuZ3JhbnRSZWFkKHJvbGUpO1xuXG4gICAgLy8gVXBkYXRlIHBnYm91bmNlclNlY3JldCB0byBjb250YWluIHBnc3RhY1NlY3JldCB2YWx1ZXMgYnV0IHdpdGggbmV3IHZhbHVlIGZvciBob3N0XG4gICAgY29uc3Qgc2VjcmV0VXBkYXRlckZuID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBcIlNlY3JldFVwZGF0ZXJGdW5jdGlvblwiLCB7XG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMjBfWCxcbiAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KFxuICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCBcImxhbWJkYS9wZ2JvdW5jZXItc2VjcmV0LXVwZGF0ZXJcIilcbiAgICAgICksXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBTT1VSQ0VfU0VDUkVUX0FSTjogcHJvcHMuZGF0YWJhc2Uuc2VjcmV0LnNlY3JldEFybixcbiAgICAgICAgVEFSR0VUX1NFQ1JFVF9BUk46IHRoaXMucGdib3VuY2VyU2VjcmV0LnNlY3JldEFybixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBwcm9wcy5kYXRhYmFzZS5zZWNyZXQuZ3JhbnRSZWFkKHNlY3JldFVwZGF0ZXJGbik7XG4gICAgdGhpcy5wZ2JvdW5jZXJTZWNyZXQuZ3JhbnRXcml0ZShzZWNyZXRVcGRhdGVyRm4pO1xuXG4gICAgbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIFwicGdib3VuY2VyU2VjcmV0Qm9vdHN0cmFwcGVyXCIsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogc2VjcmV0VXBkYXRlckZuLmZ1bmN0aW9uQXJuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBpbnN0YW5jZUlwOiBwcm9wcy51c2VQdWJsaWNTdWJuZXRcbiAgICAgICAgICA/IHRoaXMuaW5zdGFuY2UuaW5zdGFuY2VQdWJsaWNJcFxuICAgICAgICAgIDogdGhpcy5pbnN0YW5jZS5pbnN0YW5jZVByaXZhdGVJcCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRVc2VyRGF0YVNjcmlwdChcbiAgICBwZ0JvdW5jZXJDb25maWc6IFJlcXVpcmVkPE5vbk51bGxhYmxlPFBnQm91bmNlclByb3BzW1wicGdCb3VuY2VyQ29uZmlnXCJdPj4sXG4gICAgZGF0YWJhc2U6IHsgc2VjcmV0OiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0IH1cbiAgKTogZWMyLlVzZXJEYXRhIHtcbiAgICBjb25zdCB1c2VyRGF0YVNjcmlwdCA9IGVjMi5Vc2VyRGF0YS5mb3JMaW51eCgpO1xuXG4gICAgLy8gU2V0IGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyc1xuICAgIHVzZXJEYXRhU2NyaXB0LmFkZENvbW1hbmRzKFxuICAgICAgJ2V4cG9ydCBTRUNSRVRfQVJOPVwiJyArIGRhdGFiYXNlLnNlY3JldC5zZWNyZXRBcm4gKyAnXCInLFxuICAgICAgJ2V4cG9ydCBSRUdJT049XCInICsgU3RhY2sub2YodGhpcykucmVnaW9uICsgJ1wiJyxcbiAgICAgICdleHBvcnQgUE9PTF9NT0RFPVwiJyArIHBnQm91bmNlckNvbmZpZy5wb29sTW9kZSArICdcIicsXG4gICAgICAnZXhwb3J0IE1BWF9DTElFTlRfQ09OTj1cIicgKyBwZ0JvdW5jZXJDb25maWcubWF4Q2xpZW50Q29ubiArICdcIicsXG4gICAgICAnZXhwb3J0IERFRkFVTFRfUE9PTF9TSVpFPVwiJyArIHBnQm91bmNlckNvbmZpZy5kZWZhdWx0UG9vbFNpemUgKyAnXCInLFxuICAgICAgJ2V4cG9ydCBNSU5fUE9PTF9TSVpFPVwiJyArIHBnQm91bmNlckNvbmZpZy5taW5Qb29sU2l6ZSArICdcIicsXG4gICAgICAnZXhwb3J0IFJFU0VSVkVfUE9PTF9TSVpFPVwiJyArIHBnQm91bmNlckNvbmZpZy5yZXNlcnZlUG9vbFNpemUgKyAnXCInLFxuICAgICAgJ2V4cG9ydCBSRVNFUlZFX1BPT0xfVElNRU9VVD1cIicgK1xuICAgICAgICBwZ0JvdW5jZXJDb25maWcucmVzZXJ2ZVBvb2xUaW1lb3V0ICtcbiAgICAgICAgJ1wiJyxcbiAgICAgICdleHBvcnQgTUFYX0RCX0NPTk5FQ1RJT05TPVwiJyArIHBnQm91bmNlckNvbmZpZy5tYXhEYkNvbm5lY3Rpb25zICsgJ1wiJyxcbiAgICAgICdleHBvcnQgTUFYX1VTRVJfQ09OTkVDVElPTlM9XCInICsgcGdCb3VuY2VyQ29uZmlnLm1heFVzZXJDb25uZWN0aW9ucyArICdcIidcbiAgICApO1xuXG4gICAgLy8gTG9hZCB0aGUgc3RhcnR1cCBzY3JpcHRcbiAgICBjb25zdCBzY3JpcHRQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuL3BnYm91bmNlci1zZXR1cC5zaFwiKTtcbiAgICBsZXQgc2NyaXB0ID0gZnMucmVhZEZpbGVTeW5jKHNjcmlwdFBhdGgsIFwidXRmOFwiKTtcblxuICAgIHVzZXJEYXRhU2NyaXB0LmFkZENvbW1hbmRzKHNjcmlwdCk7XG5cbiAgICByZXR1cm4gdXNlckRhdGFTY3JpcHQ7XG4gIH1cbn1cbiJdfQ==
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGdCb3VuY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiUGdCb3VuY2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQU9xQjtBQUNyQiwyQ0FBdUM7QUFFdkMseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQTBEN0IsTUFBYSxTQUFVLFNBQVEsc0JBQVM7SUFNdEMsOEVBQThFO0lBQzlFLDhFQUE4RTtJQUM5RSxnRkFBZ0Y7SUFDaEYsa0NBQWtDO0lBRTFCLGdCQUFnQixDQUN0QixnQkFBd0I7UUFFeEIsNEVBQTRFO1FBQzVFLGdFQUFnRTtRQUNoRSxPQUFPO1lBQ0wsUUFBUSxFQUFFLGFBQWE7WUFDdkIsYUFBYSxFQUFFLElBQUk7WUFDbkIsZUFBZSxFQUFFLENBQUM7WUFDbEIsV0FBVyxFQUFFLENBQUM7WUFDZCxlQUFlLEVBQUUsQ0FBQztZQUNsQixrQkFBa0IsRUFBRSxDQUFDO1lBQ3JCLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLEVBQUU7WUFDdkMsa0JBQWtCLEVBQUUsZ0JBQWdCLEdBQUcsRUFBRTtTQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixrQ0FBa0M7UUFDbEMsTUFBTSxtQkFBbUIsR0FBRyxxQkFBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQzdDLHFCQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFDcEIscUJBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUN2QixDQUFDO1FBRUYsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxtQkFBbUIsQ0FBQztRQUMvRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFcEUsc0NBQXNDO1FBQ3RDLE1BQU0sZUFBZSxHQUFtQztZQUN0RCxHQUFHLGFB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RUFDekUsUUFBNEM7UUFFNUMsTUFBTSxjQUFjLEdBQUcscUJBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFL0MsMERBQTBEO1FBQzFELGNBQWMsQ0FBQyxXQUFXLENBQ3hCLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFDdkQsaUJBQWlCLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFDL0Msb0JBQW9CLEdBQUcsZUFBZSxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQ3JELDBCQUEwQixHQUFHLGVBQWUsQ0FBQyxhQUFhLEdBQUcsR0FBRyxFQUNoRSw0QkFBNEIsR0FBRyxlQUFlLENBQUMsZUFBZSxHQUFHLEdBQUcsRUFDcEUsd0JBQXdCLEdBQUcsZUFBZSxDQUFDLFdBQVcsR0FBRyxHQUFHLEVBQzVELDRCQUE0QixHQUFHLGVBQWUsQ0FBQyxlQUFlLEdBQUcsR0FBRyxFQUNwRSwrQkFBK0I7WUFDN0IsZUFBZSxDQUFDLGtCQUFrQjtZQUNsQyxHQUFHLEVBQ0wsNkJBQTZCLEdBQUcsZUFBZSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsRUFDdEUsK0JBQStCLEdBQUcsZUFBZSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsQ0FDM0UsQ0FBQztRQUVGLDBCQUEwQjtRQUMxQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2hFLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRWpELGNBQWMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkMsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBMUxELDhCQTBMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGF3c19lYzIgYXMgZWMyLFxuICBhd3NfaWFtIGFzIGlhbSxcbiAgYXdzX2xhbWJkYSBhcyBsYW1iZGEsXG4gIGF3c19zZWNyZXRzbWFuYWdlciBhcyBzZWNyZXRzbWFuYWdlcixcbiAgQ3VzdG9tUmVzb3VyY2UsXG4gIFN0YWNrLFxufSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG4vLyB1c2VkIHRvIHBvcHVsYXRlIHBnYm91bmNlciBjb25maWc6XG4vLyBzZWUgaHR0cHM6Ly93d3cucGdib3VuY2VyLm9yZy9jb25maWcuaHRtbCBmb3IgZGV0YWlsc1xuZXhwb3J0IGludGVyZmFjZSBQZ0JvdW5jZXJDb25maWdQcm9wcyB7XG4gIHBvb2xNb2RlPzogXCJ0cmFuc2FjdGlvblwiIHwgXCJzZXNzaW9uXCIgfCBcInN0YXRlbWVudFwiO1xuICBtYXhDbGllbnRDb25uPzogbnVtYmVyO1xuICBkZWZhdWx0UG9vbFNpemU/OiBudW1iZXI7XG4gIG1pblBvb2xTaXplPzogbnVtYmVyO1xuICByZXNlcnZlUG9vbFNpemU/OiBudW1iZXI7XG4gIHJlc2VydmVQb29sVGltZW91dD86IG51bWJlcjtcbiAgbWF4RGJDb25uZWN0aW9ucz86IG51bWJlcjtcbiAgbWF4VXNlckNvbm5lY3Rpb25zPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBnQm91bmNlclByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgZm9yIHRoZSBwZ2JvdW5jZXIgaW5zdGFuY2VcbiAgICovXG4gIGluc3RhbmNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWUEMgdG8gZGVwbG95IFBnQm91bmNlciBpbnRvXG4gICAqL1xuICB2cGM6IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBUaGUgUkRTIGluc3RhbmNlIHRvIGNvbm5lY3QgdG9cbiAgICovXG4gIGRhdGFiYXNlOiB7XG4gICAgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucztcbiAgICBzZWNyZXQ6IHNlY3JldHNtYW5hZ2VyLklTZWNyZXQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIE1heGltdW0gY29ubmVjdGlvbnMgc2V0dGluZyBmb3IgdGhlIGRhdGFiYXNlLlxuICAgKiBQZ0JvdW5jZXIgd2lsbCB1c2UgMTAgZmV3ZXIgdGhhbiB0aGlzIHZhbHVlLlxuICAgKi9cbiAgZGJNYXhDb25uZWN0aW9uczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRlcGxveSBpbiBwdWJsaWMgc3VibmV0XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICB1c2VQdWJsaWNTdWJuZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSB0eXBlIGZvciBQZ0JvdW5jZXJcbiAgICogQGRlZmF1bHQgdDMubWljcm9cbiAgICovXG4gIGluc3RhbmNlVHlwZT86IGVjMi5JbnN0YW5jZVR5cGU7XG5cbiAgLyoqXG4gICAqIFBnQm91bmNlciBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICovXG4gIHBnQm91bmNlckNvbmZpZz86IFBnQm91bmNlckNvbmZpZ1Byb3BzO1xufVxuXG5leHBvcnQgY2xhc3MgUGdCb3VuY2VyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlOiBlYzIuSW5zdGFuY2U7XG4gIHB1YmxpYyByZWFkb25seSBwZ2JvdW5jZXJTZWNyZXQ6IHNlY3JldHNtYW5hZ2VyLlNlY3JldDtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA6IGVjMi5TZWN1cml0eUdyb3VwO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VjcmV0VXBkYXRlQ29tcGxldGU6IEN1c3RvbVJlc291cmNlO1xuXG4gIC8vIFRoZSBtYXhfY29ubmVjdGlvbnMgcGFyYW1ldGVyIGluIFBnQm91bmNlciBkZXRlcm1pbmVzIHRoZSBtYXhpbXVtIG51bWJlciBvZlxuICAvLyBjb25uZWN0aW9ucyB0byBvcGVuIG9uIHRoZSBhY3R1YWwgZGF0YWJhc2UgaW5zdGFuY2UuIFdlIHdhbnQgdGhhdCBudW1iZXIgdG9cbiAgLy8gYmUgc2xpZ2h0bHkgc21hbGxlciB0aGFuIHRoZSBhY3R1YWwgbWF4X2Nvbm5lY3Rpb25zIHZhbHVlIG9uIHRoZSBSRFMgaW5zdGFuY2VcbiAgLy8gc28gd2UgcGVyZm9ybSB0aGlzIGNhbGN1bGF0aW9uLlxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdENvbmZpZyhcbiAgICBkYk1heENvbm5lY3Rpb25zOiBudW1iZXJcbiAgKTogUmVxdWlyZWQ8UGdCb3VuY2VyQ29uZmlnUHJvcHM+IHtcbiAgICAvLyBtYXhEYkNvbm5lY3Rpb25zIChhbmQgbWF4VXNlckNvbm5lY3Rpb25zKSBhcmUgdGhlIG9ubHkgc2V0dGluZ3MgdGhhdCBuZWVkXG4gICAgLy8gdG8gYmUgcmVzcG9uc2l2ZSB0byB0aGUgZGF0YWJhc2Ugc2l6ZS9tYXhfY29ubmVjdGlvbnMgc2V0dGluZ1xuICAgIHJldHVybiB7XG4gICAgICBwb29sTW9kZTogXCJ0cmFuc2FjdGlvblwiLFxuICAgICAgbWF4Q2xpZW50Q29ubjogMTAwMCxcbiAgICAgIGRlZmF1bHRQb29sU2l6ZTogNSxcbiAgICAgIG1pblBvb2xTaXplOiAwLFxuICAgICAgcmVzZXJ2ZVBvb2xTaXplOiA1LFxuICAgICAgcmVzZXJ2ZVBvb2xUaW1lb3V0OiA1LFxuICAgICAgbWF4RGJDb25uZWN0aW9uczogZGJNYXhDb25uZWN0aW9ucyAtIDEwLFxuICAgICAgbWF4VXNlckNvbm5lY3Rpb25zOiBkYk1heENvbm5lY3Rpb25zIC0gMTAsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQZ0JvdW5jZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBTZXQgZGVmYXVsdHMgZm9yIG9wdGlvbmFsIHByb3BzXG4gICAgY29uc3QgZGVmYXVsdEluc3RhbmNlVHlwZSA9IGVjMi5JbnN0YW5jZVR5cGUub2YoXG4gICAgICBlYzIuSW5zdGFuY2VDbGFzcy5UMyxcbiAgICAgIGVjMi5JbnN0YW5jZVNpemUuTUlDUk9cbiAgICApO1xuXG4gICAgY29uc3QgaW5zdGFuY2VUeXBlID0gcHJvcHMuaW5zdGFuY2VUeXBlID8/IGRlZmF1bHRJbnN0YW5jZVR5cGU7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZyA9IHRoaXMuZ2V0RGVmYXVsdENvbmZpZyhwcm9wcy5kYk1heENvbm5lY3Rpb25zKTtcblxuICAgIC8vIE1lcmdlIHByb3ZpZGVkIGNvbmZpZyB3aXRoIGRlZmF1bHRzXG4gICAgY29uc3QgcGdCb3VuY2VyQ29uZmlnOiBSZXF1aXJlZDxQZ0JvdW5jZXJDb25maWdQcm9wcz4gPSB7XG4gICAgICAuLi5kZWZhdWx0Q29uZmlnLFxuICAgICAgLi4ucHJvcHMucGdCb3VuY2VyQ29uZmlnLFxuICAgIH07XG5cbiAgICAvLyBDcmVhdGUgcm9sZSBmb3IgUGdCb3VuY2VyIGluc3RhbmNlIHRvIGVuYWJsZSB3cml0aW5nIHRvIENsb3VkV2F0Y2hcbiAgICBjb25zdCByb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiSW5zdGFuY2VSb2xlXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcInBnYm91bmNlciBpbnN0YW5jZSByb2xlIHdpdGggU3lzdGVtcyBNYW5hZ2VyICsgQ2xvdWRXYXRjaCBwZXJtaXNzaW9uc1wiLFxuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJlYzIuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXG4gICAgICAgICAgXCJBbWF6b25TU01NYW5hZ2VkSW5zdGFuY2VDb3JlXCJcbiAgICAgICAgKSxcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFxuICAgICAgICAgIFwiQ2xvdWRXYXRjaEFnZW50U2VydmVyUG9saWN5XCJcbiAgICAgICAgKSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyBBZGQgcG9saWN5IHRvIGFsbG93IHJlYWRpbmcgUkRTIGNyZWRlbnRpYWxzIGZyb20gU2VjcmV0cyBNYW5hZ2VyXG4gICAgcm9sZS5hZGRUb1BvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1wic2VjcmV0c21hbmFnZXI6R2V0U2VjcmV0VmFsdWVcIl0sXG4gICAgICAgIHJlc291cmNlczogW3Byb3BzLmRhdGFiYXNlLnNlY3JldC5zZWNyZXRBcm5dLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIGEgc2VjdXJpdHkgZ3JvdXAgYW5kIGFsbG93IGNvbm5lY3Rpb25zIGZyb20gdGhlIExhbWJkYSBJUCByYW5nZXMgZm9yIHRoaXMgcmVnaW9uXG4gICAgdGhpcy5zZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRoaXMsIFwiUGdCb3VuY2VyU2VjdXJpdHlHcm91cFwiLCB7XG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlNlY3VyaXR5IGdyb3VwIGZvciBQZ0JvdW5jZXIgaW5zdGFuY2VcIixcbiAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgUGdCb3VuY2VyIGluc3RhbmNlXG4gICAgdGhpcy5pbnN0YW5jZSA9IG5ldyBlYzIuSW5zdGFuY2UodGhpcywgXCJJbnN0YW5jZVwiLCB7XG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHtcbiAgICAgICAgc3VibmV0VHlwZTogcHJvcHMudXNlUHVibGljU3VibmV0XG4gICAgICAgICAgPyBlYzIuU3VibmV0VHlwZS5QVUJMSUNcbiAgICAgICAgICA6IGVjMi5TdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1MsXG4gICAgICB9LFxuICAgICAgc2VjdXJpdHlHcm91cDogdGhpcy5zZWN1cml0eUdyb3VwLFxuICAgICAgaW5zdGFuY2VUeXBlLFxuICAgICAgaW5zdGFuY2VOYW1lOiBwcm9wcy5pbnN0YW5jZU5hbWUsXG4gICAgICBtYWNoaW5lSW1hZ2U6IGVjMi5NYWNoaW5lSW1hZ2UuZnJvbVNzbVBhcmFtZXRlcihcbiAgICAgICAgXCIvYXdzL3NlcnZpY2UvY2Fub25pY2FsL3VidW50dS9zZXJ2ZXIvamFtbXkvc3RhYmxlL2N1cnJlbnQvYW1kNjQvaHZtL2Vicy1ncDIvYW1pLWlkXCIsXG4gICAgICAgIHsgb3M6IGVjMi5PcGVyYXRpbmdTeXN0ZW1UeXBlLkxJTlVYIH1cbiAgICAgICksXG4gICAgICByb2xlLFxuICAgICAgYmxvY2tEZXZpY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBkZXZpY2VOYW1lOiBcIi9kZXYveHZkYVwiLFxuICAgICAgICAgIHZvbHVtZTogZWMyLkJsb2NrRGV2aWNlVm9sdW1lLmVicygyMCwge1xuICAgICAgICAgICAgdm9sdW1lVHlwZTogZWMyLkVic0RldmljZVZvbHVtZVR5cGUuR1AzLFxuICAgICAgICAgICAgZW5jcnlwdGVkOiB0cnVlLFxuICAgICAgICAgICAgZGVsZXRlT25UZXJtaW5hdGlvbjogdHJ1ZSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB1c2VyRGF0YTogdGhpcy5sb2FkVXNlckRhdGFTY3JpcHQocGdCb3VuY2VyQ29uZmlnLCBwcm9wcy5kYXRhYmFzZSksXG4gICAgICB1c2VyRGF0YUNhdXNlc1JlcGxhY2VtZW50OiB0cnVlLFxuICAgICAgYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzOiBwcm9wcy51c2VQdWJsaWNTdWJuZXQsXG4gICAgfSk7XG5cbiAgICAvLyBBbGxvdyBQZ0JvdW5jZXIgdG8gY29ubmVjdCB0byBSRFNcbiAgICBwcm9wcy5kYXRhYmFzZS5jb25uZWN0aW9ucy5hbGxvd0Zyb20oXG4gICAgICB0aGlzLmluc3RhbmNlLFxuICAgICAgZWMyLlBvcnQudGNwKDU0MzIpLFxuICAgICAgXCJBbGxvdyBQZ0JvdW5jZXIgdG8gY29ubmVjdCB0byBSRFNcIlxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgYSBuZXcgc2VjcmV0IGZvciBwZ2JvdW5jZXIgY29ubmVjdGlvbiBjcmVkZW50aWFsc1xuICAgIHRoaXMucGdib3VuY2VyU2VjcmV0ID0gbmV3IHNlY3JldHNtYW5hZ2VyLlNlY3JldCh0aGlzLCBcIlBnQm91bmNlclNlY3JldFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogYENvbm5lY3Rpb24gaW5mb3JtYXRpb24gZm9yIFBnQm91bmNlciBpbnN0YW5jZSAke3Byb3BzLmluc3RhbmNlTmFtZX1gLFxuICAgICAgZ2VuZXJhdGVTZWNyZXRTdHJpbmc6IHtcbiAgICAgICAgZ2VuZXJhdGVTdHJpbmdLZXk6IFwiZHVtbXlcIixcbiAgICAgICAgc2VjcmV0U3RyaW5nVGVtcGxhdGU6IFwie31cIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBHcmFudCB0aGUgcm9sZSBwZXJtaXNzaW9uIHRvIHJlYWQgdGhlIG5ldyBzZWNyZXRcbiAgICB0aGlzLnBnYm91bmNlclNlY3JldC5ncmFudFJlYWQocm9sZSk7XG5cbiAgICAvLyBVcGRhdGUgcGdib3VuY2VyU2VjcmV0IHRvIGNvbnRhaW4gcGdzdGFjU2VjcmV0IHZhbHVlcyBidXQgd2l0aCBuZXcgdmFsdWUgZm9yIGhvc3RcbiAgICBjb25zdCBzZWNyZXRVcGRhdGVyRm4gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwiU2VjcmV0VXBkYXRlckZ1bmN0aW9uXCIsIHtcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18yMF9YLFxuICAgICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoXG4gICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwibGFtYmRhL3BnYm91bmNlci1zZWNyZXQtdXBkYXRlclwiKVxuICAgICAgKSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFNPVVJDRV9TRUNSRVRfQVJOOiBwcm9wcy5kYXRhYmFzZS5zZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgICBUQVJHRVRfU0VDUkVUX0FSTjogdGhpcy5wZ2JvdW5jZXJTZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHByb3BzLmRhdGFiYXNlLnNlY3JldC5ncmFudFJlYWQoc2VjcmV0VXBkYXRlckZuKTtcbiAgICB0aGlzLnBnYm91bmNlclNlY3JldC5ncmFudFdyaXRlKHNlY3JldFVwZGF0ZXJGbik7XG5cbiAgICB0aGlzLnNlY3JldFVwZGF0ZUNvbXBsZXRlID0gbmV3IEN1c3RvbVJlc291cmNlKFxuICAgICAgdGhpcyxcbiAgICAgIFwicGdib3VuY2VyU2VjcmV0Qm9vdHN0cmFwcGVyXCIsXG4gICAgICB7XG4gICAgICAgIHNlcnZpY2VUb2tlbjogc2VjcmV0VXBkYXRlckZuLmZ1bmN0aW9uQXJuLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgaW5zdGFuY2VJcDogcHJvcHMudXNlUHVibGljU3VibmV0XG4gICAgICAgICAgICA/IHRoaXMuaW5zdGFuY2UuaW5zdGFuY2VQdWJsaWNJcFxuICAgICAgICAgICAgOiB0aGlzLmluc3RhbmNlLmluc3RhbmNlUHJpdmF0ZUlwLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRVc2VyRGF0YVNjcmlwdChcbiAgICBwZ0JvdW5jZXJDb25maWc6IFJlcXVpcmVkPE5vbk51bGxhYmxlPFBnQm91bmNlclByb3BzW1wicGdCb3VuY2VyQ29uZmlnXCJdPj4sXG4gICAgZGF0YWJhc2U6IHsgc2VjcmV0OiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0IH1cbiAgKTogZWMyLlVzZXJEYXRhIHtcbiAgICBjb25zdCB1c2VyRGF0YVNjcmlwdCA9IGVjMi5Vc2VyRGF0YS5mb3JMaW51eCgpO1xuXG4gICAgLy8gU2V0IGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyc1xuICAgIHVzZXJEYXRhU2NyaXB0LmFkZENvbW1hbmRzKFxuICAgICAgJ2V4cG9ydCBTRUNSRVRfQVJOPVwiJyArIGRhdGFiYXNlLnNlY3JldC5zZWNyZXRBcm4gKyAnXCInLFxuICAgICAgJ2V4cG9ydCBSRUdJT049XCInICsgU3RhY2sub2YodGhpcykucmVnaW9uICsgJ1wiJyxcbiAgICAgICdleHBvcnQgUE9PTF9NT0RFPVwiJyArIHBnQm91bmNlckNvbmZpZy5wb29sTW9kZSArICdcIicsXG4gICAgICAnZXhwb3J0IE1BWF9DTElFTlRfQ09OTj1cIicgKyBwZ0JvdW5jZXJDb25maWcubWF4Q2xpZW50Q29ubiArICdcIicsXG4gICAgICAnZXhwb3J0IERFRkFVTFRfUE9PTF9TSVpFPVwiJyArIHBnQm91bmNlckNvbmZpZy5kZWZhdWx0UG9vbFNpemUgKyAnXCInLFxuICAgICAgJ2V4cG9ydCBNSU5fUE9PTF9TSVpFPVwiJyArIHBnQm91bmNlckNvbmZpZy5taW5Qb29sU2l6ZSArICdcIicsXG4gICAgICAnZXhwb3J0IFJFU0VSVkVfUE9PTF9TSVpFPVwiJyArIHBnQm91bmNlckNvbmZpZy5yZXNlcnZlUG9vbFNpemUgKyAnXCInLFxuICAgICAgJ2V4cG9ydCBSRVNFUlZFX1BPT0xfVElNRU9VVD1cIicgK1xuICAgICAgICBwZ0JvdW5jZXJDb25maWcucmVzZXJ2ZVBvb2xUaW1lb3V0ICtcbiAgICAgICAgJ1wiJyxcbiAgICAgICdleHBvcnQgTUFYX0RCX0NPTk5FQ1RJT05TPVwiJyArIHBnQm91bmNlckNvbmZpZy5tYXhEYkNvbm5lY3Rpb25zICsgJ1wiJyxcbiAgICAgICdleHBvcnQgTUFYX1VTRVJfQ09OTkVDVElPTlM9XCInICsgcGdCb3VuY2VyQ29uZmlnLm1heFVzZXJDb25uZWN0aW9ucyArICdcIidcbiAgICApO1xuXG4gICAgLy8gTG9hZCB0aGUgc3RhcnR1cCBzY3JpcHRcbiAgICBjb25zdCBzY3JpcHRQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuL3BnYm91bmNlci1zZXR1cC5zaFwiKTtcbiAgICBsZXQgc2NyaXB0ID0gZnMucmVhZEZpbGVTeW5jKHNjcmlwdFBhdGgsIFwidXRmOFwiKTtcblxuICAgIHVzZXJEYXRhU2NyaXB0LmFkZENvbW1hbmRzKHNjcmlwdCk7XG5cbiAgICByZXR1cm4gdXNlckRhdGFTY3JpcHQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
ARG PYTHON_VERSION
|
|
2
2
|
FROM --platform=linux/amd64 public.ecr.aws/lambda/python:${PYTHON_VERSION}
|
|
3
3
|
|
|
4
|
-
ARG PGSTAC_VERSION
|
|
5
|
-
RUN echo "PGSTAC_VERSION: ${PGSTAC_VERSION}"
|
|
6
4
|
RUN echo "PYTHON_VERSION: ${PYTHON_VERSION}"
|
|
7
5
|
|
|
8
6
|
WORKDIR /tmp
|
|
9
7
|
|
|
10
|
-
RUN pip install httpx psycopg[binary,pool] pypgstac
|
|
8
|
+
RUN pip install httpx psycopg[binary,pool] pypgstac -t /asset
|
|
11
9
|
|
|
12
10
|
COPY bootstrapper_runtime/handler.py /asset/handler.py
|
|
13
11
|
|
package/lib/database/index.d.ts
CHANGED
|
@@ -22,6 +22,12 @@ export interface PgStacDatabaseProps extends rds.DatabaseInstanceProps {
|
|
|
22
22
|
* @default pgstac
|
|
23
23
|
*/
|
|
24
24
|
readonly pgstacDbName?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Version of pgstac to install on the database
|
|
27
|
+
*
|
|
28
|
+
* @default 0.8.5
|
|
29
|
+
*/
|
|
30
|
+
readonly pgstacVersion?: string;
|
|
25
31
|
/**
|
|
26
32
|
* Prefix to assign to the generated `secrets_manager.Secret`
|
|
27
33
|
*
|
package/lib/database/index.js
CHANGED
|
@@ -54,8 +54,7 @@ class PgStacDatabase extends constructs_1.Construct {
|
|
|
54
54
|
code: aws_cdk_lib_1.aws_lambda.Code.fromDockerBuild(__dirname, {
|
|
55
55
|
file: "bootstrapper_runtime/Dockerfile",
|
|
56
56
|
buildArgs: {
|
|
57
|
-
|
|
58
|
-
PYTHON_VERSION: "3.11",
|
|
57
|
+
PYTHON_VERSION: "3.11"
|
|
59
58
|
},
|
|
60
59
|
}),
|
|
61
60
|
vpc: hasVpc(this.db) ? this.db.vpc : props.vpc,
|
|
@@ -98,7 +97,7 @@ class PgStacDatabase extends constructs_1.Construct {
|
|
|
98
97
|
this.pgstacSecret.secretArn;
|
|
99
98
|
// if props.lambdaFunctionOptions doesn't have 'code' defined, update pgstac_version (needed for default runtime)
|
|
100
99
|
if (!props.bootstrapperLambdaFunctionOptions?.code) {
|
|
101
|
-
customResourceProperties["pgstac_version"] = DEFAULT_PGSTAC_VERSION;
|
|
100
|
+
customResourceProperties["pgstac_version"] = props.pgstacVersion || DEFAULT_PGSTAC_VERSION;
|
|
102
101
|
}
|
|
103
102
|
// this.connections = props.database.connections;
|
|
104
103
|
const bootstrapper = new aws_cdk_lib_1.CustomResource(this, "bootstrapper", {
|
|
@@ -172,5 +171,5 @@ class PgStacDatabase extends constructs_1.Construct {
|
|
|
172
171
|
}
|
|
173
172
|
exports.PgStacDatabase = PgStacDatabase;
|
|
174
173
|
_a = JSII_RTTI_SYMBOL_1;
|
|
175
|
-
PgStacDatabase[_a] = { fqn: "eoapi-cdk.PgStacDatabase", version: "7.
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVVxQjtBQUNyQiwyQ0FBdUM7QUFFdkMsMkNBQXdDO0FBRXhDLE1BQU0sYUFBYSxHQUEyQixPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUNoRixNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQztBQUV2QyxJQUFJLDBCQUEwQixHQUEyQjtJQUN2RCxPQUFPLEVBQUUsT0FBTztJQUNoQixZQUFZLEVBQUUsTUFBTTtDQUNyQixDQUFDO0FBRUYsU0FBUyxNQUFNLENBQ2IsUUFBc0Q7SUFFdEQsT0FBUSxRQUFpQyxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUM7QUFDOUQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQVEzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUMxQyxLQUFLLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLFVBQVUsRUFDNUMsS0FBSyxDQUFDLFVBQVUsQ0FDakIsQ0FBQztRQUNGLE1BQU0sY0FBYyxHQUFHLElBQUkscUJBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3BFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixVQUFVLEVBQUU7Z0JBQ1YsZUFBZSxFQUFFLGlCQUFpQixDQUFDLGNBQWM7Z0JBQ2pELGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxhQUFhO2dCQUMvQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxrQkFBa0I7Z0JBQzFELFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPO2dCQUNuQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxrQkFBa0I7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RyxDQUFDLEVBQUUsRUFBRSw0QkFBNEI7WUFDN0UsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFO1lBQ3JCLGtCQUFrQixFQUFFLEdBQUcsa0JBQWtCLEVBQUU7WUFDM0Msc0JBQXNCLEVBQUUsTUFBTTtZQUM5QixXQUFXLEVBQUUsR0FBRyxXQUFXLEdBQUcsQ0FBQyxFQUFFLEVBQUUsNEJBQTRCO1lBQy9ELFdBQVcsRUFBRSxHQUFHLFdBQVcsRUFBRTtZQUM3QixjQUFjLEVBQUUsR0FBRyxjQUFjLEVBQUU7U0FDcEMsQ0FBQztJQUNKLENBQUM7O0FBdkxILHdDQXdMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFN0YWNrLFxuICBhd3NfcmRzIGFzIHJkcyxcbiAgYXdzX2VjMiBhcyBlYzIsXG4gIGF3c19zZWNyZXRzbWFuYWdlciBhcyBzZWNyZXRzbWFuYWdlcixcbiAgYXdzX2xhbWJkYSxcbiAgQ3VzdG9tUmVzb3VyY2UsXG4gIFJlbW92YWxQb2xpY3ksXG4gIER1cmF0aW9uLFxuICBhd3NfbG9ncyxcbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcyB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgUGdCb3VuY2VyIH0gZnJvbSBcIi4vUGdCb3VuY2VyXCI7XG5cbmNvbnN0IGluc3RhbmNlU2l6ZXM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSByZXF1aXJlKFwiLi9pbnN0YW5jZS1tZW1vcnkuanNvblwiKTtcbmNvbnN0IERFRkFVTFRfUEdTVEFDX1ZFUlNJT04gPSBcIjAuOC41XCI7XG5cbmxldCBkZWZhdWx0UGdTVEFDQ3VzdG9tT3B0aW9uczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcbiAgY29udGV4dDogXCJGQUxTRVwiLFxuICBtb3NhaWNfaW5kZXg6IFwiVFJVRVwiLFxufTtcblxuZnVuY3Rpb24gaGFzVnBjKFxuICBpbnN0YW5jZTogcmRzLkRhdGFiYXNlSW5zdGFuY2UgfCByZHMuSURhdGFiYXNlSW5zdGFuY2Vcbik6IGluc3RhbmNlIGlzIHJkcy5EYXRhYmFzZUluc3RhbmNlIHtcbiAgcmV0dXJuIChpbnN0YW5jZSBhcyByZHMuRGF0YWJhc2VJbnN0YW5jZSkudnBjICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQW4gUkRTIGluc3RhbmNlIHdpdGggcGdTVEFDIGluc3RhbGxlZC4gVGhpcyBpcyBhIHdyYXBwZXIgYXJvdW5kIHRoZVxuICogYHJkcy5EYXRhYmFzZUluc3RhbmNlYCBoaWdoZXItbGV2ZWwgY29uc3RydWN0IG1ha2luZyB1c2VcbiAqIG9mIHRoZSBCb290c3RyYXBQZ1N0YWMgY29uc3RydWN0LlxuICovXG5leHBvcnQgY2xhc3MgUGdTdGFjRGF0YWJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBkYjogcmRzLkRhdGFiYXNlSW5zdGFuY2U7XG4gIHBnc3RhY1NlY3JldDogc2VjcmV0c21hbmFnZXIuSVNlY3JldDtcbiAgcHJpdmF0ZSBfcGdCb3VuY2VyU2VydmVyPzogUGdCb3VuY2VyO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uVGFyZ2V0OiByZHMuSURhdGFiYXNlSW5zdGFuY2UgfCBlYzIuSW5zdGFuY2U7XG4gIHB1YmxpYyByZWFkb25seSBzZWN1cml0eUdyb3VwPzogZWMyLlNlY3VyaXR5R3JvdXA7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFBnU3RhY0RhdGFiYXNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZGVmYXVsdFBhcmFtZXRlcnMgPSB0aGlzLmdldFBhcmFtZXRlcnMoXG4gICAgICBwcm9wcy5pbnN0YW5jZVR5cGU/LnRvU3RyaW5nKCkgfHwgXCJtNS5sYXJnZVwiLFxuICAgICAgcHJvcHMucGFyYW1ldGVyc1xuICAgICk7XG4gICAgY29uc3QgcGFyYW1ldGVyR3JvdXAgPSBuZXcgcmRzLlBhcmFtZXRlckdyb3VwKHRoaXMsIFwicGFyYW1ldGVyR3JvdXBcIiwge1xuICAgICAgZW5naW5lOiBwcm9wcy5lbmdpbmUsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIG1heF9jb25uZWN0aW9uczogZGVmYXVsdFBhcmFtZXRlcnMubWF4Q29ubmVjdGlvbnMsXG4gICAgICAgIHNoYXJlZF9idWZmZXJzOiBkZWZhdWx0UGFyYW1ldGVycy5zaGFyZWRCdWZmZXJzLFxuICAgICAgICBlZmZlY3RpdmVfY2FjaGVfc2l6ZTogZGVmYXVsdFBhcmFtZXRlcnMuZWZmZWN0aXZlQ2FjaGVTaXplLFxuICAgICAgICB3b3JrX21lbTogZGVmYXVsdFBhcmFtZXRlcnMud29ya01lbSxcbiAgICAgICAgbWFpbnRlbmFuY2Vfd29ya19tZW06IGRlZmF1bHRQYXJhbWV0ZXJzLm1haW50ZW5hbmNlV29ya01lbSxcbiAgICAgICAgbWF4X2xvY2tzX3Blcl90cmFuc2FjdGlvbjogZGVmYXVsdFBhcmFtZXRlcnMubWF4TG9ja3NQZXJUcmFuc2FjdGlvbixcbiAgICAgICAgdGVtcF9idWZmZXJzOiBkZWZhdWx0UGFyYW1ldGVycy50ZW1wQnVmZmVycyxcbiAgICAgICAgc2VxX3BhZ2VfY29zdDogZGVmYXVsdFBhcmFtZXRlcnMuc2VxUGFnZUNvc3QsXG4gICAgICAgIHJhbmRvbV9wYWdlX2Nvc3Q6IGRlZmF1bHRQYXJhbWV0ZXJzLnJhbmRvbVBhZ2VDb3N0LFxuICAgICAgICAuLi5wcm9wcy5wYXJhbWV0ZXJzLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuZGIgPSBuZXcgcmRzLkRhdGFiYXNlSW5zdGFuY2UodGhpcywgXCJkYlwiLCB7XG4gICAgICBpbnN0YW5jZUlkZW50aWZpZXI6IFN0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZSxcbiAgICAgIHBhcmFtZXRlckdyb3VwLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBoYW5kbGVyID0gbmV3IGF3c19sYW1iZGEuRnVuY3Rpb24odGhpcywgXCJsYW1iZGFcIiwge1xuICAgICAgLy8gZGVmYXVsdHNcbiAgICAgIHJ1bnRpbWU6IGF3c19sYW1iZGEuUnVudGltZS5QWVRIT05fM18xMSxcbiAgICAgIGhhbmRsZXI6IFwiaGFuZGxlci5oYW5kbGVyXCIsXG4gICAgICBtZW1vcnlTaXplOiAxMjgsXG4gICAgICBsb2dSZXRlbnRpb246IGF3c19sb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDIpLFxuICAgICAgY29kZTogYXdzX2xhbWJkYS5Db2RlLmZyb21Eb2NrZXJCdWlsZChfX2Rpcm5hbWUsIHtcbiAgICAgICAgZmlsZTogXCJib290c3RyYXBwZXJfcnVudGltZS9Eb2NrZXJmaWxlXCIsXG4gICAgICAgIGJ1aWxkQXJnczoge1xuICAgICAgICAgIFBHU1RBQ19WRVJTSU9OOiBERUZBVUxUX1BHU1RBQ19WRVJTSU9OLFxuICAgICAgICAgIFBZVEhPTl9WRVJTSU9OOiBcIjMuMTFcIixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgdnBjOiBoYXNWcGModGhpcy5kYikgPyB0aGlzLmRiLnZwYyA6IHByb3BzLnZwYyxcbiAgICAgIGFsbG93UHVibGljU3VibmV0OiB0cnVlLFxuICAgICAgLy8gb3ZlcndyaXRlcyBkZWZhdWx0cyB3aXRoIHVzZXItcHJvdmlkZWQgY29uZmlndXJhYmxlIHByb3BlcnRpZXMsXG4gICAgICAuLi5wcm9wcy5ib290c3RyYXBwZXJMYW1iZGFGdW5jdGlvbk9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICB0aGlzLnBnc3RhY1NlY3JldCA9IG5ldyBzZWNyZXRzbWFuYWdlci5TZWNyZXQodGhpcywgXCJib290c3RyYXBwZXJzZWNyZXRcIiwge1xuICAgICAgc2VjcmV0TmFtZTogW1xuICAgICAgICBwcm9wcy5zZWNyZXRzUHJlZml4IHx8IFwicGdzdGFjXCIsXG4gICAgICAgIGlkLFxuICAgICAgICB0aGlzLm5vZGUuYWRkci5zbGljZSgtOCksXG4gICAgICBdLmpvaW4oXCIvXCIpLFxuICAgICAgZ2VuZXJhdGVTZWNyZXRTdHJpbmc6IHtcbiAgICAgICAgc2VjcmV0U3RyaW5nVGVtcGxhdGU6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBkYm5hbWU6IHByb3BzLnBnc3RhY0RiTmFtZSB8fCBcInBnc3RhY1wiLFxuICAgICAgICAgIGVuZ2luZTogXCJwb3N0Z3Jlc1wiLFxuICAgICAgICAgIHBvcnQ6IDU0MzIsXG4gICAgICAgICAgaG9zdDogdGhpcy5kYi5pbnN0YW5jZUVuZHBvaW50Lmhvc3RuYW1lLFxuICAgICAgICAgIHVzZXJuYW1lOiBwcm9wcy5wZ3N0YWNVc2VybmFtZSB8fCBcInBnc3RhY191c2VyXCIsXG4gICAgICAgIH0pLFxuICAgICAgICBnZW5lcmF0ZVN0cmluZ0tleTogXCJwYXNzd29yZFwiLFxuICAgICAgICBleGNsdWRlUHVuY3R1YXRpb246IHRydWUsXG4gICAgICB9LFxuICAgICAgZGVzY3JpcHRpb246IGBQZ1NUQUMgZGF0YWJhc2UgYm9vdHN0cmFwcGVkIGJ5ICR7XG4gICAgICAgIFN0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZVxuICAgICAgfWAsXG4gICAgfSk7XG5cbiAgICAvLyBBbGxvdyBsYW1iZGEgdG8uLi5cbiAgICAvLyByZWFkIG5ldyB1c2VyIHNlY3JldFxuICAgIHRoaXMucGdzdGFjU2VjcmV0LmdyYW50UmVhZChoYW5kbGVyKTtcbiAgICAvLyByZWFkIGRhdGFiYXNlIHNlY3JldFxuICAgIHRoaXMuZGIuc2VjcmV0IS5ncmFudFJlYWQoaGFuZGxlcik7XG4gICAgLy8gY29ubmVjdCB0byBkYXRhYmFzZVxuICAgIHRoaXMuZGIuY29ubmVjdGlvbnMuYWxsb3dGcm9tKGhhbmRsZXIsIGVjMi5Qb3J0LnRjcCg1NDMyKSk7XG5cbiAgICBsZXQgY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID1cbiAgICAgIHByb3BzLmN1c3RvbVJlc291cmNlUHJvcGVydGllc1xuICAgICAgICA/IHsgLi4uZGVmYXVsdFBnU1RBQ0N1c3RvbU9wdGlvbnMsIC4uLnByb3BzLmN1c3RvbVJlc291cmNlUHJvcGVydGllcyB9XG4gICAgICAgIDogZGVmYXVsdFBnU1RBQ0N1c3RvbU9wdGlvbnM7XG5cbiAgICAvLyB1cGRhdGUgcHJvcGVydGllc1xuICAgIGN1c3RvbVJlc291cmNlUHJvcGVydGllc1tcImNvbm5fc2VjcmV0X2FyblwiXSA9IHRoaXMuZGIuc2VjcmV0IS5zZWNyZXRBcm47XG4gICAgY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzW1wibmV3X3VzZXJfc2VjcmV0X2FyblwiXSA9XG4gICAgICB0aGlzLnBnc3RhY1NlY3JldC5zZWNyZXRBcm47XG5cbiAgICAvLyBpZiBwcm9wcy5sYW1iZGFGdW5jdGlvbk9wdGlvbnMgZG9lc24ndCBoYXZlICdjb2RlJyBkZWZpbmVkLCB1cGRhdGUgcGdzdGFjX3ZlcnNpb24gKG5lZWRlZCBmb3IgZGVmYXVsdCBydW50aW1lKVxuICAgIGlmICghcHJvcHMuYm9vdHN0cmFwcGVyTGFtYmRhRnVuY3Rpb25PcHRpb25zPy5jb2RlKSB7XG4gICAgICBjdXN0b21SZXNvdXJjZVByb3BlcnRpZXNbXCJwZ3N0YWNfdmVyc2lvblwiXSA9IERFRkFVTFRfUEdTVEFDX1ZFUlNJT047XG4gICAgfVxuICAgIC8vIHRoaXMuY29ubmVjdGlvbnMgPSBwcm9wcy5kYXRhYmFzZS5jb25uZWN0aW9ucztcbiAgICBjb25zdCBib290c3RyYXBwZXIgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJib290c3RyYXBwZXJcIiwge1xuICAgICAgc2VydmljZVRva2VuOiBoYW5kbGVyLmZ1bmN0aW9uQXJuLFxuICAgICAgcHJvcGVydGllczogY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5SRVRBSU4sIC8vIFRoaXMgcmV0YWlucyB0aGUgY3VzdG9tIHJlc291cmNlICh3aGljaCBkb2Vzbid0IHJlYWxseSBleGlzdCksIG5vdCB0aGUgZGF0YWJhc2VcbiAgICB9KTtcblxuICAgIC8vIFBnQm91bmNlcjogY29ubmVjdGlvbiBwb29sZXJcbiAgICBjb25zdCBhZGRQZ2JvdW5jZXIgPSBwcm9wcy5hZGRQZ2JvdW5jZXIgPz8gdHJ1ZTtcbiAgICBpZiAoYWRkUGdib3VuY2VyKSB7XG4gICAgICB0aGlzLl9wZ0JvdW5jZXJTZXJ2ZXIgPSBuZXcgUGdCb3VuY2VyKHRoaXMsIFwicGdib3VuY2VyXCIsIHtcbiAgICAgICAgaW5zdGFuY2VOYW1lOiBgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9LXBnYm91bmNlcmAsXG4gICAgICAgIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgICBlYzIuSW5zdGFuY2VDbGFzcy5UMyxcbiAgICAgICAgICBlYzIuSW5zdGFuY2VTaXplLk1JQ1JPXG4gICAgICAgICksXG4gICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICBkYXRhYmFzZToge1xuICAgICAgICAgIGNvbm5lY3Rpb25zOiB0aGlzLmRiLmNvbm5lY3Rpb25zLFxuICAgICAgICAgIHNlY3JldDogdGhpcy5wZ3N0YWNTZWNyZXQsXG4gICAgICAgIH0sXG4gICAgICAgIGRiTWF4Q29ubmVjdGlvbnM6IHBhcnNlSW50KGRlZmF1bHRQYXJhbWV0ZXJzLm1heENvbm5lY3Rpb25zKSxcbiAgICAgICAgdXNlUHVibGljU3VibmV0OlxuICAgICAgICAgICFwcm9wcy52cGNTdWJuZXRzIHx8XG4gICAgICAgICAgcHJvcHMudnBjU3VibmV0cy5zdWJuZXRUeXBlID09PSBlYzIuU3VibmV0VHlwZS5QVUJMSUMsXG4gICAgICAgIHBnQm91bmNlckNvbmZpZzoge1xuICAgICAgICAgIHBvb2xNb2RlOiBcInRyYW5zYWN0aW9uXCIsXG4gICAgICAgICAgbWF4Q2xpZW50Q29ubjogMTAwMCxcbiAgICAgICAgICBkZWZhdWx0UG9vbFNpemU6IDIwLFxuICAgICAgICAgIG1pblBvb2xTaXplOiAxMCxcbiAgICAgICAgICByZXNlcnZlUG9vbFNpemU6IDUsXG4gICAgICAgICAgcmVzZXJ2ZVBvb2xUaW1lb3V0OiA1LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX3BnQm91bmNlclNlcnZlci5ub2RlLmFkZERlcGVuZGVuY3koYm9vdHN0cmFwcGVyKTtcblxuICAgICAgdGhpcy5wZ3N0YWNTZWNyZXQgPSB0aGlzLl9wZ0JvdW5jZXJTZXJ2ZXIucGdib3VuY2VyU2VjcmV0O1xuICAgICAgdGhpcy5jb25uZWN0aW9uVGFyZ2V0ID0gdGhpcy5fcGdCb3VuY2VyU2VydmVyLmluc3RhbmNlO1xuICAgICAgdGhpcy5zZWN1cml0eUdyb3VwID0gdGhpcy5fcGdCb3VuY2VyU2VydmVyLnNlY3VyaXR5R3JvdXA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29ubmVjdGlvblRhcmdldCA9IHRoaXMuZGI7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFBhcmFtZXRlcnMoXG4gICAgaW5zdGFuY2VUeXBlOiBzdHJpbmcsXG4gICAgcGFyYW1ldGVyczogUGdTdGFjRGF0YWJhc2VQcm9wc1tcInBhcmFtZXRlcnNcIl1cbiAgKTogRGF0YWJhc2VQYXJhbWV0ZXJzIHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jbGkvaXNzdWVzLzEyNzkjaXNzdWVjb21tZW50LTkwOTMxODIzNlxuICAgIGNvbnN0IG1lbW9yeV9pbl9rYiA9IGluc3RhbmNlU2l6ZXNbaW5zdGFuY2VUeXBlXSAqIDEwMjQ7XG5cbiAgICAvLyBJdCdzIG9ubHkgbmVjZXNzYXJ5IHRvIGNvbnNpZGVyIHBhc3NlZCBpbiBwYXJhbWV0ZXJzIGZvciBhbnkgdmFsdWUgdGhhdCB1c2VkIHRvXG4gICAgLy8gZGVyaXZlIHN1YnNlcXVlbnQgdmFsdWVzLiBWYWx1ZXMgdGhhdCBkb24ndCBoYXZlIGRlcGVuZGVuY2llcyB3aWxsIGJlIG92ZXJyaWRlblxuICAgIC8vIHdoZW4gd2UgdW5wYWNrIHRoZSBwYXNzZWQtaW4gdXNlciBwYXJhbWV0ZXJzXG4gICAgY29uc3QgbWF4Q29ubmVjdGlvbnMgPSBwYXJhbWV0ZXJzPy5tYXhDb25uZWN0aW9uc1xuICAgICAgPyBOdW1iZXIucGFyc2VJbnQocGFyYW1ldGVycy5tYXhDb25uZWN0aW9ucylcbiAgICAgIDogLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NIQVBfTGltaXRzLmh0bWwjUkRTX0xpbWl0cy5NYXhDb25uZWN0aW9uc1xuICAgICAgICBNYXRoLm1pbihNYXRoLnJvdW5kKChtZW1vcnlfaW5fa2IgKiAxMDI0KSAvIDk1MzEzOTIpLCA1MDAwKTtcbiAgICBjb25zdCBzaGFyZWRCdWZmZXJzID0gcGFyYW1ldGVycz8uc2hhcmVkQnVmZXJzXG4gICAgICA/IE51bWJlci5wYXJzZUludChwYXJhbWV0ZXJzLnNoYXJlZEJ1ZmVycylcbiAgICAgIDogTWF0aC5yb3VuZCgwLjI1ICogbWVtb3J5X2luX2tiKTtcblxuICAgIGNvbnN0IGVmZmVjdGl2ZUNhY2hlU2l6ZSA9IE1hdGgucm91bmQoMC43NSAqIG1lbW9yeV9pbl9rYik7XG4gICAgY29uc3Qgd29ya01lbSA9IE1hdGguZmxvb3Ioc2hhcmVkQnVmZmVycyAvIG1heENvbm5lY3Rpb25zKTtcbiAgICBjb25zdCBtYWludGVuYW5jZVdvcmtNZW0gPSBNYXRoLnJvdW5kKDAuMjUgKiBzaGFyZWRCdWZmZXJzKTtcblxuICAgIGNvbnN0IHRlbXBCdWZmZXJzID0gMTI4ICogMTAyNDtcbiAgICBjb25zdCBzZXFQYWdlQ29zdCA9IDE7XG4gICAgY29uc3QgcmFuZG9tUGFnZUNvc3QgPSAxLjE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbWF4Q29ubmVjdGlvbnM6IGAke21heENvbm5lY3Rpb25zfWAsXG4gICAgICBzaGFyZWRCdWZmZXJzOiBgJHtzaGFyZWRCdWZmZXJzIC8gOH1gLCAvLyBSZXByZXNlbnRlZCBpbiA4a2IgYmxvY2tzXG4gICAgICBlZmZlY3RpdmVDYWNoZVNpemU6IGAke2VmZmVjdGl2ZUNhY2hlU2l6ZSAvIDh9YCwgLy8gUmVwcmVzZW50ZWQgaW4gOGtiIGJsb2Nrc1xuICAgICAgd29ya01lbTogYCR7d29ya01lbX1gLFxuICAgICAgbWFpbnRlbmFuY2VXb3JrTWVtOiBgJHttYWludGVuYW5jZVdvcmtNZW19YCxcbiAgICAgIG1heExvY2tzUGVyVHJhbnNhY3Rpb246IFwiMTAyNFwiLFxuICAgICAgdGVtcEJ1ZmZlcnM6IGAke3RlbXBCdWZmZXJzIC8gOH1gLCAvLyBSZXByZXNlbnRlZCBpbiA4a2IgYmxvY2tzXG4gICAgICBzZXFQYWdlQ29zdDogYCR7c2VxUGFnZUNvc3R9YCxcbiAgICAgIHJhbmRvbVBhZ2VDb3N0OiBgJHtyYW5kb21QYWdlQ29zdH1gLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZ1N0YWNEYXRhYmFzZVByb3BzIGV4dGVuZHMgcmRzLkRhdGFiYXNlSW5zdGFuY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIGRhdGFiYXNlIHRoYXQgaXMgdG8gYmUgY3JlYXRlZCBhbmQgb250byB3aGljaCBwZ1NUQUMgd2lsbCBiZSBpbnN0YWxsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHBnc3RhY1xuICAgKi9cbiAgcmVhZG9ubHkgcGdzdGFjRGJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcmVmaXggdG8gYXNzaWduIHRvIHRoZSBnZW5lcmF0ZWQgYHNlY3JldHNfbWFuYWdlci5TZWNyZXRgXG4gICAqXG4gICAqIEBkZWZhdWx0IHBnc3RhY1xuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0c1ByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB1c2VyIHRoYXQgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yIGNvbm5lY3RpbmcgdG8gdGhlIHBnU1RBQyBkYXRhYmFzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgcGdzdGFjX3VzZXJcbiAgICovXG4gIHJlYWRvbmx5IHBnc3RhY1VzZXJuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGQgcGdib3VuY2VyIGluc3RhbmNlIGZvciBtYW5hZ2luZyB0cmFmZmljIHRvIHRoZSBwZ1NUQUMgZGF0YWJhc2VcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkUGdib3VuY2VyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTGFtYmRhIGZ1bmN0aW9uIEN1c3RvbSBSZXNvdXJjZSBwcm9wZXJ0aWVzLiBBIGN1c3RvbSByZXNvdXJjZSBwcm9wZXJ0eSBpcyBnb2luZyB0byBiZSBjcmVhdGVkXG4gICAqIHRvIHRyaWdnZXIgdGhlIGJvb3N0cmFwcGluZyBsYW1iZGEgZnVuY3Rpb24uIFRoaXMgcGFyYW1ldGVyIGFsbG93cyB0aGUgdXNlciB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgcHJvcGVydGllc1xuICAgKiBvbiB0b3Agb2YgdGhlIGRlZmF1bHRzIG9uZXMuXG4gICAqXG4gICAqL1xuICByZWFkb25seSBjdXN0b21SZXNvdXJjZVByb3BlcnRpZXM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xuXG4gIC8qKlxuICAgKiBDYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBsYW1iZGEgZnVuY3Rpb24gcHJvcGVydGllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZpbmVkIGluIHRoZSBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBib290c3RyYXBwZXJMYW1iZGFGdW5jdGlvbk9wdGlvbnM/OiBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBAZGVmYXVsdCAtIExFQVNUKHtEQkluc3RhbmNlQ2xhc3NNZW1vcnkvOTUzMTM5Mn0sIDUwMDApXG4gICAqL1xuICByZWFkb25seSBtYXhDb25uZWN0aW9uczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOb3RlOiBUaGlzIHZhbHVlIGlzIG1lYXN1cmVkIGluIDhLQiBibG9ja3MuXG4gICAqXG4gICAqIEBkZWZhdWx0ICd7REJJbnN0YW5jZUNsYXNzTWVtb3J5LzMyNzY4fScgMjUlIG9mIGluc3RhbmNlIG1lbW9yeSwgaWUgYHsoREJJbnN0YW5jZUNsYXNzTWVtb3J5LygxMDI0KjgpKSAqIDAuMjV9YFxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmVkQnVmZmVyczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAtIDc1JSBvZiBpbnN0YW5jZSBtZW1vcnlcbiAgICovXG4gIHJlYWRvbmx5IGVmZmVjdGl2ZUNhY2hlU2l6ZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAtIHNoYXJlZCBidWZmZXJzIGRpdmlkZWQgYnkgbWF4IGNvbm5lY3Rpb25zXG4gICAqL1xuICByZWFkb25seSB3b3JrTWVtOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IC0gMjUlIG9mIHNoYXJlZCBidWZmZXJzXG4gICAqL1xuICByZWFkb25seSBtYWludGVuYW5jZVdvcmtNZW06IHN0cmluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgMTAyNFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4TG9ja3NQZXJUcmFuc2FjdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAxMzExNzIgKDEyOCAqIDEwMjQpXG4gICAqL1xuICByZWFkb25seSB0ZW1wQnVmZmVyczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBzZXFQYWdlQ29zdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAxLjFcbiAgICovXG4gIHJlYWRvbmx5IHJhbmRvbVBhZ2VDb3N0OiBzdHJpbmc7XG59XG4iXX0=
|
|
174
|
+
PgStacDatabase[_a] = { fqn: "eoapi-cdk.PgStacDatabase", version: "7.5.0" };
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVVxQjtBQUNyQiwyQ0FBdUM7QUFFdkMsMkNBQXdDO0FBRXhDLE1BQU0sYUFBYSxHQUEyQixPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUNoRixNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQztBQUV2QyxJQUFJLDBCQUEwQixHQUEyQjtJQUN2RCxPQUFPLEVBQUUsT0FBTztJQUNoQixZQUFZLEVBQUUsTUFBTTtDQUNyQixDQUFDO0FBRUYsU0FBUyxNQUFNLENBQ2IsUUFBc0Q7SUFFdEQsT0FBUSxRQUFpQyxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUM7QUFDOUQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQVEzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUMxQyxLQUFLLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLFVBQVUsRUFDNUMsS0FBSyxDQUFDLFVBQVUsQ0FDakIsQ0FBQztRQUNGLE1BQU0sY0FBYyxHQUFHLElBQUkscUJBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3BFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixVQUFVLEVBQUU7Z0JBQ1YsZUFBZSxFQUFFLGlCQUFpQixDQUFDLGNBQWM7Z0JBQ2pELGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxhQUFhO2dCQUMvQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxrQkFBa0I7Z0JBQzFELFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPO2dCQUNuQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxrQkFBa0I7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QUMsRUFBRSxFQUFFLDRCQUE0QjtZQUM3RSxPQUFPLEVBQUUsR0FBRyxPQUFPLEVBQUU7WUFDckIsa0JBQWtCLEVBQUUsR0FBRyxrQkFBa0IsRUFBRTtZQUMzQyxzQkFBc0IsRUFBRSxNQUFNO1lBQzlCLFdBQVcsRUFBRSxHQUFHLFdBQVcsR0FBRyxDQUFDLEVBQUUsRUFBRSw0QkFBNEI7WUFDL0QsV0FBVyxFQUFFLEdBQUcsV0FBVyxFQUFFO1lBQzdCLGNBQWMsRUFBRSxHQUFHLGNBQWMsRUFBRTtTQUNwQyxDQUFDO0lBQ0osQ0FBQzs7QUF0TEgsd0NBdUxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgU3RhY2ssXG4gIGF3c19yZHMgYXMgcmRzLFxuICBhd3NfZWMyIGFzIGVjMixcbiAgYXdzX3NlY3JldHNtYW5hZ2VyIGFzIHNlY3JldHNtYW5hZ2VyLFxuICBhd3NfbGFtYmRhLFxuICBDdXN0b21SZXNvdXJjZSxcbiAgUmVtb3ZhbFBvbGljeSxcbiAgRHVyYXRpb24sXG4gIGF3c19sb2dzLFxufSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBQZ0JvdW5jZXIgfSBmcm9tIFwiLi9QZ0JvdW5jZXJcIjtcblxuY29uc3QgaW5zdGFuY2VTaXplczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHJlcXVpcmUoXCIuL2luc3RhbmNlLW1lbW9yeS5qc29uXCIpO1xuY29uc3QgREVGQVVMVF9QR1NUQUNfVkVSU0lPTiA9IFwiMC44LjVcIjtcblxubGV0IGRlZmF1bHRQZ1NUQUNDdXN0b21PcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICBjb250ZXh0OiBcIkZBTFNFXCIsXG4gIG1vc2FpY19pbmRleDogXCJUUlVFXCIsXG59O1xuXG5mdW5jdGlvbiBoYXNWcGMoXG4gIGluc3RhbmNlOiByZHMuRGF0YWJhc2VJbnN0YW5jZSB8IHJkcy5JRGF0YWJhc2VJbnN0YW5jZVxuKTogaW5zdGFuY2UgaXMgcmRzLkRhdGFiYXNlSW5zdGFuY2Uge1xuICByZXR1cm4gKGluc3RhbmNlIGFzIHJkcy5EYXRhYmFzZUluc3RhbmNlKS52cGMgIT09IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBBbiBSRFMgaW5zdGFuY2Ugd2l0aCBwZ1NUQUMgaW5zdGFsbGVkLiBUaGlzIGlzIGEgd3JhcHBlciBhcm91bmQgdGhlXG4gKiBgcmRzLkRhdGFiYXNlSW5zdGFuY2VgIGhpZ2hlci1sZXZlbCBjb25zdHJ1Y3QgbWFraW5nIHVzZVxuICogb2YgdGhlIEJvb3RzdHJhcFBnU3RhYyBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBQZ1N0YWNEYXRhYmFzZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGRiOiByZHMuRGF0YWJhc2VJbnN0YW5jZTtcbiAgcGdzdGFjU2VjcmV0OiBzZWNyZXRzbWFuYWdlci5JU2VjcmV0O1xuICBwcml2YXRlIF9wZ0JvdW5jZXJTZXJ2ZXI/OiBQZ0JvdW5jZXI7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25UYXJnZXQ6IHJkcy5JRGF0YWJhc2VJbnN0YW5jZSB8IGVjMi5JbnN0YW5jZTtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA/OiBlYzIuU2VjdXJpdHlHcm91cDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUGdTdGFjRGF0YWJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBkZWZhdWx0UGFyYW1ldGVycyA9IHRoaXMuZ2V0UGFyYW1ldGVycyhcbiAgICAgIHByb3BzLmluc3RhbmNlVHlwZT8udG9TdHJpbmcoKSB8fCBcIm01LmxhcmdlXCIsXG4gICAgICBwcm9wcy5wYXJhbWV0ZXJzXG4gICAgKTtcbiAgICBjb25zdCBwYXJhbWV0ZXJHcm91cCA9IG5ldyByZHMuUGFyYW1ldGVyR3JvdXAodGhpcywgXCJwYXJhbWV0ZXJHcm91cFwiLCB7XG4gICAgICBlbmdpbmU6IHByb3BzLmVuZ2luZSxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgbWF4X2Nvbm5lY3Rpb25zOiBkZWZhdWx0UGFyYW1ldGVycy5tYXhDb25uZWN0aW9ucyxcbiAgICAgICAgc2hhcmVkX2J1ZmZlcnM6IGRlZmF1bHRQYXJhbWV0ZXJzLnNoYXJlZEJ1ZmZlcnMsXG4gICAgICAgIGVmZmVjdGl2ZV9jYWNoZV9zaXplOiBkZWZhdWx0UGFyYW1ldGVycy5lZmZlY3RpdmVDYWNoZVNpemUsXG4gICAgICAgIHdvcmtfbWVtOiBkZWZhdWx0UGFyYW1ldGVycy53b3JrTWVtLFxuICAgICAgICBtYWludGVuYW5jZV93b3JrX21lbTogZGVmYXVsdFBhcmFtZXRlcnMubWFpbnRlbmFuY2VXb3JrTWVtLFxuICAgICAgICBtYXhfbG9ja3NfcGVyX3RyYW5zYWN0aW9uOiBkZWZhdWx0UGFyYW1ldGVycy5tYXhMb2Nrc1BlclRyYW5zYWN0aW9uLFxuICAgICAgICB0ZW1wX2J1ZmZlcnM6IGRlZmF1bHRQYXJhbWV0ZXJzLnRlbXBCdWZmZXJzLFxuICAgICAgICBzZXFfcGFnZV9jb3N0OiBkZWZhdWx0UGFyYW1ldGVycy5zZXFQYWdlQ29zdCxcbiAgICAgICAgcmFuZG9tX3BhZ2VfY29zdDogZGVmYXVsdFBhcmFtZXRlcnMucmFuZG9tUGFnZUNvc3QsXG4gICAgICAgIC4uLnByb3BzLnBhcmFtZXRlcnMsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5kYiA9IG5ldyByZHMuRGF0YWJhc2VJbnN0YW5jZSh0aGlzLCBcImRiXCIsIHtcbiAgICAgIGluc3RhbmNlSWRlbnRpZmllcjogU3RhY2sub2YodGhpcykuc3RhY2tOYW1lLFxuICAgICAgcGFyYW1ldGVyR3JvdXAsXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGhhbmRsZXIgPSBuZXcgYXdzX2xhbWJkYS5GdW5jdGlvbih0aGlzLCBcImxhbWJkYVwiLCB7XG4gICAgICAvLyBkZWZhdWx0c1xuICAgICAgcnVudGltZTogYXdzX2xhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzExLFxuICAgICAgaGFuZGxlcjogXCJoYW5kbGVyLmhhbmRsZXJcIixcbiAgICAgIG1lbW9yeVNpemU6IDEyOCxcbiAgICAgIGxvZ1JldGVudGlvbjogYXdzX2xvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMiksXG4gICAgICBjb2RlOiBhd3NfbGFtYmRhLkNvZGUuZnJvbURvY2tlckJ1aWxkKF9fZGlybmFtZSwge1xuICAgICAgICBmaWxlOiBcImJvb3RzdHJhcHBlcl9ydW50aW1lL0RvY2tlcmZpbGVcIixcbiAgICAgICAgYnVpbGRBcmdzOiB7XG4gICAgICAgICAgUFlUSE9OX1ZFUlNJT046IFwiMy4xMVwiXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIHZwYzogaGFzVnBjKHRoaXMuZGIpID8gdGhpcy5kYi52cGMgOiBwcm9wcy52cGMsXG4gICAgICBhbGxvd1B1YmxpY1N1Ym5ldDogdHJ1ZSxcbiAgICAgIC8vIG92ZXJ3cml0ZXMgZGVmYXVsdHMgd2l0aCB1c2VyLXByb3ZpZGVkIGNvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzLFxuICAgICAgLi4ucHJvcHMuYm9vdHN0cmFwcGVyTGFtYmRhRnVuY3Rpb25PcHRpb25zLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wZ3N0YWNTZWNyZXQgPSBuZXcgc2VjcmV0c21hbmFnZXIuU2VjcmV0KHRoaXMsIFwiYm9vdHN0cmFwcGVyc2VjcmV0XCIsIHtcbiAgICAgIHNlY3JldE5hbWU6IFtcbiAgICAgICAgcHJvcHMuc2VjcmV0c1ByZWZpeCB8fCBcInBnc3RhY1wiLFxuICAgICAgICBpZCxcbiAgICAgICAgdGhpcy5ub2RlLmFkZHIuc2xpY2UoLTgpLFxuICAgICAgXS5qb2luKFwiL1wiKSxcbiAgICAgIGdlbmVyYXRlU2VjcmV0U3RyaW5nOiB7XG4gICAgICAgIHNlY3JldFN0cmluZ1RlbXBsYXRlOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgZGJuYW1lOiBwcm9wcy5wZ3N0YWNEYk5hbWUgfHwgXCJwZ3N0YWNcIixcbiAgICAgICAgICBlbmdpbmU6IFwicG9zdGdyZXNcIixcbiAgICAgICAgICBwb3J0OiA1NDMyLFxuICAgICAgICAgIGhvc3Q6IHRoaXMuZGIuaW5zdGFuY2VFbmRwb2ludC5ob3N0bmFtZSxcbiAgICAgICAgICB1c2VybmFtZTogcHJvcHMucGdzdGFjVXNlcm5hbWUgfHwgXCJwZ3N0YWNfdXNlclwiLFxuICAgICAgICB9KSxcbiAgICAgICAgZ2VuZXJhdGVTdHJpbmdLZXk6IFwicGFzc3dvcmRcIixcbiAgICAgICAgZXhjbHVkZVB1bmN0dWF0aW9uOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgUGdTVEFDIGRhdGFiYXNlIGJvb3RzdHJhcHBlZCBieSAke1xuICAgICAgICBTdGFjay5vZih0aGlzKS5zdGFja05hbWVcbiAgICAgIH1gLFxuICAgIH0pO1xuXG4gICAgLy8gQWxsb3cgbGFtYmRhIHRvLi4uXG4gICAgLy8gcmVhZCBuZXcgdXNlciBzZWNyZXRcbiAgICB0aGlzLnBnc3RhY1NlY3JldC5ncmFudFJlYWQoaGFuZGxlcik7XG4gICAgLy8gcmVhZCBkYXRhYmFzZSBzZWNyZXRcbiAgICB0aGlzLmRiLnNlY3JldCEuZ3JhbnRSZWFkKGhhbmRsZXIpO1xuICAgIC8vIGNvbm5lY3QgdG8gZGF0YWJhc2VcbiAgICB0aGlzLmRiLmNvbm5lY3Rpb25zLmFsbG93RnJvbShoYW5kbGVyLCBlYzIuUG9ydC50Y3AoNTQzMikpO1xuXG4gICAgbGV0IGN1c3RvbVJlc291cmNlUHJvcGVydGllczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9XG4gICAgICBwcm9wcy5jdXN0b21SZXNvdXJjZVByb3BlcnRpZXNcbiAgICAgICAgPyB7IC4uLmRlZmF1bHRQZ1NUQUNDdXN0b21PcHRpb25zLCAuLi5wcm9wcy5jdXN0b21SZXNvdXJjZVByb3BlcnRpZXMgfVxuICAgICAgICA6IGRlZmF1bHRQZ1NUQUNDdXN0b21PcHRpb25zO1xuXG4gICAgLy8gdXBkYXRlIHByb3BlcnRpZXNcbiAgICBjdXN0b21SZXNvdXJjZVByb3BlcnRpZXNbXCJjb25uX3NlY3JldF9hcm5cIl0gPSB0aGlzLmRiLnNlY3JldCEuc2VjcmV0QXJuO1xuICAgIGN1c3RvbVJlc291cmNlUHJvcGVydGllc1tcIm5ld191c2VyX3NlY3JldF9hcm5cIl0gPVxuICAgICAgdGhpcy5wZ3N0YWNTZWNyZXQuc2VjcmV0QXJuO1xuXG4gICAgLy8gaWYgcHJvcHMubGFtYmRhRnVuY3Rpb25PcHRpb25zIGRvZXNuJ3QgaGF2ZSAnY29kZScgZGVmaW5lZCwgdXBkYXRlIHBnc3RhY192ZXJzaW9uIChuZWVkZWQgZm9yIGRlZmF1bHQgcnVudGltZSlcbiAgICBpZiAoIXByb3BzLmJvb3RzdHJhcHBlckxhbWJkYUZ1bmN0aW9uT3B0aW9ucz8uY29kZSkge1xuICAgICAgY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzW1wicGdzdGFjX3ZlcnNpb25cIl0gPSBwcm9wcy5wZ3N0YWNWZXJzaW9uIHx8IERFRkFVTFRfUEdTVEFDX1ZFUlNJT047XG4gICAgfVxuICAgIC8vIHRoaXMuY29ubmVjdGlvbnMgPSBwcm9wcy5kYXRhYmFzZS5jb25uZWN0aW9ucztcbiAgICBjb25zdCBib290c3RyYXBwZXIgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJib290c3RyYXBwZXJcIiwge1xuICAgICAgc2VydmljZVRva2VuOiBoYW5kbGVyLmZ1bmN0aW9uQXJuLFxuICAgICAgcHJvcGVydGllczogY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5SRVRBSU4sIC8vIFRoaXMgcmV0YWlucyB0aGUgY3VzdG9tIHJlc291cmNlICh3aGljaCBkb2Vzbid0IHJlYWxseSBleGlzdCksIG5vdCB0aGUgZGF0YWJhc2VcbiAgICB9KTtcblxuICAgIC8vIFBnQm91bmNlcjogY29ubmVjdGlvbiBwb29sZXJcbiAgICBjb25zdCBhZGRQZ2JvdW5jZXIgPSBwcm9wcy5hZGRQZ2JvdW5jZXIgPz8gdHJ1ZTtcbiAgICBpZiAoYWRkUGdib3VuY2VyKSB7XG4gICAgICB0aGlzLl9wZ0JvdW5jZXJTZXJ2ZXIgPSBuZXcgUGdCb3VuY2VyKHRoaXMsIFwicGdib3VuY2VyXCIsIHtcbiAgICAgICAgaW5zdGFuY2VOYW1lOiBgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9LXBnYm91bmNlcmAsXG4gICAgICAgIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgICBlYzIuSW5zdGFuY2VDbGFzcy5UMyxcbiAgICAgICAgICBlYzIuSW5zdGFuY2VTaXplLk1JQ1JPXG4gICAgICAgICksXG4gICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICBkYXRhYmFzZToge1xuICAgICAgICAgIGNvbm5lY3Rpb25zOiB0aGlzLmRiLmNvbm5lY3Rpb25zLFxuICAgICAgICAgIHNlY3JldDogdGhpcy5wZ3N0YWNTZWNyZXQsXG4gICAgICAgIH0sXG4gICAgICAgIGRiTWF4Q29ubmVjdGlvbnM6IHBhcnNlSW50KGRlZmF1bHRQYXJhbWV0ZXJzLm1heENvbm5lY3Rpb25zKSxcbiAgICAgICAgdXNlUHVibGljU3VibmV0OlxuICAgICAgICAgICFwcm9wcy52cGNTdWJuZXRzIHx8XG4gICAgICAgICAgcHJvcHMudnBjU3VibmV0cy5zdWJuZXRUeXBlID09PSBlYzIuU3VibmV0VHlwZS5QVUJMSUMsXG4gICAgICAgIHBnQm91bmNlckNvbmZpZzoge1xuICAgICAgICAgIHBvb2xNb2RlOiBcInRyYW5zYWN0aW9uXCIsXG4gICAgICAgICAgbWF4Q2xpZW50Q29ubjogMTAwMCxcbiAgICAgICAgICBkZWZhdWx0UG9vbFNpemU6IDIwLFxuICAgICAgICAgIG1pblBvb2xTaXplOiAxMCxcbiAgICAgICAgICByZXNlcnZlUG9vbFNpemU6IDUsXG4gICAgICAgICAgcmVzZXJ2ZVBvb2xUaW1lb3V0OiA1LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX3BnQm91bmNlclNlcnZlci5ub2RlLmFkZERlcGVuZGVuY3koYm9vdHN0cmFwcGVyKTtcblxuICAgICAgdGhpcy5wZ3N0YWNTZWNyZXQgPSB0aGlzLl9wZ0JvdW5jZXJTZXJ2ZXIucGdib3VuY2VyU2VjcmV0O1xuICAgICAgdGhpcy5jb25uZWN0aW9uVGFyZ2V0ID0gdGhpcy5fcGdCb3VuY2VyU2VydmVyLmluc3RhbmNlO1xuICAgICAgdGhpcy5zZWN1cml0eUdyb3VwID0gdGhpcy5fcGdCb3VuY2VyU2VydmVyLnNlY3VyaXR5R3JvdXA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29ubmVjdGlvblRhcmdldCA9IHRoaXMuZGI7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFBhcmFtZXRlcnMoXG4gICAgaW5zdGFuY2VUeXBlOiBzdHJpbmcsXG4gICAgcGFyYW1ldGVyczogUGdTdGFjRGF0YWJhc2VQcm9wc1tcInBhcmFtZXRlcnNcIl1cbiAgKTogRGF0YWJhc2VQYXJhbWV0ZXJzIHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jbGkvaXNzdWVzLzEyNzkjaXNzdWVjb21tZW50LTkwOTMxODIzNlxuICAgIGNvbnN0IG1lbW9yeV9pbl9rYiA9IGluc3RhbmNlU2l6ZXNbaW5zdGFuY2VUeXBlXSAqIDEwMjQ7XG5cbiAgICAvLyBJdCdzIG9ubHkgbmVjZXNzYXJ5IHRvIGNvbnNpZGVyIHBhc3NlZCBpbiBwYXJhbWV0ZXJzIGZvciBhbnkgdmFsdWUgdGhhdCB1c2VkIHRvXG4gICAgLy8gZGVyaXZlIHN1YnNlcXVlbnQgdmFsdWVzLiBWYWx1ZXMgdGhhdCBkb24ndCBoYXZlIGRlcGVuZGVuY2llcyB3aWxsIGJlIG92ZXJyaWRlblxuICAgIC8vIHdoZW4gd2UgdW5wYWNrIHRoZSBwYXNzZWQtaW4gdXNlciBwYXJhbWV0ZXJzXG4gICAgY29uc3QgbWF4Q29ubmVjdGlvbnMgPSBwYXJhbWV0ZXJzPy5tYXhDb25uZWN0aW9uc1xuICAgICAgPyBOdW1iZXIucGFyc2VJbnQocGFyYW1ldGVycy5tYXhDb25uZWN0aW9ucylcbiAgICAgIDogLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NIQVBfTGltaXRzLmh0bWwjUkRTX0xpbWl0cy5NYXhDb25uZWN0aW9uc1xuICAgICAgICBNYXRoLm1pbihNYXRoLnJvdW5kKChtZW1vcnlfaW5fa2IgKiAxMDI0KSAvIDk1MzEzOTIpLCA1MDAwKTtcbiAgICBjb25zdCBzaGFyZWRCdWZmZXJzID0gcGFyYW1ldGVycz8uc2hhcmVkQnVmZXJzXG4gICAgICA/IE51bWJlci5wYXJzZUludChwYXJhbWV0ZXJzLnNoYXJlZEJ1ZmVycylcbiAgICAgIDogTWF0aC5yb3VuZCgwLjI1ICogbWVtb3J5X2luX2tiKTtcblxuICAgIGNvbnN0IGVmZmVjdGl2ZUNhY2hlU2l6ZSA9IE1hdGgucm91bmQoMC43NSAqIG1lbW9yeV9pbl9rYik7XG4gICAgY29uc3Qgd29ya01lbSA9IE1hdGguZmxvb3Ioc2hhcmVkQnVmZmVycyAvIG1heENvbm5lY3Rpb25zKTtcbiAgICBjb25zdCBtYWludGVuYW5jZVdvcmtNZW0gPSBNYXRoLnJvdW5kKDAuMjUgKiBzaGFyZWRCdWZmZXJzKTtcblxuICAgIGNvbnN0IHRlbXBCdWZmZXJzID0gMTI4ICogMTAyNDtcbiAgICBjb25zdCBzZXFQYWdlQ29zdCA9IDE7XG4gICAgY29uc3QgcmFuZG9tUGFnZUNvc3QgPSAxLjE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbWF4Q29ubmVjdGlvbnM6IGAke21heENvbm5lY3Rpb25zfWAsXG4gICAgICBzaGFyZWRCdWZmZXJzOiBgJHtzaGFyZWRCdWZmZXJzIC8gOH1gLCAvLyBSZXByZXNlbnRlZCBpbiA4a2IgYmxvY2tzXG4gICAgICBlZmZlY3RpdmVDYWNoZVNpemU6IGAke2VmZmVjdGl2ZUNhY2hlU2l6ZSAvIDh9YCwgLy8gUmVwcmVzZW50ZWQgaW4gOGtiIGJsb2Nrc1xuICAgICAgd29ya01lbTogYCR7d29ya01lbX1gLFxuICAgICAgbWFpbnRlbmFuY2VXb3JrTWVtOiBgJHttYWludGVuYW5jZVdvcmtNZW19YCxcbiAgICAgIG1heExvY2tzUGVyVHJhbnNhY3Rpb246IFwiMTAyNFwiLFxuICAgICAgdGVtcEJ1ZmZlcnM6IGAke3RlbXBCdWZmZXJzIC8gOH1gLCAvLyBSZXByZXNlbnRlZCBpbiA4a2IgYmxvY2tzXG4gICAgICBzZXFQYWdlQ29zdDogYCR7c2VxUGFnZUNvc3R9YCxcbiAgICAgIHJhbmRvbVBhZ2VDb3N0OiBgJHtyYW5kb21QYWdlQ29zdH1gLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZ1N0YWNEYXRhYmFzZVByb3BzIGV4dGVuZHMgcmRzLkRhdGFiYXNlSW5zdGFuY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIGRhdGFiYXNlIHRoYXQgaXMgdG8gYmUgY3JlYXRlZCBhbmQgb250byB3aGljaCBwZ1NUQUMgd2lsbCBiZSBpbnN0YWxsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHBnc3RhY1xuICAgKi9cbiAgcmVhZG9ubHkgcGdzdGFjRGJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAgKiBWZXJzaW9uIG9mIHBnc3RhYyB0byBpbnN0YWxsIG9uIHRoZSBkYXRhYmFzZVxuICAgICAgKlxuICAgICAgKiBAZGVmYXVsdCAwLjguNVxuICAgICAgKi9cbiAgcmVhZG9ubHkgcGdzdGFjVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUHJlZml4IHRvIGFzc2lnbiB0byB0aGUgZ2VuZXJhdGVkIGBzZWNyZXRzX21hbmFnZXIuU2VjcmV0YFxuICAgKlxuICAgKiBAZGVmYXVsdCBwZ3N0YWNcbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHNQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdXNlciB0aGF0IHdpbGwgYmUgZ2VuZXJhdGVkIGZvciBjb25uZWN0aW5nIHRvIHRoZSBwZ1NUQUMgZGF0YWJhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IHBnc3RhY191c2VyXG4gICAqL1xuICByZWFkb25seSBwZ3N0YWNVc2VybmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkIHBnYm91bmNlciBpbnN0YW5jZSBmb3IgbWFuYWdpbmcgdHJhZmZpYyB0byB0aGUgcGdTVEFDIGRhdGFiYXNlXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFkZFBnYm91bmNlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExhbWJkYSBmdW5jdGlvbiBDdXN0b20gUmVzb3VyY2UgcHJvcGVydGllcy4gQSBjdXN0b20gcmVzb3VyY2UgcHJvcGVydHkgaXMgZ29pbmcgdG8gYmUgY3JlYXRlZFxuICAgKiB0byB0cmlnZ2VyIHRoZSBib29zdHJhcHBpbmcgbGFtYmRhIGZ1bmN0aW9uLiBUaGlzIHBhcmFtZXRlciBhbGxvd3MgdGhlIHVzZXIgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIHByb3BlcnRpZXNcbiAgICogb24gdG9wIG9mIHRoZSBkZWZhdWx0cyBvbmVzLlxuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzPzoge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfTtcblxuICAvKipcbiAgICogQ2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbGFtYmRhIGZ1bmN0aW9uIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmaW5lZCBpbiB0aGUgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgYm9vdHN0cmFwcGVyTGFtYmRhRnVuY3Rpb25PcHRpb25zPzogQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZVBhcmFtZXRlcnMge1xuICAvKipcbiAgICogQGRlZmF1bHQgLSBMRUFTVCh7REJJbnN0YW5jZUNsYXNzTWVtb3J5Lzk1MzEzOTJ9LCA1MDAwKVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29ubmVjdGlvbnM6IHN0cmluZztcblxuICAvKipcbiAgICogTm90ZTogVGhpcyB2YWx1ZSBpcyBtZWFzdXJlZCBpbiA4S0IgYmxvY2tzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAne0RCSW5zdGFuY2VDbGFzc01lbW9yeS8zMjc2OH0nIDI1JSBvZiBpbnN0YW5jZSBtZW1vcnksIGllIGB7KERCSW5zdGFuY2VDbGFzc01lbW9yeS8oMTAyNCo4KSkgKiAwLjI1fWBcbiAgICovXG4gIHJlYWRvbmx5IHNoYXJlZEJ1ZmZlcnM6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgLSA3NSUgb2YgaW5zdGFuY2UgbWVtb3J5XG4gICAqL1xuICByZWFkb25seSBlZmZlY3RpdmVDYWNoZVNpemU6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgLSBzaGFyZWQgYnVmZmVycyBkaXZpZGVkIGJ5IG1heCBjb25uZWN0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgd29ya01lbTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAtIDI1JSBvZiBzaGFyZWQgYnVmZmVyc1xuICAgKi9cbiAgcmVhZG9ubHkgbWFpbnRlbmFuY2VXb3JrTWVtOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IDEwMjRcbiAgICovXG4gIHJlYWRvbmx5IG1heExvY2tzUGVyVHJhbnNhY3Rpb246IHN0cmluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgMTMxMTcyICgxMjggKiAxMDI0KVxuICAgKi9cbiAgcmVhZG9ubHkgdGVtcEJ1ZmZlcnM6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgc2VxUGFnZUNvc3Q6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgMS4xXG4gICAqL1xuICByZWFkb25seSByYW5kb21QYWdlQ29zdDogc3RyaW5nO1xufVxuIl19
|