@aws-solutions-constructs/core 2.95.1 → 2.96.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -4420,6 +4420,58 @@
4420
4420
  ],
4421
4421
  "symbolId": "lib/bedrock-inference-helper:BedrockInferenceProps"
4422
4422
  },
4423
+ "@aws-solutions-constructs/core.BucketDetails": {
4424
+ "assembly": "@aws-solutions-constructs/core",
4425
+ "datatype": true,
4426
+ "fqn": "@aws-solutions-constructs/core.BucketDetails",
4427
+ "kind": "interface",
4428
+ "locationInModule": {
4429
+ "filename": "lib/translate-helper.ts",
4430
+ "line": 43
4431
+ },
4432
+ "name": "BucketDetails",
4433
+ "properties": [
4434
+ {
4435
+ "abstract": true,
4436
+ "immutable": true,
4437
+ "locationInModule": {
4438
+ "filename": "lib/translate-helper.ts",
4439
+ "line": 45
4440
+ },
4441
+ "name": "bucketInterface",
4442
+ "type": {
4443
+ "fqn": "aws-cdk-lib.aws_s3.IBucket"
4444
+ }
4445
+ },
4446
+ {
4447
+ "abstract": true,
4448
+ "immutable": true,
4449
+ "locationInModule": {
4450
+ "filename": "lib/translate-helper.ts",
4451
+ "line": 44
4452
+ },
4453
+ "name": "bucket",
4454
+ "optional": true,
4455
+ "type": {
4456
+ "fqn": "aws-cdk-lib.aws_s3.Bucket"
4457
+ }
4458
+ },
4459
+ {
4460
+ "abstract": true,
4461
+ "immutable": true,
4462
+ "locationInModule": {
4463
+ "filename": "lib/translate-helper.ts",
4464
+ "line": 46
4465
+ },
4466
+ "name": "loggingBucket",
4467
+ "optional": true,
4468
+ "type": {
4469
+ "fqn": "aws-cdk-lib.aws_s3.Bucket"
4470
+ }
4471
+ }
4472
+ ],
4473
+ "symbolId": "lib/translate-helper:BucketDetails"
4474
+ },
4423
4475
  "@aws-solutions-constructs/core.BuildDeadLetterQueueProps": {
4424
4476
  "assembly": "@aws-solutions-constructs/core",
4425
4477
  "datatype": true,
@@ -8780,7 +8832,7 @@
8780
8832
  "kind": "interface",
8781
8833
  "locationInModule": {
8782
8834
  "filename": "lib/opensearch-helper.ts",
8783
- "line": 311
8835
+ "line": 312
8784
8836
  },
8785
8837
  "name": "OpenSearchProps",
8786
8838
  "properties": [
@@ -8789,7 +8841,7 @@
8789
8841
  "immutable": true,
8790
8842
  "locationInModule": {
8791
8843
  "filename": "lib/opensearch-helper.ts",
8792
- "line": 312
8844
+ "line": 313
8793
8845
  },
8794
8846
  "name": "openSearchDomainProps",
8795
8847
  "optional": true,
@@ -9354,6 +9406,9 @@
9354
9406
  },
9355
9407
  {
9356
9408
  "name": "TRANSCRIBE"
9409
+ },
9410
+ {
9411
+ "name": "TRANSLATE"
9357
9412
  }
9358
9413
  ],
9359
9414
  "name": "ServiceEndpointTypes",
@@ -9702,6 +9757,259 @@
9702
9757
  ],
9703
9758
  "symbolId": "lib/step-function-helper:StateMachineProps"
9704
9759
  },
9760
+ "@aws-solutions-constructs/core.TranslateConfiguration": {
9761
+ "assembly": "@aws-solutions-constructs/core",
9762
+ "datatype": true,
9763
+ "fqn": "@aws-solutions-constructs/core.TranslateConfiguration",
9764
+ "kind": "interface",
9765
+ "locationInModule": {
9766
+ "filename": "lib/translate-helper.ts",
9767
+ "line": 36
9768
+ },
9769
+ "name": "TranslateConfiguration",
9770
+ "properties": [
9771
+ {
9772
+ "abstract": true,
9773
+ "immutable": true,
9774
+ "locationInModule": {
9775
+ "filename": "lib/translate-helper.ts",
9776
+ "line": 38
9777
+ },
9778
+ "name": "lambdaIamActionsRequired",
9779
+ "type": {
9780
+ "collection": {
9781
+ "elementtype": {
9782
+ "primitive": "string"
9783
+ },
9784
+ "kind": "array"
9785
+ }
9786
+ }
9787
+ },
9788
+ {
9789
+ "abstract": true,
9790
+ "immutable": true,
9791
+ "locationInModule": {
9792
+ "filename": "lib/translate-helper.ts",
9793
+ "line": 40
9794
+ },
9795
+ "name": "destinationBucket",
9796
+ "optional": true,
9797
+ "type": {
9798
+ "fqn": "@aws-solutions-constructs/core.BucketDetails"
9799
+ }
9800
+ },
9801
+ {
9802
+ "abstract": true,
9803
+ "immutable": true,
9804
+ "locationInModule": {
9805
+ "filename": "lib/translate-helper.ts",
9806
+ "line": 39
9807
+ },
9808
+ "name": "sourceBucket",
9809
+ "optional": true,
9810
+ "type": {
9811
+ "fqn": "@aws-solutions-constructs/core.BucketDetails"
9812
+ }
9813
+ },
9814
+ {
9815
+ "abstract": true,
9816
+ "immutable": true,
9817
+ "locationInModule": {
9818
+ "filename": "lib/translate-helper.ts",
9819
+ "line": 37
9820
+ },
9821
+ "name": "translateRole",
9822
+ "optional": true,
9823
+ "type": {
9824
+ "fqn": "aws-cdk-lib.aws_iam.Role"
9825
+ }
9826
+ }
9827
+ ],
9828
+ "symbolId": "lib/translate-helper:TranslateConfiguration"
9829
+ },
9830
+ "@aws-solutions-constructs/core.TranslateProps": {
9831
+ "assembly": "@aws-solutions-constructs/core",
9832
+ "datatype": true,
9833
+ "fqn": "@aws-solutions-constructs/core.TranslateProps",
9834
+ "kind": "interface",
9835
+ "locationInModule": {
9836
+ "filename": "lib/translate-helper.ts",
9837
+ "line": 20
9838
+ },
9839
+ "name": "TranslateProps",
9840
+ "properties": [
9841
+ {
9842
+ "abstract": true,
9843
+ "immutable": true,
9844
+ "locationInModule": {
9845
+ "filename": "lib/translate-helper.ts",
9846
+ "line": 21
9847
+ },
9848
+ "name": "asyncJobs",
9849
+ "optional": true,
9850
+ "type": {
9851
+ "primitive": "boolean"
9852
+ }
9853
+ },
9854
+ {
9855
+ "abstract": true,
9856
+ "immutable": true,
9857
+ "locationInModule": {
9858
+ "filename": "lib/translate-helper.ts",
9859
+ "line": 33
9860
+ },
9861
+ "name": "dataAccessRoleArnEnvironmentVariableName",
9862
+ "optional": true,
9863
+ "type": {
9864
+ "primitive": "string"
9865
+ }
9866
+ },
9867
+ {
9868
+ "abstract": true,
9869
+ "immutable": true,
9870
+ "locationInModule": {
9871
+ "filename": "lib/translate-helper.ts",
9872
+ "line": 32
9873
+ },
9874
+ "name": "destinationBucketEnvironmentVariableName",
9875
+ "optional": true,
9876
+ "type": {
9877
+ "primitive": "string"
9878
+ }
9879
+ },
9880
+ {
9881
+ "abstract": true,
9882
+ "immutable": true,
9883
+ "locationInModule": {
9884
+ "filename": "lib/translate-helper.ts",
9885
+ "line": 25
9886
+ },
9887
+ "name": "destinationBucketProps",
9888
+ "optional": true,
9889
+ "type": {
9890
+ "fqn": "aws-cdk-lib.aws_s3.BucketProps"
9891
+ }
9892
+ },
9893
+ {
9894
+ "abstract": true,
9895
+ "immutable": true,
9896
+ "locationInModule": {
9897
+ "filename": "lib/translate-helper.ts",
9898
+ "line": 28
9899
+ },
9900
+ "name": "destinationLoggingBucketProps",
9901
+ "optional": true,
9902
+ "type": {
9903
+ "fqn": "aws-cdk-lib.aws_s3.BucketProps"
9904
+ }
9905
+ },
9906
+ {
9907
+ "abstract": true,
9908
+ "immutable": true,
9909
+ "locationInModule": {
9910
+ "filename": "lib/translate-helper.ts",
9911
+ "line": 24
9912
+ },
9913
+ "name": "existingDestinationBucketObj",
9914
+ "optional": true,
9915
+ "type": {
9916
+ "fqn": "aws-cdk-lib.aws_s3.IBucket"
9917
+ }
9918
+ },
9919
+ {
9920
+ "abstract": true,
9921
+ "immutable": true,
9922
+ "locationInModule": {
9923
+ "filename": "lib/translate-helper.ts",
9924
+ "line": 22
9925
+ },
9926
+ "name": "existingSourceBucketObj",
9927
+ "optional": true,
9928
+ "type": {
9929
+ "fqn": "aws-cdk-lib.aws_s3.IBucket"
9930
+ }
9931
+ },
9932
+ {
9933
+ "abstract": true,
9934
+ "immutable": true,
9935
+ "locationInModule": {
9936
+ "filename": "lib/translate-helper.ts",
9937
+ "line": 30
9938
+ },
9939
+ "name": "logDestinationS3AccessLogs",
9940
+ "optional": true,
9941
+ "type": {
9942
+ "primitive": "boolean"
9943
+ }
9944
+ },
9945
+ {
9946
+ "abstract": true,
9947
+ "immutable": true,
9948
+ "locationInModule": {
9949
+ "filename": "lib/translate-helper.ts",
9950
+ "line": 29
9951
+ },
9952
+ "name": "logSourceS3AccessLogs",
9953
+ "optional": true,
9954
+ "type": {
9955
+ "primitive": "boolean"
9956
+ }
9957
+ },
9958
+ {
9959
+ "abstract": true,
9960
+ "immutable": true,
9961
+ "locationInModule": {
9962
+ "filename": "lib/translate-helper.ts",
9963
+ "line": 31
9964
+ },
9965
+ "name": "sourceBucketEnvironmentVariableName",
9966
+ "optional": true,
9967
+ "type": {
9968
+ "primitive": "string"
9969
+ }
9970
+ },
9971
+ {
9972
+ "abstract": true,
9973
+ "immutable": true,
9974
+ "locationInModule": {
9975
+ "filename": "lib/translate-helper.ts",
9976
+ "line": 23
9977
+ },
9978
+ "name": "sourceBucketProps",
9979
+ "optional": true,
9980
+ "type": {
9981
+ "fqn": "aws-cdk-lib.aws_s3.BucketProps"
9982
+ }
9983
+ },
9984
+ {
9985
+ "abstract": true,
9986
+ "immutable": true,
9987
+ "locationInModule": {
9988
+ "filename": "lib/translate-helper.ts",
9989
+ "line": 27
9990
+ },
9991
+ "name": "sourceLoggingBucketProps",
9992
+ "optional": true,
9993
+ "type": {
9994
+ "fqn": "aws-cdk-lib.aws_s3.BucketProps"
9995
+ }
9996
+ },
9997
+ {
9998
+ "abstract": true,
9999
+ "immutable": true,
10000
+ "locationInModule": {
10001
+ "filename": "lib/translate-helper.ts",
10002
+ "line": 26
10003
+ },
10004
+ "name": "useSameBucket",
10005
+ "optional": true,
10006
+ "type": {
10007
+ "primitive": "boolean"
10008
+ }
10009
+ }
10010
+ ],
10011
+ "symbolId": "lib/translate-helper:TranslateProps"
10012
+ },
9705
10013
  "@aws-solutions-constructs/core.VpcPropsSet": {
9706
10014
  "assembly": "@aws-solutions-constructs/core",
9707
10015
  "datatype": true,
@@ -9709,7 +10017,7 @@
9709
10017
  "kind": "interface",
9710
10018
  "locationInModule": {
9711
10019
  "filename": "lib/vpc-helper.ts",
9712
- "line": 304
10020
+ "line": 310
9713
10021
  },
9714
10022
  "name": "VpcPropsSet",
9715
10023
  "properties": [
@@ -9718,7 +10026,7 @@
9718
10026
  "immutable": true,
9719
10027
  "locationInModule": {
9720
10028
  "filename": "lib/vpc-helper.ts",
9721
- "line": 307
10029
+ "line": 313
9722
10030
  },
9723
10031
  "name": "deployVpc",
9724
10032
  "optional": true,
@@ -9731,7 +10039,7 @@
9731
10039
  "immutable": true,
9732
10040
  "locationInModule": {
9733
10041
  "filename": "lib/vpc-helper.ts",
9734
- "line": 305
10042
+ "line": 311
9735
10043
  },
9736
10044
  "name": "existingVpc",
9737
10045
  "optional": true,
@@ -9744,7 +10052,7 @@
9744
10052
  "immutable": true,
9745
10053
  "locationInModule": {
9746
10054
  "filename": "lib/vpc-helper.ts",
9747
- "line": 306
10055
+ "line": 312
9748
10056
  },
9749
10057
  "name": "vpcProps",
9750
10058
  "optional": true,
@@ -9794,6 +10102,6 @@
9794
10102
  "symbolId": "lib/waf-helper:WafWebAclProps"
9795
10103
  }
9796
10104
  },
9797
- "version": "2.95.1",
9798
- "fingerprint": "P4ng+oTDj054t2CuHI2Rz2y0BG9YcZ/oZTqJvYErL7c="
10105
+ "version": "2.96.0",
10106
+ "fingerprint": "gQK/QIC9ZE6GjVKKQhMcF/0NSMFZHFDcgK8nUQXkiaw="
9799
10107
  }
package/index.d.ts CHANGED
@@ -75,4 +75,5 @@ export * from './lib/websocket-api-helper';
75
75
  export * from './lib/pipes-defaults';
76
76
  export * from './lib/pipes-helper';
77
77
  export * from './lib/bedrock-inference-helper';
78
+ export * from './lib/translate-helper';
78
79
  export * from './lib/constructs-feature-flags';
package/index.js CHANGED
@@ -91,5 +91,6 @@ __exportStar(require("./lib/websocket-api-helper"), exports);
91
91
  __exportStar(require("./lib/pipes-defaults"), exports);
92
92
  __exportStar(require("./lib/pipes-helper"), exports);
93
93
  __exportStar(require("./lib/bedrock-inference-helper"), exports);
94
+ __exportStar(require("./lib/translate-helper"), exports);
94
95
  __exportStar(require("./lib/constructs-feature-flags"), exports);
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxxREFBbUM7QUFDbkMsbURBQWlDO0FBQ2pDLDREQUEwQztBQUMxQywwREFBd0M7QUFDeEMsZ0VBQThDO0FBQzlDLDZEQUEyQztBQUMzQywyREFBeUM7QUFDekMseURBQXVDO0FBQ3ZDLHVEQUFxQztBQUNyQyxnRUFBOEM7QUFDOUMsbUVBQWlEO0FBQ2pELGlFQUErQztBQUMvQyxpRUFBK0M7QUFDL0MsK0RBQTZDO0FBQzdDLHFFQUFtRDtBQUNuRCw2RUFBMkQ7QUFDM0QscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyx3REFBc0M7QUFDdEMsc0RBQW9DO0FBQ3BDLDJEQUF5QztBQUN6Qyx5REFBdUM7QUFDdkMsZ0VBQThDO0FBQzlDLDhEQUE0QztBQUM1Qyw4REFBNEM7QUFDNUMscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyxzREFBb0M7QUFDcEMscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyx1RUFBcUQ7QUFDckQseUVBQXVEO0FBQ3ZELDhDQUE0QjtBQUM1Qiw2REFBMkM7QUFDM0MseURBQXVDO0FBQ3ZDLHVEQUFxQztBQUNyQywrREFBNkM7QUFDN0MsNkRBQTJDO0FBQzNDLCtEQUE2QztBQUM3Qyw2REFBMkM7QUFDM0MsOERBQTRDO0FBQzVDLHFEQUFtQztBQUNuQyxtREFBaUM7QUFDakMsMkRBQXlDO0FBQ3pDLHlEQUF1QztBQUN2QyxvRUFBa0Q7QUFDbEQsMERBQXdDO0FBQ3hDLHdEQUFzQztBQUN0Qyw0REFBMEM7QUFDMUMsMERBQXdDO0FBQ3hDLCtEQUE2QztBQUM3Qyw2REFBMkM7QUFDM0MscURBQW1DO0FBQ25DLG9FQUFrRDtBQUNsRCwyREFBeUM7QUFDekMscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyw0REFBMEM7QUFDMUMsMERBQXdDO0FBQ3hDLHNEQUFvQztBQUNwQywrREFBNkM7QUFDN0MsNkRBQTJDO0FBQzNDLHVEQUFxQztBQUNyQyxxREFBbUM7QUFDbkMsaUVBQStDO0FBQy9DLGlFQUErQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FsYi1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbGItaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaWdhdGV3YXktZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpZ2F0ZXdheS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZHluYW1vZGItdGFibGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxhc3RpY2FjaGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxhc3RpY2FjaGUtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZhcmdhdGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmFyZ2F0ZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW90LXRvcGljLXJ1bGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva2luZXNpcy1hbmFseXRpY3MtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva2luZXNpcy1hbmFseXRpY3MtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tpbmVzaXMtc3RyZWFtcy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9raW5lc2lzLXN0cmVhbXMtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tpbmVzaXMtZmlyZWhvc2UtczMtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGFtYmRhLWV2ZW50LXNvdXJjZS1tYXBwaW5nLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ttcy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9rbXMtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xhbWJkYS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYW1iZGEtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3MzLWJ1Y2tldC1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zMy1idWNrZXQtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlY3JldHNtYW5hZ2VyLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlY3JldHNtYW5hZ2VyLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWN1cml0eS1ncm91cC1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc25zLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Nucy1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvczMtb2FjLW9yaWdpbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcXMtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3FzLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbG91ZGZyb250LWRpc3RyaWJ1dGlvbi1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xvdWRmcm9udC1kaXN0cmlidXRpb24tZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXZlbnRzLXJ1bGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29nbml0by1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2duaXRvLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGFzdGljc2VhcmNoLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsYXN0aWNzZWFyY2gtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0ZXAtZnVuY3Rpb24tZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RlcC1mdW5jdGlvbi1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZHluYW1vZGItdGFibGUtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZwYy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92cGMtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NhZ2VtYWtlci1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zYWdlbWFrZXItaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nsb3Vkd2F0Y2gtbG9nLWdyb3VwLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLWpvYi1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLWpvYi1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2x1ZS10YWJsZS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLXRhYmxlLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLWRhdGFiYXNlLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dsdWUtZGF0YWJhc2UtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdGVzdC90ZXN0LWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zc20tc3RyaW5nLXBhcmFtZXRlci1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXZlbnRicmlkZ2UtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dhZi1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93YWYtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29wZW5zZWFyY2gtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb3BlbnNlYXJjaC1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva2VuZHJhLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93ZWJzb2NrZXQtYXBpLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dlYnNvY2tldC1hcGktaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iZWRyb2NrLWluZmVyZW5jZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RydWN0cy1mZWF0dXJlLWZsYWdzJztcbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxxREFBbUM7QUFDbkMsbURBQWlDO0FBQ2pDLDREQUEwQztBQUMxQywwREFBd0M7QUFDeEMsZ0VBQThDO0FBQzlDLDZEQUEyQztBQUMzQywyREFBeUM7QUFDekMseURBQXVDO0FBQ3ZDLHVEQUFxQztBQUNyQyxnRUFBOEM7QUFDOUMsbUVBQWlEO0FBQ2pELGlFQUErQztBQUMvQyxpRUFBK0M7QUFDL0MsK0RBQTZDO0FBQzdDLHFFQUFtRDtBQUNuRCw2RUFBMkQ7QUFDM0QscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyx3REFBc0M7QUFDdEMsc0RBQW9DO0FBQ3BDLDJEQUF5QztBQUN6Qyx5REFBdUM7QUFDdkMsZ0VBQThDO0FBQzlDLDhEQUE0QztBQUM1Qyw4REFBNEM7QUFDNUMscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyxzREFBb0M7QUFDcEMscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyx1RUFBcUQ7QUFDckQseUVBQXVEO0FBQ3ZELDhDQUE0QjtBQUM1Qiw2REFBMkM7QUFDM0MseURBQXVDO0FBQ3ZDLHVEQUFxQztBQUNyQywrREFBNkM7QUFDN0MsNkRBQTJDO0FBQzNDLCtEQUE2QztBQUM3Qyw2REFBMkM7QUFDM0MsOERBQTRDO0FBQzVDLHFEQUFtQztBQUNuQyxtREFBaUM7QUFDakMsMkRBQXlDO0FBQ3pDLHlEQUF1QztBQUN2QyxvRUFBa0Q7QUFDbEQsMERBQXdDO0FBQ3hDLHdEQUFzQztBQUN0Qyw0REFBMEM7QUFDMUMsMERBQXdDO0FBQ3hDLCtEQUE2QztBQUM3Qyw2REFBMkM7QUFDM0MscURBQW1DO0FBQ25DLG9FQUFrRDtBQUNsRCwyREFBeUM7QUFDekMscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyw0REFBMEM7QUFDMUMsMERBQXdDO0FBQ3hDLHNEQUFvQztBQUNwQywrREFBNkM7QUFDN0MsNkRBQTJDO0FBQzNDLHVEQUFxQztBQUNyQyxxREFBbUM7QUFDbkMsaUVBQStDO0FBQy9DLHlEQUF1QztBQUN2QyxpRUFBK0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbGItZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWxiLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlnYXRld2F5LWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaWdhdGV3YXktaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2R5bmFtb2RiLXRhYmxlLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsYXN0aWNhY2hlLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsYXN0aWNhY2hlLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mYXJnYXRlLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZhcmdhdGUtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lvdC10b3BpYy1ydWxlLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tpbmVzaXMtYW5hbHl0aWNzLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tpbmVzaXMtYW5hbHl0aWNzLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9raW5lc2lzLXN0cmVhbXMtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva2luZXNpcy1zdHJlYW1zLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9raW5lc2lzLWZpcmVob3NlLXMzLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xhbWJkYS1ldmVudC1zb3VyY2UtbWFwcGluZy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9rbXMtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva21zLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYW1iZGEtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGFtYmRhLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zMy1idWNrZXQtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvczMtYnVja2V0LWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWNyZXRzbWFuYWdlci1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWNyZXRzbWFuYWdlci1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VjdXJpdHktZ3JvdXAtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Nucy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbnMtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3MzLW9hYy1vcmlnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3FzLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Nxcy1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V2ZW50cy1ydWxlLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZ25pdG8tZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29nbml0by1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxhc3RpY3NlYXJjaC1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGFzdGljc2VhcmNoLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGVwLWZ1bmN0aW9uLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0ZXAtZnVuY3Rpb24taGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2R5bmFtb2RiLXRhYmxlLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92cGMtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdnBjLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zYWdlbWFrZXItZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2FnZW1ha2VyLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbG91ZHdhdGNoLWxvZy1ncm91cC1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2x1ZS1qb2ItZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2x1ZS1qb2ItaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dsdWUtdGFibGUtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2x1ZS10YWJsZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2x1ZS1kYXRhYmFzZS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLWRhdGFiYXNlLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL3Rlc3QvdGVzdC1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3NtLXN0cmluZy1wYXJhbWV0ZXItaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V2ZW50YnJpZGdlLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93YWYtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2FmLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vcGVuc2VhcmNoLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29wZW5zZWFyY2gtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tlbmRyYS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2Vic29ja2V0LWFwaS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93ZWJzb2NrZXQtYXBpLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmVkcm9jay1pbmZlcmVuY2UtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RyYW5zbGF0ZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RydWN0cy1mZWF0dXJlLWZsYWdzJztcbiJdfQ==
@@ -60,6 +60,7 @@ function buildElasticSearch(scope, props) {
60
60
  // default behavior, but Sonarqube cannot follow the program flow to confirm this.
61
61
  // This is confirmed by the 'Check that TLS 1.2 is the default' test in aws-lambda-elasticsearch
62
62
  const esDomain = new elasticsearch.CfnDomain(scope, `ElasticsearchDomain`, finalCfnDomainProps); // NOSONAR
63
+ esDomain.node.addDependency(cognitoKibanaConfigureRole);
63
64
  (0, utils_1.addCfnSuppressRules)(esDomain, [
64
65
  {
65
66
  id: "W28",
@@ -251,4 +252,4 @@ function createKibanaCognitoRole(scope, userPool, identitypool, domainName) {
251
252
  cognitoKibanaConfigureRolePolicy.attachToRole(cognitoKibanaConfigureRole);
252
253
  return cognitoKibanaConfigureRole;
253
254
  }
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY3NlYXJjaC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbGFzdGljc2VhcmNoLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBd0NILGdEQXFEQztBQUtELGdFQW1JQztBQW5PRDs7O0dBR0c7QUFFSCwrREFBK0Q7QUFDL0QscUVBQWlFO0FBQ2pFLDZDQUF3RDtBQUN4RCxtQ0FBMEY7QUFDMUYsMkNBQTJDO0FBQzNDLG1DQUFtQztBQUNuQyx5REFBeUQ7QUFNekQsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLENBQUM7QUFrQjFDOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsS0FBZ0IsRUFBRSxLQUE4QjtJQUVqRixJQUFJLFNBQW1CLENBQUM7SUFDeEIsTUFBTSxvQkFBb0IsR0FBUSxFQUFFLENBQUM7SUFFckMsc0ZBQXNGO0lBQ3RGLE1BQU0sMEJBQTBCLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFeEgsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxTQUFTLEdBQUcsSUFBQSxxQ0FBd0IsRUFBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFaEQsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLCtCQUErQixFQUFFLENBQUM7WUFDdkQsU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLCtCQUErQixDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELG9CQUFvQixDQUFDLFVBQVUsR0FBRztZQUNoQyxTQUFTO1lBQ1QsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtTQUN6QyxDQUFDO1FBRUYsd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsQ0FB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TUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxpQkFBaUIsWUFBWSxDQUFDLEdBQUcsRUFBRTtvQkFDcEgsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsV0FBVyxVQUFVLEVBQUU7aUJBQzNGO2FBQ0YsQ0FBQztZQUNGLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdEIsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO2dCQUN6QixVQUFVLEVBQUU7b0JBQ1YsVUFBVSxFQUFFO3dCQUNWLHFCQUFxQixFQUFFLGdDQUFnQztxQkFDeEQ7aUJBQ0Y7Z0JBQ0QsU0FBUyxFQUFFLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDO2FBQ2hELENBQUM7U0FDSDtLQUNGLENBQ0YsQ0FBQztJQUVGLGdDQUFnQyxDQUFDLFlBQVksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzFFLE9BQU8sMEJBQTBCLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgZWxhc3RpY3NlYXJjaCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY3NlYXJjaCc7XG5pbXBvcnQgeyBEZWZhdWx0Q2ZuRG9tYWluUHJvcHMgfSBmcm9tICcuL2VsYXN0aWNzZWFyY2gtZGVmYXVsdHMnO1xuaW1wb3J0IHsgcmV0cmlldmVQcml2YXRlU3VibmV0SWRzIH0gZnJvbSAnLi92cGMtaGVscGVyJztcbmltcG9ydCB7IGNvbnNvbGlkYXRlUHJvcHMsIGFkZENmblN1cHByZXNzUnVsZXMsIGFkZENmbkd1YXJkU3VwcHJlc3NSdWxlcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgY29nbml0byBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29nbml0byc7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuY29uc3QgbWF4aW11bUF6c0luRWxhc3RpY3NlYXJjaERvbWFpbiA9IDM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFbGFzdGljU2VhcmNoUHJvcHMge1xuICByZWFkb25seSBpZGVudGl0eXBvb2w6IGNvZ25pdG8uQ2ZuSWRlbnRpdHlQb29sO1xuICByZWFkb25seSB1c2VycG9vbDogY29nbml0by5Vc2VyUG9vbDtcbiAgcmVhZG9ubHkgY29nbml0b0F1dGhvcml6ZWRSb2xlQVJOOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlcnZpY2VSb2xlQVJOPzogc3RyaW5nO1xuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBjbGllbnREb21haW5Qcm9wcz86IGVsYXN0aWNzZWFyY2guQ2ZuRG9tYWluUHJvcHMsXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZHM/OiBzdHJpbmdbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkRWxhc3RpY1NlYXJjaFJlc3BvbnNlIHtcbiAgcmVhZG9ubHkgZG9tYWluOiBlbGFzdGljc2VhcmNoLkNmbkRvbWFpbixcbiAgcmVhZG9ubHkgcm9sZTogaWFtLlJvbGVcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRFbGFzdGljU2VhcmNoKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBCdWlsZEVsYXN0aWNTZWFyY2hQcm9wcyk6IEJ1aWxkRWxhc3RpY1NlYXJjaFJlc3BvbnNlIHtcblxuICBsZXQgc3VibmV0SWRzOiBzdHJpbmdbXTtcbiAgY29uc3QgY29uc3RydWN0RHJpdmVuUHJvcHM6IGFueSA9IHt9O1xuXG4gIC8vIFNldHVwIHRoZSBJQU0gUm9sZSAmIHBvbGljeSBmb3IgRVMgdG8gY29uZmlndXJlIENvZ25pdG8gVXNlciBwb29sIGFuZCBJZGVudGl0eSBwb29sXG4gIGNvbnN0IGNvZ25pdG9LaWJhbmFDb25maWd1cmVSb2xlID0gY3JlYXRlS2liYW5hQ29nbml0b1JvbGUoc2NvcGUsIHByb3BzLnVzZXJwb29sLCBwcm9wcy5pZGVudGl0eXBvb2wsIHByb3BzLmRvbWFpbk5hbWUpO1xuXG4gIGlmIChwcm9wcy52cGMpIHtcbiAgICBzdWJuZXRJZHMgPSByZXRyaWV2ZVByaXZhdGVTdWJuZXRJZHMocHJvcHMudnBjKTtcblxuICAgIGlmIChzdWJuZXRJZHMubGVuZ3RoID4gbWF4aW11bUF6c0luRWxhc3RpY3NlYXJjaERvbWFpbikge1xuICAgICAgc3VibmV0SWRzID0gc3VibmV0SWRzLnNsaWNlKDAsIG1heGltdW1BenNJbkVsYXN0aWNzZWFyY2hEb21haW4pO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdERyaXZlblByb3BzLnZwY09wdGlvbnMgPSB7XG4gICAgICBzdWJuZXRJZHMsXG4gICAgICBzZWN1cml0eUdyb3VwSWRzOiBwcm9wcy5zZWN1cml0eUdyb3VwSWRzXG4gICAgfTtcblxuICAgIC8vIElmIHRoZSBjbGllbnQgZGlkIG5vdCBzdWJtaXQgYSBDbHVzdGVyQ29uZmlnLCB0aGVuIHdlIHdpbGwgY3JlYXRlIG9uZVxuICAgIGlmICghcHJvcHMuY2xpZW50RG9tYWluUHJvcHM/LmVsYXN0aWNzZWFyY2hDbHVzdGVyQ29uZmlnKSB7XG4gICAgICBjb25zdHJ1Y3REcml2ZW5Qcm9wcy5lbGFzdGljc2VhcmNoQ2x1c3RlckNvbmZpZyA9IGNyZWF0ZUNsdXN0ZXJDb25maWd1cmF0aW9uKHN1Ym5ldElkcy5sZW5ndGgpO1xuICAgIH1cbiAgfSBlbHNlIHsgLy8gTm8gVlBDXG4gICAgLy8gSWYgdGhlIGNsaWVudCBkaWQgbm90IHN1Ym1pdCBhIENsdXN0ZXJDb25maWcsIHRoZW4gd2Ugd2lsbCBjcmVhdGUgb25lIGJhc2VkIG9uIHRoZSBSZWdpb25cbiAgICBpZiAoIXByb3BzLmNsaWVudERvbWFpblByb3BzPy5lbGFzdGljc2VhcmNoQ2x1c3RlckNvbmZpZykge1xuICAgICAgY29uc3RydWN0RHJpdmVuUHJvcHMuZWxhc3RpY3NlYXJjaENsdXN0ZXJDb25maWcgPSBjcmVhdGVDbHVzdGVyQ29uZmlndXJhdGlvbihjZGsuU3RhY2sub2Yoc2NvcGUpLmF2YWlsYWJpbGl0eVpvbmVzLmxlbmd0aCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZGVmYXVsdENmbkRvbWFpblByb3BzID0gRGVmYXVsdENmbkRvbWFpblByb3BzKHByb3BzLmRvbWFpbk5hbWUsIGNvZ25pdG9LaWJhbmFDb25maWd1cmVSb2xlLCBwcm9wcyk7XG4gIGNvbnN0IGZpbmFsQ2ZuRG9tYWluUHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRDZm5Eb21haW5Qcm9wcywgcHJvcHMuY2xpZW50RG9tYWluUHJvcHMsIGNvbnN0cnVjdERyaXZlblByb3BzKTtcblxuICAvLyB0bHNTZWN1cml0eVBvbGljeSBpcyBzZXQgaW4gRGVmYXVsdENmbkRvbWFpblByb3BzKCkgLSBpdCBpcyB0aGVcbiAgLy8gZGVmYXVsdCBiZWhhdmlvciwgYnV0IFNvbmFycXViZSBjYW5ub3QgZm9sbG93IHRoZSBwcm9ncmFtIGZsb3cgdG8gY29uZmlybSB0aGlzLlxuICAvLyBUaGlzIGlzIGNvbmZpcm1lZCBieSB0aGUgJ0NoZWNrIHRoYXQgVExTIDEuMiBpcyB0aGUgZGVmYXVsdCcgdGVzdCBpbiBhd3MtbGFtYmRhLWVsYXN0aWNzZWFyY2hcbiAgY29uc3QgZXNEb21haW4gPSBuZXcgZWxhc3RpY3NlYXJjaC5DZm5Eb21haW4oc2NvcGUsIGBFbGFzdGljc2VhcmNoRG9tYWluYCwgZmluYWxDZm5Eb21haW5Qcm9wcyk7IC8vIE5PU09OQVJcblxuICBhZGRDZm5TdXBwcmVzc1J1bGVzKGVzRG9tYWluLCBbXG4gICAge1xuICAgICAgaWQ6IFwiVzI4XCIsXG4gICAgICByZWFzb246IGBUaGUgRVMgRG9tYWluIGlzIHBhc3NlZCBkeW5hbWljYWxseSBhcyBhcyBwYXJhbWV0ZXIgYW5kIGV4cGxpY2l0bHkgc3BlY2lmaWVkIHRvIGVuc3VyZSB0aGF0IElBTSBwb2xpY2llcyBhcmUgY29uZmlndXJlZCB0byBsb2NrZG93biBhY2Nlc3MgdG8gdGhpcyBzcGVjaWZpYyBFUyBpbnN0YW5jZSBvbmx5YCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBcIlc5MFwiLFxuICAgICAgcmVhc29uOiBgVGhpcyBpcyBub3QgYSBydWxlIGZvciB0aGUgZ2VuZXJhbCBjYXNlLCBqdXN0IGZvciBzcGVjaWZpYyB1c2UgY2FzZXMvaW5kdXN0cmllc2AsXG4gICAgfSxcbiAgXSk7XG5cbiAgYWRkQ2ZuR3VhcmRTdXBwcmVzc1J1bGVzKGVzRG9tYWluLCBbXCJDRk5fTk9fRVhQTElDSVRfUkVTT1VSQ0VfTkFNRVNcIl0pO1xuXG4gIHJldHVybiB7IGRvbWFpbjogZXNEb21haW4sIHJvbGU6IGNvZ25pdG9LaWJhbmFDb25maWd1cmVSb2xlIH07XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRWxhc3RpY1NlYXJjaENXQWxhcm1zKHNjb3BlOiBDb25zdHJ1Y3QpOiBjbG91ZHdhdGNoLkFsYXJtW10ge1xuICAvLyBTZXR1cCBDVyBBbGFybXMgZm9yIEVTXG4gIGNvbnN0IGFsYXJtczogY2xvdWR3YXRjaC5BbGFybVtdID0gbmV3IEFycmF5KCk7XG5cbiAgLy8gQ2x1c3RlclN0YXR1cy5yZWQgbWF4aW11bSBpcyA+PSAxIGZvciAxIG1pbnV0ZSwgMSBjb25zZWN1dGl2ZSB0aW1lXG4gIGFsYXJtcy5wdXNoKG5ldyBjbG91ZHdhdGNoLkFsYXJtKHNjb3BlLCAnU3RhdHVzUmVkQWxhcm0nLCB7XG4gICAgbWV0cmljOiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL0VTJyxcbiAgICAgIG1ldHJpY05hbWU6ICdDbHVzdGVyU3RhdHVzLnJlZCcsXG4gICAgICBzdGF0aXN0aWM6ICdNYXhpbXVtJyxcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgIH0pLFxuICAgIHRocmVzaG9sZDogMSxcbiAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgYWxhcm1EZXNjcmlwdGlvbjogJ0F0IGxlYXN0IG9uZSBwcmltYXJ5IHNoYXJkIGFuZCBpdHMgcmVwbGljYXMgYXJlIG5vdCBhbGxvY2F0ZWQgdG8gYSBub2RlLiAnXG4gIH0pKTtcblxuICAvLyBDbHVzdGVyU3RhdHVzLnllbGxvdyBtYXhpbXVtIGlzID49IDEgZm9yIDEgbWludXRlLCAxIGNvbnNlY3V0aXZlIHRpbWVcbiAgYWxhcm1zLnB1c2gobmV3IGNsb3Vkd2F0Y2guQWxhcm0oc2NvcGUsICdTdGF0dXNZZWxsb3dBbGFybScsIHtcbiAgICBtZXRyaWM6IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvRVMnLFxuICAgICAgbWV0cmljTmFtZTogJ0NsdXN0ZXJTdGF0dXMueWVsbG93JyxcbiAgICAgIHN0YXRpc3RpYzogJ01heGltdW0nLFxuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgfSksXG4gICAgdGhyZXNob2xkOiAxLFxuICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICBhbGFybURlc2NyaXB0aW9uOiAnQXQgbGVhc3Qgb25lIHJlcGxpY2Egc2hhcmQgaXMgbm90IGFsbG9jYXRlZCB0byBhIG5vZGUuJ1xuICB9KSk7XG5cbiAgLy8gRnJlZVN0b3JhZ2VTcGFjZSBtaW5pbXVtIGlzIDw9IDIwNDgwIGZvciAxIG1pbnV0ZSwgMSBjb25zZWN1dGl2ZSB0aW1lXG4gIGFsYXJtcy5wdXNoKG5ldyBjbG91ZHdhdGNoLkFsYXJtKHNjb3BlLCAnRnJlZVN0b3JhZ2VTcGFjZVRvb0xvd0FsYXJtJywge1xuICAgIG1ldHJpYzogbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9FUycsXG4gICAgICBtZXRyaWNOYW1lOiAnRnJlZVN0b3JhZ2VTcGFjZScsXG4gICAgICBzdGF0aXN0aWM6ICdNaW5pbXVtJyxcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgIH0pLFxuICAgIHRocmVzaG9sZDogMjAwMDAsXG4gICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgIGFsYXJtRGVzY3JpcHRpb246ICdBIG5vZGUgaW4geW91ciBjbHVzdGVyIGlzIGRvd24gdG8gMjAgR2lCIG9mIGZyZWUgc3RvcmFnZSBzcGFjZS4nXG4gIH0pKTtcblxuICAvLyBDbHVzdGVySW5kZXhXcml0ZXNCbG9ja2VkIGlzID49IDEgZm9yIDUgbWludXRlcywgMSBjb25zZWN1dGl2ZSB0aW1lXG4gIGFsYXJtcy5wdXNoKG5ldyBjbG91ZHdhdGNoLkFsYXJtKHNjb3BlLCAnSW5kZXhXcml0ZXNCbG9ja2VkVG9vSGlnaEFsYXJtJywge1xuICAgIG1ldHJpYzogbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9FUycsXG4gICAgICBtZXRyaWNOYW1lOiAnQ2x1c3RlckluZGV4V3JpdGVzQmxvY2tlZCcsXG4gICAgICBzdGF0aXN0aWM6ICdNYXhpbXVtJyxcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLnNlY29uZHMoMzAwKSxcbiAgICB9KSxcbiAgICB0aHJlc2hvbGQ6IDEsXG4gICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgIGFsYXJtRGVzY3JpcHRpb246ICdZb3VyIGNsdXN0ZXIgaXMgYmxvY2tpbmcgd3JpdGUgcmVxdWVzdHMuJ1xuICB9KSk7XG5cbiAgLy8gQXV0b21hdGVkU25hcHNob3RGYWlsdXJlIG1heGltdW0gaXMgPj0gMSBmb3IgMSBtaW51dGUsIDEgY29uc2VjdXRpdmUgdGltZVxuICBhbGFybXMucHVzaChuZXcgY2xvdWR3YXRjaC5BbGFybShzY29wZSwgJ0F1dG9tYXRlZFNuYXBzaG90RmFpbHVyZVRvb0hpZ2hBbGFybScsIHtcbiAgICBtZXRyaWM6IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvRVMnLFxuICAgICAgbWV0cmljTmFtZTogJ0F1dG9tYXRlZFNuYXBzaG90RmFpbHVyZScsXG4gICAgICBzdGF0aXN0aWM6ICdNYXhpbXVtJyxcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgIH0pLFxuICAgIHRocmVzaG9sZDogMSxcbiAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgYWxhcm1EZXNjcmlwdGlvbjogJ0FuIGF1dG9tYXRlZCBzbmFwc2hvdCBmYWlsZWQuIFRoaXMgZmFpbHVyZSBpcyBvZnRlbiB0aGUgcmVzdWx0IG9mIGEgcmVkIGNsdXN0ZXIgaGVhbHRoIHN0YXR1cy4nXG4gIH0pKTtcblxuICAvLyBDUFVVdGlsaXphdGlvbiBtYXhpbXVtIGlzID49IDgwJSBmb3IgMTUgbWludXRlcywgMyBjb25zZWN1dGl2ZSB0aW1lc1xuICBhbGFybXMucHVzaChuZXcgY2xvdWR3YXRjaC5BbGFybShzY29wZSwgJ0NQVVV0aWxpemF0aW9uVG9vSGlnaEFsYXJtJywge1xuICAgIG1ldHJpYzogbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9FUycsXG4gICAgICBtZXRyaWNOYW1lOiAnQ1BVVXRpbGl6YXRpb24nLFxuICAgICAgc3RhdGlzdGljOiAnQXZlcmFnZScsXG4gICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDkwMCksXG4gICAgfSksXG4gICAgdGhyZXNob2xkOiA4MCxcbiAgICBldmFsdWF0aW9uUGVyaW9kczogMyxcbiAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgYWxhcm1EZXNjcmlwdGlvbjogJzEwMCUgQ1BVIHV0aWxpemF0aW9uIGlzIG5vdCB1bmNvbW1vbiwgYnV0IHN1c3RhaW5lZCBoaWdoIHVzYWdlIGlzIHByb2JsZW1hdGljLiBDb25zaWRlciB1c2luZyBsYXJnZXIgaW5zdGFuY2UgdHlwZXMgb3IgYWRkaW5nIGluc3RhbmNlcy4nXG4gIH0pKTtcblxuICAvLyBKVk1NZW1vcnlQcmVzc3VyZSBtYXhpbXVtIGlzID49IDgwJSBmb3IgNSBtaW51dGVzLCAzIGNvbnNlY3V0aXZlIHRpbWVzXG4gIGFsYXJtcy5wdXNoKG5ldyBjbG91ZHdhdGNoLkFsYXJtKHNjb3BlLCAnSlZNTWVtb3J5UHJlc3N1cmVUb29IaWdoQWxhcm0nLCB7XG4gICAgbWV0cmljOiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL0VTJyxcbiAgICAgIG1ldHJpY05hbWU6ICdKVk1NZW1vcnlQcmVzc3VyZScsXG4gICAgICBzdGF0aXN0aWM6ICdBdmVyYWdlJyxcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLnNlY29uZHMoOTAwKSxcbiAgICB9KSxcbiAgICB0aHJlc2hvbGQ6IDgwLFxuICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICBhbGFybURlc2NyaXB0aW9uOiAnQXZlcmFnZSBKVk0gbWVtb3J5IHByZXNzdXJlIG92ZXIgbGFzdCAxNSBtaW51dGVzIHRvbyBoaWdoLiBDb25zaWRlciBzY2FsaW5nIHZlcnRpY2FsbHkuJ1xuICB9KSk7XG5cbiAgLy8gTWFzdGVyQ1BVVXRpbGl6YXRpb24gbWF4aW11bSBpcyA+PSA1MCUgZm9yIDE1IG1pbnV0ZXMsIDMgY29uc2VjdXRpdmUgdGltZXNcbiAgYWxhcm1zLnB1c2gobmV3IGNsb3Vkd2F0Y2guQWxhcm0oc2NvcGUsICdNYXN0ZXJDUFVVdGlsaXphdGlvblRvb0hpZ2hBbGFybScsIHtcbiAgICBtZXRyaWM6IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvRVMnLFxuICAgICAgbWV0cmljTmFtZTogJ01hc3RlckNQVVV0aWxpemF0aW9uJyxcbiAgICAgIHN0YXRpc3RpYzogJ0F2ZXJhZ2UnLFxuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24uc2Vjb25kcyg5MDApLFxuICAgIH0pLFxuICAgIHRocmVzaG9sZDogNTAsXG4gICAgZXZhbHVhdGlvblBlcmlvZHM6IDMsXG4gICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgIGFsYXJtRGVzY3JpcHRpb246ICdBdmVyYWdlIENQVSB1dGlsaXphdGlvbiBvdmVyIGxhc3QgNDUgbWludXRlcyB0b28gaGlnaC4gQ29uc2lkZXIgdXNpbmcgbGFyZ2VyIGluc3RhbmNlIHR5cGVzIGZvciB5b3VyIGRlZGljYXRlZCBtYXN0ZXIgbm9kZXMuJ1xuICB9KSk7XG5cbiAgLy8gTWFzdGVySlZNTWVtb3J5UHJlc3N1cmUgbWF4aW11bSBpcyA+PSA4MCUgZm9yIDE1IG1pbnV0ZXMsIDEgY29uc2VjdXRpdmUgdGltZVxuICBhbGFybXMucHVzaChuZXcgY2xvdWR3YXRjaC5BbGFybShzY29wZSwgJ01hc3RlckpWTU1lbW9yeVByZXNzdXJlVG9vSGlnaEFsYXJtJywge1xuICAgIG1ldHJpYzogbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9FUycsXG4gICAgICBtZXRyaWNOYW1lOiAnTWFzdGVySlZNTWVtb3J5UHJlc3N1cmUnLFxuICAgICAgc3RhdGlzdGljOiAnQXZlcmFnZScsXG4gICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDkwMCksXG4gICAgfSksXG4gICAgdGhyZXNob2xkOiA1MCxcbiAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgYWxhcm1EZXNjcmlwdGlvbjogJ0F2ZXJhZ2UgSlZNIG1lbW9yeSBwcmVzc3VyZSBvdmVyIGxhc3QgMTUgbWludXRlcyB0b28gaGlnaC4gQ29uc2lkZXIgc2NhbGluZyB2ZXJ0aWNhbGx5LidcbiAgfSkpO1xuXG4gIHJldHVybiBhbGFybXM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNsdXN0ZXJDb25maWd1cmF0aW9uKG51bWJlck9mQXpzPzogbnVtYmVyKTogZWxhc3RpY3NlYXJjaC5DZm5Eb21haW4uRWxhc3RpY3NlYXJjaENsdXN0ZXJDb25maWdQcm9wZXJ0eSB7XG4gIHJldHVybiB7XG4gICAgZGVkaWNhdGVkTWFzdGVyRW5hYmxlZDogdHJ1ZSxcbiAgICBkZWRpY2F0ZWRNYXN0ZXJDb3VudDogMyxcbiAgICB6b25lQXdhcmVuZXNzRW5hYmxlZDogdHJ1ZSxcbiAgICB6b25lQXdhcmVuZXNzQ29uZmlnOiB7XG4gICAgICBhdmFpbGFiaWxpdHlab25lQ291bnQ6IG51bWJlck9mQXpzXG4gICAgfSxcbiAgICBpbnN0YW5jZUNvdW50OiBudW1iZXJPZkF6cyxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlS2liYW5hQ29nbml0b1JvbGUoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIHVzZXJQb29sOiBjb2duaXRvLlVzZXJQb29sLFxuICBpZGVudGl0eXBvb2w6IGNvZ25pdG8uQ2ZuSWRlbnRpdHlQb29sLFxuICBkb21haW5OYW1lOiBzdHJpbmdcbik6IGlhbS5Sb2xlIHtcbiAgLy8gU2V0dXAgdGhlIElBTSBSb2xlICYgcG9saWN5IGZvciBFUyB0byBjb25maWd1cmUgQ29nbml0byBVc2VyIHBvb2wgYW5kIElkZW50aXR5IHBvb2xcbiAgY29uc3QgY29nbml0b0tpYmFuYUNvbmZpZ3VyZVJvbGUgPSBuZXcgaWFtLlJvbGUoXG4gICAgc2NvcGUsXG4gICAgXCJDb2duaXRvS2liYW5hQ29uZmlndXJlUm9sZVwiLFxuICAgIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiZXMuYW1hem9uYXdzLmNvbVwiKSxcbiAgICB9XG4gICk7XG5cbiAgY29uc3QgY29nbml0b0tpYmFuYUNvbmZpZ3VyZVJvbGVQb2xpY3kgPSBuZXcgaWFtLlBvbGljeShcbiAgICBzY29wZSxcbiAgICBcIkNvZ25pdG9LaWJhbmFDb25maWd1cmVSb2xlUG9saWN5XCIsXG4gICAge1xuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgXCJjb2duaXRvLWlkcDpEZXNjcmliZVVzZXJQb29sXCIsXG4gICAgICAgICAgICBcImNvZ25pdG8taWRwOkNyZWF0ZVVzZXJQb29sQ2xpZW50XCIsXG4gICAgICAgICAgICBcImNvZ25pdG8taWRwOkRlbGV0ZVVzZXJQb29sQ2xpZW50XCIsXG4gICAgICAgICAgICBcImNvZ25pdG8taWRwOkRlc2NyaWJlVXNlclBvb2xDbGllbnRcIixcbiAgICAgICAgICAgIFwiY29nbml0by1pZHA6QWRtaW5Jbml0aWF0ZUF1dGhcIixcbiAgICAgICAgICAgIFwiY29nbml0by1pZHA6QWRtaW5Vc2VyR2xvYmFsU2lnbk91dFwiLFxuICAgICAgICAgICAgXCJjb2duaXRvLWlkcDpMaXN0VXNlclBvb2xDbGllbnRzXCIsXG4gICAgICAgICAgICBcImNvZ25pdG8taWRlbnRpdHk6RGVzY3JpYmVJZGVudGl0eVBvb2xcIixcbiAgICAgICAgICAgIFwiY29nbml0by1pZGVudGl0eTpVcGRhdGVJZGVudGl0eVBvb2xcIixcbiAgICAgICAgICAgIFwiY29nbml0by1pZGVudGl0eTpTZXRJZGVudGl0eVBvb2xSb2xlc1wiLFxuICAgICAgICAgICAgXCJjb2duaXRvLWlkZW50aXR5OkdldElkZW50aXR5UG9vbFJvbGVzXCIsXG4gICAgICAgICAgICBcImVzOlVwZGF0ZUVsYXN0aWNzZWFyY2hEb21haW5Db25maWdcIixcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgdXNlclBvb2wudXNlclBvb2xBcm4sXG4gICAgICAgICAgICBgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OmNvZ25pdG8taWRlbnRpdHk6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmlkZW50aXR5cG9vbC8ke2lkZW50aXR5cG9vbC5yZWZ9YCxcbiAgICAgICAgICAgIGBhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06ZXM6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmRvbWFpbi8ke2RvbWFpbk5hbWV9YCxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFtcImlhbTpQYXNzUm9sZVwiXSxcbiAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICBTdHJpbmdMaWtlOiB7XG4gICAgICAgICAgICAgIFwiaWFtOlBhc3NlZFRvU2VydmljZVwiOiBcImNvZ25pdG8taWRlbnRpdHkuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc291cmNlczogW2NvZ25pdG9LaWJhbmFDb25maWd1cmVSb2xlLnJvbGVBcm5dLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfVxuICApO1xuXG4gIGNvZ25pdG9LaWJhbmFDb25maWd1cmVSb2xlUG9saWN5LmF0dGFjaFRvUm9sZShjb2duaXRvS2liYW5hQ29uZmlndXJlUm9sZSk7XG4gIHJldHVybiBjb2duaXRvS2liYW5hQ29uZmlndXJlUm9sZTtcbn1cbiJdfQ==
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY3NlYXJjaC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbGFzdGljc2VhcmNoLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBd0NILGdEQXNEQztBQUtELGdFQW1JQztBQXBPRDs7O0dBR0c7QUFFSCwrREFBK0Q7QUFDL0QscUVBQWlFO0FBQ2pFLDZDQUF3RDtBQUN4RCxtQ0FBMEY7QUFDMUYsMkNBQTJDO0FBQzNDLG1DQUFtQztBQUNuQyx5REFBeUQ7QUFNekQsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLENBQUM7QUFrQjFDOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsS0FBZ0IsRUFBRSxLQUE4QjtJQUVqRixJQUFJLFNBQW1CLENBQUM7SUFDeEIsTUFBTSxvQkFBb0IsR0FBUSxFQUFFLENBQUM7SUFFckMsc0ZBQXNGO0lBQ3RGLE1BQU0sMEJBQTBCLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFeEgsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZCxTQUFTLEdBQUcsSUFBQSxxQ0FBd0IsRUFBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFaEQsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLCtCQUErQixFQUFFLENBQUM7WUFDdkQsU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLCtCQUErQixDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELG9CQUFvQixDQUFDLFVBQVUsR0FBRztZQUNoQyxTQUFTO1lBQ1QsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtTQUN6QyxDQUFDO1FBRUYsd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsQ0FB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LEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxxQkFBcUIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLGlCQUFpQixZQUFZLENBQUMsR0FBRyxFQUFFO29CQUNwSCxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxXQUFXLFVBQVUsRUFBRTtpQkFDM0Y7YUFDRixDQUFDO1lBQ0YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUN0QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7Z0JBQ3pCLFVBQVUsRUFBRTtvQkFDVixVQUFVLEVBQUU7d0JBQ1YscUJBQXFCLEVBQUUsZ0NBQWdDO3FCQUN4RDtpQkFDRjtnQkFDRCxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUM7YUFDaEQsQ0FBQztTQUNIO0tBQ0YsQ0FDRixDQUFDO0lBRUYsZ0NBQWdDLENBQUMsWUFBWSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDMUUsT0FBTywwQkFBMEIsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBlbGFzdGljc2VhcmNoIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljc2VhcmNoJztcbmltcG9ydCB7IERlZmF1bHRDZm5Eb21haW5Qcm9wcyB9IGZyb20gJy4vZWxhc3RpY3NlYXJjaC1kZWZhdWx0cyc7XG5pbXBvcnQgeyByZXRyaWV2ZVByaXZhdGVTdWJuZXRJZHMgfSBmcm9tICcuL3ZwYy1oZWxwZXInO1xuaW1wb3J0IHsgY29uc29saWRhdGVQcm9wcywgYWRkQ2ZuU3VwcHJlc3NSdWxlcywgYWRkQ2ZuR3VhcmRTdXBwcmVzc1J1bGVzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBjb2duaXRvIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2duaXRvJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbi8vIE5vdGU6IFRvIGVuc3VyZSBDREt2MiBjb21wYXRpYmlsaXR5LCBrZWVwIHRoZSBpbXBvcnQgc3RhdGVtZW50IGZvciBDb25zdHJ1Y3Qgc2VwYXJhdGVcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5jb25zdCBtYXhpbXVtQXpzSW5FbGFzdGljc2VhcmNoRG9tYWluID0gMztcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZEVsYXN0aWNTZWFyY2hQcm9wcyB7XG4gIHJlYWRvbmx5IGlkZW50aXR5cG9vbDogY29nbml0by5DZm5JZGVudGl0eVBvb2w7XG4gIHJlYWRvbmx5IHVzZXJwb29sOiBjb2duaXRvLlVzZXJQb29sO1xuICByZWFkb25seSBjb2duaXRvQXV0aG9yaXplZFJvbGVBUk46IHN0cmluZztcbiAgcmVhZG9ubHkgc2VydmljZVJvbGVBUk4/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZwYz86IGVjMi5JVnBjO1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNsaWVudERvbWFpblByb3BzPzogZWxhc3RpY3NlYXJjaC5DZm5Eb21haW5Qcm9wcyxcbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkcz86IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFbGFzdGljU2VhcmNoUmVzcG9uc2Uge1xuICByZWFkb25seSBkb21haW46IGVsYXN0aWNzZWFyY2guQ2ZuRG9tYWluLFxuICByZWFkb25seSByb2xlOiBpYW0uUm9sZVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEVsYXN0aWNTZWFyY2goc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IEJ1aWxkRWxhc3RpY1NlYXJjaFByb3BzKTogQnVpbGRFbGFzdGljU2VhcmNoUmVzcG9uc2Uge1xuXG4gIGxldCBzdWJuZXRJZHM6IHN0cmluZ1tdO1xuICBjb25zdCBjb25zdHJ1Y3REcml2ZW5Qcm9wczogYW55ID0ge307XG5cbiAgLy8gU2V0dXAgdGhlIElBTSBSb2xlICYgcG9saWN5IGZvciBFUyB0byBjb25maWd1cmUgQ29nbml0byBVc2VyIHBvb2wgYW5kIElkZW50aXR5IHBvb2xcbiAgY29uc3QgY29nbml0b0tpYmFuYUNvbmZpZ3VyZVJvbGUgPSBjcmVhdGVLaWJhbmFDb2duaXRvUm9sZShzY29wZSwgcHJvcHMudXNlcnBvb2wsIHByb3BzLmlkZW50aXR5cG9vbCwgcHJvcHMuZG9tYWluTmFtZSk7XG5cbiAgaWYgKHByb3BzLnZwYykge1xuICAgIHN1Ym5ldElkcyA9IHJldHJpZXZlUHJpdmF0ZVN1Ym5ldElkcyhwcm9wcy52cGMpO1xuXG4gICAgaWYgKHN1Ym5ldElkcy5sZW5ndGggPiBtYXhpbXVtQXpzSW5FbGFzdGljc2VhcmNoRG9tYWluKSB7XG4gICAgICBzdWJuZXRJZHMgPSBzdWJuZXRJZHMuc2xpY2UoMCwgbWF4aW11bUF6c0luRWxhc3RpY3NlYXJjaERvbWFpbik7XG4gICAgfVxuXG4gICAgY29uc3RydWN0RHJpdmVuUHJvcHMudnBjT3B0aW9ucyA9IHtcbiAgICAgIHN1Ym5ldElkcyxcbiAgICAgIHNlY3VyaXR5R3JvdXBJZHM6IHByb3BzLnNlY3VyaXR5R3JvdXBJZHNcbiAgICB9O1xuXG4gICAgLy8gSWYgdGhlIGNsaWVudCBkaWQgbm90IHN1Ym1pdCBhIENsdXN0ZXJDb25maWcsIHRoZW4gd2Ugd2lsbCBjcmVhdGUgb25lXG4gICAgaWYgKCFwcm9wcy5jbGllbnREb21haW5Qcm9wcz8uZWxhc3RpY3NlYXJjaENsdXN0ZXJDb25maWcpIHtcbiAgICAgIGNvbnN0cnVjdERyaXZlblByb3BzLmVsYXN0aWNzZWFyY2hDbHVzdGVyQ29uZmlnID0gY3JlYXRlQ2x1c3RlckNvbmZpZ3VyYXRpb24oc3VibmV0SWRzLmxlbmd0aCk7XG4gICAgfVxuICB9IGVsc2UgeyAvLyBObyBWUENcbiAgICAvLyBJZiB0aGUgY2xpZW50IGRpZCBub3Qgc3VibWl0IGEgQ2x1c3RlckNvbmZpZywgdGhlbiB3ZSB3aWxsIGNyZWF0ZSBvbmUgYmFzZWQgb24gdGhlIFJlZ2lvblxuICAgIGlmICghcHJvcHMuY2xpZW50RG9tYWluUHJvcHM/LmVsYXN0aWNzZWFyY2hDbHVzdGVyQ29uZmlnKSB7XG4gICAgICBjb25zdHJ1Y3REcml2ZW5Qcm9wcy5lbGFzdGljc2VhcmNoQ2x1c3RlckNvbmZpZyA9IGNyZWF0ZUNsdXN0ZXJDb25maWd1cmF0aW9uKGNkay5TdGFjay5vZihzY29wZSkuYXZhaWxhYmlsaXR5Wm9uZXMubGVuZ3RoKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBkZWZhdWx0Q2ZuRG9tYWluUHJvcHMgPSBEZWZhdWx0Q2ZuRG9tYWluUHJvcHMocHJvcHMuZG9tYWluTmFtZSwgY29nbml0b0tpYmFuYUNvbmZpZ3VyZVJvbGUsIHByb3BzKTtcbiAgY29uc3QgZmluYWxDZm5Eb21haW5Qcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdENmbkRvbWFpblByb3BzLCBwcm9wcy5jbGllbnREb21haW5Qcm9wcywgY29uc3RydWN0RHJpdmVuUHJvcHMpO1xuXG4gIC8vIHRsc1NlY3VyaXR5UG9saWN5IGlzIHNldCBpbiBEZWZhdWx0Q2ZuRG9tYWluUHJvcHMoKSAtIGl0IGlzIHRoZVxuICAvLyBkZWZhdWx0IGJlaGF2aW9yLCBidXQgU29uYXJxdWJlIGNhbm5vdCBmb2xsb3cgdGhlIHByb2dyYW0gZmxvdyB0byBjb25maXJtIHRoaXMuXG4gIC8vIFRoaXMgaXMgY29uZmlybWVkIGJ5IHRoZSAnQ2hlY2sgdGhhdCBUTFMgMS4yIGlzIHRoZSBkZWZhdWx0JyB0ZXN0IGluIGF3cy1sYW1iZGEtZWxhc3RpY3NlYXJjaFxuICBjb25zdCBlc0RvbWFpbiA9IG5ldyBlbGFzdGljc2VhcmNoLkNmbkRvbWFpbihzY29wZSwgYEVsYXN0aWNzZWFyY2hEb21haW5gLCBmaW5hbENmbkRvbWFpblByb3BzKTsgLy8gTk9TT05BUlxuICBlc0RvbWFpbi5ub2RlLmFkZERlcGVuZGVuY3koY29nbml0b0tpYmFuYUNvbmZpZ3VyZVJvbGUpO1xuXG4gIGFkZENmblN1cHByZXNzUnVsZXMoZXNEb21haW4sIFtcbiAgICB7XG4gICAgICBpZDogXCJXMjhcIixcbiAgICAgIHJlYXNvbjogYFRoZSBFUyBEb21haW4gaXMgcGFzc2VkIGR5bmFtaWNhbGx5IGFzIGFzIHBhcmFtZXRlciBhbmQgZXhwbGljaXRseSBzcGVjaWZpZWQgdG8gZW5zdXJlIHRoYXQgSUFNIHBvbGljaWVzIGFyZSBjb25maWd1cmVkIHRvIGxvY2tkb3duIGFjY2VzcyB0byB0aGlzIHNwZWNpZmljIEVTIGluc3RhbmNlIG9ubHlgLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFwiVzkwXCIsXG4gICAgICByZWFzb246IGBUaGlzIGlzIG5vdCBhIHJ1bGUgZm9yIHRoZSBnZW5lcmFsIGNhc2UsIGp1c3QgZm9yIHNwZWNpZmljIHVzZSBjYXNlcy9pbmR1c3RyaWVzYCxcbiAgICB9LFxuICBdKTtcblxuICBhZGRDZm5HdWFyZFN1cHByZXNzUnVsZXMoZXNEb21haW4sIFtcIkNGTl9OT19FWFBMSUNJVF9SRVNPVVJDRV9OQU1FU1wiXSk7XG5cbiAgcmV0dXJuIHsgZG9tYWluOiBlc0RvbWFpbiwgcm9sZTogY29nbml0b0tpYmFuYUNvbmZpZ3VyZVJvbGUgfTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRFbGFzdGljU2VhcmNoQ1dBbGFybXMoc2NvcGU6IENvbnN0cnVjdCk6IGNsb3Vkd2F0Y2guQWxhcm1bXSB7XG4gIC8vIFNldHVwIENXIEFsYXJtcyBmb3IgRVNcbiAgY29uc3QgYWxhcm1zOiBjbG91ZHdhdGNoLkFsYXJtW10gPSBuZXcgQXJyYXkoKTtcblxuICAvLyBDbHVzdGVyU3RhdHVzLnJlZCBtYXhpbXVtIGlzID49IDEgZm9yIDEgbWludXRlLCAxIGNvbnNlY3V0aXZlIHRpbWVcbiAgYWxhcm1zLnB1c2gobmV3IGNsb3Vkd2F0Y2guQWxhcm0oc2NvcGUsICdTdGF0dXNSZWRBbGFybScsIHtcbiAgICBtZXRyaWM6IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvRVMnLFxuICAgICAgbWV0cmljTmFtZTogJ0NsdXN0ZXJTdGF0dXMucmVkJyxcbiAgICAgIHN0YXRpc3RpYzogJ01heGltdW0nLFxuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgfSksXG4gICAgdGhyZXNob2xkOiAxLFxuICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICBhbGFybURlc2NyaXB0aW9uOiAnQXQgbGVhc3Qgb25lIHByaW1hcnkgc2hhcmQgYW5kIGl0cyByZXBsaWNhcyBhcmUgbm90IGFsbG9jYXRlZCB0byBhIG5vZGUuICdcbiAgfSkpO1xuXG4gIC8vIENsdXN0ZXJTdGF0dXMueWVsbG93IG1heGltdW0gaXMgPj0gMSBmb3IgMSBtaW51dGUsIDEgY29uc2VjdXRpdmUgdGltZVxuICBhbGFybXMucHVzaChuZXcgY2xvdWR3YXRjaC5BbGFybShzY29wZSwgJ1N0YXR1c1llbGxvd0FsYXJtJywge1xuICAgIG1ldHJpYzogbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9FUycsXG4gICAgICBtZXRyaWNOYW1lOiAnQ2x1c3RlclN0YXR1cy55ZWxsb3cnLFxuICAgICAgc3RhdGlzdGljOiAnTWF4aW11bScsXG4gICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICB9KSxcbiAgICB0aHJlc2hvbGQ6IDEsXG4gICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgIGFsYXJtRGVzY3JpcHRpb246ICdBdCBsZWFzdCBvbmUgcmVwbGljYSBzaGFyZCBpcyBub3QgYWxsb2NhdGVkIHRvIGEgbm9kZS4nXG4gIH0pKTtcblxuICAvLyBGcmVlU3RvcmFnZVNwYWNlIG1pbmltdW0gaXMgPD0gMjA0ODAgZm9yIDEgbWludXRlLCAxIGNvbnNlY3V0aXZlIHRpbWVcbiAgYWxhcm1zLnB1c2gobmV3IGNsb3Vkd2F0Y2guQWxhcm0oc2NvcGUsICdGcmVlU3RvcmFnZVNwYWNlVG9vTG93QWxhcm0nLCB7XG4gICAgbWV0cmljOiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL0VTJyxcbiAgICAgIG1ldHJpY05hbWU6ICdGcmVlU3RvcmFnZVNwYWNlJyxcbiAgICAgIHN0YXRpc3RpYzogJ01pbmltdW0nLFxuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgfSksXG4gICAgdGhyZXNob2xkOiAyMDAwMCxcbiAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgYWxhcm1EZXNjcmlwdGlvbjogJ0Egbm9kZSBpbiB5b3VyIGNsdXN0ZXIgaXMgZG93biB0byAyMCBHaUIgb2YgZnJlZSBzdG9yYWdlIHNwYWNlLidcbiAgfSkpO1xuXG4gIC8vIENsdXN0ZXJJbmRleFdyaXRlc0Jsb2NrZWQgaXMgPj0gMSBmb3IgNSBtaW51dGVzLCAxIGNvbnNlY3V0aXZlIHRpbWVcbiAgYWxhcm1zLnB1c2gobmV3IGNsb3Vkd2F0Y2guQWxhcm0oc2NvcGUsICdJbmRleFdyaXRlc0Jsb2NrZWRUb29IaWdoQWxhcm0nLCB7XG4gICAgbWV0cmljOiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL0VTJyxcbiAgICAgIG1ldHJpY05hbWU6ICdDbHVzdGVySW5kZXhXcml0ZXNCbG9ja2VkJyxcbiAgICAgIHN0YXRpc3RpYzogJ01heGltdW0nLFxuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24uc2Vjb25kcygzMDApLFxuICAgIH0pLFxuICAgIHRocmVzaG9sZDogMSxcbiAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgYWxhcm1EZXNjcmlwdGlvbjogJ1lvdXIgY2x1c3RlciBpcyBibG9ja2luZyB3cml0ZSByZXF1ZXN0cy4nXG4gIH0pKTtcblxuICAvLyBBdXRvbWF0ZWRTbmFwc2hvdEZhaWx1cmUgbWF4aW11bSBpcyA+PSAxIGZvciAxIG1pbnV0ZSwgMSBjb25zZWN1dGl2ZSB0aW1lXG4gIGFsYXJtcy5wdXNoKG5ldyBjbG91ZHdhdGNoLkFsYXJtKHNjb3BlLCAnQXV0b21hdGVkU25hcHNob3RGYWlsdXJlVG9vSGlnaEFsYXJtJywge1xuICAgIG1ldHJpYzogbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9FUycsXG4gICAgICBtZXRyaWNOYW1lOiAnQXV0b21hdGVkU25hcHNob3RGYWlsdXJlJyxcbiAgICAgIHN0YXRpc3RpYzogJ01heGltdW0nLFxuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgfSksXG4gICAgdGhyZXNob2xkOiAxLFxuICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICBhbGFybURlc2NyaXB0aW9uOiAnQW4gYXV0b21hdGVkIHNuYXBzaG90IGZhaWxlZC4gVGhpcyBmYWlsdXJlIGlzIG9mdGVuIHRoZSByZXN1bHQgb2YgYSByZWQgY2x1c3RlciBoZWFsdGggc3RhdHVzLidcbiAgfSkpO1xuXG4gIC8vIENQVVV0aWxpemF0aW9uIG1heGltdW0gaXMgPj0gODAlIGZvciAxNSBtaW51dGVzLCAzIGNvbnNlY3V0aXZlIHRpbWVzXG4gIGFsYXJtcy5wdXNoKG5ldyBjbG91ZHdhdGNoLkFsYXJtKHNjb3BlLCAnQ1BVVXRpbGl6YXRpb25Ub29IaWdoQWxhcm0nLCB7XG4gICAgbWV0cmljOiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL0VTJyxcbiAgICAgIG1ldHJpY05hbWU6ICdDUFVVdGlsaXphdGlvbicsXG4gICAgICBzdGF0aXN0aWM6ICdBdmVyYWdlJyxcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLnNlY29uZHMoOTAwKSxcbiAgICB9KSxcbiAgICB0aHJlc2hvbGQ6IDgwLFxuICAgIGV2YWx1YXRpb25QZXJpb2RzOiAzLFxuICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICBhbGFybURlc2NyaXB0aW9uOiAnMTAwJSBDUFUgdXRpbGl6YXRpb24gaXMgbm90IHVuY29tbW9uLCBidXQgc3VzdGFpbmVkIGhpZ2ggdXNhZ2UgaXMgcHJvYmxlbWF0aWMuIENvbnNpZGVyIHVzaW5nIGxhcmdlciBpbnN0YW5jZSB0eXBlcyBvciBhZGRpbmcgaW5zdGFuY2VzLidcbiAgfSkpO1xuXG4gIC8vIEpWTU1lbW9yeVByZXNzdXJlIG1heGltdW0gaXMgPj0gODAlIGZvciA1IG1pbnV0ZXMsIDMgY29uc2VjdXRpdmUgdGltZXNcbiAgYWxhcm1zLnB1c2gobmV3IGNsb3Vkd2F0Y2guQWxhcm0oc2NvcGUsICdKVk1NZW1vcnlQcmVzc3VyZVRvb0hpZ2hBbGFybScsIHtcbiAgICBtZXRyaWM6IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvRVMnLFxuICAgICAgbWV0cmljTmFtZTogJ0pWTU1lbW9yeVByZXNzdXJlJyxcbiAgICAgIHN0YXRpc3RpYzogJ0F2ZXJhZ2UnLFxuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24uc2Vjb25kcyg5MDApLFxuICAgIH0pLFxuICAgIHRocmVzaG9sZDogODAsXG4gICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgIGFsYXJtRGVzY3JpcHRpb246ICdBdmVyYWdlIEpWTSBtZW1vcnkgcHJlc3N1cmUgb3ZlciBsYXN0IDE1IG1pbnV0ZXMgdG9vIGhpZ2guIENvbnNpZGVyIHNjYWxpbmcgdmVydGljYWxseS4nXG4gIH0pKTtcblxuICAvLyBNYXN0ZXJDUFVVdGlsaXphdGlvbiBtYXhpbXVtIGlzID49IDUwJSBmb3IgMTUgbWludXRlcywgMyBjb25zZWN1dGl2ZSB0aW1lc1xuICBhbGFybXMucHVzaChuZXcgY2xvdWR3YXRjaC5BbGFybShzY29wZSwgJ01hc3RlckNQVVV0aWxpemF0aW9uVG9vSGlnaEFsYXJtJywge1xuICAgIG1ldHJpYzogbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9FUycsXG4gICAgICBtZXRyaWNOYW1lOiAnTWFzdGVyQ1BVVXRpbGl6YXRpb24nLFxuICAgICAgc3RhdGlzdGljOiAnQXZlcmFnZScsXG4gICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDkwMCksXG4gICAgfSksXG4gICAgdGhyZXNob2xkOiA1MCxcbiAgICBldmFsdWF0aW9uUGVyaW9kczogMyxcbiAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgYWxhcm1EZXNjcmlwdGlvbjogJ0F2ZXJhZ2UgQ1BVIHV0aWxpemF0aW9uIG92ZXIgbGFzdCA0NSBtaW51dGVzIHRvbyBoaWdoLiBDb25zaWRlciB1c2luZyBsYXJnZXIgaW5zdGFuY2UgdHlwZXMgZm9yIHlvdXIgZGVkaWNhdGVkIG1hc3RlciBub2Rlcy4nXG4gIH0pKTtcblxuICAvLyBNYXN0ZXJKVk1NZW1vcnlQcmVzc3VyZSBtYXhpbXVtIGlzID49IDgwJSBmb3IgMTUgbWludXRlcywgMSBjb25zZWN1dGl2ZSB0aW1lXG4gIGFsYXJtcy5wdXNoKG5ldyBjbG91ZHdhdGNoLkFsYXJtKHNjb3BlLCAnTWFzdGVySlZNTWVtb3J5UHJlc3N1cmVUb29IaWdoQWxhcm0nLCB7XG4gICAgbWV0cmljOiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL0VTJyxcbiAgICAgIG1ldHJpY05hbWU6ICdNYXN0ZXJKVk1NZW1vcnlQcmVzc3VyZScsXG4gICAgICBzdGF0aXN0aWM6ICdBdmVyYWdlJyxcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLnNlY29uZHMoOTAwKSxcbiAgICB9KSxcbiAgICB0aHJlc2hvbGQ6IDUwLFxuICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICBhbGFybURlc2NyaXB0aW9uOiAnQXZlcmFnZSBKVk0gbWVtb3J5IHByZXNzdXJlIG92ZXIgbGFzdCAxNSBtaW51dGVzIHRvbyBoaWdoLiBDb25zaWRlciBzY2FsaW5nIHZlcnRpY2FsbHkuJ1xuICB9KSk7XG5cbiAgcmV0dXJuIGFsYXJtcztcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ2x1c3RlckNvbmZpZ3VyYXRpb24obnVtYmVyT2ZBenM/OiBudW1iZXIpOiBlbGFzdGljc2VhcmNoLkNmbkRvbWFpbi5FbGFzdGljc2VhcmNoQ2x1c3RlckNvbmZpZ1Byb3BlcnR5IHtcbiAgcmV0dXJuIHtcbiAgICBkZWRpY2F0ZWRNYXN0ZXJFbmFibGVkOiB0cnVlLFxuICAgIGRlZGljYXRlZE1hc3RlckNvdW50OiAzLFxuICAgIHpvbmVBd2FyZW5lc3NFbmFibGVkOiB0cnVlLFxuICAgIHpvbmVBd2FyZW5lc3NDb25maWc6IHtcbiAgICAgIGF2YWlsYWJpbGl0eVpvbmVDb3VudDogbnVtYmVyT2ZBenNcbiAgICB9LFxuICAgIGluc3RhbmNlQ291bnQ6IG51bWJlck9mQXpzLFxuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVLaWJhbmFDb2duaXRvUm9sZShcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgdXNlclBvb2w6IGNvZ25pdG8uVXNlclBvb2wsXG4gIGlkZW50aXR5cG9vbDogY29nbml0by5DZm5JZGVudGl0eVBvb2wsXG4gIGRvbWFpbk5hbWU6IHN0cmluZ1xuKTogaWFtLlJvbGUge1xuICAvLyBTZXR1cCB0aGUgSUFNIFJvbGUgJiBwb2xpY3kgZm9yIEVTIHRvIGNvbmZpZ3VyZSBDb2duaXRvIFVzZXIgcG9vbCBhbmQgSWRlbnRpdHkgcG9vbFxuICBjb25zdCBjb2duaXRvS2liYW5hQ29uZmlndXJlUm9sZSA9IG5ldyBpYW0uUm9sZShcbiAgICBzY29wZSxcbiAgICBcIkNvZ25pdG9LaWJhbmFDb25maWd1cmVSb2xlXCIsXG4gICAge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJlcy5hbWF6b25hd3MuY29tXCIpLFxuICAgIH1cbiAgKTtcblxuICBjb25zdCBjb2duaXRvS2liYW5hQ29uZmlndXJlUm9sZVBvbGljeSA9IG5ldyBpYW0uUG9saWN5KFxuICAgIHNjb3BlLFxuICAgIFwiQ29nbml0b0tpYmFuYUNvbmZpZ3VyZVJvbGVQb2xpY3lcIixcbiAgICB7XG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBcImNvZ25pdG8taWRwOkRlc2NyaWJlVXNlclBvb2xcIixcbiAgICAgICAgICAgIFwiY29nbml0by1pZHA6Q3JlYXRlVXNlclBvb2xDbGllbnRcIixcbiAgICAgICAgICAgIFwiY29nbml0by1pZHA6RGVsZXRlVXNlclBvb2xDbGllbnRcIixcbiAgICAgICAgICAgIFwiY29nbml0by1pZHA6RGVzY3JpYmVVc2VyUG9vbENsaWVudFwiLFxuICAgICAgICAgICAgXCJjb2duaXRvLWlkcDpBZG1pbkluaXRpYXRlQXV0aFwiLFxuICAgICAgICAgICAgXCJjb2duaXRvLWlkcDpBZG1pblVzZXJHbG9iYWxTaWduT3V0XCIsXG4gICAgICAgICAgICBcImNvZ25pdG8taWRwOkxpc3RVc2VyUG9vbENsaWVudHNcIixcbiAgICAgICAgICAgIFwiY29nbml0by1pZGVudGl0eTpEZXNjcmliZUlkZW50aXR5UG9vbFwiLFxuICAgICAgICAgICAgXCJjb2duaXRvLWlkZW50aXR5OlVwZGF0ZUlkZW50aXR5UG9vbFwiLFxuICAgICAgICAgICAgXCJjb2duaXRvLWlkZW50aXR5OlNldElkZW50aXR5UG9vbFJvbGVzXCIsXG4gICAgICAgICAgICBcImNvZ25pdG8taWRlbnRpdHk6R2V0SWRlbnRpdHlQb29sUm9sZXNcIixcbiAgICAgICAgICAgIFwiZXM6VXBkYXRlRWxhc3RpY3NlYXJjaERvbWFpbkNvbmZpZ1wiLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICB1c2VyUG9vbC51c2VyUG9vbEFybixcbiAgICAgICAgICAgIGBhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06Y29nbml0by1pZGVudGl0eToke2Nkay5Bd3MuUkVHSU9OfToke2Nkay5Bd3MuQUNDT1VOVF9JRH06aWRlbnRpdHlwb29sLyR7aWRlbnRpdHlwb29sLnJlZn1gLFxuICAgICAgICAgICAgYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTplczoke2Nkay5Bd3MuUkVHSU9OfToke2Nkay5Bd3MuQUNDT1VOVF9JRH06ZG9tYWluLyR7ZG9tYWluTmFtZX1gLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1wiaWFtOlBhc3NSb2xlXCJdLFxuICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgIFN0cmluZ0xpa2U6IHtcbiAgICAgICAgICAgICAgXCJpYW06UGFzc2VkVG9TZXJ2aWNlXCI6IFwiY29nbml0by1pZGVudGl0eS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbY29nbml0b0tpYmFuYUNvbmZpZ3VyZVJvbGUucm9sZUFybl0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9XG4gICk7XG5cbiAgY29nbml0b0tpYmFuYUNvbmZpZ3VyZVJvbGVQb2xpY3kuYXR0YWNoVG9Sb2xlKGNvZ25pdG9LaWJhbmFDb25maWd1cmVSb2xlKTtcbiAgcmV0dXJuIGNvZ25pdG9LaWJhbmFDb25maWd1cmVSb2xlO1xufVxuIl19