cdk-lambda-subminute 0.1.38 → 2.0.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/API.md CHANGED
@@ -23,8 +23,8 @@ Name|Description
23
23
 
24
24
 
25
25
 
26
- __Implements__: [IConstruct](#constructs-iconstruct), [IConstruct](#aws-cdk-core-iconstruct), [IConstruct](#constructs-iconstruct), [IDependable](#aws-cdk-core-idependable)
27
- __Extends__: [Construct](#aws-cdk-core-construct)
26
+ __Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable)
27
+ __Extends__: [Construct](#constructs-construct)
28
28
 
29
29
  ### Initializer
30
30
 
@@ -35,10 +35,10 @@ __Extends__: [Construct](#aws-cdk-core-construct)
35
35
  new IteratorLambda(scope: Construct, name: string, props: IteratorLambdaProps)
36
36
  ```
37
37
 
38
- * **scope** (<code>[Construct](#aws-cdk-core-construct)</code>) *No description*
38
+ * **scope** (<code>[Construct](#constructs-construct)</code>) *No description*
39
39
  * **name** (<code>string</code>) *No description*
40
40
  * **props** (<code>[IteratorLambdaProps](#cdk-lambda-subminute-iteratorlambdaprops)</code>) *No description*
41
- * **targetFunction** (<code>[IFunction](#aws-cdk-aws-lambda-ifunction)</code>) The Lambda function that is going to be executed per time unit less than one minute.
41
+ * **targetFunction** (<code>[aws_lambda.IFunction](#aws-cdk-lib-aws-lambda-ifunction)</code>) The Lambda function that is going to be executed per time unit less than one minute.
42
42
 
43
43
 
44
44
 
@@ -47,7 +47,7 @@ new IteratorLambda(scope: Construct, name: string, props: IteratorLambdaProps)
47
47
 
48
48
  Name | Type | Description
49
49
  -----|------|-------------
50
- **function** | <code>[IFunction](#aws-cdk-aws-lambda-ifunction)</code> | A Lambda function that plays the role of the iterator.
50
+ **function** | <code>[aws_lambda.IFunction](#aws-cdk-lib-aws-lambda-ifunction)</code> | A Lambda function that plays the role of the iterator.
51
51
 
52
52
 
53
53
 
@@ -55,8 +55,8 @@ Name | Type | Description
55
55
 
56
56
 
57
57
 
58
- __Implements__: [IConstruct](#constructs-iconstruct), [IConstruct](#aws-cdk-core-iconstruct), [IConstruct](#constructs-iconstruct), [IDependable](#aws-cdk-core-idependable)
59
- __Extends__: [Construct](#aws-cdk-core-construct)
58
+ __Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable)
59
+ __Extends__: [Construct](#constructs-construct)
60
60
 
61
61
  ### Initializer
62
62
 
@@ -67,10 +67,10 @@ __Extends__: [Construct](#aws-cdk-core-construct)
67
67
  new LambdaSubminute(parent: Construct, name: string, props: LambdaSubminuteProps)
68
68
  ```
69
69
 
70
- * **parent** (<code>[Construct](#aws-cdk-core-construct)</code>) *No description*
70
+ * **parent** (<code>[Construct](#constructs-construct)</code>) *No description*
71
71
  * **name** (<code>string</code>) *No description*
72
72
  * **props** (<code>[LambdaSubminuteProps](#cdk-lambda-subminute-lambdasubminuteprops)</code>) *No description*
73
- * **targetFunction** (<code>[IFunction](#aws-cdk-aws-lambda-ifunction)</code>) The Lambda function that is going to be executed per time unit less than one minute.
73
+ * **targetFunction** (<code>[aws_lambda.IFunction](#aws-cdk-lib-aws-lambda-ifunction)</code>) The Lambda function that is going to be executed per time unit less than one minute.
74
74
  * **cronjobExpression** (<code>string</code>) A pattern you want this statemachine to be executed. __*Default*__: cron(50/1 15-17 ? * * *) UTC+0 being run every minute starting from 15:00 PM to 17:00 PM.
75
75
  * **frequency** (<code>number</code>) How many times you intent to execute in a minute. __*Default*__: 6
76
76
  * **intervalTime** (<code>number</code>) Seconds for an interval, the product of `frequency` and `intervalTime` should be approximagely 1 minute. __*Default*__: 10
@@ -82,7 +82,7 @@ new LambdaSubminute(parent: Construct, name: string, props: LambdaSubminuteProps
82
82
 
83
83
  Name | Type | Description
84
84
  -----|------|-------------
85
- **iteratorFunction** | <code>[IFunction](#aws-cdk-aws-lambda-ifunction)</code> | The Lambda function that plays the role of the iterator.
85
+ **iteratorFunction** | <code>[aws_lambda.IFunction](#aws-cdk-lib-aws-lambda-ifunction)</code> | The Lambda function that plays the role of the iterator.
86
86
  **stateMachineArn** | <code>string</code> | The ARN of the state machine that executes the target Lambda function per time unit less than one minute.
87
87
 
88
88
 
@@ -91,8 +91,8 @@ Name | Type | Description
91
91
 
92
92
 
93
93
 
94
- __Implements__: [IConstruct](#constructs-iconstruct), [IConstruct](#aws-cdk-core-iconstruct), [IConstruct](#constructs-iconstruct), [IDependable](#aws-cdk-core-idependable)
95
- __Extends__: [Construct](#aws-cdk-core-construct)
94
+ __Implements__: [IConstruct](#constructs-iconstruct), [IDependable](#constructs-idependable)
95
+ __Extends__: [Construct](#constructs-construct)
96
96
 
97
97
  ### Initializer
98
98
 
@@ -103,14 +103,14 @@ __Extends__: [Construct](#aws-cdk-core-construct)
103
103
  new SubminuteStateMachine(scope: Construct, id: string, props: SubminuteStateMachineProps)
104
104
  ```
105
105
 
106
- * **scope** (<code>[Construct](#aws-cdk-core-construct)</code>) *No description*
106
+ * **scope** (<code>[Construct](#constructs-construct)</code>) *No description*
107
107
  * **id** (<code>string</code>) *No description*
108
108
  * **props** (<code>[SubminuteStateMachineProps](#cdk-lambda-subminute-subminutestatemachineprops)</code>) *No description*
109
109
  * **frequency** (<code>number</code>) How many times you intent to execute in a minute.
110
110
  * **intervalTime** (<code>number</code>) Seconds for an interval, the product of `frequency` and `intervalTime` should be approximagely 1 minute.
111
- * **iteratorFunction** (<code>[IFunction](#aws-cdk-aws-lambda-ifunction)</code>) the iterator Lambda function for the target Lambda function.
111
+ * **iteratorFunction** (<code>[aws_lambda.IFunction](#aws-cdk-lib-aws-lambda-ifunction)</code>) the iterator Lambda function for the target Lambda function.
112
112
  * **stateMachineName** (<code>string</code>) the name of the state machine.
113
- * **targetFunction** (<code>[IFunction](#aws-cdk-aws-lambda-ifunction)</code>) the Lambda function that executes your intention.
113
+ * **targetFunction** (<code>[aws_lambda.IFunction](#aws-cdk-lib-aws-lambda-ifunction)</code>) the Lambda function that executes your intention.
114
114
 
115
115
 
116
116
 
@@ -119,7 +119,7 @@ new SubminuteStateMachine(scope: Construct, id: string, props: SubminuteStateMac
119
119
 
120
120
  Name | Type | Description
121
121
  -----|------|-------------
122
- **stateMachine** | <code>[StateMachine](#aws-cdk-aws-stepfunctions-statemachine)</code> | <span></span>
122
+ **stateMachine** | <code>[aws_stepfunctions.StateMachine](#aws-cdk-lib-aws-stepfunctions-statemachine)</code> | <span></span>
123
123
 
124
124
 
125
125
 
@@ -132,7 +132,7 @@ Name | Type | Description
132
132
 
133
133
  Name | Type | Description
134
134
  -----|------|-------------
135
- **targetFunction** | <code>[IFunction](#aws-cdk-aws-lambda-ifunction)</code> | The Lambda function that is going to be executed per time unit less than one minute.
135
+ **targetFunction** | <code>[aws_lambda.IFunction](#aws-cdk-lib-aws-lambda-ifunction)</code> | The Lambda function that is going to be executed per time unit less than one minute.
136
136
 
137
137
 
138
138
 
@@ -145,7 +145,7 @@ Name | Type | Description
145
145
 
146
146
  Name | Type | Description
147
147
  -----|------|-------------
148
- **targetFunction** | <code>[IFunction](#aws-cdk-aws-lambda-ifunction)</code> | The Lambda function that is going to be executed per time unit less than one minute.
148
+ **targetFunction** | <code>[aws_lambda.IFunction](#aws-cdk-lib-aws-lambda-ifunction)</code> | The Lambda function that is going to be executed per time unit less than one minute.
149
149
  **cronjobExpression**? | <code>string</code> | A pattern you want this statemachine to be executed.<br/>__*Default*__: cron(50/1 15-17 ? * * *) UTC+0 being run every minute starting from 15:00 PM to 17:00 PM.
150
150
  **frequency**? | <code>number</code> | How many times you intent to execute in a minute.<br/>__*Default*__: 6
151
151
  **intervalTime**? | <code>number</code> | Seconds for an interval, the product of `frequency` and `intervalTime` should be approximagely 1 minute.<br/>__*Default*__: 10
@@ -163,9 +163,9 @@ Name | Type | Description
163
163
  -----|------|-------------
164
164
  **frequency** | <code>number</code> | How many times you intent to execute in a minute.
165
165
  **intervalTime** | <code>number</code> | Seconds for an interval, the product of `frequency` and `intervalTime` should be approximagely 1 minute.
166
- **iteratorFunction** | <code>[IFunction](#aws-cdk-aws-lambda-ifunction)</code> | the iterator Lambda function for the target Lambda function.
166
+ **iteratorFunction** | <code>[aws_lambda.IFunction](#aws-cdk-lib-aws-lambda-ifunction)</code> | the iterator Lambda function for the target Lambda function.
167
167
  **stateMachineName** | <code>string</code> | the name of the state machine.
168
- **targetFunction** | <code>[IFunction](#aws-cdk-aws-lambda-ifunction)</code> | the Lambda function that executes your intention.
168
+ **targetFunction** | <code>[aws_lambda.IFunction](#aws-cdk-lib-aws-lambda-ifunction)</code> | the Lambda function that executes your intention.
169
169
 
170
170
 
171
171
 
package/README.md CHANGED
@@ -1,10 +1,6 @@
1
1
  # cdk-lambda-subminute
2
2
  This construct creates a state machine that can invoke a Lambda function per time unit which can be less than one minute, such as invoking every 10 seconds. You only need to craft a Lambda function and then assign it as an argument into the construct. An example is included.
3
- [![License](https://img.shields.io/badge/License-Apache%202.0-green)](https://opensource.org/licenses/Apache-2.0)
4
- [![Build](https://github.com/HsiehShuJeng/cdk-lambda-subminute/actions/workflows/build.yml/badge.svg)](https://github.com/HsiehShuJeng/cdk-lambda-subminute/actions/workflows/build.yml) [![Release](https://github.com/HsiehShuJeng/cdk-lambda-subminute/workflows/Release/badge.svg)](https://github.com/HsiehShuJeng/cdk-lambda-subminute/actions/workflows/release.yml)
5
- [![Python](https://img.shields.io/pypi/pyversions/cdk-lambda-subminute)](https://pypi.org/) [![pip](https://img.shields.io/badge/pip%20install-cdk--lambda--subminute-blue)](https://pypi.org/project/cdk-lambda-subminute/)
6
- [![npm version](https://img.shields.io/npm/v/cdk-lambda-subminute)](https://www.npmjs.com/package/cdk-lambda-subminute) [![pypi evrsion](https://img.shields.io/pypi/v/cdk-lambda-subminute)](https://pypi.org/project/cdk-lambda-subminute/) [![Maven](https://img.shields.io/maven-central/v/io.github.hsiehshujeng/cdk-lambda-subminute)](https://search.maven.org/search?q=a:cdk-lambda-subminute) [![nuget](https://img.shields.io/nuget/v/Lambda.Subminute)](https://www.nuget.org/packages/Lambda.Subminute/)
7
-
3
+ [![License](https://img.shields.io/badge/License-Apache%202.0-green)](https://opensource.org/licenses/Apache-2.0) [![Release](https://github.com/HsiehShuJeng/cdk-lambda-subminute/workflows/Release/badge.svg)](https://github.com/HsiehShuJeng/cdk-lambda-subminute/actions/workflows/release.yml) [![npm downloads](https://img.shields.io/npm/dt/cdk-lambda-subminute?label=npm%20downloads&style=plastic)](https://img.shields.io/npm/dt/cdk-lambda-subminute?label=npm%20downloads&style=plastic) [![pypi downloads](https://img.shields.io/pypi/dm/cdk-lambda-subminute?label=pypi%20downloads&style=plastic)](https://img.shields.io/pypi/dm/cdk-lambda-subminute?label=pypi%20downloads&style=plastic) [![NuGet downloads](https://img.shields.io/nuget/dt/Lambda.Subminute?label=NuGet%20downloads&style=plastic)](https://img.shields.io/nuget/dt/Lambda.Subminute?label=NuGet%20downloads&style=plastic) [![repo languages](https://img.shields.io/github/languages/count/HsiehShuJeng/cdk-lambda-subminute?style=plastic)](https://img.shields.io/github/languages/count/HsiehShuJeng/cdk-lambda-subminute?style=plastic)
8
4
  # Serverless Architecture
9
5
  <p align="center"><img src="https://raw.githubusercontent.com/HsiehShuJeng/cdk-lambda-subminute/main/images/cdk_lambda_subminute.png"/></p>
10
6
 
@@ -1,135 +1,84 @@
1
- import { IFunction } from '@aws-cdk/aws-lambda';
2
- import * as sfn from '@aws-cdk/aws-stepfunctions';
3
- import * as cdk from '@aws-cdk/core';
4
- /**
5
- * @stability stable
6
- */
1
+ import { IFunction } from 'aws-cdk-lib/aws-lambda';
2
+ import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
3
+ import { Construct } from 'constructs';
7
4
  export interface LambdaSubminuteProps {
8
5
  /**
9
6
  * The Lambda function that is going to be executed per time unit less than one minute.
10
- *
11
- * @stability stable
12
7
  */
13
8
  readonly targetFunction: IFunction;
14
9
  /**
15
10
  * A pattern you want this statemachine to be executed.
11
+ * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html
16
12
  *
17
13
  * @default cron(50/1 15-17 ? * * *) UTC+0 being run every minute starting from 15:00 PM to 17:00 PM.
18
- * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html
19
- * @stability stable
20
14
  */
21
15
  readonly cronjobExpression?: string;
22
16
  /**
23
17
  * How many times you intent to execute in a minute.
24
18
  *
25
19
  * @default 6
26
- * @stability stable
27
20
  */
28
21
  readonly frequency?: number;
29
22
  /**
30
23
  * Seconds for an interval, the product of `frequency` and `intervalTime` should be approximagely 1 minute.
31
24
  *
32
25
  * @default 10
33
- * @stability stable
34
26
  */
35
27
  readonly intervalTime?: number;
36
28
  }
37
- /**
38
- * @stability stable
39
- */
40
- export declare class LambdaSubminute extends cdk.Construct {
29
+ export declare class LambdaSubminute extends Construct {
41
30
  /**
42
31
  * The Lambda function that plays the role of the iterator.
43
- *
44
- * @stability stable
45
32
  */
46
33
  readonly iteratorFunction: IFunction;
47
34
  /**
48
35
  * The ARN of the state machine that executes the target Lambda function per time unit less than one minute.
49
- *
50
- * @stability stable
51
36
  */
52
37
  readonly stateMachineArn: string;
53
- /**
54
- * @stability stable
55
- */
56
- constructor(parent: cdk.Construct, name: string, props: LambdaSubminuteProps);
38
+ constructor(parent: Construct, name: string, props: LambdaSubminuteProps);
57
39
  }
58
- /**
59
- * @stability stable
60
- */
61
40
  export interface IteratorLambdaProps {
62
41
  /**
63
- * The Lambda function that is going to be executed per time unit less than one minute.
64
- *
65
- * @stability stable
66
- */
42
+ * The Lambda function that is going to be executed per time unit less than one minute.
43
+ */
67
44
  readonly targetFunction: IFunction;
68
45
  }
69
- /**
70
- * @stability stable
71
- */
72
- export declare class IteratorLambda extends cdk.Construct {
46
+ export declare class IteratorLambda extends Construct {
73
47
  /**
74
- * A Lambda function that plays the role of the iterator.
75
- *
76
- * @stability stable
77
- */
48
+ * A Lambda function that plays the role of the iterator.
49
+ */
78
50
  readonly function: IFunction;
79
- /**
80
- * @stability stable
81
- */
82
- constructor(scope: cdk.Construct, name: string, props: IteratorLambdaProps);
51
+ constructor(scope: Construct, name: string, props: IteratorLambdaProps);
83
52
  }
84
- /**
85
- * @stability stable
86
- */
87
53
  export interface SubminuteStateMachineProps {
88
54
  /**
89
55
  * the name of the state machine.
90
- *
91
- * @stability stable
92
56
  */
93
57
  readonly stateMachineName: string;
94
58
  /**
95
59
  * the Lambda function that executes your intention.
96
- *
97
- * @stability stable
98
60
  */
99
61
  readonly targetFunction: IFunction;
100
62
  /**
101
63
  * the iterator Lambda function for the target Lambda function.
102
- *
103
- * @stability stable
104
64
  */
105
65
  readonly iteratorFunction: IFunction;
106
66
  /**
107
67
  * Seconds for an interval, the product of `frequency` and `intervalTime` should be approximagely 1 minute.
108
68
  *
109
69
  * @default 10
110
- * @stability stable
111
70
  */
112
71
  readonly intervalTime: number;
113
72
  /**
114
73
  * How many times you intent to execute in a minute.
115
74
  *
116
75
  * @default 6
117
- * @stability stable
118
76
  */
119
77
  readonly frequency: number;
120
78
  }
121
- /**
122
- * @stability stable
123
- */
124
- export declare class SubminuteStateMachine extends cdk.Construct {
125
- /**
126
- * @stability stable
127
- */
79
+ export declare class SubminuteStateMachine extends Construct {
128
80
  readonly stateMachine: sfn.StateMachine;
129
- /**
130
- * @stability stable
131
- */
132
- constructor(scope: cdk.Construct, id: string, props: SubminuteStateMachineProps);
81
+ constructor(scope: Construct, id: string, props: SubminuteStateMachineProps);
133
82
  /**
134
83
  * Creates a state machine for breaking the limit of 1 minute with the CloudWatch Rules.
135
84
  *
@@ -5,24 +5,18 @@ exports.SubminuteStateMachine = exports.IteratorLambda = exports.LambdaSubminute
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const fs = require("fs");
7
7
  const path = require("path");
8
- const events = require("@aws-cdk/aws-events");
9
- const targets = require("@aws-cdk/aws-events-targets");
10
- const iam = require("@aws-cdk/aws-iam");
11
- const aws_lambda_1 = require("@aws-cdk/aws-lambda");
12
- const aws_lambda_nodejs_1 = require("@aws-cdk/aws-lambda-nodejs");
13
- const aws_logs_1 = require("@aws-cdk/aws-logs");
14
- const sfn = require("@aws-cdk/aws-stepfunctions");
15
- const tasks = require("@aws-cdk/aws-stepfunctions-tasks");
16
- const cdk = require("@aws-cdk/core");
17
- /**
18
- * @stability stable
19
- */
20
- class LambdaSubminute extends cdk.Construct {
21
- /**
22
- * @stability stable
23
- */
8
+ const cdk = require("aws-cdk-lib");
9
+ const events = require("aws-cdk-lib/aws-events");
10
+ const targets = require("aws-cdk-lib/aws-events-targets");
11
+ const iam = require("aws-cdk-lib/aws-iam");
12
+ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
13
+ const aws_lambda_nodejs_1 = require("aws-cdk-lib/aws-lambda-nodejs");
14
+ const aws_logs_1 = require("aws-cdk-lib/aws-logs");
15
+ const sfn = require("aws-cdk-lib/aws-stepfunctions");
16
+ const tasks = require("aws-cdk-lib/aws-stepfunctions-tasks");
17
+ const constructs_1 = require("constructs");
18
+ class LambdaSubminute extends constructs_1.Construct {
24
19
  constructor(parent, name, props) {
25
- var _d, _e, _f;
26
20
  super(parent, name);
27
21
  const iterator = new IteratorLambda(this, 'IteratorLambda', { targetFunction: props.targetFunction });
28
22
  this.iteratorFunction = iterator.function;
@@ -30,12 +24,12 @@ class LambdaSubminute extends cdk.Construct {
30
24
  stateMachineName: 'lambda-subminute-statemachine',
31
25
  targetFunction: props.targetFunction,
32
26
  iteratorFunction: this.iteratorFunction,
33
- intervalTime: (_d = props.intervalTime) !== null && _d !== void 0 ? _d : 10,
34
- frequency: (_e = props.frequency) !== null && _e !== void 0 ? _e : 6,
27
+ intervalTime: props.intervalTime ?? 10,
28
+ frequency: props.frequency ?? 6,
35
29
  });
36
30
  this.stateMachineArn = subminuteStateMachine.stateMachine.stateMachineArn;
37
31
  const startRule = new events.Rule(this, 'StartSubminuteStateMachine', {
38
- schedule: events.Schedule.expression((_f = props.cronjobExpression) !== null && _f !== void 0 ? _f : 'cron(50/1 15-17 ? * * *)'),
32
+ schedule: events.Schedule.expression(props.cronjobExpression ?? 'cron(50/1 15-17 ? * * *)'),
39
33
  ruleName: 'subminute-statemachine-lambda-rule',
40
34
  description: `A rule to run the subminute state machine, i.e. ${subminuteStateMachine.stateMachine.stateMachineName}`,
41
35
  });
@@ -51,14 +45,8 @@ class LambdaSubminute extends cdk.Construct {
51
45
  }
52
46
  exports.LambdaSubminute = LambdaSubminute;
53
47
  _a = JSII_RTTI_SYMBOL_1;
54
- LambdaSubminute[_a] = { fqn: "cdk-lambda-subminute.LambdaSubminute", version: "0.1.38" };
55
- /**
56
- * @stability stable
57
- */
58
- class IteratorLambda extends cdk.Construct {
59
- /**
60
- * @stability stable
61
- */
48
+ LambdaSubminute[_a] = { fqn: "cdk-lambda-subminute.LambdaSubminute", version: "2.0.0" };
49
+ class IteratorLambda extends constructs_1.Construct {
62
50
  constructor(scope, name, props) {
63
51
  super(scope, name);
64
52
  const iteratorLambdaRole = new iam.Role(this, 'IteratorLambdaRole', {
@@ -97,14 +85,8 @@ class IteratorLambda extends cdk.Construct {
97
85
  }
98
86
  exports.IteratorLambda = IteratorLambda;
99
87
  _b = JSII_RTTI_SYMBOL_1;
100
- IteratorLambda[_b] = { fqn: "cdk-lambda-subminute.IteratorLambda", version: "0.1.38" };
101
- /**
102
- * @stability stable
103
- */
104
- class SubminuteStateMachine extends cdk.Construct {
105
- /**
106
- * @stability stable
107
- */
88
+ IteratorLambda[_b] = { fqn: "cdk-lambda-subminute.IteratorLambda", version: "2.0.0" };
89
+ class SubminuteStateMachine extends constructs_1.Construct {
108
90
  constructor(scope, id, props) {
109
91
  super(scope, id);
110
92
  /**
@@ -178,5 +160,5 @@ class SubminuteStateMachine extends cdk.Construct {
178
160
  }
179
161
  exports.SubminuteStateMachine = SubminuteStateMachine;
180
162
  _c = JSII_RTTI_SYMBOL_1;
181
- SubminuteStateMachine[_c] = { fqn: "cdk-lambda-subminute.SubminuteStateMachine", version: "0.1.38" };
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWxhbWJkYS1zdWJtaW51dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2RrLWxhbWJkYS1zdWJtaW51dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDhDQUErQztBQUMvQyx1REFBd0Q7QUFDeEQsd0NBQXdDO0FBRXhDLG9EQUFrRTtBQUNsRSxrRUFBNEQ7QUFDNUQsZ0RBQWtEO0FBQ2xELGtEQUFrRDtBQUNsRCwwREFBMEQ7QUFDMUQscUNBQXFDOzs7O0FBYXJDLE1BQWEsZUFBZ0IsU0FBUSxHQUFHLENBQUMsU0FBUzs7OztJQUtoRCxZQUFZLE1BQXFCLEVBQUUsSUFBWSxFQUFFLEtBQTJCOztRQUMxRSxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUN0RyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUMxQyxNQUFNLHFCQUFxQixHQUFHLElBQUkscUJBQXFCLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQ3JGLGdCQUFnQixFQUFFLCtCQUErQjtZQUNqRCxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7WUFDcEMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxZQUFZLFFBQUUsS0FBSyxDQUFDLFlBQVksbUNBQUksRUFBRTtZQUN0QyxTQUFTLFFBQUUsS0FBSyxDQUFDLFNBQVMsbUNBQUksQ0FBQztTQUNoQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUM7UUFFMUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFB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QUcsSUFBSSxDQUFDLG1CQUFtQixDQUMvQyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RyxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUM5RCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLElBQUksRUFBRSxnQkFBZ0I7U0FDdkIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQzs7QUFiSCxzREE2RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IGV2ZW50cyA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1ldmVudHMnKTtcbmltcG9ydCB0YXJnZXRzID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWV2ZW50cy10YXJnZXRzJyk7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnQGF3cy1jZGsvYXdzLWlhbSc7XG5cbmltcG9ydCB7IElGdW5jdGlvbiwgUnVudGltZSwgVHJhY2luZyB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24gfSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhLW5vZGVqcyc7XG5pbXBvcnQgeyBSZXRlbnRpb25EYXlzIH0gZnJvbSAnQGF3cy1jZGsvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgc2ZuIGZyb20gJ0Bhd3MtY2RrL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCAqIGFzIHRhc2tzIGZyb20gJ0Bhd3MtY2RrL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFTdWJtaW51dGVQcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0YXJnZXRGdW5jdGlvbjogSUZ1bmN0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjcm9uam9iRXhwcmVzc2lvbj86IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBmcmVxdWVuY3k/OiBudW1iZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBpbnRlcnZhbFRpbWU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGFTdWJtaW51dGUgZXh0ZW5kcyBjZGsuQ29uc3RydWN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgaXRlcmF0b3JGdW5jdGlvbjogSUZ1bmN0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc3RhdGVNYWNoaW5lQXJuOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHBhcmVudDogY2RrLkNvbnN0cnVjdCwgbmFtZTogc3RyaW5nLCBwcm9wczogTGFtYmRhU3VibWludXRlUHJvcHMpIHtcbiAgICBzdXBlcihwYXJlbnQsIG5hbWUpO1xuICAgIGNvbnN0IGl0ZXJhdG9yID0gbmV3IEl0ZXJhdG9yTGFtYmRhKHRoaXMsICdJdGVyYXRvckxhbWJkYScsIHsgdGFyZ2V0RnVuY3Rpb246IHByb3BzLnRhcmdldEZ1bmN0aW9uIH0pO1xuICAgIHRoaXMuaXRlcmF0b3JGdW5jdGlvbiA9IGl0ZXJhdG9yLmZ1bmN0aW9uO1xuICAgIGNvbnN0IHN1Ym1pbnV0ZVN0YXRlTWFjaGluZSA9IG5ldyBTdWJtaW51dGVTdGF0ZU1hY2hpbmUodGhpcywgJ1N1Ym1pbnV0ZVN0YXRlTWFjaGluZScsIHtcbiAgICAgIHN0YXRlTWFjaGluZU5hbWU6ICdsYW1iZGEtc3VibWludXRlLXN0YXRlbWFjaGluZScsXG4gICAgICB0YXJnZXRGdW5jdGlvbjogcHJvcHMudGFyZ2V0RnVuY3Rpb24sXG4gICAgICBpdGVyYXRvckZ1bmN0aW9uOiB0aGlzLml0ZXJhdG9yRnVuY3Rpb24sXG4gICAgICBpbnRlcnZhbFRpbWU6IHByb3BzLmludGVydmFsVGltZSA/PyAxMCxcbiAgICAgIGZyZXF1ZW5jeTogcHJvcHMuZnJlcXVlbmN5ID8/IDYsXG4gICAgfSk7XG4gICAgdGhpcy5zdGF0ZU1hY2hpbmVBcm4gPSBzdWJtaW51dGVTdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZUFybjtcblxuICAgIGNvbnN0IHN0YXJ0UnVsZSA9IG5ldyBldmVudHMuUnVsZSh0aGlzLCAnU3RhcnRTdWJtaW51dGVTdGF0ZU1hY2hpbmUnLCB7XG4gICAgICBzY2hlZHVsZTogZXZlbnRzLlNjaGVkdWxlLmV4cHJlc3Npb24ocHJvcHMuY3JvbmpvYkV4cHJlc3Npb24gPz8gJ2Nyb24oNTAvMSAxNS0xNyA/ICogKiAqKScpLFxuICAgICAgcnVsZU5hbWU6ICdzdWJtaW51dGUtc3RhdGVtYWNoaW5lLWxhbWJkYS1ydWxlJyxcbiAgICAgIGRlc2NyaXB0aW9uOiBgQSBydWxlIHRvIHJ1biB0aGUgc3VibWludXRlIHN0YXRlIG1hY2hpbmUsIGkuZS4gJHtzdWJtaW51dGVTdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZU5hbWV9YCxcbiAgICB9KTtcbiAgICBzdGFydFJ1bGUuYWRkVGFyZ2V0KG5ldyB0YXJnZXRzLlNmblN0YXRlTWFjaGluZShcbiAgICAgIHN1Ym1pbnV0ZVN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmUsIHtcbiAgICAgICAgaW5wdXQ6IGV2ZW50cy5SdWxlVGFyZ2V0SW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgICAgaXRlcmF0b3I6IHtcbiAgICAgICAgICAgIGluZGV4OiAwLFxuICAgICAgICAgICAgY291bnQ6IDYsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICB9KSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJdGVyYXRvckxhbWJkYVByb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0YXJnZXRGdW5jdGlvbjogSUZ1bmN0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgSXRlcmF0b3JMYW1iZGEgZXh0ZW5kcyBjZGsuQ29uc3RydWN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBmdW5jdGlvbjogSUZ1bmN0aW9uO1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgbmFtZTogc3RyaW5nLCBwcm9wczogSXRlcmF0b3JMYW1iZGFQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBuYW1lKTtcbiAgICBjb25zdCBpdGVyYXRvckxhbWJkYVJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ0l0ZXJhdG9yTGFtYmRhUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5Db21wb3NpdGVQcmluY2lwYWwoXG4gICAgICAgIG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgICksXG4gICAgICBkZXNjcmlwdGlvbjogJ0FuIGV4ZWN1dGlvbiByb2xlIGZvciBhIExhbWJkYSBmdW5jdGlvbiB0byBpbnZva2UgYSB0YXJnZXQgTGFtYmRhIEZ1bmN0aW9uIHBlciB0aW1lIHVuaXQgbGVzcyB0aGFuIG9uZSBtaW51dGUnLFxuICAgICAgbWFuYWdlZFBvbGljaWVzOiBbXG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZScpLFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ0FXU1hSYXlEYWVtb25Xcml0ZUFjY2VzcycpLFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFWUENBY2Nlc3NFeGVjdXRpb25Sb2xlJyksXG4gICAgICBdLFxuICAgICAgcm9sZU5hbWU6ICdMYW1iZGEtSXRlcmF0b3ItUm9sZScsXG4gICAgfSk7XG4gICAgY2RrLkRvY2tlclZvbHVtZUNvbnNpc3RlbmN5LkNPTlNJU1RFTlQ7XG5cblxuICAgIGl0ZXJhdG9yTGFtYmRhUm9sZS5hZGRUb1BvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBzaWQ6ICdUYXJnZXRMYW1iZGFQZXJtaXNzaW9uJyxcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnbGFtYmRhOkludm9rZUZ1bmN0aW9uJ10sXG4gICAgICByZXNvdXJjZXM6IFtwcm9wcy50YXJnZXRGdW5jdGlvbi5mdW5jdGlvbkFybl0sXG4gICAgfSkpO1xuXG4gICAgdGhpcy5mdW5jdGlvbiA9IG5ldyBOb2RlanNGdW5jdGlvbih0aGlzLCAnSXRlcmF0b3InLCB7XG4gICAgICBmdW5jdGlvbk5hbWU6ICdsYW1iZGEtc3VibWludXRlLWl0ZXJhdG9yJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBmdW5jdGlvbiBmb3IgYnJlYWtpbmcgdGhlIGxpbWl0IG9mIDEgbWludXRlIHdpdGggdGhlIENsb3VkV2F0Y2ggUnVsZXMuJyxcbiAgICAgIGxvZ1JldGVudGlvbjogUmV0ZW50aW9uRGF5cy5USFJFRV9NT05USFMsXG4gICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18xNF9YLFxuICAgICAgZW50cnk6IGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ3Jlc291cmNlcy9pdGVyYXRvci9pdGVyYXRvcl9hZ2VudC50cycpKSA/IHBhdGguam9pbihfX2Rpcm5hbWUsICdyZXNvdXJjZXMvaXRlcmF0b3IvaXRlcmF0b3JfYWdlbnQudHMnKSA6IHBhdGguam9pbihfX2Rpcm5hbWUsICdyZXNvdXJjZXMvaXRlcmF0b3IvaXRlcmF0b3JfYWdlbnQuanMnKSxcbiAgICAgIGhhbmRsZXI6ICdsYW1iZGFIYW5kbGVyJyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFRBUkdFVF9GTl9OQU1FOiBwcm9wcy50YXJnZXRGdW5jdGlvbi5mdW5jdGlvbk5hbWUsXG4gICAgICB9LFxuICAgICAgbWVtb3J5U2l6ZTogMTI4LFxuICAgICAgcm9sZTogaXRlcmF0b3JMYW1iZGFSb2xlLFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNTgpLCAvLyAxIG1pblxuICAgICAgdHJhY2luZzogVHJhY2luZy5BQ1RJVkUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJtaW51dGVTdGF0ZU1hY2hpbmVQcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzdGF0ZU1hY2hpbmVOYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdGFyZ2V0RnVuY3Rpb246IElGdW5jdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGl0ZXJhdG9yRnVuY3Rpb246IElGdW5jdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGludGVydmFsVGltZTogbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGZyZXF1ZW5jeTogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgU3VibWludXRlU3RhdGVNYWNoaW5lIGV4dGVuZHMgY2RrLkNvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IHN0YXRlTWFjaGluZTogc2ZuLlN0YXRlTWFjaGluZTtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdWJtaW51dGVTdGF0ZU1hY2hpbmVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3Qgc3RhdGVNYWNoaW5lUm9sZSA9IHRoaXMuX2NyZWF0ZVdvcmtGbG93Um9sZShcbiAgICAgIHByb3BzLnRhcmdldEZ1bmN0aW9uLmZ1bmN0aW9uQXJuLCBwcm9wcy5pdGVyYXRvckZ1bmN0aW9uLmZ1bmN0aW9uQXJuKTtcbiAgICBjb25zdCBqb2JEZWZpbml0aW9uID0gdGhpcy5jcmVhdGVKb2JEZWZpbml0aW9uKHByb3BzLml0ZXJhdG9yRnVuY3Rpb24sIHByb3BzLmludGVydmFsVGltZSwgcHJvcHMuZnJlcXVlbmN5KTtcbiAgICBjb25zdCBzdGF0ZU1hY2hpbmUgPSBuZXcgc2ZuLlN0YXRlTWFjaGluZSh0aGlzLCAnU3RhdGVNYWNoaW5lJywge1xuICAgICAgc3RhdGVNYWNoaW5lTmFtZTogcHJvcHMuc3RhdGVNYWNoaW5lTmFtZSxcbiAgICAgIGRlZmluaXRpb246IGpvYkRlZmluaXRpb24sXG4gICAgICByb2xlOiBzdGF0ZU1hY2hpbmVSb2xlLFxuICAgIH0pO1xuICAgIHRoaXMuc3RhdGVNYWNoaW5lID0gc3RhdGVNYWNoaW5lO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdGF0ZSBtYWNoaW5lIGZvciBicmVha2luZyB0aGUgbGltaXQgb2YgMSBtaW51dGUgd2l0aCB0aGUgQ2xvdWRXYXRjaCBSdWxlcy5cbiAgICpcbiAgICogQHBhcmFtIGl0ZXJhdG9yRnVuY3Rpb24gVGhlIGl0ZXJhdG9yIExhbWJkYSBmdW5jdGlvbiBmb3IgdGhlIHRhcmdldCBMYWJtZGEgZnVuY2l0b24uXG4gICAqIEBwYXJhbSBpbnRlcnZhbFRpbWUgU2Vjb25kcyBmb3IgYW4gaW50ZXJ2YWwsIHRoZSBwcm9kdWN0IG9mIGBmcmVxdWVuY3lgIGFuZCBgaW50ZXJ2YWxUaW1lYCBzaG91bGQgYmUgYXBwcm94aW1hZ2VseSAxIG1pbnV0ZS5cbiAgICogQHBhcmFtIGZyZXF1ZW5jeSBIb3cgbWFueSB0aW1lcyB5b3UgaW50ZW50IHRvIGV4ZWN1dGUgaW4gYSBtaW51dGUuXG4gICAqIEByZXR1cm5zIFRIZSBqb2IgZGVmaW5pdGlvbiBmb3IgdGhlIHN0YXRlIG1hY2hpbmUuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUpvYkRlZmluaXRpb24gPSAoXG4gICAgaXRlcmF0b3JGdW5jdGlvbjogSUZ1bmN0aW9uLCBpbnRlcnZhbFRpbWU6IG51bWJlciwgZnJlcXVlbmN5OiBudW1iZXIpOiBzZm4uQ2hhaW4gPT4ge1xuICAgIGNvbnN0IGNvbmZpZ3VyZUNvdW50ID0gbmV3IHNmbi5QYXNzKHRoaXMsICdDb25maWd1cmVDb3VudCcsIHtcbiAgICAgIHJlc3VsdDogc2ZuLlJlc3VsdC5mcm9tT2JqZWN0KHtcbiAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgIGNvdW50OiBmcmVxdWVuY3ksXG4gICAgICB9KSxcbiAgICAgIHJlc3VsdFBhdGg6ICckLml0ZXJhdG9yJyxcbiAgICB9KTtcbiAgICBjb25zdCBpdGVyYXRvciA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ0l0ZXJhdG9yJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IGl0ZXJhdG9yRnVuY3Rpb24sXG4gICAgICByZXN1bHRQYXRoOiAnJC5pdGVyYXRvcicsXG4gICAgICByZXN1bHRTZWxlY3Rvcjoge1xuICAgICAgICAnaW5kZXguJCc6ICckLlBheWxvYWQuaW5kZXgnLFxuICAgICAgICAnY291bnQuJCc6ICckLlBheWxvYWQuY291bnQnLFxuICAgICAgICAnY29udGludWUuJCc6ICckLlBheWxvYWQuY29udGludWUnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCB3YWl0ID0gbmV3IHNmbi5XYWl0KHRoaXMsICdXYWl0IGZvciB0aGUgdGFyZ2V0IExhbWJkYSBmdW5jdGlvbiBmaW5pc2hlZCcsIHtcbiAgICAgIHRpbWU6IHNmbi5XYWl0VGltZS5kdXJhdGlvbihjZGsuRHVyYXRpb24uc2Vjb25kcyhpbnRlcnZhbFRpbWUpKSxcbiAgICB9KTtcbiAgICB3YWl0Lm5leHQoaXRlcmF0b3IpO1xuICAgIGNvbnN0IGRvbmUgPSBuZXcgc2ZuLlBhc3ModGhpcywgJ0RvbmUnKTtcblxuICAgIGNvbnN0IGlzQ291bnRSZWFjaGVkID0gbmV3IHNmbi5DaG9pY2UodGhpcywgJ0lzQ291bnRSZWFjaGVkJyk7XG4gICAgaXNDb3VudFJlYWNoZWQud2hlbihzZm4uQ29uZGl0aW9uLmJvb2xlYW5FcXVhbHMoJyQuaXRlcmF0b3IuY29udGludWUnLCB0cnVlKSwgd2FpdCk7XG4gICAgaXNDb3VudFJlYWNoZWQub3RoZXJ3aXNlKGRvbmUpO1xuICAgIGNvbnN0IGpvYkRlZmluaXRpb24gPSBjb25maWd1cmVDb3VudC5uZXh0KGl0ZXJhdG9yKS5uZXh0KGlzQ291bnRSZWFjaGVkKTtcbiAgICByZXR1cm4gam9iRGVmaW5pdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcm9sZSBhbmQgY29ycmVzcG9uZGluZyBwb2xpY2llcyBmb3IgdGhlIHN1Ym1pbnV0ZSBzdGF0ZSBtYWNoaW5lLlxuICAgKlxuICAgKiBAcGFyYW0gdGFyZ2V0RnVuY3Rpb25Bcm4gdGhlIEFSTiBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgZXhlY3V0ZXMgeW91ciBpbnRlbnRpb24uXG4gICAqIEBwYXJhbSBpdGVyYXRvckZ1bmN0aW9uQXJuIHRoZSBBUk4gb2YgdGhlIGl0ZXJhdG9yIExhbWJkYSBmdW5jdGlvbiBmb3IgdGhlIHRhcmdldCBMYW1iZGEgZnVuY3Rpb24uXG4gICAqIEByZXR1cm5zIHRoZSByb2xlIGFzIHRoZSBkb2N1bWVudGF0aW9uIGluZGljYXRlcy5cbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZVdvcmtGbG93Um9sZSA9ICh0YXJnZXRGdW5jdGlvbkFybjogc3RyaW5nLCBpdGVyYXRvckZ1bmN0aW9uQXJuOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB3b3JrRmxvd0V4ZWN1dGlvblJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ1N0ZXBGdW5jdGlvbkV4ZWN1dGlvblJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnc3RhdGVzLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRXhlY3V0ZSBhIHdvcmtmbG93IHJlbGF0ZWQgdG8gZXhlY3V0aW5nIGEgTGFtYmRhIGZ1bmN0aW9uIHBlciB0aW1lIHVuaXQgbGVzcyB0aGFuIDEgbWludXRlLicsXG4gICAgfSk7XG4gICAgd29ya0Zsb3dFeGVjdXRpb25Sb2xlLmFkZFRvUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIHNpZDogJ0xhbWJkYUludm9rZVBlcm1pc3Npb25zJyxcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnbGFtYmRhOkludm9rZUZ1bmN0aW9uJ10sXG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgdGFyZ2V0RnVuY3Rpb25Bcm4sXG4gICAgICAgIGl0ZXJhdG9yRnVuY3Rpb25Bcm4sXG4gICAgICBdLFxuICAgIH0pKTtcbiAgICByZXR1cm4gd29ya0Zsb3dFeGVjdXRpb25Sb2xlO1xuICB9XG59Il19
163
+ SubminuteStateMachine[_c] = { fqn: "cdk-lambda-subminute.SubminuteStateMachine", version: "2.0.0" };
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWxhbWJkYS1zdWJtaW51dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2RrLWxhbWJkYS1zdWJtaW51dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG1DQUFtQztBQUNuQyxpREFBa0Q7QUFDbEQsMERBQTJEO0FBQzNELDJDQUEyQztBQUUzQyx1REFBcUU7QUFDckUscUVBQStEO0FBQy9ELG1EQUFxRDtBQUNyRCxxREFBcUQ7QUFDckQsNkRBQTZEO0FBQzdELDJDQUF1QztBQTRCdkMsTUFBYSxlQUFnQixTQUFRLHNCQUFTO0lBUzVDLFlBQVksTUFBaUIsRUFBRSxJQUFZLEVBQUUsS0FBMkI7UUFDdEUsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDdEcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDMUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLHFCQUFxQixDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUNyRixnQkFBZ0IsRUFBRSwrQkFBK0I7WUFDakQsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksRUFBRTtZQUN0QyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDO1NBQ2hDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLEdBQUcscUJBQXFCLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUUxRSxNQUFNLFNBQVMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENB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QyxjQUFjLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVHLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQzlELGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7WUFDeEMsVUFBVSxFQUFFLGFBQWE7WUFDekIsSUFBSSxFQUFFLGdCQUFnQjtTQUN2QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDOztBQWJILHNEQTZFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IGV2ZW50cyA9IHJlcXVpcmUoJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnKTtcbmltcG9ydCB0YXJnZXRzID0gcmVxdWlyZSgnYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzJyk7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5cbmltcG9ydCB7IElGdW5jdGlvbiwgUnVudGltZSwgVHJhY2luZyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqcyc7XG5pbXBvcnQgeyBSZXRlbnRpb25EYXlzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgc2ZuIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCAqIGFzIHRhc2tzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYVN1Ym1pbnV0ZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBpcyBnb2luZyB0byBiZSBleGVjdXRlZCBwZXIgdGltZSB1bml0IGxlc3MgdGhhbiBvbmUgbWludXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0RnVuY3Rpb246IElGdW5jdGlvbjtcbiAgLyoqXG4gICAqIEEgcGF0dGVybiB5b3Ugd2FudCB0aGlzIHN0YXRlbWFjaGluZSB0byBiZSBleGVjdXRlZC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL1NjaGVkdWxlZEV2ZW50cy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IGNyb24oNTAvMSAxNS0xNyA/ICogKiAqKSBVVEMrMCBiZWluZyBydW4gZXZlcnkgbWludXRlIHN0YXJ0aW5nIGZyb20gMTU6MDAgUE0gdG8gMTc6MDAgUE0uXG4gICAqL1xuICByZWFkb25seSBjcm9uam9iRXhwcmVzc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEhvdyBtYW55IHRpbWVzIHlvdSBpbnRlbnQgdG8gZXhlY3V0ZSBpbiBhIG1pbnV0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgNlxuICAgKi9cbiAgcmVhZG9ubHkgZnJlcXVlbmN5PzogbnVtYmVyO1xuICAvKipcbiAgICogU2Vjb25kcyBmb3IgYW4gaW50ZXJ2YWwsIHRoZSBwcm9kdWN0IG9mIGBmcmVxdWVuY3lgIGFuZCBgaW50ZXJ2YWxUaW1lYCBzaG91bGQgYmUgYXBwcm94aW1hZ2VseSAxIG1pbnV0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgMTBcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsVGltZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIExhbWJkYVN1Ym1pbnV0ZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgcGxheXMgdGhlIHJvbGUgb2YgdGhlIGl0ZXJhdG9yLlxuICAgKi9cbiAgcmVhZG9ubHkgaXRlcmF0b3JGdW5jdGlvbjogSUZ1bmN0aW9uO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgc3RhdGUgbWFjaGluZSB0aGF0IGV4ZWN1dGVzIHRoZSB0YXJnZXQgTGFtYmRhIGZ1bmN0aW9uIHBlciB0aW1lIHVuaXQgbGVzcyB0aGFuIG9uZSBtaW51dGUuXG4gICAqL1xuICByZWFkb25seSBzdGF0ZU1hY2hpbmVBcm46IHN0cmluZztcbiAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IExhbWJkYVN1Ym1pbnV0ZVByb3BzKSB7XG4gICAgc3VwZXIocGFyZW50LCBuYW1lKTtcbiAgICBjb25zdCBpdGVyYXRvciA9IG5ldyBJdGVyYXRvckxhbWJkYSh0aGlzLCAnSXRlcmF0b3JMYW1iZGEnLCB7IHRhcmdldEZ1bmN0aW9uOiBwcm9wcy50YXJnZXRGdW5jdGlvbiB9KTtcbiAgICB0aGlzLml0ZXJhdG9yRnVuY3Rpb24gPSBpdGVyYXRvci5mdW5jdGlvbjtcbiAgICBjb25zdCBzdWJtaW51dGVTdGF0ZU1hY2hpbmUgPSBuZXcgU3VibWludXRlU3RhdGVNYWNoaW5lKHRoaXMsICdTdWJtaW51dGVTdGF0ZU1hY2hpbmUnLCB7XG4gICAgICBzdGF0ZU1hY2hpbmVOYW1lOiAnbGFtYmRhLXN1Ym1pbnV0ZS1zdGF0ZW1hY2hpbmUnLFxuICAgICAgdGFyZ2V0RnVuY3Rpb246IHByb3BzLnRhcmdldEZ1bmN0aW9uLFxuICAgICAgaXRlcmF0b3JGdW5jdGlvbjogdGhpcy5pdGVyYXRvckZ1bmN0aW9uLFxuICAgICAgaW50ZXJ2YWxUaW1lOiBwcm9wcy5pbnRlcnZhbFRpbWUgPz8gMTAsXG4gICAgICBmcmVxdWVuY3k6IHByb3BzLmZyZXF1ZW5jeSA/PyA2LFxuICAgIH0pO1xuICAgIHRoaXMuc3RhdGVNYWNoaW5lQXJuID0gc3VibWludXRlU3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm47XG5cbiAgICBjb25zdCBzdGFydFJ1bGUgPSBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ1N0YXJ0U3VibWludXRlU3RhdGVNYWNoaW5lJywge1xuICAgICAgc2NoZWR1bGU6IGV2ZW50cy5TY2hlZHVsZS5leHByZXNzaW9uKHByb3BzLmNyb25qb2JFeHByZXNzaW9uID8/ICdjcm9uKDUwLzEgMTUtMTcgPyAqICogKiknKSxcbiAgICAgIHJ1bGVOYW1lOiAnc3VibWludXRlLXN0YXRlbWFjaGluZS1sYW1iZGEtcnVsZScsXG4gICAgICBkZXNjcmlwdGlvbjogYEEgcnVsZSB0byBydW4gdGhlIHN1Ym1pbnV0ZSBzdGF0ZSBtYWNoaW5lLCBpLmUuICR7c3VibWludXRlU3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVOYW1lfWAsXG4gICAgfSk7XG4gICAgc3RhcnRSdWxlLmFkZFRhcmdldChuZXcgdGFyZ2V0cy5TZm5TdGF0ZU1hY2hpbmUoXG4gICAgICBzdWJtaW51dGVTdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lLCB7XG4gICAgICAgIGlucHV0OiBldmVudHMuUnVsZVRhcmdldElucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICAgIGl0ZXJhdG9yOiB7XG4gICAgICAgICAgICBpbmRleDogMCxcbiAgICAgICAgICAgIGNvdW50OiA2LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgfSkpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXRlcmF0b3JMYW1iZGFQcm9wcyB7XG4gIC8qKlxuICAgICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBpcyBnb2luZyB0byBiZSBleGVjdXRlZCBwZXIgdGltZSB1bml0IGxlc3MgdGhhbiBvbmUgbWludXRlLlxuICAgICAqL1xuICByZWFkb25seSB0YXJnZXRGdW5jdGlvbjogSUZ1bmN0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgSXRlcmF0b3JMYW1iZGEgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICAgKiBBIExhbWJkYSBmdW5jdGlvbiB0aGF0IHBsYXlzIHRoZSByb2xlIG9mIHRoZSBpdGVyYXRvci5cbiAgICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvbjtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgbmFtZTogc3RyaW5nLCBwcm9wczogSXRlcmF0b3JMYW1iZGFQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBuYW1lKTtcbiAgICBjb25zdCBpdGVyYXRvckxhbWJkYVJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ0l0ZXJhdG9yTGFtYmRhUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5Db21wb3NpdGVQcmluY2lwYWwoXG4gICAgICAgIG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgICksXG4gICAgICBkZXNjcmlwdGlvbjogJ0FuIGV4ZWN1dGlvbiByb2xlIGZvciBhIExhbWJkYSBmdW5jdGlvbiB0byBpbnZva2UgYSB0YXJnZXQgTGFtYmRhIEZ1bmN0aW9uIHBlciB0aW1lIHVuaXQgbGVzcyB0aGFuIG9uZSBtaW51dGUnLFxuICAgICAgbWFuYWdlZFBvbGljaWVzOiBbXG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZScpLFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ0FXU1hSYXlEYWVtb25Xcml0ZUFjY2VzcycpLFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFWUENBY2Nlc3NFeGVjdXRpb25Sb2xlJyksXG4gICAgICBdLFxuICAgICAgcm9sZU5hbWU6ICdMYW1iZGEtSXRlcmF0b3ItUm9sZScsXG4gICAgfSk7XG4gICAgY2RrLkRvY2tlclZvbHVtZUNvbnNpc3RlbmN5LkNPTlNJU1RFTlQ7XG5cblxuICAgIGl0ZXJhdG9yTGFtYmRhUm9sZS5hZGRUb1BvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBzaWQ6ICdUYXJnZXRMYW1iZGFQZXJtaXNzaW9uJyxcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnbGFtYmRhOkludm9rZUZ1bmN0aW9uJ10sXG4gICAgICByZXNvdXJjZXM6IFtwcm9wcy50YXJnZXRGdW5jdGlvbi5mdW5jdGlvbkFybl0sXG4gICAgfSkpO1xuXG4gICAgdGhpcy5mdW5jdGlvbiA9IG5ldyBOb2RlanNGdW5jdGlvbih0aGlzLCAnSXRlcmF0b3InLCB7XG4gICAgICBmdW5jdGlvbk5hbWU6ICdsYW1iZGEtc3VibWludXRlLWl0ZXJhdG9yJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQSBmdW5jdGlvbiBmb3IgYnJlYWtpbmcgdGhlIGxpbWl0IG9mIDEgbWludXRlIHdpdGggdGhlIENsb3VkV2F0Y2ggUnVsZXMuJyxcbiAgICAgIGxvZ1JldGVudGlvbjogUmV0ZW50aW9uRGF5cy5USFJFRV9NT05USFMsXG4gICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18xNF9YLFxuICAgICAgZW50cnk6IGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ3Jlc291cmNlcy9pdGVyYXRvci9pdGVyYXRvcl9hZ2VudC50cycpKSA/IHBhdGguam9pbihfX2Rpcm5hbWUsICdyZXNvdXJjZXMvaXRlcmF0b3IvaXRlcmF0b3JfYWdlbnQudHMnKSA6IHBhdGguam9pbihfX2Rpcm5hbWUsICdyZXNvdXJjZXMvaXRlcmF0b3IvaXRlcmF0b3JfYWdlbnQuanMnKSxcbiAgICAgIGhhbmRsZXI6ICdsYW1iZGFIYW5kbGVyJyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFRBUkdFVF9GTl9OQU1FOiBwcm9wcy50YXJnZXRGdW5jdGlvbi5mdW5jdGlvbk5hbWUsXG4gICAgICB9LFxuICAgICAgbWVtb3J5U2l6ZTogMTI4LFxuICAgICAgcm9sZTogaXRlcmF0b3JMYW1iZGFSb2xlLFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNTgpLCAvLyAxIG1pblxuICAgICAgdHJhY2luZzogVHJhY2luZy5BQ1RJVkUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJtaW51dGVTdGF0ZU1hY2hpbmVQcm9wcyB7XG4gIC8qKlxuICAgKiB0aGUgbmFtZSBvZiB0aGUgc3RhdGUgbWFjaGluZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlTWFjaGluZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIHRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBleGVjdXRlcyB5b3VyIGludGVudGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEZ1bmN0aW9uOiBJRnVuY3Rpb247XG4gIC8qKlxuICAgKiB0aGUgaXRlcmF0b3IgTGFtYmRhIGZ1bmN0aW9uIGZvciB0aGUgdGFyZ2V0IExhbWJkYSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGl0ZXJhdG9yRnVuY3Rpb246IElGdW5jdGlvbjtcbiAgLyoqXG4gICAqIFNlY29uZHMgZm9yIGFuIGludGVydmFsLCB0aGUgcHJvZHVjdCBvZiBgZnJlcXVlbmN5YCBhbmQgYGludGVydmFsVGltZWAgc2hvdWxkIGJlIGFwcHJveGltYWdlbHkgMSBtaW51dGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICByZWFkb25seSBpbnRlcnZhbFRpbWU6IG51bWJlcjtcbiAgLyoqXG4gICAqIEhvdyBtYW55IHRpbWVzIHlvdSBpbnRlbnQgdG8gZXhlY3V0ZSBpbiBhIG1pbnV0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgNlxuICAgKi9cbiAgcmVhZG9ubHkgZnJlcXVlbmN5OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBTdWJtaW51dGVTdGF0ZU1hY2hpbmUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICByZWFkb25seSBzdGF0ZU1hY2hpbmU6IHNmbi5TdGF0ZU1hY2hpbmU7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdWJtaW51dGVTdGF0ZU1hY2hpbmVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3Qgc3RhdGVNYWNoaW5lUm9sZSA9IHRoaXMuX2NyZWF0ZVdvcmtGbG93Um9sZShcbiAgICAgIHByb3BzLnRhcmdldEZ1bmN0aW9uLmZ1bmN0aW9uQXJuLCBwcm9wcy5pdGVyYXRvckZ1bmN0aW9uLmZ1bmN0aW9uQXJuKTtcbiAgICBjb25zdCBqb2JEZWZpbml0aW9uID0gdGhpcy5jcmVhdGVKb2JEZWZpbml0aW9uKHByb3BzLml0ZXJhdG9yRnVuY3Rpb24sIHByb3BzLmludGVydmFsVGltZSwgcHJvcHMuZnJlcXVlbmN5KTtcbiAgICBjb25zdCBzdGF0ZU1hY2hpbmUgPSBuZXcgc2ZuLlN0YXRlTWFjaGluZSh0aGlzLCAnU3RhdGVNYWNoaW5lJywge1xuICAgICAgc3RhdGVNYWNoaW5lTmFtZTogcHJvcHMuc3RhdGVNYWNoaW5lTmFtZSxcbiAgICAgIGRlZmluaXRpb246IGpvYkRlZmluaXRpb24sXG4gICAgICByb2xlOiBzdGF0ZU1hY2hpbmVSb2xlLFxuICAgIH0pO1xuICAgIHRoaXMuc3RhdGVNYWNoaW5lID0gc3RhdGVNYWNoaW5lO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdGF0ZSBtYWNoaW5lIGZvciBicmVha2luZyB0aGUgbGltaXQgb2YgMSBtaW51dGUgd2l0aCB0aGUgQ2xvdWRXYXRjaCBSdWxlcy5cbiAgICpcbiAgICogQHBhcmFtIGl0ZXJhdG9yRnVuY3Rpb24gVGhlIGl0ZXJhdG9yIExhbWJkYSBmdW5jdGlvbiBmb3IgdGhlIHRhcmdldCBMYWJtZGEgZnVuY2l0b24uXG4gICAqIEBwYXJhbSBpbnRlcnZhbFRpbWUgU2Vjb25kcyBmb3IgYW4gaW50ZXJ2YWwsIHRoZSBwcm9kdWN0IG9mIGBmcmVxdWVuY3lgIGFuZCBgaW50ZXJ2YWxUaW1lYCBzaG91bGQgYmUgYXBwcm94aW1hZ2VseSAxIG1pbnV0ZS5cbiAgICogQHBhcmFtIGZyZXF1ZW5jeSBIb3cgbWFueSB0aW1lcyB5b3UgaW50ZW50IHRvIGV4ZWN1dGUgaW4gYSBtaW51dGUuXG4gICAqIEByZXR1cm5zIFRIZSBqb2IgZGVmaW5pdGlvbiBmb3IgdGhlIHN0YXRlIG1hY2hpbmUuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUpvYkRlZmluaXRpb24gPSAoXG4gICAgaXRlcmF0b3JGdW5jdGlvbjogSUZ1bmN0aW9uLCBpbnRlcnZhbFRpbWU6IG51bWJlciwgZnJlcXVlbmN5OiBudW1iZXIpOiBzZm4uQ2hhaW4gPT4ge1xuICAgIGNvbnN0IGNvbmZpZ3VyZUNvdW50ID0gbmV3IHNmbi5QYXNzKHRoaXMsICdDb25maWd1cmVDb3VudCcsIHtcbiAgICAgIHJlc3VsdDogc2ZuLlJlc3VsdC5mcm9tT2JqZWN0KHtcbiAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgIGNvdW50OiBmcmVxdWVuY3ksXG4gICAgICB9KSxcbiAgICAgIHJlc3VsdFBhdGg6ICckLml0ZXJhdG9yJyxcbiAgICB9KTtcbiAgICBjb25zdCBpdGVyYXRvciA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ0l0ZXJhdG9yJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IGl0ZXJhdG9yRnVuY3Rpb24sXG4gICAgICByZXN1bHRQYXRoOiAnJC5pdGVyYXRvcicsXG4gICAgICByZXN1bHRTZWxlY3Rvcjoge1xuICAgICAgICAnaW5kZXguJCc6ICckLlBheWxvYWQuaW5kZXgnLFxuICAgICAgICAnY291bnQuJCc6ICckLlBheWxvYWQuY291bnQnLFxuICAgICAgICAnY29udGludWUuJCc6ICckLlBheWxvYWQuY29udGludWUnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCB3YWl0ID0gbmV3IHNmbi5XYWl0KHRoaXMsICdXYWl0IGZvciB0aGUgdGFyZ2V0IExhbWJkYSBmdW5jdGlvbiBmaW5pc2hlZCcsIHtcbiAgICAgIHRpbWU6IHNmbi5XYWl0VGltZS5kdXJhdGlvbihjZGsuRHVyYXRpb24uc2Vjb25kcyhpbnRlcnZhbFRpbWUpKSxcbiAgICB9KTtcbiAgICB3YWl0Lm5leHQoaXRlcmF0b3IpO1xuICAgIGNvbnN0IGRvbmUgPSBuZXcgc2ZuLlBhc3ModGhpcywgJ0RvbmUnKTtcblxuICAgIGNvbnN0IGlzQ291bnRSZWFjaGVkID0gbmV3IHNmbi5DaG9pY2UodGhpcywgJ0lzQ291bnRSZWFjaGVkJyk7XG4gICAgaXNDb3VudFJlYWNoZWQud2hlbihzZm4uQ29uZGl0aW9uLmJvb2xlYW5FcXVhbHMoJyQuaXRlcmF0b3IuY29udGludWUnLCB0cnVlKSwgd2FpdCk7XG4gICAgaXNDb3VudFJlYWNoZWQub3RoZXJ3aXNlKGRvbmUpO1xuICAgIGNvbnN0IGpvYkRlZmluaXRpb24gPSBjb25maWd1cmVDb3VudC5uZXh0KGl0ZXJhdG9yKS5uZXh0KGlzQ291bnRSZWFjaGVkKTtcbiAgICByZXR1cm4gam9iRGVmaW5pdGlvbjtcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHJvbGUgYW5kIGNvcnJlc3BvbmRpbmcgcG9saWNpZXMgZm9yIHRoZSBzdWJtaW51dGUgc3RhdGUgbWFjaGluZS5cbiAgICpcbiAgICogQHBhcmFtIHRhcmdldEZ1bmN0aW9uQXJuIHRoZSBBUk4gb2YgdGhlIExhbWJkYSBmdW5jdGlvbiB0aGF0IGV4ZWN1dGVzIHlvdXIgaW50ZW50aW9uLlxuICAgKiBAcGFyYW0gaXRlcmF0b3JGdW5jdGlvbkFybiB0aGUgQVJOIG9mIHRoZSBpdGVyYXRvciBMYW1iZGEgZnVuY3Rpb24gZm9yIHRoZSB0YXJnZXQgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKiBAcmV0dXJucyB0aGUgcm9sZSBhcyB0aGUgZG9jdW1lbnRhdGlvbiBpbmRpY2F0ZXMuXG4gICAqL1xuICBwcml2YXRlIF9jcmVhdGVXb3JrRmxvd1JvbGUgPSAodGFyZ2V0RnVuY3Rpb25Bcm46IHN0cmluZywgaXRlcmF0b3JGdW5jdGlvbkFybjogc3RyaW5nKSA9PiB7XG4gICAgY29uc3Qgd29ya0Zsb3dFeGVjdXRpb25Sb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdTdGVwRnVuY3Rpb25FeGVjdXRpb25Sb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ3N0YXRlcy5hbWF6b25hd3MuY29tJyksXG4gICAgICBkZXNjcmlwdGlvbjogJ0V4ZWN1dGUgYSB3b3JrZmxvdyByZWxhdGVkIHRvIGV4ZWN1dGluZyBhIExhbWJkYSBmdW5jdGlvbiBwZXIgdGltZSB1bml0IGxlc3MgdGhhbiAxIG1pbnV0ZS4nLFxuICAgIH0pO1xuICAgIHdvcmtGbG93RXhlY3V0aW9uUm9sZS5hZGRUb1BvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBzaWQ6ICdMYW1iZGFJbnZva2VQZXJtaXNzaW9ucycsXG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2xhbWJkYTpJbnZva2VGdW5jdGlvbiddLFxuICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgIHRhcmdldEZ1bmN0aW9uQXJuLFxuICAgICAgICBpdGVyYXRvckZ1bmN0aW9uQXJuLFxuICAgICAgXSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHdvcmtGbG93RXhlY3V0aW9uUm9sZTtcbiAgfTtcbn0iXX0=
@@ -2,8 +2,8 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  // import 'source-map-support/register';
5
- const aws_lambda_1 = require("@aws-cdk/aws-lambda");
6
- const cdk = require("@aws-cdk/core");
5
+ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
6
+ const cdk = require("aws-cdk-lib/core");
7
7
  const cdk_lambda_subminute_1 = require("../../cdk-lambda-subminute");
8
8
  class TypescriptStack extends cdk.Stack {
9
9
  constructor(scope, id, props) {
@@ -38,4 +38,4 @@ new TypescriptStack(app, 'TypescriptStack', {
38
38
  // env: { account: '123456789012', region: 'us-east-1' },
39
39
  /* For more information, see https://docs.aws.amazon.com/cdk/latest/guide/environments.html */
40
40
  });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZW1vL3R5cGVzY3JpcHQvdHlwZXNjcmlwdC1zdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3Q0FBd0M7QUFDeEMsb0RBQThEO0FBQzlELHFDQUFxQztBQUNyQyxxRUFBNkQ7QUFFN0QsTUFBTSxlQUFnQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBQ3JDLFlBQVksS0FBb0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxxQkFBUSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUN4RCxJQUFJLEVBQUUsaUJBQUksQ0FBQyxVQUFVLENBQUMsd0VBQXdFLENBQUM7WUFDL0YsWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO1lBQzVCLE9BQU8sRUFBRSxlQUFlO1NBQ3pCLENBQUMsQ0FBQztRQUNILE1BQU0sY0FBYyxHQUFHLDhCQUE4QixDQUFDO1FBQ3RELE1BQU0sZUFBZSxHQUFHLElBQUksc0NBQWUsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDbkUsY0FBYyxFQUFFLFlBQVk7WUFDNUIsaUJBQWlCLEVBQUUsY0FBYztZQUNqQyxTQUFTLEVBQUUsRUFBRTtZQUNiLFlBQVksRUFBRSxDQUFDO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDeEYsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxFQUFFLEtBQUssRUFBRSxlQUFlLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMzRyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMxQixJQUFJLGVBQWUsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUU7QUFDMUM7O3VFQUV1RTtBQUV2RTt5RUFDeUU7QUFDekUsNkZBQTZGO0FBRTdGO3dDQUN3QztBQUN4Qyx5REFBeUQ7QUFFekQsOEZBQThGO0NBQy9GLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbi8vIGltcG9ydCAnc291cmNlLW1hcC1zdXBwb3J0L3JlZ2lzdGVyJztcbmltcG9ydCB7IENvZGUsIEZ1bmN0aW9uLCBSdW50aW1lIH0gZnJvbSAnQGF3cy1jZGsvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBMYW1iZGFTdWJtaW51dGUgfSBmcm9tICcuLi8uLi9jZGstbGFtYmRhLXN1Ym1pbnV0ZSc7XG5cbmNsYXNzIFR5cGVzY3JpcHRTdGFjayBleHRlbmRzIGNkay5TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IGNkay5TdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBjb25zdCB0YXJnZXRMYWJtZGEgPSBuZXcgRnVuY3Rpb24odGhpcywgJ3RhcmdldEZ1bmN0aW9uJywge1xuICAgICAgY29kZTogQ29kZS5mcm9tSW5saW5lKCdleHBvcnRzLmhhbmRsZXIgPSBmdW5jdGlvbihldmVudCwgY3R4LCBjYikgeyByZXR1cm4gY2IobnVsbCwgXCJoaVwiKTsgfSknKSxcbiAgICAgIGZ1bmN0aW9uTmFtZTogJ3Rlc3RUYXJnZXRGdW5jdGlvbicsXG4gICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18xMl9YLFxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgIH0pO1xuICAgIGNvbnN0IGNyb25Kb2JFeGFtcGxlID0gJ2Nyb24oNTAvMSAzLTQgPyAqIFNVTi1TQVQgKiknO1xuICAgIGNvbnN0IHN1Ym1pbnV0ZU1hc3RlciA9IG5ldyBMYW1iZGFTdWJtaW51dGUodGhpcywgJ0xhbWJkYVN1Ym1pbnV0ZScsIHtcbiAgICAgIHRhcmdldEZ1bmN0aW9uOiB0YXJnZXRMYWJtZGEsXG4gICAgICBjcm9uam9iRXhwcmVzc2lvbjogY3JvbkpvYkV4YW1wbGUsXG4gICAgICBmcmVxdWVuY3k6IDEwLFxuICAgICAgaW50ZXJ2YWxUaW1lOiA2LFxuICAgIH0pO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ09TdGF0ZU1hY2hpbmVBcm4nLCB7IHZhbHVlOiBzdWJtaW51dGVNYXN0ZXIuc3RhdGVNYWNoaW5lQXJuIH0pO1xuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdPSXRlcmF0b3JGdW5jdGlvbkFybicsIHsgdmFsdWU6IHN1Ym1pbnV0ZU1hc3Rlci5pdGVyYXRvckZ1bmN0aW9uLmZ1bmN0aW9uQXJuIH0pO1xuICB9XG59XG5cbmNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG5uZXcgVHlwZXNjcmlwdFN0YWNrKGFwcCwgJ1R5cGVzY3JpcHRTdGFjaycsIHtcbiAgLyogSWYgeW91IGRvbid0IHNwZWNpZnkgJ2VudicsIHRoaXMgc3RhY2sgd2lsbCBiZSBlbnZpcm9ubWVudC1hZ25vc3RpYy5cbiAgICAgICAgICogQWNjb3VudC9SZWdpb24tZGVwZW5kZW50IGZlYXR1cmVzIGFuZCBjb250ZXh0IGxvb2t1cHMgd2lsbCBub3Qgd29yayxcbiAgICAgICAgICogYnV0IGEgc2luZ2xlIHN5bnRoZXNpemVkIHRlbXBsYXRlIGNhbiBiZSBkZXBsb3llZCBhbnl3aGVyZS4gKi9cblxuICAvKiBVbmNvbW1lbnQgdGhlIG5leHQgbGluZSB0byBzcGVjaWFsaXplIHRoaXMgc3RhY2sgZm9yIHRoZSBBV1MgQWNjb3VudFxuICAgICAgICAgKiBhbmQgUmVnaW9uIHRoYXQgYXJlIGltcGxpZWQgYnkgdGhlIGN1cnJlbnQgQ0xJIGNvbmZpZ3VyYXRpb24uICovXG4gIC8vIGVudjogeyBhY2NvdW50OiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9BQ0NPVU5ULCByZWdpb246IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTiB9LFxuXG4gIC8qIFVuY29tbWVudCB0aGUgbmV4dCBsaW5lIGlmIHlvdSBrbm93IGV4YWN0bHkgd2hhdCBBY2NvdW50IGFuZCBSZWdpb24geW91XG4gICAgICAgICAqIHdhbnQgdG8gZGVwbG95IHRoZSBzdGFjayB0by4gKi9cbiAgLy8gZW52OiB7IGFjY291bnQ6ICcxMjM0NTY3ODkwMTInLCByZWdpb246ICd1cy1lYXN0LTEnIH0sXG5cbiAgLyogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2xhdGVzdC9ndWlkZS9lbnZpcm9ubWVudHMuaHRtbCAqL1xufSk7Il19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZW1vL3R5cGVzY3JpcHQvdHlwZXNjcmlwdC1zdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3Q0FBd0M7QUFDeEMsdURBQWlFO0FBQ2pFLHdDQUF3QztBQUV4QyxxRUFBNkQ7QUFFN0QsTUFBTSxlQUFnQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBQ3JDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxxQkFBUSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUN4RCxJQUFJLEVBQUUsaUJBQUksQ0FBQyxVQUFVLENBQUMsd0VBQXdFLENBQUM7WUFDL0YsWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO1lBQzVCLE9BQU8sRUFBRSxlQUFlO1NBQ3pCLENBQUMsQ0FBQztRQUNILE1BQU0sY0FBYyxHQUFHLDhCQUE4QixDQUFDO1FBQ3RELE1BQU0sZUFBZSxHQUFHLElBQUksc0NBQWUsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDbkUsY0FBYyxFQUFFLFlBQVk7WUFDNUIsaUJBQWlCLEVBQUUsY0FBYztZQUNqQyxTQUFTLEVBQUUsRUFBRTtZQUNiLFlBQVksRUFBRSxDQUFDO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDeEYsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxFQUFFLEtBQUssRUFBRSxlQUFlLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMzRyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMxQixJQUFJLGVBQWUsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLEVBQUU7QUFDMUM7O3VFQUV1RTtBQUV2RTt5RUFDeUU7QUFDekUsNkZBQTZGO0FBRTdGO3dDQUN3QztBQUN4Qyx5REFBeUQ7QUFFekQsOEZBQThGO0NBQy9GLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbi8vIGltcG9ydCAnc291cmNlLW1hcC1zdXBwb3J0L3JlZ2lzdGVyJztcbmltcG9ydCB7IENvZGUsIEZ1bmN0aW9uLCBSdW50aW1lIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IExhbWJkYVN1Ym1pbnV0ZSB9IGZyb20gJy4uLy4uL2Nkay1sYW1iZGEtc3VibWludXRlJztcblxuY2xhc3MgVHlwZXNjcmlwdFN0YWNrIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBjZGsuU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgY29uc3QgdGFyZ2V0TGFibWRhID0gbmV3IEZ1bmN0aW9uKHRoaXMsICd0YXJnZXRGdW5jdGlvbicsIHtcbiAgICAgIGNvZGU6IENvZGUuZnJvbUlubGluZSgnZXhwb3J0cy5oYW5kbGVyID0gZnVuY3Rpb24oZXZlbnQsIGN0eCwgY2IpIHsgcmV0dXJuIGNiKG51bGwsIFwiaGlcIik7IH0pJyksXG4gICAgICBmdW5jdGlvbk5hbWU6ICd0ZXN0VGFyZ2V0RnVuY3Rpb24nLFxuICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMTJfWCxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICB9KTtcbiAgICBjb25zdCBjcm9uSm9iRXhhbXBsZSA9ICdjcm9uKDUwLzEgMy00ID8gKiBTVU4tU0FUICopJztcbiAgICBjb25zdCBzdWJtaW51dGVNYXN0ZXIgPSBuZXcgTGFtYmRhU3VibWludXRlKHRoaXMsICdMYW1iZGFTdWJtaW51dGUnLCB7XG4gICAgICB0YXJnZXRGdW5jdGlvbjogdGFyZ2V0TGFibWRhLFxuICAgICAgY3JvbmpvYkV4cHJlc3Npb246IGNyb25Kb2JFeGFtcGxlLFxuICAgICAgZnJlcXVlbmN5OiAxMCxcbiAgICAgIGludGVydmFsVGltZTogNixcbiAgICB9KTtcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdPU3RhdGVNYWNoaW5lQXJuJywgeyB2YWx1ZTogc3VibWludXRlTWFzdGVyLnN0YXRlTWFjaGluZUFybiB9KTtcbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnT0l0ZXJhdG9yRnVuY3Rpb25Bcm4nLCB7IHZhbHVlOiBzdWJtaW51dGVNYXN0ZXIuaXRlcmF0b3JGdW5jdGlvbi5mdW5jdGlvbkFybiB9KTtcbiAgfVxufVxuXG5jb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xubmV3IFR5cGVzY3JpcHRTdGFjayhhcHAsICdUeXBlc2NyaXB0U3RhY2snLCB7XG4gIC8qIElmIHlvdSBkb24ndCBzcGVjaWZ5ICdlbnYnLCB0aGlzIHN0YWNrIHdpbGwgYmUgZW52aXJvbm1lbnQtYWdub3N0aWMuXG4gICAgICAgICAqIEFjY291bnQvUmVnaW9uLWRlcGVuZGVudCBmZWF0dXJlcyBhbmQgY29udGV4dCBsb29rdXBzIHdpbGwgbm90IHdvcmssXG4gICAgICAgICAqIGJ1dCBhIHNpbmdsZSBzeW50aGVzaXplZCB0ZW1wbGF0ZSBjYW4gYmUgZGVwbG95ZWQgYW55d2hlcmUuICovXG5cbiAgLyogVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgdG8gc3BlY2lhbGl6ZSB0aGlzIHN0YWNrIGZvciB0aGUgQVdTIEFjY291bnRcbiAgICAgICAgICogYW5kIFJlZ2lvbiB0aGF0IGFyZSBpbXBsaWVkIGJ5IHRoZSBjdXJyZW50IENMSSBjb25maWd1cmF0aW9uLiAqL1xuICAvLyBlbnY6IHsgYWNjb3VudDogcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVCwgcmVnaW9uOiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT04gfSxcblxuICAvKiBVbmNvbW1lbnQgdGhlIG5leHQgbGluZSBpZiB5b3Uga25vdyBleGFjdGx5IHdoYXQgQWNjb3VudCBhbmQgUmVnaW9uIHlvdVxuICAgICAgICAgKiB3YW50IHRvIGRlcGxveSB0aGUgc3RhY2sgdG8uICovXG4gIC8vIGVudjogeyBhY2NvdW50OiAnMTIzNDU2Nzg5MDEyJywgcmVnaW9uOiAndXMtZWFzdC0xJyB9LFxuXG4gIC8qIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvZW52aXJvbm1lbnRzLmh0bWwgKi9cbn0pOyJdfQ==