@liflig/cdk 2.16.0 → 2.17.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.
Files changed (44) hide show
  1. package/assets/pipeline-slack-notification-lambda/index.py +23 -7
  2. package/assets/slack-alarm-lambda/index.py +70 -36
  3. package/lib/alarms/database-alarms.js +1 -1
  4. package/lib/alarms/service-alarms.js +1 -1
  5. package/lib/alarms/ses-alarms.js +1 -1
  6. package/lib/alarms/slack-alarm.d.ts +9 -2
  7. package/lib/alarms/slack-alarm.js +4 -4
  8. package/lib/bin/cdk-create-snapshots.js +1 -1
  9. package/lib/bin/fetch-pipeline-variables.js +1 -1
  10. package/lib/build-artifacts/index.js +1 -1
  11. package/lib/cdk-deploy/start-deploy-handler.js +1 -1
  12. package/lib/cdk-deploy/status-handler.js +1 -1
  13. package/lib/cdk-pipelines/cloud-assembly-lookup-handler.js +1 -1
  14. package/lib/cdk-pipelines/liflig-cdk-pipeline.js +1 -1
  15. package/lib/cdk-pipelines/slack-notification.d.ts +7 -16
  16. package/lib/cdk-pipelines/slack-notification.js +6 -7
  17. package/lib/cdk-pipelines/variables.js +1 -1
  18. package/lib/cloudtrail-slack-integration/cloudtrail-slack-integration.js +1 -1
  19. package/lib/configure-parameters/configure-parameters.js +1 -1
  20. package/lib/ecs/cluster.js +1 -1
  21. package/lib/ecs/fargate-service.js +1 -1
  22. package/lib/ecs/listener-rule.js +1 -1
  23. package/lib/ecs-update-image/ecs-update-image.js +1 -1
  24. package/lib/ecs-update-image/start-deploy-handler.js +1 -1
  25. package/lib/ecs-update-image/status-handler.js +1 -1
  26. package/lib/ecs-update-image/tag.js +1 -1
  27. package/lib/feature-flags.js +1 -1
  28. package/lib/hosted-zone-with-param.js +1 -1
  29. package/lib/pipelines/deploy-env.js +1 -1
  30. package/lib/pipelines/pipeline.js +1 -1
  31. package/lib/platform/platform.js +1 -1
  32. package/lib/ses/configurationsetsnsdestination/handler.js +1 -1
  33. package/lib/ses/configurationsetsnsdestination/index.js +1 -1
  34. package/lib/ses/sesdomain/handler.js +1 -1
  35. package/lib/ses/sesdomain/index.js +1 -1
  36. package/lib/ses/sesverifyemail/handler.js +1 -1
  37. package/lib/snapshots.js +1 -1
  38. package/lib/ssm-parameter-backed-resource.js +1 -1
  39. package/lib/tags.js +1 -1
  40. package/lib/utils.js +1 -1
  41. package/lib/webapp/monitor.js +1 -1
  42. package/lib/webapp/security-headers.js +1 -1
  43. package/lib/webapp/webapp.js +1 -1
  44. package/package.json +13 -13
@@ -10,10 +10,10 @@ import boto3
10
10
 
11
11
  client = boto3.client("codepipeline")
12
12
  s3 = boto3.client("s3")
13
+ secrets_manager = boto3.client("secretsmanager")
13
14
 
14
15
  ACCOUNT_FRIENDLY_NAME = os.getenv("ACCOUNT_FRIENDLY_NAME", None)
15
- SLACK_URL = os.getenv("SLACK_URL", None)
16
- SLACK_CHANNEL = os.getenv("SLACK_CHANNEL", None)
16
+ SLACK_URL_SECRET_NAME = os.getenv("SLACK_URL_SECRET_NAME", None)
17
17
  NOTIFICATION_LEVEL = os.getenv("NOTIFICATION_LEVEL", "WARN")
18
18
 
19
19
  # Example event:
@@ -64,6 +64,16 @@ class TriggerMetadata(t.TypedDict):
64
64
  vcs: TriggerMetadataVcs
65
65
 
66
66
 
67
+ def get_masked_slack_webhook_url(slack_webhook_url: str):
68
+ """
69
+ Return a string that masks the final path segment of a Slack webhook URL.
70
+ The URL is typically formatted as such: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
71
+ """
72
+ trimmed_url = slack_webhook_url.rstrip("/")
73
+ [*url, final_path_segment] = trimmed_url.split("/")
74
+ return "/".join(url + [len(final_path_segment) * "*"])
75
+
76
+
67
77
  def get_previous_pipeline_execution(
68
78
  pipeline_name: str, execution_id: str
69
79
  ) -> dict | None:
@@ -185,6 +195,13 @@ def get_footer_text(ci_metadata: TriggerMetadata) -> str:
185
195
  return footer_text
186
196
 
187
197
 
198
+ def get_secret(secret):
199
+ try:
200
+ return secrets_manager.get_secret_value(SecretId=secret)["SecretString"]
201
+ except Exception as e:
202
+ raise Exception(f"Error retrieving secret: {e}")
203
+
204
+
188
205
  def handler(event, context):
189
206
 
190
207
  print("Event: " + json.dumps(event))
@@ -267,17 +284,16 @@ def handler(event, context):
267
284
  ]
268
285
 
269
286
  slack_message = {
270
- "channel": SLACK_CHANNEL,
271
287
  "attachments": attachments,
272
- "username": "Liflig CDK Pipelines",
273
- "icon_emoji": ":traffic_light:",
274
288
  }
275
289
 
276
- req = Request(SLACK_URL, json.dumps(slack_message).encode("utf-8"))
290
+ slack_url = get_secret(SLACK_URL_SECRET_NAME)
291
+
292
+ req = Request(slack_url, json.dumps(slack_message).encode("utf-8"))
293
+ print(f"Posting message to Slack URL {get_masked_slack_webhook_url(slack_url)}")
277
294
  try:
278
295
  response = urlopen(req)
279
296
  response.read()
280
- print(f"Message posted to: {slack_message['channel']}")
281
297
  except HTTPError as e:
282
298
  raise Exception(f"Request to slack failed: {e.code} {e.reason}")
283
299
  except URLError as e:
@@ -1,68 +1,102 @@
1
1
  import json
2
2
  import os
3
- import boto3
4
3
  from urllib.request import Request, urlopen
5
4
  from urllib.error import URLError, HTTPError
6
5
 
7
- SLACK_URL = os.getenv('SLACK_URL', None)
8
- SLACK_CHANNEL = os.getenv('SLACK_CHANNEL', None)
9
- PROJECT_NAME = os.getenv('PROJECT_NAME', 'undefined')
10
- ENVIRONMENT_NAME = os.getenv('ENVIRONMENT_NAME', 'undefined')
6
+ import boto3
7
+
8
+ secrets_manager = boto3.client("secretsmanager")
9
+
10
+ SLACK_URL_SECRET_NAME = os.getenv("SLACK_URL_SECRET_NAME", None)
11
+ PROJECT_NAME = os.getenv("PROJECT_NAME", "undefined")
12
+ ENVIRONMENT_NAME = os.getenv("ENVIRONMENT_NAME", "undefined")
11
13
 
12
14
 
13
15
  def handler(event, context):
14
16
  print("Event: " + json.dumps(event))
15
- message = json.loads(event['Records'][0]['Sns']['Message'])
16
- region = event['Records'][0]['Sns']['TopicArn'].split(':')[3]
17
+ message = json.loads(event["Records"][0]["Sns"]["Message"])
18
+ region = event["Records"][0]["Sns"]["TopicArn"].split(":")[3]
17
19
 
18
20
  return send_slack_notification(message, region)
19
21
 
20
22
 
23
+ def get_masked_slack_webhook_url(slack_webhook_url: str):
24
+ """
25
+ Return a string that masks the final path segment of a Slack webhook URL.
26
+ The URL is typically formatted as such: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
27
+ """
28
+ trimmed_url = slack_webhook_url.rstrip("/")
29
+ [*url, final_path_segment] = trimmed_url.split("/")
30
+ return "/".join(url + [len(final_path_segment) * "*"])
31
+
32
+
33
+ def get_secret(secret):
34
+ try:
35
+ return secrets_manager.get_secret_value(SecretId=secret)["SecretString"]
36
+ except Exception as e:
37
+ raise Exception(f"Error retrieving secret: {e}")
38
+
39
+
21
40
  def send_slack_notification(message, region):
22
41
  alarm_emojis = {
23
42
  "ALARM": ":rotating_light:",
24
43
  "INSUFFICIENT_DATA": ":warning:",
25
- "OK": ":white_check_mark:"
44
+ "OK": ":white_check_mark:",
26
45
  }
27
- if (message['NewStateValue'] == "ALARM"):
46
+ if message["NewStateValue"] == "ALARM":
28
47
  color = "danger"
29
48
  else:
30
49
  color = "good"
31
50
  alarm_description = message["AlarmDescription"] or "Alarm is missing description"
32
- attachments = [{
33
- 'color': color,
34
- 'title_link': "https://console.aws.amazon.com/cloudwatch/home?region=" + region + "#alarm:alarmFilter=ANY;name=" + message['AlarmName'],
35
- 'fallback': f"{alarm_emojis.get(message['NewStateValue'], '')} {message['AlarmName']}: {alarm_description}",
36
- 'fields': [
37
- {'title': 'Alarm Name',
38
- 'value': message['AlarmName'], 'short': False},
39
- {'title': 'Alarm Description',
40
- 'value': alarm_description, 'short': False},
41
- {'title': 'Account',
42
- 'value': message['AWSAccountId'], 'short': True},
43
- {'title': 'Region', 'value': region, 'short': True},
44
- {'title': 'Project', 'value': PROJECT_NAME, 'short': True},
45
- {'title': 'Environment', 'value': ENVIRONMENT_NAME, 'short': True},
46
- {'title': 'State Transition',
47
- 'value': message.get('OldStateValue', 'Unknown') + ' -> ' + message['NewStateValue'], 'short': False},
48
- {'title': 'Link to Alarm', 'value': "https://console.aws.amazon.com/cloudwatch/home?region=" +
49
- region + "#alarm:alarmFilter=ANY;name=" + message['AlarmName'], "short": False},
50
- ]
51
-
52
- }]
51
+ attachments = [
52
+ {
53
+ "color": color,
54
+ "title_link": "https://console.aws.amazon.com/cloudwatch/home?region="
55
+ + region
56
+ + "#alarm:alarmFilter=ANY;name="
57
+ + message["AlarmName"],
58
+ "fallback": f"{alarm_emojis.get(message['NewStateValue'], '')} {message['AlarmName']}: {alarm_description}",
59
+ "fields": [
60
+ {"title": "Alarm Name", "value": message["AlarmName"], "short": False},
61
+ {
62
+ "title": "Alarm Description",
63
+ "value": alarm_description,
64
+ "short": False,
65
+ },
66
+ {"title": "Account", "value": message["AWSAccountId"], "short": True},
67
+ {"title": "Region", "value": region, "short": True},
68
+ {"title": "Project", "value": PROJECT_NAME, "short": True},
69
+ {"title": "Environment", "value": ENVIRONMENT_NAME, "short": True},
70
+ {
71
+ "title": "State Transition",
72
+ "value": message.get("OldStateValue", "Unknown")
73
+ + " -> "
74
+ + message["NewStateValue"],
75
+ "short": False,
76
+ },
77
+ {
78
+ "title": "Link to Alarm",
79
+ "value": "https://console.aws.amazon.com/cloudwatch/home?region="
80
+ + region
81
+ + "#alarm:alarmFilter=ANY;name="
82
+ + message["AlarmName"],
83
+ "short": False,
84
+ },
85
+ ],
86
+ }
87
+ ]
53
88
 
54
89
  slackMessage = {
55
- 'channel': SLACK_CHANNEL,
56
- 'attachments': attachments,
57
- 'username': 'CloudWatch-Notifier',
58
- 'icon_emoji': ':traffic_light:'
90
+ "attachments": attachments,
59
91
  }
60
92
 
61
- req = Request(SLACK_URL, json.dumps(slackMessage).encode('utf-8'))
93
+ slack_url = get_secret(SLACK_URL_SECRET_NAME)
94
+
95
+ req = Request(slack_url, json.dumps(slackMessage).encode("utf-8"))
96
+ print(f"Posting message to Slack URL {get_masked_slack_webhook_url(slack_url)}")
62
97
  try:
63
98
  response = urlopen(req)
64
99
  response.read()
65
- return "Message posted to: " + slackMessage['channel']
66
100
  except HTTPError as e:
67
101
  raise Exception(f"Request to slack failed: {e.code} {e.reason}")
68
102
  except URLError as e:
@@ -168,4 +168,4 @@ class DatabaseAlarms extends constructs.Construct {
168
168
  }
169
169
  }
170
170
  exports.DatabaseAlarms = DatabaseAlarms;
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UtYWxhcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtcy9kYXRhYmFzZS1hbGFybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXdDO0FBQ3hDLG1DQUFrQztBQUNsQyx5REFBd0Q7QUFheEQsNEhBQTRIO0FBQzVILE1BQU0sOEJBQThCLEdBRWhDO0lBQ0YsU0FBUyxFQUFFLEVBQUU7SUFDYixVQUFVLEVBQUUsR0FBRztJQUNmLFVBQVUsRUFBRSxHQUFHO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsVUFBVSxFQUFFLEdBQUc7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixZQUFZLEVBQUUsTUFBTTtJQUNwQixTQUFTLEVBQUUsR0FBRztJQUNkLFVBQVUsRUFBRSxHQUFHO0lBQ2YsVUFBVSxFQUFFLEdBQUc7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixVQUFVLEVBQUUsR0FBRztJQUNmLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFVBQVUsRUFBRSxHQUFHO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsWUFBWSxFQUFFLEdBQUc7SUFDakIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsWUFBWSxFQUFFLElBQUk7SUFDbEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsVUFBVSxFQUFFLEdBQUc7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsR0FBRztJQUNoQixZQUFZLEVBQUUsR0FBRztJQUNqQixXQUFXLEVBQUUsR0FBRztJQUNoQixZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsSUFBSTtDQUNwQixDQUFBO0FBRUQsTUFBYSxjQUFlLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFNdEQsWUFDRSxLQUEyQixFQUMzQixFQUFVLEVBQ1YsS0FBMEI7UUFFMUIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFF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QUFJLEVBQUUscUJBQXFCLEVBQUU7WUFDMUMsZ0JBQWdCLEVBQUUsaUJBQWlCLElBQUksQ0FBQywwQkFBMEIsK0NBQStDO1lBQ2pILGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0I7WUFDeEUsaUJBQWlCLEVBQUUsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsaUJBQWlCLG1DQUFJLENBQUM7WUFDaEQsU0FBUyxFQUFFLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVMsbUNBQUksRUFBRTtZQUNqQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTTtTQUNyRCxDQUFDLENBQUE7UUFDRixLQUFLLENBQUMsY0FBYyxDQUFDLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE1BQU0sbUNBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2xELEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsTUFBTSxtQ0FBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDakQsQ0FBQztDQUNGO0FBaFBELHdDQWdQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiXG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIlxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlQWxhcm1zUHJvcHMge1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzXG4gICAqL1xuICBhY3Rpb246IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gIGluc3RhbmNlSWRlbnRpZmllcjogc3RyaW5nXG4gIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZVxuICBhbGxvY2F0ZWRTdG9yYWdlOiBjZGsuU2l6ZVxufVxuXG4vLyBCYXNlZCBvbiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvYnVyc3RhYmxlLWNyZWRpdHMtYmFzZWxpbmUtY29uY2VwdHMuaHRtbCNlYXJuaW5nLUNQVS1jcmVkaXRzXG5jb25zdCBjcHVDcmVkaXRCYWxhbmNlQnlJbnN0YW5jZVR5cGU6IHtcbiAgW2luc3RhbmNlVHlwZTogc3RyaW5nXTogbnVtYmVyXG59ID0ge1xuICBcInQyLm5hbm9cIjogNzIsXG4gIFwidDIubWljcm9cIjogMTQ0LFxuICBcInQyLnNtYWxsXCI6IDI4OCxcbiAgXCJ0Mi5tZWRpdW1cIjogNTc2LFxuICBcInQyLmxhcmdlXCI6IDg2NCxcbiAgXCJ0Mi54bGFyZ2VcIjogMTI5NixcbiAgXCJ0Mi4yeGxhcmdlXCI6IDE5NTguNCxcbiAgXCJ0My5uYW5vXCI6IDE0NCxcbiAgXCJ0My5taWNyb1wiOiAyODgsXG4gIFwidDMuc21hbGxcIjogNTc2LFxuICBcInQzLm1lZGl1bVwiOiA1NzYsXG4gIFwidDMubGFyZ2VcIjogODY0LFxuICBcInQzLnhsYXJnZVwiOiAyMzA0LFxuICBcInQzLjJ4bGFyZ2VcIjogNDYwOCxcbiAgXCJ0M2EubmFub1wiOiAxNDQsXG4gIFwidDNhLm1pY3JvXCI6IDI4OCxcbiAgXCJ0M2Euc21hbGxcIjogNTc2LFxuICBcInQzYS5tZWRpdW1cIjogNTc2LFxuICBcInQzYS5sYXJnZVwiOiA4NjQsXG4gIFwidDNhLnhsYXJnZVwiOiAyMzA0LFxuICBcInQzYS4yeGxhcmdlXCI6IDQ2MDgsXG4gIFwidDRnLm5hbm9cIjogMTQ0LFxuICBcInQ0Zy5taWNyb1wiOiAyODgsXG4gIFwidDRnLnNtYWxsXCI6IDU3NixcbiAgXCJ0NGcubWVkaXVtXCI6IDU3NixcbiAgXCJ0NGcubGFyZ2VcIjogODY0LFxuICBcInQ0Zy54bGFyZ2VcIjogMjMwNCxcbiAgXCJ0NGcuMnhsYXJnZVwiOiA0NjA4LFxufVxuXG5leHBvcnQgY2xhc3MgRGF0YWJhc2VBbGFybXMgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyOiBzdHJpbmdcbiAgcHJpdmF0ZSByZWFkb25seSBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGVcbiAgcHJpdmF0ZSByZWFkb25seSBhbGxvY2F0ZWRTdG9yYWdlOiBjZGsuU2l6ZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBEYXRhYmFzZUFsYXJtc1Byb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICB0aGlzLmFjdGlvbiA9IHByb3BzLmFjdGlvblxuICAgIHRoaXMuZGF0YWJhc2VJbnN0YW5jZUlkZW50aWZpZXIgPSBwcm9wcy5pbnN0YW5jZUlkZW50aWZpZXJcbiAgICB0aGlzLmluc3RhbmNlVHlwZSA9IHByb3BzLmluc3RhbmNlVHlwZVxuICAgIHRoaXMuYWxsb2NhdGVkU3RvcmFnZSA9IHByb3BzLmFsbG9jYXRlZFN0b3JhZ2VcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIGEgQ2xvdWRXYXRjaCBBbGFybSB0aGF0IHRyaWdnZXJzIGlmIHRoZSBDUFUgY3JlZGl0IGJhbGFuY2UgZm9yXG4gICAqIGEgYnVyc3RhYmxlIGluc3RhbmNlIGJyZWFjaCBhIGNlcnRhaW4gdGhyZXNob2xkLlxuICAgKlxuICAgKiBOT1RFOiBUaGlzIGFsYXJtIGlzIG9ubHkgYXBwbGljYWJsZSBmb3IgYnVyc3RhYmxlIGluc3RhbmNlcywgYW5kIGEgYmFsYW5jZSBvZiAwIGNyZWRpdHMgd2lsbCBvbmx5IGhhdmUgcGVyZm9ybWFuY2VcbiAgICogaW1wbGljYXRpb25zIGZvciBUMiBpbnN0YW5jZXMuIFQzIGFuZCBUNGcgaW5zdGFuY2VzIHdpbGwgaW5zdGVhZCBjb3N0IG1vcmUgZm9yIHByb2xvbmdlZCBoaWdoIENQVSB1dGlsaXphdGlvbiBhZnRlclxuICAgKiB0aGUgYmFsYW5jZSBpcyBkZXBsZXRlZC5cbiAgICovXG4gIGFkZENwdUNyZWRpdHNBbGFybShcbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBhbiBhbGFybS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IENvbmZpZ3VyZWQgd2l0aCBzYW5lIGRlZmF1bHRzLlxuICAgICAqL1xuICAgIHByb3BzPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgICAqL1xuICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgIC8qKlxuICAgICAgICogVGhlIENsb3VkV2F0Y2ggQWxhcm0gd2lsbCBjaGFuZ2UgaXRzIHN0YXRlIHRvIEFMQVJNIGlmIHRoZSBudW1iZXIgb2YgQ1BVIGNyZWRpdHMgZHJvcHMgYmVsb3cgdGhpcyB0aHJlc2hvbGQuXG4gICAgICAgKlxuICAgICAgICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9idXJzdGFibGUtY3JlZGl0cy1iYXNlbGluZS1jb25jZXB0cy5odG1sI2Vhcm5pbmctQ1BVLWNyZWRpdHMgZm9yIGFuIG92ZXJ2aWV3IG9mIG1heGltdW0gQ1BVIGNyZWRpdHMgZm9yIHZhcmlvdXMgaW5zdGFuY2UgdHlwZXMuXG4gICAgICAgKlxuICAgICAgICogQGRlZmF1bHQgMTAlIG9mIHRoZSBtYXhpbXVtIGVhcm5lZCBDUFUgY3JlZGl0cyBmb3IgdGhlIGluc3RhbmNlIHR5cGUuXG4gICAgICAgKi9cbiAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgIH0sXG4gICk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICFbXCJ0Mi5cIiwgXCJ0My5cIiwgXCJ0NGcuXCJdLnNvbWUoKHMpID0+XG4gICAgICAgIHRoaXMuaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCkuc3RhcnRzV2l0aChzKSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJDUFUgY3JlZGl0cyBhcmUgb25seSByZWxldmFudCBmb3IgYnVyc3RhYmxlIGluc3RhbmNlIHR5cGVzLlwiLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGRlZmF1bHRUaHJlc2hvbGQgPVxuICAgICAgY3B1Q3JlZGl0QmFsYW5jZUJ5SW5zdGFuY2VUeXBlW3RoaXMuaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCldICogMC4xXG4gICAgY29uc3QgdGhyZXNob2xkID0gcHJvcHM/LnRocmVzaG9sZCA/PyBkZWZhdWx0VGhyZXNob2xkXG4gICAgaWYgKCF0aHJlc2hvbGQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE5vIHRocmVzaG9sZCBzdXBwbGllZCwgYW5kIHVuYWJsZSB0byBkZXRlcm1pbmUgYSBkZWZhdWx0IHZhbHVlIGZvciBpbnN0YW5jZSB0eXBlICcke3RoaXMuaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCl9J2AsXG4gICAgICApXG4gICAgfVxuICAgIG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIkNQVUNyZWRpdEJhbGFuY2VcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvUkRTXCIsXG4gICAgICBzdGF0aXN0aWM6IFwiTWluaW11bVwiLFxuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgREJJbnN0YW5jZUlkZW50aWZpZXI6IHRoaXMuZGF0YWJhc2VJbnN0YW5jZUlkZW50aWZpZXIsXG4gICAgICB9LFxuICAgIH0pXG4gICAgICAuY3JlYXRlQWxhcm0odGhpcywgXCJDcmVkaXRzQWxhcm1cIiwge1xuICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBgTGVzcyB0aGFuICR7dGhyZXNob2xkfSBDUFUgY3JlZGl0cyByZW1haW5pbmcgZm9yIFJEUyBkYXRhYmFzZSAnJHtcbiAgICAgICAgICB0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyXG4gICAgICAgIH0nLiAke1xuICAgICAgICAgIHRoaXMuaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCkuc3RhcnRzV2l0aChcInQyLlwiKVxuICAgICAgICAgICAgPyBcIklmIHRoaXMgcmVhY2hlcyAwLCB0aGUgaW5zdGFuY2Ugd2lsbCBiZSBsaW1pdGVkIHRvIGEgYmFzZWxpbmUgQ1BVIHV0aWxpemF0aW9uLlwiXG4gICAgICAgICAgICA6IFwiSWYgdGhlIGJhbGFuY2UgaXMgZGVwbGV0ZWQsIEFXUyBhZGRzIGFkZGl0aW9uYWwgY2hhcmdlcy5cIlxuICAgICAgICB9LmAsXG4gICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuTEVTU19USEFOX1RIUkVTSE9MRCxcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICAgIHRocmVzaG9sZDogdGhyZXNob2xkLFxuICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuSUdOT1JFLFxuICAgICAgfSlcbiAgICAgIC5hZGRBbGFybUFjdGlvbih0aGlzLmFjdGlvbilcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIHR3byBDbG91ZFdhdGNoIEFsYXJtcyBmb3IgbW9uaXRvcmluZyBkaXNrIHN0b3JhZ2Ugc3BhY2U6XG4gICAqIDEpIG9uZSB0aGF0IHRyaWdnZXJzIGlmIHRoZSBhdmFpbGFibGUgZGlzayBzdG9yYWdlIHNwYWNlIGlzIGxvdy5cbiAgICogMikgb25lIHRoYXQgdHJpZ2dlcnMgaWYgdGhlIGF2YWlsYWJsZSBkaXNrIHN0b3JhZ2Ugc3BhY2UgaXMgY3JpdGNhbGx5IGxvdy5cbiAgICpcbiAgICogWW91IG1heSB3YW50IHRvIHVzZSBkaWZmZXJlbnQgYWxhcm0gYWN0aW9ucyBmb3IgdGhlIHR3byBhbGFybXMsIGUuZy4sIG9uZSBjYW4gYmVcbiAgICogY2F0ZWdvcml6ZWQgYXMgYSBcIndhcm5pbmdcIiwgd2hpbGUgdGhlIG90aGVyIG9uZSBjYW4gYmUgY29uc2lkZXJlZCBhbiBcImFsYXJtXCIuXG4gICAqL1xuICBhZGRTdG9yYWdlU3BhY2VBbGFybXMocHJvcHM/OiB7XG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgYW4gYWxhcm0uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBDb25maWd1cmVkIHdpdGggc2FuZSBkZWZhdWx0cy5cbiAgICAgKi9cbiAgICBsb3dTdG9yYWdlU3BhY2VBbGFybT86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVkPzogYm9vbGVhblxuICAgICAgLyoqXG4gICAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgICAqL1xuICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgMjUlIG9mIHRoZSBhbGxvY2F0ZWQgc3RvcmFnZS5cbiAgICAgICAqL1xuICAgICAgdGhyZXNob2xkPzogY2RrLlNpemVcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgYW4gYWxhcm0uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBDb25maWd1cmVkIHdpdGggc2FuZSBkZWZhdWx0cy5cbiAgICAgKi9cbiAgICBjcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm0/OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgIC8qKlxuICAgICAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDUlIG9mIHRoZSBhbGxvY2F0ZWQgc3RvcmFnZS5cbiAgICAgICAqL1xuICAgICAgdGhyZXNob2xkPzogY2RrLlNpemVcbiAgICB9XG4gIH0pOiB2b2lkIHtcbiAgICBjb25zdCBsb3dTdG9yYWdlU3BhY2VBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIkZyZWVTdG9yYWdlU3BhY2VcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvUkRTXCIsXG4gICAgICBzdGF0aXN0aWM6IFwiTWluaW11bVwiLFxuICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgREJJbnN0YW5jZUlkZW50aWZpZXI6IHRoaXMuZGF0YWJhc2VJbnN0YW5jZUlkZW50aWZpZXIsXG4gICAgICB9LFxuICAgIH0pLmNyZWF0ZUFsYXJtKHRoaXMsIFwiTG93U3RvcmFnZVNwYWNlQWxhcm1cIiwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYExvdyBzdG9yYWdlIHNwYWNlIGF2YWlsYWJsZSBvbiBSRFMgZGF0YWJhc2UgJyR7dGhpcy5kYXRhYmFzZUluc3RhbmNlSWRlbnRpZmllcn0nLmAsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHRocmVzaG9sZDpcbiAgICAgICAgcHJvcHM/Lmxvd1N0b3JhZ2VTcGFjZUFsYXJtPy50aHJlc2hvbGQ/LnRvQnl0ZXMoKSA/P1xuICAgICAgICB0aGlzLmFsbG9jYXRlZFN0b3JhZ2UudG9CeXRlcygpICogMC4yNSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgfSlcbiAgICBpZiAocHJvcHM/Lmxvd1N0b3JhZ2VTcGFjZUFsYXJtPy5lbmFibGVkID8/IHRydWUpIHtcbiAgICAgIGxvd1N0b3JhZ2VTcGFjZUFsYXJtLmFkZEFsYXJtQWN0aW9uKFxuICAgICAgICBwcm9wcz8ubG93U3RvcmFnZVNwYWNlQWxhcm0/LmFjdGlvbiB8fCB0aGlzLmFjdGlvbixcbiAgICAgIClcbiAgICAgIGxvd1N0b3JhZ2VTcGFjZUFsYXJtLmFkZE9rQWN0aW9uKFxuICAgICAgICBwcm9wcz8ubG93U3RvcmFnZVNwYWNlQWxhcm0/LmFjdGlvbiB8fCB0aGlzLmFjdGlvbixcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBjcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJGcmVlU3RvcmFnZVNwYWNlXCIsXG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL1JEU1wiLFxuICAgICAgc3RhdGlzdGljOiBcIk1pbmltdW1cIixcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIERCSW5zdGFuY2VJZGVudGlmaWVyOiB0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyLFxuICAgICAgfSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybVwiLCB7XG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgQ3JpdGljYWxseSBsb3cgc3RvcmFnZSBzcGFjZSBhdmFpbGFibGUgb24gUkRTIGRhdGFiYXNlICcke3RoaXMuZGF0YWJhc2VJbnN0YW5jZUlkZW50aWZpZXJ9Jy5gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICB0aHJlc2hvbGQ6XG4gICAgICAgIHByb3BzPy5jcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm0/LnRocmVzaG9sZD8udG9CeXRlcygpID8/XG4gICAgICAgIHRoaXMuYWxsb2NhdGVkU3RvcmFnZS50b0J5dGVzKCkgKiAwLjA1LFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICB9KVxuICAgIGlmIChwcm9wcz8uY3JpdGljYWxseUxvd1N0b3JhZ2VTcGFjZUFsYXJtPy5lbmFibGVkID8/IHRydWUpIHtcbiAgICAgIGNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybS5hZGRBbGFybUFjdGlvbihcbiAgICAgICAgcHJvcHM/LmNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybT8uYWN0aW9uIHx8IHRoaXMuYWN0aW9uLFxuICAgICAgKVxuICAgICAgY3JpdGljYWxseUxvd1N0b3JhZ2VTcGFjZUFsYXJtLmFkZE9rQWN0aW9uKFxuICAgICAgICBwcm9wcz8uY3JpdGljYWxseUxvd1N0b3JhZ2VTcGFjZUFsYXJtPy5hY3Rpb24gfHwgdGhpcy5hY3Rpb24sXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgYSBDbG91ZFdhdGNoIEFsYXJtIHRoYXQgdHJpZ2dlcnMgaWYgdGhlIGF2ZXJhZ2UgQ1BVIHV0aWxpemF0aW9uIGZvclxuICAgKiB0aGUgUkRTIGluc3RhbmNlIGV4Y2VlZHMgYSBnaXZlbiB0aHJlc2hvbGQuXG4gICAqL1xuICBhZGRDcHVVdGlsaXphdGlvbkFsYXJtKFxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGFsYXJtLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgQ29uZmlndXJlZCB3aXRoIHNhbmUgZGVmYXVsdHMuXG4gICAgICovXG4gICAgcHJvcHM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIEFuIGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgICAgICovXG4gICAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBUaGUgdGhyZXNob2xkIGRlZmluZWQgYXMgYSBwZXJjZW50YWdlIHRoYXQgZGV0ZXJtaW5lcyBpZiBDUFUgdXRpbGl6YXRpb24gc2hvdWxkIHRyaWdnZXIgYW4gYWxhcm0gb3Igbm90LlxuICAgICAgICogQGRlZmF1bHQgODBcbiAgICAgICAqL1xuICAgICAgdGhyZXNob2xkPzogbnVtYmVyXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDVcbiAgICAgICAqL1xuICAgICAgZXZhbHVhdGlvblBlcmlvZHM/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgMiBtaW51dGVzXG4gICAgICAgKi9cbiAgICAgIHBlcmlvZD86IGNkay5EdXJhdGlvblxuICAgIH0sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGFsYXJtID0gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6IFwiQ1BVVXRpbGl6YXRpb25cIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvUkRTXCIsXG4gICAgICBzdGF0aXN0aWM6IFwiQXZlcmFnZVwiLFxuICAgICAgcGVyaW9kOiBwcm9wcz8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5taW51dGVzKDIpLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBEQkluc3RhbmNlSWRlbnRpZmllcjogdGhpcy5kYXRhYmFzZUluc3RhbmNlSWRlbnRpZmllcixcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQWxhcm0odGhpcywgXCJDcHVVdGlsaXphdGlvbkFsYXJtXCIsIHtcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBSRFMgZGF0YWJhc2UgJyR7dGhpcy5kYXRhYmFzZUluc3RhbmNlSWRlbnRpZmllcn0nIGhhcyBhIGhpZ2hlciB0aGFuIGV4cGVjdGVkIENQVSB1dGlsaXphdGlvbi5gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IHByb3BzPy5ldmFsdWF0aW9uUGVyaW9kcyA/PyA1LFxuICAgICAgdGhyZXNob2xkOiBwcm9wcz8udGhyZXNob2xkID8/IDgwLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICB9KVxuICAgIGFsYXJtLmFkZEFsYXJtQWN0aW9uKHByb3BzPy5hY3Rpb24gPz8gdGhpcy5hY3Rpb24pXG4gICAgYWxhcm0uYWRkT2tBY3Rpb24ocHJvcHM/LmFjdGlvbiA/PyB0aGlzLmFjdGlvbilcbiAgfVxufVxuIl19
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UtYWxhcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FsYXJtcy9kYXRhYmFzZS1hbGFybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXdDO0FBQ3hDLG1DQUFrQztBQUNsQyx5REFBd0Q7QUFheEQsNEhBQTRIO0FBQzVILE1BQU0sOEJBQThCLEdBRWhDO0lBQ0YsU0FBUyxFQUFFLEVBQUU7SUFDYixVQUFVLEVBQUUsR0FBRztJQUNmLFVBQVUsRUFBRSxHQUFHO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsVUFBVSxFQUFFLEdBQUc7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixZQUFZLEVBQUUsTUFBTTtJQUNwQixTQUFTLEVBQUUsR0FBRztJQUNkLFVBQVUsRUFBRSxHQUFHO0lBQ2YsVUFBVSxFQUFFLEdBQUc7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixVQUFVLEVBQUUsR0FBRztJQUNmLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFVBQVUsRUFBRSxHQUFHO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsWUFBWSxFQUFFLEdBQUc7SUFDakIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsWUFBWSxFQUFFLElBQUk7SUFDbEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsVUFBVSxFQUFFLEdBQUc7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsR0FBRztJQUNoQixZQUFZLEVBQUUsR0FBRztJQUNqQixXQUFXLEVBQUUsR0FBRztJQUNoQixZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsSUFBSTtDQUNwQixDQUFBO0FBRUQsTUFBYSxjQUFlLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFNdEQsWUFDRSxLQUEyQixFQUMzQixFQUFVLEVBQ1YsS0FBMEI7UUFFMUIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFF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LDBCQUEwQjthQUN0RDtTQUNGLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFO1lBQzFDLGdCQUFnQixFQUFFLGlCQUFpQixJQUFJLENBQUMsMEJBQTBCLCtDQUErQztZQUNqSCxrQkFBa0IsRUFBRSxVQUFVLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ3hFLGlCQUFpQixFQUFFLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGlCQUFpQixtQ0FBSSxDQUFDO1lBQ2hELFNBQVMsRUFBRSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxTQUFTLG1DQUFJLEVBQUU7WUFDakMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU07U0FDckQsQ0FBQyxDQUFBO1FBQ0YsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxNQUFNLG1DQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNsRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE1BQU0sbUNBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2pELENBQUM7Q0FDRjtBQWhQRCx3Q0FnUEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIlxuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCJcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUFsYXJtc1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlc1xuICAgKi9cbiAgYWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICBpbnN0YW5jZUlkZW50aWZpZXI6IHN0cmluZ1xuICBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGVcbiAgYWxsb2NhdGVkU3RvcmFnZTogY2RrLlNpemVcbn1cblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2J1cnN0YWJsZS1jcmVkaXRzLWJhc2VsaW5lLWNvbmNlcHRzLmh0bWwjZWFybmluZy1DUFUtY3JlZGl0c1xuY29uc3QgY3B1Q3JlZGl0QmFsYW5jZUJ5SW5zdGFuY2VUeXBlOiB7XG4gIFtpbnN0YW5jZVR5cGU6IHN0cmluZ106IG51bWJlclxufSA9IHtcbiAgXCJ0Mi5uYW5vXCI6IDcyLFxuICBcInQyLm1pY3JvXCI6IDE0NCxcbiAgXCJ0Mi5zbWFsbFwiOiAyODgsXG4gIFwidDIubWVkaXVtXCI6IDU3NixcbiAgXCJ0Mi5sYXJnZVwiOiA4NjQsXG4gIFwidDIueGxhcmdlXCI6IDEyOTYsXG4gIFwidDIuMnhsYXJnZVwiOiAxOTU4LjQsXG4gIFwidDMubmFub1wiOiAxNDQsXG4gIFwidDMubWljcm9cIjogMjg4LFxuICBcInQzLnNtYWxsXCI6IDU3NixcbiAgXCJ0My5tZWRpdW1cIjogNTc2LFxuICBcInQzLmxhcmdlXCI6IDg2NCxcbiAgXCJ0My54bGFyZ2VcIjogMjMwNCxcbiAgXCJ0My4yeGxhcmdlXCI6IDQ2MDgsXG4gIFwidDNhLm5hbm9cIjogMTQ0LFxuICBcInQzYS5taWNyb1wiOiAyODgsXG4gIFwidDNhLnNtYWxsXCI6IDU3NixcbiAgXCJ0M2EubWVkaXVtXCI6IDU3NixcbiAgXCJ0M2EubGFyZ2VcIjogODY0LFxuICBcInQzYS54bGFyZ2VcIjogMjMwNCxcbiAgXCJ0M2EuMnhsYXJnZVwiOiA0NjA4LFxuICBcInQ0Zy5uYW5vXCI6IDE0NCxcbiAgXCJ0NGcubWljcm9cIjogMjg4LFxuICBcInQ0Zy5zbWFsbFwiOiA1NzYsXG4gIFwidDRnLm1lZGl1bVwiOiA1NzYsXG4gIFwidDRnLmxhcmdlXCI6IDg2NCxcbiAgXCJ0NGcueGxhcmdlXCI6IDIzMDQsXG4gIFwidDRnLjJ4bGFyZ2VcIjogNDYwOCxcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFiYXNlQWxhcm1zIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhYmFzZUluc3RhbmNlSWRlbnRpZmllcjogc3RyaW5nXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlXG4gIHByaXZhdGUgcmVhZG9ubHkgYWxsb2NhdGVkU3RvcmFnZTogY2RrLlNpemVcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogRGF0YWJhc2VBbGFybXNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgdGhpcy5hY3Rpb24gPSBwcm9wcy5hY3Rpb25cbiAgICB0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyID0gcHJvcHMuaW5zdGFuY2VJZGVudGlmaWVyXG4gICAgdGhpcy5pbnN0YW5jZVR5cGUgPSBwcm9wcy5pbnN0YW5jZVR5cGVcbiAgICB0aGlzLmFsbG9jYXRlZFN0b3JhZ2UgPSBwcm9wcy5hbGxvY2F0ZWRTdG9yYWdlXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB1cCBhIENsb3VkV2F0Y2ggQWxhcm0gdGhhdCB0cmlnZ2VycyBpZiB0aGUgQ1BVIGNyZWRpdCBiYWxhbmNlIGZvclxuICAgKiBhIGJ1cnN0YWJsZSBpbnN0YW5jZSBicmVhY2ggYSBjZXJ0YWluIHRocmVzaG9sZC5cbiAgICpcbiAgICogTk9URTogVGhpcyBhbGFybSBpcyBvbmx5IGFwcGxpY2FibGUgZm9yIGJ1cnN0YWJsZSBpbnN0YW5jZXMsIGFuZCBhIGJhbGFuY2Ugb2YgMCBjcmVkaXRzIHdpbGwgb25seSBoYXZlIHBlcmZvcm1hbmNlXG4gICAqIGltcGxpY2F0aW9ucyBmb3IgVDIgaW5zdGFuY2VzLiBUMyBhbmQgVDRnIGluc3RhbmNlcyB3aWxsIGluc3RlYWQgY29zdCBtb3JlIGZvciBwcm9sb25nZWQgaGlnaCBDUFUgdXRpbGl6YXRpb24gYWZ0ZXJcbiAgICogdGhlIGJhbGFuY2UgaXMgZGVwbGV0ZWQuXG4gICAqL1xuICBhZGRDcHVDcmVkaXRzQWxhcm0oXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgYW4gYWxhcm0uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBDb25maWd1cmVkIHdpdGggc2FuZSBkZWZhdWx0cy5cbiAgICAgKi9cbiAgICBwcm9wcz86IHtcbiAgICAgIC8qKlxuICAgICAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAvKipcbiAgICAgICAqIFRoZSBDbG91ZFdhdGNoIEFsYXJtIHdpbGwgY2hhbmdlIGl0cyBzdGF0ZSB0byBBTEFSTSBpZiB0aGUgbnVtYmVyIG9mIENQVSBjcmVkaXRzIGRyb3BzIGJlbG93IHRoaXMgdGhyZXNob2xkLlxuICAgICAgICpcbiAgICAgICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvYnVyc3RhYmxlLWNyZWRpdHMtYmFzZWxpbmUtY29uY2VwdHMuaHRtbCNlYXJuaW5nLUNQVS1jcmVkaXRzIGZvciBhbiBvdmVydmlldyBvZiBtYXhpbXVtIENQVSBjcmVkaXRzIGZvciB2YXJpb3VzIGluc3RhbmNlIHR5cGVzLlxuICAgICAgICpcbiAgICAgICAqIEBkZWZhdWx0IDEwJSBvZiB0aGUgbWF4aW11bSBlYXJuZWQgQ1BVIGNyZWRpdHMgZm9yIHRoZSBpbnN0YW5jZSB0eXBlLlxuICAgICAgICovXG4gICAgICB0aHJlc2hvbGQ/OiBudW1iZXJcbiAgICB9LFxuICApOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhW1widDIuXCIsIFwidDMuXCIsIFwidDRnLlwiXS5zb21lKChzKSA9PlxuICAgICAgICB0aGlzLmluc3RhbmNlVHlwZS50b1N0cmluZygpLnN0YXJ0c1dpdGgocyksXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ1BVIGNyZWRpdHMgYXJlIG9ubHkgcmVsZXZhbnQgZm9yIGJ1cnN0YWJsZSBpbnN0YW5jZSB0eXBlcy5cIixcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0VGhyZXNob2xkID1cbiAgICAgIGNwdUNyZWRpdEJhbGFuY2VCeUluc3RhbmNlVHlwZVt0aGlzLmluc3RhbmNlVHlwZS50b1N0cmluZygpXSAqIDAuMVxuICAgIGNvbnN0IHRocmVzaG9sZCA9IHByb3BzPy50aHJlc2hvbGQgPz8gZGVmYXVsdFRocmVzaG9sZFxuICAgIGlmICghdGhyZXNob2xkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBObyB0aHJlc2hvbGQgc3VwcGxpZWQsIGFuZCB1bmFibGUgdG8gZGV0ZXJtaW5lIGEgZGVmYXVsdCB2YWx1ZSBmb3IgaW5zdGFuY2UgdHlwZSAnJHt0aGlzLmluc3RhbmNlVHlwZS50b1N0cmluZygpfSdgLFxuICAgICAgKVxuICAgIH1cbiAgICBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJDUFVDcmVkaXRCYWxhbmNlXCIsXG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL1JEU1wiLFxuICAgICAgc3RhdGlzdGljOiBcIk1pbmltdW1cIixcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIERCSW5zdGFuY2VJZGVudGlmaWVyOiB0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyLFxuICAgICAgfSxcbiAgICB9KVxuICAgICAgLmNyZWF0ZUFsYXJtKHRoaXMsIFwiQ3JlZGl0c0FsYXJtXCIsIHtcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYExlc3MgdGhhbiAke3RocmVzaG9sZH0gQ1BVIGNyZWRpdHMgcmVtYWluaW5nIGZvciBSRFMgZGF0YWJhc2UgJyR7XG4gICAgICAgICAgdGhpcy5kYXRhYmFzZUluc3RhbmNlSWRlbnRpZmllclxuICAgICAgICB9Jy4gJHtcbiAgICAgICAgICB0aGlzLmluc3RhbmNlVHlwZS50b1N0cmluZygpLnN0YXJ0c1dpdGgoXCJ0Mi5cIilcbiAgICAgICAgICAgID8gXCJJZiB0aGlzIHJlYWNoZXMgMCwgdGhlIGluc3RhbmNlIHdpbGwgYmUgbGltaXRlZCB0byBhIGJhc2VsaW5lIENQVSB1dGlsaXphdGlvbi5cIlxuICAgICAgICAgICAgOiBcIklmIHRoZSBiYWxhbmNlIGlzIGRlcGxldGVkLCBBV1MgYWRkcyBhZGRpdGlvbmFsIGNoYXJnZXMuXCJcbiAgICAgICAgfS5gLFxuICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9USFJFU0hPTEQsXG4gICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgICB0aHJlc2hvbGQ6IHRocmVzaG9sZCxcbiAgICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICAgIH0pXG4gICAgICAuYWRkQWxhcm1BY3Rpb24odGhpcy5hY3Rpb24pXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB1cCB0d28gQ2xvdWRXYXRjaCBBbGFybXMgZm9yIG1vbml0b3JpbmcgZGlzayBzdG9yYWdlIHNwYWNlOlxuICAgKiAxKSBvbmUgdGhhdCB0cmlnZ2VycyBpZiB0aGUgYXZhaWxhYmxlIGRpc2sgc3RvcmFnZSBzcGFjZSBpcyBsb3cuXG4gICAqIDIpIG9uZSB0aGF0IHRyaWdnZXJzIGlmIHRoZSBhdmFpbGFibGUgZGlzayBzdG9yYWdlIHNwYWNlIGlzIGNyaXRjYWxseSBsb3cuXG4gICAqXG4gICAqIFlvdSBtYXkgd2FudCB0byB1c2UgZGlmZmVyZW50IGFsYXJtIGFjdGlvbnMgZm9yIHRoZSB0d28gYWxhcm1zLCBlLmcuLCBvbmUgY2FuIGJlXG4gICAqIGNhdGVnb3JpemVkIGFzIGEgXCJ3YXJuaW5nXCIsIHdoaWxlIHRoZSBvdGhlciBvbmUgY2FuIGJlIGNvbnNpZGVyZWQgYW4gXCJhbGFybVwiLlxuICAgKi9cbiAgYWRkU3RvcmFnZVNwYWNlQWxhcm1zKHByb3BzPzoge1xuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGFsYXJtLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgQ29uZmlndXJlZCB3aXRoIHNhbmUgZGVmYXVsdHMuXG4gICAgICovXG4gICAgbG93U3RvcmFnZVNwYWNlQWxhcm0/OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgIC8qKlxuICAgICAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDI1JSBvZiB0aGUgYWxsb2NhdGVkIHN0b3JhZ2UuXG4gICAgICAgKi9cbiAgICAgIHRocmVzaG9sZD86IGNkay5TaXplXG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGFsYXJtLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgQ29uZmlndXJlZCB3aXRoIHNhbmUgZGVmYXVsdHMuXG4gICAgICovXG4gICAgY3JpdGljYWxseUxvd1N0b3JhZ2VTcGFjZUFsYXJtPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICAgKi9cbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgICAvKipcbiAgICAgICAqIEFuIGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgICAgICovXG4gICAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCA1JSBvZiB0aGUgYWxsb2NhdGVkIHN0b3JhZ2UuXG4gICAgICAgKi9cbiAgICAgIHRocmVzaG9sZD86IGNkay5TaXplXG4gICAgfVxuICB9KTogdm9pZCB7XG4gICAgY29uc3QgbG93U3RvcmFnZVNwYWNlQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJGcmVlU3RvcmFnZVNwYWNlXCIsXG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL1JEU1wiLFxuICAgICAgc3RhdGlzdGljOiBcIk1pbmltdW1cIixcbiAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIERCSW5zdGFuY2VJZGVudGlmaWVyOiB0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyLFxuICAgICAgfSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkxvd1N0b3JhZ2VTcGFjZUFsYXJtXCIsIHtcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBMb3cgc3RvcmFnZSBzcGFjZSBhdmFpbGFibGUgb24gUkRTIGRhdGFiYXNlICcke3RoaXMuZGF0YWJhc2VJbnN0YW5jZUlkZW50aWZpZXJ9Jy5gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICB0aHJlc2hvbGQ6XG4gICAgICAgIHByb3BzPy5sb3dTdG9yYWdlU3BhY2VBbGFybT8udGhyZXNob2xkPy50b0J5dGVzKCkgPz9cbiAgICAgICAgdGhpcy5hbGxvY2F0ZWRTdG9yYWdlLnRvQnl0ZXMoKSAqIDAuMjUsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuSUdOT1JFLFxuICAgIH0pXG4gICAgaWYgKHByb3BzPy5sb3dTdG9yYWdlU3BhY2VBbGFybT8uZW5hYmxlZCA/PyB0cnVlKSB7XG4gICAgICBsb3dTdG9yYWdlU3BhY2VBbGFybS5hZGRBbGFybUFjdGlvbihcbiAgICAgICAgcHJvcHM/Lmxvd1N0b3JhZ2VTcGFjZUFsYXJtPy5hY3Rpb24gfHwgdGhpcy5hY3Rpb24sXG4gICAgICApXG4gICAgICBsb3dTdG9yYWdlU3BhY2VBbGFybS5hZGRPa0FjdGlvbihcbiAgICAgICAgcHJvcHM/Lmxvd1N0b3JhZ2VTcGFjZUFsYXJtPy5hY3Rpb24gfHwgdGhpcy5hY3Rpb24sXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgY3JpdGljYWxseUxvd1N0b3JhZ2VTcGFjZUFsYXJtID0gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6IFwiRnJlZVN0b3JhZ2VTcGFjZVwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9SRFNcIixcbiAgICAgIHN0YXRpc3RpYzogXCJNaW5pbXVtXCIsXG4gICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBEQkluc3RhbmNlSWRlbnRpZmllcjogdGhpcy5kYXRhYmFzZUluc3RhbmNlSWRlbnRpZmllcixcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQWxhcm0odGhpcywgXCJDcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm1cIiwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYENyaXRpY2FsbHkgbG93IHN0b3JhZ2Ugc3BhY2UgYXZhaWxhYmxlIG9uIFJEUyBkYXRhYmFzZSAnJHt0aGlzLmRhdGFiYXNlSW5zdGFuY2VJZGVudGlmaWVyfScuYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuTEVTU19USEFOX1RIUkVTSE9MRCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgdGhyZXNob2xkOlxuICAgICAgICBwcm9wcz8uY3JpdGljYWxseUxvd1N0b3JhZ2VTcGFjZUFsYXJtPy50aHJlc2hvbGQ/LnRvQnl0ZXMoKSA/P1xuICAgICAgICB0aGlzLmFsbG9jYXRlZFN0b3JhZ2UudG9CeXRlcygpICogMC4wNSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgfSlcbiAgICBpZiAocHJvcHM/LmNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybT8uZW5hYmxlZCA/PyB0cnVlKSB7XG4gICAgICBjcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm0uYWRkQWxhcm1BY3Rpb24oXG4gICAgICAgIHByb3BzPy5jcml0aWNhbGx5TG93U3RvcmFnZVNwYWNlQWxhcm0/LmFjdGlvbiB8fCB0aGlzLmFjdGlvbixcbiAgICAgIClcbiAgICAgIGNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybS5hZGRPa0FjdGlvbihcbiAgICAgICAgcHJvcHM/LmNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybT8uYWN0aW9uIHx8IHRoaXMuYWN0aW9uLFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIGEgQ2xvdWRXYXRjaCBBbGFybSB0aGF0IHRyaWdnZXJzIGlmIHRoZSBhdmVyYWdlIENQVSB1dGlsaXphdGlvbiBmb3JcbiAgICogdGhlIFJEUyBpbnN0YW5jZSBleGNlZWRzIGEgZ2l2ZW4gdGhyZXNob2xkLlxuICAgKi9cbiAgYWRkQ3B1VXRpbGl6YXRpb25BbGFybShcbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBhbiBhbGFybS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IENvbmZpZ3VyZWQgd2l0aCBzYW5lIGRlZmF1bHRzLlxuICAgICAqL1xuICAgIHByb3BzPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgICAqL1xuICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgIC8qKlxuICAgICAgICogVGhlIHRocmVzaG9sZCBkZWZpbmVkIGFzIGEgcGVyY2VudGFnZSB0aGF0IGRldGVybWluZXMgaWYgQ1BVIHV0aWxpemF0aW9uIHNob3VsZCB0cmlnZ2VyIGFuIGFsYXJtIG9yIG5vdC5cbiAgICAgICAqIEBkZWZhdWx0IDgwXG4gICAgICAgKi9cbiAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCA1XG4gICAgICAgKi9cbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDIgbWludXRlc1xuICAgICAgICovXG4gICAgICBwZXJpb2Q/OiBjZGsuRHVyYXRpb25cbiAgICB9LFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBhbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIkNQVVV0aWxpemF0aW9uXCIsXG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL1JEU1wiLFxuICAgICAgc3RhdGlzdGljOiBcIkF2ZXJhZ2VcIixcbiAgICAgIHBlcmlvZDogcHJvcHM/LnBlcmlvZCA/PyBjZGsuRHVyYXRpb24ubWludXRlcygyKSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgREJJbnN0YW5jZUlkZW50aWZpZXI6IHRoaXMuZGF0YWJhc2VJbnN0YW5jZUlkZW50aWZpZXIsXG4gICAgICB9LFxuICAgIH0pLmNyZWF0ZUFsYXJtKHRoaXMsIFwiQ3B1VXRpbGl6YXRpb25BbGFybVwiLCB7XG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgUkRTIGRhdGFiYXNlICcke3RoaXMuZGF0YWJhc2VJbnN0YW5jZUlkZW50aWZpZXJ9JyBoYXMgYSBoaWdoZXIgdGhhbiBleHBlY3RlZCBDUFUgdXRpbGl6YXRpb24uYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBwcm9wcz8uZXZhbHVhdGlvblBlcmlvZHMgPz8gNSxcbiAgICAgIHRocmVzaG9sZDogcHJvcHM/LnRocmVzaG9sZCA/PyA4MCxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgfSlcbiAgICBhbGFybS5hZGRBbGFybUFjdGlvbihwcm9wcz8uYWN0aW9uID8/IHRoaXMuYWN0aW9uKVxuICAgIGFsYXJtLmFkZE9rQWN0aW9uKHByb3BzPy5hY3Rpb24gPz8gdGhpcy5hY3Rpb24pXG4gIH1cbn1cbiJdfQ==
@@ -145,4 +145,4 @@ class ServiceAlarms extends constructs.Construct {
145
145
  }
146
146
  }
147
147
  exports.ServiceAlarms = ServiceAlarms;
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1hbGFybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zL3NlcnZpY2UtYWxhcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFrQztBQUNsQyx5REFBd0Q7QUFDeEQsNkNBQTRDO0FBQzVDLHlDQUF3QztBQWF4Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxhQUFjLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFJckQsWUFDRSxLQUEyQixFQUMzQixFQUFVLEVBQ1YsS0FBeUI7UUFFekIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUE7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFBO0lBQ3RDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCLENBQUMsS0FZakI7O1FBQ0MsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDdEQsbUJBQW1CLEVBQ25CO1lBQ0UsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQztZQUN2RCwyREFBMkQ7WUFDM0QsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEVBQ3ZELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVztZQUM1QixzQkFBc0I7WUFDdEIsMkJBQTJCLEVBQzNCLEdBQUcsRUFDSCx1QkFBdUIsQ0FDeEIsQ0FDRjtZQUNELFVBQVUsRUFBRSxRQUFRO1lBQ3BCLGVBQWUsRUFBRSxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMs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LENBQ2pDLE9BQUEsT0FBQSxLQUFLLENBQUMsdUJBQXVCLDRDQUFFLE1BQU0scUNBQUksSUFBSSxDQUFDLE1BQU0sQ0FDckQsQ0FBQTtTQUNGO0lBQ0gsQ0FBQztDQUNGO0FBN1NELHNDQTZTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIlxuaW1wb3J0ICogYXMgbG9ncyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIlxuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZUFsYXJtc1Byb3BzIGV4dGVuZHMgY2RrLlN0YWNrUHJvcHMge1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzXG4gICAqL1xuICBhY3Rpb246IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgRUNTIHNlcnZpY2UuXG4gICAqL1xuICBzZXJ2aWNlTmFtZTogc3RyaW5nXG59XG5cbi8qKlxuICogVmFyaW91cyBhbGFybXMgYW5kIG1vbml0b3JpbmcuXG4gKlxuICogQnkgaXRzZWxmIG5vIGFsYXJtcyBpcyBjcmVhdGVkLiBVc2UgdGhlIG1ldGhvZHMgYXZhaWxhYmxlXG4gKiB0byBhZGQgYWxhcm1zLlxuICpcbiAqIFNlZSBTbGFja0FsYXJtIGNvbnN0cnVjdCBmb3IgU05TIEFjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZpY2VBbGFybXMgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogU2VydmljZUFsYXJtc1Byb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICB0aGlzLmFjdGlvbiA9IHByb3BzLmFjdGlvblxuICAgIHRoaXMuc2VydmljZU5hbWUgPSBwcm9wcy5zZXJ2aWNlTmFtZVxuICB9XG5cbiAgLyoqXG4gICAqIEZvciBsb2dzIHN0b3JlZCBhcyBKU09OLCBtb25pdG9yIGxvZyBlbnRyaWVzIGxvZ2dlZFxuICAgKiB3aXRoIGxldmVsIEVSUk9SIG9yIGhpZ2hlciwgYXMgd2VsbCBhcyBhbnkgcmVxdWVzdHNcbiAgICogdGhhdCBjYXVzZXMgNTAwIGZvciBsb2dnaW5nIHdpdGggbGlmbGlnLWxvZ2dpbmcuXG4gICAqL1xuICBhZGRKc29uRXJyb3JBbGFybShwcm9wczoge1xuICAgIGxvZ0dyb3VwOiBsb2dzLklMb2dHcm91cFxuICAgIGFsYXJtRGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICAvKipcbiAgICAgKiBTZXQgdG8gYGZhbHNlYCB0byBzdG9wIHRoZSBhbGFybSBmcm9tIHNlbmRpbmcgT0sgZXZlbnRzLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKiAqL1xuICAgIGVuYWJsZU9rQWN0aW9uPzogYm9vbGVhblxuICAgIC8qKlxuICAgICAqIEFuIGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgICAqL1xuICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gIH0pOiB2b2lkIHtcbiAgICBjb25zdCBlcnJvck1ldHJpY0ZpbHRlciA9IHByb3BzLmxvZ0dyb3VwLmFkZE1ldHJpY0ZpbHRlcihcbiAgICAgIFwiRXJyb3JNZXRyaWNGaWx0ZXJcIixcbiAgICAgIHtcbiAgICAgICAgZmlsdGVyUGF0dGVybjogbG9ncy5GaWx0ZXJQYXR0ZXJuLmFueShcbiAgICAgICAgICBsb2dzLkZpbHRlclBhdHRlcm4uc3RyaW5nVmFsdWUoXCIkLmxldmVsXCIsIFwiPVwiLCBcIkVSUk9SXCIpLFxuICAgICAgICAgIC8vIEZBVEFMIGNvdmVycyBzb21lIGFwcGxpY2F0aW9ucyB3ZSBydW4gdGhhdCB1c2VzIGxvZzRqIG9yXG4gICAgICAgICAgLy8gb3RoZXIgbGlicmFyaWVzLiBJdCBpcyBub3QgZXhpc3RlbnQgaW4gc2xmNGouXG4gICAgICAgICAgbG9ncy5GaWx0ZXJQYXR0ZXJuLnN0cmluZ1ZhbHVlKFwiJC5sZXZlbFwiLCBcIj1cIiwgXCJGQVRBTFwiKSxcbiAgICAgICAgICBsb2dzLkZpbHRlclBhdHRlcm4uc3RyaW5nVmFsdWUoXG4gICAgICAgICAgICAvLyBGb3IgbGlmbGlnLWxvZ2dpbmcuXG4gICAgICAgICAgICBcIiQucmVxdWVzdEluZm8uc3RhdHVzLmNvZGVcIixcbiAgICAgICAgICAgIFwiPVwiLFxuICAgICAgICAgICAgXCJJTlRFUk5BTF9TRVJWRVJfRVJST1JcIixcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICBtZXRyaWNOYW1lOiBcIkVycm9yc1wiLFxuICAgICAgICBtZXRyaWNOYW1lc3BhY2U6IGBzdGFjay8ke2Nkay5TdGFjay5vZih0aGlzKS5zdGFja05hbWV9LyR7XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlTmFtZVxuICAgICAgICB9L0Vycm9yc2AsXG4gICAgICB9LFxuICAgIClcblxuICAgIGNvbnN0IGVycm9yQWxhcm0gPSBlcnJvck1ldHJpY0ZpbHRlclxuICAgICAgLm1ldHJpYygpXG4gICAgICAud2l0aCh7XG4gICAgICAgIHN0YXRpc3RpYzogXCJTdW1cIixcbiAgICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICB9KVxuICAgICAgLmNyZWF0ZUFsYXJtKHRoaXMsIFwiRXJyb3JMb2dBbGFybVwiLCB7XG4gICAgICAgIGFsYXJtRGVzY3JpcHRpb246XG4gICAgICAgICAgcHJvcHMuYWxhcm1EZXNjcmlwdGlvbiA/PyBgJHt0aGlzLnNlcnZpY2VOYW1lfSBsb2dnZWQgYW4gZXJyb3JgLFxuICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICAgIH0pXG5cbiAgICBlcnJvckFsYXJtLmFkZEFsYXJtQWN0aW9uKHByb3BzLmFjdGlvbiA/PyB0aGlzLmFjdGlvbilcbiAgICBpZiAocHJvcHMuZW5hYmxlT2tBY3Rpb24gPz8gdHJ1ZSkge1xuICAgICAgZXJyb3JBbGFybS5hZGRPa0FjdGlvbihwcm9wcy5hY3Rpb24gPz8gdGhpcy5hY3Rpb24pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhyZWUgQ2xvdWRXYXRjaCBBbGFybXMgZm9yIG1vbml0b3JpbmcgYW4gRUNTIHNlcnZpY2UgYmVoaW5kIGEgdGFyZ2V0IGdyb3VwOlxuICAgKiAxKSBvbmUgdGhhdCB0cmlnZ2VycyBpZiB0aGUgdGFyZ2V0IGlzIHJlc3BvbmRpbmcgd2l0aCB0b28gbWFueSA1eHggZXJyb3JzLlxuICAgKiAyKSBvbmUgdGhhdCB0cmlnZ2VycyBpZiB0aGUgOTUlIHBlcmNlbnRpbGUgb2YgcmVzcG9uc2UgdGltZXMgZnJvbSB0aGUgdGFyZ2V0IGlzIHRvbyBoaWdoLlxuICAgKiAzKSBvbmUgdGhhdCB0cmlnZ2VycyBpZiB0aGVyZSBhcmUgbm8gaGVhbHRoeSB0YXJnZXRzIG9yIGlmIHRoZSBsb2FkIGJhbGFuY2VyIGZhaWxzIHRvIGNvbm5lY3QgdG8gdGFyZ2V0cy5cbiAgICovXG4gIGFkZFRhcmdldEdyb3VwQWxhcm1zKHByb3BzOiB7XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgbmFtZSBvZiB0aGUgdGFyZ2V0IGdyb3VwLlxuICAgICAqL1xuICAgIHRhcmdldEdyb3VwRnVsbE5hbWU6IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIGxvYWQgYmFsYW5jZXIuXG4gICAgICovXG4gICAgbG9hZEJhbGFuY2VyRnVsbE5hbWU6IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGEgY29tcG9zaXRlIGFsYXJtLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgQ29uZmlndXJlZCB3aXRoIHNhbmUgZGVmYXVsdHMuXG4gICAgICovXG4gICAgdGFyZ2V0SGVhbHRoQWxhcm0/OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgIC8qKlxuICAgICAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDYwIHNlY29uZHNcbiAgICAgICAqL1xuICAgICAgcGVyaW9kPzogY2RrLkR1cmF0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDFcbiAgICAgICAqL1xuICAgICAgZXZhbHVhdGlvblBlcmlvZHM/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgMVxuICAgICAgICovXG4gICAgICB0aHJlc2hvbGQ/OiBudW1iZXJcbiAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGFsYXJtLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgQ29uZmlndXJlZCB3aXRoIHNhbmUgZGVmYXVsdHMuXG4gICAgICovXG4gICAgdG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0/OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgIC8qKlxuICAgICAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDYwIHNlY29uZHNcbiAgICAgICAqL1xuICAgICAgcGVyaW9kPzogY2RrLkR1cmF0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDNcbiAgICAgICAqL1xuICAgICAgZXZhbHVhdGlvblBlcmlvZHM/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgMTBcbiAgICAgICAqL1xuICAgICAgdGhyZXNob2xkPzogbnVtYmVyXG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBhbiBhbGFybS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IENvbmZpZ3VyZWQgd2l0aCBzYW5lIGRlZmF1bHRzLlxuICAgICAqL1xuICAgIHRhcmdldFJlc3BvbnNlVGltZUFsYXJtPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICAgKi9cbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgICAvKipcbiAgICAgICAqIEFuIGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgICAgICovXG4gICAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCA1IG1pbnV0ZXNcbiAgICAgICAqL1xuICAgICAgcGVyaW9kPzogY2RrLkR1cmF0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDFcbiAgICAgICAqL1xuICAgICAgZXZhbHVhdGlvblBlcmlvZHM/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgNTAwIG1pbGxpc2Vjb25kc1xuICAgICAgICovXG4gICAgICB0aHJlc2hvbGQ/OiBjZGsuRHVyYXRpb25cbiAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgfVxuICB9KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0Q29ubmVjdGlvbkVycm9yQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJUYXJnZXRDb25uZWN0aW9uRXJyb3JDb3VudFwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9BcHBsaWNhdGlvbkVMQlwiLFxuICAgICAgc3RhdGlzdGljOiBcIlN1bVwiLFxuICAgICAgcGVyaW9kOiBwcm9wcy50YXJnZXRIZWFsdGhBbGFybT8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgVGFyZ2V0R3JvdXA6IHByb3BzLnRhcmdldEdyb3VwRnVsbE5hbWUsXG4gICAgICAgIExvYWRCYWxhbmNlcjogcHJvcHMubG9hZEJhbGFuY2VyRnVsbE5hbWUsXG4gICAgICB9LFxuICAgIH0pLmNyZWF0ZUFsYXJtKHRoaXMsIFwiQ29ubmVjdGlvbkFsYXJtXCIsIHtcbiAgICAgIGFjdGlvbnNFbmFibGVkOiB0cnVlLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYExvYWQgYmFsYW5jZXIgaXMgZmFpbGluZyB0byBjb25uZWN0IHRvIHRhcmdldChzKSBpbiBFQ1Mgc2VydmljZSAnJHt0aGlzLnNlcnZpY2VOYW1lfScuYCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBwcm9wcy50YXJnZXRIZWFsdGhBbGFybT8uZXZhbHVhdGlvblBlcmlvZHMgPz8gMSxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HLFxuICAgIH0pXG5cbiAgICBjb25zdCBoZWFsdGhBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIkhlYWx0aHlIb3N0Q291bnRcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvQXBwbGljYXRpb25FTEJcIixcbiAgICAgIHN0YXRpc3RpYzogXCJNaW5pbXVtXCIsXG4gICAgICBwZXJpb2Q6IHByb3BzLnRhcmdldEhlYWx0aEFsYXJtPy5wZXJpb2QgPz8gY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBUYXJnZXRHcm91cDogcHJvcHMudGFyZ2V0R3JvdXBGdWxsTmFtZSxcbiAgICAgICAgTG9hZEJhbGFuY2VyOiBwcm9wcy5sb2FkQmFsYW5jZXJGdWxsTmFtZSxcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQWxhcm0odGhpcywgXCJIZWFsdGhBbGFybVwiLCB7XG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgVGhlcmUgYXJlIG5vIGhlYWx0aHkgdGFyZ2V0KHMpIGluIEVDUyBzZXJ2aWNlICcke3RoaXMuc2VydmljZU5hbWV9Jy5gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IHByb3BzLnRhcmdldEhlYWx0aEFsYXJtPy5ldmFsdWF0aW9uUGVyaW9kcyA/PyAxLFxuICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLkJSRUFDSElORyxcbiAgICB9KVxuXG4gICAgY29uc3QgdGFyZ2V0SGVhbHRoQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5Db21wb3NpdGVBbGFybShcbiAgICAgIHRoaXMsXG4gICAgICBcIlRhcmdldEhlYWx0aEFsYXJtXCIsXG4gICAgICB7XG4gICAgICAgIGFsYXJtUnVsZTogY2RrLmF3c19jbG91ZHdhdGNoLkFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICBjZGsuYXdzX2Nsb3Vkd2F0Y2guQWxhcm1SdWxlLmZyb21BbGFybShcbiAgICAgICAgICAgIHRhcmdldENvbm5lY3Rpb25FcnJvckFsYXJtLFxuICAgICAgICAgICAgY2xvdWR3YXRjaC5BbGFybVN0YXRlLkFMQVJNLFxuICAgICAgICAgICksXG4gICAgICAgICAgY2RrLmF3c19jbG91ZHdhdGNoLkFsYXJtUnVsZS5mcm9tQWxhcm0oXG4gICAgICAgICAgICBoZWFsdGhBbGFybSxcbiAgICAgICAgICAgIGNsb3Vkd2F0Y2guQWxhcm1TdGF0ZS5BTEFSTSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgIHByb3BzLnRhcmdldEhlYWx0aEFsYXJtPy5kZXNjcmlwdGlvbiA/P1xuICAgICAgICAgIGBUaGUgbG9hZCBiYWxhbmNlciBpcyBlaXRoZXIgcmVjZWl2aW5nIGJhZCBoZWFsdGggY2hlY2tzIGZyb20gb3IgaXMgdW5hYmxlIHRvIGNvbm5lY3QgdG8gdGFyZ2V0KHMpIGluIEVDUyBzZXJ2aWNlICcke3RoaXMuc2VydmljZU5hbWV9J2AsXG4gICAgICAgIGFjdGlvbnNFbmFibGVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgKVxuICAgIGlmIChwcm9wcy50YXJnZXRIZWFsdGhBbGFybT8uZW5hYmxlZCA/PyB0cnVlKSB7XG4gICAgICB0YXJnZXRIZWFsdGhBbGFybS5hZGRBbGFybUFjdGlvbihcbiAgICAgICAgcHJvcHMudGFyZ2V0SGVhbHRoQWxhcm0/LmFjdGlvbiA/PyB0aGlzLmFjdGlvbixcbiAgICAgIClcbiAgICAgIHRhcmdldEhlYWx0aEFsYXJtLmFkZE9rQWN0aW9uKFxuICAgICAgICBwcm9wcy50YXJnZXRIZWFsdGhBbGFybT8uYWN0aW9uID8/IHRoaXMuYWN0aW9uLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IHRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtID0gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6IFwiSFRUUENvZGVfVGFyZ2V0XzVYWF9Db3VudFwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9BcHBsaWNhdGlvbkVMQlwiLFxuICAgICAgc3RhdGlzdGljOiBcIlN1bVwiLFxuICAgICAgcGVyaW9kOlxuICAgICAgICBwcm9wcy50b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybT8ucGVyaW9kID8/XG4gICAgICAgIGNkay5EdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgVGFyZ2V0R3JvdXA6IHByb3BzLnRhcmdldEdyb3VwRnVsbE5hbWUsXG4gICAgICAgIExvYWRCYWxhbmNlcjogcHJvcHMubG9hZEJhbGFuY2VyRnVsbE5hbWUsXG4gICAgICB9LFxuICAgIH0pLmNyZWF0ZUFsYXJtKHRoaXMsIFwiQWxiVGFyZ2V0czV4eEFsYXJtXCIsIHtcbiAgICAgIGFjdGlvbnNFbmFibGVkOiB0cnVlLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgcHJvcHMudG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0/LmRlc2NyaXB0aW9uID8/XG4gICAgICAgIGBMb2FkIGJhbGFuY2VyIHJlY2VpdmVkIHRvbyBtYW55IDVYWCByZXNwb25zZXMgZnJvbSB0YXJnZXQocykgaW4gRUNTIHNlcnZpY2UgJyR7dGhpcy5zZXJ2aWNlTmFtZX0nLmAsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczpcbiAgICAgICAgcHJvcHMudG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0/LmV2YWx1YXRpb25QZXJpb2RzID8/IDMsXG4gICAgICB0aHJlc2hvbGQ6IHByb3BzLnRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtPy50aHJlc2hvbGQgPz8gMTAsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICB9KVxuICAgIGlmIChwcm9wcy50b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybT8uZW5hYmxlZCA/PyB0cnVlKSB7XG4gICAgICB0b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybS5hZGRBbGFybUFjdGlvbihcbiAgICAgICAgcHJvcHMudG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0/LmFjdGlvbiA/PyB0aGlzLmFjdGlvbixcbiAgICAgIClcbiAgICAgIHRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtLmFkZE9rQWN0aW9uKFxuICAgICAgICBwcm9wcy50b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybT8uYWN0aW9uID8/IHRoaXMuYWN0aW9uLFxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldFJlc3BvbnNlVGltZUFsYXJtID0gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6IFwiVGFyZ2V0UmVzcG9uc2VUaW1lXCIsXG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL0FwcGxpY2F0aW9uRUxCXCIsXG4gICAgICBzdGF0aXN0aWM6IFwicDk1XCIsXG4gICAgICBwZXJpb2Q6IHByb3BzLnRhcmdldFJlc3BvbnNlVGltZUFsYXJtPy5wZXJpb2QgPz8gY2RrLkR1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIExvYWRCYWxhbmNlcjogcHJvcHMubG9hZEJhbGFuY2VyRnVsbE5hbWUsXG4gICAgICAgIFRhcmdldEdyb3VwOiBwcm9wcy50YXJnZXRHcm91cEZ1bGxOYW1lLFxuICAgICAgfSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIlRhcmdldFJlc3BvbnNlVGltZUFsYXJtXCIsIHtcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246XG4gICAgICAgIHByb3BzLnRhcmdldFJlc3BvbnNlVGltZUFsYXJtPy5kZXNjcmlwdGlvbiA/P1xuICAgICAgICBgNSUgb2YgcmVzcG9uc2VzIGZyb20gRUNTIHNlcnZpY2UgJyR7XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlTmFtZVxuICAgICAgICB9JyBhcmUgdGFraW5nIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBkdXJhdGlvbiBvZiAkeyhcbiAgICAgICAgICBwcm9wcy50YXJnZXRSZXNwb25zZVRpbWVBbGFybT8udGhyZXNob2xkID8/IGNkay5EdXJhdGlvbi5taWxsaXMoNTAwKVxuICAgICAgICApLnRvTWlsbGlzZWNvbmRzKCl9IG1zLmAsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogcHJvcHMudGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0/LmV2YWx1YXRpb25QZXJpb2RzID8/IDEsXG4gICAgICB0aHJlc2hvbGQ6IChcbiAgICAgICAgcHJvcHMudGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0/LnRocmVzaG9sZCA/PyBjZGsuRHVyYXRpb24ubWlsbGlzKDUwMClcbiAgICAgICkudG9TZWNvbmRzKHsgaW50ZWdyYWw6IGZhbHNlIH0pLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICB9KVxuICAgIGlmIChwcm9wcy50YXJnZXRSZXNwb25zZVRpbWVBbGFybT8uZW5hYmxlZCA/PyB0cnVlKSB7XG4gICAgICB0YXJnZXRSZXNwb25zZVRpbWVBbGFybS5hZGRBbGFybUFjdGlvbihcbiAgICAgICAgcHJvcHMudGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0/LmFjdGlvbiA/PyB0aGlzLmFjdGlvbixcbiAgICAgIClcbiAgICAgIHRhcmdldFJlc3BvbnNlVGltZUFsYXJtLmFkZE9rQWN0aW9uKFxuICAgICAgICBwcm9wcy50YXJnZXRSZXNwb25zZVRpbWVBbGFybT8uYWN0aW9uID8/IHRoaXMuYWN0aW9uLFxuICAgICAgKVxuICAgIH1cbiAgfVxufVxuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1hbGFybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zL3NlcnZpY2UtYWxhcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFrQztBQUNsQyx5REFBd0Q7QUFDeEQsNkNBQTRDO0FBQzVDLHlDQUF3QztBQWF4Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxhQUFjLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFJckQsWUFDRSxLQUEyQixFQUMzQixFQUFVLEVBQ1YsS0FBeUI7UUFFekIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUE7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFBO0lBQ3RDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCLENBQUMsS0FZakI7O1FBQ0MsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDdEQsbUJBQW1CLEVBQ25CO1lBQ0UsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQztZQUN2RCwyREFBMkQ7WUFDM0QsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEVBQ3ZELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVztZQUM1QixzQkFBc0I7WUFDdEIsMkJBQTJCLEVBQzNCLEdBQUcsRUFDSCx1QkFBdUIsQ0FDeEIsQ0FDRjtZQUNELFVBQVUsRUFBRSxRQUFRO1lBQ3BCLGVBQWUsRUFBRSxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMs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QU0sQ0FDckQsQ0FBQTtZQUNELHVCQUF1QixDQUFDLFdBQVcsQ0FDakMsT0FBQSxPQUFBLEtBQUssQ0FBQyx1QkFBdUIsNENBQUUsTUFBTSxxQ0FBSSxJQUFJLENBQUMsTUFBTSxDQUNyRCxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTdTRCxzQ0E2U0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoXCJcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCJcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VBbGFybXNQcm9wcyBleHRlbmRzIGNkay5TdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlc1xuICAgKi9cbiAgYWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEVDUyBzZXJ2aWNlLlxuICAgKi9cbiAgc2VydmljZU5hbWU6IHN0cmluZ1xufVxuXG4vKipcbiAqIFZhcmlvdXMgYWxhcm1zIGFuZCBtb25pdG9yaW5nLlxuICpcbiAqIEJ5IGl0c2VsZiBubyBhbGFybXMgaXMgY3JlYXRlZC4gVXNlIHRoZSBtZXRob2RzIGF2YWlsYWJsZVxuICogdG8gYWRkIGFsYXJtcy5cbiAqXG4gKiBTZWUgU2xhY2tBbGFybSBjb25zdHJ1Y3QgZm9yIFNOUyBBY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXJ2aWNlQWxhcm1zIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFNlcnZpY2VBbGFybXNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgdGhpcy5hY3Rpb24gPSBwcm9wcy5hY3Rpb25cbiAgICB0aGlzLnNlcnZpY2VOYW1lID0gcHJvcHMuc2VydmljZU5hbWVcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3IgbG9ncyBzdG9yZWQgYXMgSlNPTiwgbW9uaXRvciBsb2cgZW50cmllcyBsb2dnZWRcbiAgICogd2l0aCBsZXZlbCBFUlJPUiBvciBoaWdoZXIsIGFzIHdlbGwgYXMgYW55IHJlcXVlc3RzXG4gICAqIHRoYXQgY2F1c2VzIDUwMCBmb3IgbG9nZ2luZyB3aXRoIGxpZmxpZy1sb2dnaW5nLlxuICAgKi9cbiAgYWRkSnNvbkVycm9yQWxhcm0ocHJvcHM6IHtcbiAgICBsb2dHcm91cDogbG9ncy5JTG9nR3JvdXBcbiAgICBhbGFybURlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogU2V0IHRvIGBmYWxzZWAgdG8gc3RvcCB0aGUgYWxhcm0gZnJvbSBzZW5kaW5nIE9LIGV2ZW50cy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICogKi9cbiAgICBlbmFibGVPa0FjdGlvbj86IGJvb2xlYW5cbiAgICAvKipcbiAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgKi9cbiAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICB9KTogdm9pZCB7XG4gICAgY29uc3QgZXJyb3JNZXRyaWNGaWx0ZXIgPSBwcm9wcy5sb2dHcm91cC5hZGRNZXRyaWNGaWx0ZXIoXG4gICAgICBcIkVycm9yTWV0cmljRmlsdGVyXCIsXG4gICAgICB7XG4gICAgICAgIGZpbHRlclBhdHRlcm46IGxvZ3MuRmlsdGVyUGF0dGVybi5hbnkoXG4gICAgICAgICAgbG9ncy5GaWx0ZXJQYXR0ZXJuLnN0cmluZ1ZhbHVlKFwiJC5sZXZlbFwiLCBcIj1cIiwgXCJFUlJPUlwiKSxcbiAgICAgICAgICAvLyBGQVRBTCBjb3ZlcnMgc29tZSBhcHBsaWNhdGlvbnMgd2UgcnVuIHRoYXQgdXNlcyBsb2c0aiBvclxuICAgICAgICAgIC8vIG90aGVyIGxpYnJhcmllcy4gSXQgaXMgbm90IGV4aXN0ZW50IGluIHNsZjRqLlxuICAgICAgICAgIGxvZ3MuRmlsdGVyUGF0dGVybi5zdHJpbmdWYWx1ZShcIiQubGV2ZWxcIiwgXCI9XCIsIFwiRkFUQUxcIiksXG4gICAgICAgICAgbG9ncy5GaWx0ZXJQYXR0ZXJuLnN0cmluZ1ZhbHVlKFxuICAgICAgICAgICAgLy8gRm9yIGxpZmxpZy1sb2dnaW5nLlxuICAgICAgICAgICAgXCIkLnJlcXVlc3RJbmZvLnN0YXR1cy5jb2RlXCIsXG4gICAgICAgICAgICBcIj1cIixcbiAgICAgICAgICAgIFwiSU5URVJOQUxfU0VSVkVSX0VSUk9SXCIsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICAgbWV0cmljTmFtZTogXCJFcnJvcnNcIixcbiAgICAgICAgbWV0cmljTmFtZXNwYWNlOiBgc3RhY2svJHtjZGsuU3RhY2sub2YodGhpcykuc3RhY2tOYW1lfS8ke1xuICAgICAgICAgIHRoaXMuc2VydmljZU5hbWVcbiAgICAgICAgfS9FcnJvcnNgLFxuICAgICAgfSxcbiAgICApXG5cbiAgICBjb25zdCBlcnJvckFsYXJtID0gZXJyb3JNZXRyaWNGaWx0ZXJcbiAgICAgIC5tZXRyaWMoKVxuICAgICAgLndpdGgoe1xuICAgICAgICBzdGF0aXN0aWM6IFwiU3VtXCIsXG4gICAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgfSlcbiAgICAgIC5jcmVhdGVBbGFybSh0aGlzLCBcIkVycm9yTG9nQWxhcm1cIiwge1xuICAgICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgIHByb3BzLmFsYXJtRGVzY3JpcHRpb24gPz8gYCR7dGhpcy5zZXJ2aWNlTmFtZX0gbG9nZ2VkIGFuIGVycm9yYCxcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgICB9KVxuXG4gICAgZXJyb3JBbGFybS5hZGRBbGFybUFjdGlvbihwcm9wcy5hY3Rpb24gPz8gdGhpcy5hY3Rpb24pXG4gICAgaWYgKHByb3BzLmVuYWJsZU9rQWN0aW9uID8/IHRydWUpIHtcbiAgICAgIGVycm9yQWxhcm0uYWRkT2tBY3Rpb24ocHJvcHMuYWN0aW9uID8/IHRoaXMuYWN0aW9uKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIHRocmVlIENsb3VkV2F0Y2ggQWxhcm1zIGZvciBtb25pdG9yaW5nIGFuIEVDUyBzZXJ2aWNlIGJlaGluZCBhIHRhcmdldCBncm91cDpcbiAgICogMSkgb25lIHRoYXQgdHJpZ2dlcnMgaWYgdGhlIHRhcmdldCBpcyByZXNwb25kaW5nIHdpdGggdG9vIG1hbnkgNXh4IGVycm9ycy5cbiAgICogMikgb25lIHRoYXQgdHJpZ2dlcnMgaWYgdGhlIDk1JSBwZXJjZW50aWxlIG9mIHJlc3BvbnNlIHRpbWVzIGZyb20gdGhlIHRhcmdldCBpcyB0b28gaGlnaC5cbiAgICogMykgb25lIHRoYXQgdHJpZ2dlcnMgaWYgdGhlcmUgYXJlIG5vIGhlYWx0aHkgdGFyZ2V0cyBvciBpZiB0aGUgbG9hZCBiYWxhbmNlciBmYWlscyB0byBjb25uZWN0IHRvIHRhcmdldHMuXG4gICAqL1xuICBhZGRUYXJnZXRHcm91cEFsYXJtcyhwcm9wczoge1xuICAgIC8qKlxuICAgICAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIHRhcmdldCBncm91cC5cbiAgICAgKi9cbiAgICB0YXJnZXRHcm91cEZ1bGxOYW1lOiBzdHJpbmdcbiAgICAvKipcbiAgICAgKiBUaGUgZnVsbCBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VyLlxuICAgICAqL1xuICAgIGxvYWRCYWxhbmNlckZ1bGxOYW1lOiBzdHJpbmdcbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBhIGNvbXBvc2l0ZSBhbGFybS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IENvbmZpZ3VyZWQgd2l0aCBzYW5lIGRlZmF1bHRzLlxuICAgICAqL1xuICAgIHRhcmdldEhlYWx0aEFsYXJtPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICAgKi9cbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgICAvKipcbiAgICAgICAqIEFuIGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgICAgICovXG4gICAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCA2MCBzZWNvbmRzXG4gICAgICAgKi9cbiAgICAgIHBlcmlvZD86IGNkay5EdXJhdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCAxXG4gICAgICAgKi9cbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDFcbiAgICAgICAqL1xuICAgICAgdGhyZXNob2xkPzogbnVtYmVyXG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBhbiBhbGFybS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IENvbmZpZ3VyZWQgd2l0aCBzYW5lIGRlZmF1bHRzLlxuICAgICAqL1xuICAgIHRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICAgKi9cbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgICAvKipcbiAgICAgICAqIEFuIGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgICAgICovXG4gICAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCA2MCBzZWNvbmRzXG4gICAgICAgKi9cbiAgICAgIHBlcmlvZD86IGNkay5EdXJhdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCAzXG4gICAgICAgKi9cbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDEwXG4gICAgICAgKi9cbiAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgYW4gYWxhcm0uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBDb25maWd1cmVkIHdpdGggc2FuZSBkZWZhdWx0cy5cbiAgICAgKi9cbiAgICB0YXJnZXRSZXNwb25zZVRpbWVBbGFybT86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVkPzogYm9vbGVhblxuICAgICAgLyoqXG4gICAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgICAqL1xuICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgNSBtaW51dGVzXG4gICAgICAgKi9cbiAgICAgIHBlcmlvZD86IGNkay5EdXJhdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCAxXG4gICAgICAgKi9cbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDUwMCBtaWxsaXNlY29uZHNcbiAgICAgICAqL1xuICAgICAgdGhyZXNob2xkPzogY2RrLkR1cmF0aW9uXG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICAgIH1cbiAgfSk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldENvbm5lY3Rpb25FcnJvckFsYXJtID0gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6IFwiVGFyZ2V0Q29ubmVjdGlvbkVycm9yQ291bnRcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvQXBwbGljYXRpb25FTEJcIixcbiAgICAgIHN0YXRpc3RpYzogXCJTdW1cIixcbiAgICAgIHBlcmlvZDogcHJvcHMudGFyZ2V0SGVhbHRoQWxhcm0/LnBlcmlvZCA/PyBjZGsuRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIFRhcmdldEdyb3VwOiBwcm9wcy50YXJnZXRHcm91cEZ1bGxOYW1lLFxuICAgICAgICBMb2FkQmFsYW5jZXI6IHByb3BzLmxvYWRCYWxhbmNlckZ1bGxOYW1lLFxuICAgICAgfSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkNvbm5lY3Rpb25BbGFybVwiLCB7XG4gICAgICBhY3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBMb2FkIGJhbGFuY2VyIGlzIGZhaWxpbmcgdG8gY29ubmVjdCB0byB0YXJnZXQocykgaW4gRUNTIHNlcnZpY2UgJyR7dGhpcy5zZXJ2aWNlTmFtZX0nLmAsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogcHJvcHMudGFyZ2V0SGVhbHRoQWxhcm0/LmV2YWx1YXRpb25QZXJpb2RzID8/IDEsXG4gICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICB9KVxuXG4gICAgY29uc3QgaGVhbHRoQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJIZWFsdGh5SG9zdENvdW50XCIsXG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL0FwcGxpY2F0aW9uRUxCXCIsXG4gICAgICBzdGF0aXN0aWM6IFwiTWluaW11bVwiLFxuICAgICAgcGVyaW9kOiBwcm9wcy50YXJnZXRIZWFsdGhBbGFybT8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgVGFyZ2V0R3JvdXA6IHByb3BzLnRhcmdldEdyb3VwRnVsbE5hbWUsXG4gICAgICAgIExvYWRCYWxhbmNlcjogcHJvcHMubG9hZEJhbGFuY2VyRnVsbE5hbWUsXG4gICAgICB9LFxuICAgIH0pLmNyZWF0ZUFsYXJtKHRoaXMsIFwiSGVhbHRoQWxhcm1cIiwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYFRoZXJlIGFyZSBubyBoZWFsdGh5IHRhcmdldChzKSBpbiBFQ1Mgc2VydmljZSAnJHt0aGlzLnNlcnZpY2VOYW1lfScuYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuTEVTU19USEFOX1RIUkVTSE9MRCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBwcm9wcy50YXJnZXRIZWFsdGhBbGFybT8uZXZhbHVhdGlvblBlcmlvZHMgPz8gMSxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5CUkVBQ0hJTkcsXG4gICAgfSlcblxuICAgIGNvbnN0IHRhcmdldEhlYWx0aEFsYXJtID0gbmV3IGNsb3Vkd2F0Y2guQ29tcG9zaXRlQWxhcm0oXG4gICAgICB0aGlzLFxuICAgICAgXCJUYXJnZXRIZWFsdGhBbGFybVwiLFxuICAgICAge1xuICAgICAgICBhbGFybVJ1bGU6IGNkay5hd3NfY2xvdWR3YXRjaC5BbGFybVJ1bGUuYW55T2YoXG4gICAgICAgICAgY2RrLmF3c19jbG91ZHdhdGNoLkFsYXJtUnVsZS5mcm9tQWxhcm0oXG4gICAgICAgICAgICB0YXJnZXRDb25uZWN0aW9uRXJyb3JBbGFybSxcbiAgICAgICAgICAgIGNsb3Vkd2F0Y2guQWxhcm1TdGF0ZS5BTEFSTSxcbiAgICAgICAgICApLFxuICAgICAgICAgIGNkay5hd3NfY2xvdWR3YXRjaC5BbGFybVJ1bGUuZnJvbUFsYXJtKFxuICAgICAgICAgICAgaGVhbHRoQWxhcm0sXG4gICAgICAgICAgICBjbG91ZHdhdGNoLkFsYXJtU3RhdGUuQUxBUk0sXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgICBwcm9wcy50YXJnZXRIZWFsdGhBbGFybT8uZGVzY3JpcHRpb24gPz9cbiAgICAgICAgICBgVGhlIGxvYWQgYmFsYW5jZXIgaXMgZWl0aGVyIHJlY2VpdmluZyBiYWQgaGVhbHRoIGNoZWNrcyBmcm9tIG9yIGlzIHVuYWJsZSB0byBjb25uZWN0IHRvIHRhcmdldChzKSBpbiBFQ1Mgc2VydmljZSAnJHt0aGlzLnNlcnZpY2VOYW1lfSdgLFxuICAgICAgICBhY3Rpb25zRW5hYmxlZDogZmFsc2UsXG4gICAgICB9LFxuICAgIClcbiAgICBpZiAocHJvcHMudGFyZ2V0SGVhbHRoQWxhcm0/LmVuYWJsZWQgPz8gdHJ1ZSkge1xuICAgICAgdGFyZ2V0SGVhbHRoQWxhcm0uYWRkQWxhcm1BY3Rpb24oXG4gICAgICAgIHByb3BzLnRhcmdldEhlYWx0aEFsYXJtPy5hY3Rpb24gPz8gdGhpcy5hY3Rpb24sXG4gICAgICApXG4gICAgICB0YXJnZXRIZWFsdGhBbGFybS5hZGRPa0FjdGlvbihcbiAgICAgICAgcHJvcHMudGFyZ2V0SGVhbHRoQWxhcm0/LmFjdGlvbiA/PyB0aGlzLmFjdGlvbixcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCB0b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIkhUVFBDb2RlX1RhcmdldF81WFhfQ291bnRcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvQXBwbGljYXRpb25FTEJcIixcbiAgICAgIHN0YXRpc3RpYzogXCJTdW1cIixcbiAgICAgIHBlcmlvZDpcbiAgICAgICAgcHJvcHMudG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0/LnBlcmlvZCA/P1xuICAgICAgICBjZGsuRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIFRhcmdldEdyb3VwOiBwcm9wcy50YXJnZXRHcm91cEZ1bGxOYW1lLFxuICAgICAgICBMb2FkQmFsYW5jZXI6IHByb3BzLmxvYWRCYWxhbmNlckZ1bGxOYW1lLFxuICAgICAgfSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkFsYlRhcmdldHM1eHhBbGFybVwiLCB7XG4gICAgICBhY3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246XG4gICAgICAgIHByb3BzLnRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtPy5kZXNjcmlwdGlvbiA/P1xuICAgICAgICBgTG9hZCBiYWxhbmNlciByZWNlaXZlZCB0b28gbWFueSA1WFggcmVzcG9uc2VzIGZyb20gdGFyZ2V0KHMpIGluIEVDUyBzZXJ2aWNlICcke3RoaXMuc2VydmljZU5hbWV9Jy5gLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6XG4gICAgICAgIHByb3BzLnRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtPy5ldmFsdWF0aW9uUGVyaW9kcyA/PyAzLFxuICAgICAgdGhyZXNob2xkOiBwcm9wcy50b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybT8udGhyZXNob2xkID8/IDEwLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgfSlcbiAgICBpZiAocHJvcHMudG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0/LmVuYWJsZWQgPz8gdHJ1ZSkge1xuICAgICAgdG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0uYWRkQWxhcm1BY3Rpb24oXG4gICAgICAgIHByb3BzLnRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtPy5hY3Rpb24gPz8gdGhpcy5hY3Rpb24sXG4gICAgICApXG4gICAgICB0b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybS5hZGRPa0FjdGlvbihcbiAgICAgICAgcHJvcHMudG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0/LmFjdGlvbiA/PyB0aGlzLmFjdGlvbixcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXRSZXNwb25zZVRpbWVBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIlRhcmdldFJlc3BvbnNlVGltZVwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9BcHBsaWNhdGlvbkVMQlwiLFxuICAgICAgc3RhdGlzdGljOiBcInA5NVwiLFxuICAgICAgcGVyaW9kOiBwcm9wcy50YXJnZXRSZXNwb25zZVRpbWVBbGFybT8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBMb2FkQmFsYW5jZXI6IHByb3BzLmxvYWRCYWxhbmNlckZ1bGxOYW1lLFxuICAgICAgICBUYXJnZXRHcm91cDogcHJvcHMudGFyZ2V0R3JvdXBGdWxsTmFtZSxcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQWxhcm0odGhpcywgXCJUYXJnZXRSZXNwb25zZVRpbWVBbGFybVwiLCB7XG4gICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICBwcm9wcy50YXJnZXRSZXNwb25zZVRpbWVBbGFybT8uZGVzY3JpcHRpb24gPz9cbiAgICAgICAgYDUlIG9mIHJlc3BvbnNlcyBmcm9tIEVDUyBzZXJ2aWNlICcke1xuICAgICAgICAgIHRoaXMuc2VydmljZU5hbWVcbiAgICAgICAgfScgYXJlIHRha2luZyBsb25nZXIgdGhhbiB0aGUgZXhwZWN0ZWQgZHVyYXRpb24gb2YgJHsoXG4gICAgICAgICAgcHJvcHMudGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0/LnRocmVzaG9sZCA/PyBjZGsuRHVyYXRpb24ubWlsbGlzKDUwMClcbiAgICAgICAgKS50b01pbGxpc2Vjb25kcygpfSBtcy5gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IHByb3BzLnRhcmdldFJlc3BvbnNlVGltZUFsYXJtPy5ldmFsdWF0aW9uUGVyaW9kcyA/PyAxLFxuICAgICAgdGhyZXNob2xkOiAoXG4gICAgICAgIHByb3BzLnRhcmdldFJlc3BvbnNlVGltZUFsYXJtPy50aHJlc2hvbGQgPz8gY2RrLkR1cmF0aW9uLm1pbGxpcyg1MDApXG4gICAgICApLnRvU2Vjb25kcyh7IGludGVncmFsOiBmYWxzZSB9KSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgfSlcbiAgICBpZiAocHJvcHMudGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0/LmVuYWJsZWQgPz8gdHJ1ZSkge1xuICAgICAgdGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0uYWRkQWxhcm1BY3Rpb24oXG4gICAgICAgIHByb3BzLnRhcmdldFJlc3BvbnNlVGltZUFsYXJtPy5hY3Rpb24gPz8gdGhpcy5hY3Rpb24sXG4gICAgICApXG4gICAgICB0YXJnZXRSZXNwb25zZVRpbWVBbGFybS5hZGRPa0FjdGlvbihcbiAgICAgICAgcHJvcHMudGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0/LmFjdGlvbiA/PyB0aGlzLmFjdGlvbixcbiAgICAgIClcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -46,4 +46,4 @@ class SesAlarms extends constructs.Construct {
46
46
  }
47
47
  }
48
48
  exports.SesAlarms = SesAlarms;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VzLWFsYXJtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbGFybXMvc2VzLWFsYXJtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBa0M7QUFDbEMseURBQXdEO0FBQ3hELHlDQUF3QztBQTJEeEM7OztHQUdHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFHakQsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxLQUFxQjs7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUE7UUFFMUIsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDakQsVUFBVSxFQUFFLHVCQUF1QjtZQUNuQyxTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsTUFBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxvQkFBb0IsMENBQUUsTUFBTSxtQ0FBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7U0FDeEUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7WUFDM0MsZ0JBQWdCLEVBQUUsK0JBQ2hCLE1BQUEsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsb0JBQW9CLDBDQUFFLFNBQVMsbUNBQUksR0FDNUMsR0FBRztZQUNILGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0I7WUFDeEUsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTTtZQUNwRCxTQUFTLEVBQUUsQ0FBQyxNQUFBLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG9CQUFvQiwwQ0FBRSxTQUFTLG1DQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUc7U0FDakUsQ0FBQyxDQUFBO1FBRUYsSUFBSSxNQUFBLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG9CQUFvQiwwQ0FBRSxPQUFPLG1DQUFJLElBQUksRUFBRTtZQUNoRCxvQkFBb0IsQ0FBQyxjQUFjLENBQ2pDLENBQUEsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsb0JBQW9CLDBDQUFFLE1BQU0sS0FBSSxJQUFJLENBQUMsTUFBTSxDQUNuRCxDQUFBO1NBQ0Y7UUFFRCxNQUFNLHNCQUFzQixHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNuRCxVQUFVLEVBQUUsMEJBQTBCO1lBQ3RDLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLE1BQU0sRUFBRSxNQUFBLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGtCQUFrQiwwQ0FBRSxNQUFNLG1DQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztTQUN0RSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRTtZQUM3QyxnQkFBZ0IsRUFBRSxrQ0FDaEIsTUFBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxrQkFBa0IsMENBQUUsU0FBUyxtQ0FBSSxJQUMxQyxHQUFHO1lBQ0gsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQjtZQUN4RSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BCLFNBQVMsRUFBRSxDQUFDLE1BQUEsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsa0JBQWtCLDBDQUFFLFNBQVMsbUNBQUksSUFBSSxDQUFDLEdBQUcsR0FBRztZQUMvRCxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTTtTQUNyRCxDQUFDLENBQUE7UUFFRixJQUFJLE1BQUEsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsa0JBQWtCLDBDQUFFLE9BQU8sbUNBQUksSUFBSSxFQUFFO1lBQzlDLHNCQUFzQixDQUFDLGNBQWMsQ0FDbkMsQ0FBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxrQkFBa0IsMENBQUUsTUFBTSxLQUFJLElBQUksQ0FBQyxNQUFNLENBQ2pELENBQUE7U0FDRjtJQUNILENBQUM7Q0FDRjtBQWxERCw4QkFrREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoXCJcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFNlc0FsYXJtc1Byb3BzIGV4dGVuZHMgY2RrLlN0YWNrUHJvcHMge1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzXG4gICAqL1xuICBhY3Rpb246IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciBhbiBhbGFybSBmb3IgaGlnaCByYXRlIGJvdW5jZWQgbWVzc2FnZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IENvbmZpZ3VyZWQgd2l0aCByZWFzb25hYmxlIGRlZmF1bHRzLlxuICAgKi9cbiAgYm91bmNlZE1lc3NhZ2VzQWxhcm0/OiB7XG4gICAgLyoqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgLyoqXG4gICAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAgICovXG4gICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAvKipcbiAgICAgKiBAZGVmYXVsdCAxMCBtaW51dGVzXG4gICAgICovXG4gICAgcGVyaW9kPzogY2RrLkR1cmF0aW9uXG4gICAgLyoqXG4gICAgICogVGhyZXNob2xkIHZhbHVlIGZvciBhbGFybSBhcyBhIHBlcmNlbnRcbiAgICAgKiBAZGVmYXVsdCAyLjUoJSlcbiAgICAgKiA1JSBpcyB0aGUgdGhyZXNob2xkIGF0IHdoaWNoIEFXUyBjb25zaWRlcnMgcHV0dGluZyBhbiBhY2NvdW50IHVuZGVyIHJldmlld1xuICAgICAqL1xuICAgIHRocmVzaG9sZD86IG51bWJlclxuICB9XG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciBhbiBhbGFybSBmb3IgaGlnaCBjb21wbGFpbnQgcmF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgQ29uZmlndXJlZCB3aXRoIHNhbmUgZGVmYXVsdHMuXG4gICAqL1xuICBjb21wbGFpbnRSYXRlQWxhcm0/OiB7XG4gICAgLyoqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgLyoqXG4gICAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAgICovXG4gICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAvKipcbiAgICAgKiBAZGVmYXVsdCAxMCBtaW51dGVzXG4gICAgICovXG4gICAgcGVyaW9kPzogY2RrLkR1cmF0aW9uXG4gICAgLyoqXG4gICAgICogVGhyZXNob2xkIHZhbHVlIGZvciBhbGFybSBhcyBhIHBlcmNlbnRcbiAgICAgKiBAZGVmYXVsdCAwLjA1KCUpXG4gICAgICogMC4xMCUgaXMgdGhlIHRocmVzaG9sZCBhdCB3aGljaCBBV1MgY29uc2lkZXJzIHB1dHRpbmcgYW4gYWNjb3VudCB1bmRlciByZXZpZXdcbiAgICAgKi9cbiAgICB0aHJlc2hvbGQ/OiBudW1iZXJcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBDb25zdHJ1Y3QgdGhhdCBjb25maWd1cmVzIHZhcmlvdXMgc2Vuc2libGUgQ2xvdWRXYXRjaCBhbGFybXMgZm9yIEFXUyBTRVNcbiAqL1xuZXhwb3J0IGNsYXNzIFNlc0FsYXJtcyBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhY3Rpb246IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VzQWxhcm1zUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICB0aGlzLmFjdGlvbiA9IHByb3BzLmFjdGlvblxuXG4gICAgY29uc3QgYm91bmNlZE1lc3NhZ2VzQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJSZXB1dGF0aW9uLkJvdW5jZVJhdGVcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvU0VTXCIsXG4gICAgICBzdGF0aXN0aWM6IFwiTWF4aW11bVwiLFxuICAgICAgcGVyaW9kOiBwcm9wcz8uYm91bmNlZE1lc3NhZ2VzQWxhcm0/LnBlcmlvZCA/PyBjZGsuRHVyYXRpb24ubWludXRlcygxMCksXG4gICAgfSkuY3JlYXRlQWxhcm0odGhpcywgXCJCb3VuY2VkTWVzc2FnZXNBbGFybVwiLCB7XG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgVGhlIFNFUyBib3VuY2UgcmF0ZSBpcyBvdmVyICR7XG4gICAgICAgIHByb3BzPy5ib3VuY2VkTWVzc2FnZXNBbGFybT8udGhyZXNob2xkID8/IDIuNVxuICAgICAgfSVgLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuSUdOT1JFLFxuICAgICAgdGhyZXNob2xkOiAocHJvcHM/LmJvdW5jZWRNZXNzYWdlc0FsYXJtPy50aHJlc2hvbGQgPz8gMi41KSAvIDEwMCxcbiAgICB9KVxuXG4gICAgaWYgKHByb3BzPy5ib3VuY2VkTWVzc2FnZXNBbGFybT8uZW5hYmxlZCA/PyB0cnVlKSB7XG4gICAgICBib3VuY2VkTWVzc2FnZXNBbGFybS5hZGRBbGFybUFjdGlvbihcbiAgICAgICAgcHJvcHM/LmJvdW5jZWRNZXNzYWdlc0FsYXJtPy5hY3Rpb24gfHwgdGhpcy5hY3Rpb24sXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgY29tcGxhaW50TWVzc2FnZXNBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIlJlcHV0YXRpb24uQ29tcGxhaW50UmF0ZVwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9TRVNcIixcbiAgICAgIHN0YXRpc3RpYzogXCJNYXhpbXVtXCIsXG4gICAgICBwZXJpb2Q6IHByb3BzPy5jb21wbGFpbnRSYXRlQWxhcm0/LnBlcmlvZCA/PyBjZGsuRHVyYXRpb24ubWludXRlcygxMCksXG4gICAgfSkuY3JlYXRlQWxhcm0odGhpcywgXCJDb21wbGFpbnRNZXNzYWdlc0FsYXJtXCIsIHtcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBUaGUgU0VTIGNvbXBsYWludCByYXRlIGlzIG92ZXIgJHtcbiAgICAgICAgcHJvcHM/LmNvbXBsYWludFJhdGVBbGFybT8udGhyZXNob2xkID8/IDAuMDVcbiAgICAgIH0lYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgdGhyZXNob2xkOiAocHJvcHM/LmNvbXBsYWludFJhdGVBbGFybT8udGhyZXNob2xkID8/IDAuMDUpIC8gMTAwLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICB9KVxuXG4gICAgaWYgKHByb3BzPy5jb21wbGFpbnRSYXRlQWxhcm0/LmVuYWJsZWQgPz8gdHJ1ZSkge1xuICAgICAgY29tcGxhaW50TWVzc2FnZXNBbGFybS5hZGRBbGFybUFjdGlvbihcbiAgICAgICAgcHJvcHM/LmNvbXBsYWludFJhdGVBbGFybT8uYWN0aW9uIHx8IHRoaXMuYWN0aW9uLFxuICAgICAgKVxuICAgIH1cbiAgfVxufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VzLWFsYXJtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbGFybXMvc2VzLWFsYXJtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBa0M7QUFDbEMseURBQXdEO0FBQ3hELHlDQUF3QztBQTJEeEM7OztHQUdHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFHakQsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxLQUFxQjs7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUE7UUFFMUIsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDakQsVUFBVSxFQUFFLHVCQUF1QjtZQUNuQyxTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsTUFBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxvQkFBb0IsMENBQUUsTUFBTSxtQ0FBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7U0FDeEUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7WUFDM0MsZ0JBQWdCLEVBQUUsK0JBQ2hCLE1BQUEsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsb0JBQW9CLDBDQUFFLFNBQVMsbUNBQUksR0FDNUMsR0FBRztZQUNILGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0I7WUFDeEUsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTTtZQUNwRCxTQUFTLEVBQUUsQ0FBQyxNQUFBLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG9CQUFvQiwwQ0FBRSxTQUFTLG1DQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUc7U0FDakUsQ0FBQyxDQUFBO1FBRUYsSUFBSSxNQUFBLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLG9CQUFvQiwwQ0FBRSxPQUFPLG1DQUFJLElBQUksRUFBRSxDQUFDO1lBQ2pELG9CQUFvQixDQUFDLGNBQWMsQ0FDakMsQ0FBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxvQkFBb0IsMENBQUUsTUFBTSxLQUFJLElBQUksQ0FBQyxNQUFNLENBQ25ELENBQUE7UUFDSCxDQUFDO1FBRUQsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDbkQsVUFBVSxFQUFFLDBCQUEwQjtZQUN0QyxTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsTUFBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxrQkFBa0IsMENBQUUsTUFBTSxtQ0FBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7U0FDdEUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUU7WUFDN0MsZ0JBQWdCLEVBQUUsa0NBQ2hCLE1BQUEsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsa0JBQWtCLDBDQUFFLFNBQVMsbUNBQUksSUFDMUMsR0FBRztZQUNILGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0I7WUFDeEUsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixTQUFTLEVBQUUsQ0FBQyxNQUFBLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGtCQUFrQiwwQ0FBRSxTQUFTLG1DQUFJLElBQUksQ0FBQyxHQUFHLEdBQUc7WUFDL0QsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU07U0FDckQsQ0FBQyxDQUFBO1FBRUYsSUFBSSxNQUFBLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGtCQUFrQiwwQ0FBRSxPQUFPLG1DQUFJLElBQUksRUFBRSxDQUFDO1lBQy9DLHNCQUFzQixDQUFDLGNBQWMsQ0FDbkMsQ0FBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxrQkFBa0IsMENBQUUsTUFBTSxLQUFJLElBQUksQ0FBQyxNQUFNLENBQ2pELENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbERELDhCQWtEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIlxuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VzQWxhcm1zUHJvcHMgZXh0ZW5kcyBjZGsuU3RhY2tQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXNcbiAgICovXG4gIGFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGFsYXJtIGZvciBoaWdoIHJhdGUgYm91bmNlZCBtZXNzYWdlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgQ29uZmlndXJlZCB3aXRoIHJlYXNvbmFibGUgZGVmYXVsdHMuXG4gICAqL1xuICBib3VuY2VkTWVzc2FnZXNBbGFybT86IHtcbiAgICAvKipcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAvKipcbiAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgKi9cbiAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgIC8qKlxuICAgICAqIEBkZWZhdWx0IDEwIG1pbnV0ZXNcbiAgICAgKi9cbiAgICBwZXJpb2Q/OiBjZGsuRHVyYXRpb25cbiAgICAvKipcbiAgICAgKiBUaHJlc2hvbGQgdmFsdWUgZm9yIGFsYXJtIGFzIGEgcGVyY2VudFxuICAgICAqIEBkZWZhdWx0IDIuNSglKVxuICAgICAqIDUlIGlzIHRoZSB0aHJlc2hvbGQgYXQgd2hpY2ggQVdTIGNvbnNpZGVycyBwdXR0aW5nIGFuIGFjY291bnQgdW5kZXIgcmV2aWV3XG4gICAgICovXG4gICAgdGhyZXNob2xkPzogbnVtYmVyXG4gIH1cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGFsYXJtIGZvciBoaWdoIGNvbXBsYWludCByYXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBDb25maWd1cmVkIHdpdGggc2FuZSBkZWZhdWx0cy5cbiAgICovXG4gIGNvbXBsYWludFJhdGVBbGFybT86IHtcbiAgICAvKipcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAvKipcbiAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgKi9cbiAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgIC8qKlxuICAgICAqIEBkZWZhdWx0IDEwIG1pbnV0ZXNcbiAgICAgKi9cbiAgICBwZXJpb2Q/OiBjZGsuRHVyYXRpb25cbiAgICAvKipcbiAgICAgKiBUaHJlc2hvbGQgdmFsdWUgZm9yIGFsYXJtIGFzIGEgcGVyY2VudFxuICAgICAqIEBkZWZhdWx0IDAuMDUoJSlcbiAgICAgKiAwLjEwJSBpcyB0aGUgdGhyZXNob2xkIGF0IHdoaWNoIEFXUyBjb25zaWRlcnMgcHV0dGluZyBhbiBhY2NvdW50IHVuZGVyIHJldmlld1xuICAgICAqL1xuICAgIHRocmVzaG9sZD86IG51bWJlclxuICB9XG59XG5cbi8qKlxuICpcbiAqIENvbnN0cnVjdCB0aGF0IGNvbmZpZ3VyZXMgdmFyaW91cyBzZW5zaWJsZSBDbG91ZFdhdGNoIGFsYXJtcyBmb3IgQVdTIFNFU1xuICovXG5leHBvcnQgY2xhc3MgU2VzQWxhcm1zIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTZXNBbGFybXNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIHRoaXMuYWN0aW9uID0gcHJvcHMuYWN0aW9uXG5cbiAgICBjb25zdCBib3VuY2VkTWVzc2FnZXNBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIlJlcHV0YXRpb24uQm91bmNlUmF0ZVwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9TRVNcIixcbiAgICAgIHN0YXRpc3RpYzogXCJNYXhpbXVtXCIsXG4gICAgICBwZXJpb2Q6IHByb3BzPy5ib3VuY2VkTWVzc2FnZXNBbGFybT8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5taW51dGVzKDEwKSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkJvdW5jZWRNZXNzYWdlc0FsYXJtXCIsIHtcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBUaGUgU0VTIGJvdW5jZSByYXRlIGlzIG92ZXIgJHtcbiAgICAgICAgcHJvcHM/LmJvdW5jZWRNZXNzYWdlc0FsYXJtPy50aHJlc2hvbGQgPz8gMi41XG4gICAgICB9JWAsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgICB0aHJlc2hvbGQ6IChwcm9wcz8uYm91bmNlZE1lc3NhZ2VzQWxhcm0/LnRocmVzaG9sZCA/PyAyLjUpIC8gMTAwLFxuICAgIH0pXG5cbiAgICBpZiAocHJvcHM/LmJvdW5jZWRNZXNzYWdlc0FsYXJtPy5lbmFibGVkID8/IHRydWUpIHtcbiAgICAgIGJvdW5jZWRNZXNzYWdlc0FsYXJtLmFkZEFsYXJtQWN0aW9uKFxuICAgICAgICBwcm9wcz8uYm91bmNlZE1lc3NhZ2VzQWxhcm0/LmFjdGlvbiB8fCB0aGlzLmFjdGlvbixcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBjb21wbGFpbnRNZXNzYWdlc0FsYXJtID0gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6IFwiUmVwdXRhdGlvbi5Db21wbGFpbnRSYXRlXCIsXG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL1NFU1wiLFxuICAgICAgc3RhdGlzdGljOiBcIk1heGltdW1cIixcbiAgICAgIHBlcmlvZDogcHJvcHM/LmNvbXBsYWludFJhdGVBbGFybT8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5taW51dGVzKDEwKSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkNvbXBsYWludE1lc3NhZ2VzQWxhcm1cIiwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYFRoZSBTRVMgY29tcGxhaW50IHJhdGUgaXMgb3ZlciAke1xuICAgICAgICBwcm9wcz8uY29tcGxhaW50UmF0ZUFsYXJtPy50aHJlc2hvbGQgPz8gMC4wNVxuICAgICAgfSVgLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICB0aHJlc2hvbGQ6IChwcm9wcz8uY29tcGxhaW50UmF0ZUFsYXJtPy50aHJlc2hvbGQgPz8gMC4wNSkgLyAxMDAsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuSUdOT1JFLFxuICAgIH0pXG5cbiAgICBpZiAocHJvcHM/LmNvbXBsYWludFJhdGVBbGFybT8uZW5hYmxlZCA/PyB0cnVlKSB7XG4gICAgICBjb21wbGFpbnRNZXNzYWdlc0FsYXJtLmFkZEFsYXJtQWN0aW9uKFxuICAgICAgICBwcm9wcz8uY29tcGxhaW50UmF0ZUFsYXJtPy5hY3Rpb24gfHwgdGhpcy5hY3Rpb24sXG4gICAgICApXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,11 +1,18 @@
1
1
  import * as constructs from "constructs";
2
2
  import * as cloudwatchActions from "aws-cdk-lib/aws-cloudwatch-actions";
3
3
  import * as sns from "aws-cdk-lib/aws-sns";
4
+ import * as secretsmanager from "aws-cdk-lib/aws-secretsmanager";
4
5
  export interface SlackAlarmProps {
5
6
  projectName: string;
6
7
  envName: string;
7
- slackChannel: string;
8
- slackUrl: string;
8
+ /**
9
+ * A plaintext secret containing the URL of a Slack incoming webhook.
10
+ * The webhook should be created through a Slack app, and only allows posting to one specific Slack channel.
11
+ * See Slack's official documentation (e.g., https://api.slack.com/messaging/webhooks) for more details.
12
+ *
13
+ * NOTE: Incoming webhooks created through legacy custom integrations in Slack are not supported.
14
+ */
15
+ slackWebhookUrlSecret: secretsmanager.ISecret;
9
16
  }
10
17
  /**
11
18
  * SNS Topic that can be used to action alarms, with a Lambda
@@ -22,15 +22,15 @@ class SlackAlarm extends constructs.Construct {
22
22
  description: "Receives CloudWatch Alarms through SNS and sends a formatted version to Slack",
23
23
  handler: "index.handler",
24
24
  memorySize: 128,
25
- runtime: lambda.Runtime.PYTHON_3_8,
25
+ runtime: lambda.Runtime.PYTHON_3_11,
26
26
  timeout: aws_cdk_lib_1.Duration.seconds(6),
27
27
  environment: {
28
- SLACK_URL: props.slackUrl,
29
- SLACK_CHANNEL: props.slackChannel,
28
+ SLACK_URL_SECRET_NAME: props.slackWebhookUrlSecret.secretName,
30
29
  PROJECT_NAME: props.projectName,
31
30
  ENVIRONMENT_NAME: props.envName,
32
31
  },
33
32
  });
33
+ props.slackWebhookUrlSecret.grantRead(slackLambda);
34
34
  slackLambda.addPermission("InvokePermission", {
35
35
  action: "lambda:InvokeFunction",
36
36
  principal: new iam.ServicePrincipal("sns.amazonaws.com"),
@@ -44,4 +44,4 @@ class SlackAlarm extends constructs.Construct {
44
44
  }
45
45
  }
46
46
  exports.SlackAlarm = SlackAlarm;
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2stYWxhcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zL3NsYWNrLWFsYXJtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF3QztBQUN4Qyx3RUFBdUU7QUFDdkUsMkNBQTBDO0FBQzFDLGlEQUFnRDtBQUNoRCwyQ0FBMEM7QUFDMUMsNkNBQXNDO0FBQ3RDLDZCQUE0QjtBQVM1Qjs7O0dBR0c7QUFDSCxNQUFhLFVBQVcsU0FBUSxVQUFVLENBQUMsU0FBUztJQUlsRCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBRTlDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRWpFLE1BQU0sV0FBVyxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3hELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsaUNBQWlDLENBQUMsQ0FDeEQ7WUFDRCxXQUFXLEVBQ1QsK0VBQStFO1lBQ2pGLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFVBQVUsRUFBRSxHQUFHO1lBQ2YsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUNsQyxPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzVCLFdBQVcsRUFBRTtnQkFDWCxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVE7Z0JBQ3pCLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWTtnQkFDakMsWUFBWSxFQUFFLEtBQUssQ0FBQyxXQUFXO2dCQUMvQixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsT0FBTzthQUNoQztTQUNGLENBQUMsQ0FBQTtRQUVGLFdBQVcsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLEVBQUU7WUFDNUMsTUFBTSxFQUFFLHVCQUF1QjtZQUMvQixTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUM7WUFDeEQsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUTtTQUNwQyxDQUFDLENBQUE7UUFFRixJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUN6QyxRQUFRLEVBQUUsV0FBVyxDQUFDLFdBQVc7WUFDakMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNO1lBQ3pDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVTtTQUN2QixDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0Y7QUF6Q0QsZ0NBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgKiBhcyBjbG91ZHdhdGNoQWN0aW9ucyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gtYWN0aW9uc1wiXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIlxuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCJcbmltcG9ydCAqIGFzIHNucyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNuc1wiXG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCJcblxuZXhwb3J0IGludGVyZmFjZSBTbGFja0FsYXJtUHJvcHMge1xuICBwcm9qZWN0TmFtZTogc3RyaW5nXG4gIGVudk5hbWU6IHN0cmluZ1xuICBzbGFja0NoYW5uZWw6IHN0cmluZ1xuICBzbGFja1VybDogc3RyaW5nXG59XG5cbi8qKlxuICogU05TIFRvcGljIHRoYXQgY2FuIGJlIHVzZWQgdG8gYWN0aW9uIGFsYXJtcywgd2l0aCBhIExhbWJkYVxuICogdGhhdCB3aWxsIHNlbmQgYSBtZXNzYWdlIHRvIFNsYWNrIGZvciB0aGUgYWxhcm0uXG4gKi9cbmV4cG9ydCBjbGFzcyBTbGFja0FsYXJtIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYWxhcm1Ub3BpYzogc25zLlRvcGljXG4gIHB1YmxpYyByZWFkb25seSBzbnNBY3Rpb246IGNsb3Vkd2F0Y2hBY3Rpb25zLlNuc0FjdGlvblxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNsYWNrQWxhcm1Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIHRoaXMuYWxhcm1Ub3BpYyA9IG5ldyBzbnMuVG9waWModGhpcywgXCJUb3BpY1wiKVxuXG4gICAgdGhpcy5zbnNBY3Rpb24gPSBuZXcgY2xvdWR3YXRjaEFjdGlvbnMuU25zQWN0aW9uKHRoaXMuYWxhcm1Ub3BpYylcblxuICAgIGNvbnN0IHNsYWNrTGFtYmRhID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBcIkZ1bmN0aW9uXCIsIHtcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChcbiAgICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi8uLi9hc3NldHMvc2xhY2stYWxhcm0tbGFtYmRhXCIpLFxuICAgICAgKSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlJlY2VpdmVzIENsb3VkV2F0Y2ggQWxhcm1zIHRocm91Z2ggU05TIGFuZCBzZW5kcyBhIGZvcm1hdHRlZCB2ZXJzaW9uIHRvIFNsYWNrXCIsXG4gICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgIG1lbW9yeVNpemU6IDEyOCxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzgsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDYpLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgU0xBQ0tfVVJMOiBwcm9wcy5zbGFja1VybCxcbiAgICAgICAgU0xBQ0tfQ0hBTk5FTDogcHJvcHMuc2xhY2tDaGFubmVsLFxuICAgICAgICBQUk9KRUNUX05BTUU6IHByb3BzLnByb2plY3ROYW1lLFxuICAgICAgICBFTlZJUk9OTUVOVF9OQU1FOiBwcm9wcy5lbnZOYW1lLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgc2xhY2tMYW1iZGEuYWRkUGVybWlzc2lvbihcIkludm9rZVBlcm1pc3Npb25cIiwge1xuICAgICAgYWN0aW9uOiBcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiLFxuICAgICAgcHJpbmNpcGFsOiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJzbnMuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIHNvdXJjZUFybjogdGhpcy5hbGFybVRvcGljLnRvcGljQXJuLFxuICAgIH0pXG5cbiAgICBuZXcgc25zLlN1YnNjcmlwdGlvbih0aGlzLCBcIlN1YnNjcmlwdGlvblwiLCB7XG4gICAgICBlbmRwb2ludDogc2xhY2tMYW1iZGEuZnVuY3Rpb25Bcm4sXG4gICAgICBwcm90b2NvbDogc25zLlN1YnNjcmlwdGlvblByb3RvY29sLkxBTUJEQSxcbiAgICAgIHRvcGljOiB0aGlzLmFsYXJtVG9waWMsXG4gICAgfSlcbiAgfVxufVxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2stYWxhcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zL3NsYWNrLWFsYXJtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF3QztBQUN4Qyx3RUFBdUU7QUFDdkUsMkNBQTBDO0FBQzFDLGlEQUFnRDtBQUNoRCwyQ0FBMEM7QUFDMUMsNkNBQXNDO0FBQ3RDLDZCQUE0QjtBQWdCNUI7OztHQUdHO0FBQ0gsTUFBYSxVQUFXLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFJbEQsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUU5QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUVqRSxNQUFNLFdBQVcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUN4RCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGlDQUFpQyxDQUFDLENBQ3hEO1lBQ0QsV0FBVyxFQUNULCtFQUErRTtZQUNqRixPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsR0FBRztZQUNmLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDbkMsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM1QixXQUFXLEVBQUU7Z0JBQ1gscUJBQXFCLEVBQUUsS0FBSyxDQUFDLHFCQUFxQixDQUFDLFVBQVU7Z0JBQzdELFlBQVksRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDL0IsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLE9BQU87YUFDaEM7U0FDRixDQUFDLENBQUE7UUFFRixLQUFLLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRWxELFdBQVcsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLEVBQUU7WUFDNUMsTUFBTSxFQUFFLHVCQUF1QjtZQUMvQixTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUM7WUFDeEQsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUTtTQUNwQyxDQUFDLENBQUE7UUFFRixJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUN6QyxRQUFRLEVBQUUsV0FBVyxDQUFDLFdBQVc7WUFDakMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNO1lBQ3pDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVTtTQUN2QixDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0Y7QUExQ0QsZ0NBMENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgKiBhcyBjbG91ZHdhdGNoQWN0aW9ucyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gtYWN0aW9uc1wiXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIlxuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCJcbmltcG9ydCAqIGFzIHNucyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNuc1wiXG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCAqIGFzIHNlY3JldHNtYW5hZ2VyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFNsYWNrQWxhcm1Qcm9wcyB7XG4gIHByb2plY3ROYW1lOiBzdHJpbmdcbiAgZW52TmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBBIHBsYWludGV4dCBzZWNyZXQgY29udGFpbmluZyB0aGUgVVJMIG9mIGEgU2xhY2sgaW5jb21pbmcgd2ViaG9vay5cbiAgICogVGhlIHdlYmhvb2sgc2hvdWxkIGJlIGNyZWF0ZWQgdGhyb3VnaCBhIFNsYWNrIGFwcCwgYW5kIG9ubHkgYWxsb3dzIHBvc3RpbmcgdG8gb25lIHNwZWNpZmljIFNsYWNrIGNoYW5uZWwuXG4gICAqIFNlZSBTbGFjaydzIG9mZmljaWFsIGRvY3VtZW50YXRpb24gKGUuZy4sIGh0dHBzOi8vYXBpLnNsYWNrLmNvbS9tZXNzYWdpbmcvd2ViaG9va3MpIGZvciBtb3JlIGRldGFpbHMuXG4gICAqXG4gICAqIE5PVEU6IEluY29taW5nIHdlYmhvb2tzIGNyZWF0ZWQgdGhyb3VnaCBsZWdhY3kgY3VzdG9tIGludGVncmF0aW9ucyBpbiBTbGFjayBhcmUgbm90IHN1cHBvcnRlZC5cbiAgICovXG4gIHNsYWNrV2ViaG9va1VybFNlY3JldDogc2VjcmV0c21hbmFnZXIuSVNlY3JldFxufVxuXG4vKipcbiAqIFNOUyBUb3BpYyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFjdGlvbiBhbGFybXMsIHdpdGggYSBMYW1iZGFcbiAqIHRoYXQgd2lsbCBzZW5kIGEgbWVzc2FnZSB0byBTbGFjayBmb3IgdGhlIGFsYXJtLlxuICovXG5leHBvcnQgY2xhc3MgU2xhY2tBbGFybSBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGFsYXJtVG9waWM6IHNucy5Ub3BpY1xuICBwdWJsaWMgcmVhZG9ubHkgc25zQWN0aW9uOiBjbG91ZHdhdGNoQWN0aW9ucy5TbnNBY3Rpb25cblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTbGFja0FsYXJtUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICB0aGlzLmFsYXJtVG9waWMgPSBuZXcgc25zLlRvcGljKHRoaXMsIFwiVG9waWNcIilcblxuICAgIHRoaXMuc25zQWN0aW9uID0gbmV3IGNsb3Vkd2F0Y2hBY3Rpb25zLlNuc0FjdGlvbih0aGlzLmFsYXJtVG9waWMpXG5cbiAgICBjb25zdCBzbGFja0xhbWJkYSA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgXCJGdW5jdGlvblwiLCB7XG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoXG4gICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi4vLi4vYXNzZXRzL3NsYWNrLWFsYXJtLWxhbWJkYVwiKSxcbiAgICAgICksXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSZWNlaXZlcyBDbG91ZFdhdGNoIEFsYXJtcyB0aHJvdWdoIFNOUyBhbmQgc2VuZHMgYSBmb3JtYXR0ZWQgdmVyc2lvbiB0byBTbGFja1wiLFxuICAgICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICBtZW1vcnlTaXplOiAxMjgsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNiksXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBTTEFDS19VUkxfU0VDUkVUX05BTUU6IHByb3BzLnNsYWNrV2ViaG9va1VybFNlY3JldC5zZWNyZXROYW1lLFxuICAgICAgICBQUk9KRUNUX05BTUU6IHByb3BzLnByb2plY3ROYW1lLFxuICAgICAgICBFTlZJUk9OTUVOVF9OQU1FOiBwcm9wcy5lbnZOYW1lLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgcHJvcHMuc2xhY2tXZWJob29rVXJsU2VjcmV0LmdyYW50UmVhZChzbGFja0xhbWJkYSlcblxuICAgIHNsYWNrTGFtYmRhLmFkZFBlcm1pc3Npb24oXCJJbnZva2VQZXJtaXNzaW9uXCIsIHtcbiAgICAgIGFjdGlvbjogXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25cIixcbiAgICAgIHByaW5jaXBhbDogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwic25zLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICBzb3VyY2VBcm46IHRoaXMuYWxhcm1Ub3BpYy50b3BpY0FybixcbiAgICB9KVxuXG4gICAgbmV3IHNucy5TdWJzY3JpcHRpb24odGhpcywgXCJTdWJzY3JpcHRpb25cIiwge1xuICAgICAgZW5kcG9pbnQ6IHNsYWNrTGFtYmRhLmZ1bmN0aW9uQXJuLFxuICAgICAgcHJvdG9jb2w6IHNucy5TdWJzY3JpcHRpb25Qcm90b2NvbC5MQU1CREEsXG4gICAgICB0b3BpYzogdGhpcy5hbGFybVRvcGljLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
@@ -19,4 +19,4 @@ else {
19
19
  console.error(e.stack || e.message || e);
20
20
  process.exitCode = 1;
21
21
  });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNyZWF0ZS1zbmFwc2hvdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL2Nkay1jcmVhdGUtc25hcHNob3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDRDQUEwRDtBQUUxRCxJQUFJLEdBQVcsQ0FBQTtBQUNmLElBQUksR0FBVyxDQUFBO0FBRWYseURBQXlEO0FBQ3pELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0lBQzVCLEdBQUcsR0FBRyxTQUFTLENBQUE7SUFDZixHQUFHLEdBQUcsZUFBZSxDQUFBO0NBQ3RCO0tBQU07SUFDTCxpREFBaUQ7SUFDakQsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDckIsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7Q0FDdEI7QUFFRCxJQUFBLHVDQUEyQixFQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNoRCxzRUFBc0U7SUFDdEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDeEMsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUE7QUFDdEIsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgeyBjcmVhdGVDbG91ZEFzc2VtYmx5U25hcHNob3QgfSBmcm9tIFwiLi4vc25hcHNob3RzXCJcblxubGV0IHNyYzogc3RyaW5nXG5sZXQgZHN0OiBzdHJpbmdcblxuLy8gSWYgbm8gYXJndW1lbnRzIGFyZSBnaXZlbiwgdXNlIHNvbWUgc2Vuc2libGUgZGVmYXVsdHMuXG5pZiAocHJvY2Vzcy5hcmd2Lmxlbmd0aCA9PSAyKSB7XG4gIHNyYyA9IFwiY2RrLm91dFwiXG4gIGRzdCA9IFwiX19zbmFwc2hvdHNfX1wiXG59IGVsc2Uge1xuICAvLyBJbiBOb2RlLCBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIHRoaXJkIGVsZW1lbnQuXG4gIHNyYyA9IHByb2Nlc3MuYXJndlsyXVxuICBkc3QgPSBwcm9jZXNzLmFyZ3ZbM11cbn1cblxuY3JlYXRlQ2xvdWRBc3NlbWJseVNuYXBzaG90KHNyYywgZHN0KS5jYXRjaCgoZSkgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzXG4gIGNvbnNvbGUuZXJyb3IoZS5zdGFjayB8fCBlLm1lc3NhZ2UgfHwgZSlcbiAgcHJvY2Vzcy5leGl0Q29kZSA9IDFcbn0pXG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNyZWF0ZS1zbmFwc2hvdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL2Nkay1jcmVhdGUtc25hcHNob3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDRDQUEwRDtBQUUxRCxJQUFJLEdBQVcsQ0FBQTtBQUNmLElBQUksR0FBVyxDQUFBO0FBRWYseURBQXlEO0FBQ3pELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDN0IsR0FBRyxHQUFHLFNBQVMsQ0FBQTtJQUNmLEdBQUcsR0FBRyxlQUFlLENBQUE7QUFDdkIsQ0FBQztLQUFNLENBQUM7SUFDTixpREFBaUQ7SUFDakQsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDckIsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDdkIsQ0FBQztBQUVELElBQUEsdUNBQTJCLEVBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ2hELHNFQUFzRTtJQUN0RSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUN4QyxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQTtBQUN0QixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCB7IGNyZWF0ZUNsb3VkQXNzZW1ibHlTbmFwc2hvdCB9IGZyb20gXCIuLi9zbmFwc2hvdHNcIlxuXG5sZXQgc3JjOiBzdHJpbmdcbmxldCBkc3Q6IHN0cmluZ1xuXG4vLyBJZiBubyBhcmd1bWVudHMgYXJlIGdpdmVuLCB1c2Ugc29tZSBzZW5zaWJsZSBkZWZhdWx0cy5cbmlmIChwcm9jZXNzLmFyZ3YubGVuZ3RoID09IDIpIHtcbiAgc3JjID0gXCJjZGsub3V0XCJcbiAgZHN0ID0gXCJfX3NuYXBzaG90c19fXCJcbn0gZWxzZSB7XG4gIC8vIEluIE5vZGUsIGZpcnN0IHBhcmFtZXRlciBpcyB0aGUgdGhpcmQgZWxlbWVudC5cbiAgc3JjID0gcHJvY2Vzcy5hcmd2WzJdXG4gIGRzdCA9IHByb2Nlc3MuYXJndlszXVxufVxuXG5jcmVhdGVDbG91ZEFzc2VtYmx5U25hcHNob3Qoc3JjLCBkc3QpLmNhdGNoKChlKSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgY29uc29sZS5lcnJvcihlLnN0YWNrIHx8IGUubWVzc2FnZSB8fCBlKVxuICBwcm9jZXNzLmV4aXRDb2RlID0gMVxufSlcbiJdfQ==
@@ -30,4 +30,4 @@ main(namespace).catch((e) => {
30
30
  console.error(e.stack || e.message || e);
31
31
  process.exitCode = 1;
32
32
  });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtcGlwZWxpbmUtdmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9mZXRjaC1waXBlbGluZS12YXJpYWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUJBQXdCO0FBQ3hCLDBEQUEyRTtBQUUzRSxJQUFJLFNBQWlCLENBQUE7QUFFckIseURBQXlEO0FBQ3pELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0lBQzVCLFNBQVMsR0FBRyxTQUFTLENBQUE7Q0FDdEI7S0FBTTtJQUNMLGlEQUFpRDtJQUNqRCxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtDQUM1QjtBQUVELEtBQUssVUFBVSxJQUFJLENBQUMsU0FBaUI7SUFDbkMsTUFBTSxTQUFTLEdBQUc7UUFDaEIsMkRBQTJEO1FBQzNELHdEQUF3RDtRQUN4RCw4Q0FBOEM7UUFDOUMsa0JBQWtCLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7UUFDNUMsR0FBRyxDQUFDLE1BQU0sSUFBQSwwQ0FBOEIsRUFDdEMsZUFBZSxTQUFTLHNCQUFzQixDQUMvQyxDQUFDO0tBQ0gsQ0FBQTtJQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUV6RCxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtJQUNyRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7QUFDMUMsQ0FBQztBQUVELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUMxQixzRUFBc0U7SUFDdEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDeEMsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUE7QUFDdEIsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIlxuaW1wb3J0IHsgZ2V0VmFyaWFibGVzRnJvbVBhcmFtZXRlclN0b3JlIH0gZnJvbSBcIi4uL2Nkay1waXBlbGluZXMvdmFyaWFibGVzXCJcblxubGV0IG5hbWVzcGFjZTogc3RyaW5nXG5cbi8vIElmIG5vIGFyZ3VtZW50cyBhcmUgZ2l2ZW4sIHVzZSBzb21lIHNlbnNpYmxlIGRlZmF1bHRzLlxuaWYgKHByb2Nlc3MuYXJndi5sZW5ndGggPT0gMikge1xuICBuYW1lc3BhY2UgPSBcImRlZmF1bHRcIlxufSBlbHNlIHtcbiAgLy8gSW4gTm9kZSwgZmlyc3QgcGFyYW1ldGVyIGlzIHRoZSB0aGlyZCBlbGVtZW50LlxuICBuYW1lc3BhY2UgPSBwcm9jZXNzLmFyZ3ZbMl1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbihuYW1lc3BhY2U6IHN0cmluZykge1xuICBjb25zdCB2YXJpYWJsZXMgPSB7XG4gICAgLy8gU3BlY2lhbCB2YXJpYWJsZSB0aGF0IGNhbiBiZSB1c2VkIHdoZW4gcmVhZGluZyB2YXJpYWJsZXNcbiAgICAvLyB0byBlbnN1cmUgaXQgaXMgbm90IHN0YWxlLiBJbiB0aGUgcGlwZWxpbmUsIHZhcmlhYmxlc1xuICAgIC8vIHdpbGwgbmV2ZXIgYmUgc3RhbGUsIGJ1dCBsb2NhbGx5IGl0IGNhbiBiZS5cbiAgICB2YXJpYWJsZXNUaW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAuLi4oYXdhaXQgZ2V0VmFyaWFibGVzRnJvbVBhcmFtZXRlclN0b3JlKFxuICAgICAgYC9saWZsaWctY2RrLyR7bmFtZXNwYWNlfS9waXBlbGluZS12YXJpYWJsZXMvYCxcbiAgICApKSxcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IEpTT04uc3RyaW5naWZ5KHZhcmlhYmxlcywgdW5kZWZpbmVkLCBcIiAgXCIpXG5cbiAgZnMud3JpdGVGaWxlU3luYyhcInZhcmlhYmxlcy5qc29uXCIsIHJlc3VsdClcbiAgY29uc29sZS5sb2coXCJSZXRyaWV2ZWQgYW5kIHNhdmVkIHRvIHZhcmlhYmxlcy5qc29uOlwiKVxuICBjb25zb2xlLmxvZyhyZXN1bHQucmVwbGFjZSgvXi9nbSwgXCIgIFwiKSlcbn1cblxubWFpbihuYW1lc3BhY2UpLmNhdGNoKChlKSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3NcbiAgY29uc29sZS5lcnJvcihlLnN0YWNrIHx8IGUubWVzc2FnZSB8fCBlKVxuICBwcm9jZXNzLmV4aXRDb2RlID0gMVxufSlcbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtcGlwZWxpbmUtdmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9mZXRjaC1waXBlbGluZS12YXJpYWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUJBQXdCO0FBQ3hCLDBEQUEyRTtBQUUzRSxJQUFJLFNBQWlCLENBQUE7QUFFckIseURBQXlEO0FBQ3pELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDN0IsU0FBUyxHQUFHLFNBQVMsQ0FBQTtBQUN2QixDQUFDO0tBQU0sQ0FBQztJQUNOLGlEQUFpRDtJQUNqRCxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUM3QixDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUksQ0FBQyxTQUFpQjtJQUNuQyxNQUFNLFNBQVMsR0FBRztRQUNoQiwyREFBMkQ7UUFDM0Qsd0RBQXdEO1FBQ3hELDhDQUE4QztRQUM5QyxrQkFBa0IsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtRQUM1QyxHQUFHLENBQUMsTUFBTSxJQUFBLDBDQUE4QixFQUN0QyxlQUFlLFNBQVMsc0JBQXNCLENBQy9DLENBQUM7S0FDSCxDQUFBO0lBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBRXpELEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFBO0lBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtBQUMxQyxDQUFDO0FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQzFCLHNFQUFzRTtJQUN0RSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUN4QyxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQTtBQUN0QixDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiXG5pbXBvcnQgeyBnZXRWYXJpYWJsZXNGcm9tUGFyYW1ldGVyU3RvcmUgfSBmcm9tIFwiLi4vY2RrLXBpcGVsaW5lcy92YXJpYWJsZXNcIlxuXG5sZXQgbmFtZXNwYWNlOiBzdHJpbmdcblxuLy8gSWYgbm8gYXJndW1lbnRzIGFyZSBnaXZlbiwgdXNlIHNvbWUgc2Vuc2libGUgZGVmYXVsdHMuXG5pZiAocHJvY2Vzcy5hcmd2Lmxlbmd0aCA9PSAyKSB7XG4gIG5hbWVzcGFjZSA9IFwiZGVmYXVsdFwiXG59IGVsc2Uge1xuICAvLyBJbiBOb2RlLCBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIHRoaXJkIGVsZW1lbnQuXG4gIG5hbWVzcGFjZSA9IHByb2Nlc3MuYXJndlsyXVxufVxuXG5hc3luYyBmdW5jdGlvbiBtYWluKG5hbWVzcGFjZTogc3RyaW5nKSB7XG4gIGNvbnN0IHZhcmlhYmxlcyA9IHtcbiAgICAvLyBTcGVjaWFsIHZhcmlhYmxlIHRoYXQgY2FuIGJlIHVzZWQgd2hlbiByZWFkaW5nIHZhcmlhYmxlc1xuICAgIC8vIHRvIGVuc3VyZSBpdCBpcyBub3Qgc3RhbGUuIEluIHRoZSBwaXBlbGluZSwgdmFyaWFibGVzXG4gICAgLy8gd2lsbCBuZXZlciBiZSBzdGFsZSwgYnV0IGxvY2FsbHkgaXQgY2FuIGJlLlxuICAgIHZhcmlhYmxlc1RpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIC4uLihhd2FpdCBnZXRWYXJpYWJsZXNGcm9tUGFyYW1ldGVyU3RvcmUoXG4gICAgICBgL2xpZmxpZy1jZGsvJHtuYW1lc3BhY2V9L3BpcGVsaW5lLXZhcmlhYmxlcy9gLFxuICAgICkpLFxuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0gSlNPTi5zdHJpbmdpZnkodmFyaWFibGVzLCB1bmRlZmluZWQsIFwiICBcIilcblxuICBmcy53cml0ZUZpbGVTeW5jKFwidmFyaWFibGVzLmpzb25cIiwgcmVzdWx0KVxuICBjb25zb2xlLmxvZyhcIlJldHJpZXZlZCBhbmQgc2F2ZWQgdG8gdmFyaWFibGVzLmpzb246XCIpXG4gIGNvbnNvbGUubG9nKHJlc3VsdC5yZXBsYWNlKC9eL2dtLCBcIiAgXCIpKVxufVxuXG5tYWluKG5hbWVzcGFjZSkuY2F0Y2goKGUpID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2Vzc1xuICBjb25zb2xlLmVycm9yKGUuc3RhY2sgfHwgZS5tZXNzYWdlIHx8IGUpXG4gIHByb2Nlc3MuZXhpdENvZGUgPSAxXG59KVxuIl19