@aws-solutions-constructs/aws-lambda-sns 2.44.0 → 2.46.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.
@@ -111,7 +111,7 @@
111
111
  "testlambdasnsReplaceDefaultSecurityGroupsecuritygroup071D13CB": {
112
112
  "Type": "AWS::EC2::SecurityGroup",
113
113
  "Properties": {
114
- "GroupDescription": "deployFunctionWithVpc/test-lambda-sns/ReplaceDefaultSecurityGroup-security-group",
114
+ "GroupDescription": "lamsns-deployFunctionWithVpc/test-lambda-sns/ReplaceDefaultSecurityGroup-security-group",
115
115
  "SecurityGroupEgress": [
116
116
  {
117
117
  "CidrIp": "0.0.0.0/0",
@@ -147,12 +147,6 @@
147
147
  },
148
148
  "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"
149
149
  },
150
- "Role": {
151
- "Fn::GetAtt": [
152
- "testlambdasnsLambdaFunctionServiceRole9C412F74",
153
- "Arn"
154
- ]
155
- },
156
150
  "Environment": {
157
151
  "Variables": {
158
152
  "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1",
@@ -168,6 +162,12 @@
168
162
  }
169
163
  },
170
164
  "Handler": "index.handler",
165
+ "Role": {
166
+ "Fn::GetAtt": [
167
+ "testlambdasnsLambdaFunctionServiceRole9C412F74",
168
+ "Arn"
169
+ ]
170
+ },
171
171
  "Runtime": "nodejs16.x",
172
172
  "TracingConfig": {
173
173
  "Mode": "Active"
@@ -339,7 +339,7 @@
339
339
  "Tags": [
340
340
  {
341
341
  "Key": "Name",
342
- "Value": "deployFunctionWithVpc/Vpc"
342
+ "Value": "lamsns-deployFunctionWithVpc/Vpc"
343
343
  }
344
344
  ]
345
345
  }
@@ -347,9 +347,6 @@
347
347
  "VpcisolatedSubnet1SubnetE62B1B9B": {
348
348
  "Type": "AWS::EC2::Subnet",
349
349
  "Properties": {
350
- "VpcId": {
351
- "Ref": "Vpc8378EB38"
352
- },
353
350
  "AvailabilityZone": "test-region-1a",
354
351
  "CidrBlock": "10.0.0.0/18",
355
352
  "MapPublicIpOnLaunch": false,
@@ -364,23 +361,26 @@
364
361
  },
365
362
  {
366
363
  "Key": "Name",
367
- "Value": "deployFunctionWithVpc/Vpc/isolatedSubnet1"
364
+ "Value": "lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1"
368
365
  }
369
- ]
366
+ ],
367
+ "VpcId": {
368
+ "Ref": "Vpc8378EB38"
369
+ }
370
370
  }
371
371
  },
372
372
  "VpcisolatedSubnet1RouteTableE442650B": {
373
373
  "Type": "AWS::EC2::RouteTable",
374
374
  "Properties": {
375
- "VpcId": {
376
- "Ref": "Vpc8378EB38"
377
- },
378
375
  "Tags": [
379
376
  {
380
377
  "Key": "Name",
381
- "Value": "deployFunctionWithVpc/Vpc/isolatedSubnet1"
378
+ "Value": "lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet1"
382
379
  }
383
- ]
380
+ ],
381
+ "VpcId": {
382
+ "Ref": "Vpc8378EB38"
383
+ }
384
384
  }
385
385
  },
386
386
  "VpcisolatedSubnet1RouteTableAssociationD259E31A": {
@@ -397,9 +397,6 @@
397
397
  "VpcisolatedSubnet2Subnet39217055": {
398
398
  "Type": "AWS::EC2::Subnet",
399
399
  "Properties": {
400
- "VpcId": {
401
- "Ref": "Vpc8378EB38"
402
- },
403
400
  "AvailabilityZone": "test-region-1b",
404
401
  "CidrBlock": "10.0.64.0/18",
405
402
  "MapPublicIpOnLaunch": false,
@@ -414,23 +411,26 @@
414
411
  },
415
412
  {
416
413
  "Key": "Name",
417
- "Value": "deployFunctionWithVpc/Vpc/isolatedSubnet2"
414
+ "Value": "lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2"
418
415
  }
419
- ]
416
+ ],
417
+ "VpcId": {
418
+ "Ref": "Vpc8378EB38"
419
+ }
420
420
  }
421
421
  },
422
422
  "VpcisolatedSubnet2RouteTable334F9764": {
423
423
  "Type": "AWS::EC2::RouteTable",
424
424
  "Properties": {
425
- "VpcId": {
426
- "Ref": "Vpc8378EB38"
427
- },
428
425
  "Tags": [
429
426
  {
430
427
  "Key": "Name",
431
- "Value": "deployFunctionWithVpc/Vpc/isolatedSubnet2"
428
+ "Value": "lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet2"
432
429
  }
433
- ]
430
+ ],
431
+ "VpcId": {
432
+ "Ref": "Vpc8378EB38"
433
+ }
434
434
  }
435
435
  },
436
436
  "VpcisolatedSubnet2RouteTableAssociation25A4716F": {
@@ -447,9 +447,6 @@
447
447
  "VpcisolatedSubnet3Subnet44F2537D": {
448
448
  "Type": "AWS::EC2::Subnet",
449
449
  "Properties": {
450
- "VpcId": {
451
- "Ref": "Vpc8378EB38"
452
- },
453
450
  "AvailabilityZone": "test-region-1c",
454
451
  "CidrBlock": "10.0.128.0/18",
455
452
  "MapPublicIpOnLaunch": false,
@@ -464,23 +461,26 @@
464
461
  },
465
462
  {
466
463
  "Key": "Name",
467
- "Value": "deployFunctionWithVpc/Vpc/isolatedSubnet3"
464
+ "Value": "lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet3"
468
465
  }
469
- ]
466
+ ],
467
+ "VpcId": {
468
+ "Ref": "Vpc8378EB38"
469
+ }
470
470
  }
471
471
  },
472
472
  "VpcisolatedSubnet3RouteTableA2F6BBC0": {
473
473
  "Type": "AWS::EC2::RouteTable",
474
474
  "Properties": {
475
- "VpcId": {
476
- "Ref": "Vpc8378EB38"
477
- },
478
475
  "Tags": [
479
476
  {
480
477
  "Key": "Name",
481
- "Value": "deployFunctionWithVpc/Vpc/isolatedSubnet3"
478
+ "Value": "lamsns-deployFunctionWithVpc/Vpc/isolatedSubnet3"
482
479
  }
483
- ]
480
+ ],
481
+ "VpcId": {
482
+ "Ref": "Vpc8378EB38"
483
+ }
484
484
  }
485
485
  },
486
486
  "VpcisolatedSubnet3RouteTableAssociationDC010BEB": {
@@ -512,7 +512,7 @@
512
512
  "Tags": [
513
513
  {
514
514
  "Key": "Name",
515
- "Value": "deployFunctionWithVpc/Vpc"
515
+ "Value": "lamsns-deployFunctionWithVpc/Vpc/FlowLog"
516
516
  }
517
517
  ]
518
518
  }
@@ -564,7 +564,7 @@
564
564
  "Tags": [
565
565
  {
566
566
  "Key": "Name",
567
- "Value": "deployFunctionWithVpc/Vpc"
567
+ "Value": "lamsns-deployFunctionWithVpc/Vpc/FlowLog"
568
568
  }
569
569
  ]
570
570
  },
@@ -584,11 +584,6 @@
584
584
  "VpcFlowLog8FF33A73": {
585
585
  "Type": "AWS::EC2::FlowLog",
586
586
  "Properties": {
587
- "ResourceId": {
588
- "Ref": "Vpc8378EB38"
589
- },
590
- "ResourceType": "VPC",
591
- "TrafficType": "ALL",
592
587
  "DeliverLogsPermissionArn": {
593
588
  "Fn::GetAtt": [
594
589
  "VpcFlowLogIAMRole6A475D41",
@@ -599,17 +594,31 @@
599
594
  "LogGroupName": {
600
595
  "Ref": "VpcFlowLogLogGroup7B5C56B9"
601
596
  },
597
+ "ResourceId": {
598
+ "Ref": "Vpc8378EB38"
599
+ },
600
+ "ResourceType": "VPC",
602
601
  "Tags": [
603
602
  {
604
603
  "Key": "Name",
605
- "Value": "deployFunctionWithVpc/Vpc"
604
+ "Value": "lamsns-deployFunctionWithVpc/Vpc/FlowLog"
606
605
  }
607
- ]
606
+ ],
607
+ "TrafficType": "ALL"
608
608
  }
609
609
  },
610
610
  "VpcSNS5B664381": {
611
611
  "Type": "AWS::EC2::VPCEndpoint",
612
612
  "Properties": {
613
+ "PrivateDnsEnabled": true,
614
+ "SecurityGroupIds": [
615
+ {
616
+ "Fn::GetAtt": [
617
+ "lamsnsdeployFunctionWithVpcSNSsecuritygroup072F337C",
618
+ "GroupId"
619
+ ]
620
+ }
621
+ ],
613
622
  "ServiceName": {
614
623
  "Fn::Join": [
615
624
  "",
@@ -622,18 +631,6 @@
622
631
  ]
623
632
  ]
624
633
  },
625
- "VpcId": {
626
- "Ref": "Vpc8378EB38"
627
- },
628
- "PrivateDnsEnabled": true,
629
- "SecurityGroupIds": [
630
- {
631
- "Fn::GetAtt": [
632
- "deployFunctionWithVpcSNSsecuritygroup5E54C413",
633
- "GroupId"
634
- ]
635
- }
636
- ],
637
634
  "SubnetIds": [
638
635
  {
639
636
  "Ref": "VpcisolatedSubnet1SubnetE62B1B9B"
@@ -645,13 +642,16 @@
645
642
  "Ref": "VpcisolatedSubnet3Subnet44F2537D"
646
643
  }
647
644
  ],
648
- "VpcEndpointType": "Interface"
645
+ "VpcEndpointType": "Interface",
646
+ "VpcId": {
647
+ "Ref": "Vpc8378EB38"
648
+ }
649
649
  }
650
650
  },
651
- "deployFunctionWithVpcSNSsecuritygroup5E54C413": {
651
+ "lamsnsdeployFunctionWithVpcSNSsecuritygroup072F337C": {
652
652
  "Type": "AWS::EC2::SecurityGroup",
653
653
  "Properties": {
654
- "GroupDescription": "deployFunctionWithVpc/deployFunctionWithVpc-SNS-security-group",
654
+ "GroupDescription": "lamsns-deployFunctionWithVpc/lamsns-deployFunctionWithVpc-SNS-security-group",
655
655
  "SecurityGroupEgress": [
656
656
  {
657
657
  "CidrIp": "0.0.0.0/0",
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
6
+ * with the License. A copy of the License is located at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
11
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
12
+ * and limitations under the License.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ // Imports
16
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
17
+ const lib_1 = require("../lib");
18
+ const lambda = require("aws-cdk-lib/aws-lambda");
19
+ const core_1 = require("@aws-solutions-constructs/core");
20
+ // Setup
21
+ const app = new aws_cdk_lib_1.App();
22
+ const stack = new aws_cdk_lib_1.Stack(app, core_1.generateIntegStackName(__filename));
23
+ stack.templateOptions.description = "Integration Test for aws-lambda-sns";
24
+ // Definitions
25
+ const props = {
26
+ lambdaFunctionProps: {
27
+ runtime: lambda.Runtime.NODEJS_16_X,
28
+ handler: "index.handler",
29
+ code: lambda.Code.fromAsset(`${__dirname}/lambda`),
30
+ },
31
+ deployVpc: true,
32
+ };
33
+ new lib_1.LambdaToSns(stack, "test-lambda-sns", props);
34
+ // Synth
35
+ app.synth();
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcubGFtc25zLWRlcGxveUZ1bmN0aW9uV2l0aFZwYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVnLmxhbXNucy1kZXBsb3lGdW5jdGlvbldpdGhWcGMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILFVBQVU7QUFDViw2Q0FBeUM7QUFDekMsZ0NBQXVEO0FBQ3ZELGlEQUFpRDtBQUNqRCx5REFBd0U7QUFFeEUsUUFBUTtBQUNSLE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssQ0FBQyxHQUFHLEVBQUUsNkJBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUNqRSxLQUFLLENBQUMsZUFBZSxDQUFDLFdBQVcsR0FBRyxxQ0FBcUMsQ0FBQztBQUUxRSxjQUFjO0FBQ2QsTUFBTSxLQUFLLEdBQXFCO0lBQzlCLG1CQUFtQixFQUFFO1FBQ25CLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7UUFDbkMsT0FBTyxFQUFFLGVBQWU7UUFDeEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxTQUFTLENBQUM7S0FDbkQ7SUFDRCxTQUFTLEVBQUUsSUFBSTtDQUNoQixDQUFDO0FBRUYsSUFBSSxpQkFBVyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUVqRCxRQUFRO0FBQ1IsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLy8gSW1wb3J0c1xuaW1wb3J0IHsgQXBwLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgTGFtYmRhVG9TbnMsIExhbWJkYVRvU25zUHJvcHMgfSBmcm9tIFwiLi4vbGliXCI7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IGdlbmVyYXRlSW50ZWdTdGFja05hbWUgfSBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuXG4vLyBTZXR1cFxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCBnZW5lcmF0ZUludGVnU3RhY2tOYW1lKF9fZmlsZW5hbWUpKTtcbnN0YWNrLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbiA9IFwiSW50ZWdyYXRpb24gVGVzdCBmb3IgYXdzLWxhbWJkYS1zbnNcIjtcblxuLy8gRGVmaW5pdGlvbnNcbmNvbnN0IHByb3BzOiBMYW1iZGFUb1Nuc1Byb3BzID0ge1xuICBsYW1iZGFGdW5jdGlvblByb3BzOiB7XG4gICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE2X1gsXG4gICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KGAke19fZGlybmFtZX0vbGFtYmRhYCksXG4gIH0sXG4gIGRlcGxveVZwYzogdHJ1ZSxcbn07XG5cbm5ldyBMYW1iZGFUb1NucyhzdGFjaywgXCJ0ZXN0LWxhbWJkYS1zbnNcIiwgcHJvcHMpO1xuXG4vLyBTeW50aFxuYXBwLnN5bnRoKCk7XG4iXX0=
@@ -106,12 +106,6 @@
106
106
  },
107
107
  "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip"
108
108
  },
109
- "Role": {
110
- "Fn::GetAtt": [
111
- "LambdaFunctionServiceRole0C4CDE0B",
112
- "Arn"
113
- ]
114
- },
115
109
  "Environment": {
116
110
  "Variables": {
117
111
  "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1",
@@ -127,6 +121,12 @@
127
121
  }
128
122
  },
129
123
  "Handler": "index.handler",
124
+ "Role": {
125
+ "Fn::GetAtt": [
126
+ "LambdaFunctionServiceRole0C4CDE0B",
127
+ "Arn"
128
+ ]
129
+ },
130
130
  "Runtime": "nodejs16.x",
131
131
  "TracingConfig": {
132
132
  "Mode": "Active"
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
6
+ * with the License. A copy of the License is located at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
11
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
12
+ * and limitations under the License.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ // Imports
16
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
17
+ const lib_1 = require("../lib");
18
+ const lambda = require("aws-cdk-lib/aws-lambda");
19
+ const defaults = require("@aws-solutions-constructs/core");
20
+ const core_1 = require("@aws-solutions-constructs/core");
21
+ // Setup
22
+ const app = new aws_cdk_lib_1.App();
23
+ const stack = new aws_cdk_lib_1.Stack(app, core_1.generateIntegStackName(__filename));
24
+ stack.templateOptions.description = 'Integration Test for aws-lambda-sns';
25
+ // Definitions
26
+ const lambdaFunctionProps = {
27
+ runtime: lambda.Runtime.NODEJS_16_X,
28
+ handler: 'index.handler',
29
+ code: lambda.Code.fromAsset(`${__dirname}/lambda`)
30
+ };
31
+ const func = defaults.deployLambdaFunction(stack, lambdaFunctionProps);
32
+ const props = {
33
+ existingLambdaObj: func
34
+ };
35
+ new lib_1.LambdaToSns(stack, 'test-lambda-sns', props);
36
+ // Synth
37
+ app.synth();
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcubGFtc25zLWV4aXN0aW5nRnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy5sYW1zbnMtZXhpc3RpbmdGdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsVUFBVTtBQUNWLDZDQUF5QztBQUN6QyxnQ0FBdUQ7QUFDdkQsaURBQWlEO0FBQ2pELDJEQUEyRDtBQUMzRCx5REFBd0U7QUFFeEUsUUFBUTtBQUNSLE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssQ0FBQyxHQUFHLEVBQUUsNkJBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUNqRSxLQUFLLENBQUMsZUFBZSxDQUFDLFdBQVcsR0FBRyxxQ0FBcUMsQ0FBQztBQUUxRSxjQUFjO0FBQ2QsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO0lBQ25DLE9BQU8sRUFBRSxlQUFlO0lBQ3hCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsU0FBUyxDQUFDO0NBQ25ELENBQUM7QUFFRixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFFdkUsTUFBTSxLQUFLLEdBQXFCO0lBQzlCLGlCQUFpQixFQUFFLElBQUk7Q0FDeEIsQ0FBQztBQUVGLElBQUksaUJBQVcsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFakQsUUFBUTtBQUNSLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIEltcG9ydHNcbmltcG9ydCB7IEFwcCwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IExhbWJkYVRvU25zLCBMYW1iZGFUb1Nuc1Byb3BzIH0gZnJvbSBcIi4uL2xpYlwiO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgZGVmYXVsdHMgZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlJztcbmltcG9ydCB7IGdlbmVyYXRlSW50ZWdTdGFja05hbWUgfSBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuXG4vLyBTZXR1cFxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCBnZW5lcmF0ZUludGVnU3RhY2tOYW1lKF9fZmlsZW5hbWUpKTtcbnN0YWNrLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbiA9ICdJbnRlZ3JhdGlvbiBUZXN0IGZvciBhd3MtbGFtYmRhLXNucyc7XG5cbi8vIERlZmluaXRpb25zXG5jb25zdCBsYW1iZGFGdW5jdGlvblByb3BzID0ge1xuICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTZfWCxcbiAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoYCR7X19kaXJuYW1lfS9sYW1iZGFgKVxufTtcblxuY29uc3QgZnVuYyA9IGRlZmF1bHRzLmRlcGxveUxhbWJkYUZ1bmN0aW9uKHN0YWNrLCBsYW1iZGFGdW5jdGlvblByb3BzKTtcblxuY29uc3QgcHJvcHM6IExhbWJkYVRvU25zUHJvcHMgPSB7XG4gIGV4aXN0aW5nTGFtYmRhT2JqOiBmdW5jXG59O1xuXG5uZXcgTGFtYmRhVG9TbnMoc3RhY2ssICd0ZXN0LWxhbWJkYS1zbnMnLCBwcm9wcyk7XG5cbi8vIFN5bnRoXG5hcHAuc3ludGgoKTtcbiJdfQ==