@aws-cdk/aws-medialive-alpha 2.268.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +60888 -0
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +524 -0
- package/LICENSE +201 -0
- package/NOTICE +2 -0
- package/README.md +1297 -0
- package/grants.json +27 -0
- package/lib/audio-codec-settings.d.ts +901 -0
- package/lib/audio-codec-settings.js +1098 -0
- package/lib/audio-selector.d.ts +170 -0
- package/lib/audio-selector.js +306 -0
- package/lib/avail-settings.d.ts +231 -0
- package/lib/avail-settings.js +226 -0
- package/lib/caption-selector.d.ts +234 -0
- package/lib/caption-selector.js +413 -0
- package/lib/caption-settings.d.ts +349 -0
- package/lib/caption-settings.js +482 -0
- package/lib/channel-features.d.ts +106 -0
- package/lib/channel-features.js +85 -0
- package/lib/channel-placement-group.d.ts +73 -0
- package/lib/channel-placement-group.js +132 -0
- package/lib/channel.d.ts +687 -0
- package/lib/channel.js +1096 -0
- package/lib/cluster.d.ts +129 -0
- package/lib/cluster.js +158 -0
- package/lib/color-correction.d.ts +39 -0
- package/lib/color-correction.js +29 -0
- package/lib/destinations.d.ts +242 -0
- package/lib/destinations.js +455 -0
- package/lib/encode-configuration.d.ts +615 -0
- package/lib/encode-configuration.js +629 -0
- package/lib/enums.d.ts +698 -0
- package/lib/enums.js +1045 -0
- package/lib/file-location.d.ts +65 -0
- package/lib/file-location.js +150 -0
- package/lib/framerate.d.ts +31 -0
- package/lib/framerate.js +71 -0
- package/lib/index.d.ts +26 -0
- package/lib/index.js +43 -0
- package/lib/input-attachment.d.ts +319 -0
- package/lib/input-attachment.js +228 -0
- package/lib/input-security-group.d.ts +51 -0
- package/lib/input-security-group.js +123 -0
- package/lib/input-specification.d.ts +111 -0
- package/lib/input-specification.js +181 -0
- package/lib/input.d.ts +505 -0
- package/lib/input.js +803 -0
- package/lib/m2ts-settings.d.ts +421 -0
- package/lib/m2ts-settings.js +469 -0
- package/lib/m3u8-settings.d.ts +272 -0
- package/lib/m3u8-settings.js +304 -0
- package/lib/medialive-grants.generated.d.ts +30 -0
- package/lib/medialive-grants.generated.js +92 -0
- package/lib/network.d.ts +83 -0
- package/lib/network.js +132 -0
- package/lib/output-group.d.ts +924 -0
- package/lib/output-group.js +941 -0
- package/lib/outputs.d.ts +304 -0
- package/lib/outputs.js +598 -0
- package/lib/sdi-source.d.ts +124 -0
- package/lib/sdi-source.js +180 -0
- package/lib/shared.d.ts +44 -0
- package/lib/shared.js +146 -0
- package/lib/video-codec-settings.d.ts +1500 -0
- package/lib/video-codec-settings.js +1722 -0
- package/lib/video-selection.d.ts +92 -0
- package/lib/video-selection.js +95 -0
- package/package.json +135 -0
- package/rosetta/_generated.ts-fixture +6 -0
- package/rosetta/default.ts-fixture +21 -0
|
@@ -0,0 +1,469 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.M2tsSettings = exports.DvbSdtOutputMode = exports.M2tsTimedMetadataBehavior = exports.M2tsSegmentationStyle = exports.M2tsSegmentationMarkers = exports.M2tsScte35Control = exports.M2tsEbpPlacement = exports.M2tsEbpAudioInterval = exports.M2tsAbsentInputAudioBehavior = exports.M2tsCcDescriptor = exports.M2tsNielsenId3Behavior = exports.M2tsEbif = exports.M2tsKlv = exports.M2tsAribCaptionsPidControl = exports.M2tsArib = exports.M2tsEsRateInPes = exports.M2tsPcrControl = exports.M2tsAudioStreamType = exports.M2tsAudioBufferModel = exports.M2tsBufferModel = exports.M2tsRateMode = void 0;
|
|
4
|
+
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/** The output bitrate mode of the transport stream. */
|
|
7
|
+
class M2tsRateMode {
|
|
8
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsRateMode", version: "2.268.0-alpha.0" };
|
|
9
|
+
/** Constant bitrate — inserts null packets to fill the configured bitrate. */
|
|
10
|
+
static CBR = new M2tsRateMode('CBR');
|
|
11
|
+
/** Variable bitrate — the configured bitrate acts as the maximum. */
|
|
12
|
+
static VBR = new M2tsRateMode('VBR');
|
|
13
|
+
/** A value not yet modelled by AWS CDK. */
|
|
14
|
+
static of(value) {
|
|
15
|
+
return new M2tsRateMode(value);
|
|
16
|
+
}
|
|
17
|
+
/** The underlying string value passed to CloudFormation. */
|
|
18
|
+
value;
|
|
19
|
+
constructor(value) {
|
|
20
|
+
this.value = value;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.M2tsRateMode = M2tsRateMode;
|
|
24
|
+
/** The buffer model used for the transport stream. */
|
|
25
|
+
class M2tsBufferModel {
|
|
26
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsBufferModel", version: "2.268.0-alpha.0" };
|
|
27
|
+
/** Uses the multiplex buffer model for accurate interleaving. */
|
|
28
|
+
static MULTIPLEX = new M2tsBufferModel('MULTIPLEX');
|
|
29
|
+
/** Can lead to lower latency, but low-memory devices might not be able to play back the stream without interruptions. */
|
|
30
|
+
static NONE = new M2tsBufferModel('NONE');
|
|
31
|
+
/** A value not yet modelled by AWS CDK. */
|
|
32
|
+
static of(value) {
|
|
33
|
+
return new M2tsBufferModel(value);
|
|
34
|
+
}
|
|
35
|
+
/** The underlying string value passed to CloudFormation. */
|
|
36
|
+
value;
|
|
37
|
+
constructor(value) {
|
|
38
|
+
this.value = value;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.M2tsBufferModel = M2tsBufferModel;
|
|
42
|
+
/** The buffer model used for Dolby Digital audio. */
|
|
43
|
+
class M2tsAudioBufferModel {
|
|
44
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsAudioBufferModel", version: "2.268.0-alpha.0" };
|
|
45
|
+
/** ATSC buffer model. */
|
|
46
|
+
static ATSC = new M2tsAudioBufferModel('ATSC');
|
|
47
|
+
/** DVB buffer model. */
|
|
48
|
+
static DVB = new M2tsAudioBufferModel('DVB');
|
|
49
|
+
/** A value not yet modelled by AWS CDK. */
|
|
50
|
+
static of(value) {
|
|
51
|
+
return new M2tsAudioBufferModel(value);
|
|
52
|
+
}
|
|
53
|
+
/** The underlying string value passed to CloudFormation. */
|
|
54
|
+
value;
|
|
55
|
+
constructor(value) {
|
|
56
|
+
this.value = value;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.M2tsAudioBufferModel = M2tsAudioBufferModel;
|
|
60
|
+
/** The stream type used for audio elementary streams. */
|
|
61
|
+
class M2tsAudioStreamType {
|
|
62
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsAudioStreamType", version: "2.268.0-alpha.0" };
|
|
63
|
+
/** ATSC — stream type 0x81 for AC3, 0x87 for EAC3. */
|
|
64
|
+
static ATSC = new M2tsAudioStreamType('ATSC');
|
|
65
|
+
/** DVB — stream type 0x06. */
|
|
66
|
+
static DVB = new M2tsAudioStreamType('DVB');
|
|
67
|
+
/** A value not yet modelled by AWS CDK. */
|
|
68
|
+
static of(value) {
|
|
69
|
+
return new M2tsAudioStreamType(value);
|
|
70
|
+
}
|
|
71
|
+
/** The underlying string value passed to CloudFormation. */
|
|
72
|
+
value;
|
|
73
|
+
constructor(value) {
|
|
74
|
+
this.value = value;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.M2tsAudioStreamType = M2tsAudioStreamType;
|
|
78
|
+
/** Controls insertion of the Program Clock Reference (PCR). */
|
|
79
|
+
class M2tsPcrControl {
|
|
80
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsPcrControl", version: "2.268.0-alpha.0" };
|
|
81
|
+
/** Insert PCR at the configured `pcrPeriod`. */
|
|
82
|
+
static CONFIGURED_PCR_PERIOD = new M2tsPcrControl('CONFIGURED_PCR_PERIOD');
|
|
83
|
+
/** Insert a PCR for every Packetized Elementary Stream (PES) header. */
|
|
84
|
+
static PCR_EVERY_PES_PACKET = new M2tsPcrControl('PCR_EVERY_PES_PACKET');
|
|
85
|
+
/** A value not yet modelled by AWS CDK. */
|
|
86
|
+
static of(value) {
|
|
87
|
+
return new M2tsPcrControl(value);
|
|
88
|
+
}
|
|
89
|
+
/** The underlying string value passed to CloudFormation. */
|
|
90
|
+
value;
|
|
91
|
+
constructor(value) {
|
|
92
|
+
this.value = value;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.M2tsPcrControl = M2tsPcrControl;
|
|
96
|
+
/** Whether to include the ES Rate field in the PES header. */
|
|
97
|
+
class M2tsEsRateInPes {
|
|
98
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsEsRateInPes", version: "2.268.0-alpha.0" };
|
|
99
|
+
/** Exclude the ES Rate field. */
|
|
100
|
+
static EXCLUDE = new M2tsEsRateInPes('EXCLUDE');
|
|
101
|
+
/** Include the ES Rate field. */
|
|
102
|
+
static INCLUDE = new M2tsEsRateInPes('INCLUDE');
|
|
103
|
+
/** A value not yet modelled by AWS CDK. */
|
|
104
|
+
static of(value) {
|
|
105
|
+
return new M2tsEsRateInPes(value);
|
|
106
|
+
}
|
|
107
|
+
/** The underlying string value passed to CloudFormation. */
|
|
108
|
+
value;
|
|
109
|
+
constructor(value) {
|
|
110
|
+
this.value = value;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.M2tsEsRateInPes = M2tsEsRateInPes;
|
|
114
|
+
/** ARIB-compliant field muxing. */
|
|
115
|
+
class M2tsArib {
|
|
116
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsArib", version: "2.268.0-alpha.0" };
|
|
117
|
+
/** Disabled. */
|
|
118
|
+
static DISABLED = new M2tsArib('DISABLED');
|
|
119
|
+
/** Enabled — uses ARIB-compliant field muxing and removes the video descriptor. */
|
|
120
|
+
static ENABLED = new M2tsArib('ENABLED');
|
|
121
|
+
/** A value not yet modelled by AWS CDK. */
|
|
122
|
+
static of(value) {
|
|
123
|
+
return new M2tsArib(value);
|
|
124
|
+
}
|
|
125
|
+
/** The underlying string value passed to CloudFormation. */
|
|
126
|
+
value;
|
|
127
|
+
constructor(value) {
|
|
128
|
+
this.value = value;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
exports.M2tsArib = M2tsArib;
|
|
132
|
+
/** How the ARIB Captions PID is selected. */
|
|
133
|
+
class M2tsAribCaptionsPidControl {
|
|
134
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsAribCaptionsPidControl", version: "2.268.0-alpha.0" };
|
|
135
|
+
/** Auto-select the PID from unused PIDs. */
|
|
136
|
+
static AUTO = new M2tsAribCaptionsPidControl('AUTO');
|
|
137
|
+
/** Use the configured `aribCaptionsPid`. */
|
|
138
|
+
static USE_CONFIGURED = new M2tsAribCaptionsPidControl('USE_CONFIGURED');
|
|
139
|
+
/** A value not yet modelled by AWS CDK. */
|
|
140
|
+
static of(value) {
|
|
141
|
+
return new M2tsAribCaptionsPidControl(value);
|
|
142
|
+
}
|
|
143
|
+
/** The underlying string value passed to CloudFormation. */
|
|
144
|
+
value;
|
|
145
|
+
constructor(value) {
|
|
146
|
+
this.value = value;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
exports.M2tsAribCaptionsPidControl = M2tsAribCaptionsPidControl;
|
|
150
|
+
/** KLV data passthrough behavior. */
|
|
151
|
+
class M2tsKlv {
|
|
152
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsKlv", version: "2.268.0-alpha.0" };
|
|
153
|
+
/** Do not pass KLV data through. */
|
|
154
|
+
static NONE = new M2tsKlv('NONE');
|
|
155
|
+
/** Pass KLV data from the input through to the output. */
|
|
156
|
+
static PASSTHROUGH = new M2tsKlv('PASSTHROUGH');
|
|
157
|
+
/** A value not yet modelled by AWS CDK. */
|
|
158
|
+
static of(value) {
|
|
159
|
+
return new M2tsKlv(value);
|
|
160
|
+
}
|
|
161
|
+
/** The underlying string value passed to CloudFormation. */
|
|
162
|
+
value;
|
|
163
|
+
constructor(value) {
|
|
164
|
+
this.value = value;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
exports.M2tsKlv = M2tsKlv;
|
|
168
|
+
/** EBIF data passthrough behavior. */
|
|
169
|
+
class M2tsEbif {
|
|
170
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsEbif", version: "2.268.0-alpha.0" };
|
|
171
|
+
/** Do not pass EBIF data through. */
|
|
172
|
+
static NONE = new M2tsEbif('NONE');
|
|
173
|
+
/** Pass EBIF data from the input through to the output. */
|
|
174
|
+
static PASSTHROUGH = new M2tsEbif('PASSTHROUGH');
|
|
175
|
+
/** A value not yet modelled by AWS CDK. */
|
|
176
|
+
static of(value) {
|
|
177
|
+
return new M2tsEbif(value);
|
|
178
|
+
}
|
|
179
|
+
/** The underlying string value passed to CloudFormation. */
|
|
180
|
+
value;
|
|
181
|
+
constructor(value) {
|
|
182
|
+
this.value = value;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
exports.M2tsEbif = M2tsEbif;
|
|
186
|
+
/** Nielsen ID3 passthrough behavior. */
|
|
187
|
+
class M2tsNielsenId3Behavior {
|
|
188
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsNielsenId3Behavior", version: "2.268.0-alpha.0" };
|
|
189
|
+
/** Do not insert Nielsen ID3 tags. */
|
|
190
|
+
static NO_PASSTHROUGH = new M2tsNielsenId3Behavior('NO_PASSTHROUGH');
|
|
191
|
+
/** Nielsen inaudible tones for media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the output. */
|
|
192
|
+
static PASSTHROUGH = new M2tsNielsenId3Behavior('PASSTHROUGH');
|
|
193
|
+
/** A value not yet modelled by AWS CDK. */
|
|
194
|
+
static of(value) {
|
|
195
|
+
return new M2tsNielsenId3Behavior(value);
|
|
196
|
+
}
|
|
197
|
+
/** The underlying string value passed to CloudFormation. */
|
|
198
|
+
value;
|
|
199
|
+
constructor(value) {
|
|
200
|
+
this.value = value;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
exports.M2tsNielsenId3Behavior = M2tsNielsenId3Behavior;
|
|
204
|
+
/** Whether to generate the captionServiceDescriptor in the PMT. */
|
|
205
|
+
class M2tsCcDescriptor {
|
|
206
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsCcDescriptor", version: "2.268.0-alpha.0" };
|
|
207
|
+
/** Disabled. */
|
|
208
|
+
static DISABLED = new M2tsCcDescriptor('DISABLED');
|
|
209
|
+
/** Enabled. */
|
|
210
|
+
static ENABLED = new M2tsCcDescriptor('ENABLED');
|
|
211
|
+
/** A value not yet modelled by AWS CDK. */
|
|
212
|
+
static of(value) {
|
|
213
|
+
return new M2tsCcDescriptor(value);
|
|
214
|
+
}
|
|
215
|
+
/** The underlying string value passed to CloudFormation. */
|
|
216
|
+
value;
|
|
217
|
+
constructor(value) {
|
|
218
|
+
this.value = value;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
exports.M2tsCcDescriptor = M2tsCcDescriptor;
|
|
222
|
+
/** Behavior when the selected input audio stream is removed from the input. */
|
|
223
|
+
class M2tsAbsentInputAudioBehavior {
|
|
224
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsAbsentInputAudioBehavior", version: "2.268.0-alpha.0" };
|
|
225
|
+
/** Remove the output audio streams from the program. */
|
|
226
|
+
static DROP = new M2tsAbsentInputAudioBehavior('DROP');
|
|
227
|
+
/** Output encoded silence when not connected to an active input stream. */
|
|
228
|
+
static ENCODE_SILENCE = new M2tsAbsentInputAudioBehavior('ENCODE_SILENCE');
|
|
229
|
+
/** A value not yet modelled by AWS CDK. */
|
|
230
|
+
static of(value) {
|
|
231
|
+
return new M2tsAbsentInputAudioBehavior(value);
|
|
232
|
+
}
|
|
233
|
+
/** The underlying string value passed to CloudFormation. */
|
|
234
|
+
value;
|
|
235
|
+
constructor(value) {
|
|
236
|
+
this.value = value;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
exports.M2tsAbsentInputAudioBehavior = M2tsAbsentInputAudioBehavior;
|
|
240
|
+
/** Controls placement of audio Encoder Boundary Point (EBP) markers. */
|
|
241
|
+
class M2tsEbpAudioInterval {
|
|
242
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsEbpAudioInterval", version: "2.268.0-alpha.0" };
|
|
243
|
+
/** Add audio EBP markers to partitions 3 and 4 at a fixed interval. */
|
|
244
|
+
static VIDEO_AND_FIXED_INTERVALS = new M2tsEbpAudioInterval('VIDEO_AND_FIXED_INTERVALS');
|
|
245
|
+
/** Follow the video EBP interval. */
|
|
246
|
+
static VIDEO_INTERVAL = new M2tsEbpAudioInterval('VIDEO_INTERVAL');
|
|
247
|
+
/** A value not yet modelled by AWS CDK. */
|
|
248
|
+
static of(value) {
|
|
249
|
+
return new M2tsEbpAudioInterval(value);
|
|
250
|
+
}
|
|
251
|
+
/** The underlying string value passed to CloudFormation. */
|
|
252
|
+
value;
|
|
253
|
+
constructor(value) {
|
|
254
|
+
this.value = value;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
exports.M2tsEbpAudioInterval = M2tsEbpAudioInterval;
|
|
258
|
+
/** Controls placement of EBP markers on audio PIDs. */
|
|
259
|
+
class M2tsEbpPlacement {
|
|
260
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsEbpPlacement", version: "2.268.0-alpha.0" };
|
|
261
|
+
/** Place EBP markers on the video PID and all audio PIDs. */
|
|
262
|
+
static VIDEO_AND_AUDIO_PIDS = new M2tsEbpPlacement('VIDEO_AND_AUDIO_PIDS');
|
|
263
|
+
/** Place EBP markers only on the video PID. */
|
|
264
|
+
static VIDEO_PID = new M2tsEbpPlacement('VIDEO_PID');
|
|
265
|
+
/** A value not yet modelled by AWS CDK. */
|
|
266
|
+
static of(value) {
|
|
267
|
+
return new M2tsEbpPlacement(value);
|
|
268
|
+
}
|
|
269
|
+
/** The underlying string value passed to CloudFormation. */
|
|
270
|
+
value;
|
|
271
|
+
constructor(value) {
|
|
272
|
+
this.value = value;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
exports.M2tsEbpPlacement = M2tsEbpPlacement;
|
|
276
|
+
/** SCTE-35 passthrough behavior. */
|
|
277
|
+
class M2tsScte35Control {
|
|
278
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsScte35Control", version: "2.268.0-alpha.0" };
|
|
279
|
+
/** Do not pass SCTE-35 signals through. */
|
|
280
|
+
static NONE = new M2tsScte35Control('NONE');
|
|
281
|
+
/** Pass SCTE-35 signals from the input through to the output. */
|
|
282
|
+
static PASSTHROUGH = new M2tsScte35Control('PASSTHROUGH');
|
|
283
|
+
/** A value not yet modelled by AWS CDK. */
|
|
284
|
+
static of(value) {
|
|
285
|
+
return new M2tsScte35Control(value);
|
|
286
|
+
}
|
|
287
|
+
/** The underlying string value passed to CloudFormation. */
|
|
288
|
+
value;
|
|
289
|
+
constructor(value) {
|
|
290
|
+
this.value = value;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
exports.M2tsScte35Control = M2tsScte35Control;
|
|
294
|
+
/** The type of segmentation markers to insert. */
|
|
295
|
+
class M2tsSegmentationMarkers {
|
|
296
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsSegmentationMarkers", version: "2.268.0-alpha.0" };
|
|
297
|
+
/** No segmentation markers. */
|
|
298
|
+
static NONE = new M2tsSegmentationMarkers('NONE');
|
|
299
|
+
/** Set the Random Access Indicator (RAI) bit in the adaptation field. */
|
|
300
|
+
static RAI_SEGSTART = new M2tsSegmentationMarkers('RAI_SEGSTART');
|
|
301
|
+
/** Set the RAI bit and add the current timecode in the private data bytes. */
|
|
302
|
+
static RAI_ADAPT = new M2tsSegmentationMarkers('RAI_ADAPT');
|
|
303
|
+
/** Insert PAT and PMT tables at the start of segments. */
|
|
304
|
+
static PSI_SEGSTART = new M2tsSegmentationMarkers('PSI_SEGSTART');
|
|
305
|
+
/** Add Encoder Boundary Point information (OC-SP-EBP-I01-130118). */
|
|
306
|
+
static EBP = new M2tsSegmentationMarkers('EBP');
|
|
307
|
+
/** Add Encoder Boundary Point information using the legacy proprietary format. */
|
|
308
|
+
static EBP_LEGACY = new M2tsSegmentationMarkers('EBP_LEGACY');
|
|
309
|
+
/** A value not yet modelled by AWS CDK. */
|
|
310
|
+
static of(value) {
|
|
311
|
+
return new M2tsSegmentationMarkers(value);
|
|
312
|
+
}
|
|
313
|
+
/** The underlying string value passed to CloudFormation. */
|
|
314
|
+
value;
|
|
315
|
+
constructor(value) {
|
|
316
|
+
this.value = value;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
exports.M2tsSegmentationMarkers = M2tsSegmentationMarkers;
|
|
320
|
+
/** How segmentation markers respond to avails truncating a segment. */
|
|
321
|
+
class M2tsSegmentationStyle {
|
|
322
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsSegmentationStyle", version: "2.268.0-alpha.0" };
|
|
323
|
+
/** Do not reset the segmentation cadence after a truncated segment. */
|
|
324
|
+
static MAINTAIN_CADENCE = new M2tsSegmentationStyle('MAINTAIN_CADENCE');
|
|
325
|
+
/** Reset the segmentation cadence after a truncated segment. */
|
|
326
|
+
static RESET_CADENCE = new M2tsSegmentationStyle('RESET_CADENCE');
|
|
327
|
+
/** A value not yet modelled by AWS CDK. */
|
|
328
|
+
static of(value) {
|
|
329
|
+
return new M2tsSegmentationStyle(value);
|
|
330
|
+
}
|
|
331
|
+
/** The underlying string value passed to CloudFormation. */
|
|
332
|
+
value;
|
|
333
|
+
constructor(value) {
|
|
334
|
+
this.value = value;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
exports.M2tsSegmentationStyle = M2tsSegmentationStyle;
|
|
338
|
+
/** Timed metadata passthrough behavior. */
|
|
339
|
+
class M2tsTimedMetadataBehavior {
|
|
340
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsTimedMetadataBehavior", version: "2.268.0-alpha.0" };
|
|
341
|
+
/** Do not pass timed metadata through. */
|
|
342
|
+
static NO_PASSTHROUGH = new M2tsTimedMetadataBehavior('NO_PASSTHROUGH');
|
|
343
|
+
/** Pass timed metadata from the input through to the output. */
|
|
344
|
+
static PASSTHROUGH = new M2tsTimedMetadataBehavior('PASSTHROUGH');
|
|
345
|
+
/** A value not yet modelled by AWS CDK. */
|
|
346
|
+
static of(value) {
|
|
347
|
+
return new M2tsTimedMetadataBehavior(value);
|
|
348
|
+
}
|
|
349
|
+
/** The underlying string value passed to CloudFormation. */
|
|
350
|
+
value;
|
|
351
|
+
constructor(value) {
|
|
352
|
+
this.value = value;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
exports.M2tsTimedMetadataBehavior = M2tsTimedMetadataBehavior;
|
|
356
|
+
/** How DVB Service Description Table (SDT) information is inserted. */
|
|
357
|
+
class DvbSdtOutputMode {
|
|
358
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.DvbSdtOutputMode", version: "2.268.0-alpha.0" };
|
|
359
|
+
/** Copy SDT information from the input stream to the output stream. */
|
|
360
|
+
static SDT_FOLLOW = new DvbSdtOutputMode('SDT_FOLLOW');
|
|
361
|
+
/** Copy SDT from the input if present, otherwise use the configured values. */
|
|
362
|
+
static SDT_FOLLOW_IF_PRESENT = new DvbSdtOutputMode('SDT_FOLLOW_IF_PRESENT');
|
|
363
|
+
/** Use the user-defined SDT information. */
|
|
364
|
+
static SDT_MANUAL = new DvbSdtOutputMode('SDT_MANUAL');
|
|
365
|
+
/** Do not include SDT information in the output. */
|
|
366
|
+
static SDT_NONE = new DvbSdtOutputMode('SDT_NONE');
|
|
367
|
+
/** A value not yet modelled by AWS CDK. */
|
|
368
|
+
static of(value) {
|
|
369
|
+
return new DvbSdtOutputMode(value);
|
|
370
|
+
}
|
|
371
|
+
/** The underlying string value passed to CloudFormation. */
|
|
372
|
+
value;
|
|
373
|
+
constructor(value) {
|
|
374
|
+
this.value = value;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
exports.DvbSdtOutputMode = DvbSdtOutputMode;
|
|
378
|
+
/**
|
|
379
|
+
* MPEG-2 transport stream (M2TS) container settings for an MPEG-TS output.
|
|
380
|
+
*
|
|
381
|
+
* Use `M2tsSettings.of()` to configure the transport stream produced by a UDP, Archive, SRT, or
|
|
382
|
+
* MediaConnect Router output. Omitting it entirely uses MediaLive's service defaults.
|
|
383
|
+
*/
|
|
384
|
+
class M2tsSettings {
|
|
385
|
+
props;
|
|
386
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.M2tsSettings", version: "2.268.0-alpha.0" };
|
|
387
|
+
/** Create M2TS container settings. */
|
|
388
|
+
static of(props) {
|
|
389
|
+
try {
|
|
390
|
+
jsiiDeprecationWarnings._aws_cdk_aws_medialive_alpha_M2tsSettingsProps(props);
|
|
391
|
+
}
|
|
392
|
+
catch (error) {
|
|
393
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
394
|
+
Error.captureStackTrace(error, this.of);
|
|
395
|
+
}
|
|
396
|
+
throw error;
|
|
397
|
+
}
|
|
398
|
+
return new M2tsSettings(props);
|
|
399
|
+
}
|
|
400
|
+
constructor(props) {
|
|
401
|
+
this.props = props;
|
|
402
|
+
}
|
|
403
|
+
/** @internal */
|
|
404
|
+
_bind() {
|
|
405
|
+
const p = this.props;
|
|
406
|
+
return {
|
|
407
|
+
absentInputAudioBehavior: p.absentInputAudioBehavior?.value,
|
|
408
|
+
arib: p.arib?.value,
|
|
409
|
+
aribCaptionsPid: p.aribCaptionsPid,
|
|
410
|
+
aribCaptionsPidControl: p.aribCaptionsPidControl?.value,
|
|
411
|
+
audioBufferModel: p.audioBufferModel?.value,
|
|
412
|
+
audioFramesPerPes: p.audioFramesPerPes,
|
|
413
|
+
audioPids: p.audioPids,
|
|
414
|
+
audioStreamType: p.audioStreamType?.value,
|
|
415
|
+
bitrate: p.bitrate?.toBps(),
|
|
416
|
+
bufferModel: p.bufferModel?.value,
|
|
417
|
+
ccDescriptor: p.ccDescriptor?.value,
|
|
418
|
+
dvbNitSettings: p.dvbNitSettings ? {
|
|
419
|
+
networkId: p.dvbNitSettings.networkId,
|
|
420
|
+
networkName: p.dvbNitSettings.networkName,
|
|
421
|
+
repInterval: p.dvbNitSettings.repInterval?.toMilliseconds(),
|
|
422
|
+
} : undefined,
|
|
423
|
+
dvbSdtSettings: p.dvbSdtSettings ? {
|
|
424
|
+
outputSdt: p.dvbSdtSettings.outputSdt?.value,
|
|
425
|
+
repInterval: p.dvbSdtSettings.repInterval?.toMilliseconds(),
|
|
426
|
+
serviceName: p.dvbSdtSettings.serviceName,
|
|
427
|
+
serviceProviderName: p.dvbSdtSettings.serviceProviderName,
|
|
428
|
+
} : undefined,
|
|
429
|
+
dvbSubPids: p.dvbSubPids,
|
|
430
|
+
dvbTdtSettings: p.dvbTdtSettings ? {
|
|
431
|
+
repInterval: p.dvbTdtSettings.repInterval?.toMilliseconds(),
|
|
432
|
+
} : undefined,
|
|
433
|
+
dvbTeletextPid: p.dvbTeletextPid,
|
|
434
|
+
ebif: p.ebif?.value,
|
|
435
|
+
ebpAudioInterval: p.ebpAudioInterval?.value,
|
|
436
|
+
ebpLookaheadMs: p.ebpLookahead?.toMilliseconds(),
|
|
437
|
+
ebpPlacement: p.ebpPlacement?.value,
|
|
438
|
+
esRateInPes: p.esRateInPes?.value,
|
|
439
|
+
etvPlatformPid: p.etvPlatformPid,
|
|
440
|
+
etvSignalPid: p.etvSignalPid,
|
|
441
|
+
fragmentTime: p.fragmentTime?.toSeconds(),
|
|
442
|
+
klv: p.klv?.value,
|
|
443
|
+
klvDataPids: p.klvDataPids,
|
|
444
|
+
nielsenId3Behavior: p.nielsenId3Behavior?.value,
|
|
445
|
+
nullPacketBitrate: p.nullPacketBitrate?.toBps(),
|
|
446
|
+
patInterval: p.patInterval?.toMilliseconds(),
|
|
447
|
+
pcrControl: p.pcrControl?.value,
|
|
448
|
+
pcrPeriod: p.pcrPeriod?.toMilliseconds(),
|
|
449
|
+
pcrPid: p.pcrPid,
|
|
450
|
+
pmtInterval: p.pmtInterval?.toMilliseconds(),
|
|
451
|
+
pmtPid: p.pmtPid,
|
|
452
|
+
programNum: p.programNum,
|
|
453
|
+
rateMode: p.rateMode?.value,
|
|
454
|
+
scte27Pids: p.scte27Pids,
|
|
455
|
+
scte35Control: p.scte35Control?.value,
|
|
456
|
+
scte35Pid: p.scte35Pid,
|
|
457
|
+
scte35PrerollPullupMilliseconds: p.scte35PrerollPullup?.toMilliseconds(),
|
|
458
|
+
segmentationMarkers: p.segmentationMarkers?.value,
|
|
459
|
+
segmentationStyle: p.segmentationStyle?.value,
|
|
460
|
+
segmentationTime: p.segmentationTime?.toSeconds(),
|
|
461
|
+
timedMetadataBehavior: p.timedMetadataBehavior?.value,
|
|
462
|
+
timedMetadataPid: p.timedMetadataPid,
|
|
463
|
+
transportStreamId: p.transportStreamId,
|
|
464
|
+
videoPid: p.videoPid,
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
exports.M2tsSettings = M2tsSettings;
|
|
469
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibTJ0cy1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm0ydHMtc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQSx1REFBdUQ7QUFDdkQsTUFBYSxZQUFZOztJQUN2Qiw4RUFBOEU7SUFDdkUsTUFBTSxDQUFVLEdBQUcsR0FBRyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxxRUFBcUU7SUFDOUQsTUFBTSxDQUFVLEdBQUcsR0FBRyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVyRCwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDaEM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILG9DQWlCQztBQUVELHNEQUFzRDtBQUN0RCxNQUFhLGVBQWU7O0lBQzFCLGlFQUFpRTtJQUMxRCxNQUFNLENBQVUsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BFLHlIQUF5SDtJQUNsSCxNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTFELDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNuQztJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsMENBaUJDO0FBRUQscURBQXFEO0FBQ3JELE1BQWEsb0JBQW9COztJQUMvQix5QkFBeUI7SUFDbEIsTUFBTSxDQUFVLElBQUksR0FB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QUMsV0FBVyxFQUFFLGNBQWMsRUFBRTtZQUM1QyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07WUFDaEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO1lBQ3hCLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUs7WUFDM0IsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO1lBQ3hCLGFBQWEsRUFBRSxDQUFDLENBQUMsYUFBYSxFQUFFLEtBQUs7WUFDckMsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTO1lBQ3RCLCtCQUErQixFQUFFLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLEVBQUU7WUFDeEUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLEtBQUs7WUFDakQsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEtBQUs7WUFDN0MsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRTtZQUNqRCxxQkFBcUIsRUFBRSxDQUFDLENBQUMscUJBQXFCLEVBQUUsS0FBSztZQUNyRCxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO1lBQ3BDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxpQkFBaUI7WUFDdEMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1NBQ3JCLENBQUM7S0FDSDs7QUF2RUgsb0NBd0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCaXRyYXRlLCBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlIHsgQ2ZuQ2hhbm5lbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYWxpdmUnO1xuXG4vKiogVGhlIG91dHB1dCBiaXRyYXRlIG1vZGUgb2YgdGhlIHRyYW5zcG9ydCBzdHJlYW0uICovXG5leHBvcnQgY2xhc3MgTTJ0c1JhdGVNb2RlIHtcbiAgLyoqIENvbnN0YW50IGJpdHJhdGUg4oCUIGluc2VydHMgbnVsbCBwYWNrZXRzIHRvIGZpbGwgdGhlIGNvbmZpZ3VyZWQgYml0cmF0ZS4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDQlIgPSBuZXcgTTJ0c1JhdGVNb2RlKCdDQlInKTtcbiAgLyoqIFZhcmlhYmxlIGJpdHJhdGUg4oCUIHRoZSBjb25maWd1cmVkIGJpdHJhdGUgYWN0cyBhcyB0aGUgbWF4aW11bS4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWQlIgPSBuZXcgTTJ0c1JhdGVNb2RlKCdWQlInKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IE0ydHNSYXRlTW9kZSB7XG4gICAgcmV0dXJuIG5ldyBNMnRzUmF0ZU1vZGUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogVGhlIGJ1ZmZlciBtb2RlbCB1c2VkIGZvciB0aGUgdHJhbnNwb3J0IHN0cmVhbS4gKi9cbmV4cG9ydCBjbGFzcyBNMnRzQnVmZmVyTW9kZWwge1xuICAvKiogVXNlcyB0aGUgbXVsdGlwbGV4IGJ1ZmZlciBtb2RlbCBmb3IgYWNjdXJhdGUgaW50ZXJsZWF2aW5nLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1VTFRJUExFWCA9IG5ldyBNMnRzQnVmZmVyTW9kZWwoJ01VTFRJUExFWCcpO1xuICAvKiogQ2FuIGxlYWQgdG8gbG93ZXIgbGF0ZW5jeSwgYnV0IGxvdy1tZW1vcnkgZGV2aWNlcyBtaWdodCBub3QgYmUgYWJsZSB0byBwbGF5IGJhY2sgdGhlIHN0cmVhbSB3aXRob3V0IGludGVycnVwdGlvbnMuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ORSA9IG5ldyBNMnRzQnVmZmVyTW9kZWwoJ05PTkUnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IE0ydHNCdWZmZXJNb2RlbCB7XG4gICAgcmV0dXJuIG5ldyBNMnRzQnVmZmVyTW9kZWwodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogVGhlIGJ1ZmZlciBtb2RlbCB1c2VkIGZvciBEb2xieSBEaWdpdGFsIGF1ZGlvLiAqL1xuZXhwb3J0IGNsYXNzIE0ydHNBdWRpb0J1ZmZlck1vZGVsIHtcbiAgLyoqIEFUU0MgYnVmZmVyIG1vZGVsLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFUU0MgPSBuZXcgTTJ0c0F1ZGlvQnVmZmVyTW9kZWwoJ0FUU0MnKTtcbiAgLyoqIERWQiBidWZmZXIgbW9kZWwuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRFZCID0gbmV3IE0ydHNBdWRpb0J1ZmZlck1vZGVsKCdEVkInKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IE0ydHNBdWRpb0J1ZmZlck1vZGVsIHtcbiAgICByZXR1cm4gbmV3IE0ydHNBdWRpb0J1ZmZlck1vZGVsKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIFRoZSBzdHJlYW0gdHlwZSB1c2VkIGZvciBhdWRpbyBlbGVtZW50YXJ5IHN0cmVhbXMuICovXG5leHBvcnQgY2xhc3MgTTJ0c0F1ZGlvU3RyZWFtVHlwZSB7XG4gIC8qKiBBVFNDIOKAlCBzdHJlYW0gdHlwZSAweDgxIGZvciBBQzMsIDB4ODcgZm9yIEVBQzMuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVRTQyA9IG5ldyBNMnRzQXVkaW9TdHJlYW1UeXBlKCdBVFNDJyk7XG4gIC8qKiBEVkIg4oCUIHN0cmVhbSB0eXBlIDB4MDYuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRFZCID0gbmV3IE0ydHNBdWRpb1N0cmVhbVR5cGUoJ0RWQicpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogTTJ0c0F1ZGlvU3RyZWFtVHlwZSB7XG4gICAgcmV0dXJuIG5ldyBNMnRzQXVkaW9TdHJlYW1UeXBlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIENvbnRyb2xzIGluc2VydGlvbiBvZiB0aGUgUHJvZ3JhbSBDbG9jayBSZWZlcmVuY2UgKFBDUikuICovXG5leHBvcnQgY2xhc3MgTTJ0c1BjckNvbnRyb2wge1xuICAvKiogSW5zZXJ0IFBDUiBhdCB0aGUgY29uZmlndXJlZCBgcGNyUGVyaW9kYC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT05GSUdVUkVEX1BDUl9QRVJJT0QgPSBuZXcgTTJ0c1BjckNvbnRyb2woJ0NPTkZJR1VSRURfUENSX1BFUklPRCcpO1xuICAvKiogSW5zZXJ0IGEgUENSIGZvciBldmVyeSBQYWNrZXRpemVkIEVsZW1lbnRhcnkgU3RyZWFtIChQRVMpIGhlYWRlci4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQ1JfRVZFUllfUEVTX1BBQ0tFVCA9IG5ldyBNMnRzUGNyQ29udHJvbCgnUENSX0VWRVJZX1BFU19QQUNLRVQnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IE0ydHNQY3JDb250cm9sIHtcbiAgICByZXR1cm4gbmV3IE0ydHNQY3JDb250cm9sKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIFdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgRVMgUmF0ZSBmaWVsZCBpbiB0aGUgUEVTIGhlYWRlci4gKi9cbmV4cG9ydCBjbGFzcyBNMnRzRXNSYXRlSW5QZXMge1xuICAvKiogRXhjbHVkZSB0aGUgRVMgUmF0ZSBmaWVsZC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFWENMVURFID0gbmV3IE0ydHNFc1JhdGVJblBlcygnRVhDTFVERScpO1xuICAvKiogSW5jbHVkZSB0aGUgRVMgUmF0ZSBmaWVsZC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTkNMVURFID0gbmV3IE0ydHNFc1JhdGVJblBlcygnSU5DTFVERScpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogTTJ0c0VzUmF0ZUluUGVzIHtcbiAgICByZXR1cm4gbmV3IE0ydHNFc1JhdGVJblBlcyh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBBUklCLWNvbXBsaWFudCBmaWVsZCBtdXhpbmcuICovXG5leHBvcnQgY2xhc3MgTTJ0c0FyaWIge1xuICAvKiogRGlzYWJsZWQuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRElTQUJMRUQgPSBuZXcgTTJ0c0FyaWIoJ0RJU0FCTEVEJyk7XG4gIC8qKiBFbmFibGVkIOKAlCB1c2VzIEFSSUItY29tcGxpYW50IGZpZWxkIG11eGluZyBhbmQgcmVtb3ZlcyB0aGUgdmlkZW8gZGVzY3JpcHRvci4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFTkFCTEVEID0gbmV3IE0ydHNBcmliKCdFTkFCTEVEJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBNMnRzQXJpYiB7XG4gICAgcmV0dXJuIG5ldyBNMnRzQXJpYih2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBIb3cgdGhlIEFSSUIgQ2FwdGlvbnMgUElEIGlzIHNlbGVjdGVkLiAqL1xuZXhwb3J0IGNsYXNzIE0ydHNBcmliQ2FwdGlvbnNQaWRDb250cm9sIHtcbiAgLyoqIEF1dG8tc2VsZWN0IHRoZSBQSUQgZnJvbSB1bnVzZWQgUElEcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRPID0gbmV3IE0ydHNBcmliQ2FwdGlvbnNQaWRDb250cm9sKCdBVVRPJyk7XG4gIC8qKiBVc2UgdGhlIGNvbmZpZ3VyZWQgYGFyaWJDYXB0aW9uc1BpZGAuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVNFX0NPTkZJR1VSRUQgPSBuZXcgTTJ0c0FyaWJDYXB0aW9uc1BpZENvbnRyb2woJ1VTRV9DT05GSUdVUkVEJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBNMnRzQXJpYkNhcHRpb25zUGlkQ29udHJvbCB7XG4gICAgcmV0dXJuIG5ldyBNMnRzQXJpYkNhcHRpb25zUGlkQ29udHJvbCh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBLTFYgZGF0YSBwYXNzdGhyb3VnaCBiZWhhdmlvci4gKi9cbmV4cG9ydCBjbGFzcyBNMnRzS2x2IHtcbiAgLyoqIERvIG5vdCBwYXNzIEtMViBkYXRhIHRocm91Z2guICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ORSA9IG5ldyBNMnRzS2x2KCdOT05FJyk7XG4gIC8qKiBQYXNzIEtMViBkYXRhIGZyb20gdGhlIGlucHV0IHRocm91Z2ggdG8gdGhlIG91dHB1dC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVNTVEhST1VHSCA9IG5ldyBNMnRzS2x2KCdQQVNTVEhST1VHSCcpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogTTJ0c0tsdiB7XG4gICAgcmV0dXJuIG5ldyBNMnRzS2x2KHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIEVCSUYgZGF0YSBwYXNzdGhyb3VnaCBiZWhhdmlvci4gKi9cbmV4cG9ydCBjbGFzcyBNMnRzRWJpZiB7XG4gIC8qKiBEbyBub3QgcGFzcyBFQklGIGRhdGEgdGhyb3VnaC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT05FID0gbmV3IE0ydHNFYmlmKCdOT05FJyk7XG4gIC8qKiBQYXNzIEVCSUYgZGF0YSBmcm9tIHRoZSBpbnB1dCB0aHJvdWdoIHRvIHRoZSBvdXRwdXQuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFTU1RIUk9VR0ggPSBuZXcgTTJ0c0ViaWYoJ1BBU1NUSFJPVUdIJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBNMnRzRWJpZiB7XG4gICAgcmV0dXJuIG5ldyBNMnRzRWJpZih2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBOaWVsc2VuIElEMyBwYXNzdGhyb3VnaCBiZWhhdmlvci4gKi9cbmV4cG9ydCBjbGFzcyBNMnRzTmllbHNlbklkM0JlaGF2aW9yIHtcbiAgLyoqIERvIG5vdCBpbnNlcnQgTmllbHNlbiBJRDMgdGFncy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT19QQVNTVEhST1VHSCA9IG5ldyBNMnRzTmllbHNlbklkM0JlaGF2aW9yKCdOT19QQVNTVEhST1VHSCcpO1xuICAvKiogTmllbHNlbiBpbmF1ZGlibGUgdG9uZXMgZm9yIG1lZGlhIHRyYWNraW5nIHdpbGwgYmUgZGV0ZWN0ZWQgaW4gdGhlIGlucHV0IGF1ZGlvIGFuZCBhbiBlcXVpdmFsZW50IElEMyB0YWcgd2lsbCBiZSBpbnNlcnRlZCBpbiB0aGUgb3V0cHV0LiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBU1NUSFJPVUdIID0gbmV3IE0ydHNOaWVsc2VuSWQzQmVoYXZpb3IoJ1BBU1NUSFJPVUdIJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBNMnRzTmllbHNlbklkM0JlaGF2aW9yIHtcbiAgICByZXR1cm4gbmV3IE0ydHNOaWVsc2VuSWQzQmVoYXZpb3IodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogV2hldGhlciB0byBnZW5lcmF0ZSB0aGUgY2FwdGlvblNlcnZpY2VEZXNjcmlwdG9yIGluIHRoZSBQTVQuICovXG5leHBvcnQgY2xhc3MgTTJ0c0NjRGVzY3JpcHRvciB7XG4gIC8qKiBEaXNhYmxlZC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBESVNBQkxFRCA9IG5ldyBNMnRzQ2NEZXNjcmlwdG9yKCdESVNBQkxFRCcpO1xuICAvKiogRW5hYmxlZC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFTkFCTEVEID0gbmV3IE0ydHNDY0Rlc2NyaXB0b3IoJ0VOQUJMRUQnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IE0ydHNDY0Rlc2NyaXB0b3Ige1xuICAgIHJldHVybiBuZXcgTTJ0c0NjRGVzY3JpcHRvcih2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBCZWhhdmlvciB3aGVuIHRoZSBzZWxlY3RlZCBpbnB1dCBhdWRpbyBzdHJlYW0gaXMgcmVtb3ZlZCBmcm9tIHRoZSBpbnB1dC4gKi9cbmV4cG9ydCBjbGFzcyBNMnRzQWJzZW50SW5wdXRBdWRpb0JlaGF2aW9yIHtcbiAgLyoqIFJlbW92ZSB0aGUgb3V0cHV0IGF1ZGlvIHN0cmVhbXMgZnJvbSB0aGUgcHJvZ3JhbS4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBEUk9QID0gbmV3IE0ydHNBYnNlbnRJbnB1dEF1ZGlvQmVoYXZpb3IoJ0RST1AnKTtcbiAgLyoqIE91dHB1dCBlbmNvZGVkIHNpbGVuY2Ugd2hlbiBub3QgY29ubmVjdGVkIHRvIGFuIGFjdGl2ZSBpbnB1dCBzdHJlYW0uICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRU5DT0RFX1NJTEVOQ0UgPSBuZXcgTTJ0c0Fic2VudElucHV0QXVkaW9CZWhhdmlvcignRU5DT0RFX1NJTEVOQ0UnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IE0ydHNBYnNlbnRJbnB1dEF1ZGlvQmVoYXZpb3Ige1xuICAgIHJldHVybiBuZXcgTTJ0c0Fic2VudElucHV0QXVkaW9CZWhhdmlvcih2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBDb250cm9scyBwbGFjZW1lbnQgb2YgYXVkaW8gRW5jb2RlciBCb3VuZGFyeSBQb2ludCAoRUJQKSBtYXJrZXJzLiAqL1xuZXhwb3J0IGNsYXNzIE0ydHNFYnBBdWRpb0ludGVydmFsIHtcbiAgLyoqIEFkZCBhdWRpbyBFQlAgbWFya2VycyB0byBwYXJ0aXRpb25zIDMgYW5kIDQgYXQgYSBmaXhlZCBpbnRlcnZhbC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWSURFT19BTkRfRklYRURfSU5URVJWQUxTID0gbmV3IE0ydHNFYnBBdWRpb0ludGVydmFsKCdWSURFT19BTkRfRklYRURfSU5URVJWQUxTJyk7XG4gIC8qKiBGb2xsb3cgdGhlIHZpZGVvIEVCUCBpbnRlcnZhbC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWSURFT19JTlRFUlZBTCA9IG5ldyBNMnRzRWJwQXVkaW9JbnRlcnZhbCgnVklERU9fSU5URVJWQUwnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IE0ydHNFYnBBdWRpb0ludGVydmFsIHtcbiAgICByZXR1cm4gbmV3IE0ydHNFYnBBdWRpb0ludGVydmFsKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIENvbnRyb2xzIHBsYWNlbWVudCBvZiBFQlAgbWFya2VycyBvbiBhdWRpbyBQSURzLiAqL1xuZXhwb3J0IGNsYXNzIE0ydHNFYnBQbGFjZW1lbnQge1xuICAvKiogUGxhY2UgRUJQIG1hcmtlcnMgb24gdGhlIHZpZGVvIFBJRCBhbmQgYWxsIGF1ZGlvIFBJRHMuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVklERU9fQU5EX0FVRElPX1BJRFMgPSBuZXcgTTJ0c0VicFBsYWNlbWVudCgnVklERU9fQU5EX0FVRElPX1BJRFMnKTtcbiAgLyoqIFBsYWNlIEVCUCBtYXJrZXJzIG9ubHkgb24gdGhlIHZpZGVvIFBJRC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWSURFT19QSUQgPSBuZXcgTTJ0c0VicFBsYWNlbWVudCgnVklERU9fUElEJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBNMnRzRWJwUGxhY2VtZW50IHtcbiAgICByZXR1cm4gbmV3IE0ydHNFYnBQbGFjZW1lbnQodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogU0NURS0zNSBwYXNzdGhyb3VnaCBiZWhhdmlvci4gKi9cbmV4cG9ydCBjbGFzcyBNMnRzU2N0ZTM1Q29udHJvbCB7XG4gIC8qKiBEbyBub3QgcGFzcyBTQ1RFLTM1IHNpZ25hbHMgdGhyb3VnaC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT05FID0gbmV3IE0ydHNTY3RlMzVDb250cm9sKCdOT05FJyk7XG4gIC8qKiBQYXNzIFNDVEUtMzUgc2lnbmFscyBmcm9tIHRoZSBpbnB1dCB0aHJvdWdoIHRvIHRoZSBvdXRwdXQuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFTU1RIUk9VR0ggPSBuZXcgTTJ0c1NjdGUzNUNvbnRyb2woJ1BBU1NUSFJPVUdIJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBNMnRzU2N0ZTM1Q29udHJvbCB7XG4gICAgcmV0dXJuIG5ldyBNMnRzU2N0ZTM1Q29udHJvbCh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBUaGUgdHlwZSBvZiBzZWdtZW50YXRpb24gbWFya2VycyB0byBpbnNlcnQuICovXG5leHBvcnQgY2xhc3MgTTJ0c1NlZ21lbnRhdGlvbk1hcmtlcnMge1xuICAvKiogTm8gc2VnbWVudGF0aW9uIG1hcmtlcnMuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ORSA9IG5ldyBNMnRzU2VnbWVudGF0aW9uTWFya2VycygnTk9ORScpO1xuICAvKiogU2V0IHRoZSBSYW5kb20gQWNjZXNzIEluZGljYXRvciAoUkFJKSBiaXQgaW4gdGhlIGFkYXB0YXRpb24gZmllbGQuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkFJX1NFR1NUQVJUID0gbmV3IE0ydHNTZWdtZW50YXRpb25NYXJrZXJzKCdSQUlfU0VHU1RBUlQnKTtcbiAgLyoqIFNldCB0aGUgUkFJIGJpdCBhbmQgYWRkIHRoZSBjdXJyZW50IHRpbWVjb2RlIGluIHRoZSBwcml2YXRlIGRhdGEgYnl0ZXMuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkFJX0FEQVBUID0gbmV3IE0ydHNTZWdtZW50YXRpb25NYXJrZXJzKCdSQUlfQURBUFQnKTtcbiAgLyoqIEluc2VydCBQQVQgYW5kIFBNVCB0YWJsZXMgYXQgdGhlIHN0YXJ0IG9mIHNlZ21lbnRzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBTSV9TRUdTVEFSVCA9IG5ldyBNMnRzU2VnbWVudGF0aW9uTWFya2VycygnUFNJX1NFR1NUQVJUJyk7XG4gIC8qKiBBZGQgRW5jb2RlciBCb3VuZGFyeSBQb2ludCBpbmZvcm1hdGlvbiAoT0MtU1AtRUJQLUkwMS0xMzAxMTgpLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVCUCA9IG5ldyBNMnRzU2VnbWVudGF0aW9uTWFya2VycygnRUJQJyk7XG4gIC8qKiBBZGQgRW5jb2RlciBCb3VuZGFyeSBQb2ludCBpbmZvcm1hdGlvbiB1c2luZyB0aGUgbGVnYWN5IHByb3ByaWV0YXJ5IGZvcm1hdC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFQlBfTEVHQUNZID0gbmV3IE0ydHNTZWdtZW50YXRpb25NYXJrZXJzKCdFQlBfTEVHQUNZJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBNMnRzU2VnbWVudGF0aW9uTWFya2VycyB7XG4gICAgcmV0dXJuIG5ldyBNMnRzU2VnbWVudGF0aW9uTWFya2Vycyh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBIb3cgc2VnbWVudGF0aW9uIG1hcmtlcnMgcmVzcG9uZCB0byBhdmFpbHMgdHJ1bmNhdGluZyBhIHNlZ21lbnQuICovXG5leHBvcnQgY2xhc3MgTTJ0c1NlZ21lbnRhdGlvblN0eWxlIHtcbiAgLyoqIERvIG5vdCByZXNldCB0aGUgc2VnbWVudGF0aW9uIGNhZGVuY2UgYWZ0ZXIgYSB0cnVuY2F0ZWQgc2VnbWVudC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNQUlOVEFJTl9DQURFTkNFID0gbmV3IE0ydHNTZWdtZW50YXRpb25TdHlsZSgnTUFJTlRBSU5fQ0FERU5DRScpO1xuICAvKiogUmVzZXQgdGhlIHNlZ21lbnRhdGlvbiBjYWRlbmNlIGFmdGVyIGEgdHJ1bmNhdGVkIHNlZ21lbnQuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkVTRVRfQ0FERU5DRSA9IG5ldyBNMnRzU2VnbWVudGF0aW9uU3R5bGUoJ1JFU0VUX0NBREVOQ0UnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IE0ydHNTZWdtZW50YXRpb25TdHlsZSB7XG4gICAgcmV0dXJuIG5ldyBNMnRzU2VnbWVudGF0aW9uU3R5bGUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogVGltZWQgbWV0YWRhdGEgcGFzc3Rocm91Z2ggYmVoYXZpb3IuICovXG5leHBvcnQgY2xhc3MgTTJ0c1RpbWVkTWV0YWRhdGFCZWhhdmlvciB7XG4gIC8qKiBEbyBub3QgcGFzcyB0aW1lZCBtZXRhZGF0YSB0aHJvdWdoLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PX1BBU1NUSFJPVUdIID0gbmV3IE0ydHNUaW1lZE1ldGFkYXRhQmVoYXZpb3IoJ05PX1BBU1NUSFJPVUdIJyk7XG4gIC8qKiBQYXNzIHRpbWVkIG1ldGFkYXRhIGZyb20gdGhlIGlucHV0IHRocm91Z2ggdG8gdGhlIG91dHB1dC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVNTVEhST1VHSCA9IG5ldyBNMnRzVGltZWRNZXRhZGF0YUJlaGF2aW9yKCdQQVNTVEhST1VHSCcpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogTTJ0c1RpbWVkTWV0YWRhdGFCZWhhdmlvciB7XG4gICAgcmV0dXJuIG5ldyBNMnRzVGltZWRNZXRhZGF0YUJlaGF2aW9yKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIEhvdyBEVkIgU2VydmljZSBEZXNjcmlwdGlvbiBUYWJsZSAoU0RUKSBpbmZvcm1hdGlvbiBpcyBpbnNlcnRlZC4gKi9cbmV4cG9ydCBjbGFzcyBEdmJTZHRPdXRwdXRNb2RlIHtcbiAgLyoqIENvcHkgU0RUIGluZm9ybWF0aW9uIGZyb20gdGhlIGlucHV0IHN0cmVhbSB0byB0aGUgb3V0cHV0IHN0cmVhbS4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTRFRfRk9MTE9XID0gbmV3IER2YlNkdE91dHB1dE1vZGUoJ1NEVF9GT0xMT1cnKTtcbiAgLyoqIENvcHkgU0RUIGZyb20gdGhlIGlucHV0IGlmIHByZXNlbnQsIG90aGVyd2lzZSB1c2UgdGhlIGNvbmZpZ3VyZWQgdmFsdWVzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNEVF9GT0xMT1dfSUZfUFJFU0VOVCA9IG5ldyBEdmJTZHRPdXRwdXRNb2RlKCdTRFRfRk9MTE9XX0lGX1BSRVNFTlQnKTtcbiAgLyoqIFVzZSB0aGUgdXNlci1kZWZpbmVkIFNEVCBpbmZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTRFRfTUFOVUFMID0gbmV3IER2YlNkdE91dHB1dE1vZGUoJ1NEVF9NQU5VQUwnKTtcbiAgLyoqIERvIG5vdCBpbmNsdWRlIFNEVCBpbmZvcm1hdGlvbiBpbiB0aGUgb3V0cHV0LiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNEVF9OT05FID0gbmV3IER2YlNkdE91dHB1dE1vZGUoJ1NEVF9OT05FJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBEdmJTZHRPdXRwdXRNb2RlIHtcbiAgICByZXR1cm4gbmV3IER2YlNkdE91dHB1dE1vZGUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogU2V0dGluZ3MgZm9yIGluc2VydGluZyBhIERWQiBOZXR3b3JrIEluZm9ybWF0aW9uIFRhYmxlIChOSVQpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEdmJOaXRTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtZXJpYyB2YWx1ZSBwbGFjZWQgaW4gdGhlIE5ldHdvcmsgSW5mb3JtYXRpb24gVGFibGUgKE5JVCkuXG4gICAqIEBkZWZhdWx0IC0gbm8gbmV0d29yayBJRFxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya0lkPzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIG5ldHdvcmsgbmFtZSBwbGFjZWQgaW4gdGhlIG5ldHdvcmtOYW1lRGVzY3JpcHRvciBpbnNpZGUgdGhlIE5JVCAobWF4IDI1NiBjaGFyYWN0ZXJzKS5cbiAgICogQGRlZmF1bHQgLSBubyBuZXR3b3JrIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGludGVydmFsIGJldHdlZW4gaW5zdGFuY2VzIG9mIHRoaXMgdGFibGUgaW4gdGhlIG91dHB1dCB0cmFuc3BvcnQgc3RyZWFtLlxuICAgKiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgcmVwSW50ZXJ2YWw/OiBEdXJhdGlvbjtcbn1cblxuLyoqIFNldHRpbmdzIGZvciBpbnNlcnRpbmcgYSBEVkIgU2VydmljZSBEZXNjcmlwdGlvbiBUYWJsZSAoU0RUKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHZiU2R0U2V0dGluZ3Mge1xuICAvKipcbiAgICogVGhlIG1ldGhvZCBvZiBpbnNlcnRpbmcgU0RUIGluZm9ybWF0aW9uIGludG8gdGhlIG91dHB1dCBzdHJlYW0uXG4gICAqIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBvdXRwdXRTZHQ/OiBEdmJTZHRPdXRwdXRNb2RlO1xuICAvKipcbiAgICogVGhlIGludGVydmFsIGJldHdlZW4gaW5zdGFuY2VzIG9mIHRoaXMgdGFibGUgaW4gdGhlIG91dHB1dCB0cmFuc3BvcnQgc3RyZWFtLlxuICAgKiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgcmVwSW50ZXJ2YWw/OiBEdXJhdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIG5hbWUgcGxhY2VkIGluIHRoZSBzZXJ2aWNlRGVzY3JpcHRvciBpbiB0aGUgU0RUIChtYXggMjU2IGNoYXJhY3RlcnMpLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNlcnZpY2UgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBwcm92aWRlciBuYW1lIHBsYWNlZCBpbiB0aGUgc2VydmljZURlc2NyaXB0b3IgaW4gdGhlIFNEVCAobWF4IDI1NiBjaGFyYWN0ZXJzKS5cbiAgICogQGRlZmF1bHQgLSBubyBzZXJ2aWNlIHByb3ZpZGVyIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VQcm92aWRlck5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKiBTZXR0aW5ncyBmb3IgaW5zZXJ0aW5nIGEgRFZCIFRpbWUgYW5kIERhdGUgVGFibGUgKFREVCkuICovXG5leHBvcnQgaW50ZXJmYWNlIER2YlRkdFNldHRpbmdzIHtcbiAgLyoqXG4gICAqIFRoZSBpbnRlcnZhbCBiZXR3ZWVuIGluc3RhbmNlcyBvZiB0aGlzIHRhYmxlIGluIHRoZSBvdXRwdXQgdHJhbnNwb3J0IHN0cmVhbS5cbiAgICogQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IHJlcEludGVydmFsPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgTVBFRy0yIHRyYW5zcG9ydCBzdHJlYW0gKE0yVFMpIGNvbnRhaW5lciBzZXR0aW5ncy5cbiAqXG4gKiBVc2VkIGJ5IHRoZSBVRFAsIEFyY2hpdmUsIFNSVCwgYW5kIE1lZGlhQ29ubmVjdCBSb3V0ZXIgb3V0cHV0IGdyb3Vwcy4gQWxsIHByb3BlcnRpZXMgYXJlXG4gKiBvcHRpb25hbDsgb21pdCB0aGVtIHRvIHVzZSBNZWRpYUxpdmUncyBzZXJ2aWNlIGRlZmF1bHRzLlxuICpcbiAqIFBJRCBwcm9wZXJ0aWVzIGFjY2VwdCBhIGRlY2ltYWwgb3IgaGV4YWRlY2ltYWwgdmFsdWUgKGFuZCwgd2hlcmUgbm90ZWQsIHJhbmdlcyBvciBjb21tYS1zZXBhcmF0ZWRcbiAqIGxpc3RzKS4gRWFjaCBQSUQgbXVzdCBiZSBpbiB0aGUgcmFuZ2UgMzIgKDB4MjApLi44MTgyICgweDFmZjYpLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtbWVkaWFsaXZlLWNoYW5uZWwtbTJ0c3NldHRpbmdzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNMnRzU2V0dGluZ3NQcm9wcyB7XG4gIC8qKiBCZWhhdmlvciB3aGVuIHRoZSBzZWxlY3RlZCBpbnB1dCBhdWRpbyBzdHJlYW0gaXMgcmVtb3ZlZC4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgYWJzZW50SW5wdXRBdWRpb0JlaGF2aW9yPzogTTJ0c0Fic2VudElucHV0QXVkaW9CZWhhdmlvcjtcbiAgLyoqIEFSSUItY29tcGxpYW50IGZpZWxkIG11eGluZy4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgYXJpYj86IE0ydHNBcmliO1xuICAvKiogVGhlIFBJRCBmb3IgQVJJQiBDYXB0aW9ucy4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgYXJpYkNhcHRpb25zUGlkPzogc3RyaW5nO1xuICAvKiogSG93IHRoZSBBUklCIENhcHRpb25zIFBJRCBpcyBzZWxlY3RlZC4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgYXJpYkNhcHRpb25zUGlkQ29udHJvbD86IE0ydHNBcmliQ2FwdGlvbnNQaWRDb250cm9sO1xuICAvKiogVGhlIGJ1ZmZlciBtb2RlbCBmb3IgRG9sYnkgRGlnaXRhbCBhdWRpby4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgYXVkaW9CdWZmZXJNb2RlbD86IE0ydHNBdWRpb0J1ZmZlck1vZGVsO1xuICAvKiogVGhlIG51bWJlciBvZiBhdWRpbyBmcmFtZXMgdG8gaW5zZXJ0IHBlciBQRVMgcGFja2V0LiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdCAqL1xuICByZWFkb25seSBhdWRpb0ZyYW1lc1BlclBlcz86IG51bWJlcjtcbiAgLyoqIFRoZSBQSUQocykgb2YgdGhlIGVsZW1lbnRhcnkgYXVkaW8gc3RyZWFtcyAocmFuZ2VzL2NvbW1hLXNlcGFyYXRlZCBhbGxvd2VkKS4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgYXVkaW9QaWRzPzogc3RyaW5nO1xuICAvKiogVGhlIHN0cmVhbSB0eXBlIHVzZWQgZm9yIGF1ZGlvIGVsZW1lbnRhcnkgc3RyZWFtcy4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgYXVkaW9TdHJlYW1UeXBlPzogTTJ0c0F1ZGlvU3RyZWFtVHlwZTtcbiAgLyoqIFRoZSBvdXRwdXQgYml0cmF0ZSBvZiB0aGUgdHJhbnNwb3J0IHN0cmVhbS4gU2V0IHRvIDAgYnBzIHRvIGxldCB0aGUgbXV4ZXIgY2hvb3NlLiBAZGVmYXVsdCAtIG11eGVyIGNob29zZXMgKi9cbiAgcmVhZG9ubHkgYml0cmF0ZT86IEJpdHJhdGU7XG4gIC8qKiBUaGUgdHJhbnNwb3J0IHN0cmVhbSBidWZmZXIgbW9kZWwuIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0ICovXG4gIHJlYWRvbmx5IGJ1ZmZlck1vZGVsPzogTTJ0c0J1ZmZlck1vZGVsO1xuICAvKiogV2hldGhlciB0byBnZW5lcmF0ZSB0aGUgY2FwdGlvblNlcnZpY2VEZXNjcmlwdG9yIGluIHRoZSBQTVQuIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0ICovXG4gIHJlYWRvbmx5IGNjRGVzY3JpcHRvcj86IE0ydHNDY0Rlc2NyaXB0b3I7XG4gIC8qKiBEVkIgTmV0d29yayBJbmZvcm1hdGlvbiBUYWJsZSAoTklUKSBzZXR0aW5ncy4gQGRlZmF1bHQgLSBubyBOSVQgKi9cbiAgcmVhZG9ubHkgZHZiTml0U2V0dGluZ3M/OiBEdmJOaXRTZXR0aW5ncztcbiAgLyoqIERWQiBTZXJ2aWNlIERlc2NyaXB0aW9uIFRhYmxlIChTRFQpIHNldHRpbmdzLiBAZGVmYXVsdCAtIG5vIFNEVCAqL1xuICByZWFkb25seSBkdmJTZHRTZXR0aW5ncz86IER2YlNkdFNldHRpbmdzO1xuICAvKiogVGhlIFBJRChzKSBmb3IgaW5wdXQgc291cmNlIERWQiBTdWJ0aXRsZSBkYXRhIChyYW5nZXMvY29tbWEtc2VwYXJhdGVkIGFsbG93ZWQpLiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdCAqL1xuICByZWFkb25seSBkdmJTdWJQaWRzPzogc3RyaW5nO1xuICAvKiogRFZCIFRpbWUgYW5kIERhdGUgVGFibGUgKFREVCkgc2V0dGluZ3MuIEBkZWZhdWx0IC0gbm8gVERUICovXG4gIHJlYWRvbmx5IGR2YlRkdFNldHRpbmdzPzogRHZiVGR0U2V0dGluZ3M7XG4gIC8qKiBUaGUgUElEIGZvciBpbnB1dCBzb3VyY2UgRFZCIFRlbGV0ZXh0IGRhdGEuIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0ICovXG4gIHJlYWRvbmx5IGR2YlRlbGV0ZXh0UGlkPzogc3RyaW5nO1xuICAvKiogRUJJRiBkYXRhIHBhc3N0aHJvdWdoIGJlaGF2aW9yLiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdCAqL1xuICByZWFkb25seSBlYmlmPzogTTJ0c0ViaWY7XG4gIC8qKiBQbGFjZW1lbnQgb2YgYXVkaW8gRUJQIG1hcmtlcnMuIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0ICovXG4gIHJlYWRvbmx5IGVicEF1ZGlvSW50ZXJ2YWw/OiBNMnRzRWJwQXVkaW9JbnRlcnZhbDtcbiAgLyoqIFRoZSBFQlAgbG9va2FoZWFkIGludGVydmFsLiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdCAqL1xuICByZWFkb25seSBlYnBMb29rYWhlYWQ/OiBEdXJhdGlvbjtcbiAgLyoqIFBsYWNlbWVudCBvZiBFQlAgbWFya2VycyBvbiBhdWRpbyBQSURzLiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdCAqL1xuICByZWFkb25seSBlYnBQbGFjZW1lbnQ/OiBNMnRzRWJwUGxhY2VtZW50O1xuICAvKiogV2hldGhlciB0byBpbmNsdWRlIHRoZSBFUyBSYXRlIGZpZWxkIGluIHRoZSBQRVMgaGVhZGVyLiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdCAqL1xuICByZWFkb25seSBlc1JhdGVJblBlcz86IE0ydHNFc1JhdGVJblBlcztcbiAgLyoqIFRoZSBQSUQgZm9yIGlucHV0IHNvdXJjZSBFVFYgUGxhdGZvcm0gZGF0YS4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgZXR2UGxhdGZvcm1QaWQ/OiBzdHJpbmc7XG4gIC8qKiBUaGUgUElEIGZvciBpbnB1dCBzb3VyY2UgRVRWIFNpZ25hbCBkYXRhLiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdCAqL1xuICByZWFkb25seSBldHZTaWduYWxQaWQ/OiBzdHJpbmc7XG4gIC8qKiBUaGUgbGVuZ3RoIG9mIGVhY2ggZnJhZ21lbnQgKHVzZWQgb25seSB3aXRoIEVCUCBtYXJrZXJzKS4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgZnJhZ21lbnRUaW1lPzogRHVyYXRpb247XG4gIC8qKiBLTFYgZGF0YSBwYXNzdGhyb3VnaCBiZWhhdmlvci4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkga2x2PzogTTJ0c0tsdjtcbiAgLyoqIFRoZSBQSUQocykgZm9yIGlucHV0IHNvdXJjZSBLTFYgZGF0YSAocmFuZ2VzL2NvbW1hLXNlcGFyYXRlZCBhbGxvd2VkKS4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkga2x2RGF0YVBpZHM/OiBzdHJpbmc7XG4gIC8qKiBOaWVsc2VuIElEMyBwYXNzdGhyb3VnaCBiZWhhdmlvci4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgbmllbHNlbklkM0JlaGF2aW9yPzogTTJ0c05pZWxzZW5JZDNCZWhhdmlvcjtcbiAgLyoqIFRoZSBiaXRyYXRlIG9mIGV4dHJhIG51bGwgcGFja2V0cyB0byBpbnNlcnQgaW50byB0aGUgdHJhbnNwb3J0IHN0cmVhbS4gQGRlZmF1bHQgLSBubyBudWxsIHBhY2tldHMgKi9cbiAgcmVhZG9ubHkgbnVsbFBhY2tldEJpdHJhdGU/OiBCaXRyYXRlO1xuICAvKiogVGhlIGludGVydmFsIGJldHdlZW4gUEFUIGluc3RhbmNlcyAoMCwgb3IgMTBtcy4uMTAwMG1zKS4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgcGF0SW50ZXJ2YWw/OiBEdXJhdGlvbjtcbiAgLyoqIENvbnRyb2xzIGluc2VydGlvbiBvZiB0aGUgUHJvZ3JhbSBDbG9jayBSZWZlcmVuY2UgKFBDUikuIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0ICovXG4gIHJlYWRvbmx5IHBjckNvbnRyb2w/OiBNMnRzUGNyQ29udHJvbDtcbiAgLyoqIFRoZSBtYXhpbXVtIGludGVydmFsIGJldHdlZW4gUHJvZ3JhbSBDbG9jayBSZWZlcmVuY2VzIChQQ1JzKS4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgcGNyUGVyaW9kPzogRHVyYXRpb247XG4gIC8qKiBUaGUgUElEIG9mIHRoZSBQcm9ncmFtIENsb2NrIFJlZmVyZW5jZS4gQGRlZmF1bHQgLSBzYW1lIGFzIHRoZSB2aWRlbyBQSUQgKi9cbiAgcmVhZG9ubHkgcGNyUGlkPzogc3RyaW5nO1xuICAvKiogVGhlIGludGVydmFsIGJldHdlZW4gUE1UIGluc3RhbmNlcyAoMCwgb3IgMTBtcy4uMTAwMG1zKS4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgcG10SW50ZXJ2YWw/OiBEdXJhdGlvbjtcbiAgLyoqIFRoZSBQSUQgZm9yIHRoZSBQcm9ncmFtIE1hcCBUYWJsZSAoUE1UKS4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgcG10UGlkPzogc3RyaW5nO1xuICAvKiogVGhlIHZhbHVlIG9mIHRoZSBwcm9ncmFtIG51bWJlciBmaWVsZCBpbiB0aGUgUE1ULiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdCAqL1xuICByZWFkb25seSBwcm9ncmFtTnVtPzogbnVtYmVyO1xuICAvKiogVGhlIHRyYW5zcG9ydCBzdHJlYW0gYml0cmF0ZSBtb2RlIChDQlIvVkJSKS4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgcmF0ZU1vZGU/OiBNMnRzUmF0ZU1vZGU7XG4gIC8qKiBUaGUgUElEKHMpIGZvciBpbnB1dCBzb3VyY2UgU0NURS0yNyBkYXRhIChyYW5nZXMvY29tbWEtc2VwYXJhdGVkIGFsbG93ZWQpLiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdCAqL1xuICByZWFkb25seSBzY3RlMjdQaWRzPzogc3RyaW5nO1xuICAvKiogU0NURS0zNSBwYXNzdGhyb3VnaCBiZWhhdmlvci4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgc2N0ZTM1Q29udHJvbD86IE0ydHNTY3RlMzVDb250cm9sO1xuICAvKiogVGhlIFBJRCBvZiB0aGUgU0NURS0zNSBzdHJlYW0uIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0ICovXG4gIHJlYWRvbmx5IHNjdGUzNVBpZD86IHN0cmluZztcbiAgLyoqIFRoZSBTQ1RFLTM1IHByZXJvbGwgcHVsbHVwIGludGVydmFsLiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdCAqL1xuICByZWFkb25seSBzY3RlMzVQcmVyb2xsUHVsbHVwPzogRHVyYXRpb247XG4gIC8qKiBUaGUgdHlwZSBvZiBzZWdtZW50YXRpb24gbWFya2VycyB0byBpbnNlcnQuIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0ICovXG4gIHJlYWRvbmx5IHNlZ21lbnRhdGlvbk1hcmtlcnM/OiBNMnRzU2VnbWVudGF0aW9uTWFya2VycztcbiAgLyoqIEhvdyBzZWdtZW50YXRpb24gbWFya2VycyByZXNwb25kIHRvIGF2YWlscy4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgc2VnbWVudGF0aW9uU3R5bGU/OiBNMnRzU2VnbWVudGF0aW9uU3R5bGU7XG4gIC8qKiBUaGUgbGVuZ3RoIG9mIGVhY2ggc2VnbWVudCAocmVxdWlyZWQgdW5sZXNzIGBzZWdtZW50YXRpb25NYXJrZXJzYCBpcyBOT05FKS4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgc2VnbWVudGF0aW9uVGltZT86IER1cmF0aW9uO1xuICAvKiogVGltZWQgbWV0YWRhdGEgcGFzc3Rocm91Z2ggYmVoYXZpb3IuIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0ICovXG4gIHJlYWRvbmx5IHRpbWVkTWV0YWRhdGFCZWhhdmlvcj86IE0ydHNUaW1lZE1ldGFkYXRhQmVoYXZpb3I7XG4gIC8qKiBUaGUgUElEIG9mIHRoZSB0aW1lZCBtZXRhZGF0YSBzdHJlYW0uIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0ICovXG4gIHJlYWRvbmx5IHRpbWVkTWV0YWRhdGFQaWQ/OiBzdHJpbmc7XG4gIC8qKiBUaGUgdmFsdWUgb2YgdGhlIHRyYW5zcG9ydCBzdHJlYW0gSUQgZmllbGQgaW4gdGhlIFBNVC4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgdHJhbnNwb3J0U3RyZWFtSWQ/OiBudW1iZXI7XG4gIC8qKiBUaGUgUElEIG9mIHRoZSBlbGVtZW50YXJ5IHZpZGVvIHN0cmVhbS4gQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHQgKi9cbiAgcmVhZG9ubHkgdmlkZW9QaWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTVBFRy0yIHRyYW5zcG9ydCBzdHJlYW0gKE0yVFMpIGNvbnRhaW5lciBzZXR0aW5ncyBmb3IgYW4gTVBFRy1UUyBvdXRwdXQuXG4gKlxuICogVXNlIGBNMnRzU2V0dGluZ3Mub2YoKWAgdG8gY29uZmlndXJlIHRoZSB0cmFuc3BvcnQgc3RyZWFtIHByb2R1Y2VkIGJ5IGEgVURQLCBBcmNoaXZlLCBTUlQsIG9yXG4gKiBNZWRpYUNvbm5lY3QgUm91dGVyIG91dHB1dC4gT21pdHRpbmcgaXQgZW50aXJlbHkgdXNlcyBNZWRpYUxpdmUncyBzZXJ2aWNlIGRlZmF1bHRzLlxuICovXG5leHBvcnQgY2xhc3MgTTJ0c1NldHRpbmdzIHtcbiAgLyoqIENyZWF0ZSBNMlRTIGNvbnRhaW5lciBzZXR0aW5ncy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZihwcm9wczogTTJ0c1NldHRpbmdzUHJvcHMpOiBNMnRzU2V0dGluZ3Mge1xuICAgIHJldHVybiBuZXcgTTJ0c1NldHRpbmdzKHByb3BzKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogTTJ0c1NldHRpbmdzUHJvcHMpIHt9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgX2JpbmQoKTogQ2ZuQ2hhbm5lbC5NMnRzU2V0dGluZ3NQcm9wZXJ0eSB7XG4gICAgY29uc3QgcCA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFic2VudElucHV0QXVkaW9CZWhhdmlvcjogcC5hYnNlbnRJbnB1dEF1ZGlvQmVoYXZpb3I/LnZhbHVlLFxuICAgICAgYXJpYjogcC5hcmliPy52YWx1ZSxcbiAgICAgIGFyaWJDYXB0aW9uc1BpZDogcC5hcmliQ2FwdGlvbnNQaWQsXG4gICAgICBhcmliQ2FwdGlvbnNQaWRDb250cm9sOiBwLmFyaWJDYXB0aW9uc1BpZENvbnRyb2w/LnZhbHVlLFxuICAgICAgYXVkaW9CdWZmZXJNb2RlbDogcC5hdWRpb0J1ZmZlck1vZGVsPy52YWx1ZSxcbiAgICAgIGF1ZGlvRnJhbWVzUGVyUGVzOiBwLmF1ZGlvRnJhbWVzUGVyUGVzLFxuICAgICAgYXVkaW9QaWRzOiBwLmF1ZGlvUGlkcyxcbiAgICAgIGF1ZGlvU3RyZWFtVHlwZTogcC5hdWRpb1N0cmVhbVR5cGU/LnZhbHVlLFxuICAgICAgYml0cmF0ZTogcC5iaXRyYXRlPy50b0JwcygpLFxuICAgICAgYnVmZmVyTW9kZWw6IHAuYnVmZmVyTW9kZWw/LnZhbHVlLFxuICAgICAgY2NEZXNjcmlwdG9yOiBwLmNjRGVzY3JpcHRvcj8udmFsdWUsXG4gICAgICBkdmJOaXRTZXR0aW5nczogcC5kdmJOaXRTZXR0aW5ncyA/IHtcbiAgICAgICAgbmV0d29ya0lkOiBwLmR2Yk5pdFNldHRpbmdzLm5ldHdvcmtJZCxcbiAgICAgICAgbmV0d29ya05hbWU6IHAuZHZiTml0U2V0dGluZ3MubmV0d29ya05hbWUsXG4gICAgICAgIHJlcEludGVydmFsOiBwLmR2Yk5pdFNldHRpbmdzLnJlcEludGVydmFsPy50b01pbGxpc2Vjb25kcygpLFxuICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgIGR2YlNkdFNldHRpbmdzOiBwLmR2YlNkdFNldHRpbmdzID8ge1xuICAgICAgICBvdXRwdXRTZHQ6IHAuZHZiU2R0U2V0dGluZ3Mub3V0cHV0U2R0Py52YWx1ZSxcbiAgICAgICAgcmVwSW50ZXJ2YWw6IHAuZHZiU2R0U2V0dGluZ3MucmVwSW50ZXJ2YWw/LnRvTWlsbGlzZWNvbmRzKCksXG4gICAgICAgIHNlcnZpY2VOYW1lOiBwLmR2YlNkdFNldHRpbmdzLnNlcnZpY2VOYW1lLFxuICAgICAgICBzZXJ2aWNlUHJvdmlkZXJOYW1lOiBwLmR2YlNkdFNldHRpbmdzLnNlcnZpY2VQcm92aWRlck5hbWUsXG4gICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgZHZiU3ViUGlkczogcC5kdmJTdWJQaWRzLFxuICAgICAgZHZiVGR0U2V0dGluZ3M6IHAuZHZiVGR0U2V0dGluZ3MgPyB7XG4gICAgICAgIHJlcEludGVydmFsOiBwLmR2YlRkdFNldHRpbmdzLnJlcEludGVydmFsPy50b01pbGxpc2Vjb25kcygpLFxuICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgIGR2YlRlbGV0ZXh0UGlkOiBwLmR2YlRlbGV0ZXh0UGlkLFxuICAgICAgZWJpZjogcC5lYmlmPy52YWx1ZSxcbiAgICAgIGVicEF1ZGlvSW50ZXJ2YWw6IHAuZWJwQXVkaW9JbnRlcnZhbD8udmFsdWUsXG4gICAgICBlYnBMb29rYWhlYWRNczogcC5lYnBMb29rYWhlYWQ/LnRvTWlsbGlzZWNvbmRzKCksXG4gICAgICBlYnBQbGFjZW1lbnQ6IHAuZWJwUGxhY2VtZW50Py52YWx1ZSxcbiAgICAgIGVzUmF0ZUluUGVzOiBwLmVzUmF0ZUluUGVzPy52YWx1ZSxcbiAgICAgIGV0dlBsYXRmb3JtUGlkOiBwLmV0dlBsYXRmb3JtUGlkLFxuICAgICAgZXR2U2lnbmFsUGlkOiBwLmV0dlNpZ25hbFBpZCxcbiAgICAgIGZyYWdtZW50VGltZTogcC5mcmFnbWVudFRpbWU/LnRvU2Vjb25kcygpLFxuICAgICAga2x2OiBwLmtsdj8udmFsdWUsXG4gICAgICBrbHZEYXRhUGlkczogcC5rbHZEYXRhUGlkcyxcbiAgICAgIG5pZWxzZW5JZDNCZWhhdmlvcjogcC5uaWVsc2VuSWQzQmVoYXZpb3I/LnZhbHVlLFxuICAgICAgbnVsbFBhY2tldEJpdHJhdGU6IHAubnVsbFBhY2tldEJpdHJhdGU/LnRvQnBzKCksXG4gICAgICBwYXRJbnRlcnZhbDogcC5wYXRJbnRlcnZhbD8udG9NaWxsaXNlY29uZHMoKSxcbiAgICAgIHBjckNvbnRyb2w6IHAucGNyQ29udHJvbD8udmFsdWUsXG4gICAgICBwY3JQZXJpb2Q6IHAucGNyUGVyaW9kPy50b01pbGxpc2Vjb25kcygpLFxuICAgICAgcGNyUGlkOiBwLnBjclBpZCxcbiAgICAgIHBtdEludGVydmFsOiBwLnBtdEludGVydmFsPy50b01pbGxpc2Vjb25kcygpLFxuICAgICAgcG10UGlkOiBwLnBtdFBpZCxcbiAgICAgIHByb2dyYW1OdW06IHAucHJvZ3JhbU51bSxcbiAgICAgIHJhdGVNb2RlOiBwLnJhdGVNb2RlPy52YWx1ZSxcbiAgICAgIHNjdGUyN1BpZHM6IHAuc2N0ZTI3UGlkcyxcbiAgICAgIHNjdGUzNUNvbnRyb2w6IHAuc2N0ZTM1Q29udHJvbD8udmFsdWUsXG4gICAgICBzY3RlMzVQaWQ6IHAuc2N0ZTM1UGlkLFxuICAgICAgc2N0ZTM1UHJlcm9sbFB1bGx1cE1pbGxpc2Vjb25kczogcC5zY3RlMzVQcmVyb2xsUHVsbHVwPy50b01pbGxpc2Vjb25kcygpLFxuICAgICAgc2VnbWVudGF0aW9uTWFya2VyczogcC5zZWdtZW50YXRpb25NYXJrZXJzPy52YWx1ZSxcbiAgICAgIHNlZ21lbnRhdGlvblN0eWxlOiBwLnNlZ21lbnRhdGlvblN0eWxlPy52YWx1ZSxcbiAgICAgIHNlZ21lbnRhdGlvblRpbWU6IHAuc2VnbWVudGF0aW9uVGltZT8udG9TZWNvbmRzKCksXG4gICAgICB0aW1lZE1ldGFkYXRhQmVoYXZpb3I6IHAudGltZWRNZXRhZGF0YUJlaGF2aW9yPy52YWx1ZSxcbiAgICAgIHRpbWVkTWV0YWRhdGFQaWQ6IHAudGltZWRNZXRhZGF0YVBpZCxcbiAgICAgIHRyYW5zcG9ydFN0cmVhbUlkOiBwLnRyYW5zcG9ydFN0cmVhbUlkLFxuICAgICAgdmlkZW9QaWQ6IHAudmlkZW9QaWQsXG4gICAgfTtcbiAgfVxufVxuIl19
|