@rio-cloud/cdk-v2-constructs 5.1.0 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +41 -24
- package/API.md +26 -0
- package/CHANGELOG.md +20 -0
- package/lib/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.js +1 -1
- package/lib/contributions/team-transport-two/datadog/datadog-dashboard-downloader.js +1 -1
- package/lib/contributions/team-transport-two/pipeline/pipeline-stack.js +1 -1
- package/lib/datadog/datadog-log-index-monitoring.js +1 -1
- package/lib/datadog/datadog-monitor.js +1 -1
- package/lib/datadogv2/datadog-log-index-monitoring.js +1 -1
- package/lib/datadogv2/datadog-monitor.js +1 -1
- package/lib/datadogv2/datadog-notification.js +1 -1
- package/lib/fargate/datadog.js +1 -1
- package/lib/fargate/rio-fargate-service.js +2 -2
- package/lib/kafka/kafka-event-spec.js +1 -1
- package/lib/kafka/kafka-topic.js +1 -1
- package/lib/pipeline/rio-backup-secrets-restore-stage.js +1 -1
- package/lib/toggle.js +1 -1
- package/lib/watchful/alb.d.ts +13 -13
- package/lib/watchful/alb.js +5 -2
- package/lib/watchful/aspect.js +1 -1
- package/lib/watchful/datadog-log-alarm.js +3 -3
- package/lib/watchful/datadog-metric-alarm.js +3 -3
- package/lib/watchful/ecs.js +2 -2
- package/lib/watchful/lambda.js +4 -4
- package/lib/watchful/metric-alarm.d.ts +4 -0
- package/lib/watchful/metric-alarm.js +1 -1
- package/lib/watchful/watchful.js +3 -3
- package/lib/watchfulv2/datadog-log-alarm.d.ts +1 -0
- package/lib/watchfulv2/datadog-log-alarm.js +19 -6
- package/lib/watchfulv2/datadog-metric-alarm.d.ts +4 -4
- package/lib/watchfulv2/datadog-metric-alarm.js +14 -7
- package/lib/watchfulv2/watchful.js +19 -9
- package/package.json +4 -4
- package/version.json +1 -1
package/.jsii
CHANGED
|
@@ -3656,7 +3656,7 @@
|
|
|
3656
3656
|
"stability": "stable"
|
|
3657
3657
|
},
|
|
3658
3658
|
"homepage": "https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/",
|
|
3659
|
-
"jsiiVersion": "5.
|
|
3659
|
+
"jsiiVersion": "5.4.26 (build 23f0c56)",
|
|
3660
3660
|
"keywords": [
|
|
3661
3661
|
"cdk"
|
|
3662
3662
|
],
|
|
@@ -7636,6 +7636,23 @@
|
|
|
7636
7636
|
"primitive": "number"
|
|
7637
7637
|
}
|
|
7638
7638
|
},
|
|
7639
|
+
{
|
|
7640
|
+
"abstract": true,
|
|
7641
|
+
"docs": {
|
|
7642
|
+
"stability": "stable",
|
|
7643
|
+
"summary": "Add as_count aggregator to the query."
|
|
7644
|
+
},
|
|
7645
|
+
"immutable": true,
|
|
7646
|
+
"locationInModule": {
|
|
7647
|
+
"filename": "src/watchful/metric-alarm.ts",
|
|
7648
|
+
"line": 42
|
|
7649
|
+
},
|
|
7650
|
+
"name": "aggregateQueryAsCount",
|
|
7651
|
+
"optional": true,
|
|
7652
|
+
"type": {
|
|
7653
|
+
"primitive": "boolean"
|
|
7654
|
+
}
|
|
7655
|
+
},
|
|
7639
7656
|
{
|
|
7640
7657
|
"abstract": true,
|
|
7641
7658
|
"docs": {
|
|
@@ -9722,7 +9739,7 @@
|
|
|
9722
9739
|
},
|
|
9723
9740
|
"locationInModule": {
|
|
9724
9741
|
"filename": "src/watchful/alb.ts",
|
|
9725
|
-
"line":
|
|
9742
|
+
"line": 55
|
|
9726
9743
|
},
|
|
9727
9744
|
"parameters": [
|
|
9728
9745
|
{
|
|
@@ -9748,7 +9765,7 @@
|
|
|
9748
9765
|
"kind": "class",
|
|
9749
9766
|
"locationInModule": {
|
|
9750
9767
|
"filename": "src/watchful/alb.ts",
|
|
9751
|
-
"line":
|
|
9768
|
+
"line": 51
|
|
9752
9769
|
},
|
|
9753
9770
|
"name": "WatchApplicationLoadBalancer",
|
|
9754
9771
|
"symbolId": "src/watchful/alb:WatchApplicationLoadBalancer"
|
|
@@ -9835,7 +9852,7 @@
|
|
|
9835
9852
|
"immutable": true,
|
|
9836
9853
|
"locationInModule": {
|
|
9837
9854
|
"filename": "src/watchful/alb.ts",
|
|
9838
|
-
"line":
|
|
9855
|
+
"line": 42
|
|
9839
9856
|
},
|
|
9840
9857
|
"name": "alb",
|
|
9841
9858
|
"type": {
|
|
@@ -9852,7 +9869,7 @@
|
|
|
9852
9869
|
"immutable": true,
|
|
9853
9870
|
"locationInModule": {
|
|
9854
9871
|
"filename": "src/watchful/alb.ts",
|
|
9855
|
-
"line":
|
|
9872
|
+
"line": 36
|
|
9856
9873
|
},
|
|
9857
9874
|
"name": "watchful",
|
|
9858
9875
|
"type": {
|
|
@@ -15889,7 +15906,7 @@
|
|
|
15889
15906
|
"kind": "interface",
|
|
15890
15907
|
"locationInModule": {
|
|
15891
15908
|
"filename": "src/watchfulv2/watchful.ts",
|
|
15892
|
-
"line":
|
|
15909
|
+
"line": 21
|
|
15893
15910
|
},
|
|
15894
15911
|
"name": "LogErrorMonitorProps",
|
|
15895
15912
|
"namespace": "watchfulv2",
|
|
@@ -15905,7 +15922,7 @@
|
|
|
15905
15922
|
"immutable": true,
|
|
15906
15923
|
"locationInModule": {
|
|
15907
15924
|
"filename": "src/watchfulv2/watchful.ts",
|
|
15908
|
-
"line":
|
|
15925
|
+
"line": 41
|
|
15909
15926
|
},
|
|
15910
15927
|
"name": "createCasesFromErrorLogMonitors",
|
|
15911
15928
|
"optional": true,
|
|
@@ -15924,7 +15941,7 @@
|
|
|
15924
15941
|
"immutable": true,
|
|
15925
15942
|
"locationInModule": {
|
|
15926
15943
|
"filename": "src/watchfulv2/watchful.ts",
|
|
15927
|
-
"line":
|
|
15944
|
+
"line": 26
|
|
15928
15945
|
},
|
|
15929
15946
|
"name": "disableAutoClose",
|
|
15930
15947
|
"optional": true,
|
|
@@ -15942,7 +15959,7 @@
|
|
|
15942
15959
|
"immutable": true,
|
|
15943
15960
|
"locationInModule": {
|
|
15944
15961
|
"filename": "src/watchfulv2/watchful.ts",
|
|
15945
|
-
"line":
|
|
15962
|
+
"line": 32
|
|
15946
15963
|
},
|
|
15947
15964
|
"name": "priority",
|
|
15948
15965
|
"optional": true,
|
|
@@ -15959,7 +15976,7 @@
|
|
|
15959
15976
|
"immutable": true,
|
|
15960
15977
|
"locationInModule": {
|
|
15961
15978
|
"filename": "src/watchfulv2/watchful.ts",
|
|
15962
|
-
"line":
|
|
15979
|
+
"line": 46
|
|
15963
15980
|
},
|
|
15964
15981
|
"name": "renotifyInterval",
|
|
15965
15982
|
"optional": true,
|
|
@@ -15981,7 +15998,7 @@
|
|
|
15981
15998
|
"kind": "interface",
|
|
15982
15999
|
"locationInModule": {
|
|
15983
16000
|
"filename": "src/watchfulv2/watchful.ts",
|
|
15984
|
-
"line":
|
|
16001
|
+
"line": 52
|
|
15985
16002
|
},
|
|
15986
16003
|
"name": "QueryErrorMonitorProps",
|
|
15987
16004
|
"namespace": "watchfulv2",
|
|
@@ -15996,7 +16013,7 @@
|
|
|
15996
16013
|
"immutable": true,
|
|
15997
16014
|
"locationInModule": {
|
|
15998
16015
|
"filename": "src/watchfulv2/watchful.ts",
|
|
15999
|
-
"line":
|
|
16016
|
+
"line": 57
|
|
16000
16017
|
},
|
|
16001
16018
|
"name": "priority",
|
|
16002
16019
|
"optional": true,
|
|
@@ -16022,7 +16039,7 @@
|
|
|
16022
16039
|
},
|
|
16023
16040
|
"locationInModule": {
|
|
16024
16041
|
"filename": "src/watchfulv2/watchful.ts",
|
|
16025
|
-
"line":
|
|
16042
|
+
"line": 117
|
|
16026
16043
|
},
|
|
16027
16044
|
"parameters": [
|
|
16028
16045
|
{
|
|
@@ -16049,7 +16066,7 @@
|
|
|
16049
16066
|
"kind": "class",
|
|
16050
16067
|
"locationInModule": {
|
|
16051
16068
|
"filename": "src/watchfulv2/watchful.ts",
|
|
16052
|
-
"line":
|
|
16069
|
+
"line": 110
|
|
16053
16070
|
},
|
|
16054
16071
|
"methods": [
|
|
16055
16072
|
{
|
|
@@ -16059,7 +16076,7 @@
|
|
|
16059
16076
|
},
|
|
16060
16077
|
"locationInModule": {
|
|
16061
16078
|
"filename": "src/watchfulv2/watchful.ts",
|
|
16062
|
-
"line":
|
|
16079
|
+
"line": 142
|
|
16063
16080
|
},
|
|
16064
16081
|
"name": "createAlarm",
|
|
16065
16082
|
"overrides": "@rio-cloud/cdk-v2-constructs.AbstractWatchful",
|
|
@@ -16094,7 +16111,7 @@
|
|
|
16094
16111
|
},
|
|
16095
16112
|
"locationInModule": {
|
|
16096
16113
|
"filename": "src/watchfulv2/watchful.ts",
|
|
16097
|
-
"line":
|
|
16114
|
+
"line": 170
|
|
16098
16115
|
},
|
|
16099
16116
|
"name": "createLogAlarm",
|
|
16100
16117
|
"overrides": "@rio-cloud/cdk-v2-constructs.AbstractWatchful",
|
|
@@ -16126,7 +16143,7 @@
|
|
|
16126
16143
|
},
|
|
16127
16144
|
"locationInModule": {
|
|
16128
16145
|
"filename": "src/watchfulv2/watchful.ts",
|
|
16129
|
-
"line":
|
|
16146
|
+
"line": 208
|
|
16130
16147
|
},
|
|
16131
16148
|
"name": "watchScope",
|
|
16132
16149
|
"parameters": [
|
|
@@ -16154,7 +16171,7 @@
|
|
|
16154
16171
|
"kind": "interface",
|
|
16155
16172
|
"locationInModule": {
|
|
16156
16173
|
"filename": "src/watchfulv2/watchful.ts",
|
|
16157
|
-
"line":
|
|
16174
|
+
"line": 63
|
|
16158
16175
|
},
|
|
16159
16176
|
"name": "WatchfulProps",
|
|
16160
16177
|
"namespace": "watchfulv2",
|
|
@@ -16170,7 +16187,7 @@
|
|
|
16170
16187
|
"immutable": true,
|
|
16171
16188
|
"locationInModule": {
|
|
16172
16189
|
"filename": "src/watchfulv2/watchful.ts",
|
|
16173
|
-
"line":
|
|
16190
|
+
"line": 84
|
|
16174
16191
|
},
|
|
16175
16192
|
"name": "createCasesFromErrorLogMonitors",
|
|
16176
16193
|
"optional": true,
|
|
@@ -16187,7 +16204,7 @@
|
|
|
16187
16204
|
"immutable": true,
|
|
16188
16205
|
"locationInModule": {
|
|
16189
16206
|
"filename": "src/watchfulv2/watchful.ts",
|
|
16190
|
-
"line":
|
|
16207
|
+
"line": 89
|
|
16191
16208
|
},
|
|
16192
16209
|
"name": "logErrorMonitorConfig",
|
|
16193
16210
|
"optional": true,
|
|
@@ -16205,7 +16222,7 @@
|
|
|
16205
16222
|
"immutable": true,
|
|
16206
16223
|
"locationInModule": {
|
|
16207
16224
|
"filename": "src/watchfulv2/watchful.ts",
|
|
16208
|
-
"line":
|
|
16225
|
+
"line": 76
|
|
16209
16226
|
},
|
|
16210
16227
|
"name": "notification",
|
|
16211
16228
|
"optional": true,
|
|
@@ -16223,7 +16240,7 @@
|
|
|
16223
16240
|
"immutable": true,
|
|
16224
16241
|
"locationInModule": {
|
|
16225
16242
|
"filename": "src/watchfulv2/watchful.ts",
|
|
16226
|
-
"line":
|
|
16243
|
+
"line": 95
|
|
16227
16244
|
},
|
|
16228
16245
|
"name": "queryErrorMonitorConfig",
|
|
16229
16246
|
"optional": true,
|
|
@@ -16241,7 +16258,7 @@
|
|
|
16241
16258
|
"immutable": true,
|
|
16242
16259
|
"locationInModule": {
|
|
16243
16260
|
"filename": "src/watchfulv2/watchful.ts",
|
|
16244
|
-
"line":
|
|
16261
|
+
"line": 69
|
|
16245
16262
|
},
|
|
16246
16263
|
"name": "serviceName",
|
|
16247
16264
|
"optional": true,
|
|
@@ -16254,5 +16271,5 @@
|
|
|
16254
16271
|
}
|
|
16255
16272
|
},
|
|
16256
16273
|
"version": "0.0.0",
|
|
16257
|
-
"fingerprint": "
|
|
16274
|
+
"fingerprint": "kTF6GygMDt60e/vn0s1VKYWl7IqZwwg6gseIISPj7qA="
|
|
16258
16275
|
}
|
package/API.md
CHANGED
|
@@ -8693,6 +8693,7 @@ const dataDogMetricAlarmProps: DataDogMetricAlarmProps = { ... }
|
|
|
8693
8693
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.Metric</code> | The CloudWatch metric used as source for the alarm. |
|
|
8694
8694
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.priority">priority</a></code> | <code>number</code> | priority. |
|
|
8695
8695
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
|
|
8696
|
+
| <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.aggregateQueryAsCount">aggregateQueryAsCount</a></code> | <code>boolean</code> | Add as_count aggregator to the query. |
|
|
8696
8697
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | Sets how this alarm is to handle missing data points. |
|
|
8697
8698
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.dataDogOpsGenieIntegrationName">dataDogOpsGenieIntegrationName</a></code> | <code>string</code> | The name of DataDog's OpsGenie integration. |
|
|
8698
8699
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.serviceName">serviceName</a></code> | <code>string</code> | The service name used to name the montors (in datadog-integration). |
|
|
@@ -8773,6 +8774,18 @@ The value against which the specified statistic is compared.
|
|
|
8773
8774
|
|
|
8774
8775
|
---
|
|
8775
8776
|
|
|
8777
|
+
##### `aggregateQueryAsCount`<sup>Optional</sup> <a name="aggregateQueryAsCount" id="@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.aggregateQueryAsCount"></a>
|
|
8778
|
+
|
|
8779
|
+
```typescript
|
|
8780
|
+
public readonly aggregateQueryAsCount: boolean;
|
|
8781
|
+
```
|
|
8782
|
+
|
|
8783
|
+
- *Type:* boolean
|
|
8784
|
+
|
|
8785
|
+
Add as_count aggregator to the query.
|
|
8786
|
+
|
|
8787
|
+
---
|
|
8788
|
+
|
|
8776
8789
|
##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@rio-cloud/cdk-v2-constructs.DataDogMetricAlarmProps.property.treatMissingData"></a>
|
|
8777
8790
|
|
|
8778
8791
|
```typescript
|
|
@@ -11182,6 +11195,7 @@ const metricAlarmProps: MetricAlarmProps = { ... }
|
|
|
11182
11195
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.metric">metric</a></code> | <code>aws-cdk-lib.aws_cloudwatch.Metric</code> | The CloudWatch metric used as source for the alarm. |
|
|
11183
11196
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.priority">priority</a></code> | <code>number</code> | priority. |
|
|
11184
11197
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.threshold">threshold</a></code> | <code>number</code> | The value against which the specified statistic is compared. |
|
|
11198
|
+
| <code><a href="#@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.aggregateQueryAsCount">aggregateQueryAsCount</a></code> | <code>boolean</code> | Add as_count aggregator to the query. |
|
|
11185
11199
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.treatMissingData">treatMissingData</a></code> | <code>aws-cdk-lib.aws_cloudwatch.TreatMissingData</code> | Sets how this alarm is to handle missing data points. |
|
|
11186
11200
|
|
|
11187
11201
|
---
|
|
@@ -11259,6 +11273,18 @@ The value against which the specified statistic is compared.
|
|
|
11259
11273
|
|
|
11260
11274
|
---
|
|
11261
11275
|
|
|
11276
|
+
##### `aggregateQueryAsCount`<sup>Optional</sup> <a name="aggregateQueryAsCount" id="@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.aggregateQueryAsCount"></a>
|
|
11277
|
+
|
|
11278
|
+
```typescript
|
|
11279
|
+
public readonly aggregateQueryAsCount: boolean;
|
|
11280
|
+
```
|
|
11281
|
+
|
|
11282
|
+
- *Type:* boolean
|
|
11283
|
+
|
|
11284
|
+
Add as_count aggregator to the query.
|
|
11285
|
+
|
|
11286
|
+
---
|
|
11287
|
+
|
|
11262
11288
|
##### `treatMissingData`<sup>Optional</sup> <a name="treatMissingData" id="@rio-cloud/cdk-v2-constructs.MetricAlarmProps.property.treatMissingData"></a>
|
|
11263
11289
|
|
|
11264
11290
|
```typescript
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [6.0.1](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv6.0.0&sourceBranch=refs%2Ftags%2Fv6.0.1) (2024-07-10)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* use proper functionname tag with lowercase value in query of lambda log monitors ([58d1b1c](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/commits/58d1b1c777b2ba0ede367a8535d79b80e679ca49))
|
|
11
|
+
|
|
12
|
+
## [6.0.0](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv5.1.0&sourceBranch=refs%2Ftags%2Fv6.0.0) (2024-07-04)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### ⚠ BREAKING CHANGES
|
|
16
|
+
|
|
17
|
+
* Without the as_count aggregator, the metrics are not calculated properly
|
|
18
|
+
|
|
19
|
+
RIOCLAID-3936
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* :boom: Using as_count aggregator for alb 5xx error monitor ([a073c65](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/commits/a073c654b2d9177692856a429520d9e225abe056))
|
|
24
|
+
|
|
5
25
|
## [5.1.0](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv5.0.0&sourceBranch=refs%2Ftags%2Fv5.1.0) (2024-06-27)
|
|
6
26
|
|
|
7
27
|
|
|
@@ -143,4 +143,4 @@ function addClaidometer(scope) {
|
|
|
143
143
|
version: '0.0.8',
|
|
144
144
|
});
|
|
145
145
|
}
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy11c2FnZS1tb25pdG9yaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvdGVhbS1jbGFpZC9kYXRhZG9nLXVzYWdlLW1vbml0b3JpbmcvZGF0YWRvZy11c2FnZS1tb25pdG9yaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLHlDQUF5QztBQUN6Qyw4Q0FBaUY7QUFFakYsa0RBQTJIO0FBQzNILDhEQUEyRTtBQWtCM0U7OztHQUdHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxVQUFVLENBQUMsU0FBUztJQUM5RCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQWtDO1FBQ3JGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxnQ0FBZ0MsR0FBd0I7WUFDNUQ7Z0JBQ0UsaUJBQWlCLEVBQUUsc0JBQXNCO2dCQUN6QyxLQUFLLEVBQUUsc0NBQXNDO2FBQzlDO1lBQ0Q7Z0JBQ0UsaUJBQWlCLEVBQUUsb0RBQW9EO2dCQUN2RSxLQUFLLEVBQUUsMERBQTBEO2FBQ2xFO1lBQ0QsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLDBDQUEwQyxFQUFFO1lBQ3pGLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLGtDQUFrQyxFQUFFO1lBQzFGO2dCQUNFLGlCQUFpQixFQUFFLGdCQUFnQjtnQkFDbkMsS0FBSyxFQUFFLCtDQUErQzthQUN2RDtZQUNEO2dCQUNFLGlCQUFpQixFQUFFLDhDQUE4QztnQkFDakUsS0FBSyxFQUFFLG1FQUFtRTthQUMzRTtTQUNGLENBQUM7UUFFRixNQUFNLHVEQUF1RCxHQUFHLDBCQUEwQixJQUFBLGtDQUF3QixFQUNoSCxLQUFLLENBQUMsWUFBWSxDQUNuQixxRkFBcUYsQ0FBQztRQUN2RixNQUFNLHVEQUF1RCxHQUFHLDBCQUEwQixJQUFBLGtD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aUJBQWlCLENBQUMsaUJBQWlCLFFBQVE7WUFDcEQsV0FBVztZQUNYLFlBQVk7WUFDWixPQUFPLEVBQUUsUUFBUSxpQkFBaUIsQ0FBQyxpQkFBaUIsZ0NBQ2xELGlCQUFpQixDQUFDLGlCQUFpQixJQUFJLEVBQ3pDLEVBQUU7WUFDRixXQUFXLEVBQUUsd0NBQTRCLENBQUMsV0FBVztZQUNyRCxLQUFLLEVBQUUsMkJBQTJCLGlCQUFpQixDQUFDLEtBQUsseUpBQXlKO1lBQ2xOLGVBQWUsRUFBRTtnQkFDZixXQUFXLEVBQUUsS0FBSztnQkFDbEIsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLGdCQUFnQixFQUFFO29CQUNoQixhQUFhLEVBQUUsVUFBVTtvQkFDekIsY0FBYyxFQUFFLFVBQVU7aUJBQzNCO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQWpKSCx3REFrSkM7OztBQUVELFNBQVMsY0FBYyxDQUFDLEtBQTJCO0lBQ2pELE1BQU0sQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkUsSUFBSSw2QkFBVyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUU7UUFDcEMsT0FBTyxFQUFFLG9DQUFrQixDQUFDLGdCQUFnQjtRQUM1QyxXQUFXO1FBQ1gsT0FBTztRQUNQLE9BQU8sRUFBRSxPQUFPO0tBQ2pCLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERhdGFkb2dPcmdhbml6YXRpb24sIGdldE9yZ2FuaXphdGlvblVybFByZWZpeCB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2cnO1xuaW1wb3J0IHsgRGF0YWRvZ0FsZXJ0VHlwZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2cvZGF0YWRvZy1tb25pdG9yJztcbmltcG9ydCB7IElOb3RpZmljYXRpb24sIERlZmF1bHRTbGFja05vdGlmaWNhdGlvbiwgRGF0YWRvZ01vbml0b3IsIERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUgfSBmcm9tICcuLi8uLi8uLi9kYXRhZG9ndjInO1xuaW1wb3J0IHsgQ2xhaWRvbWV0ZXIsIENsYWlkb21ldGVyUHJvZHVjdCB9IGZyb20gJy4uLy4uLy4uL3Jpby1jbGFpZG9tZXRlcic7XG5cbmludGVyZmFjZSBVc2FnZVNwaWtlTW9uaXRvciB7XG4gIGh1bWFuUmVhZGFibGVOYW1lOiBzdHJpbmc7XG4gIHF1ZXJ5OiBzdHJpbmc7XG4gIGFkZGl0aW9uYWxNZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFkb2dVc2FnZU1vbml0b3JpbmdQcm9wcyB7XG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBub3Qgc3VwcG9ydGVkIGFueW1vcmUuIHVzZSBgbm90aWZpY2F0aW9uYCBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxlcnRUeXBlPzogRGF0YWRvZ0FsZXJ0VHlwZTtcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uPzogSU5vdGlmaWNhdGlvbjtcbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uOiBEYXRhZG9nT3JnYW5pemF0aW9uO1xufVxuXG4vKipcbiAqIFRoaXMgaXMgYSBiZXRhIGNvbnN0cnVjdCBhbmQgaXMgbGlrZWx5IHRvIGhhdmUgYnJlYWtpbmcgY2hhbmdlcy5cbiAqIFRoZSBjb25zdHJ1Y3QgY3JlYXRlcyBtb25pdG9yaW5nIChiYXNlZCBvbiBhbm9tYWx5IGRldGVjdGlvbikgZm9yIHRoZSB1c2FnZSBvZiB0aGUgbW9zdCByZWxldmFudCBEYXRhZG9nIHJlc291cmNlc1xuICovXG5leHBvcnQgY2xhc3MgRGF0YWRvZ1VzYWdlTW9uaXRvcmluZyBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWRvZ1VzYWdlTW9uaXRvcmluZ1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGluZnJhc3RydWN0dXJlVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ2luZnJhc3RydWN0dXJlIGhvc3RzJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuaG9zdHN7Kn0nLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6IFwiaW5mcmFzdHJ1Y3R1cmUgaG9zdHMgZm9yICd7e2NoaWxkX29yZ19uYW1lLm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuaG9zdHN7Kn0gYnkge2NoaWxkX29yZ19uYW1lfScsXG4gICAgICB9LFxuICAgICAgeyBodW1hblJlYWRhYmxlTmFtZTogJ0ZhcmdhdGUgdGFza3MnLCBxdWVyeTogJ3N1bTpkYXRhZG9nLmFwbS5mYXJnYXRlX3Rhc2tfaW5zdGFuY2V7Kn0nIH0sXG4gICAgICB7IGh1bWFuUmVhZGFibGVOYW1lOiAncHJvZmlsZWQgRmFyZ2F0ZSB0YXNrcycsIHF1ZXJ5OiAnc3VtOmRhdGFkb2cucHJvZmlsaW5nLmZhcmdhdGV7Kn0nIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnY3VzdG9tIG1ldHJpY3MnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5tZXRyaWNzLmN1c3RvbXsqfScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJjdXN0b20gbWV0cmljcyBmb3IgJ3t7Y2hpbGRfb3JnX25hbWUubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5tZXRyaWNzLmN1c3RvbXsqfSBieSB7Y2hpbGRfb3JnX25hbWV9JyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMgPSBgVGFrZSBhIGxvb2sgYXQgaHR0cHM6Ly8ke2dldE9yZ2FuaXphdGlvblVybFByZWZpeChcbiAgICAgIHByb3BzLm9yZ2FuaXphdGlvbixcbiAgICApfS5kYXRhZG9naHEuZXUvZGFzaC9pbnRlZ3JhdGlvbi80NjUvbG9nLW1hbmFnZW1lbnQtZXN0aW1hdGVkLXVzYWdlIGZvciBtb3JlIGRldGFpbHMuYDtcbiAgICBjb25zdCBhZGRpdGlvbmFsTWVzc2FnZUxvZ01hbmFnZW1lbnRGb3JMb2dJbmRleFNjb3BlZE1vbml0b3JzID0gYFRha2UgYSBsb29rIGF0IGh0dHBzOi8vJHtnZXRPcmdhbml6YXRpb25VcmxQcmVmaXgoXG4gICAgICBwcm9wcy5vcmdhbml6YXRpb24sXG4gICAgKX0uZGF0YWRvZ2hxLmV1L2Rhc2gvaW50ZWdyYXRpb24vNDY1L2xvZy1tYW5hZ2VtZW50LWVzdGltYXRlZC11c2FnZT90cGxfdmFyX2RhdGFkb2dfaW5kZXg9e3tkYXRhZG9nX2luZGV4Lm5hbWV9fSBmb3IgbW9yZSBkZXRhaWxzLmA7XG4gICAgY29uc3QgbG9nTWFuYWdlbWVudFVzYWdlU3Bpa2VNb25pdG9yczogVXNhZ2VTcGlrZU1vbml0b3JbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdsb2cgaW5nZXN0aW9uJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UubG9ncy5pbmdlc3RlZF9ieXRlc3sqfS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJsb2cgaW5nZXN0aW9uIGZvciAne3tkYXRhZG9nX2luZGV4Lm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UubG9ncy5pbmdlc3RlZF9ieXRlc3sqfSBieSB7ZGF0YWRvZ19pbmRleH0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUxvZ01hbmFnZW1lbnRGb3JMb2dJbmRleFNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdsb2cgaW5kZXhpbmcnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5sb2dzLmluZ2VzdGVkX2V2ZW50c3tkYXRhZG9nX2lzX2V4Y2x1ZGVkOmZhbHNlfS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJsb2cgaW5kZXhpbmcgZm9yICd7e2RhdGFkb2dfaW5kZXgubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5sb2dzLmluZ2VzdGVkX2V2ZW50c3tkYXRhZG9nX2lzX2V4Y2x1ZGVkOmZhbHNlfSBieSB7ZGF0YWRvZ19pbmRleH0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUxvZ01hbmFnZW1lbnRGb3JMb2dJbmRleFNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3QgYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JHbG9iYWxseVNjb3BlZE1vbml0b3JzID0gYFRha2UgYSBsb29rIGF0IGh0dHBzOi8vJHtnZXRPcmdhbml6YXRpb25VcmxQcmVmaXgoXG4gICAgICBwcm9wcy5vcmdhbml6YXRpb24sXG4gICAgKX0uZGF0YWRvZ2hxLmV1L2Rhc2gvaW50ZWdyYXRpb24vNDg5L2FwbS10cmFjZXMtZXN0aW1hdGVkLXVzYWdlIGZvciBtb3JlIGRldGFpbHMuYDtcbiAgICBjb25zdCBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckVudlNjb3BlZE1vbml0b3JzID0gYFRha2UgYSBsb29rIGF0IGh0dHBzOi8vJHtnZXRPcmdhbml6YXRpb25VcmxQcmVmaXgoXG4gICAgICBwcm9wcy5vcmdhbml6YXRpb24sXG4gICAgKX0uZGF0YWRvZ2hxLmV1L2Rhc2gvaW50ZWdyYXRpb24vNDg5L2FwbS10cmFjZXMtZXN0aW1hdGVkLXVzYWdlP3RwbF92YXJfZW52PXt7ZW52Lm5hbWV9fSBmb3IgbW9yZSBkZXRhaWxzLmA7XG4gICAgY29uc3QgYXBtVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAgeyBodW1hblJlYWRhYmxlTmFtZTogJ0FQTSBob3N0cycsIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbV9ob3N0c3sqfScgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6IFwiQVBNIGhvc3RzIGZvciAne3tjaGlsZF9vcmdfbmFtZS5uYW1lfX0nXCIsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbV9ob3N0c3sqfSBieSB7Y2hpbGRfb3JnX25hbWV9JyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlQXBtRm9yR2xvYmFsbHlTY29wZWRNb25pdG9ycyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnc3BhbiBpbmdlc3Rpb24nLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5hcG0uaW5nZXN0ZWRfYnl0ZXN7Kn0uYXNfY291bnQoKScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJzcGFuIGluZ2VzdGlvbiBmb3IgJ3t7ZW52Lm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtLmluZ2VzdGVkX2J5dGVzeyp9IGJ5IHtlbnZ9LmFzX2NvdW50KCknLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JFbnZTY29wZWRNb25pdG9ycyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnc3BhbiBpbmRleGluZycsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbS5pbmRleGVkX3NwYW5zeyp9LmFzX2NvdW50KCknLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JHbG9iYWxseVNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6IFwic3BhbiBpbmRleGluZyBmb3IgJ3t7ZW52Lm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtLmluZGV4ZWRfc3BhbnN7Kn0gYnkge2Vudn0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckVudlNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3Qgc3ludGhldGljVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ1N5bnRoZXRpYyBBUEkgdGVzdHMnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5zeW50aGV0aWNzLmFwaV90ZXN0X3J1bnN7Kn0uYXNfY291bnQoKScsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBzZXJ2ZXJsZXNzVXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ3NlcnZlcmxlc3MgZnVuY3Rpb25zJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2Uuc2VydmVybGVzcy5hd3NfbGFtYmRhX2Z1bmN0aW9uc3sqfScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJzZXJ2ZXJsZXNzIGZ1bmN0aW9ucyBmb3IgJ3t7Y2hpbGRfb3JnX25hbWUubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5zZXJ2ZXJsZXNzLmF3c19sYW1iZGFfZnVuY3Rpb25zeyp9IGJ5IHtjaGlsZF9vcmdfbmFtZX0nLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uID0gcHJvcHMubm90aWZpY2F0aW9uID8/IG5ldyBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb24oKTtcbiAgICBmb3IgKGNvbnN0IHVzYWdlU3Bpa2VNb25pdG9yIG9mIChbXSBhcyBVc2FnZVNwaWtlTW9uaXRvcltdKS5jb25jYXQoXG4gICAgICBpbmZyYXN0cnVjdHVyZVVzYWdlU3Bpa2VNb25pdG9ycyxcbiAgICAgIGxvZ01hbmFnZW1lbnRVc2FnZVNwaWtlTW9uaXRvcnMsXG4gICAgICBhcG1Vc2FnZVNwaWtlTW9uaXRvcnMsXG4gICAgICBzZXJ2ZXJsZXNzVXNhZ2VTcGlrZU1vbml0b3JzLFxuICAgICAgc3ludGhldGljVXNhZ2VTcGlrZU1vbml0b3JzLFxuICAgICkpIHtcbiAgICAgIHRoaXMuY3JlYXRlQW5vbWFseU1vbml0b3JGb3JTcGlrZXMocHJvcHMuc2VydmljZU5hbWUsIHVzYWdlU3Bpa2VNb25pdG9yLCBub3RpZmljYXRpb24pO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5vcmdhbml6YXRpb24gPT09ICdFVScpIHtcbiAgICAgIGFkZENsYWlkb21ldGVyKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQW5vbWFseU1vbml0b3JGb3JTcGlrZXMoXG4gICAgc2VydmljZU5hbWU6IHN0cmluZyxcbiAgICB1c2FnZVNwaWtlTW9uaXRvcjogVXNhZ2VTcGlrZU1vbml0b3IsXG4gICAgbm90aWZpY2F0aW9uOiBJTm90aWZpY2F0aW9uLFxuICApOiBEYXRhZG9nTW9uaXRvciB7XG4gICAgcmV0dXJuIG5ldyBEYXRhZG9nTW9uaXRvcih0aGlzLCB1c2FnZVNwaWtlTW9uaXRvci5odW1hblJlYWRhYmxlTmFtZSwge1xuICAgICAgbmFtZTogYCR7dXNhZ2VTcGlrZU1vbml0b3IuaHVtYW5SZWFkYWJsZU5hbWV9IHNwaWtlYCxcbiAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgbWVzc2FnZTogYFtQNF0gJHt1c2FnZVNwaWtlTW9uaXRvci5odW1hblJlYWRhYmxlTmFtZX0gYXJlIGdldHRpbmcgb3V0LW9mLWNvbnRyb2wuICR7XG4gICAgICAgIHVzYWdlU3Bpa2VNb25pdG9yLmFkZGl0aW9uYWxNZXNzYWdlID8/ICcnXG4gICAgICB9YCxcbiAgICAgIG1vbml0b3JUeXBlOiBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLlFVRVJZX0FMRVJULFxuICAgICAgcXVlcnk6IGBhdmcobGFzdF8xMmgpOmFub21hbGllcygke3VzYWdlU3Bpa2VNb25pdG9yLnF1ZXJ5fSwgJ2FnaWxlJywgMywgZGlyZWN0aW9uPSdhYm92ZScsIGludGVydmFsPTEyMCwgYWxlcnRfd2luZG93PSdsYXN0XzMwbScsIHNlYXNvbmFsaXR5PSd3ZWVrbHknLCB0aW1lem9uZT0nZXVyb3BlL2JlcmxpbicsIGNvdW50X2RlZmF1bHRfemVybz0ndHJ1ZScpID49IDFgLFxuICAgICAgb3B0aW9uT3ZlcnJpZGVzOiB7XG4gICAgICAgIGluY2x1ZGVUYWdzOiBmYWxzZSxcbiAgICAgICAgbm90aWZ5Tm9EYXRhOiBmYWxzZSxcbiAgICAgICAgdGhyZXNob2xkV2luZG93czoge1xuICAgICAgICAgIHRyaWdnZXJXaW5kb3c6ICdsYXN0XzMwbScsXG4gICAgICAgICAgcmVjb3ZlcnlXaW5kb3c6ICdsYXN0XzE1bScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFkZENsYWlkb21ldGVyKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCkge1xuICBjb25zdCBbZmVhdHVyZSwgcGFja2FnZU5hbWVdID0gX19kaXJuYW1lLnNwbGl0KHBhdGguc2VwKS5yZXZlcnNlKCk7XG4gIG5ldyBDbGFpZG9tZXRlcihzY29wZSwgJ0NsYWlkb21ldGVyJywge1xuICAgIHByb2R1Y3Q6IENsYWlkb21ldGVyUHJvZHVjdC5DREtfQ09OVFJJQlVUSU9OLFxuICAgIHBhY2thZ2VOYW1lLFxuICAgIGZlYXR1cmUsXG4gICAgdmVyc2lvbjogJzAuMC44JyxcbiAgfSk7XG59XG4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy11c2FnZS1tb25pdG9yaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvdGVhbS1jbGFpZC9kYXRhZG9nLXVzYWdlLW1vbml0b3JpbmcvZGF0YWRvZy11c2FnZS1tb25pdG9yaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLHlDQUF5QztBQUN6Qyw4Q0FBaUY7QUFFakYsa0RBQTJIO0FBQzNILDhEQUEyRTtBQWtCM0U7OztHQUdHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxVQUFVLENBQUMsU0FBUztJQUM5RCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQWtDO1FBQ3JGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxnQ0FBZ0MsR0FBd0I7WUFDNUQ7Z0JBQ0UsaUJBQWlCLEVBQUUsc0JBQXNCO2dCQUN6QyxLQUFLLEVBQUUsc0NBQXNDO2FBQzlDO1lBQ0Q7Z0JBQ0UsaUJBQWlCLEVBQUUsb0RBQW9EO2dCQUN2RSxLQUFLLEVBQUUsMERBQTBEO2FBQ2xFO1lBQ0QsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLDBDQUEwQyxFQUFFO1lBQ3pGLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLGtDQUFrQyxFQUFFO1lBQzFGO2dCQUNFLGlCQUFpQixFQUFFLGdCQUFnQjtnQkFDbkMsS0FBSyxFQUFFLCtDQUErQzthQUN2RDtZQUNEO2dCQUNFLGlCQUFpQixFQUFFLDhDQUE4QztnQkFDakUsS0FBSyxFQUFFLG1FQUFtRTthQUMzRTtTQUNGLENBQUM7UUFFRixNQUFNLHVEQUF1RCxHQUFHLDBCQUEwQixJQUFBLGtDQUF3QixFQUNoSCxLQUFLLENBQUMsWUFBWSxDQUNuQixxRkFBcUYsQ0FBQztRQUN2RixNQUFNLHVEQUF1RCxHQUFHLDBCQUEwQixJQUFBLGtD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QUNuRSxJQUFJLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxpQkFBaUIsUUFBUTtZQUNwRCxXQUFXO1lBQ1gsWUFBWTtZQUNaLE9BQU8sRUFBRSxRQUFRLGlCQUFpQixDQUFDLGlCQUFpQixnQ0FDbEQsaUJBQWlCLENBQUMsaUJBQWlCLElBQUksRUFDekMsRUFBRTtZQUNGLFdBQVcsRUFBRSx3Q0FBNEIsQ0FBQyxXQUFXO1lBQ3JELEtBQUssRUFBRSwyQkFBMkIsaUJBQWlCLENBQUMsS0FBSyx5SkFBeUo7WUFDbE4sZUFBZSxFQUFFO2dCQUNmLFdBQVcsRUFBRSxLQUFLO2dCQUNsQixZQUFZLEVBQUUsS0FBSztnQkFDbkIsZ0JBQWdCLEVBQUU7b0JBQ2hCLGFBQWEsRUFBRSxVQUFVO29CQUN6QixjQUFjLEVBQUUsVUFBVTtpQkFDM0I7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBakpILHdEQWtKQzs7O0FBRUQsU0FBUyxjQUFjLENBQUMsS0FBMkI7SUFDakQsTUFBTSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuRSxJQUFJLDZCQUFXLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRTtRQUNwQyxPQUFPLEVBQUUsb0NBQWtCLENBQUMsZ0JBQWdCO1FBQzVDLFdBQVc7UUFDWCxPQUFPO1FBQ1AsT0FBTyxFQUFFLE9BQU87S0FDakIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRGF0YWRvZ09yZ2FuaXphdGlvbiwgZ2V0T3JnYW5pemF0aW9uVXJsUHJlZml4IH0gZnJvbSAnLi4vLi4vLi4vZGF0YWRvZyc7XG5pbXBvcnQgeyBEYXRhZG9nQWxlcnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YWRvZy9kYXRhZG9nLW1vbml0b3InO1xuaW1wb3J0IHsgSU5vdGlmaWNhdGlvbiwgRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uLCBEYXRhZG9nTW9uaXRvciwgRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFkb2d2Mic7XG5pbXBvcnQgeyBDbGFpZG9tZXRlciwgQ2xhaWRvbWV0ZXJQcm9kdWN0IH0gZnJvbSAnLi4vLi4vLi4vcmlvLWNsYWlkb21ldGVyJztcblxuaW50ZXJmYWNlIFVzYWdlU3Bpa2VNb25pdG9yIHtcbiAgaHVtYW5SZWFkYWJsZU5hbWU6IHN0cmluZztcbiAgcXVlcnk6IHN0cmluZztcbiAgYWRkaXRpb25hbE1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWRvZ1VzYWdlTW9uaXRvcmluZ1Byb3BzIHtcbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIG5vdCBzdXBwb3J0ZWQgYW55bW9yZS4gdXNlIGBub3RpZmljYXRpb25gIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBhbGVydFR5cGU/OiBEYXRhZG9nQWxlcnRUeXBlO1xuICByZWFkb25seSBub3RpZmljYXRpb24/OiBJTm90aWZpY2F0aW9uO1xuICByZWFkb25seSBvcmdhbml6YXRpb246IERhdGFkb2dPcmdhbml6YXRpb247XG59XG5cbi8qKlxuICogVGhpcyBpcyBhIGJldGEgY29uc3RydWN0IGFuZCBpcyBsaWtlbHkgdG8gaGF2ZSBicmVha2luZyBjaGFuZ2VzLlxuICogVGhlIGNvbnN0cnVjdCBjcmVhdGVzIG1vbml0b3JpbmcgKGJhc2VkIG9uIGFub21hbHkgZGV0ZWN0aW9uKSBmb3IgdGhlIHVzYWdlIG9mIHRoZSBtb3N0IHJlbGV2YW50IERhdGFkb2cgcmVzb3VyY2VzXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhZG9nVXNhZ2VNb25pdG9yaW5nIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhZG9nVXNhZ2VNb25pdG9yaW5nUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgaW5mcmFzdHJ1Y3R1cmVVc2FnZVNwaWtlTW9uaXRvcnM6IFVzYWdlU3Bpa2VNb25pdG9yW10gPSBbXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnaW5mcmFzdHJ1Y3R1cmUgaG9zdHMnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5ob3N0c3sqfScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJpbmZyYXN0cnVjdHVyZSBob3N0cyBmb3IgJ3t7Y2hpbGRfb3JnX25hbWUubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5ob3N0c3sqfSBieSB7Y2hpbGRfb3JnX25hbWV9JyxcbiAgICAgIH0sXG4gICAgICB7IGh1bWFuUmVhZGFibGVOYW1lOiAnRmFyZ2F0ZSB0YXNrcycsIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuYXBtLmZhcmdhdGVfdGFza19pbnN0YW5jZXsqfScgfSxcbiAgICAgIHsgaHVtYW5SZWFkYWJsZU5hbWU6ICdwcm9maWxlZCBGYXJnYXRlIHRhc2tzJywgcXVlcnk6ICdzdW06ZGF0YWRvZy5wcm9maWxpbmcuZmFyZ2F0ZXsqfScgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdjdXN0b20gbWV0cmljcycsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLm1ldHJpY3MuY3VzdG9teyp9JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiBcImN1c3RvbSBtZXRyaWNzIGZvciAne3tjaGlsZF9vcmdfbmFtZS5uYW1lfX0nXCIsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLm1ldHJpY3MuY3VzdG9teyp9IGJ5IHtjaGlsZF9vcmdfbmFtZX0nLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3QgYWRkaXRpb25hbE1lc3NhZ2VMb2dNYW5hZ2VtZW50Rm9yR2xvYmFsbHlTY29wZWRNb25pdG9ycyA9IGBUYWtlIGEgbG9vayBhdCBodHRwczovLyR7Z2V0T3JnYW5pemF0aW9uVXJsUHJlZml4KFxuICAgICAgcHJvcHMub3JnYW5pemF0aW9uLFxuICAgICl9LmRhdGFkb2docS5ldS9kYXNoL2ludGVncmF0aW9uLzQ2NS9sb2ctbWFuYWdlbWVudC1lc3RpbWF0ZWQtdXNhZ2UgZm9yIG1vcmUgZGV0YWlscy5gO1xuICAgIGNvbnN0IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckxvZ0luZGV4U2NvcGVkTW9uaXRvcnMgPSBgVGFrZSBhIGxvb2sgYXQgaHR0cHM6Ly8ke2dldE9yZ2FuaXphdGlvblVybFByZWZpeChcbiAgICAgIHByb3BzLm9yZ2FuaXphdGlvbixcbiAgICApfS5kYXRhZG9naHEuZXUvZGFzaC9pbnRlZ3JhdGlvbi80NjUvbG9nLW1hbmFnZW1lbnQtZXN0aW1hdGVkLXVzYWdlP3RwbF92YXJfZGF0YWRvZ19pbmRleD17e2RhdGFkb2dfaW5kZXgubmFtZX19IGZvciBtb3JlIGRldGFpbHMuYDtcbiAgICBjb25zdCBsb2dNYW5hZ2VtZW50VXNhZ2VTcGlrZU1vbml0b3JzOiBVc2FnZVNwaWtlTW9uaXRvcltdID0gW1xuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ2xvZyBpbmdlc3Rpb24nLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5sb2dzLmluZ2VzdGVkX2J5dGVzeyp9LmFzX2NvdW50KCknLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VMb2dNYW5hZ2VtZW50Rm9yR2xvYmFsbHlTY29wZWRNb25pdG9ycyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiBcImxvZyBpbmdlc3Rpb24gZm9yICd7e2RhdGFkb2dfaW5kZXgubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5sb2dzLmluZ2VzdGVkX2J5dGVzeyp9IGJ5IHtkYXRhZG9nX2luZGV4fS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckxvZ0luZGV4U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogJ2xvZyBpbmRleGluZycsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmxvZ3MuaW5nZXN0ZWRfZXZlbnRze2RhdGFkb2dfaXNfZXhjbHVkZWQ6ZmFsc2V9LmFzX2NvdW50KCknLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VMb2dNYW5hZ2VtZW50Rm9yR2xvYmFsbHlTY29wZWRNb25pdG9ycyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiBcImxvZyBpbmRleGluZyBmb3IgJ3t7ZGF0YWRvZ19pbmRleC5uYW1lfX0nXCIsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmxvZ3MuaW5nZXN0ZWRfZXZlbnRze2RhdGFkb2dfaXNfZXhjbHVkZWQ6ZmFsc2V9IGJ5IHtkYXRhZG9nX2luZGV4fS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlTG9nTWFuYWdlbWVudEZvckxvZ0luZGV4U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMgPSBgVGFrZSBhIGxvb2sgYXQgaHR0cHM6Ly8ke2dldE9yZ2FuaXphdGlvblVybFByZWZpeChcbiAgICAgIHByb3BzLm9yZ2FuaXphdGlvbixcbiAgICApfS5kYXRhZG9naHEuZXUvZGFzaC9pbnRlZ3JhdGlvbi80ODkvYXBtLXRyYWNlcy1lc3RpbWF0ZWQtdXNhZ2UgZm9yIG1vcmUgZGV0YWlscy5gO1xuICAgIGNvbnN0IGFkZGl0aW9uYWxNZXNzYWdlQXBtRm9yRW52U2NvcGVkTW9uaXRvcnMgPSBgVGFrZSBhIGxvb2sgYXQgaHR0cHM6Ly8ke2dldE9yZ2FuaXphdGlvblVybFByZWZpeChcbiAgICAgIHByb3BzLm9yZ2FuaXphdGlvbixcbiAgICApfS5kYXRhZG9naHEuZXUvZGFzaC9pbnRlZ3JhdGlvbi80ODkvYXBtLXRyYWNlcy1lc3RpbWF0ZWQtdXNhZ2U/dHBsX3Zhcl9lbnY9e3tlbnYubmFtZX19IGZvciBtb3JlIGRldGFpbHMuYDtcbiAgICBjb25zdCBhcG1Vc2FnZVNwaWtlTW9uaXRvcnM6IFVzYWdlU3Bpa2VNb25pdG9yW10gPSBbXG4gICAgICB7IGh1bWFuUmVhZGFibGVOYW1lOiAnQVBNIGhvc3RzJywgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtX2hvc3Rzeyp9JyB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJBUE0gaG9zdHMgZm9yICd7e2NoaWxkX29yZ19uYW1lLm5hbWV9fSdcIixcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtX2hvc3Rzeyp9IGJ5IHtjaGlsZF9vcmdfbmFtZX0nLFxuICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZTogYWRkaXRpb25hbE1lc3NhZ2VBcG1Gb3JHbG9iYWxseVNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdzcGFuIGluZ2VzdGlvbicsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLmFwbS5pbmdlc3RlZF9ieXRlc3sqfS5hc19jb3VudCgpJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiBcInNwYW4gaW5nZXN0aW9uIGZvciAne3tlbnYubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5hcG0uaW5nZXN0ZWRfYnl0ZXN7Kn0gYnkge2Vudn0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckVudlNjb3BlZE1vbml0b3JzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHVtYW5SZWFkYWJsZU5hbWU6ICdzcGFuIGluZGV4aW5nJyxcbiAgICAgICAgcXVlcnk6ICdzdW06ZGF0YWRvZy5lc3RpbWF0ZWRfdXNhZ2UuYXBtLmluZGV4ZWRfc3BhbnN7Kn0uYXNfY291bnQoKScsXG4gICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlOiBhZGRpdGlvbmFsTWVzc2FnZUFwbUZvckdsb2JhbGx5U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBodW1hblJlYWRhYmxlTmFtZTogXCJzcGFuIGluZGV4aW5nIGZvciAne3tlbnYubmFtZX19J1wiLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5hcG0uaW5kZXhlZF9zcGFuc3sqfSBieSB7ZW52fS5hc19jb3VudCgpJyxcbiAgICAgICAgYWRkaXRpb25hbE1lc3NhZ2U6IGFkZGl0aW9uYWxNZXNzYWdlQXBtRm9yRW52U2NvcGVkTW9uaXRvcnMsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBzeW50aGV0aWNVc2FnZVNwaWtlTW9uaXRvcnM6IFVzYWdlU3Bpa2VNb25pdG9yW10gPSBbXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnU3ludGhldGljIEFQSSB0ZXN0cycsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLnN5bnRoZXRpY3MuYXBpX3Rlc3RfcnVuc3sqfS5hc19jb3VudCgpJyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IHNlcnZlcmxlc3NVc2FnZVNwaWtlTW9uaXRvcnM6IFVzYWdlU3Bpa2VNb25pdG9yW10gPSBbXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiAnc2VydmVybGVzcyBmdW5jdGlvbnMnLFxuICAgICAgICBxdWVyeTogJ3N1bTpkYXRhZG9nLmVzdGltYXRlZF91c2FnZS5zZXJ2ZXJsZXNzLmF3c19sYW1iZGFfZnVuY3Rpb25zeyp9JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGh1bWFuUmVhZGFibGVOYW1lOiBcInNlcnZlcmxlc3MgZnVuY3Rpb25zIGZvciAne3tjaGlsZF9vcmdfbmFtZS5uYW1lfX0nXCIsXG4gICAgICAgIHF1ZXJ5OiAnc3VtOmRhdGFkb2cuZXN0aW1hdGVkX3VzYWdlLnNlcnZlcmxlc3MuYXdzX2xhbWJkYV9mdW5jdGlvbnN7Kn0gYnkge2NoaWxkX29yZ19uYW1lfScsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBub3RpZmljYXRpb24gPSBwcm9wcy5ub3RpZmljYXRpb24gPz8gbmV3IERlZmF1bHRTbGFja05vdGlmaWNhdGlvbigpO1xuICAgIGZvciAoY29uc3QgdXNhZ2VTcGlrZU1vbml0b3Igb2YgKFtdIGFzIFVzYWdlU3Bpa2VNb25pdG9yW10pLmNvbmNhdChcbiAgICAgIGluZnJhc3RydWN0dXJlVXNhZ2VTcGlrZU1vbml0b3JzLFxuICAgICAgbG9nTWFuYWdlbWVudFVzYWdlU3Bpa2VNb25pdG9ycyxcbiAgICAgIGFwbVVzYWdlU3Bpa2VNb25pdG9ycyxcbiAgICAgIHNlcnZlcmxlc3NVc2FnZVNwaWtlTW9uaXRvcnMsXG4gICAgICBzeW50aGV0aWNVc2FnZVNwaWtlTW9uaXRvcnMsXG4gICAgKSkge1xuICAgICAgdGhpcy5jcmVhdGVBbm9tYWx5TW9uaXRvckZvclNwaWtlcyhwcm9wcy5zZXJ2aWNlTmFtZSwgdXNhZ2VTcGlrZU1vbml0b3IsIG5vdGlmaWNhdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLm9yZ2FuaXphdGlvbiA9PT0gJ0VVJykge1xuICAgICAgYWRkQ2xhaWRvbWV0ZXIodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBbm9tYWx5TW9uaXRvckZvclNwaWtlcyhcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nLFxuICAgIHVzYWdlU3Bpa2VNb25pdG9yOiBVc2FnZVNwaWtlTW9uaXRvcixcbiAgICBub3RpZmljYXRpb246IElOb3RpZmljYXRpb24sXG4gICk6IERhdGFkb2dNb25pdG9yIHtcbiAgICByZXR1cm4gbmV3IERhdGFkb2dNb25pdG9yKHRoaXMsIHVzYWdlU3Bpa2VNb25pdG9yLmh1bWFuUmVhZGFibGVOYW1lLCB7XG4gICAgICBuYW1lOiBgJHt1c2FnZVNwaWtlTW9uaXRvci5odW1hblJlYWRhYmxlTmFtZX0gc3Bpa2VgLFxuICAgICAgc2VydmljZU5hbWUsXG4gICAgICBub3RpZmljYXRpb24sXG4gICAgICBtZXNzYWdlOiBgW1A0XSAke3VzYWdlU3Bpa2VNb25pdG9yLmh1bWFuUmVhZGFibGVOYW1lfSBhcmUgZ2V0dGluZyBvdXQtb2YtY29udHJvbC4gJHtcbiAgICAgICAgdXNhZ2VTcGlrZU1vbml0b3IuYWRkaXRpb25hbE1lc3NhZ2UgPz8gJydcbiAgICAgIH1gLFxuICAgICAgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuUVVFUllfQUxFUlQsXG4gICAgICBxdWVyeTogYGF2ZyhsYXN0XzEyaCk6YW5vbWFsaWVzKCR7dXNhZ2VTcGlrZU1vbml0b3IucXVlcnl9LCAnYWdpbGUnLCAzLCBkaXJlY3Rpb249J2Fib3ZlJywgaW50ZXJ2YWw9MTIwLCBhbGVydF93aW5kb3c9J2xhc3RfMzBtJywgc2Vhc29uYWxpdHk9J3dlZWtseScsIHRpbWV6b25lPSdldXJvcGUvYmVybGluJywgY291bnRfZGVmYXVsdF96ZXJvPSd0cnVlJykgPj0gMWAsXG4gICAgICBvcHRpb25PdmVycmlkZXM6IHtcbiAgICAgICAgaW5jbHVkZVRhZ3M6IGZhbHNlLFxuICAgICAgICBub3RpZnlOb0RhdGE6IGZhbHNlLFxuICAgICAgICB0aHJlc2hvbGRXaW5kb3dzOiB7XG4gICAgICAgICAgdHJpZ2dlcldpbmRvdzogJ2xhc3RfMzBtJyxcbiAgICAgICAgICByZWNvdmVyeVdpbmRvdzogJ2xhc3RfMTVtJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkQ2xhaWRvbWV0ZXIoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0KSB7XG4gIGNvbnN0IFtmZWF0dXJlLCBwYWNrYWdlTmFtZV0gPSBfX2Rpcm5hbWUuc3BsaXQocGF0aC5zZXApLnJldmVyc2UoKTtcbiAgbmV3IENsYWlkb21ldGVyKHNjb3BlLCAnQ2xhaWRvbWV0ZXInLCB7XG4gICAgcHJvZHVjdDogQ2xhaWRvbWV0ZXJQcm9kdWN0LkNES19DT05UUklCVVRJT04sXG4gICAgcGFja2FnZU5hbWUsXG4gICAgZmVhdHVyZSxcbiAgICB2ZXJzaW9uOiAnMC4wLjgnLFxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -118,4 +118,4 @@ const datadogDashboardDownloader = (app) => {
|
|
|
118
118
|
return Promise.resolve();
|
|
119
119
|
};
|
|
120
120
|
exports.datadogDashboardDownloader = datadogDashboardDownloader;
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1kYXNoYm9hcmQtZG93bmxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9kYXRhZG9nL2RhdGFkb2ctZGFzaGJvYXJkLWRvd25sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUJBQXlCO0FBQ3pCLDBFQUFpRztBQUNqRyxvREFBcUU7QUFDckUsb0VBQXlEO0FBR3pELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQztBQUM3QixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7QUFDNUIsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBRTVCOzs7Ozs7OztHQVFHO0FBQ0ksTUFBTSxrQkFBa0IsR0FBRyxLQUFLLEVBQUUsV0FBZ0IsRUFBRSxFQUFFO0lBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUN6QyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFckMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQy9ELElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM1QixNQUFNLHdCQUF3QixHQUE4QixFQUFFLENBQUM7UUFDL0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQy9FLElBQUssUUFBZ0IsQ0FBQyxJQUFJLEtBQUssZ0NBQWdDLEVBQUU7Z0JBQy9ELE1BQU0sUUFBUSxHQUFJLFFBQWdCLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztnQkFDbEQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFD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QUMsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRTtRQUNuRixPQUFPLElBQUEsMEJBQWtCLEVBQUMsR0FBRyxDQUFDO2FBQzNCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7YUFDN0QsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDNUU7SUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFSVyxRQUFBLDBCQUEwQiw4QkFRckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBDbG91ZEZvcm1hdGlvbkNsaWVudCwgTGlzdFN0YWNrUmVzb3VyY2VzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBHZXRQYXJhbWV0ZXJDb21tYW5kLCBTU01DbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtc3NtJztcbmltcG9ydCB7IGNsaWVudCwgdjEgfSBmcm9tICdAZGF0YWRvZy9kYXRhZG9nLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgQXBwIH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG5jb25zdCBDTElfR1JFRU4gPSAnXFx4MWJbMzJtJztcbmNvbnN0IENMSV9CTFVFID0gJ1xceDFiWzM0bSc7XG5jb25zdCBDTElfUkVTRVQgPSAnXFx4MWJbMG0nO1xuXG4vKipcbiAqIERvd25sb2FkcyBkYXNoYm9hcmRzIGZyb20gRGF0YWRvZyBhbmQgc2F2ZXMgdGhlbSB0byB0aGUgbG9jYWwgZmlsZXN5c3RlbS5cbiAqIFJ1biB0aGlzIGZ1bmN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8geW91ciBDREsgYXBwbGljYXRpb24gdG8gZG93bmxvYWQgZGFzaGJvYXJkcyBkZWZpbmVkIHZpYSB7QGxpbmsgRG93bmxvYWRhYmxlRGF0YWRvZ0Rhc2hib2FyZH0gYW5kIHVwZGF0ZVxuICogdGhlIGV4aXN0aW5nIGRhc2hib2FyZCBkZWZpbml0aW9uIGZpbGVzIGluIHBsYWNlLlxuICpcbiAqIFNlZSB7QGxpbmsgZGF0YWRvZ0Rhc2hib2FyZERvd25sb2FkZXJ9IGZvciBhIGNvbnZlbmllbmNlIHdyYXBwZXIgdGhhdCBjYW4gYmUgdXNlZCBpbiB5b3VyIENESyBlbnRyeXBvaW50IHNjcmlwdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gQ0RLIGFwcGxpY2F0aW9uIGluIGVudHJ5cG9pbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGRvd25sb2FkRGFzaGJvYXJkcyA9IGFzeW5jIChhcHBsaWNhdGlvbjogQXBwKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdEb3dubG9hZGluZyBkYXNoYm9hcmRzLi4uJyk7XG4gIGNvbnN0IGFzc2VtYmx5ID0gYXBwbGljYXRpb24uc3ludGgoKTtcblxuICBhd2FpdCBQcm9taXNlLmFsbChhc3NlbWJseS5zdGFja3NSZWN1cnNpdmVseS5tYXAoYXN5bmMgKHN0YWNrKSA9PiB7XG4gICAgbGV0IGlzU3RhY2tSZWxldmFudCA9IGZhbHNlO1xuICAgIGNvbnN0IGRhc2hib2FyZFBhdGhCeUxvZ2ljYWxJZDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIE9iamVjdC5lbnRyaWVzKHN0YWNrLnRlbXBsYXRlLlJlc291cmNlcyB8fCBbXSkuZm9yRWFjaCgoW2xvZ2ljYWxJZCwgcmVzb3VyY2VdKSA9PiB7XG4gICAgICBpZiAoKHJlc291cmNlIGFzIGFueSkuVHlwZSA9PT0gJ0RhdGFkb2c6OkRhc2hib2FyZHM6OkRhc2hib2FyZCcpIHtcbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSAocmVzb3VyY2UgYXMgYW55KS5NZXRhZGF0YSB8fCB7fTtcbiAgICAgICAgY29uc3QgZGFzaGJvYXJkUGF0aCA9IG1ldGFkYXRhWydyaW8tZGFzaGJvYXJkLXBhdGgnXTtcbiAgICAgICAgaWYgKGRhc2hib2FyZFBhdGgpIHtcbiAgICAgICAgICBkYXNoYm9hcmRQYXRoQnlMb2dpY2FsSWRbbG9naWNhbElkXSA9IGRhc2hib2FyZFBhdGg7XG4gICAgICAgICAgaXNTdGFja1JlbGV2YW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFpc1N0YWNrUmVsZXZhbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhZG9nQ29uZmlndXJhdGlvbiA9IGF3YWl0IGdldERhdGFkb2dDb25maWd1cmF0aW9uKCk7XG5cbiAgICBjb25zdCBjbG91ZEZvcm1hdGlvbkNsaWVudCA9IG5ldyBDbG91ZEZvcm1hdGlvbkNsaWVudCgpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xvdWRGb3JtYXRpb25DbGllbnQuc2VuZChuZXcgTGlzdFN0YWNrUmVzb3VyY2VzQ29tbWFuZCh7IFN0YWNrTmFtZTogc3RhY2suc3RhY2tOYW1lIH0pKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbCgocmVzcG9uc2UuU3RhY2tSZXNvdXJjZVN1bW1hcmllcyB8fCBbXSlcbiAgICAgIC5tYXAoYXN5bmMgKHJlc291cmNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNvdXJjZS5SZXNvdXJjZVR5cGUgPT09ICdEYXRhZG9nOjpEYXNoYm9hcmRzOjpEYXNoYm9hcmQnICYmIHJlc291cmNlLkxvZ2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICAgICAgY29uc3QgZGFzaGJvYXJkUGF0aCA9IGRhc2hib2FyZFBhdGhCeUxvZ2ljYWxJZFtyZXNvdXJjZS5Mb2dpY2FsUmVzb3VyY2VJZF07XG4gICAgICAgICAgaWYgKGRhc2hib2FyZFBhdGgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBEb3dubG9hZGluZyAke0NMSV9HUkVFTn0ke3Jlc291cmNlLkxvZ2ljYWxSZXNvdXJjZUlkfSR7Q0xJX1JFU0VUfSAoJHtyZXNvdXJjZS5QaHlzaWNhbFJlc291cmNlSWR9KSB0byAke0NMSV9CTFVFfSR7ZGFzaGJvYXJkUGF0aH0ke0NMSV9SRVNFVH1gKTtcbiAgICAgICAgICAgIGNvbnN0IGRhc2hib2FyZCA9IGF3YWl0IGRvd25sb2FkRGFzaGJvYXJkVmlhRGF0YWRvZ0FwaShkYXRhZG9nQ29uZmlndXJhdGlvbiwgcmVzb3VyY2UuUGh5c2ljYWxSZXNvdXJjZUlkIGFzIHN0cmluZyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnU2F2aW5nIC4uLicpO1xuICAgICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhkYXNoYm9hcmRQYXRoLCBwcmV0dGlmeURhc2hib2FyZChkYXNoYm9hcmQpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgfSkpO1xufTtcblxuY29uc3QgZ2V0U3NtUGFyYW1ldGVyID0gYXN5bmMgKHBhcmFtZXRlck5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHNzbUNsaWVudCA9IG5ldyBTU01DbGllbnQoKTtcbiAgY29uc3QgY29tbWFuZCA9IG5ldyBHZXRQYXJhbWV0ZXJDb21tYW5kKHsgTmFtZTogcGFyYW1ldGVyTmFtZSB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzc21DbGllbnQuc2VuZChjb21tYW5kKTtcbiAgcmV0dXJuIHJlc3BvbnNlLlBhcmFtZXRlcj8uVmFsdWUgYXMgc3RyaW5nO1xufTtcblxuY29uc3QgZ2V0RGF0YWRvZ0NvbmZpZ3VyYXRpb24gPSBhc3luYyAoKTogUHJvbWlzZTx7IGFwaUtleTogc3RyaW5nOyBhcHBLZXk6IHN0cmluZzsgc2l0ZTogc3RyaW5nIH0+ID0+IHtcbiAgY29uc3QgYXBpS2V5ID0gYXdhaXQgZ2V0U3NtUGFyYW1ldGVyKCcvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL2FwaS1rZXknKTtcbiAgY29uc3QgYXBwS2V5ID0gYXdhaXQgZ2V0U3NtUGFyYW1ldGVyKCcvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL2FwcGxpY2F0aW9uLWtleScpO1xuICBjb25zdCBzaXRlID0gYXdhaXQgZ2V0U3NtUGFyYW1ldGVyKCcvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL3NpdGUnKTtcbiAgcmV0dXJuIHtcbiAgICBhcGlLZXksXG4gICAgYXBwS2V5LFxuICAgIHNpdGUsXG4gIH07XG59O1xuXG5jb25zdCBkb3dubG9hZERhc2hib2FyZFZpYURhdGFkb2dBcGkgPSBhc3luYyAoY29uZmlnOiB7XG4gIGFwaUtleTogc3RyaW5nO1xuICBhcHBLZXk6IHN0cmluZztcbiAgc2l0ZTogc3RyaW5nO1xufSwgZGFzaGJvYXJkSWQ6IHN0cmluZyk6IFByb21pc2U8djEuRGFzaGJvYXJkPiA9PiB7XG5cbiAgY29uc3QgY29uZmlndXJhdGlvbiA9IGNsaWVudC5jcmVhdGVDb25maWd1cmF0aW9uKHtcbiAgICBhdXRoTWV0aG9kczoge1xuICAgICAgYXBpS2V5QXV0aDogY29uZmlnLmFwaUtleSxcbiAgICAgIGFwcEtleUF1dGg6IGNvbmZpZy5hcHBLZXksXG4gICAgfSxcbiAgfSk7XG4gIGNvbmZpZ3VyYXRpb24uc2V0U2VydmVyVmFyaWFibGVzKHtcbiAgICBzaXRlOiBjb25maWcuc2l0ZSxcbiAgfSk7XG4gIGNvbnN0IGFwaUluc3RhbmNlID0gbmV3IHYxLkRhc2hib2FyZHNBcGkoY29uZmlndXJhdGlvbik7XG4gIHJldHVybiBhcGlJbnN0YW5jZS5nZXREYXNoYm9hcmQoe1xuICAgIGRhc2hib2FyZElkOiBkYXNoYm9hcmRJZCxcbiAgfSk7XG59O1xuXG5jb25zdCBwcmV0dGlmeURhc2hib2FyZCA9IChkYXNoYm9hcmQ6IHYxLkRhc2hib2FyZCk6IHN0cmluZyA9PiB7XG4gIC8vIGRyb3Aga2V5cyB0aGF0IGFyZSBub3QgcHJlc2VudCBpbiB0aGUgb3V0cHV0IHdoZW4gdXNpbmcgdGhlIFwiZXhwb3J0XCIgYnV0dG9uIGluIHRoZSBHVUlcbiAgZGVsZXRlIGRhc2hib2FyZC5pZDtcbiAgZGVsZXRlIGRhc2hib2FyZC5pc1JlYWRPbmx5O1xuICBkZWxldGUgZGFzaGJvYXJkLmF1dGhvckhhbmRsZTtcbiAgZGVsZXRlIGRhc2hib2FyZC5hdXRob3JOYW1lO1xuICBkZWxldGUgZGFzaGJvYXJkLnVybDtcbiAgZGVsZXRlIGRhc2hib2FyZC5jcmVhdGVkQXQ7XG4gIGRlbGV0ZSBkYXNoYm9hcmQubW9kaWZpZWRBdDtcbiAgZGVsZXRlIGRhc2hib2FyZC5yZXN0cmljdGVkUm9sZXM7XG5cbiAgY29uc3Qgc2VyaWFsaXplZERhc2hib2FyZCA9IHYxLk9iamVjdFNlcmlhbGl6ZXIuc2VyaWFsaXplKGRhc2hib2FyZCwgJ0Rhc2hib2FyZCcsICcnKTtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHNlcmlhbGl6ZWREYXNoYm9hcmQsIG51bGwsIDIpO1xufTtcblxuLyoqXG4gKiBEb3dubG9hZHMgZGFzaGJvYXJkcyBmcm9tIERhdGFkb2cgYW5kIHNhdmVzIHRoZW0gdG8gdGhlIGxvY2FsIGZpbGVzeXN0ZW0uXG4gKiBDYWxsIHRoaXMgd3JhcHBlciB3aXRoIHlvdXIgQ0RLIGFwcCBpbiB5b3VyIGVudHJ5cG9pbnQgc2NyaXB0LlxuICpcbiAqIFJ1biBgY2RrIHN5bnRoYCB3aXRoIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICogYERPV05MT0FEX0RBU0hCT0FSRFM9dHJ1ZWAsIHRvIGRvd25sb2FkIGRhc2hib2FyZHMgZGVmaW5lZCB2aWEge0BsaW5rIERvd25sb2FkYWJsZURhdGFkb2dEYXNoYm9hcmR9IGFuZCB1cGRhdGVcbiAqIHRoZSBleGlzdGluZyBkYXNoYm9hcmQgZGVmaW5pdGlvbiBmaWxlcyBpbiBwbGFjZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gQ0RLIGFwcGxpY2F0aW9uIGluIGVudHJ5cG9pbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGRhdGFkb2dEYXNoYm9hcmREb3dubG9hZGVyID0gKGFwcDogQXBwKSA9PiB7XG4gIGNvbnN0IGRvd25sb2FkRGFzaGJvYXJkc0ZsYWcgPSBwcm9jZXNzLmVudi5ET1dOTE9BRF9EQVNIQk9BUkRTPy50b0xvd2VyQ2FzZSgpO1xuICBpZiAoZG93bmxvYWREYXNoYm9hcmRzRmxhZyAmJiBbJ3RydWUnLCAnMScsICd5ZXMnXS5pbmNsdWRlcyhkb3dubG9hZERhc2hib2FyZHNGbGFnKSkge1xuICAgIHJldHVybiBkb3dubG9hZERhc2hib2FyZHMoYXBwKVxuICAgICAgLnRoZW4oKCkgPT4gY29uc29sZS5sb2coJ0Rhc2hib2FyZHMgZG93bmxvYWRlZCBzdWNjZXNzZnVsbHknKSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBkb3dubG9hZCBkYXNoYm9hcmRzJywgZXJyb3IpKTtcbiAgfVxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG59O1xuIl19
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWRvZy1kYXNoYm9hcmQtZG93bmxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9kYXRhZG9nL2RhdGFkb2ctZGFzaGJvYXJkLWRvd25sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUJBQXlCO0FBQ3pCLDBFQUFpRztBQUNqRyxvREFBcUU7QUFDckUsb0VBQXlEO0FBR3pELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQztBQUM3QixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7QUFDNUIsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBRTVCOzs7Ozs7OztHQVFHO0FBQ0ksTUFBTSxrQkFBa0IsR0FBRyxLQUFLLEVBQUUsV0FBZ0IsRUFBRSxFQUFFO0lBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUN6QyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFckMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQy9ELElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM1QixNQUFNLHdCQUF3QixHQUE4QixFQUFFLENBQUM7UUFDL0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQy9FLElBQUssUUFBZ0IsQ0FBQyxJQUFJLEtBQUssZ0NBQWdDLEVBQUUsQ0FBQztnQkFDaEUsTUFBTSxRQUFRLEdBQUksUUFBZ0IsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO2dCQUNsRCxNQUFNLGFBQWEsR0FBRyxRQUFR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LElBQUksc0JBQXNCLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUM7UUFDcEYsT0FBTyxJQUFBLDBCQUFrQixFQUFDLEdBQUcsQ0FBQzthQUMzQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2FBQzdELEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFSVyxRQUFBLDBCQUEwQiw4QkFRckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBDbG91ZEZvcm1hdGlvbkNsaWVudCwgTGlzdFN0YWNrUmVzb3VyY2VzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBHZXRQYXJhbWV0ZXJDb21tYW5kLCBTU01DbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtc3NtJztcbmltcG9ydCB7IGNsaWVudCwgdjEgfSBmcm9tICdAZGF0YWRvZy9kYXRhZG9nLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgQXBwIH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG5jb25zdCBDTElfR1JFRU4gPSAnXFx4MWJbMzJtJztcbmNvbnN0IENMSV9CTFVFID0gJ1xceDFiWzM0bSc7XG5jb25zdCBDTElfUkVTRVQgPSAnXFx4MWJbMG0nO1xuXG4vKipcbiAqIERvd25sb2FkcyBkYXNoYm9hcmRzIGZyb20gRGF0YWRvZyBhbmQgc2F2ZXMgdGhlbSB0byB0aGUgbG9jYWwgZmlsZXN5c3RlbS5cbiAqIFJ1biB0aGlzIGZ1bmN0aW9uIHdpdGggYSByZWZlcmVuY2UgdG8geW91ciBDREsgYXBwbGljYXRpb24gdG8gZG93bmxvYWQgZGFzaGJvYXJkcyBkZWZpbmVkIHZpYSB7QGxpbmsgRG93bmxvYWRhYmxlRGF0YWRvZ0Rhc2hib2FyZH0gYW5kIHVwZGF0ZVxuICogdGhlIGV4aXN0aW5nIGRhc2hib2FyZCBkZWZpbml0aW9uIGZpbGVzIGluIHBsYWNlLlxuICpcbiAqIFNlZSB7QGxpbmsgZGF0YWRvZ0Rhc2hib2FyZERvd25sb2FkZXJ9IGZvciBhIGNvbnZlbmllbmNlIHdyYXBwZXIgdGhhdCBjYW4gYmUgdXNlZCBpbiB5b3VyIENESyBlbnRyeXBvaW50IHNjcmlwdC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gQ0RLIGFwcGxpY2F0aW9uIGluIGVudHJ5cG9pbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGRvd25sb2FkRGFzaGJvYXJkcyA9IGFzeW5jIChhcHBsaWNhdGlvbjogQXBwKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdEb3dubG9hZGluZyBkYXNoYm9hcmRzLi4uJyk7XG4gIGNvbnN0IGFzc2VtYmx5ID0gYXBwbGljYXRpb24uc3ludGgoKTtcblxuICBhd2FpdCBQcm9taXNlLmFsbChhc3NlbWJseS5zdGFja3NSZWN1cnNpdmVseS5tYXAoYXN5bmMgKHN0YWNrKSA9PiB7XG4gICAgbGV0IGlzU3RhY2tSZWxldmFudCA9IGZhbHNlO1xuICAgIGNvbnN0IGRhc2hib2FyZFBhdGhCeUxvZ2ljYWxJZDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIE9iamVjdC5lbnRyaWVzKHN0YWNrLnRlbXBsYXRlLlJlc291cmNlcyB8fCBbXSkuZm9yRWFjaCgoW2xvZ2ljYWxJZCwgcmVzb3VyY2VdKSA9PiB7XG4gICAgICBpZiAoKHJlc291cmNlIGFzIGFueSkuVHlwZSA9PT0gJ0RhdGFkb2c6OkRhc2hib2FyZHM6OkRhc2hib2FyZCcpIHtcbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSAocmVzb3VyY2UgYXMgYW55KS5NZXRhZGF0YSB8fCB7fTtcbiAgICAgICAgY29uc3QgZGFzaGJvYXJkUGF0aCA9IG1ldGFkYXRhWydyaW8tZGFzaGJvYXJkLXBhdGgnXTtcbiAgICAgICAgaWYgKGRhc2hib2FyZFBhdGgpIHtcbiAgICAgICAgICBkYXNoYm9hcmRQYXRoQnlMb2dpY2FsSWRbbG9naWNhbElkXSA9IGRhc2hib2FyZFBhdGg7XG4gICAgICAgICAgaXNTdGFja1JlbGV2YW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFpc1N0YWNrUmVsZXZhbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhZG9nQ29uZmlndXJhdGlvbiA9IGF3YWl0IGdldERhdGFkb2dDb25maWd1cmF0aW9uKCk7XG5cbiAgICBjb25zdCBjbG91ZEZvcm1hdGlvbkNsaWVudCA9IG5ldyBDbG91ZEZvcm1hdGlvbkNsaWVudCgpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xvdWRGb3JtYXRpb25DbGllbnQuc2VuZChuZXcgTGlzdFN0YWNrUmVzb3VyY2VzQ29tbWFuZCh7IFN0YWNrTmFtZTogc3RhY2suc3RhY2tOYW1lIH0pKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbCgocmVzcG9uc2UuU3RhY2tSZXNvdXJjZVN1bW1hcmllcyB8fCBbXSlcbiAgICAgIC5tYXAoYXN5bmMgKHJlc291cmNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNvdXJjZS5SZXNvdXJjZVR5cGUgPT09ICdEYXRhZG9nOjpEYXNoYm9hcmRzOjpEYXNoYm9hcmQnICYmIHJlc291cmNlLkxvZ2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICAgICAgY29uc3QgZGFzaGJvYXJkUGF0aCA9IGRhc2hib2FyZFBhdGhCeUxvZ2ljYWxJZFtyZXNvdXJjZS5Mb2dpY2FsUmVzb3VyY2VJZF07XG4gICAgICAgICAgaWYgKGRhc2hib2FyZFBhdGgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBEb3dubG9hZGluZyAke0NMSV9HUkVFTn0ke3Jlc291cmNlLkxvZ2ljYWxSZXNvdXJjZUlkfSR7Q0xJX1JFU0VUfSAoJHtyZXNvdXJjZS5QaHlzaWNhbFJlc291cmNlSWR9KSB0byAke0NMSV9CTFVFfSR7ZGFzaGJvYXJkUGF0aH0ke0NMSV9SRVNFVH1gKTtcbiAgICAgICAgICAgIGNvbnN0IGRhc2hib2FyZCA9IGF3YWl0IGRvd25sb2FkRGFzaGJvYXJkVmlhRGF0YWRvZ0FwaShkYXRhZG9nQ29uZmlndXJhdGlvbiwgcmVzb3VyY2UuUGh5c2ljYWxSZXNvdXJjZUlkIGFzIHN0cmluZyk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnU2F2aW5nIC4uLicpO1xuICAgICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhkYXNoYm9hcmRQYXRoLCBwcmV0dGlmeURhc2hib2FyZChkYXNoYm9hcmQpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgfSkpO1xufTtcblxuY29uc3QgZ2V0U3NtUGFyYW1ldGVyID0gYXN5bmMgKHBhcmFtZXRlck5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHNzbUNsaWVudCA9IG5ldyBTU01DbGllbnQoKTtcbiAgY29uc3QgY29tbWFuZCA9IG5ldyBHZXRQYXJhbWV0ZXJDb21tYW5kKHsgTmFtZTogcGFyYW1ldGVyTmFtZSB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzc21DbGllbnQuc2VuZChjb21tYW5kKTtcbiAgcmV0dXJuIHJlc3BvbnNlLlBhcmFtZXRlcj8uVmFsdWUgYXMgc3RyaW5nO1xufTtcblxuY29uc3QgZ2V0RGF0YWRvZ0NvbmZpZ3VyYXRpb24gPSBhc3luYyAoKTogUHJvbWlzZTx7IGFwaUtleTogc3RyaW5nOyBhcHBLZXk6IHN0cmluZzsgc2l0ZTogc3RyaW5nIH0+ID0+IHtcbiAgY29uc3QgYXBpS2V5ID0gYXdhaXQgZ2V0U3NtUGFyYW1ldGVyKCcvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL2FwaS1rZXknKTtcbiAgY29uc3QgYXBwS2V5ID0gYXdhaXQgZ2V0U3NtUGFyYW1ldGVyKCcvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL2FwcGxpY2F0aW9uLWtleScpO1xuICBjb25zdCBzaXRlID0gYXdhaXQgZ2V0U3NtUGFyYW1ldGVyKCcvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL3NpdGUnKTtcbiAgcmV0dXJuIHtcbiAgICBhcGlLZXksXG4gICAgYXBwS2V5LFxuICAgIHNpdGUsXG4gIH07XG59O1xuXG5jb25zdCBkb3dubG9hZERhc2hib2FyZFZpYURhdGFkb2dBcGkgPSBhc3luYyAoY29uZmlnOiB7XG4gIGFwaUtleTogc3RyaW5nO1xuICBhcHBLZXk6IHN0cmluZztcbiAgc2l0ZTogc3RyaW5nO1xufSwgZGFzaGJvYXJkSWQ6IHN0cmluZyk6IFByb21pc2U8djEuRGFzaGJvYXJkPiA9PiB7XG5cbiAgY29uc3QgY29uZmlndXJhdGlvbiA9IGNsaWVudC5jcmVhdGVDb25maWd1cmF0aW9uKHtcbiAgICBhdXRoTWV0aG9kczoge1xuICAgICAgYXBpS2V5QXV0aDogY29uZmlnLmFwaUtleSxcbiAgICAgIGFwcEtleUF1dGg6IGNvbmZpZy5hcHBLZXksXG4gICAgfSxcbiAgfSk7XG4gIGNvbmZpZ3VyYXRpb24uc2V0U2VydmVyVmFyaWFibGVzKHtcbiAgICBzaXRlOiBjb25maWcuc2l0ZSxcbiAgfSk7XG4gIGNvbnN0IGFwaUluc3RhbmNlID0gbmV3IHYxLkRhc2hib2FyZHNBcGkoY29uZmlndXJhdGlvbik7XG4gIHJldHVybiBhcGlJbnN0YW5jZS5nZXREYXNoYm9hcmQoe1xuICAgIGRhc2hib2FyZElkOiBkYXNoYm9hcmRJZCxcbiAgfSk7XG59O1xuXG5jb25zdCBwcmV0dGlmeURhc2hib2FyZCA9IChkYXNoYm9hcmQ6IHYxLkRhc2hib2FyZCk6IHN0cmluZyA9PiB7XG4gIC8vIGRyb3Aga2V5cyB0aGF0IGFyZSBub3QgcHJlc2VudCBpbiB0aGUgb3V0cHV0IHdoZW4gdXNpbmcgdGhlIFwiZXhwb3J0XCIgYnV0dG9uIGluIHRoZSBHVUlcbiAgZGVsZXRlIGRhc2hib2FyZC5pZDtcbiAgZGVsZXRlIGRhc2hib2FyZC5pc1JlYWRPbmx5O1xuICBkZWxldGUgZGFzaGJvYXJkLmF1dGhvckhhbmRsZTtcbiAgZGVsZXRlIGRhc2hib2FyZC5hdXRob3JOYW1lO1xuICBkZWxldGUgZGFzaGJvYXJkLnVybDtcbiAgZGVsZXRlIGRhc2hib2FyZC5jcmVhdGVkQXQ7XG4gIGRlbGV0ZSBkYXNoYm9hcmQubW9kaWZpZWRBdDtcbiAgZGVsZXRlIGRhc2hib2FyZC5yZXN0cmljdGVkUm9sZXM7XG5cbiAgY29uc3Qgc2VyaWFsaXplZERhc2hib2FyZCA9IHYxLk9iamVjdFNlcmlhbGl6ZXIuc2VyaWFsaXplKGRhc2hib2FyZCwgJ0Rhc2hib2FyZCcsICcnKTtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHNlcmlhbGl6ZWREYXNoYm9hcmQsIG51bGwsIDIpO1xufTtcblxuLyoqXG4gKiBEb3dubG9hZHMgZGFzaGJvYXJkcyBmcm9tIERhdGFkb2cgYW5kIHNhdmVzIHRoZW0gdG8gdGhlIGxvY2FsIGZpbGVzeXN0ZW0uXG4gKiBDYWxsIHRoaXMgd3JhcHBlciB3aXRoIHlvdXIgQ0RLIGFwcCBpbiB5b3VyIGVudHJ5cG9pbnQgc2NyaXB0LlxuICpcbiAqIFJ1biBgY2RrIHN5bnRoYCB3aXRoIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICogYERPV05MT0FEX0RBU0hCT0FSRFM9dHJ1ZWAsIHRvIGRvd25sb2FkIGRhc2hib2FyZHMgZGVmaW5lZCB2aWEge0BsaW5rIERvd25sb2FkYWJsZURhdGFkb2dEYXNoYm9hcmR9IGFuZCB1cGRhdGVcbiAqIHRoZSBleGlzdGluZyBkYXNoYm9hcmQgZGVmaW5pdGlvbiBmaWxlcyBpbiBwbGFjZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gQ0RLIGFwcGxpY2F0aW9uIGluIGVudHJ5cG9pbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGRhdGFkb2dEYXNoYm9hcmREb3dubG9hZGVyID0gKGFwcDogQXBwKSA9PiB7XG4gIGNvbnN0IGRvd25sb2FkRGFzaGJvYXJkc0ZsYWcgPSBwcm9jZXNzLmVudi5ET1dOTE9BRF9EQVNIQk9BUkRTPy50b0xvd2VyQ2FzZSgpO1xuICBpZiAoZG93bmxvYWREYXNoYm9hcmRzRmxhZyAmJiBbJ3RydWUnLCAnMScsICd5ZXMnXS5pbmNsdWRlcyhkb3dubG9hZERhc2hib2FyZHNGbGFnKSkge1xuICAgIHJldHVybiBkb3dubG9hZERhc2hib2FyZHMoYXBwKVxuICAgICAgLnRoZW4oKCkgPT4gY29uc29sZS5sb2coJ0Rhc2hib2FyZHMgZG93bmxvYWRlZCBzdWNjZXNzZnVsbHknKSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBkb3dubG9hZCBkYXNoYm9hcmRzJywgZXJyb3IpKTtcbiAgfVxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG59O1xuIl19
|