@aws-cdk/aws-elasticache-alpha 2.235.1-alpha.0 → 2.236.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +78 -71
- package/.jsii.tabl.json.gz +0 -0
- package/lib/elasticache-grants.generated.js +1 -1
- package/lib/iam-user.js +1 -1
- package/lib/no-password-user.js +1 -1
- package/lib/password-user.js +1 -1
- package/lib/serverless-cache-base.d.ts +6 -1
- package/lib/serverless-cache-base.js +7 -2
- package/lib/serverless-cache.js +3 -2
- package/lib/user-base.js +2 -2
- package/lib/user-group.js +2 -2
- package/package.json +10 -8
package/.jsii
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"aws-cdk-lib": "^2.236.0",
|
|
12
12
|
"constructs": "^10.0.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -8470,7 +8470,7 @@
|
|
|
8470
8470
|
"stability": "experimental"
|
|
8471
8471
|
},
|
|
8472
8472
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
8473
|
-
"jsiiVersion": "5.9.
|
|
8473
|
+
"jsiiVersion": "5.9.23 (build 29252a0)",
|
|
8474
8474
|
"keywords": [
|
|
8475
8475
|
"aws",
|
|
8476
8476
|
"cdk",
|
|
@@ -8760,6 +8760,13 @@
|
|
|
8760
8760
|
"summary": "Memcached engine, latest major version available, minor version is selected automatically For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html."
|
|
8761
8761
|
},
|
|
8762
8762
|
"name": "MEMCACHED_LATEST"
|
|
8763
|
+
},
|
|
8764
|
+
{
|
|
8765
|
+
"docs": {
|
|
8766
|
+
"stability": "experimental",
|
|
8767
|
+
"summary": "Memcached engine, minor version 1.6, patch version is selected automatically For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html."
|
|
8768
|
+
},
|
|
8769
|
+
"name": "MEMCACHED_1_6"
|
|
8763
8770
|
}
|
|
8764
8771
|
],
|
|
8765
8772
|
"name": "CacheEngine",
|
|
@@ -8874,7 +8881,7 @@
|
|
|
8874
8881
|
"kind": "interface",
|
|
8875
8882
|
"locationInModule": {
|
|
8876
8883
|
"filename": "lib/serverless-cache-base.ts",
|
|
8877
|
-
"line":
|
|
8884
|
+
"line": 57
|
|
8878
8885
|
},
|
|
8879
8886
|
"methods": [
|
|
8880
8887
|
{
|
|
@@ -8885,7 +8892,7 @@
|
|
|
8885
8892
|
},
|
|
8886
8893
|
"locationInModule": {
|
|
8887
8894
|
"filename": "lib/serverless-cache-base.ts",
|
|
8888
|
-
"line":
|
|
8895
|
+
"line": 106
|
|
8889
8896
|
},
|
|
8890
8897
|
"name": "grant",
|
|
8891
8898
|
"parameters": [
|
|
@@ -8918,7 +8925,7 @@
|
|
|
8918
8925
|
},
|
|
8919
8926
|
"locationInModule": {
|
|
8920
8927
|
"filename": "lib/serverless-cache-base.ts",
|
|
8921
|
-
"line":
|
|
8928
|
+
"line": 102
|
|
8922
8929
|
},
|
|
8923
8930
|
"name": "grantConnect",
|
|
8924
8931
|
"parameters": [
|
|
@@ -8943,7 +8950,7 @@
|
|
|
8943
8950
|
},
|
|
8944
8951
|
"locationInModule": {
|
|
8945
8952
|
"filename": "lib/serverless-cache-base.ts",
|
|
8946
|
-
"line":
|
|
8953
|
+
"line": 111
|
|
8947
8954
|
},
|
|
8948
8955
|
"name": "metric",
|
|
8949
8956
|
"parameters": [
|
|
@@ -8975,7 +8982,7 @@
|
|
|
8975
8982
|
},
|
|
8976
8983
|
"locationInModule": {
|
|
8977
8984
|
"filename": "lib/serverless-cache-base.ts",
|
|
8978
|
-
"line":
|
|
8985
|
+
"line": 143
|
|
8979
8986
|
},
|
|
8980
8987
|
"name": "metricActiveConnections",
|
|
8981
8988
|
"parameters": [
|
|
@@ -9001,7 +9008,7 @@
|
|
|
9001
9008
|
},
|
|
9002
9009
|
"locationInModule": {
|
|
9003
9010
|
"filename": "lib/serverless-cache-base.ts",
|
|
9004
|
-
"line":
|
|
9011
|
+
"line": 115
|
|
9005
9012
|
},
|
|
9006
9013
|
"name": "metricCacheHitCount",
|
|
9007
9014
|
"parameters": [
|
|
@@ -9027,7 +9034,7 @@
|
|
|
9027
9034
|
},
|
|
9028
9035
|
"locationInModule": {
|
|
9029
9036
|
"filename": "lib/serverless-cache-base.ts",
|
|
9030
|
-
"line":
|
|
9037
|
+
"line": 123
|
|
9031
9038
|
},
|
|
9032
9039
|
"name": "metricCacheHitRate",
|
|
9033
9040
|
"parameters": [
|
|
@@ -9053,7 +9060,7 @@
|
|
|
9053
9060
|
},
|
|
9054
9061
|
"locationInModule": {
|
|
9055
9062
|
"filename": "lib/serverless-cache-base.ts",
|
|
9056
|
-
"line":
|
|
9063
|
+
"line": 119
|
|
9057
9064
|
},
|
|
9058
9065
|
"name": "metricCacheMissCount",
|
|
9059
9066
|
"parameters": [
|
|
@@ -9079,7 +9086,7 @@
|
|
|
9079
9086
|
},
|
|
9080
9087
|
"locationInModule": {
|
|
9081
9088
|
"filename": "lib/serverless-cache-base.ts",
|
|
9082
|
-
"line":
|
|
9089
|
+
"line": 127
|
|
9083
9090
|
},
|
|
9084
9091
|
"name": "metricDataStored",
|
|
9085
9092
|
"parameters": [
|
|
@@ -9105,7 +9112,7 @@
|
|
|
9105
9112
|
},
|
|
9106
9113
|
"locationInModule": {
|
|
9107
9114
|
"filename": "lib/serverless-cache-base.ts",
|
|
9108
|
-
"line":
|
|
9115
|
+
"line": 135
|
|
9109
9116
|
},
|
|
9110
9117
|
"name": "metricNetworkBytesIn",
|
|
9111
9118
|
"parameters": [
|
|
@@ -9131,7 +9138,7 @@
|
|
|
9131
9138
|
},
|
|
9132
9139
|
"locationInModule": {
|
|
9133
9140
|
"filename": "lib/serverless-cache-base.ts",
|
|
9134
|
-
"line":
|
|
9141
|
+
"line": 139
|
|
9135
9142
|
},
|
|
9136
9143
|
"name": "metricNetworkBytesOut",
|
|
9137
9144
|
"parameters": [
|
|
@@ -9157,7 +9164,7 @@
|
|
|
9157
9164
|
},
|
|
9158
9165
|
"locationInModule": {
|
|
9159
9166
|
"filename": "lib/serverless-cache-base.ts",
|
|
9160
|
-
"line":
|
|
9167
|
+
"line": 131
|
|
9161
9168
|
},
|
|
9162
9169
|
"name": "metricProcessingUnitsConsumed",
|
|
9163
9170
|
"parameters": [
|
|
@@ -9183,7 +9190,7 @@
|
|
|
9183
9190
|
},
|
|
9184
9191
|
"locationInModule": {
|
|
9185
9192
|
"filename": "lib/serverless-cache-base.ts",
|
|
9186
|
-
"line":
|
|
9193
|
+
"line": 151
|
|
9187
9194
|
},
|
|
9188
9195
|
"name": "metricReadRequestLatency",
|
|
9189
9196
|
"parameters": [
|
|
@@ -9209,7 +9216,7 @@
|
|
|
9209
9216
|
},
|
|
9210
9217
|
"locationInModule": {
|
|
9211
9218
|
"filename": "lib/serverless-cache-base.ts",
|
|
9212
|
-
"line":
|
|
9219
|
+
"line": 147
|
|
9213
9220
|
},
|
|
9214
9221
|
"name": "metricWriteRequestLatency",
|
|
9215
9222
|
"parameters": [
|
|
@@ -9242,7 +9249,7 @@
|
|
|
9242
9249
|
"immutable": true,
|
|
9243
9250
|
"locationInModule": {
|
|
9244
9251
|
"filename": "lib/serverless-cache-base.ts",
|
|
9245
|
-
"line":
|
|
9252
|
+
"line": 97
|
|
9246
9253
|
},
|
|
9247
9254
|
"name": "serverlessCacheArn",
|
|
9248
9255
|
"type": {
|
|
@@ -9261,7 +9268,7 @@
|
|
|
9261
9268
|
"immutable": true,
|
|
9262
9269
|
"locationInModule": {
|
|
9263
9270
|
"filename": "lib/serverless-cache-base.ts",
|
|
9264
|
-
"line":
|
|
9271
|
+
"line": 67
|
|
9265
9272
|
},
|
|
9266
9273
|
"name": "serverlessCacheName",
|
|
9267
9274
|
"type": {
|
|
@@ -9277,7 +9284,7 @@
|
|
|
9277
9284
|
"immutable": true,
|
|
9278
9285
|
"locationInModule": {
|
|
9279
9286
|
"filename": "lib/serverless-cache-base.ts",
|
|
9280
|
-
"line":
|
|
9287
|
+
"line": 71
|
|
9281
9288
|
},
|
|
9282
9289
|
"name": "backupArnsToRestore",
|
|
9283
9290
|
"optional": true,
|
|
@@ -9299,7 +9306,7 @@
|
|
|
9299
9306
|
"immutable": true,
|
|
9300
9307
|
"locationInModule": {
|
|
9301
9308
|
"filename": "lib/serverless-cache-base.ts",
|
|
9302
|
-
"line":
|
|
9309
|
+
"line": 61
|
|
9303
9310
|
},
|
|
9304
9311
|
"name": "engine",
|
|
9305
9312
|
"optional": true,
|
|
@@ -9316,7 +9323,7 @@
|
|
|
9316
9323
|
"immutable": true,
|
|
9317
9324
|
"locationInModule": {
|
|
9318
9325
|
"filename": "lib/serverless-cache-base.ts",
|
|
9319
|
-
"line":
|
|
9326
|
+
"line": 75
|
|
9320
9327
|
},
|
|
9321
9328
|
"name": "kmsKey",
|
|
9322
9329
|
"optional": true,
|
|
@@ -9333,7 +9340,7 @@
|
|
|
9333
9340
|
"immutable": true,
|
|
9334
9341
|
"locationInModule": {
|
|
9335
9342
|
"filename": "lib/serverless-cache-base.ts",
|
|
9336
|
-
"line":
|
|
9343
|
+
"line": 87
|
|
9337
9344
|
},
|
|
9338
9345
|
"name": "securityGroups",
|
|
9339
9346
|
"optional": true,
|
|
@@ -9355,7 +9362,7 @@
|
|
|
9355
9362
|
"immutable": true,
|
|
9356
9363
|
"locationInModule": {
|
|
9357
9364
|
"filename": "lib/serverless-cache-base.ts",
|
|
9358
|
-
"line":
|
|
9365
|
+
"line": 83
|
|
9359
9366
|
},
|
|
9360
9367
|
"name": "subnets",
|
|
9361
9368
|
"optional": true,
|
|
@@ -9377,7 +9384,7 @@
|
|
|
9377
9384
|
"immutable": true,
|
|
9378
9385
|
"locationInModule": {
|
|
9379
9386
|
"filename": "lib/serverless-cache-base.ts",
|
|
9380
|
-
"line":
|
|
9387
|
+
"line": 91
|
|
9381
9388
|
},
|
|
9382
9389
|
"name": "userGroup",
|
|
9383
9390
|
"optional": true,
|
|
@@ -9394,7 +9401,7 @@
|
|
|
9394
9401
|
"immutable": true,
|
|
9395
9402
|
"locationInModule": {
|
|
9396
9403
|
"filename": "lib/serverless-cache-base.ts",
|
|
9397
|
-
"line":
|
|
9404
|
+
"line": 79
|
|
9398
9405
|
},
|
|
9399
9406
|
"name": "vpc",
|
|
9400
9407
|
"optional": true,
|
|
@@ -10475,7 +10482,7 @@
|
|
|
10475
10482
|
},
|
|
10476
10483
|
"locationInModule": {
|
|
10477
10484
|
"filename": "lib/serverless-cache.ts",
|
|
10478
|
-
"line":
|
|
10485
|
+
"line": 414
|
|
10479
10486
|
},
|
|
10480
10487
|
"parameters": [
|
|
10481
10488
|
{
|
|
@@ -10695,7 +10702,7 @@
|
|
|
10695
10702
|
"immutable": true,
|
|
10696
10703
|
"locationInModule": {
|
|
10697
10704
|
"filename": "lib/serverless-cache.ts",
|
|
10698
|
-
"line":
|
|
10705
|
+
"line": 412
|
|
10699
10706
|
},
|
|
10700
10707
|
"name": "connections",
|
|
10701
10708
|
"overrides": "@aws-cdk/aws-elasticache-alpha.ServerlessCacheBase",
|
|
@@ -10714,7 +10721,7 @@
|
|
|
10714
10721
|
"immutable": true,
|
|
10715
10722
|
"locationInModule": {
|
|
10716
10723
|
"filename": "lib/serverless-cache.ts",
|
|
10717
|
-
"line":
|
|
10724
|
+
"line": 376
|
|
10718
10725
|
},
|
|
10719
10726
|
"name": "serverlessCacheArn",
|
|
10720
10727
|
"overrides": "@aws-cdk/aws-elasticache-alpha.ServerlessCacheBase",
|
|
@@ -10733,7 +10740,7 @@
|
|
|
10733
10740
|
"immutable": true,
|
|
10734
10741
|
"locationInModule": {
|
|
10735
10742
|
"filename": "lib/serverless-cache.ts",
|
|
10736
|
-
"line":
|
|
10743
|
+
"line": 382
|
|
10737
10744
|
},
|
|
10738
10745
|
"name": "serverlessCacheEndpointAddress",
|
|
10739
10746
|
"type": {
|
|
@@ -10751,7 +10758,7 @@
|
|
|
10751
10758
|
"immutable": true,
|
|
10752
10759
|
"locationInModule": {
|
|
10753
10760
|
"filename": "lib/serverless-cache.ts",
|
|
10754
|
-
"line":
|
|
10761
|
+
"line": 388
|
|
10755
10762
|
},
|
|
10756
10763
|
"name": "serverlessCacheEndpointPort",
|
|
10757
10764
|
"type": {
|
|
@@ -10766,7 +10773,7 @@
|
|
|
10766
10773
|
"immutable": true,
|
|
10767
10774
|
"locationInModule": {
|
|
10768
10775
|
"filename": "lib/serverless-cache.ts",
|
|
10769
|
-
"line":
|
|
10776
|
+
"line": 363
|
|
10770
10777
|
},
|
|
10771
10778
|
"name": "serverlessCacheName",
|
|
10772
10779
|
"overrides": "@aws-cdk/aws-elasticache-alpha.ServerlessCacheBase",
|
|
@@ -10785,7 +10792,7 @@
|
|
|
10785
10792
|
"immutable": true,
|
|
10786
10793
|
"locationInModule": {
|
|
10787
10794
|
"filename": "lib/serverless-cache.ts",
|
|
10788
|
-
"line":
|
|
10795
|
+
"line": 394
|
|
10789
10796
|
},
|
|
10790
10797
|
"name": "serverlessCacheReaderEndpointAddress",
|
|
10791
10798
|
"type": {
|
|
@@ -10803,7 +10810,7 @@
|
|
|
10803
10810
|
"immutable": true,
|
|
10804
10811
|
"locationInModule": {
|
|
10805
10812
|
"filename": "lib/serverless-cache.ts",
|
|
10806
|
-
"line":
|
|
10813
|
+
"line": 400
|
|
10807
10814
|
},
|
|
10808
10815
|
"name": "serverlessCacheReaderEndpointPort",
|
|
10809
10816
|
"type": {
|
|
@@ -10821,7 +10828,7 @@
|
|
|
10821
10828
|
"immutable": true,
|
|
10822
10829
|
"locationInModule": {
|
|
10823
10830
|
"filename": "lib/serverless-cache.ts",
|
|
10824
|
-
"line":
|
|
10831
|
+
"line": 407
|
|
10825
10832
|
},
|
|
10826
10833
|
"name": "serverlessCacheStatus",
|
|
10827
10834
|
"type": {
|
|
@@ -10836,7 +10843,7 @@
|
|
|
10836
10843
|
"immutable": true,
|
|
10837
10844
|
"locationInModule": {
|
|
10838
10845
|
"filename": "lib/serverless-cache.ts",
|
|
10839
|
-
"line":
|
|
10846
|
+
"line": 364
|
|
10840
10847
|
},
|
|
10841
10848
|
"name": "backupArnsToRestore",
|
|
10842
10849
|
"optional": true,
|
|
@@ -10858,7 +10865,7 @@
|
|
|
10858
10865
|
"immutable": true,
|
|
10859
10866
|
"locationInModule": {
|
|
10860
10867
|
"filename": "lib/serverless-cache.ts",
|
|
10861
|
-
"line":
|
|
10868
|
+
"line": 362
|
|
10862
10869
|
},
|
|
10863
10870
|
"name": "engine",
|
|
10864
10871
|
"optional": true,
|
|
@@ -10875,7 +10882,7 @@
|
|
|
10875
10882
|
"immutable": true,
|
|
10876
10883
|
"locationInModule": {
|
|
10877
10884
|
"filename": "lib/serverless-cache.ts",
|
|
10878
|
-
"line":
|
|
10885
|
+
"line": 365
|
|
10879
10886
|
},
|
|
10880
10887
|
"name": "kmsKey",
|
|
10881
10888
|
"optional": true,
|
|
@@ -10892,7 +10899,7 @@
|
|
|
10892
10899
|
"immutable": true,
|
|
10893
10900
|
"locationInModule": {
|
|
10894
10901
|
"filename": "lib/serverless-cache.ts",
|
|
10895
|
-
"line":
|
|
10902
|
+
"line": 368
|
|
10896
10903
|
},
|
|
10897
10904
|
"name": "securityGroups",
|
|
10898
10905
|
"optional": true,
|
|
@@ -10914,7 +10921,7 @@
|
|
|
10914
10921
|
"immutable": true,
|
|
10915
10922
|
"locationInModule": {
|
|
10916
10923
|
"filename": "lib/serverless-cache.ts",
|
|
10917
|
-
"line":
|
|
10924
|
+
"line": 367
|
|
10918
10925
|
},
|
|
10919
10926
|
"name": "subnets",
|
|
10920
10927
|
"optional": true,
|
|
@@ -10936,7 +10943,7 @@
|
|
|
10936
10943
|
"immutable": true,
|
|
10937
10944
|
"locationInModule": {
|
|
10938
10945
|
"filename": "lib/serverless-cache.ts",
|
|
10939
|
-
"line":
|
|
10946
|
+
"line": 369
|
|
10940
10947
|
},
|
|
10941
10948
|
"name": "userGroup",
|
|
10942
10949
|
"optional": true,
|
|
@@ -10953,7 +10960,7 @@
|
|
|
10953
10960
|
"immutable": true,
|
|
10954
10961
|
"locationInModule": {
|
|
10955
10962
|
"filename": "lib/serverless-cache.ts",
|
|
10956
|
-
"line":
|
|
10963
|
+
"line": 366
|
|
10957
10964
|
},
|
|
10958
10965
|
"name": "vpc",
|
|
10959
10966
|
"optional": true,
|
|
@@ -11181,7 +11188,7 @@
|
|
|
11181
11188
|
},
|
|
11182
11189
|
"locationInModule": {
|
|
11183
11190
|
"filename": "core/lib/resource.ts",
|
|
11184
|
-
"line":
|
|
11191
|
+
"line": 119
|
|
11185
11192
|
},
|
|
11186
11193
|
"parameters": [
|
|
11187
11194
|
{
|
|
@@ -11211,7 +11218,7 @@
|
|
|
11211
11218
|
"kind": "class",
|
|
11212
11219
|
"locationInModule": {
|
|
11213
11220
|
"filename": "lib/serverless-cache-base.ts",
|
|
11214
|
-
"line":
|
|
11221
|
+
"line": 157
|
|
11215
11222
|
},
|
|
11216
11223
|
"methods": [
|
|
11217
11224
|
{
|
|
@@ -11221,7 +11228,7 @@
|
|
|
11221
11228
|
},
|
|
11222
11229
|
"locationInModule": {
|
|
11223
11230
|
"filename": "lib/serverless-cache-base.ts",
|
|
11224
|
-
"line":
|
|
11231
|
+
"line": 202
|
|
11225
11232
|
},
|
|
11226
11233
|
"name": "grant",
|
|
11227
11234
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11260,7 +11267,7 @@
|
|
|
11260
11267
|
},
|
|
11261
11268
|
"locationInModule": {
|
|
11262
11269
|
"filename": "lib/serverless-cache-base.ts",
|
|
11263
|
-
"line":
|
|
11270
|
+
"line": 192
|
|
11264
11271
|
},
|
|
11265
11272
|
"name": "grantConnect",
|
|
11266
11273
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11289,7 +11296,7 @@
|
|
|
11289
11296
|
},
|
|
11290
11297
|
"locationInModule": {
|
|
11291
11298
|
"filename": "lib/serverless-cache-base.ts",
|
|
11292
|
-
"line":
|
|
11299
|
+
"line": 217
|
|
11293
11300
|
},
|
|
11294
11301
|
"name": "metric",
|
|
11295
11302
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11328,7 +11335,7 @@
|
|
|
11328
11335
|
},
|
|
11329
11336
|
"locationInModule": {
|
|
11330
11337
|
"filename": "lib/serverless-cache-base.ts",
|
|
11331
|
-
"line":
|
|
11338
|
+
"line": 298
|
|
11332
11339
|
},
|
|
11333
11340
|
"name": "metricActiveConnections",
|
|
11334
11341
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11358,7 +11365,7 @@
|
|
|
11358
11365
|
},
|
|
11359
11366
|
"locationInModule": {
|
|
11360
11367
|
"filename": "lib/serverless-cache-base.ts",
|
|
11361
|
-
"line":
|
|
11368
|
+
"line": 235
|
|
11362
11369
|
},
|
|
11363
11370
|
"name": "metricCacheHitCount",
|
|
11364
11371
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11388,7 +11395,7 @@
|
|
|
11388
11395
|
},
|
|
11389
11396
|
"locationInModule": {
|
|
11390
11397
|
"filename": "lib/serverless-cache-base.ts",
|
|
11391
|
-
"line":
|
|
11398
|
+
"line": 253
|
|
11392
11399
|
},
|
|
11393
11400
|
"name": "metricCacheHitRate",
|
|
11394
11401
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11418,7 +11425,7 @@
|
|
|
11418
11425
|
},
|
|
11419
11426
|
"locationInModule": {
|
|
11420
11427
|
"filename": "lib/serverless-cache-base.ts",
|
|
11421
|
-
"line":
|
|
11428
|
+
"line": 244
|
|
11422
11429
|
},
|
|
11423
11430
|
"name": "metricCacheMissCount",
|
|
11424
11431
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11448,7 +11455,7 @@
|
|
|
11448
11455
|
},
|
|
11449
11456
|
"locationInModule": {
|
|
11450
11457
|
"filename": "lib/serverless-cache-base.ts",
|
|
11451
|
-
"line":
|
|
11458
|
+
"line": 262
|
|
11452
11459
|
},
|
|
11453
11460
|
"name": "metricDataStored",
|
|
11454
11461
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11478,7 +11485,7 @@
|
|
|
11478
11485
|
},
|
|
11479
11486
|
"locationInModule": {
|
|
11480
11487
|
"filename": "lib/serverless-cache-base.ts",
|
|
11481
|
-
"line":
|
|
11488
|
+
"line": 280
|
|
11482
11489
|
},
|
|
11483
11490
|
"name": "metricNetworkBytesIn",
|
|
11484
11491
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11508,7 +11515,7 @@
|
|
|
11508
11515
|
},
|
|
11509
11516
|
"locationInModule": {
|
|
11510
11517
|
"filename": "lib/serverless-cache-base.ts",
|
|
11511
|
-
"line":
|
|
11518
|
+
"line": 289
|
|
11512
11519
|
},
|
|
11513
11520
|
"name": "metricNetworkBytesOut",
|
|
11514
11521
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11538,7 +11545,7 @@
|
|
|
11538
11545
|
},
|
|
11539
11546
|
"locationInModule": {
|
|
11540
11547
|
"filename": "lib/serverless-cache-base.ts",
|
|
11541
|
-
"line":
|
|
11548
|
+
"line": 271
|
|
11542
11549
|
},
|
|
11543
11550
|
"name": "metricProcessingUnitsConsumed",
|
|
11544
11551
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11568,7 +11575,7 @@
|
|
|
11568
11575
|
},
|
|
11569
11576
|
"locationInModule": {
|
|
11570
11577
|
"filename": "lib/serverless-cache-base.ts",
|
|
11571
|
-
"line":
|
|
11578
|
+
"line": 316
|
|
11572
11579
|
},
|
|
11573
11580
|
"name": "metricReadRequestLatency",
|
|
11574
11581
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11598,7 +11605,7 @@
|
|
|
11598
11605
|
},
|
|
11599
11606
|
"locationInModule": {
|
|
11600
11607
|
"filename": "lib/serverless-cache-base.ts",
|
|
11601
|
-
"line":
|
|
11608
|
+
"line": 307
|
|
11602
11609
|
},
|
|
11603
11610
|
"name": "metricWriteRequestLatency",
|
|
11604
11611
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11632,7 +11639,7 @@
|
|
|
11632
11639
|
"immutable": true,
|
|
11633
11640
|
"locationInModule": {
|
|
11634
11641
|
"filename": "lib/serverless-cache-base.ts",
|
|
11635
|
-
"line":
|
|
11642
|
+
"line": 172
|
|
11636
11643
|
},
|
|
11637
11644
|
"name": "connections",
|
|
11638
11645
|
"overrides": "aws-cdk-lib.aws_ec2.IConnectable",
|
|
@@ -11648,7 +11655,7 @@
|
|
|
11648
11655
|
"immutable": true,
|
|
11649
11656
|
"locationInModule": {
|
|
11650
11657
|
"filename": "lib/serverless-cache-base.ts",
|
|
11651
|
-
"line":
|
|
11658
|
+
"line": 177
|
|
11652
11659
|
},
|
|
11653
11660
|
"name": "grants",
|
|
11654
11661
|
"type": {
|
|
@@ -11664,7 +11671,7 @@
|
|
|
11664
11671
|
"immutable": true,
|
|
11665
11672
|
"locationInModule": {
|
|
11666
11673
|
"filename": "lib/serverless-cache-base.ts",
|
|
11667
|
-
"line":
|
|
11674
|
+
"line": 167
|
|
11668
11675
|
},
|
|
11669
11676
|
"name": "serverlessCacheArn",
|
|
11670
11677
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11681,7 +11688,7 @@
|
|
|
11681
11688
|
"immutable": true,
|
|
11682
11689
|
"locationInModule": {
|
|
11683
11690
|
"filename": "lib/serverless-cache-base.ts",
|
|
11684
|
-
"line":
|
|
11691
|
+
"line": 159
|
|
11685
11692
|
},
|
|
11686
11693
|
"name": "serverlessCacheName",
|
|
11687
11694
|
"overrides": "@aws-cdk/aws-elasticache-alpha.IServerlessCache",
|
|
@@ -11697,7 +11704,7 @@
|
|
|
11697
11704
|
"immutable": true,
|
|
11698
11705
|
"locationInModule": {
|
|
11699
11706
|
"filename": "lib/serverless-cache-base.ts",
|
|
11700
|
-
"line":
|
|
11707
|
+
"line": 179
|
|
11701
11708
|
},
|
|
11702
11709
|
"name": "serverlessCacheRef",
|
|
11703
11710
|
"overrides": "aws-cdk-lib.interfaces.aws_elasticache.IServerlessCacheRef",
|
|
@@ -11714,7 +11721,7 @@
|
|
|
11714
11721
|
"immutable": true,
|
|
11715
11722
|
"locationInModule": {
|
|
11716
11723
|
"filename": "lib/serverless-cache-base.ts",
|
|
11717
|
-
"line":
|
|
11724
|
+
"line": 160
|
|
11718
11725
|
},
|
|
11719
11726
|
"name": "backupArnsToRestore",
|
|
11720
11727
|
"optional": true,
|
|
@@ -11737,7 +11744,7 @@
|
|
|
11737
11744
|
"immutable": true,
|
|
11738
11745
|
"locationInModule": {
|
|
11739
11746
|
"filename": "lib/serverless-cache-base.ts",
|
|
11740
|
-
"line":
|
|
11747
|
+
"line": 158
|
|
11741
11748
|
},
|
|
11742
11749
|
"name": "engine",
|
|
11743
11750
|
"optional": true,
|
|
@@ -11755,7 +11762,7 @@
|
|
|
11755
11762
|
"immutable": true,
|
|
11756
11763
|
"locationInModule": {
|
|
11757
11764
|
"filename": "lib/serverless-cache-base.ts",
|
|
11758
|
-
"line":
|
|
11765
|
+
"line": 161
|
|
11759
11766
|
},
|
|
11760
11767
|
"name": "kmsKey",
|
|
11761
11768
|
"optional": true,
|
|
@@ -11773,7 +11780,7 @@
|
|
|
11773
11780
|
"immutable": true,
|
|
11774
11781
|
"locationInModule": {
|
|
11775
11782
|
"filename": "lib/serverless-cache-base.ts",
|
|
11776
|
-
"line":
|
|
11783
|
+
"line": 164
|
|
11777
11784
|
},
|
|
11778
11785
|
"name": "securityGroups",
|
|
11779
11786
|
"optional": true,
|
|
@@ -11796,7 +11803,7 @@
|
|
|
11796
11803
|
"immutable": true,
|
|
11797
11804
|
"locationInModule": {
|
|
11798
11805
|
"filename": "lib/serverless-cache-base.ts",
|
|
11799
|
-
"line":
|
|
11806
|
+
"line": 163
|
|
11800
11807
|
},
|
|
11801
11808
|
"name": "subnets",
|
|
11802
11809
|
"optional": true,
|
|
@@ -11819,7 +11826,7 @@
|
|
|
11819
11826
|
"immutable": true,
|
|
11820
11827
|
"locationInModule": {
|
|
11821
11828
|
"filename": "lib/serverless-cache-base.ts",
|
|
11822
|
-
"line":
|
|
11829
|
+
"line": 165
|
|
11823
11830
|
},
|
|
11824
11831
|
"name": "userGroup",
|
|
11825
11832
|
"optional": true,
|
|
@@ -11837,7 +11844,7 @@
|
|
|
11837
11844
|
"immutable": true,
|
|
11838
11845
|
"locationInModule": {
|
|
11839
11846
|
"filename": "lib/serverless-cache-base.ts",
|
|
11840
|
-
"line":
|
|
11847
|
+
"line": 162
|
|
11841
11848
|
},
|
|
11842
11849
|
"name": "vpc",
|
|
11843
11850
|
"optional": true,
|
|
@@ -12160,7 +12167,7 @@
|
|
|
12160
12167
|
},
|
|
12161
12168
|
"locationInModule": {
|
|
12162
12169
|
"filename": "core/lib/resource.ts",
|
|
12163
|
-
"line":
|
|
12170
|
+
"line": 119
|
|
12164
12171
|
},
|
|
12165
12172
|
"parameters": [
|
|
12166
12173
|
{
|
|
@@ -13087,7 +13094,7 @@
|
|
|
13087
13094
|
},
|
|
13088
13095
|
"locationInModule": {
|
|
13089
13096
|
"filename": "core/lib/resource.ts",
|
|
13090
|
-
"line":
|
|
13097
|
+
"line": 119
|
|
13091
13098
|
},
|
|
13092
13099
|
"parameters": [
|
|
13093
13100
|
{
|
|
@@ -13312,6 +13319,6 @@
|
|
|
13312
13319
|
"symbolId": "lib/user-group:UserGroupProps"
|
|
13313
13320
|
}
|
|
13314
13321
|
},
|
|
13315
|
-
"version": "2.
|
|
13322
|
+
"version": "2.236.0-alpha.0",
|
|
13316
13323
|
"fingerprint": "**********"
|
|
13317
13324
|
}
|
package/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
|
@@ -9,7 +9,7 @@ const iam = require("aws-cdk-lib/aws-iam");
|
|
|
9
9
|
* Collection of grant methods for a IServerlessCacheRef
|
|
10
10
|
*/
|
|
11
11
|
class ServerlessCacheGrants {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.ServerlessCacheGrants", version: "2.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.ServerlessCacheGrants", version: "2.236.0-alpha.0" };
|
|
13
13
|
/**
|
|
14
14
|
* Creates grants for ServerlessCacheGrants
|
|
15
15
|
*/
|
package/lib/iam-user.js
CHANGED
|
@@ -71,7 +71,7 @@ let IamUser = (() => {
|
|
|
71
71
|
IamUser = _classThis = _classDescriptor.value;
|
|
72
72
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
73
73
|
}
|
|
74
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.IamUser", version: "2.
|
|
74
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.IamUser", version: "2.236.0-alpha.0" };
|
|
75
75
|
/**
|
|
76
76
|
* Uniquely identifies this class.
|
|
77
77
|
*/
|
package/lib/no-password-user.js
CHANGED
|
@@ -67,7 +67,7 @@ let NoPasswordUser = (() => {
|
|
|
67
67
|
NoPasswordUser = _classThis = _classDescriptor.value;
|
|
68
68
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
69
69
|
}
|
|
70
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.NoPasswordUser", version: "2.
|
|
70
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.NoPasswordUser", version: "2.236.0-alpha.0" };
|
|
71
71
|
/**
|
|
72
72
|
* Uniquely identifies this class.
|
|
73
73
|
*/
|
package/lib/password-user.js
CHANGED
|
@@ -63,7 +63,7 @@ let PasswordUser = (() => {
|
|
|
63
63
|
PasswordUser = _classThis = _classDescriptor.value;
|
|
64
64
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
65
65
|
}
|
|
66
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.PasswordUser", version: "2.
|
|
66
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.PasswordUser", version: "2.236.0-alpha.0" };
|
|
67
67
|
/**
|
|
68
68
|
* Uniquely identifies this class.
|
|
69
69
|
*/
|
|
@@ -39,7 +39,12 @@ export declare enum CacheEngine {
|
|
|
39
39
|
* Memcached engine, latest major version available, minor version is selected automatically
|
|
40
40
|
* For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html
|
|
41
41
|
*/
|
|
42
|
-
MEMCACHED_LATEST = "memcached"
|
|
42
|
+
MEMCACHED_LATEST = "memcached",
|
|
43
|
+
/**
|
|
44
|
+
* Memcached engine, minor version 1.6, patch version is selected automatically
|
|
45
|
+
* For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html
|
|
46
|
+
*/
|
|
47
|
+
MEMCACHED_1_6 = "memcached_1.6"
|
|
43
48
|
}
|
|
44
49
|
/**
|
|
45
50
|
* Represents a Serverless ElastiCache cache
|
|
@@ -41,12 +41,17 @@ var CacheEngine;
|
|
|
41
41
|
* For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html
|
|
42
42
|
*/
|
|
43
43
|
CacheEngine["MEMCACHED_LATEST"] = "memcached";
|
|
44
|
+
/**
|
|
45
|
+
* Memcached engine, minor version 1.6, patch version is selected automatically
|
|
46
|
+
* For more information about the features related to this version check: https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/engine-versions.html
|
|
47
|
+
*/
|
|
48
|
+
CacheEngine["MEMCACHED_1_6"] = "memcached_1.6";
|
|
44
49
|
})(CacheEngine || (exports.CacheEngine = CacheEngine = {}));
|
|
45
50
|
/**
|
|
46
51
|
* Base class for ServerlessCache constructs
|
|
47
52
|
*/
|
|
48
53
|
class ServerlessCacheBase extends core_1.Resource {
|
|
49
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.ServerlessCacheBase", version: "2.
|
|
54
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.ServerlessCacheBase", version: "2.236.0-alpha.0" };
|
|
50
55
|
/**
|
|
51
56
|
* Collection of grant methods for this cache
|
|
52
57
|
*/
|
|
@@ -191,4 +196,4 @@ class ServerlessCacheBase extends core_1.Resource {
|
|
|
191
196
|
}
|
|
192
197
|
}
|
|
193
198
|
exports.ServerlessCacheBase = ServerlessCacheBase;
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVybGVzcy1jYWNoZS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VydmVybGVzcy1jYWNoZS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx5REFBeUQ7QUFFekQsMkNBQTJDO0FBRTNDLDJDQUFpRTtBQUtqRSxpRkFBdUU7QUFHdkU7O0dBRUc7QUFDSCxJQUFZLFdBK0JYO0FBL0JELFdBQVksV0FBVztJQUNyQjs7O09BR0c7SUFDSCx1Q0FBd0IsQ0FBQTtJQUN4Qjs7O09BR0c7SUFDSCxvQ0FBcUIsQ0FBQTtJQUNyQjs7O09BR0c7SUFDSCxvQ0FBcUIsQ0FBQTtJQUNyQjs7O09BR0c7SUFDSCxxQ0FBc0IsQ0FBQTtJQUN0Qjs7O09BR0c7SUFDSCxrQ0FBbUIsQ0FBQTtJQUNuQjs7O09BR0c7SUFDSCw2Q0FBOEIsQ0FBQTtBQUNoQyxDQUFDLEVBL0JXLFdBQVcsMkJBQVgsV0FBVyxRQStCdEI7QUFzR0Q7O0dBRUc7QUFDSCxNQUFzQixtQkFBb0IsU0FBUSxlQUFROztJQWlCeEQ7O09BRUc7SUFDYSxNQUFNLEdBQUcsb0RBQXFCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFekUsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTztZQUNMLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7WUFDN0Msa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtTQUM1QyxDQUFDO0tBQ0g7SUFFRDs7Ozs7T0FLRztJQUNJLFlBQVksQ0FBQyxPQUF1QjtRQUN6QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3JDO0lBQ0Q7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLE9BQXVCLEVBQUUsR0FBRyxPQUFpQjtRQUN4RCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzlCLE9BQU87WUFDUCxPQUFPO1lBQ1AsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQ3hDLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFVBQWtCLEVBQUUsS0FBZ0M7UUFDaEUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDM0IsU0FBUyxFQUFFLGlCQUFpQjtZQUM1QixVQUFVO1lBQ1YsYUFBYSxFQUFFO2dCQUNiLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7YUFDOUM7WUFDRCxNQUFNLEVBQUUsZUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0IsU0FBUyxFQUFFLFNBQVM7WUFDcEIsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNuQjtJQUNEOzs7OztPQUtHO0lBQ0ksbUJBQW1CLENBQUMsS0FBZ0M7UUFDekQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQ2pFO0lBQ0Q7Ozs7O09BS0c7SUFDSSxvQkFBb0IsQ0FBQyxLQUFnQztRQUMxRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDbkU7SUFDRDs7Ozs7T0FLRztJQUNJLGtCQUFrQixDQUFDLEtBQWdDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDM0M7SUFDRDs7Ozs7T0FLRztJQUNJLGdCQUFnQixDQUFDLEtBQWdDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQzdFO0lBQ0Q7Ozs7O09BS0c7SUFDSSw2QkFBNkIsQ0FBQyxLQUFnQztRQUNuRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDekQ7SUFDRDs7Ozs7T0FLRztJQUNJLG9CQUFvQixDQUFDLEtBQWdDO1FBQzFELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQ3RFO0lBQ0Q7Ozs7O09BS0c7SUFDSSxxQkFBcUIsQ0FBQyxLQUFnQztRQUMzRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUN2RTtJQUNEOzs7OztPQUtHO0lBQ0ksdUJBQXVCLENBQUMsS0FBZ0M7UUFDN0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDM0U7SUFDRDs7Ozs7T0FLRztJQUNJLHlCQUF5QixDQUFDLEtBQWdDO1FBQy9ELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQywrQkFBK0IsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUM1RDtJQUNEOzs7OztPQUtHO0lBQ0ksd0JBQXdCLENBQUMsS0FBZ0M7UUFDOUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQzNEOztBQWpLSCxrREFrS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB7IElSZXNvdXJjZSwgUmVzb3VyY2UsIER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQge1xuICBJU2VydmVybGVzc0NhY2hlUmVmLFxuICBTZXJ2ZXJsZXNzQ2FjaGVSZWZlcmVuY2UsXG59IGZyb20gJ2F3cy1jZGstbGliL2ludGVyZmFjZXMvZ2VuZXJhdGVkL2F3cy1lbGFzdGljYWNoZS1pbnRlcmZhY2VzLmdlbmVyYXRlZCc7XG5pbXBvcnQgeyBTZXJ2ZXJsZXNzQ2FjaGVHcmFudHMgfSBmcm9tICcuL2VsYXN0aWNhY2hlLWdyYW50cy5nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgSVVzZXJHcm91cCB9IGZyb20gJy4vdXNlci1ncm91cCc7XG5cbi8qKlxuICogU3VwcG9ydGVkIGNhY2hlIGVuZ2luZXMgdG9nZXRoZXIgd2l0aCBhdmFpbGFibGUgdmVyc2lvbnMuXG4gKi9cbmV4cG9ydCBlbnVtIENhY2hlRW5naW5lIHtcbiAgLyoqXG4gICAqIFZhbGtleSBlbmdpbmUsIGxhdGVzdCBtYWpvciB2ZXJzaW9uIGF2YWlsYWJsZSwgbWlub3IgdmVyc2lvbiBpcyBzZWxlY3RlZCBhdXRvbWF0aWNhbGx5XG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmZWF0dXJlcyByZWxhdGVkIHRvIHRoaXMgdmVyc2lvbiBjaGVjazogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVsYXN0aUNhY2hlL2xhdGVzdC9kZy9lbmdpbmUtdmVyc2lvbnMuaHRtbFxuICAgKi9cbiAgVkFMS0VZX0xBVEVTVCA9ICd2YWxrZXknLFxuICAvKipcbiAgICogVmFsa2V5IGVuZ2luZSwgbWFqb3IgdmVyc2lvbiA3LCBtaW5vciB2ZXJzaW9uIGlzIHNlbGVjdGVkIGF1dG9tYXRpY2FsbHlcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZlYXR1cmVzIHJlbGF0ZWQgdG8gdGhpcyB2ZXJzaW9uIGNoZWNrOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRWxhc3RpQ2FjaGUvbGF0ZXN0L2RnL2VuZ2luZS12ZXJzaW9ucy5odG1sXG4gICAqL1xuICBWQUxLRVlfNyA9ICd2YWxrZXlfNycsXG4gIC8qKlxuICAgKiBWYWxrZXkgZW5naW5lLCBtYWpvciB2ZXJzaW9uIDgsIG1pbm9yIHZlcnNpb24gaXMgc2VsZWN0ZWQgYXV0b21hdGljYWxseVxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmVhdHVyZXMgcmVsYXRlZCB0byB0aGlzIHZlcnNpb24gY2hlY2s6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FbGFzdGlDYWNoZS9sYXRlc3QvZGcvZW5naW5lLXZlcnNpb25zLmh0bWxcbiAgICovXG4gIFZBTEtFWV84ID0gJ3ZhbGtleV84JyxcbiAgLyoqXG4gICAqIFJlZGlzIGVuZ2luZSwgbGF0ZXN0IG1ham9yIHZlcnNpb24gYXZhaWxhYmxlLCBtaW5vciB2ZXJzaW9uIGlzIHNlbGVjdGVkIGF1dG9tYXRpY2FsbHlcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZlYXR1cmVzIHJlbGF0ZWQgdG8gdGhpcyB2ZXJzaW9uIGNoZWNrOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRWxhc3RpQ2FjaGUvbGF0ZXN0L2RnL2VuZ2luZS12ZXJzaW9ucy5odG1sXG4gICAqL1xuICBSRURJU19MQVRFU1QgPSAncmVkaXMnLFxuICAvKipcbiAgICogUmVkaXMgZW5naW5lLCBtYWpvciB2ZXJzaW9uIDcsIG1pbm9yIHZlcnNpb24gaXMgc2VsZWN0ZWQgYXV0b21hdGljYWxseVxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmVhdHVyZXMgcmVsYXRlZCB0byB0aGlzIHZlcnNpb24gY2hlY2s6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FbGFzdGlDYWNoZS9sYXRlc3QvZGcvZW5naW5lLXZlcnNpb25zLmh0bWxcbiAgICovXG4gIFJFRElTXzcgPSAncmVkaXNfNycsXG4gIC8qKlxuICAgKiBNZW1jYWNoZWQgZW5naW5lLCBsYXRlc3QgbWFqb3IgdmVyc2lvbiBhdmFpbGFibGUsIG1pbm9yIHZlcnNpb24gaXMgc2VsZWN0ZWQgYXV0b21hdGljYWxseVxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmVhdHVyZXMgcmVsYXRlZCB0byB0aGlzIHZlcnNpb24gY2hlY2s6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FbGFzdGlDYWNoZS9sYXRlc3QvZGcvZW5naW5lLXZlcnNpb25zLmh0bWxcbiAgICovXG4gIE1FTUNBQ0hFRF9MQVRFU1QgPSAnbWVtY2FjaGVkJyxcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgU2VydmVybGVzcyBFbGFzdGlDYWNoZSBjYWNoZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTZXJ2ZXJsZXNzQ2FjaGUgZXh0ZW5kcyBJUmVzb3VyY2UsIGVjMi5JQ29ubmVjdGFibGUsIElTZXJ2ZXJsZXNzQ2FjaGVSZWYge1xuICAvKipcbiAgICogVGhlIGNhY2hlIGVuZ2luZSB1c2VkIGJ5IHRoaXMgY2FjaGVcbiAgICovXG4gIHJlYWRvbmx5IGVuZ2luZT86IENhY2hlRW5naW5lO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZlcmxlc3MgY2FjaGVcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVybGVzc0NhY2hlTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTnMgb2YgYmFja3VwcyByZXN0b3JlZCBpbiB0aGUgY2FjaGVcbiAgICovXG4gIHJlYWRvbmx5IGJhY2t1cEFybnNUb1Jlc3RvcmU/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFRoZSBLTVMga2V5IHVzZWQgZm9yIGVuY3J5cHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuICAvKipcbiAgICogVGhlIFZQQyB0aGlzIGNhY2hlIGlzIGRlcGxveWVkIGluXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcbiAgLyoqXG4gICAqIFRoZSBzdWJuZXRzIHRoaXMgY2FjaGUgaXMgZGVwbG95ZWQgaW5cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldHM/OiBlYzIuSVN1Ym5ldFtdO1xuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGdyb3VwcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBjYWNoZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcbiAgLyoqXG4gICAqIFRoZSB1c2VyIGdyb3VwIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNhY2hlXG4gICAqL1xuICByZWFkb25seSB1c2VyR3JvdXA/OiBJVXNlckdyb3VwO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgc2VydmVybGVzcyBjYWNoZVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJsZXNzQ2FjaGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnQgY29ubmVjdCBwZXJtaXNzaW9ucyB0byB0aGUgY2FjaGVcbiAgICovXG4gIGdyYW50Q29ubmVjdChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBpZGVudGl0eSBjdXN0b20gcGVybWlzc2lvbnNcbiAgICovXG4gIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgY2FjaGVcbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIGNhY2hlIGhpdCBjb3VudFxuICAgKi9cbiAgbWV0cmljQ2FjaGVIaXRDb3VudChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuICAvKipcbiAgICogTWV0cmljIGZvciBjYWNoZSBtaXNzIGNvdW50XG4gICAqL1xuICBtZXRyaWNDYWNoZU1pc3NDb3VudChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuICAvKipcbiAgICogTWV0cmljIGZvciBjYWNoZSBoaXQgcmF0ZVxuICAgKi9cbiAgbWV0cmljQ2FjaGVIaXRSYXRlKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIGRhdGEgc3RvcmVkIGluIHRoZSBjYWNoZVxuICAgKi9cbiAgbWV0cmljRGF0YVN0b3JlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuICAvKipcbiAgICogTWV0cmljIGZvciBFQ1BVcyBjb25zdW1lZFxuICAgKi9cbiAgbWV0cmljUHJvY2Vzc2luZ1VuaXRzQ29uc3VtZWQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgbmV0d29yayBieXRlcyBpblxuICAgKi9cbiAgbWV0cmljTmV0d29ya0J5dGVzSW4ocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgbmV0d29yayBieXRlcyBvdXRcbiAgICovXG4gIG1ldHJpY05ldHdvcmtCeXRlc091dChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuICAvKipcbiAgICogTWV0cmljIGZvciBhY3RpdmUgY29ubmVjdGlvbnNcbiAgICovXG4gIG1ldHJpY0FjdGl2ZUNvbm5lY3Rpb25zKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIHdyaXRlIHJlcXVlc3QgbGF0ZW5jeVxuICAgKi9cbiAgbWV0cmljV3JpdGVSZXF1ZXN0TGF0ZW5jeShwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuICAvKipcbiAgICogTWV0cmljIGZvciByZWFkIHJlcXVlc3QgbGF0ZW5jeVxuICAgKi9cbiAgbWV0cmljUmVhZFJlcXVlc3RMYXRlbmN5KHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgU2VydmVybGVzc0NhY2hlIGNvbnN0cnVjdHNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNlcnZlcmxlc3NDYWNoZUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElTZXJ2ZXJsZXNzQ2FjaGUge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZW5naW5lPzogQ2FjaGVFbmdpbmU7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzZXJ2ZXJsZXNzQ2FjaGVOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBiYWNrdXBBcm5zVG9SZXN0b3JlPzogc3RyaW5nW107XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHZwYz86IGVjMi5JVnBjO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgc3VibmV0cz86IGVjMi5JU3VibmV0W107XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzZWN1cml0eUdyb3Vwcz86IGVjMi5JU2VjdXJpdHlHcm91cFtdO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdXNlckdyb3VwPzogSVVzZXJHcm91cDtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgc2VydmVybGVzc0NhY2hlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0byBuZXR3b3JrIGNvbm5lY3Rpb25zLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNvbm5lY3Rpb25zOiBlYzIuQ29ubmVjdGlvbnM7XG5cbiAgLyoqXG4gICAqIENvbGxlY3Rpb24gb2YgZ3JhbnQgbWV0aG9kcyBmb3IgdGhpcyBjYWNoZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyYW50cyA9IFNlcnZlcmxlc3NDYWNoZUdyYW50cy5mcm9tU2VydmVybGVzc0NhY2hlKHRoaXMpO1xuXG4gIHB1YmxpYyBnZXQgc2VydmVybGVzc0NhY2hlUmVmKCk6IFNlcnZlcmxlc3NDYWNoZVJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlcnZlcmxlc3NDYWNoZU5hbWU6IHRoaXMuc2VydmVybGVzc0NhY2hlTmFtZSxcbiAgICAgIHNlcnZlcmxlc3NDYWNoZUFybjogdGhpcy5zZXJ2ZXJsZXNzQ2FjaGVBcm4sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBjb25uZWN0IHBlcm1pc3Npb25zIHRvIHRoZSBjYWNoZVxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCB0byBncmFudCBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgcHVibGljIGdyYW50Q29ubmVjdChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnRzLmNvbm5lY3QoZ3JhbnRlZSk7XG4gIH1cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBpZGVudGl0eSBjdXN0b20gcGVybWlzc2lvbnNcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIGFjdGlvbnMgVGhlIGFjdGlvbnMgdG8gZ3JhbnRcbiAgICovXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnMsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLnNlcnZlcmxlc3NDYWNoZUFybl0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgY2FjaGVcbiAgICpcbiAgICogQHBhcmFtIG1ldHJpY05hbWUgVGhlIG5hbWUgb2YgdGhlIG1ldHJpY1xuICAgKiBAcGFyYW0gcHJvcHMgQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHdoaWNoIHdpbGwgYmUgbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHQgbWV0cmljXG4gICAqIEBkZWZhdWx0IEF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9FbGFzdGlDYWNoZScsXG4gICAgICBtZXRyaWNOYW1lLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBTZXJ2ZXJsZXNzQ2FjaGVOYW1lOiB0aGlzLnNlcnZlcmxlc3NDYWNoZU5hbWUsXG4gICAgICB9LFxuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgc3RhdGlzdGljOiAnQXZlcmFnZScsXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KS5hdHRhY2hUbyh0aGlzKTtcbiAgfVxuICAvKipcbiAgICogTWV0cmljIGZvciBjYWNoZSBoaXQgY291bnRcbiAgICpcbiAgICogQHBhcmFtIHByb3BzIEFkZGl0aW9uYWwgcHJvcGVydGllcyB3aGljaCB3aWxsIGJlIG1lcmdlZCB3aXRoIHRoZSBkZWZhdWx0IG1ldHJpY1xuICAgKiBAZGVmYXVsdCBTdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNDYWNoZUhpdENvdW50KHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnQ2FjaGVIaXRzJywgeyBzdGF0aXN0aWM6ICdTdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuICAvKipcbiAgICogTWV0cmljIGZvciBjYWNoZSBtaXNzIGNvdW50XG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgd2hpY2ggd2lsbCBiZSBtZXJnZWQgd2l0aCB0aGUgZGVmYXVsdCBtZXRyaWNcbiAgICogQGRlZmF1bHQgU3VtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBwdWJsaWMgbWV0cmljQ2FjaGVNaXNzQ291bnQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdDYWNoZU1pc3NlcycsIHsgc3RhdGlzdGljOiAnU3VtJywgLi4ucHJvcHMgfSk7XG4gIH1cbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgY2FjaGUgaGl0IHJhdGVcbiAgICpcbiAgICogQHBhcmFtIHByb3BzIEFkZGl0aW9uYWwgcHJvcGVydGllcyB3aGljaCB3aWxsIGJlIG1lcmdlZCB3aXRoIHRoZSBkZWZhdWx0IG1ldHJpY1xuICAgKiBAZGVmYXVsdCBBdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBwdWJsaWMgbWV0cmljQ2FjaGVIaXRSYXRlKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnQ2FjaGVIaXRSYXRlJywgcHJvcHMpO1xuICB9XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIGRhdGEgc3RvcmVkIGluIHRoZSBjYWNoZVxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHdoaWNoIHdpbGwgYmUgbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHQgbWV0cmljXG4gICAqIEBkZWZhdWx0IE1heGltdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNEYXRhU3RvcmVkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnQnl0ZXNVc2VkRm9yQ2FjaGUnLCB7IHN0YXRpc3RpYzogJ01heGltdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuICAvKipcbiAgICogTWV0cmljIGZvciBFQ1BVcyBjb25zdW1lZFxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHdoaWNoIHdpbGwgYmUgbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHQgbWV0cmljXG4gICAqIEBkZWZhdWx0IEF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNQcm9jZXNzaW5nVW5pdHNDb25zdW1lZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0VsYXN0aUNhY2hlUHJvY2Vzc2luZ1VuaXRzJywgcHJvcHMpO1xuICB9XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIG5ldHdvcmsgYnl0ZXMgaW5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIEFkZGl0aW9uYWwgcHJvcGVydGllcyB3aGljaCB3aWxsIGJlIG1lcmdlZCB3aXRoIHRoZSBkZWZhdWx0IG1ldHJpY1xuICAgKiBAZGVmYXVsdCBTdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNOZXR3b3JrQnl0ZXNJbihwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ05ldHdvcmtCeXRlc0luJywgeyBzdGF0aXN0aWM6ICdTdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuICAvKipcbiAgICogTWV0cmljIGZvciBuZXR3b3JrIGJ5dGVzIG91dFxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHdoaWNoIHdpbGwgYmUgbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHQgbWV0cmljXG4gICAqIEBkZWZhdWx0IFN1bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY05ldHdvcmtCeXRlc091dChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ05ldHdvcmtCeXRlc091dCcsIHsgc3RhdGlzdGljOiAnU3VtJywgLi4ucHJvcHMgfSk7XG4gIH1cbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgYWN0aXZlIGNvbm5lY3Rpb25zXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgd2hpY2ggd2lsbCBiZSBtZXJnZWQgd2l0aCB0aGUgZGVmYXVsdCBtZXRyaWNcbiAgICogQGRlZmF1bHQgTWF4aW11bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY0FjdGl2ZUNvbm5lY3Rpb25zKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnQ3VyckNvbm5lY3Rpb25zJywgeyBzdGF0aXN0aWM6ICdNYXhpbXVtJywgLi4ucHJvcHMgfSk7XG4gIH1cbiAgLyoqXG4gICAqIE1ldHJpYyBmb3Igd3JpdGUgcmVxdWVzdCBsYXRlbmN5XG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgd2hpY2ggd2lsbCBiZSBtZXJnZWQgd2l0aCB0aGUgZGVmYXVsdCBtZXRyaWNcbiAgICogQGRlZmF1bHQgQXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY1dyaXRlUmVxdWVzdExhdGVuY3kocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdTdWNjZXNzZnVsV3JpdGVSZXF1ZXN0TGF0ZW5jeScsIHByb3BzKTtcbiAgfVxuICAvKipcbiAgICogTWV0cmljIGZvciByZWFkIHJlcXVlc3QgbGF0ZW5jeVxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHdoaWNoIHdpbGwgYmUgbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHQgbWV0cmljXG4gICAqIEBkZWZhdWx0IEF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNSZWFkUmVxdWVzdExhdGVuY3kocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdTdWNjZXNzZnVsUmVhZFJlcXVlc3RMYXRlbmN5JywgcHJvcHMpO1xuICB9XG59XG4iXX0=
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVybGVzcy1jYWNoZS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VydmVybGVzcy1jYWNoZS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx5REFBeUQ7QUFFekQsMkNBQTJDO0FBRTNDLDJDQUFpRTtBQUtqRSxpRkFBdUU7QUFHdkU7O0dBRUc7QUFDSCxJQUFZLFdBb0NYO0FBcENELFdBQVksV0FBVztJQUNyQjs7O09BR0c7SUFDSCx1Q0FBd0IsQ0FBQTtJQUN4Qjs7O09BR0c7SUFDSCxvQ0FBcUIsQ0FBQTtJQUNyQjs7O09BR0c7SUFDSCxvQ0FBcUIsQ0FBQTtJQUNyQjs7O09BR0c7SUFDSCxxQ0FBc0IsQ0FBQTtJQUN0Qjs7O09BR0c7SUFDSCxrQ0FBbUIsQ0FBQTtJQUNuQjs7O09BR0c7SUFDSCw2Q0FBOEIsQ0FBQTtJQUM5Qjs7O09BR0c7SUFDSCw4Q0FBK0IsQ0FBQTtBQUNqQyxDQUFDLEVBcENXLFdBQVcsMkJBQVgsV0FBVyxRQW9DdEI7QUFzR0Q7O0dBRUc7QUFDSCxNQUFzQixtQkFBb0IsU0FBUSxlQUFROztJQWlCeEQ7O09BRUc7SUFDYSxNQUFNLEdBQUcsb0RBQXFCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFekUsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTztZQUNMLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7WUFDN0Msa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtTQUM1QyxDQUFDO0tBQ0g7SUFFRDs7Ozs7T0FLRztJQUNJLFlBQVksQ0FBQyxPQUF1QjtRQUN6QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3JDO0lBQ0Q7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLE9BQXVCLEVBQUUsR0FBRyxPQUFpQjtRQUN4RCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzlCLE9BQU87WUFDUCxPQUFPO1lBQ1AsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQ3hDLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFVBQWtCLEVBQUUsS0FBZ0M7UUFDaEUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDM0IsU0FBUyxFQUFFLGlCQUFpQjtZQUM1QixVQUFVO1lBQ1YsYUFBYSxFQUFFO2dCQUNiLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7YUFDOUM7WUFDRCxNQUFNLEVBQUUsZUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0IsU0FBUyxFQUFFLFNBQVM7WUFDcEIsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNuQjtJQUNEOzs7OztPQUtHO0lBQ0ksbUJBQW1CLENBQUMsS0FBZ0M7UUFDekQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQ2pFO0lBQ0Q7Ozs7O09BS0c7SUFDSSxvQkFBb0IsQ0FBQyxLQUFnQztRQUMxRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDbkU7SUFDRDs7Ozs7T0FLRztJQUNJLGtCQUFrQixDQUFDLEtBQWdDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDM0M7SUFDRDs7Ozs7T0FLRztJQUNJLGdCQUFnQixDQUFDLEtBQWdDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQzdFO0lBQ0Q7Ozs7O09BS0c7SUFDSSw2QkFBNkIsQ0FBQyxLQUFnQztRQUNuRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDekQ7SUFDRDs7Ozs7T0FLRztJQUNJLG9CQUFvQixDQUFDLEtBQWdDO1FBQzFELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQ3RFO0lBQ0Q7Ozs7O09BS0c7SUFDSSxxQkFBcUIsQ0FBQyxLQUFnQztRQUMzRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUN2RTtJQUNEOzs7OztPQUtHO0lBQ0ksdUJBQXVCLENBQUMsS0FBZ0M7UUFDN0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDM0U7SUFDRDs7Ozs7T0FLRztJQUNJLHlCQUF5QixDQUFDLEtBQWdDO1FBQy9ELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQywrQkFBK0IsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUM1RDtJQUNEOzs7OztPQUtHO0lBQ0ksd0JBQXdCLENBQUMsS0FBZ0M7UUFDOUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQzNEOztBQWpLSCxrREFrS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB7IElSZXNvdXJjZSwgUmVzb3VyY2UsIER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQge1xuICBJU2VydmVybGVzc0NhY2hlUmVmLFxuICBTZXJ2ZXJsZXNzQ2FjaGVSZWZlcmVuY2UsXG59IGZyb20gJ2F3cy1jZGstbGliL2ludGVyZmFjZXMvZ2VuZXJhdGVkL2F3cy1lbGFzdGljYWNoZS1pbnRlcmZhY2VzLmdlbmVyYXRlZCc7XG5pbXBvcnQgeyBTZXJ2ZXJsZXNzQ2FjaGVHcmFudHMgfSBmcm9tICcuL2VsYXN0aWNhY2hlLWdyYW50cy5nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgSVVzZXJHcm91cCB9IGZyb20gJy4vdXNlci1ncm91cCc7XG5cbi8qKlxuICogU3VwcG9ydGVkIGNhY2hlIGVuZ2luZXMgdG9nZXRoZXIgd2l0aCBhdmFpbGFibGUgdmVyc2lvbnMuXG4gKi9cbmV4cG9ydCBlbnVtIENhY2hlRW5naW5lIHtcbiAgLyoqXG4gICAqIFZhbGtleSBlbmdpbmUsIGxhdGVzdCBtYWpvciB2ZXJzaW9uIGF2YWlsYWJsZSwgbWlub3IgdmVyc2lvbiBpcyBzZWxlY3RlZCBhdXRvbWF0aWNhbGx5XG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmZWF0dXJlcyByZWxhdGVkIHRvIHRoaXMgdmVyc2lvbiBjaGVjazogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVsYXN0aUNhY2hlL2xhdGVzdC9kZy9lbmdpbmUtdmVyc2lvbnMuaHRtbFxuICAgKi9cbiAgVkFMS0VZX0xBVEVTVCA9ICd2YWxrZXknLFxuICAvKipcbiAgICogVmFsa2V5IGVuZ2luZSwgbWFqb3IgdmVyc2lvbiA3LCBtaW5vciB2ZXJzaW9uIGlzIHNlbGVjdGVkIGF1dG9tYXRpY2FsbHlcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZlYXR1cmVzIHJlbGF0ZWQgdG8gdGhpcyB2ZXJzaW9uIGNoZWNrOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRWxhc3RpQ2FjaGUvbGF0ZXN0L2RnL2VuZ2luZS12ZXJzaW9ucy5odG1sXG4gICAqL1xuICBWQUxLRVlfNyA9ICd2YWxrZXlfNycsXG4gIC8qKlxuICAgKiBWYWxrZXkgZW5naW5lLCBtYWpvciB2ZXJzaW9uIDgsIG1pbm9yIHZlcnNpb24gaXMgc2VsZWN0ZWQgYXV0b21hdGljYWxseVxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmVhdHVyZXMgcmVsYXRlZCB0byB0aGlzIHZlcnNpb24gY2hlY2s6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FbGFzdGlDYWNoZS9sYXRlc3QvZGcvZW5naW5lLXZlcnNpb25zLmh0bWxcbiAgICovXG4gIFZBTEtFWV84ID0gJ3ZhbGtleV84JyxcbiAgLyoqXG4gICAqIFJlZGlzIGVuZ2luZSwgbGF0ZXN0IG1ham9yIHZlcnNpb24gYXZhaWxhYmxlLCBtaW5vciB2ZXJzaW9uIGlzIHNlbGVjdGVkIGF1dG9tYXRpY2FsbHlcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZlYXR1cmVzIHJlbGF0ZWQgdG8gdGhpcyB2ZXJzaW9uIGNoZWNrOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRWxhc3RpQ2FjaGUvbGF0ZXN0L2RnL2VuZ2luZS12ZXJzaW9ucy5odG1sXG4gICAqL1xuICBSRURJU19MQVRFU1QgPSAncmVkaXMnLFxuICAvKipcbiAgICogUmVkaXMgZW5naW5lLCBtYWpvciB2ZXJzaW9uIDcsIG1pbm9yIHZlcnNpb24gaXMgc2VsZWN0ZWQgYXV0b21hdGljYWxseVxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmVhdHVyZXMgcmVsYXRlZCB0byB0aGlzIHZlcnNpb24gY2hlY2s6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FbGFzdGlDYWNoZS9sYXRlc3QvZGcvZW5naW5lLXZlcnNpb25zLmh0bWxcbiAgICovXG4gIFJFRElTXzcgPSAncmVkaXNfNycsXG4gIC8qKlxuICAgKiBNZW1jYWNoZWQgZW5naW5lLCBsYXRlc3QgbWFqb3IgdmVyc2lvbiBhdmFpbGFibGUsIG1pbm9yIHZlcnNpb24gaXMgc2VsZWN0ZWQgYXV0b21hdGljYWxseVxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmVhdHVyZXMgcmVsYXRlZCB0byB0aGlzIHZlcnNpb24gY2hlY2s6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FbGFzdGlDYWNoZS9sYXRlc3QvZGcvZW5naW5lLXZlcnNpb25zLmh0bWxcbiAgICovXG4gIE1FTUNBQ0hFRF9MQVRFU1QgPSAnbWVtY2FjaGVkJyxcbiAgLyoqXG4gICAqIE1lbWNhY2hlZCBlbmdpbmUsIG1pbm9yIHZlcnNpb24gMS42LCBwYXRjaCB2ZXJzaW9uIGlzIHNlbGVjdGVkIGF1dG9tYXRpY2FsbHlcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZlYXR1cmVzIHJlbGF0ZWQgdG8gdGhpcyB2ZXJzaW9uIGNoZWNrOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRWxhc3RpQ2FjaGUvbGF0ZXN0L2RnL2VuZ2luZS12ZXJzaW9ucy5odG1sXG4gICAqL1xuICBNRU1DQUNIRURfMV82ID0gJ21lbWNhY2hlZF8xLjYnLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBTZXJ2ZXJsZXNzIEVsYXN0aUNhY2hlIGNhY2hlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNlcnZlcmxlc3NDYWNoZSBleHRlbmRzIElSZXNvdXJjZSwgZWMyLklDb25uZWN0YWJsZSwgSVNlcnZlcmxlc3NDYWNoZVJlZiB7XG4gIC8qKlxuICAgKiBUaGUgY2FjaGUgZW5naW5lIHVzZWQgYnkgdGhpcyBjYWNoZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5naW5lPzogQ2FjaGVFbmdpbmU7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VydmVybGVzcyBjYWNoZVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBzZXJ2ZXJsZXNzQ2FjaGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOcyBvZiBiYWNrdXBzIHJlc3RvcmVkIGluIHRoZSBjYWNoZVxuICAgKi9cbiAgcmVhZG9ubHkgYmFja3VwQXJuc1RvUmVzdG9yZT86IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIEtNUyBrZXkgdXNlZCBmb3IgZW5jcnlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkga21zS2V5Pzoga21zLklLZXk7XG4gIC8qKlxuICAgKiBUaGUgVlBDIHRoaXMgY2FjaGUgaXMgZGVwbG95ZWQgaW5cbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IGVjMi5JVnBjO1xuICAvKipcbiAgICogVGhlIHN1Ym5ldHMgdGhpcyBjYWNoZSBpcyBkZXBsb3llZCBpblxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0cz86IGVjMi5JU3VibmV0W107XG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXBzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNhY2hlXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3Vwcz86IGVjMi5JU2VjdXJpdHlHcm91cFtdO1xuICAvKipcbiAgICogVGhlIHVzZXIgZ3JvdXAgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY2FjaGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJHcm91cD86IElVc2VyR3JvdXA7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBzZXJ2ZXJsZXNzIGNhY2hlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlcmxlc3NDYWNoZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHcmFudCBjb25uZWN0IHBlcm1pc3Npb25zIHRvIHRoZSBjYWNoZVxuICAgKi9cbiAgZ3JhbnRDb25uZWN0KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIGlkZW50aXR5IGN1c3RvbSBwZXJtaXNzaW9uc1xuICAgKi9cbiAgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBmb3IgdGhpcyBjYWNoZVxuICAgKi9cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgY2FjaGUgaGl0IGNvdW50XG4gICAqL1xuICBtZXRyaWNDYWNoZUhpdENvdW50KHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIGNhY2hlIG1pc3MgY291bnRcbiAgICovXG4gIG1ldHJpY0NhY2hlTWlzc0NvdW50KHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIGNhY2hlIGhpdCByYXRlXG4gICAqL1xuICBtZXRyaWNDYWNoZUhpdFJhdGUocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgZGF0YSBzdG9yZWQgaW4gdGhlIGNhY2hlXG4gICAqL1xuICBtZXRyaWNEYXRhU3RvcmVkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIEVDUFVzIGNvbnN1bWVkXG4gICAqL1xuICBtZXRyaWNQcm9jZXNzaW5nVW5pdHNDb25zdW1lZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuICAvKipcbiAgICogTWV0cmljIGZvciBuZXR3b3JrIGJ5dGVzIGluXG4gICAqL1xuICBtZXRyaWNOZXR3b3JrQnl0ZXNJbihwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuICAvKipcbiAgICogTWV0cmljIGZvciBuZXR3b3JrIGJ5dGVzIG91dFxuICAgKi9cbiAgbWV0cmljTmV0d29ya0J5dGVzT3V0KHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIGFjdGl2ZSBjb25uZWN0aW9uc1xuICAgKi9cbiAgbWV0cmljQWN0aXZlQ29ubmVjdGlvbnMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcbiAgLyoqXG4gICAqIE1ldHJpYyBmb3Igd3JpdGUgcmVxdWVzdCBsYXRlbmN5XG4gICAqL1xuICBtZXRyaWNXcml0ZVJlcXVlc3RMYXRlbmN5KHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIHJlYWQgcmVxdWVzdCBsYXRlbmN5XG4gICAqL1xuICBtZXRyaWNSZWFkUmVxdWVzdExhdGVuY3kocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBTZXJ2ZXJsZXNzQ2FjaGUgY29uc3RydWN0c1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2VydmVybGVzc0NhY2hlQmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVNlcnZlcmxlc3NDYWNoZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBlbmdpbmU/OiBDYWNoZUVuZ2luZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHNlcnZlcmxlc3NDYWNoZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGJhY2t1cEFybnNUb1Jlc3RvcmU/OiBzdHJpbmdbXTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzdWJuZXRzPzogZWMyLklTdWJuZXRbXTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzPzogZWMyLklTZWN1cml0eUdyb3VwW107XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB1c2VyR3JvdXA/OiBJVXNlckdyb3VwO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzZXJ2ZXJsZXNzQ2FjaGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogQWNjZXNzIHRvIG5ldHdvcmsgY29ubmVjdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucztcblxuICAvKipcbiAgICogQ29sbGVjdGlvbiBvZiBncmFudCBtZXRob2RzIGZvciB0aGlzIGNhY2hlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRzID0gU2VydmVybGVzc0NhY2hlR3JhbnRzLmZyb21TZXJ2ZXJsZXNzQ2FjaGUodGhpcyk7XG5cbiAgcHVibGljIGdldCBzZXJ2ZXJsZXNzQ2FjaGVSZWYoKTogU2VydmVybGVzc0NhY2hlUmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2VydmVybGVzc0NhY2hlTmFtZTogdGhpcy5zZXJ2ZXJsZXNzQ2FjaGVOYW1lLFxuICAgICAgc2VydmVybGVzc0NhY2hlQXJuOiB0aGlzLnNlcnZlcmxlc3NDYWNoZUFybixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IGNvbm5lY3QgcGVybWlzc2lvbnMgdG8gdGhlIGNhY2hlXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRDb25uZWN0KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudHMuY29ubmVjdChncmFudGVlKTtcbiAgfVxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIGlkZW50aXR5IGN1c3RvbSBwZXJtaXNzaW9uc1xuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCB0byBncmFudCBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgYWN0aW9ucyB0byBncmFudFxuICAgKi9cbiAgcHVibGljIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9ucyxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMuc2VydmVybGVzc0NhY2hlQXJuXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBmb3IgdGhpcyBjYWNoZVxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBUaGUgbmFtZSBvZiB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBwcm9wcyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgd2hpY2ggd2lsbCBiZSBtZXJnZWQgd2l0aCB0aGUgZGVmYXVsdCBtZXRyaWNcbiAgICogQGRlZmF1bHQgQXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL0VsYXN0aUNhY2hlJyxcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIFNlcnZlcmxlc3NDYWNoZU5hbWU6IHRoaXMuc2VydmVybGVzc0NhY2hlTmFtZSxcbiAgICAgIH0sXG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBzdGF0aXN0aWM6ICdBdmVyYWdlJyxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pLmF0dGFjaFRvKHRoaXMpO1xuICB9XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIGNhY2hlIGhpdCBjb3VudFxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHdoaWNoIHdpbGwgYmUgbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHQgbWV0cmljXG4gICAqIEBkZWZhdWx0IFN1bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY0NhY2hlSGl0Q291bnQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdDYWNoZUhpdHMnLCB7IHN0YXRpc3RpYzogJ1N1bScsIC4uLnByb3BzIH0pO1xuICB9XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIGNhY2hlIG1pc3MgY291bnRcbiAgICpcbiAgICogQHBhcmFtIHByb3BzIEFkZGl0aW9uYWwgcHJvcGVydGllcyB3aGljaCB3aWxsIGJlIG1lcmdlZCB3aXRoIHRoZSBkZWZhdWx0IG1ldHJpY1xuICAgKiBAZGVmYXVsdCBTdW0gb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNDYWNoZU1pc3NDb3VudChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0NhY2hlTWlzc2VzJywgeyBzdGF0aXN0aWM6ICdTdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuICAvKipcbiAgICogTWV0cmljIGZvciBjYWNoZSBoaXQgcmF0ZVxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHdoaWNoIHdpbGwgYmUgbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHQgbWV0cmljXG4gICAqIEBkZWZhdWx0IEF2ZXJhZ2Ugb3ZlciA1IG1pbnV0ZXNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNDYWNoZUhpdFJhdGUocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdDYWNoZUhpdFJhdGUnLCBwcm9wcyk7XG4gIH1cbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgZGF0YSBzdG9yZWQgaW4gdGhlIGNhY2hlXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgd2hpY2ggd2lsbCBiZSBtZXJnZWQgd2l0aCB0aGUgZGVmYXVsdCBtZXRyaWNcbiAgICogQGRlZmF1bHQgTWF4aW11bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY0RhdGFTdG9yZWQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdCeXRlc1VzZWRGb3JDYWNoZScsIHsgc3RhdGlzdGljOiAnTWF4aW11bScsIC4uLnByb3BzIH0pO1xuICB9XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIEVDUFVzIGNvbnN1bWVkXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgd2hpY2ggd2lsbCBiZSBtZXJnZWQgd2l0aCB0aGUgZGVmYXVsdCBtZXRyaWNcbiAgICogQGRlZmF1bHQgQXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY1Byb2Nlc3NpbmdVbml0c0NvbnN1bWVkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnRWxhc3RpQ2FjaGVQcm9jZXNzaW5nVW5pdHMnLCBwcm9wcyk7XG4gIH1cbiAgLyoqXG4gICAqIE1ldHJpYyBmb3IgbmV0d29yayBieXRlcyBpblxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHdoaWNoIHdpbGwgYmUgbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHQgbWV0cmljXG4gICAqIEBkZWZhdWx0IFN1bSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY05ldHdvcmtCeXRlc0luKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnTmV0d29ya0J5dGVzSW4nLCB7IHN0YXRpc3RpYzogJ1N1bScsIC4uLnByb3BzIH0pO1xuICB9XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIG5ldHdvcmsgYnl0ZXMgb3V0XG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgd2hpY2ggd2lsbCBiZSBtZXJnZWQgd2l0aCB0aGUgZGVmYXVsdCBtZXRyaWNcbiAgICogQGRlZmF1bHQgU3VtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBwdWJsaWMgbWV0cmljTmV0d29ya0J5dGVzT3V0KHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnTmV0d29ya0J5dGVzT3V0JywgeyBzdGF0aXN0aWM6ICdTdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuICAvKipcbiAgICogTWV0cmljIGZvciBhY3RpdmUgY29ubmVjdGlvbnNcbiAgICpcbiAgICogQHBhcmFtIHByb3BzIEFkZGl0aW9uYWwgcHJvcGVydGllcyB3aGljaCB3aWxsIGJlIG1lcmdlZCB3aXRoIHRoZSBkZWZhdWx0IG1ldHJpY1xuICAgKiBAZGVmYXVsdCBNYXhpbXVtIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBwdWJsaWMgbWV0cmljQWN0aXZlQ29ubmVjdGlvbnMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdDdXJyQ29ubmVjdGlvbnMnLCB7IHN0YXRpc3RpYzogJ01heGltdW0nLCAuLi5wcm9wcyB9KTtcbiAgfVxuICAvKipcbiAgICogTWV0cmljIGZvciB3cml0ZSByZXF1ZXN0IGxhdGVuY3lcbiAgICpcbiAgICogQHBhcmFtIHByb3BzIEFkZGl0aW9uYWwgcHJvcGVydGllcyB3aGljaCB3aWxsIGJlIG1lcmdlZCB3aXRoIHRoZSBkZWZhdWx0IG1ldHJpY1xuICAgKiBAZGVmYXVsdCBBdmVyYWdlIG92ZXIgNSBtaW51dGVzXG4gICAqL1xuICBwdWJsaWMgbWV0cmljV3JpdGVSZXF1ZXN0TGF0ZW5jeShwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1N1Y2Nlc3NmdWxXcml0ZVJlcXVlc3RMYXRlbmN5JywgcHJvcHMpO1xuICB9XG4gIC8qKlxuICAgKiBNZXRyaWMgZm9yIHJlYWQgcmVxdWVzdCBsYXRlbmN5XG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgd2hpY2ggd2lsbCBiZSBtZXJnZWQgd2l0aCB0aGUgZGVmYXVsdCBtZXRyaWNcbiAgICogQGRlZmF1bHQgQXZlcmFnZSBvdmVyIDUgbWludXRlc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY1JlYWRSZXF1ZXN0TGF0ZW5jeShwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1N1Y2Nlc3NmdWxSZWFkUmVxdWVzdExhdGVuY3knLCBwcm9wcyk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/serverless-cache.js
CHANGED
|
@@ -90,7 +90,7 @@ let ServerlessCache = (() => {
|
|
|
90
90
|
ServerlessCache = _classThis = _classDescriptor.value;
|
|
91
91
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
92
92
|
}
|
|
93
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.ServerlessCache", version: "2.
|
|
93
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.ServerlessCache", version: "2.236.0-alpha.0" };
|
|
94
94
|
/**
|
|
95
95
|
* Uniquely identifies this class.
|
|
96
96
|
*/
|
|
@@ -191,6 +191,7 @@ let ServerlessCache = (() => {
|
|
|
191
191
|
defaultPort = ec2.Port.tcp(6379);
|
|
192
192
|
break;
|
|
193
193
|
case serverless_cache_base_1.CacheEngine.MEMCACHED_LATEST:
|
|
194
|
+
case serverless_cache_base_1.CacheEngine.MEMCACHED_1_6:
|
|
194
195
|
// Document showing the default port
|
|
195
196
|
// https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/set-up.html#elasticache-install-grant-access-VPN
|
|
196
197
|
defaultPort = ec2.Port.tcp(11211);
|
|
@@ -521,4 +522,4 @@ let ServerlessCache = (() => {
|
|
|
521
522
|
return ServerlessCache = _classThis;
|
|
522
523
|
})();
|
|
523
524
|
exports.ServerlessCache = ServerlessCache;
|
|
524
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVybGVzcy1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNlcnZlcmxlc3MtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTJDO0FBQzNDLGlFQUErRTtBQUcvRSwyQ0FBK0Y7QUFDL0YsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUUxRSxxQ0FBc0M7QUFDdEMsbUVBQTZGO0FBRzdGLE1BQU0sa0NBQWtDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBRWxHOztHQUVHO0FBQ0gsSUFBSyxlQUtKO0FBTEQsV0FBSyxlQUFlO0lBQ2xCOztPQUVHO0lBQ0gsbUNBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQUxJLGVBQWUsS0FBZixlQUFlLFFBS25CO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUM5Qjs7R0FFRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0FBQ2pDOztHQUVHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUM7QUFDbkM7O0dBRUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLFFBQVEsQ0FBQztBQWdNdkM7Ozs7R0FJRztJQUVVLGVBQWU7NEJBRDNCLG9DQUFrQjs7OztzQkFDa0IsMkNBQW1COytCQUEzQixTQUFRLFdBQW1COzs7O1lBQXhELDZLQXljQzs7Ozs7UUF4Y0M7O1dBRUc7UUFDSSxNQUFNLENBQVUscUJBQXFCLEdBQVcsNkNBQTZDLENBQUM7UUFFckc7O1dBRUc7UUFDSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBTTtZQUNwQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsSUFBSSxrQ0FBa0MsSUFBSSxDQUFDLENBQUM7U0FDekY7UUFFRDs7Ozs7O1dBTUc7UUFDSSxNQUFNLENBQUMs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QUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztTQUM5RDs7WUF4Y1UsdURBQWU7Ozs7O0FBQWYsMENBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBDZm5TZXJ2ZXJsZXNzQ2FjaGUsIENmblVzZXJHcm91cCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljYWNoZSc7XG5pbXBvcnQgKiBhcyBldmVudHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgeyBBcm5Gb3JtYXQsIFN0YWNrLCBTaXplLCBMYXp5LCBWYWxpZGF0aW9uRXJyb3IsIE5hbWVzLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBVc2VyRW5naW5lIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgSVNlcnZlcmxlc3NDYWNoZSwgU2VydmVybGVzc0NhY2hlQmFzZSwgQ2FjaGVFbmdpbmUgfSBmcm9tICcuL3NlcnZlcmxlc3MtY2FjaGUtYmFzZSc7XG5pbXBvcnQgeyBJVXNlckdyb3VwIH0gZnJvbSAnLi91c2VyLWdyb3VwJztcblxuY29uc3QgRUxBU1RJQ0FDSEVfU0VSVkVSTEVTU0NBQ0hFX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL2F3cy1lbGFzdGljYWNoZS5TZXJ2ZXJsZXNzQ2FjaGUnKTtcblxuLyoqXG4gKiBVbml0IHR5cGVzIGZvciBkYXRhIHN0b3JhZ2UgdXNhZ2UgbGltaXRzXG4gKi9cbmVudW0gRGF0YVN0b3JhZ2VVbml0IHtcbiAgLyoqXG4gICAqIEdpZ2FieXRlc1xuICAgKi9cbiAgR0lHQUJZVEVTID0gJ0dCJyxcbn1cblxuLyoqXG4gKiBNaW5pbXVtIGRhdGEgc3RvcmFnZSBzaXplIGluIEdCIGZvciBTZXJ2ZXJsZXNzQ2FjaGVcbiAqL1xuY29uc3QgREFUQV9TVE9SQUdFX01JTl9HQiA9IDE7XG4vKipcbiAqIE1heGltdW0gZGF0YSBzdG9yYWdlIHNpemUgaW4gR0IgZm9yIFNlcnZlcmxlc3NDYWNoZVxuICovXG5jb25zdCBEQVRBX1NUT1JBR0VfTUFYX0dCID0gNTAwMDtcbi8qKlxuICogTWluaW11bSByZXF1ZXN0IHJhdGUgbGltaXQgaW4gRUNQVXMgcGVyIHNlY29uZCBmb3IgU2VydmVybGVzc0NhY2hlXG4gKi9cbmNvbnN0IFJFUVVFU1RfUkFURV9NSU5fRUNQVSA9IDEwMDA7XG4vKipcbiAqIE1heGltdW0gcmVxdWVzdCByYXRlIGxpbWl0IGluIEVDUFVzIHBlciBzZWNvbmQgZm9yIFNlcnZlcmxlc3NDYWNoZVxuICovXG5jb25zdCBSRVFVRVNUX1JBVEVfTUFYX0VDUFUgPSAxNTAwMDAwMDtcblxuLyoqXG4gKiBVc2FnZSBsaW1pdHMgY29uZmlndXJhdGlvbiBmb3IgU2VydmVybGVzc0NhY2hlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FjaGVVc2FnZUxpbWl0c1Byb3BlcnR5IHtcbiAgLyoqXG4gICAqIE1pbmltdW0gZGF0YSBzdG9yYWdlIHNpemUgKDEgR0IpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbWluaW11bSBsaW1pdFxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YVN0b3JhZ2VNaW5pbXVtU2l6ZT86IFNpemU7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGRhdGEgc3RvcmFnZSBzaXplICg1MDAwIEdCKVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIG1heGltdW0gbGltaXRcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFTdG9yYWdlTWF4aW11bVNpemU/OiBTaXplO1xuICAvKipcbiAgICogTWluaW11bSByZXF1ZXN0IHJhdGUgbGltaXQgKDEwMDAgRUNQVXMgcGVyIHNlY29uZClcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBtaW5pbXVtIGxpbWl0XG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0UmF0ZUxpbWl0TWluaW11bT86IG51bWJlcjtcbiAgLyoqXG4gICAqIE1heGltdW0gcmVxdWVzdCByYXRlIGxpbWl0ICgxNTAwMDAwMCBFQ1BVcyBwZXIgc2Vjb25kKVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIG1heGltdW0gbGltaXRcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RSYXRlTGltaXRNYXhpbXVtPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEJhY2t1cCBjb25maWd1cmF0aW9uIGZvciBTZXJ2ZXJsZXNzQ2FjaGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYWNrdXBTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBBdXRvbWF0ZWQgZGFpbHkgYmFja3VwIFVUQyB0aW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYXV0b21hdGVkIGJhY2t1cHNcbiAgICovXG4gIHJlYWRvbmx5IGJhY2t1cFRpbWU/OiBldmVudHMuU2NoZWR1bGU7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgZGF5cyB0byByZXRhaW4gYmFja3VwcyAoMS0zNSlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBCYWNrdXBzIGFyZSBub3QgcmV0YWluZWRcbiAgICovXG4gIHJlYWRvbmx5IGJhY2t1cFJldGVudGlvbkxpbWl0PzogbnVtYmVyO1xuICAvKipcbiAgICogTmFtZSBmb3IgdGhlIGZpbmFsIGJhY2t1cCB0YWtlbiBiZWZvcmUgZGVsZXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaW5hbCBiYWNrdXBcbiAgICovXG4gIHJlYWRvbmx5IGJhY2t1cE5hbWVCZWZvcmVEZWxldGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEFSTnMgb2YgYmFja3VwcyBmcm9tIHdoaWNoIHRvIHJlc3RvcmUgZGF0YSBpbnRvIHRoZSBuZXcgY2FjaGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBDcmVhdGUgYSBuZXcgY2FjaGUgd2l0aCBubyBleGlzdGluZyBkYXRhXG4gICAqL1xuICByZWFkb25seSBiYWNrdXBBcm5zVG9SZXN0b3JlPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBTZXJ2ZXJsZXNzQ2FjaGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJsZXNzQ2FjaGVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgY2FjaGUgZW5naW5lIGNvbWJpbmVkIHdpdGggdGhlIHZlcnNpb25cbiAgICogRW51bSBvcHRpb25zOiBWQUxLRVlfREVGQVVMVCwgVkFMS0VZXzcsIFZBTEtFWV84LCBSRURJU19ERUZBVUxULCBNRU1DQUNIRURfREVGQVVMVFxuICAgKiBUaGUgZGVmYXVsdCBvcHRpb25zIGJyaW5nIHRoZSBsYXRlc3QgdmVyc2lvbnMgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB3aGVuIG5vdCBwcm92aWRlZCwgdGhlIGRlZmF1bHQgZW5naW5lIHdvdWxkIGJlIFZhbGtleSwgbGF0ZXN0IHZlcnNpb24gYXZhaWxhYmxlIChWQUxLRVlfREVGQVVMVClcbiAgICovXG4gIHJlYWRvbmx5IGVuZ2luZT86IENhY2hlRW5naW5lO1xuICAvKipcbiAgICogTmFtZSBmb3IgdGhlIHNlcnZlcmxlc3MgY2FjaGVcbiAgICpcbiAgICogQGRlZmF1bHQgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZSBieSBSZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVybGVzc0NhY2hlTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gZm9yIHRoZSBjYWNoZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFVzYWdlIGxpbWl0cyBmb3IgdGhlIGNhY2hlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdXNhZ2UgbGltaXRzXG4gICAqL1xuICByZWFkb25seSBjYWNoZVVzYWdlTGltaXRzPzogQ2FjaGVVc2FnZUxpbWl0c1Byb3BlcnR5O1xuICAvKipcbiAgICogQmFja3VwIGNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBiYWNrdXBzIGNvbmZpZ3VyZWRcbiAgICovXG4gIHJlYWRvbmx5IGJhY2t1cD86IEJhY2t1cFNldHRpbmdzO1xuICAvKipcbiAgICogS01TIGtleSBmb3IgZW5jcnlwdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFNlcnZpY2UgbWFuYWdlZCBlbmNyeXB0aW9uIChBV1Mgb3duZWQgS01TIGtleSlcbiAgICovXG4gIHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuICAvKipcbiAgICogVGhlIFZQQyB0byBwbGFjZSB0aGUgY2FjaGUgaW5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG4gIC8qKlxuICAgKiBXaGljaCBzdWJuZXRzIHRvIHBsYWNlIHRoZSBjYWNoZSBpblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFByaXZhdGUgc3VibmV0cyB3aXRoIGVncmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cHMgZm9yIHRoZSBjYWNoZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgbmV3IHNlY3VyaXR5IGdyb3VwIGlzIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzPzogZWMyLklTZWN1cml0eUdyb3VwW107XG4gIC8qKlxuICAgKiBVc2VyIGdyb3VwIGZvciBhY2Nlc3MgY29udHJvbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHVzZXIgZ3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJHcm91cD86IElVc2VyR3JvdXA7XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyB0aGF0IGNhbiBiZSBzcGVjaWZpZWQgd2hlbiBpbXBvcnRpbmcgYSBTZXJ2ZXJsZXNzQ2FjaGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJsZXNzQ2FjaGVBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBjYWNoZSBlbmdpbmUgdXNlZCBieSB0aGlzIGNhY2hlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZW5naW5lIHR5cGUgaXMgdW5rbm93blxuICAgKi9cbiAgcmVhZG9ubHkgZW5naW5lPzogQ2FjaGVFbmdpbmU7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VydmVybGVzcyBjYWNoZVxuICAgKlxuICAgKiBPbmUgb2YgYHNlcnZlcmxlc3NDYWNoZU5hbWVgIG9yIGBzZXJ2ZXJsZXNzQ2FjaGVBcm5gIGlzIHJlcXVpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlcml2ZWQgZnJvbSBzZXJ2ZXJsZXNzQ2FjaGVBcm5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlcmxlc3NDYWNoZU5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBzZXJ2ZXJsZXNzIGNhY2hlXG4gICAqXG4gICAqIE9uZSBvZiBgc2VydmVybGVzc0NhY2hlTmFtZWAgb3IgYHNlcnZlcmxlc3NDYWNoZUFybmAgaXMgcmVxdWlyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVyaXZlZCBmcm9tIHNlcnZlcmxlc3NDYWNoZU5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlcmxlc3NDYWNoZUFybj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBUk5zIG9mIGJhY2t1cHMgcmVzdG9yZWQgaW4gdGhlIGNhY2hlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYmFja3VwcyBhcmUgdW5rbm93blxuICAgKi9cbiAgcmVhZG9ubHkgYmFja3VwQXJuc1RvUmVzdG9yZT86IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIEtNUyBrZXkgdXNlZCBmb3IgZW5jcnlwdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGVuY3J5cHRpb24ga2V5IGlzIHVua25vd25cbiAgICovXG4gIHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuICAvKipcbiAgICogVGhlIFZQQyB0aGlzIGNhY2hlIGlzIGRlcGxveWVkIGluXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVlBDIGlzIHVua25vd25cbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IGVjMi5JVnBjO1xuICAvKipcbiAgICogVGhlIHN1Ym5ldHMgdGhpcyBjYWNoZSBpcyBkZXBsb3llZCBpblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHN1Ym5ldHMgYXJlIHVua25vd25cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldHM/OiBlYzIuSVN1Ym5ldFtdO1xuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGdyb3VwcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBjYWNoZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHNlY3VyaXR5IGdyb3VwcyBhcmUgdW5rbm93blxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcbiAgLyoqXG4gICAqIFRoZSB1c2VyIGdyb3VwIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNhY2hlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXNlciBncm91cCBpcyB1bmtub3duXG4gICAqL1xuICByZWFkb25seSB1c2VyR3JvdXA/OiBJVXNlckdyb3VwO1xufVxuXG4vKipcbiAqIEEgc2VydmVybGVzcyBFbGFzdGlDYWNoZSBjYWNoZVxuICpcbiAqIEByZXNvdXJjZSBBV1M6OkVsYXN0aUNhY2hlOjpTZXJ2ZXJsZXNzQ2FjaGVcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFNlcnZlcmxlc3NDYWNoZSBleHRlbmRzIFNlcnZlcmxlc3NDYWNoZUJhc2Uge1xuICAvKipcbiAgICogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdhd3MtY2RrLWxpYi5hd3MtZWxhc3RpY2FjaGUuU2VydmVybGVzc0NhY2hlJztcblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIG9iamVjdCBpcyBhIGBTZXJ2ZXJsZXNzQ2FjaGVgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzU2VydmVybGVzc0NhY2hlKHg6IGFueSk6IHggaXMgU2VydmVybGVzc0NhY2hlIHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgKHgpID09PSAnb2JqZWN0JyAmJiBFTEFTVElDQUNIRV9TRVJWRVJMRVNTQ0FDSEVfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIHNlcnZlcmxlc3MgY2FjaGUgYnkgbmFtZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIHNlcnZlcmxlc3NDYWNoZU5hbWUgVGhlIG5hbWUgb2YgdGhlIGV4aXN0aW5nIHNlcnZlcmxlc3MgY2FjaGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVNlcnZlcmxlc3NDYWNoZU5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgc2VydmVybGVzc0NhY2hlTmFtZTogc3RyaW5nKTogSVNlcnZlcmxlc3NDYWNoZSB7XG4gICAgcmV0dXJuIFNlcnZlcmxlc3NDYWNoZS5mcm9tU2VydmVybGVzc0NhY2hlQXR0cmlidXRlcyhzY29wZSwgaWQsIHsgc2VydmVybGVzc0NhY2hlTmFtZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3Rpbmcgc2VydmVybGVzcyBjYWNoZSBieSBBUk5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYClcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lXG4gICAqIEBwYXJhbSBzZXJ2ZXJsZXNzQ2FjaGVBcm4gVGhlIEFSTiBvZiB0aGUgZXhpc3Rpbmcgc2VydmVybGVzcyBjYWNoZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU2VydmVybGVzc0NhY2hlQXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHNlcnZlcmxlc3NDYWNoZUFybjogc3RyaW5nKTogSVNlcnZlcmxlc3NDYWNoZSB7XG4gICAgcmV0dXJuIFNlcnZlcmxlc3NDYWNoZS5mcm9tU2VydmVybGVzc0NhY2hlQXR0cmlidXRlcyhzY29wZSwgaWQsIHsgc2VydmVybGVzc0NhY2hlQXJuIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBzZXJ2ZXJsZXNzIGNhY2hlIHVzaW5nIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYClcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lXG4gICAqIEBwYXJhbSBhdHRycyBBIGBTZXJ2ZXJsZXNzQ2FjaGVBdHRyaWJ1dGVzYCBvYmplY3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVNlcnZlcmxlc3NDYWNoZUF0dHJpYnV0ZXMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IFNlcnZlcmxlc3NDYWNoZUF0dHJpYnV0ZXMpOiBJU2VydmVybGVzc0NhY2hlIHtcbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuICAgIGxldCBhcm46IHN0cmluZztcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHNjb3BlKTtcblxuICAgIGlmIChhdHRycy5zZXJ2ZXJsZXNzQ2FjaGVBcm4gJiYgYXR0cnMuc2VydmVybGVzc0NhY2hlTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignT25seSBvbmUgb2Ygc2VydmVybGVzc0NhY2hlQXJuIG9yIHNlcnZlcmxlc3NDYWNoZU5hbWUgY2FuIGJlIHByb3ZpZGVkLicsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBpZiAoYXR0cnMuc2VydmVybGVzc0NhY2hlQXJuKSB7XG4gICAgICBhcm4gPSBhdHRycy5zZXJ2ZXJsZXNzQ2FjaGVBcm47XG4gICAgICBjb25zdCBleHRyYWN0ZWRTZXJ2ZXJsZXNzQ2FjaGVOYW1lID0gc3RhY2suc3BsaXRBcm4oYXR0cnMuc2VydmVybGVzc0NhY2hlQXJuLCBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lO1xuICAgICAgaWYgKCFleHRyYWN0ZWRTZXJ2ZXJsZXNzQ2FjaGVOYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ1VuYWJsZSB0byBleHRyYWN0IHNlcnZlcmxlc3MgY2FjaGUgbmFtZSBmcm9tIEFSTi4nLCBzY29wZSk7XG4gICAgICB9XG4gICAgICBuYW1lID0gZXh0cmFjdGVkU2VydmVybGVzc0NhY2hlTmFtZTtcbiAgICB9IGVsc2UgaWYgKGF0dHJzLnNlcnZlcmxlc3NDYWNoZU5hbWUpIHtcbiAgICAgIG5hbWUgPSBhdHRycy5zZXJ2ZXJsZXNzQ2FjaGVOYW1lO1xuICAgICAgYXJuID0gc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2VsYXN0aWNhY2hlJyxcbiAgICAgICAgcmVzb3VyY2U6ICdzZXJ2ZXJsZXNzY2FjaGUnLFxuICAgICAgICByZXNvdXJjZU5hbWU6IGF0dHJzLnNlcnZlcmxlc3NDYWNoZU5hbWUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignT25lIG9mIHNlcnZlcmxlc3NDYWNoZU5hbWUgb3Igc2VydmVybGVzc0NhY2hlQXJuIGlzIHJlcXVpcmVkLicsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBTZXJ2ZXJsZXNzQ2FjaGVCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBlbmdpbmUgPSBhdHRycy5lbmdpbmU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgc2VydmVybGVzc0NhY2hlTmFtZTogc3RyaW5nO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHNlcnZlcmxlc3NDYWNoZUFybjogc3RyaW5nO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGJhY2t1cEFybnNUb1Jlc3RvcmUgPSBhdHRycy5iYWNrdXBBcm5zVG9SZXN0b3JlO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGttc0tleSA9IGF0dHJzLmttc0tleTtcbiAgICAgIHB1YmxpYyByZWFkb25seSB2cGMgPSBhdHRycy52cGM7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgc3VibmV0cyA9IGF0dHJzLnN1Ym5ldHM7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHMgPSBhdHRycy5zZWN1cml0eUdyb3VwcztcbiAgICAgIHB1YmxpYyByZWFkb25seSB1c2VyR3JvdXAgPSBhdHRycy51c2VyR3JvdXA7XG5cbiAgICAgIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uczogZWMyLkNvbm5lY3Rpb25zO1xuXG4gICAgICBjb25zdHJ1Y3RvcihzZXJ2ZXJsZXNzQ2FjaGVBcm46IHN0cmluZywgc2VydmVybGVzc0NhY2hlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgICAgIHRoaXMuc2VydmVybGVzc0NhY2hlQXJuID0gc2VydmVybGVzc0NhY2hlQXJuO1xuICAgICAgICB0aGlzLnNlcnZlcmxlc3NDYWNoZU5hbWUgPSBzZXJ2ZXJsZXNzQ2FjaGVOYW1lO1xuXG4gICAgICAgIGlmICh0aGlzLmVuZ2luZSkge1xuICAgICAgICAgIGxldCBkZWZhdWx0UG9ydDogZWMyLlBvcnQ7XG4gICAgICAgICAgc3dpdGNoICh0aGlzLmVuZ2luZSkge1xuICAgICAgICAgICAgY2FzZSBDYWNoZUVuZ2luZS5WQUxLRVlfTEFURVNUOlxuICAgICAgICAgICAgY2FzZSBDYWNoZUVuZ2luZS5WQUxLRVlfNzpcbiAgICAgICAgICAgIGNhc2UgQ2FjaGVFbmdpbmUuVkFMS0VZXzg6XG4gICAgICAgICAgICBjYXNlIENhY2hlRW5naW5lLlJFRElTX0xBVEVTVDpcbiAgICAgICAgICAgIGNhc2UgQ2FjaGVFbmdpbmUuUkVESVNfNzpcbiAgICAgICAgICAgICAgLy8gRG9jdW1lbnQgc2hvd2luZyB0aGUgZGVmYXVsdCBwb3J0XG4gICAgICAgICAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FbGFzdGlDYWNoZS9sYXRlc3QvZGcvc2V0LXVwLmh0bWwjZWxhc3RpY2FjaGUtaW5zdGFsbC1ncmFudC1hY2Nlc3MtVlBOXG4gICAgICAgICAgICAgIGRlZmF1bHRQb3J0ID0gZWMyLlBvcnQudGNwKDYzNzkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ2FjaGVFbmdpbmUuTUVNQ0FDSEVEX0xBVEVTVDpcbiAgICAgICAgICAgICAgLy8gRG9jdW1lbnQgc2hvd2luZyB0aGUgZGVmYXVsdCBwb3J0XG4gICAgICAgICAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FbGFzdGlDYWNoZS9sYXRlc3QvZGcvc2V0LXVwLmh0bWwjZWxhc3RpY2FjaGUtaW5zdGFsbC1ncmFudC1hY2Nlc3MtVlBOXG4gICAgICAgICAgICAgIGRlZmF1bHRQb3J0ID0gZWMyLlBvcnQudGNwKDExMjExKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBVbnN1cHBvcnRlZCBjYWNoZSBlbmdpbmU6ICR7dGhpcy5lbmdpbmV9YCwgc2NvcGUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSBuZXcgZWMyLkNvbm5lY3Rpb25zKHtcbiAgICAgICAgICAgIHNlY3VyaXR5R3JvdXBzOiB0aGlzLnNlY3VyaXR5R3JvdXBzLFxuICAgICAgICAgICAgZGVmYXVsdFBvcnQ6IGRlZmF1bHRQb3J0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSBuZXcgZWMyLkNvbm5lY3Rpb25zKHtcbiAgICAgICAgICAgIHNlY3VyaXR5R3JvdXBzOiB0aGlzLnNlY3VyaXR5R3JvdXBzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoYXJuLCBuYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBlbmdpbmU/OiBDYWNoZUVuZ2luZTtcbiAgcHVibGljIHJlYWRvbmx5IHNlcnZlcmxlc3NDYWNoZU5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGJhY2t1cEFybnNUb1Jlc3RvcmU/OiBzdHJpbmdbXTtcbiAgcHVibGljIHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuICBwdWJsaWMgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG4gIHB1YmxpYyByZWFkb25seSBzdWJuZXRzPzogZWMyLklTdWJuZXRbXTtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzPzogZWMyLklTZWN1cml0eUdyb3VwW107XG4gIHB1YmxpYyByZWFkb25seSB1c2VyR3JvdXA/OiBJVXNlckdyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBzZXJ2ZXJsZXNzIGNhY2hlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZXJ2ZXJsZXNzQ2FjaGVBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBlbmRwb2ludCBhZGRyZXNzIG9mIHRoZSBzZXJ2ZXJsZXNzIGNhY2hlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZXJ2ZXJsZXNzQ2FjaGVFbmRwb2ludEFkZHJlc3M6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBlbmRwb2ludCBwb3J0IG9mIHRoZSBzZXJ2ZXJsZXNzIGNhY2hlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZXJ2ZXJsZXNzQ2FjaGVFbmRwb2ludFBvcnQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSByZWFkZXIgZW5kcG9pbnQgYWRkcmVzcyBvZiB0aGUgc2VydmVybGVzcyBjYWNoZVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VydmVybGVzc0NhY2hlUmVhZGVyRW5kcG9pbnRBZGRyZXNzOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmVhZGVyIGVuZHBvaW50IHBvcnQgb2YgdGhlIHNlcnZlcmxlc3MgY2FjaGVcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlcnZlcmxlc3NDYWNoZVJlYWRlckVuZHBvaW50UG9ydDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBzZXJ2ZXJsZXNzIGNhY2hlXG4gICAqIENhbiBiZSAnQ1JFQVRJTkcnLCAnQVZBSUxBQkxFJywgJ0RFTEVUSU5HJywgJ0NSRUFURS1GQUlMRUQnLCAnTU9ESUZZSU5HJ1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VydmVybGVzc0NhY2hlU3RhdHVzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0byBuZXR3b3JrIGNvbm5lY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VydmVybGVzc0NhY2hlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHt9KTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5lbmdpbmUgPSBwcm9wcy5lbmdpbmUgPz8gQ2FjaGVFbmdpbmUuVkFMS0VZX0xBVEVTVDtcbiAgICB0aGlzLnNlcnZlcmxlc3NDYWNoZU5hbWUgPSBwcm9wcy5zZXJ2ZXJsZXNzQ2FjaGVOYW1lID8/IExhenkuc3RyaW5nKHtcbiAgICAgIHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogNDAgfSksXG4gICAgfSk7XG4gICAgdGhpcy5rbXNLZXkgPSBwcm9wcy5rbXNLZXk7XG4gICAgdGhpcy52cGMgPSBwcm9wcy52cGM7XG4gICAgdGhpcy51c2VyR3JvdXAgPSBwcm9wcy51c2VyR3JvdXA7XG5cbiAgICB0aGlzLnZhbGlkYXRlRGVzY3JpcHRpb24ocHJvcHMuZGVzY3JpcHRpb24pO1xuICAgIHRoaXMudmFsaWRhdGVEYXRhU3RvcmFnZUxpbWl0cyhwcm9wcy5jYWNoZVVzYWdlTGltaXRzKTtcbiAgICB0aGlzLnZhbGlkYXRlUmVxdWVzdFJhdGVMaW1pdHMocHJvcHMuY2FjaGVVc2FnZUxpbWl0cyk7XG4gICAgdGhpcy52YWxpZGF0ZUJhY2t1cFNldHRpbmdzKHByb3BzLmJhY2t1cCk7XG4gICAgdGhpcy52YWxpZGF0ZVVzZXJHcm91cENvbXBhdGliaWxpdHkodGhpcy5lbmdpbmUsIHRoaXMudXNlckdyb3VwKTtcblxuICAgIGNvbnN0IHN1Ym5ldENvbmZpZyA9IHRoaXMuY29uZmlndXJlU3VibmV0cyhwcm9wcyk7XG4gICAgY29uc3Qgc3VibmV0SWRzID0gc3VibmV0Q29uZmlnLnN1Ym5ldElkcztcbiAgICB0aGlzLnN1Ym5ldHMgPSBzdWJuZXRDb25maWcuc3VibmV0cztcblxuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXBDb25maWcgPSB0aGlzLmNvbmZpZ3VyZVNlY3VyaXR5R3JvdXBzKHByb3BzKTtcbiAgICBjb25zdCBzZWN1cml0eUdyb3VwSWRzID0gc2VjdXJpdHlHcm91cENvbmZpZy5zZWN1cml0eUdyb3VwSWRzO1xuICAgIHRoaXMuc2VjdXJpdHlHcm91cHMgPSBzZWN1cml0eUdyb3VwQ29uZmlnLnNlY3VyaXR5R3JvdXBzO1xuXG4gICAgY29uc3QgW2VuZ2luZSwgdmVyc2lvbl0gPSB0aGlzLmVuZ2luZS5zcGxpdCgnXycpO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ2ZuU2VydmVybGVzc0NhY2hlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGVuZ2luZTogZW5naW5lLFxuICAgICAgbWFqb3JFbmdpbmVWZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgc2VydmVybGVzc0NhY2hlTmFtZTogdGhpcy5zZXJ2ZXJsZXNzQ2FjaGVOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgY2FjaGVVc2FnZUxpbWl0czogdGhpcy5yZW5kZXJDYWNoZVVzYWdlTGltaXRzKHByb3BzLmNhY2hlVXNhZ2VMaW1pdHMpLFxuICAgICAgZGFpbHlTbmFwc2hvdFRpbWU6IHByb3BzLmJhY2t1cD8uYmFja3VwVGltZSA/IHRoaXMuZm9ybWF0QmFja3VwVGltZShwcm9wcy5iYWNrdXAuYmFja3VwVGltZSkgOiB1bmRlZmluZWQsXG4gICAgICBzbmFwc2hvdFJldGVudGlvbkxpbWl0OiBwcm9wcy5iYWNrdXA/LmJhY2t1cFJldGVudGlvbkxpbWl0LFxuICAgICAgZmluYWxTbmFwc2hvdE5hbWU6IHByb3BzLmJhY2t1cD8uYmFja3VwTmFtZUJlZm9yZURlbGV0aW9uLFxuICAgICAgc25hcHNob3RBcm5zVG9SZXN0b3JlOiBwcm9wcy5iYWNrdXA/LmJhY2t1cEFybnNUb1Jlc3RvcmUsXG4gICAgICBrbXNLZXlJZDogcHJvcHMua21zS2V5Py5rZXlJZCxcbiAgICAgIHN1Ym5ldElkczogc3VibmV0SWRzLFxuICAgICAgc2VjdXJpdHlHcm91cElkczogc2VjdXJpdHlHcm91cElkcyxcbiAgICAgIHVzZXJHcm91cElkOiBwcm9wcy51c2VyR3JvdXA/LnVzZXJHcm91cE5hbWUsXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMudXNlckdyb3VwKSB7XG4gICAgICBjb25zdCB1c2VyR3JvdXBSZXNvdXJjZSA9IHByb3BzLnVzZXJHcm91cC5ub2RlLmZpbmRDaGlsZCgnUmVzb3VyY2UnKSBhcyBDZm5Vc2VyR3JvdXA7XG4gICAgICByZXNvdXJjZS5hZGREZXBlbmRlbmN5KHVzZXJHcm91cFJlc291cmNlKTtcbiAgICB9XG5cbiAgICB0aGlzLmJhY2t1cEFybnNUb1Jlc3RvcmUgPSByZXNvdXJjZS5zbmFwc2hvdEFybnNUb1Jlc3RvcmU7XG4gICAgdGhpcy5zZXJ2ZXJsZXNzQ2FjaGVBcm4gPSByZXNvdXJjZS5hdHRyQXJuO1xuICAgIHRoaXMuc2VydmVybGVzc0NhY2hlRW5kcG9pbnRBZGRyZXNzID0gcmVzb3VyY2UuYXR0ckVuZHBvaW50QWRkcmVzcztcbiAgICB0aGlzLnNlcnZlcmxlc3NDYWNoZUVuZHBvaW50UG9ydCA9IHJlc291cmNlLmF0dHJFbmRwb2ludFBvcnQ7XG4gICAgdGhpcy5zZXJ2ZXJsZXNzQ2FjaGVSZWFkZXJFbmRwb2ludEFkZHJlc3MgPSByZXNvdXJjZS5hdHRyUmVhZGVyRW5kcG9pbnRBZGRyZXNzO1xuICAgIHRoaXMuc2VydmVybGVzc0NhY2hlUmVhZGVyRW5kcG9pbnRQb3J0ID0gcmVzb3VyY2UuYXR0clJlYWRlckVuZHBvaW50UG9ydDtcbiAgICB0aGlzLnNlcnZlcmxlc3NDYWNoZVN0YXR1cyA9IHJlc291cmNlLmF0dHJTdGF0dXM7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb25zID0gbmV3IGVjMi5Db25uZWN0aW9ucyh7XG4gICAgICBzZWN1cml0eUdyb3VwczogdGhpcy5zZWN1cml0eUdyb3VwcyxcbiAgICAgIGRlZmF1bHRQb3J0OiBlYzIuUG9ydC50Y3AoVG9rZW4uYXNOdW1iZXIodGhpcy5zZXJ2ZXJsZXNzQ2FjaGVFbmRwb2ludFBvcnQpKSxcbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBFTEFTVElDQUNIRV9TRVJWRVJMRVNTQ0FDSEVfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGRlc2NyaXB0aW9uIG1lZXRzIEFXUyByZXF1aXJlbWVudHNcbiAgICpcbiAgICogQHBhcmFtIGRlc2NyaXB0aW9uIFRoZSBkZXNjcmlwdGlvbiB0byB2YWxpZGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFkZXNjcmlwdGlvbiB8fCBUb2tlbi5pc1VucmVzb2x2ZWQoZGVzY3JpcHRpb24pKSByZXR1cm47XG5cbiAgICBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoID4gMjU1KSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBEZXNjcmlwdGlvbiBtdXN0IG5vdCBleGNlZWQgMjU1IGNoYXJhY3RlcnMsIGN1cnJlbnRseSBoYXMgJHtkZXNjcmlwdGlvbi5sZW5ndGh9YCwgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKGRlc2NyaXB0aW9uLmluY2x1ZGVzKCc8JykgfHwgZGVzY3JpcHRpb24uaW5jbHVkZXMoJz4nKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignRGVzY3JpcHRpb24gbXVzdCBub3QgY29udGFpbiA8IG9yID4gY2hhcmFjdGVycycsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBkYXRhIHN0b3JhZ2Ugc2l6ZSBsaW1pdHNcbiAgICpcbiAgICogQHBhcmFtIGxpbWl0cyBUaGUgdXNhZ2UgbGltaXRzIGNvbnRhaW5pbmcgZGF0YSBzdG9yYWdlIHNldHRpbmdzXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlRGF0YVN0b3JhZ2VMaW1pdHMobGltaXRzPzogQ2FjaGVVc2FnZUxpbWl0c1Byb3BlcnR5KTogdm9pZCB7XG4gICAgaWYgKCFsaW1pdHMpIHJldHVybjtcblxuICAgIGlmIChsaW1pdHMuZGF0YVN0b3JhZ2VNaW5pbXVtU2l6ZSAmJiAhbGltaXRzLmRhdGFTdG9yYWdlTWluaW11bVNpemUuaXNVbnJlc29sdmVkKCkgJiZcbiAgICAgIChsaW1pdHMuZGF0YVN0b3JhZ2VNaW5pbXVtU2l6ZS50b0dpYmlieXRlcygpIDwgREFUQV9TVE9SQUdFX01JTl9HQiB8fCBsaW1pdHMuZGF0YVN0b3JhZ2VNaW5pbXVtU2l6ZS50b0dpYmlieXRlcygpID4gREFUQV9TVE9SQUdFX01BWF9HQikpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0RhdGEgc3RvcmFnZSBtaW5pbXVtIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA1MDAwIEdCLicsIHRoaXMpO1xuICAgIH1cbiAgICBpZiAobGltaXRzLmRhdGFTdG9yYWdlTWF4aW11bVNpemUgJiYgIWxpbWl0cy5kYXRhU3RvcmFnZU1heGltdW1TaXplLmlzVW5yZXNvbHZlZCgpICYmXG4gICAgICAobGltaXRzLmRhdGFTdG9yYWdlTWF4aW11bVNpemUudG9HaWJpYnl0ZXMoKSA8IERBVEFfU1RPUkFHRV9NSU5fR0IgfHwgbGltaXRzLmRhdGFTdG9yYWdlTWF4aW11bVNpemUudG9HaWJpYnl0ZXMoKSA+IERBVEFfU1RPUkFHRV9NQVhfR0IpKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdEYXRhIHN0b3JhZ2UgbWF4aW11bSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNTAwMCBHQi4nLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAobGltaXRzLmRhdGFTdG9yYWdlTWluaW11bVNpemUgJiYgbGltaXRzLmRhdGFTdG9yYWdlTWF4aW11bVNpemUgJiZcbiAgICAgICFsaW1pdHMuZGF0YVN0b3JhZ2VNaW5pbXVtU2l6ZS5pc1VucmVzb2x2ZWQoKSAmJiAhbGltaXRzLmRhdGFTdG9yYWdlTWF4aW11bVNpemUuaXNVbnJlc29sdmVkKCkgJiZcbiAgICAgIGxpbWl0cy5kYXRhU3RvcmFnZU1pbmltdW1TaXplLnRvR2liaWJ5dGVzKCkgPiBsaW1pdHMuZGF0YVN0b3JhZ2VNYXhpbXVtU2l6ZS50b0dpYmlieXRlcygpKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdEYXRhIHN0b3JhZ2UgbWluaW11bSBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIG1heGltdW0nLCB0aGlzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgcmVxdWVzdCByYXRlIGxpbWl0c1xuICAgKlxuICAgKiBAcGFyYW0gbGltaXRzIFRoZSB1c2FnZSBsaW1pdHMgY29udGFpbmluZyByZXF1ZXN0IHJhdGUgc2V0dGluZ3NcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVSZXF1ZXN0UmF0ZUxpbWl0cyhsaW1pdHM/OiBDYWNoZVVzYWdlTGltaXRzUHJvcGVydHkpOiB2b2lkIHtcbiAgICBpZiAoIWxpbWl0cykgcmV0dXJuO1xuXG4gICAgaWYgKGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWluaW11bSAhPT0gdW5kZWZpbmVkICYmICFUb2tlbi5pc1VucmVzb2x2ZWQobGltaXRzLnJlcXVlc3RSYXRlTGltaXRNaW5pbXVtKSAmJlxuICAgICAgKGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWluaW11bSA8IFJFUVVFU1RfUkFURV9NSU5fRUNQVSB8fCBsaW1pdHMucmVxdWVzdFJhdGVMaW1pdE1pbmltdW0gPiBSRVFVRVNUX1JBVEVfTUFYX0VDUFUpKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdSZXF1ZXN0IHJhdGUgbWluaW11bSBtdXN0IGJlIGJldHdlZW4gMSwwMDAgYW5kIDE1LDAwMCwwMDAgRUNQVXMgcGVyIHNlY29uZCcsIHRoaXMpO1xuICAgIH1cbiAgICBpZiAobGltaXRzLnJlcXVlc3RSYXRlTGltaXRNYXhpbXVtICE9PSB1bmRlZmluZWQgJiYgIVRva2VuLmlzVW5yZXNvbHZlZChsaW1pdHMucmVxdWVzdFJhdGVMaW1pdE1heGltdW0pICYmXG4gICAgICAobGltaXRzLnJlcXVlc3RSYXRlTGltaXRNYXhpbXVtIDwgUkVRVUVTVF9SQVRFX01JTl9FQ1BVIHx8IGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWF4aW11bSA+IFJFUVVFU1RfUkFURV9NQVhfRUNQVSkpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ1JlcXVlc3QgcmF0ZSBtYXhpbXVtIG11c3QgYmUgYmV0d2VlbiAxLDAwMCBhbmQgMTUsMDAwLDAwMCBFQ1BVcyBwZXIgc2Vjb25kJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQobGltaXRzLnJlcXVlc3RSYXRlTGltaXRNaW5pbXVtKSAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWF4aW11bSkgJiZcbiAgICAgIGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWluaW11bSAhPT0gdW5kZWZpbmVkICYmIGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWF4aW11bSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBsaW1pdHMucmVxdWVzdFJhdGVMaW1pdE1pbmltdW0gPiBsaW1pdHMucmVxdWVzdFJhdGVMaW1pdE1heGltdW0pIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ1JlcXVlc3QgcmF0ZSBtaW5pbXVtIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gbWF4aW11bScsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBiYWNrdXAgc2V0dGluZ3MgbWVldCBBV1MgcmVxdWlyZW1lbnRzXG4gICAqXG4gICAqIEBwYXJhbSBiYWNrdXAgVGhlIGJhY2t1cCBzZXR0aW5ncyB0byB2YWxpZGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUJhY2t1cFNldHRpbmdzKGJhY2t1cD86IEJhY2t1cFNldHRpbmdzKTogdm9pZCB7XG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoYmFja3VwPy5iYWNrdXBSZXRlbnRpb25MaW1pdCkgJiYgYmFja3VwPy5iYWNrdXBSZXRlbnRpb25MaW1pdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBsaW1pdCA9IGJhY2t1cC5iYWNrdXBSZXRlbnRpb25MaW1pdDtcbiAgICAgIGlmIChsaW1pdCA8IDEgfHwgbGltaXQgPiAzNSkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdCYWNrdXAgcmV0ZW50aW9uIGxpbWl0IG11c3QgYmUgYmV0d2VlbiAxIGFuZCAzNSBkYXlzJywgdGhpcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoYmFja3VwPy5iYWNrdXBOYW1lQmVmb3JlRGVsZXRpb24pICYmIGJhY2t1cD8uYmFja3VwTmFtZUJlZm9yZURlbGV0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBiYWNrdXAuYmFja3VwTmFtZUJlZm9yZURlbGV0aW9uO1xuXG4gICAgICBpZiAoIS9eW2EtekEtWl0vLnRlc3QobmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignRmluYWwgYmFja3VwIG5hbWUgbXVzdCBiZWdpbiB3aXRoIGEgbGV0dGVyJywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghL15bYS16QS1aMC05LV0rJC8udGVzdChuYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdGaW5hbCBiYWNrdXAgbmFtZSBtdXN0IGNvbnRhaW4gb25seSBBU0NJSSBsZXR0ZXJzLCBkaWdpdHMsIGFuZCBoeXBoZW5zJywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChuYW1lLmVuZHNXaXRoKCctJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignRmluYWwgYmFja3VwIG5hbWUgbXVzdCBub3QgZW5kIHdpdGggYSBoeXBoZW4nLCB0aGlzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5hbWUuaW5jbHVkZXMoJy0tJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignRmluYWwgYmFja3VwIG5hbWUgbXVzdCBub3QgY29udGFpbiB0d28gY29uc2VjdXRpdmUgaHlwaGVucycsIHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB1c2VyIGdyb3VwIGNvbXBhdGliaWxpdHkgd2l0aCBjYWNoZSBlbmdpbmVcbiAgICpcbiAgICogQHBhcmFtIGVuZ2luZSBUaGUgY2FjaGUgZW5naW5lXG4gICAqIEBwYXJhbSB1c2VyR3JvdXAgVGhlIHVzZXIgZ3JvdXAgdG8gdmFsaWRhdGVcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVVc2VyR3JvdXBDb21wYXRpYmlsaXR5KGVuZ2luZTogQ2FjaGVFbmdpbmUsIHVzZXJHcm91cD86IElVc2VyR3JvdXApOiB2b2lkIHtcbiAgICBpZiAoIXVzZXJHcm91cCkgcmV0dXJuO1xuXG4gICAgaWYgKGVuZ2luZSA9PT0gQ2FjaGVFbmdpbmUuTUVNQ0FDSEVEX0xBVEVTVCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignVXNlciBncm91cHMgY2Fubm90IGJlIHVzZWQgd2l0aCBNZW1jYWNoZWQgZW5naW5lcy4gT25seSBSZWRpcyBhbmQgVmFsa2V5IGVuZ2luZXMgc3VwcG9ydCB1c2VyIGdyb3Vwcy4nLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAoZW5naW5lID09PSBDYWNoZUVuZ2luZS5SRURJU19MQVRFU1QgJiYgdXNlckdyb3VwLmVuZ2luZSAhPT0gVXNlckVuZ2luZS5SRURJUykge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignUmVkaXMgY2FjaGUgY2FuIG9ubHkgdXNlIFJlZGlzIHVzZXIgZ3JvdXBzLicsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgY2FjaGUgdXNhZ2UgbGltaXRzIGZvciBDbG91ZEZvcm1hdGlvblxuICAgKlxuICAgKiBAcGFyYW0gbGltaXRzIFRoZSB1c2FnZSBsaW1pdHMgdG8gcmVuZGVyXG4gICAqIEByZXR1cm5zIENsb3VkRm9ybWF0aW9uLWNvbXBhdGlibGUgdXNhZ2UgbGltaXRzIG9iamVjdCBvciB1bmRlZmluZWRcbiAgICovXG4gIHByaXZhdGUgcmVuZGVyQ2FjaGVVc2FnZUxpbWl0cyhsaW1pdHM/OiBDYWNoZVVzYWdlTGltaXRzUHJvcGVydHkpOiBhbnkge1xuICAgIGlmICghbGltaXRzKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgY2FjaGVVc2FnZUxpbWl0czogYW55ID0ge307XG5cbiAgICBpZiAobGltaXRzLmRhdGFTdG9yYWdlTWluaW11bVNpemUgIT09IHVuZGVmaW5lZCB8fCBsaW1pdHMuZGF0YVN0b3JhZ2VNYXhpbXVtU2l6ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjYWNoZVVzYWdlTGltaXRzLmRhdGFTdG9yYWdlID0ge1xuICAgICAgICB1bml0OiBEYXRhU3RvcmFnZVVuaXQuR0lHQUJZVEVTLFxuICAgICAgICAuLi4obGltaXRzLmRhdGFTdG9yYWdlTWluaW11bVNpemUgIT09IHVuZGVmaW5lZCAmJiB7IG1pbmltdW06IGxpbWl0cy5kYXRhU3RvcmFnZU1pbmltdW1TaXplLnRvR2liaWJ5dGVzKCkgfSksXG4gICAgICAgIC4uLihsaW1pdHMuZGF0YVN0b3JhZ2VNYXhpbXVtU2l6ZSAhPT0gdW5kZWZpbmVkICYmIHsgbWF4aW11bTogbGltaXRzLmRhdGFTdG9yYWdlTWF4aW11bVNpemUudG9HaWJpYnl0ZXMoKSB9KSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWluaW11bSAhPT0gdW5kZWZpbmVkIHx8IGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWF4aW11bSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjYWNoZVVzYWdlTGltaXRzLmVjcHVQZXJTZWNvbmQgPSB7XG4gICAgICAgIC4uLihsaW1pdHMucmVxdWVzdFJhdGVMaW1pdE1pbmltdW0gIT09IHVuZGVmaW5lZCAmJiB7IG1pbmltdW06IGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWluaW11bSB9KSxcbiAgICAgICAgLi4uKGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWF4aW11bSAhPT0gdW5kZWZpbmVkICYmIHsgbWF4aW11bTogbGltaXRzLnJlcXVlc3RSYXRlTGltaXRNYXhpbXVtIH0pLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoY2FjaGVVc2FnZUxpbWl0cykubGVuZ3RoID4gMCA/IGNhY2hlVXNhZ2VMaW1pdHMgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIHN1Ym5ldHMgZm9yIHRoZSBjYWNoZVxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIFNlcnZlcmxlc3NDYWNoZSBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIE9iamVjdCBjb250YWluaW5nIHN1Ym5ldCBJRHMgYW5kIHN1Ym5ldCBvYmplY3RzXG4gICAqL1xuICBwcml2YXRlIGNvbmZpZ3VyZVN1Ym5ldHMocHJvcHM6IFNlcnZlcmxlc3NDYWNoZVByb3BzKTogeyBzdWJuZXRJZHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkOyBzdWJuZXRzOiBlYzIuSVN1Ym5ldFtdIHwgdW5kZWZpbmVkIH0ge1xuICAgIGxldCBzZWxlY3RlZFN1Ym5ldHM7XG4gICAgaWYgKHByb3BzLnZwY1N1Ym5ldHMpIHtcbiAgICAgIHNlbGVjdGVkU3VibmV0cyA9IHByb3BzLnZwYy5zZWxlY3RTdWJuZXRzKHByb3BzLnZwY1N1Ym5ldHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxlY3RlZFN1Ym5ldHMgPSBwcm9wcy52cGMuc2VsZWN0U3VibmV0cyh7XG4gICAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1MsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VibmV0SWRzOiBzZWxlY3RlZFN1Ym5ldHMuc3VibmV0SWRzLmxlbmd0aCA+IDAgPyBzZWxlY3RlZFN1Ym5ldHMuc3VibmV0SWRzIDogdW5kZWZpbmVkLFxuICAgICAgc3VibmV0czogc2VsZWN0ZWRTdWJuZXRzLnN1Ym5ldHMubGVuZ3RoID4gMCA/IHNlbGVjdGVkU3VibmV0cy5zdWJuZXRzIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIHNlY3VyaXR5IGdyb3VwcyBmb3IgdGhlIGNhY2hlXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgU2VydmVybGVzc0NhY2hlIHByb3BlcnRpZXNcbiAgICogQHJldHVybnMgT2JqZWN0IGNvbnRhaW5pbmcgc2VjdXJpdHkgZ3JvdXAgSURzIGFuZCBzZWN1cml0eSBncm91cCBvYmplY3RzXG4gICAqL1xuICBwcml2YXRlIGNvbmZpZ3VyZVNlY3VyaXR5R3JvdXBzKHByb3BzOiBTZXJ2ZXJsZXNzQ2FjaGVQcm9wcyk6IHsgc2VjdXJpdHlHcm91cElkczogc3RyaW5nW107IHNlY3VyaXR5R3JvdXBzOiBlYzIuSVNlY3VyaXR5R3JvdXBbXSB9IHtcbiAgICBpZiAocHJvcHMuc2VjdXJpdHlHcm91cHMgJiYgcHJvcHMuc2VjdXJpdHlHcm91cHMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2VjdXJpdHlHcm91cElkczogcHJvcHMuc2VjdXJpdHlHcm91cHMubWFwKHNnID0+IHNnLnNlY3VyaXR5R3JvdXBJZCksXG4gICAgICAgIHNlY3VyaXR5R3JvdXBzOiBwcm9wcy5zZWN1cml0eUdyb3VwcyxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5ld1NlY3VyaXR5R3JvdXAgPSBuZXcgZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgJ1NlY3VyaXR5R3JvdXAnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBgU2VjdXJpdHkgZ3JvdXAgZm9yICR7dGhpcy5ub2RlLmlkfSBjYWNoZS5gLFxuICAgICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2VjdXJpdHlHcm91cElkczogW25ld1NlY3VyaXR5R3JvdXAuc2VjdXJpdHlHcm91cElkXSxcbiAgICAgICAgc2VjdXJpdHlHcm91cHM6IFtuZXdTZWN1cml0eUdyb3VwXSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCBzY2hlZHVsZSB0byBISDpNTSBmb3JtYXQgZm9yIGRhaWx5IGJhY2t1cHNcbiAgICpcbiAgICogQHBhcmFtIHNjaGVkdWxlIFRoZSBzY2hlZHVsZSB0byBmb3JtYXRcbiAgICogQHJldHVybnMgVGltZSBzdHJpbmcgaW4gSEg6TU0gZm9ybWF0XG4gICAqL1xuICBwcml2YXRlIGZvcm1hdEJhY2t1cFRpbWUoc2NoZWR1bGU6IGV2ZW50cy5TY2hlZHVsZSk6IHN0cmluZyB7XG4gICAgY29uc3QgV0lMRF9DQVJEID0gJyonO1xuICAgIGNvbnN0IFtcbiAgICAgIG1pbnV0ZUV4cHJlc3Npb24sIGhvdXJFeHByZXNzaW9uLFxuICAgICAgZGF5RXhwcmVzc2lvbiwgbW9udGhFeHByZXNzaW9uLFxuICAgICAgd2Vla0RheUV4cHJlc3Npb24sIHllYXJFeHByZXNzaW9uLFxuICAgIF0gPSBzY2hlZHVsZS5leHByZXNzaW9uU3RyaW5nLnN1YnN0cig1KS5zbGljZSgwLCAtMSkuc3BsaXQoJyAnKTtcblxuICAgIGlmIChkYXlFeHByZXNzaW9uICE9IFdJTERfQ0FSRCB8fCBtb250aEV4cHJlc3Npb24gIT0gV0lMRF9DQVJEIHx8IHllYXJFeHByZXNzaW9uICE9IFdJTERfQ0FSRCB8fCB3ZWVrRGF5RXhwcmVzc2lvbiAhPSAnPycpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0ZvciBub3csIG9ubHkgZGFpbHkgYmFja3VwIHRpbWUgaXMgYXZhaWxhYmxlIChzdXBwb3J0cyBqdXN0IGhvdXIgYW5kIG1pbnV0ZSkuIERheSwgbW9udGgsIHllYXIsIGFuZCB3ZWVrRGF5IGFyZSBub3QgYWxsb3dlZCcsIHRoaXMpO1xuICAgIH1cblxuICAgIGNvbnN0IGhvdXIgPSBob3VyRXhwcmVzc2lvbiA9PSBXSUxEX0NBUkQgPyAnMCcgOiBob3VyRXhwcmVzc2lvbjtcbiAgICBjb25zdCBtaW51dGUgPSBtaW51dGVFeHByZXNzaW9uID09IFdJTERfQ0FSRCA/ICcwJyA6IG1pbnV0ZUV4cHJlc3Npb247XG5cbiAgICByZXR1cm4gYCR7aG91ci5wYWRTdGFydCgyLCAnMCcpfToke21pbnV0ZS5wYWRTdGFydCgyLCAnMCcpfWA7XG4gIH1cbn1cbiJdfQ==
|
|
525
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVybGVzcy1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNlcnZlcmxlc3MtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTJDO0FBQzNDLGlFQUErRTtBQUcvRSwyQ0FBK0Y7QUFDL0YsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUUxRSxxQ0FBc0M7QUFDdEMsbUVBQTZGO0FBRzdGLE1BQU0sa0NBQWtDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBRWxHOztHQUVHO0FBQ0gsSUFBSyxlQUtKO0FBTEQsV0FBSyxlQUFlO0lBQ2xCOztPQUVHO0lBQ0gsbUNBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQUxJLGVBQWUsS0FBZixlQUFlLFFBS25CO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUM5Qjs7R0FFRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0FBQ2pDOztHQUVHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUM7QUFDbkM7O0dBRUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLFFBQVEsQ0FBQztBQWdNdkM7Ozs7R0FJRztJQUVVLGVBQWU7NEJBRDNCLG9DQUFrQjs7OztzQkFDa0IsMkNBQW1COytCQUEzQixTQUFRLFdBQW1COzs7O1lBQXhELDZLQTBjQzs7Ozs7UUF6Y0M7O1dBRUc7UUFDSSxNQUFNLENBQVUscUJBQXFCLEdBQVcsNkNBQTZDLENBQUM7UUFFckc7O1dBRUc7UUFDSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBTTtZQUNwQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsSUFBSSxrQ0FBa0MsSUFBSSxDQUFDLENBQUM7U0FDekY7UUFFRDs7Ozs7O1dBTUc7UUFDSSxNQUFNLENBQUMs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QkFBZ0IsQ0FBQztZQUV0RSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztTQUM5RDs7WUF6Y1UsdURBQWU7Ozs7O0FBQWYsMENBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBDZm5TZXJ2ZXJsZXNzQ2FjaGUsIENmblVzZXJHcm91cCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljYWNoZSc7XG5pbXBvcnQgKiBhcyBldmVudHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgeyBBcm5Gb3JtYXQsIFN0YWNrLCBTaXplLCBMYXp5LCBWYWxpZGF0aW9uRXJyb3IsIE5hbWVzLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBVc2VyRW5naW5lIH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgSVNlcnZlcmxlc3NDYWNoZSwgU2VydmVybGVzc0NhY2hlQmFzZSwgQ2FjaGVFbmdpbmUgfSBmcm9tICcuL3NlcnZlcmxlc3MtY2FjaGUtYmFzZSc7XG5pbXBvcnQgeyBJVXNlckdyb3VwIH0gZnJvbSAnLi91c2VyLWdyb3VwJztcblxuY29uc3QgRUxBU1RJQ0FDSEVfU0VSVkVSTEVTU0NBQ0hFX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL2F3cy1lbGFzdGljYWNoZS5TZXJ2ZXJsZXNzQ2FjaGUnKTtcblxuLyoqXG4gKiBVbml0IHR5cGVzIGZvciBkYXRhIHN0b3JhZ2UgdXNhZ2UgbGltaXRzXG4gKi9cbmVudW0gRGF0YVN0b3JhZ2VVbml0IHtcbiAgLyoqXG4gICAqIEdpZ2FieXRlc1xuICAgKi9cbiAgR0lHQUJZVEVTID0gJ0dCJyxcbn1cblxuLyoqXG4gKiBNaW5pbXVtIGRhdGEgc3RvcmFnZSBzaXplIGluIEdCIGZvciBTZXJ2ZXJsZXNzQ2FjaGVcbiAqL1xuY29uc3QgREFUQV9TVE9SQUdFX01JTl9HQiA9IDE7XG4vKipcbiAqIE1heGltdW0gZGF0YSBzdG9yYWdlIHNpemUgaW4gR0IgZm9yIFNlcnZlcmxlc3NDYWNoZVxuICovXG5jb25zdCBEQVRBX1NUT1JBR0VfTUFYX0dCID0gNTAwMDtcbi8qKlxuICogTWluaW11bSByZXF1ZXN0IHJhdGUgbGltaXQgaW4gRUNQVXMgcGVyIHNlY29uZCBmb3IgU2VydmVybGVzc0NhY2hlXG4gKi9cbmNvbnN0IFJFUVVFU1RfUkFURV9NSU5fRUNQVSA9IDEwMDA7XG4vKipcbiAqIE1heGltdW0gcmVxdWVzdCByYXRlIGxpbWl0IGluIEVDUFVzIHBlciBzZWNvbmQgZm9yIFNlcnZlcmxlc3NDYWNoZVxuICovXG5jb25zdCBSRVFVRVNUX1JBVEVfTUFYX0VDUFUgPSAxNTAwMDAwMDtcblxuLyoqXG4gKiBVc2FnZSBsaW1pdHMgY29uZmlndXJhdGlvbiBmb3IgU2VydmVybGVzc0NhY2hlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FjaGVVc2FnZUxpbWl0c1Byb3BlcnR5IHtcbiAgLyoqXG4gICAqIE1pbmltdW0gZGF0YSBzdG9yYWdlIHNpemUgKDEgR0IpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbWluaW11bSBsaW1pdFxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YVN0b3JhZ2VNaW5pbXVtU2l6ZT86IFNpemU7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGRhdGEgc3RvcmFnZSBzaXplICg1MDAwIEdCKVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIG1heGltdW0gbGltaXRcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFTdG9yYWdlTWF4aW11bVNpemU/OiBTaXplO1xuICAvKipcbiAgICogTWluaW11bSByZXF1ZXN0IHJhdGUgbGltaXQgKDEwMDAgRUNQVXMgcGVyIHNlY29uZClcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBtaW5pbXVtIGxpbWl0XG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0UmF0ZUxpbWl0TWluaW11bT86IG51bWJlcjtcbiAgLyoqXG4gICAqIE1heGltdW0gcmVxdWVzdCByYXRlIGxpbWl0ICgxNTAwMDAwMCBFQ1BVcyBwZXIgc2Vjb25kKVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIG1heGltdW0gbGltaXRcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RSYXRlTGltaXRNYXhpbXVtPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEJhY2t1cCBjb25maWd1cmF0aW9uIGZvciBTZXJ2ZXJsZXNzQ2FjaGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYWNrdXBTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBBdXRvbWF0ZWQgZGFpbHkgYmFja3VwIFVUQyB0aW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYXV0b21hdGVkIGJhY2t1cHNcbiAgICovXG4gIHJlYWRvbmx5IGJhY2t1cFRpbWU/OiBldmVudHMuU2NoZWR1bGU7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgZGF5cyB0byByZXRhaW4gYmFja3VwcyAoMS0zNSlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBCYWNrdXBzIGFyZSBub3QgcmV0YWluZWRcbiAgICovXG4gIHJlYWRvbmx5IGJhY2t1cFJldGVudGlvbkxpbWl0PzogbnVtYmVyO1xuICAvKipcbiAgICogTmFtZSBmb3IgdGhlIGZpbmFsIGJhY2t1cCB0YWtlbiBiZWZvcmUgZGVsZXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaW5hbCBiYWNrdXBcbiAgICovXG4gIHJlYWRvbmx5IGJhY2t1cE5hbWVCZWZvcmVEZWxldGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEFSTnMgb2YgYmFja3VwcyBmcm9tIHdoaWNoIHRvIHJlc3RvcmUgZGF0YSBpbnRvIHRoZSBuZXcgY2FjaGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBDcmVhdGUgYSBuZXcgY2FjaGUgd2l0aCBubyBleGlzdGluZyBkYXRhXG4gICAqL1xuICByZWFkb25seSBiYWNrdXBBcm5zVG9SZXN0b3JlPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBTZXJ2ZXJsZXNzQ2FjaGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJsZXNzQ2FjaGVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgY2FjaGUgZW5naW5lIGNvbWJpbmVkIHdpdGggdGhlIHZlcnNpb25cbiAgICogRW51bSBvcHRpb25zOiBWQUxLRVlfREVGQVVMVCwgVkFMS0VZXzcsIFZBTEtFWV84LCBSRURJU19ERUZBVUxULCBNRU1DQUNIRURfREVGQVVMVFxuICAgKiBUaGUgZGVmYXVsdCBvcHRpb25zIGJyaW5nIHRoZSBsYXRlc3QgdmVyc2lvbnMgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB3aGVuIG5vdCBwcm92aWRlZCwgdGhlIGRlZmF1bHQgZW5naW5lIHdvdWxkIGJlIFZhbGtleSwgbGF0ZXN0IHZlcnNpb24gYXZhaWxhYmxlIChWQUxLRVlfREVGQVVMVClcbiAgICovXG4gIHJlYWRvbmx5IGVuZ2luZT86IENhY2hlRW5naW5lO1xuICAvKipcbiAgICogTmFtZSBmb3IgdGhlIHNlcnZlcmxlc3MgY2FjaGVcbiAgICpcbiAgICogQGRlZmF1bHQgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZSBieSBSZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVybGVzc0NhY2hlTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gZm9yIHRoZSBjYWNoZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFVzYWdlIGxpbWl0cyBmb3IgdGhlIGNhY2hlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdXNhZ2UgbGltaXRzXG4gICAqL1xuICByZWFkb25seSBjYWNoZVVzYWdlTGltaXRzPzogQ2FjaGVVc2FnZUxpbWl0c1Byb3BlcnR5O1xuICAvKipcbiAgICogQmFja3VwIGNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBiYWNrdXBzIGNvbmZpZ3VyZWRcbiAgICovXG4gIHJlYWRvbmx5IGJhY2t1cD86IEJhY2t1cFNldHRpbmdzO1xuICAvKipcbiAgICogS01TIGtleSBmb3IgZW5jcnlwdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFNlcnZpY2UgbWFuYWdlZCBlbmNyeXB0aW9uIChBV1Mgb3duZWQgS01TIGtleSlcbiAgICovXG4gIHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuICAvKipcbiAgICogVGhlIFZQQyB0byBwbGFjZSB0aGUgY2FjaGUgaW5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG4gIC8qKlxuICAgKiBXaGljaCBzdWJuZXRzIHRvIHBsYWNlIHRoZSBjYWNoZSBpblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFByaXZhdGUgc3VibmV0cyB3aXRoIGVncmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cHMgZm9yIHRoZSBjYWNoZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgbmV3IHNlY3VyaXR5IGdyb3VwIGlzIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzPzogZWMyLklTZWN1cml0eUdyb3VwW107XG4gIC8qKlxuICAgKiBVc2VyIGdyb3VwIGZvciBhY2Nlc3MgY29udHJvbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHVzZXIgZ3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJHcm91cD86IElVc2VyR3JvdXA7XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyB0aGF0IGNhbiBiZSBzcGVjaWZpZWQgd2hlbiBpbXBvcnRpbmcgYSBTZXJ2ZXJsZXNzQ2FjaGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJsZXNzQ2FjaGVBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBjYWNoZSBlbmdpbmUgdXNlZCBieSB0aGlzIGNhY2hlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZW5naW5lIHR5cGUgaXMgdW5rbm93blxuICAgKi9cbiAgcmVhZG9ubHkgZW5naW5lPzogQ2FjaGVFbmdpbmU7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VydmVybGVzcyBjYWNoZVxuICAgKlxuICAgKiBPbmUgb2YgYHNlcnZlcmxlc3NDYWNoZU5hbWVgIG9yIGBzZXJ2ZXJsZXNzQ2FjaGVBcm5gIGlzIHJlcXVpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlcml2ZWQgZnJvbSBzZXJ2ZXJsZXNzQ2FjaGVBcm5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlcmxlc3NDYWNoZU5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBzZXJ2ZXJsZXNzIGNhY2hlXG4gICAqXG4gICAqIE9uZSBvZiBgc2VydmVybGVzc0NhY2hlTmFtZWAgb3IgYHNlcnZlcmxlc3NDYWNoZUFybmAgaXMgcmVxdWlyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVyaXZlZCBmcm9tIHNlcnZlcmxlc3NDYWNoZU5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlcmxlc3NDYWNoZUFybj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBUk5zIG9mIGJhY2t1cHMgcmVzdG9yZWQgaW4gdGhlIGNhY2hlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYmFja3VwcyBhcmUgdW5rbm93blxuICAgKi9cbiAgcmVhZG9ubHkgYmFja3VwQXJuc1RvUmVzdG9yZT86IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIEtNUyBrZXkgdXNlZCBmb3IgZW5jcnlwdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGVuY3J5cHRpb24ga2V5IGlzIHVua25vd25cbiAgICovXG4gIHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuICAvKipcbiAgICogVGhlIFZQQyB0aGlzIGNhY2hlIGlzIGRlcGxveWVkIGluXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVlBDIGlzIHVua25vd25cbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IGVjMi5JVnBjO1xuICAvKipcbiAgICogVGhlIHN1Ym5ldHMgdGhpcyBjYWNoZSBpcyBkZXBsb3llZCBpblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHN1Ym5ldHMgYXJlIHVua25vd25cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldHM/OiBlYzIuSVN1Ym5ldFtdO1xuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGdyb3VwcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBjYWNoZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHNlY3VyaXR5IGdyb3VwcyBhcmUgdW5rbm93blxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcbiAgLyoqXG4gICAqIFRoZSB1c2VyIGdyb3VwIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNhY2hlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXNlciBncm91cCBpcyB1bmtub3duXG4gICAqL1xuICByZWFkb25seSB1c2VyR3JvdXA/OiBJVXNlckdyb3VwO1xufVxuXG4vKipcbiAqIEEgc2VydmVybGVzcyBFbGFzdGlDYWNoZSBjYWNoZVxuICpcbiAqIEByZXNvdXJjZSBBV1M6OkVsYXN0aUNhY2hlOjpTZXJ2ZXJsZXNzQ2FjaGVcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFNlcnZlcmxlc3NDYWNoZSBleHRlbmRzIFNlcnZlcmxlc3NDYWNoZUJhc2Uge1xuICAvKipcbiAgICogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdhd3MtY2RrLWxpYi5hd3MtZWxhc3RpY2FjaGUuU2VydmVybGVzc0NhY2hlJztcblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIG9iamVjdCBpcyBhIGBTZXJ2ZXJsZXNzQ2FjaGVgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzU2VydmVybGVzc0NhY2hlKHg6IGFueSk6IHggaXMgU2VydmVybGVzc0NhY2hlIHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgKHgpID09PSAnb2JqZWN0JyAmJiBFTEFTVElDQUNIRV9TRVJWRVJMRVNTQ0FDSEVfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIHNlcnZlcmxlc3MgY2FjaGUgYnkgbmFtZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIHNlcnZlcmxlc3NDYWNoZU5hbWUgVGhlIG5hbWUgb2YgdGhlIGV4aXN0aW5nIHNlcnZlcmxlc3MgY2FjaGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVNlcnZlcmxlc3NDYWNoZU5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgc2VydmVybGVzc0NhY2hlTmFtZTogc3RyaW5nKTogSVNlcnZlcmxlc3NDYWNoZSB7XG4gICAgcmV0dXJuIFNlcnZlcmxlc3NDYWNoZS5mcm9tU2VydmVybGVzc0NhY2hlQXR0cmlidXRlcyhzY29wZSwgaWQsIHsgc2VydmVybGVzc0NhY2hlTmFtZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3Rpbmcgc2VydmVybGVzcyBjYWNoZSBieSBBUk5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYClcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lXG4gICAqIEBwYXJhbSBzZXJ2ZXJsZXNzQ2FjaGVBcm4gVGhlIEFSTiBvZiB0aGUgZXhpc3Rpbmcgc2VydmVybGVzcyBjYWNoZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU2VydmVybGVzc0NhY2hlQXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHNlcnZlcmxlc3NDYWNoZUFybjogc3RyaW5nKTogSVNlcnZlcmxlc3NDYWNoZSB7XG4gICAgcmV0dXJuIFNlcnZlcmxlc3NDYWNoZS5mcm9tU2VydmVybGVzc0NhY2hlQXR0cmlidXRlcyhzY29wZSwgaWQsIHsgc2VydmVybGVzc0NhY2hlQXJuIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBzZXJ2ZXJsZXNzIGNhY2hlIHVzaW5nIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYClcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lXG4gICAqIEBwYXJhbSBhdHRycyBBIGBTZXJ2ZXJsZXNzQ2FjaGVBdHRyaWJ1dGVzYCBvYmplY3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVNlcnZlcmxlc3NDYWNoZUF0dHJpYnV0ZXMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IFNlcnZlcmxlc3NDYWNoZUF0dHJpYnV0ZXMpOiBJU2VydmVybGVzc0NhY2hlIHtcbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuICAgIGxldCBhcm46IHN0cmluZztcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHNjb3BlKTtcblxuICAgIGlmIChhdHRycy5zZXJ2ZXJsZXNzQ2FjaGVBcm4gJiYgYXR0cnMuc2VydmVybGVzc0NhY2hlTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignT25seSBvbmUgb2Ygc2VydmVybGVzc0NhY2hlQXJuIG9yIHNlcnZlcmxlc3NDYWNoZU5hbWUgY2FuIGJlIHByb3ZpZGVkLicsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBpZiAoYXR0cnMuc2VydmVybGVzc0NhY2hlQXJuKSB7XG4gICAgICBhcm4gPSBhdHRycy5zZXJ2ZXJsZXNzQ2FjaGVBcm47XG4gICAgICBjb25zdCBleHRyYWN0ZWRTZXJ2ZXJsZXNzQ2FjaGVOYW1lID0gc3RhY2suc3BsaXRBcm4oYXR0cnMuc2VydmVybGVzc0NhY2hlQXJuLCBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lO1xuICAgICAgaWYgKCFleHRyYWN0ZWRTZXJ2ZXJsZXNzQ2FjaGVOYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ1VuYWJsZSB0byBleHRyYWN0IHNlcnZlcmxlc3MgY2FjaGUgbmFtZSBmcm9tIEFSTi4nLCBzY29wZSk7XG4gICAgICB9XG4gICAgICBuYW1lID0gZXh0cmFjdGVkU2VydmVybGVzc0NhY2hlTmFtZTtcbiAgICB9IGVsc2UgaWYgKGF0dHJzLnNlcnZlcmxlc3NDYWNoZU5hbWUpIHtcbiAgICAgIG5hbWUgPSBhdHRycy5zZXJ2ZXJsZXNzQ2FjaGVOYW1lO1xuICAgICAgYXJuID0gc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2VsYXN0aWNhY2hlJyxcbiAgICAgICAgcmVzb3VyY2U6ICdzZXJ2ZXJsZXNzY2FjaGUnLFxuICAgICAgICByZXNvdXJjZU5hbWU6IGF0dHJzLnNlcnZlcmxlc3NDYWNoZU5hbWUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignT25lIG9mIHNlcnZlcmxlc3NDYWNoZU5hbWUgb3Igc2VydmVybGVzc0NhY2hlQXJuIGlzIHJlcXVpcmVkLicsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBTZXJ2ZXJsZXNzQ2FjaGVCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBlbmdpbmUgPSBhdHRycy5lbmdpbmU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgc2VydmVybGVzc0NhY2hlTmFtZTogc3RyaW5nO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHNlcnZlcmxlc3NDYWNoZUFybjogc3RyaW5nO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGJhY2t1cEFybnNUb1Jlc3RvcmUgPSBhdHRycy5iYWNrdXBBcm5zVG9SZXN0b3JlO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGttc0tleSA9IGF0dHJzLmttc0tleTtcbiAgICAgIHB1YmxpYyByZWFkb25seSB2cGMgPSBhdHRycy52cGM7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgc3VibmV0cyA9IGF0dHJzLnN1Ym5ldHM7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHMgPSBhdHRycy5zZWN1cml0eUdyb3VwcztcbiAgICAgIHB1YmxpYyByZWFkb25seSB1c2VyR3JvdXAgPSBhdHRycy51c2VyR3JvdXA7XG5cbiAgICAgIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uczogZWMyLkNvbm5lY3Rpb25zO1xuXG4gICAgICBjb25zdHJ1Y3RvcihzZXJ2ZXJsZXNzQ2FjaGVBcm46IHN0cmluZywgc2VydmVybGVzc0NhY2hlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgICAgIHRoaXMuc2VydmVybGVzc0NhY2hlQXJuID0gc2VydmVybGVzc0NhY2hlQXJuO1xuICAgICAgICB0aGlzLnNlcnZlcmxlc3NDYWNoZU5hbWUgPSBzZXJ2ZXJsZXNzQ2FjaGVOYW1lO1xuXG4gICAgICAgIGlmICh0aGlzLmVuZ2luZSkge1xuICAgICAgICAgIGxldCBkZWZhdWx0UG9ydDogZWMyLlBvcnQ7XG4gICAgICAgICAgc3dpdGNoICh0aGlzLmVuZ2luZSkge1xuICAgICAgICAgICAgY2FzZSBDYWNoZUVuZ2luZS5WQUxLRVlfTEFURVNUOlxuICAgICAgICAgICAgY2FzZSBDYWNoZUVuZ2luZS5WQUxLRVlfNzpcbiAgICAgICAgICAgIGNhc2UgQ2FjaGVFbmdpbmUuVkFMS0VZXzg6XG4gICAgICAgICAgICBjYXNlIENhY2hlRW5naW5lLlJFRElTX0xBVEVTVDpcbiAgICAgICAgICAgIGNhc2UgQ2FjaGVFbmdpbmUuUkVESVNfNzpcbiAgICAgICAgICAgICAgLy8gRG9jdW1lbnQgc2hvd2luZyB0aGUgZGVmYXVsdCBwb3J0XG4gICAgICAgICAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FbGFzdGlDYWNoZS9sYXRlc3QvZGcvc2V0LXVwLmh0bWwjZWxhc3RpY2FjaGUtaW5zdGFsbC1ncmFudC1hY2Nlc3MtVlBOXG4gICAgICAgICAgICAgIGRlZmF1bHRQb3J0ID0gZWMyLlBvcnQudGNwKDYzNzkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ2FjaGVFbmdpbmUuTUVNQ0FDSEVEX0xBVEVTVDpcbiAgICAgICAgICAgIGNhc2UgQ2FjaGVFbmdpbmUuTUVNQ0FDSEVEXzFfNjpcbiAgICAgICAgICAgICAgLy8gRG9jdW1lbnQgc2hvd2luZyB0aGUgZGVmYXVsdCBwb3J0XG4gICAgICAgICAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FbGFzdGlDYWNoZS9sYXRlc3QvZGcvc2V0LXVwLmh0bWwjZWxhc3RpY2FjaGUtaW5zdGFsbC1ncmFudC1hY2Nlc3MtVlBOXG4gICAgICAgICAgICAgIGRlZmF1bHRQb3J0ID0gZWMyLlBvcnQudGNwKDExMjExKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBVbnN1cHBvcnRlZCBjYWNoZSBlbmdpbmU6ICR7dGhpcy5lbmdpbmV9YCwgc2NvcGUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSBuZXcgZWMyLkNvbm5lY3Rpb25zKHtcbiAgICAgICAgICAgIHNlY3VyaXR5R3JvdXBzOiB0aGlzLnNlY3VyaXR5R3JvdXBzLFxuICAgICAgICAgICAgZGVmYXVsdFBvcnQ6IGRlZmF1bHRQb3J0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSBuZXcgZWMyLkNvbm5lY3Rpb25zKHtcbiAgICAgICAgICAgIHNlY3VyaXR5R3JvdXBzOiB0aGlzLnNlY3VyaXR5R3JvdXBzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoYXJuLCBuYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBlbmdpbmU/OiBDYWNoZUVuZ2luZTtcbiAgcHVibGljIHJlYWRvbmx5IHNlcnZlcmxlc3NDYWNoZU5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGJhY2t1cEFybnNUb1Jlc3RvcmU/OiBzdHJpbmdbXTtcbiAgcHVibGljIHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuICBwdWJsaWMgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG4gIHB1YmxpYyByZWFkb25seSBzdWJuZXRzPzogZWMyLklTdWJuZXRbXTtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzPzogZWMyLklTZWN1cml0eUdyb3VwW107XG4gIHB1YmxpYyByZWFkb25seSB1c2VyR3JvdXA/OiBJVXNlckdyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBzZXJ2ZXJsZXNzIGNhY2hlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZXJ2ZXJsZXNzQ2FjaGVBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBlbmRwb2ludCBhZGRyZXNzIG9mIHRoZSBzZXJ2ZXJsZXNzIGNhY2hlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZXJ2ZXJsZXNzQ2FjaGVFbmRwb2ludEFkZHJlc3M6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBlbmRwb2ludCBwb3J0IG9mIHRoZSBzZXJ2ZXJsZXNzIGNhY2hlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZXJ2ZXJsZXNzQ2FjaGVFbmRwb2ludFBvcnQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSByZWFkZXIgZW5kcG9pbnQgYWRkcmVzcyBvZiB0aGUgc2VydmVybGVzcyBjYWNoZVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VydmVybGVzc0NhY2hlUmVhZGVyRW5kcG9pbnRBZGRyZXNzOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmVhZGVyIGVuZHBvaW50IHBvcnQgb2YgdGhlIHNlcnZlcmxlc3MgY2FjaGVcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlcnZlcmxlc3NDYWNoZVJlYWRlckVuZHBvaW50UG9ydDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBzZXJ2ZXJsZXNzIGNhY2hlXG4gICAqIENhbiBiZSAnQ1JFQVRJTkcnLCAnQVZBSUxBQkxFJywgJ0RFTEVUSU5HJywgJ0NSRUFURS1GQUlMRUQnLCAnTU9ESUZZSU5HJ1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VydmVybGVzc0NhY2hlU3RhdHVzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFjY2VzcyB0byBuZXR3b3JrIGNvbm5lY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VydmVybGVzc0NhY2hlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHt9KTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5lbmdpbmUgPSBwcm9wcy5lbmdpbmUgPz8gQ2FjaGVFbmdpbmUuVkFMS0VZX0xBVEVTVDtcbiAgICB0aGlzLnNlcnZlcmxlc3NDYWNoZU5hbWUgPSBwcm9wcy5zZXJ2ZXJsZXNzQ2FjaGVOYW1lID8/IExhenkuc3RyaW5nKHtcbiAgICAgIHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogNDAgfSksXG4gICAgfSk7XG4gICAgdGhpcy5rbXNLZXkgPSBwcm9wcy5rbXNLZXk7XG4gICAgdGhpcy52cGMgPSBwcm9wcy52cGM7XG4gICAgdGhpcy51c2VyR3JvdXAgPSBwcm9wcy51c2VyR3JvdXA7XG5cbiAgICB0aGlzLnZhbGlkYXRlRGVzY3JpcHRpb24ocHJvcHMuZGVzY3JpcHRpb24pO1xuICAgIHRoaXMudmFsaWRhdGVEYXRhU3RvcmFnZUxpbWl0cyhwcm9wcy5jYWNoZVVzYWdlTGltaXRzKTtcbiAgICB0aGlzLnZhbGlkYXRlUmVxdWVzdFJhdGVMaW1pdHMocHJvcHMuY2FjaGVVc2FnZUxpbWl0cyk7XG4gICAgdGhpcy52YWxpZGF0ZUJhY2t1cFNldHRpbmdzKHByb3BzLmJhY2t1cCk7XG4gICAgdGhpcy52YWxpZGF0ZVVzZXJHcm91cENvbXBhdGliaWxpdHkodGhpcy5lbmdpbmUsIHRoaXMudXNlckdyb3VwKTtcblxuICAgIGNvbnN0IHN1Ym5ldENvbmZpZyA9IHRoaXMuY29uZmlndXJlU3VibmV0cyhwcm9wcyk7XG4gICAgY29uc3Qgc3VibmV0SWRzID0gc3VibmV0Q29uZmlnLnN1Ym5ldElkcztcbiAgICB0aGlzLnN1Ym5ldHMgPSBzdWJuZXRDb25maWcuc3VibmV0cztcblxuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXBDb25maWcgPSB0aGlzLmNvbmZpZ3VyZVNlY3VyaXR5R3JvdXBzKHByb3BzKTtcbiAgICBjb25zdCBzZWN1cml0eUdyb3VwSWRzID0gc2VjdXJpdHlHcm91cENvbmZpZy5zZWN1cml0eUdyb3VwSWRzO1xuICAgIHRoaXMuc2VjdXJpdHlHcm91cHMgPSBzZWN1cml0eUdyb3VwQ29uZmlnLnNlY3VyaXR5R3JvdXBzO1xuXG4gICAgY29uc3QgW2VuZ2luZSwgdmVyc2lvbl0gPSB0aGlzLmVuZ2luZS5zcGxpdCgnXycpO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ2ZuU2VydmVybGVzc0NhY2hlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGVuZ2luZTogZW5naW5lLFxuICAgICAgbWFqb3JFbmdpbmVWZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgc2VydmVybGVzc0NhY2hlTmFtZTogdGhpcy5zZXJ2ZXJsZXNzQ2FjaGVOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgY2FjaGVVc2FnZUxpbWl0czogdGhpcy5yZW5kZXJDYWNoZVVzYWdlTGltaXRzKHByb3BzLmNhY2hlVXNhZ2VMaW1pdHMpLFxuICAgICAgZGFpbHlTbmFwc2hvdFRpbWU6IHByb3BzLmJhY2t1cD8uYmFja3VwVGltZSA/IHRoaXMuZm9ybWF0QmFja3VwVGltZShwcm9wcy5iYWNrdXAuYmFja3VwVGltZSkgOiB1bmRlZmluZWQsXG4gICAgICBzbmFwc2hvdFJldGVudGlvbkxpbWl0OiBwcm9wcy5iYWNrdXA/LmJhY2t1cFJldGVudGlvbkxpbWl0LFxuICAgICAgZmluYWxTbmFwc2hvdE5hbWU6IHByb3BzLmJhY2t1cD8uYmFja3VwTmFtZUJlZm9yZURlbGV0aW9uLFxuICAgICAgc25hcHNob3RBcm5zVG9SZXN0b3JlOiBwcm9wcy5iYWNrdXA/LmJhY2t1cEFybnNUb1Jlc3RvcmUsXG4gICAgICBrbXNLZXlJZDogcHJvcHMua21zS2V5Py5rZXlJZCxcbiAgICAgIHN1Ym5ldElkczogc3VibmV0SWRzLFxuICAgICAgc2VjdXJpdHlHcm91cElkczogc2VjdXJpdHlHcm91cElkcyxcbiAgICAgIHVzZXJHcm91cElkOiBwcm9wcy51c2VyR3JvdXA/LnVzZXJHcm91cE5hbWUsXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMudXNlckdyb3VwKSB7XG4gICAgICBjb25zdCB1c2VyR3JvdXBSZXNvdXJjZSA9IHByb3BzLnVzZXJHcm91cC5ub2RlLmZpbmRDaGlsZCgnUmVzb3VyY2UnKSBhcyBDZm5Vc2VyR3JvdXA7XG4gICAgICByZXNvdXJjZS5hZGREZXBlbmRlbmN5KHVzZXJHcm91cFJlc291cmNlKTtcbiAgICB9XG5cbiAgICB0aGlzLmJhY2t1cEFybnNUb1Jlc3RvcmUgPSByZXNvdXJjZS5zbmFwc2hvdEFybnNUb1Jlc3RvcmU7XG4gICAgdGhpcy5zZXJ2ZXJsZXNzQ2FjaGVBcm4gPSByZXNvdXJjZS5hdHRyQXJuO1xuICAgIHRoaXMuc2VydmVybGVzc0NhY2hlRW5kcG9pbnRBZGRyZXNzID0gcmVzb3VyY2UuYXR0ckVuZHBvaW50QWRkcmVzcztcbiAgICB0aGlzLnNlcnZlcmxlc3NDYWNoZUVuZHBvaW50UG9ydCA9IHJlc291cmNlLmF0dHJFbmRwb2ludFBvcnQ7XG4gICAgdGhpcy5zZXJ2ZXJsZXNzQ2FjaGVSZWFkZXJFbmRwb2ludEFkZHJlc3MgPSByZXNvdXJjZS5hdHRyUmVhZGVyRW5kcG9pbnRBZGRyZXNzO1xuICAgIHRoaXMuc2VydmVybGVzc0NhY2hlUmVhZGVyRW5kcG9pbnRQb3J0ID0gcmVzb3VyY2UuYXR0clJlYWRlckVuZHBvaW50UG9ydDtcbiAgICB0aGlzLnNlcnZlcmxlc3NDYWNoZVN0YXR1cyA9IHJlc291cmNlLmF0dHJTdGF0dXM7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb25zID0gbmV3IGVjMi5Db25uZWN0aW9ucyh7XG4gICAgICBzZWN1cml0eUdyb3VwczogdGhpcy5zZWN1cml0eUdyb3VwcyxcbiAgICAgIGRlZmF1bHRQb3J0OiBlYzIuUG9ydC50Y3AoVG9rZW4uYXNOdW1iZXIodGhpcy5zZXJ2ZXJsZXNzQ2FjaGVFbmRwb2ludFBvcnQpKSxcbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBFTEFTVElDQUNIRV9TRVJWRVJMRVNTQ0FDSEVfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGRlc2NyaXB0aW9uIG1lZXRzIEFXUyByZXF1aXJlbWVudHNcbiAgICpcbiAgICogQHBhcmFtIGRlc2NyaXB0aW9uIFRoZSBkZXNjcmlwdGlvbiB0byB2YWxpZGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFkZXNjcmlwdGlvbiB8fCBUb2tlbi5pc1VucmVzb2x2ZWQoZGVzY3JpcHRpb24pKSByZXR1cm47XG5cbiAgICBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoID4gMjU1KSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBEZXNjcmlwdGlvbiBtdXN0IG5vdCBleGNlZWQgMjU1IGNoYXJhY3RlcnMsIGN1cnJlbnRseSBoYXMgJHtkZXNjcmlwdGlvbi5sZW5ndGh9YCwgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKGRlc2NyaXB0aW9uLmluY2x1ZGVzKCc8JykgfHwgZGVzY3JpcHRpb24uaW5jbHVkZXMoJz4nKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignRGVzY3JpcHRpb24gbXVzdCBub3QgY29udGFpbiA8IG9yID4gY2hhcmFjdGVycycsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBkYXRhIHN0b3JhZ2Ugc2l6ZSBsaW1pdHNcbiAgICpcbiAgICogQHBhcmFtIGxpbWl0cyBUaGUgdXNhZ2UgbGltaXRzIGNvbnRhaW5pbmcgZGF0YSBzdG9yYWdlIHNldHRpbmdzXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlRGF0YVN0b3JhZ2VMaW1pdHMobGltaXRzPzogQ2FjaGVVc2FnZUxpbWl0c1Byb3BlcnR5KTogdm9pZCB7XG4gICAgaWYgKCFsaW1pdHMpIHJldHVybjtcblxuICAgIGlmIChsaW1pdHMuZGF0YVN0b3JhZ2VNaW5pbXVtU2l6ZSAmJiAhbGltaXRzLmRhdGFTdG9yYWdlTWluaW11bVNpemUuaXNVbnJlc29sdmVkKCkgJiZcbiAgICAgIChsaW1pdHMuZGF0YVN0b3JhZ2VNaW5pbXVtU2l6ZS50b0dpYmlieXRlcygpIDwgREFUQV9TVE9SQUdFX01JTl9HQiB8fCBsaW1pdHMuZGF0YVN0b3JhZ2VNaW5pbXVtU2l6ZS50b0dpYmlieXRlcygpID4gREFUQV9TVE9SQUdFX01BWF9HQikpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0RhdGEgc3RvcmFnZSBtaW5pbXVtIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA1MDAwIEdCLicsIHRoaXMpO1xuICAgIH1cbiAgICBpZiAobGltaXRzLmRhdGFTdG9yYWdlTWF4aW11bVNpemUgJiYgIWxpbWl0cy5kYXRhU3RvcmFnZU1heGltdW1TaXplLmlzVW5yZXNvbHZlZCgpICYmXG4gICAgICAobGltaXRzLmRhdGFTdG9yYWdlTWF4aW11bVNpemUudG9HaWJpYnl0ZXMoKSA8IERBVEFfU1RPUkFHRV9NSU5fR0IgfHwgbGltaXRzLmRhdGFTdG9yYWdlTWF4aW11bVNpemUudG9HaWJpYnl0ZXMoKSA+IERBVEFfU1RPUkFHRV9NQVhfR0IpKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdEYXRhIHN0b3JhZ2UgbWF4aW11bSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNTAwMCBHQi4nLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAobGltaXRzLmRhdGFTdG9yYWdlTWluaW11bVNpemUgJiYgbGltaXRzLmRhdGFTdG9yYWdlTWF4aW11bVNpemUgJiZcbiAgICAgICFsaW1pdHMuZGF0YVN0b3JhZ2VNaW5pbXVtU2l6ZS5pc1VucmVzb2x2ZWQoKSAmJiAhbGltaXRzLmRhdGFTdG9yYWdlTWF4aW11bVNpemUuaXNVbnJlc29sdmVkKCkgJiZcbiAgICAgIGxpbWl0cy5kYXRhU3RvcmFnZU1pbmltdW1TaXplLnRvR2liaWJ5dGVzKCkgPiBsaW1pdHMuZGF0YVN0b3JhZ2VNYXhpbXVtU2l6ZS50b0dpYmlieXRlcygpKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdEYXRhIHN0b3JhZ2UgbWluaW11bSBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIG1heGltdW0nLCB0aGlzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgcmVxdWVzdCByYXRlIGxpbWl0c1xuICAgKlxuICAgKiBAcGFyYW0gbGltaXRzIFRoZSB1c2FnZSBsaW1pdHMgY29udGFpbmluZyByZXF1ZXN0IHJhdGUgc2V0dGluZ3NcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVSZXF1ZXN0UmF0ZUxpbWl0cyhsaW1pdHM/OiBDYWNoZVVzYWdlTGltaXRzUHJvcGVydHkpOiB2b2lkIHtcbiAgICBpZiAoIWxpbWl0cykgcmV0dXJuO1xuXG4gICAgaWYgKGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWluaW11bSAhPT0gdW5kZWZpbmVkICYmICFUb2tlbi5pc1VucmVzb2x2ZWQobGltaXRzLnJlcXVlc3RSYXRlTGltaXRNaW5pbXVtKSAmJlxuICAgICAgKGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWluaW11bSA8IFJFUVVFU1RfUkFURV9NSU5fRUNQVSB8fCBsaW1pdHMucmVxdWVzdFJhdGVMaW1pdE1pbmltdW0gPiBSRVFVRVNUX1JBVEVfTUFYX0VDUFUpKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdSZXF1ZXN0IHJhdGUgbWluaW11bSBtdXN0IGJlIGJldHdlZW4gMSwwMDAgYW5kIDE1LDAwMCwwMDAgRUNQVXMgcGVyIHNlY29uZCcsIHRoaXMpO1xuICAgIH1cbiAgICBpZiAobGltaXRzLnJlcXVlc3RSYXRlTGltaXRNYXhpbXVtICE9PSB1bmRlZmluZWQgJiYgIVRva2VuLmlzVW5yZXNvbHZlZChsaW1pdHMucmVxdWVzdFJhdGVMaW1pdE1heGltdW0pICYmXG4gICAgICAobGltaXRzLnJlcXVlc3RSYXRlTGltaXRNYXhpbXVtIDwgUkVRVUVTVF9SQVRFX01JTl9FQ1BVIHx8IGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWF4aW11bSA+IFJFUVVFU1RfUkFURV9NQVhfRUNQVSkpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ1JlcXVlc3QgcmF0ZSBtYXhpbXVtIG11c3QgYmUgYmV0d2VlbiAxLDAwMCBhbmQgMTUsMDAwLDAwMCBFQ1BVcyBwZXIgc2Vjb25kJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQobGltaXRzLnJlcXVlc3RSYXRlTGltaXRNaW5pbXVtKSAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWF4aW11bSkgJiZcbiAgICAgIGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWluaW11bSAhPT0gdW5kZWZpbmVkICYmIGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWF4aW11bSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBsaW1pdHMucmVxdWVzdFJhdGVMaW1pdE1pbmltdW0gPiBsaW1pdHMucmVxdWVzdFJhdGVMaW1pdE1heGltdW0pIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ1JlcXVlc3QgcmF0ZSBtaW5pbXVtIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gbWF4aW11bScsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBiYWNrdXAgc2V0dGluZ3MgbWVldCBBV1MgcmVxdWlyZW1lbnRzXG4gICAqXG4gICAqIEBwYXJhbSBiYWNrdXAgVGhlIGJhY2t1cCBzZXR0aW5ncyB0byB2YWxpZGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUJhY2t1cFNldHRpbmdzKGJhY2t1cD86IEJhY2t1cFNldHRpbmdzKTogdm9pZCB7XG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoYmFja3VwPy5iYWNrdXBSZXRlbnRpb25MaW1pdCkgJiYgYmFja3VwPy5iYWNrdXBSZXRlbnRpb25MaW1pdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBsaW1pdCA9IGJhY2t1cC5iYWNrdXBSZXRlbnRpb25MaW1pdDtcbiAgICAgIGlmIChsaW1pdCA8IDEgfHwgbGltaXQgPiAzNSkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdCYWNrdXAgcmV0ZW50aW9uIGxpbWl0IG11c3QgYmUgYmV0d2VlbiAxIGFuZCAzNSBkYXlzJywgdGhpcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoYmFja3VwPy5iYWNrdXBOYW1lQmVmb3JlRGVsZXRpb24pICYmIGJhY2t1cD8uYmFja3VwTmFtZUJlZm9yZURlbGV0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBiYWNrdXAuYmFja3VwTmFtZUJlZm9yZURlbGV0aW9uO1xuXG4gICAgICBpZiAoIS9eW2EtekEtWl0vLnRlc3QobmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignRmluYWwgYmFja3VwIG5hbWUgbXVzdCBiZWdpbiB3aXRoIGEgbGV0dGVyJywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghL15bYS16QS1aMC05LV0rJC8udGVzdChuYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdGaW5hbCBiYWNrdXAgbmFtZSBtdXN0IGNvbnRhaW4gb25seSBBU0NJSSBsZXR0ZXJzLCBkaWdpdHMsIGFuZCBoeXBoZW5zJywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChuYW1lLmVuZHNXaXRoKCctJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignRmluYWwgYmFja3VwIG5hbWUgbXVzdCBub3QgZW5kIHdpdGggYSBoeXBoZW4nLCB0aGlzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5hbWUuaW5jbHVkZXMoJy0tJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignRmluYWwgYmFja3VwIG5hbWUgbXVzdCBub3QgY29udGFpbiB0d28gY29uc2VjdXRpdmUgaHlwaGVucycsIHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB1c2VyIGdyb3VwIGNvbXBhdGliaWxpdHkgd2l0aCBjYWNoZSBlbmdpbmVcbiAgICpcbiAgICogQHBhcmFtIGVuZ2luZSBUaGUgY2FjaGUgZW5naW5lXG4gICAqIEBwYXJhbSB1c2VyR3JvdXAgVGhlIHVzZXIgZ3JvdXAgdG8gdmFsaWRhdGVcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVVc2VyR3JvdXBDb21wYXRpYmlsaXR5KGVuZ2luZTogQ2FjaGVFbmdpbmUsIHVzZXJHcm91cD86IElVc2VyR3JvdXApOiB2b2lkIHtcbiAgICBpZiAoIXVzZXJHcm91cCkgcmV0dXJuO1xuXG4gICAgaWYgKGVuZ2luZSA9PT0gQ2FjaGVFbmdpbmUuTUVNQ0FDSEVEX0xBVEVTVCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignVXNlciBncm91cHMgY2Fubm90IGJlIHVzZWQgd2l0aCBNZW1jYWNoZWQgZW5naW5lcy4gT25seSBSZWRpcyBhbmQgVmFsa2V5IGVuZ2luZXMgc3VwcG9ydCB1c2VyIGdyb3Vwcy4nLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAoZW5naW5lID09PSBDYWNoZUVuZ2luZS5SRURJU19MQVRFU1QgJiYgdXNlckdyb3VwLmVuZ2luZSAhPT0gVXNlckVuZ2luZS5SRURJUykge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignUmVkaXMgY2FjaGUgY2FuIG9ubHkgdXNlIFJlZGlzIHVzZXIgZ3JvdXBzLicsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgY2FjaGUgdXNhZ2UgbGltaXRzIGZvciBDbG91ZEZvcm1hdGlvblxuICAgKlxuICAgKiBAcGFyYW0gbGltaXRzIFRoZSB1c2FnZSBsaW1pdHMgdG8gcmVuZGVyXG4gICAqIEByZXR1cm5zIENsb3VkRm9ybWF0aW9uLWNvbXBhdGlibGUgdXNhZ2UgbGltaXRzIG9iamVjdCBvciB1bmRlZmluZWRcbiAgICovXG4gIHByaXZhdGUgcmVuZGVyQ2FjaGVVc2FnZUxpbWl0cyhsaW1pdHM/OiBDYWNoZVVzYWdlTGltaXRzUHJvcGVydHkpOiBhbnkge1xuICAgIGlmICghbGltaXRzKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgY2FjaGVVc2FnZUxpbWl0czogYW55ID0ge307XG5cbiAgICBpZiAobGltaXRzLmRhdGFTdG9yYWdlTWluaW11bVNpemUgIT09IHVuZGVmaW5lZCB8fCBsaW1pdHMuZGF0YVN0b3JhZ2VNYXhpbXVtU2l6ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjYWNoZVVzYWdlTGltaXRzLmRhdGFTdG9yYWdlID0ge1xuICAgICAgICB1bml0OiBEYXRhU3RvcmFnZVVuaXQuR0lHQUJZVEVTLFxuICAgICAgICAuLi4obGltaXRzLmRhdGFTdG9yYWdlTWluaW11bVNpemUgIT09IHVuZGVmaW5lZCAmJiB7IG1pbmltdW06IGxpbWl0cy5kYXRhU3RvcmFnZU1pbmltdW1TaXplLnRvR2liaWJ5dGVzKCkgfSksXG4gICAgICAgIC4uLihsaW1pdHMuZGF0YVN0b3JhZ2VNYXhpbXVtU2l6ZSAhPT0gdW5kZWZpbmVkICYmIHsgbWF4aW11bTogbGltaXRzLmRhdGFTdG9yYWdlTWF4aW11bVNpemUudG9HaWJpYnl0ZXMoKSB9KSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWluaW11bSAhPT0gdW5kZWZpbmVkIHx8IGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWF4aW11bSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjYWNoZVVzYWdlTGltaXRzLmVjcHVQZXJTZWNvbmQgPSB7XG4gICAgICAgIC4uLihsaW1pdHMucmVxdWVzdFJhdGVMaW1pdE1pbmltdW0gIT09IHVuZGVmaW5lZCAmJiB7IG1pbmltdW06IGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWluaW11bSB9KSxcbiAgICAgICAgLi4uKGxpbWl0cy5yZXF1ZXN0UmF0ZUxpbWl0TWF4aW11bSAhPT0gdW5kZWZpbmVkICYmIHsgbWF4aW11bTogbGltaXRzLnJlcXVlc3RSYXRlTGltaXRNYXhpbXVtIH0pLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoY2FjaGVVc2FnZUxpbWl0cykubGVuZ3RoID4gMCA/IGNhY2hlVXNhZ2VMaW1pdHMgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIHN1Ym5ldHMgZm9yIHRoZSBjYWNoZVxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIFNlcnZlcmxlc3NDYWNoZSBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIE9iamVjdCBjb250YWluaW5nIHN1Ym5ldCBJRHMgYW5kIHN1Ym5ldCBvYmplY3RzXG4gICAqL1xuICBwcml2YXRlIGNvbmZpZ3VyZVN1Ym5ldHMocHJvcHM6IFNlcnZlcmxlc3NDYWNoZVByb3BzKTogeyBzdWJuZXRJZHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkOyBzdWJuZXRzOiBlYzIuSVN1Ym5ldFtdIHwgdW5kZWZpbmVkIH0ge1xuICAgIGxldCBzZWxlY3RlZFN1Ym5ldHM7XG4gICAgaWYgKHByb3BzLnZwY1N1Ym5ldHMpIHtcbiAgICAgIHNlbGVjdGVkU3VibmV0cyA9IHByb3BzLnZwYy5zZWxlY3RTdWJuZXRzKHByb3BzLnZwY1N1Ym5ldHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxlY3RlZFN1Ym5ldHMgPSBwcm9wcy52cGMuc2VsZWN0U3VibmV0cyh7XG4gICAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1MsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VibmV0SWRzOiBzZWxlY3RlZFN1Ym5ldHMuc3VibmV0SWRzLmxlbmd0aCA+IDAgPyBzZWxlY3RlZFN1Ym5ldHMuc3VibmV0SWRzIDogdW5kZWZpbmVkLFxuICAgICAgc3VibmV0czogc2VsZWN0ZWRTdWJuZXRzLnN1Ym5ldHMubGVuZ3RoID4gMCA/IHNlbGVjdGVkU3VibmV0cy5zdWJuZXRzIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIHNlY3VyaXR5IGdyb3VwcyBmb3IgdGhlIGNhY2hlXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgU2VydmVybGVzc0NhY2hlIHByb3BlcnRpZXNcbiAgICogQHJldHVybnMgT2JqZWN0IGNvbnRhaW5pbmcgc2VjdXJpdHkgZ3JvdXAgSURzIGFuZCBzZWN1cml0eSBncm91cCBvYmplY3RzXG4gICAqL1xuICBwcml2YXRlIGNvbmZpZ3VyZVNlY3VyaXR5R3JvdXBzKHByb3BzOiBTZXJ2ZXJsZXNzQ2FjaGVQcm9wcyk6IHsgc2VjdXJpdHlHcm91cElkczogc3RyaW5nW107IHNlY3VyaXR5R3JvdXBzOiBlYzIuSVNlY3VyaXR5R3JvdXBbXSB9IHtcbiAgICBpZiAocHJvcHMuc2VjdXJpdHlHcm91cHMgJiYgcHJvcHMuc2VjdXJpdHlHcm91cHMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2VjdXJpdHlHcm91cElkczogcHJvcHMuc2VjdXJpdHlHcm91cHMubWFwKHNnID0+IHNnLnNlY3VyaXR5R3JvdXBJZCksXG4gICAgICAgIHNlY3VyaXR5R3JvdXBzOiBwcm9wcy5zZWN1cml0eUdyb3VwcyxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5ld1NlY3VyaXR5R3JvdXAgPSBuZXcgZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgJ1NlY3VyaXR5R3JvdXAnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBgU2VjdXJpdHkgZ3JvdXAgZm9yICR7dGhpcy5ub2RlLmlkfSBjYWNoZS5gLFxuICAgICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2VjdXJpdHlHcm91cElkczogW25ld1NlY3VyaXR5R3JvdXAuc2VjdXJpdHlHcm91cElkXSxcbiAgICAgICAgc2VjdXJpdHlHcm91cHM6IFtuZXdTZWN1cml0eUdyb3VwXSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCBzY2hlZHVsZSB0byBISDpNTSBmb3JtYXQgZm9yIGRhaWx5IGJhY2t1cHNcbiAgICpcbiAgICogQHBhcmFtIHNjaGVkdWxlIFRoZSBzY2hlZHVsZSB0byBmb3JtYXRcbiAgICogQHJldHVybnMgVGltZSBzdHJpbmcgaW4gSEg6TU0gZm9ybWF0XG4gICAqL1xuICBwcml2YXRlIGZvcm1hdEJhY2t1cFRpbWUoc2NoZWR1bGU6IGV2ZW50cy5TY2hlZHVsZSk6IHN0cmluZyB7XG4gICAgY29uc3QgV0lMRF9DQVJEID0gJyonO1xuICAgIGNvbnN0IFtcbiAgICAgIG1pbnV0ZUV4cHJlc3Npb24sIGhvdXJFeHByZXNzaW9uLFxuICAgICAgZGF5RXhwcmVzc2lvbiwgbW9udGhFeHByZXNzaW9uLFxuICAgICAgd2Vla0RheUV4cHJlc3Npb24sIHllYXJFeHByZXNzaW9uLFxuICAgIF0gPSBzY2hlZHVsZS5leHByZXNzaW9uU3RyaW5nLnN1YnN0cig1KS5zbGljZSgwLCAtMSkuc3BsaXQoJyAnKTtcblxuICAgIGlmIChkYXlFeHByZXNzaW9uICE9IFdJTERfQ0FSRCB8fCBtb250aEV4cHJlc3Npb24gIT0gV0lMRF9DQVJEIHx8IHllYXJFeHByZXNzaW9uICE9IFdJTERfQ0FSRCB8fCB3ZWVrRGF5RXhwcmVzc2lvbiAhPSAnPycpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0ZvciBub3csIG9ubHkgZGFpbHkgYmFja3VwIHRpbWUgaXMgYXZhaWxhYmxlIChzdXBwb3J0cyBqdXN0IGhvdXIgYW5kIG1pbnV0ZSkuIERheSwgbW9udGgsIHllYXIsIGFuZCB3ZWVrRGF5IGFyZSBub3QgYWxsb3dlZCcsIHRoaXMpO1xuICAgIH1cblxuICAgIGNvbnN0IGhvdXIgPSBob3VyRXhwcmVzc2lvbiA9PSBXSUxEX0NBUkQgPyAnMCcgOiBob3VyRXhwcmVzc2lvbjtcbiAgICBjb25zdCBtaW51dGUgPSBtaW51dGVFeHByZXNzaW9uID09IFdJTERfQ0FSRCA/ICcwJyA6IG1pbnV0ZUV4cHJlc3Npb247XG5cbiAgICByZXR1cm4gYCR7aG91ci5wYWRTdGFydCgyLCAnMCcpfToke21pbnV0ZS5wYWRTdGFydCgyLCAnMCcpfWA7XG4gIH1cbn1cbiJdfQ==
|
package/lib/user-base.js
CHANGED
|
@@ -8,7 +8,7 @@ const core_1 = require("aws-cdk-lib/core");
|
|
|
8
8
|
* Access control configuration for ElastiCache users.
|
|
9
9
|
*/
|
|
10
10
|
class AccessControl {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.AccessControl", version: "2.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.AccessControl", version: "2.236.0-alpha.0" };
|
|
12
12
|
/**
|
|
13
13
|
* Create access control from an access string.
|
|
14
14
|
*
|
|
@@ -36,7 +36,7 @@ class AccessControlString extends AccessControl {
|
|
|
36
36
|
* Base class for ElastiCache users.
|
|
37
37
|
*/
|
|
38
38
|
class UserBase extends core_1.Resource {
|
|
39
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.UserBase", version: "2.
|
|
39
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.UserBase", version: "2.236.0-alpha.0" };
|
|
40
40
|
/**
|
|
41
41
|
* Import an existing user by ID.
|
|
42
42
|
*
|
package/lib/user-group.js
CHANGED
|
@@ -47,7 +47,7 @@ const ELASTICACHE_USERGROUP_SYMBOL = Symbol.for('@aws-cdk/aws-elasticache.UserGr
|
|
|
47
47
|
* Base class for UserGroup constructs
|
|
48
48
|
*/
|
|
49
49
|
class UserGroupBase extends core_1.Resource {
|
|
50
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.UserGroupBase", version: "2.
|
|
50
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.UserGroupBase", version: "2.236.0-alpha.0" };
|
|
51
51
|
/**
|
|
52
52
|
* Add a user to this user group
|
|
53
53
|
*
|
|
@@ -90,7 +90,7 @@ let UserGroup = (() => {
|
|
|
90
90
|
UserGroup = _classThis = _classDescriptor.value;
|
|
91
91
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
92
92
|
}
|
|
93
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.UserGroup", version: "2.
|
|
93
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-elasticache-alpha.UserGroup", version: "2.236.0-alpha.0" };
|
|
94
94
|
/**
|
|
95
95
|
* Uniquely identifies this class
|
|
96
96
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/aws-elasticache-alpha",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.236.0-alpha.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The CDK Construct Library for AWS::ElastiCache",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -85,18 +85,18 @@
|
|
|
85
85
|
},
|
|
86
86
|
"license": "Apache-2.0",
|
|
87
87
|
"devDependencies": {
|
|
88
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
89
|
-
"@aws-cdk/integ-runner": "^2.193.
|
|
90
|
-
"@aws-cdk/pkglint": "2.
|
|
88
|
+
"@aws-cdk/cdk-build-tools": "2.236.0-alpha.0",
|
|
89
|
+
"@aws-cdk/integ-runner": "^2.193.5",
|
|
90
|
+
"@aws-cdk/pkglint": "2.236.0-alpha.0",
|
|
91
91
|
"@types/jest": "^29.5.14",
|
|
92
92
|
"jest": "^29.7.0",
|
|
93
|
-
"aws-cdk-lib": "2.
|
|
93
|
+
"aws-cdk-lib": "2.236.0",
|
|
94
94
|
"constructs": "^10.0.0",
|
|
95
|
-
"@aws-cdk/integ-tests-alpha": "2.
|
|
95
|
+
"@aws-cdk/integ-tests-alpha": "2.236.0-alpha.0"
|
|
96
96
|
},
|
|
97
97
|
"dependencies": {},
|
|
98
98
|
"peerDependencies": {
|
|
99
|
-
"aws-cdk-lib": "^2.
|
|
99
|
+
"aws-cdk-lib": "^2.236.0",
|
|
100
100
|
"constructs": "^10.0.0"
|
|
101
101
|
},
|
|
102
102
|
"engines": {
|
|
@@ -134,7 +134,9 @@
|
|
|
134
134
|
"prefer-ref-interface:@aws-cdk/aws-elasticache-alpha.ServerlessCacheProps.userGroup",
|
|
135
135
|
"prefer-ref-interface:@aws-cdk/aws-elasticache-alpha.UserGroupBase.addUser._user",
|
|
136
136
|
"prefer-ref-interface:@aws-cdk/aws-elasticache-alpha.UserGroupAttributes.users",
|
|
137
|
-
"prefer-ref-interface:@aws-cdk/aws-elasticache-alpha.UserGroupProps.users"
|
|
137
|
+
"prefer-ref-interface:@aws-cdk/aws-elasticache-alpha.UserGroupProps.users",
|
|
138
|
+
"interface-extends-ref:@aws-cdk/aws-elasticache-alpha.IUser",
|
|
139
|
+
"interface-extends-ref:@aws-cdk/aws-elasticache-alpha.IUserGroup"
|
|
138
140
|
]
|
|
139
141
|
}
|
|
140
142
|
}
|