@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.
Files changed (70) hide show
  1. package/.jsii +60888 -0
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +524 -0
  4. package/LICENSE +201 -0
  5. package/NOTICE +2 -0
  6. package/README.md +1297 -0
  7. package/grants.json +27 -0
  8. package/lib/audio-codec-settings.d.ts +901 -0
  9. package/lib/audio-codec-settings.js +1098 -0
  10. package/lib/audio-selector.d.ts +170 -0
  11. package/lib/audio-selector.js +306 -0
  12. package/lib/avail-settings.d.ts +231 -0
  13. package/lib/avail-settings.js +226 -0
  14. package/lib/caption-selector.d.ts +234 -0
  15. package/lib/caption-selector.js +413 -0
  16. package/lib/caption-settings.d.ts +349 -0
  17. package/lib/caption-settings.js +482 -0
  18. package/lib/channel-features.d.ts +106 -0
  19. package/lib/channel-features.js +85 -0
  20. package/lib/channel-placement-group.d.ts +73 -0
  21. package/lib/channel-placement-group.js +132 -0
  22. package/lib/channel.d.ts +687 -0
  23. package/lib/channel.js +1096 -0
  24. package/lib/cluster.d.ts +129 -0
  25. package/lib/cluster.js +158 -0
  26. package/lib/color-correction.d.ts +39 -0
  27. package/lib/color-correction.js +29 -0
  28. package/lib/destinations.d.ts +242 -0
  29. package/lib/destinations.js +455 -0
  30. package/lib/encode-configuration.d.ts +615 -0
  31. package/lib/encode-configuration.js +629 -0
  32. package/lib/enums.d.ts +698 -0
  33. package/lib/enums.js +1045 -0
  34. package/lib/file-location.d.ts +65 -0
  35. package/lib/file-location.js +150 -0
  36. package/lib/framerate.d.ts +31 -0
  37. package/lib/framerate.js +71 -0
  38. package/lib/index.d.ts +26 -0
  39. package/lib/index.js +43 -0
  40. package/lib/input-attachment.d.ts +319 -0
  41. package/lib/input-attachment.js +228 -0
  42. package/lib/input-security-group.d.ts +51 -0
  43. package/lib/input-security-group.js +123 -0
  44. package/lib/input-specification.d.ts +111 -0
  45. package/lib/input-specification.js +181 -0
  46. package/lib/input.d.ts +505 -0
  47. package/lib/input.js +803 -0
  48. package/lib/m2ts-settings.d.ts +421 -0
  49. package/lib/m2ts-settings.js +469 -0
  50. package/lib/m3u8-settings.d.ts +272 -0
  51. package/lib/m3u8-settings.js +304 -0
  52. package/lib/medialive-grants.generated.d.ts +30 -0
  53. package/lib/medialive-grants.generated.js +92 -0
  54. package/lib/network.d.ts +83 -0
  55. package/lib/network.js +132 -0
  56. package/lib/output-group.d.ts +924 -0
  57. package/lib/output-group.js +941 -0
  58. package/lib/outputs.d.ts +304 -0
  59. package/lib/outputs.js +598 -0
  60. package/lib/sdi-source.d.ts +124 -0
  61. package/lib/sdi-source.js +180 -0
  62. package/lib/shared.d.ts +44 -0
  63. package/lib/shared.js +146 -0
  64. package/lib/video-codec-settings.d.ts +1500 -0
  65. package/lib/video-codec-settings.js +1722 -0
  66. package/lib/video-selection.d.ts +92 -0
  67. package/lib/video-selection.js +95 -0
  68. package/package.json +135 -0
  69. package/rosetta/_generated.ts-fixture +6 -0
  70. package/rosetta/default.ts-fixture +21 -0
@@ -0,0 +1,482 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CaptionDestination = exports.CaptionFontSize = exports.WebvttStyleControl = exports.TtmlStyleControl = exports.EbuTtDStyleControl = exports.EbuTtDFillLineGap = exports.CaptionTeletextGridControl = exports.CaptionShadowColor = exports.CaptionBackgroundColor = exports.CaptionOutlineColor = exports.CaptionFontColor = exports.CaptionAlignment = void 0;
4
+ const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
7
+ const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
8
+ /** Caption alignment for burn-in and DVB-Sub outputs. */
9
+ class CaptionAlignment {
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.CaptionAlignment", version: "2.268.0-alpha.0" };
11
+ /** Center the captions. */
12
+ static CENTERED = new CaptionAlignment('CENTERED');
13
+ /** Left-align the captions. */
14
+ static LEFT = new CaptionAlignment('LEFT');
15
+ /** Smart: left-justify live subtitles, center-justify pre-recorded subtitles. */
16
+ static SMART = new CaptionAlignment('SMART');
17
+ /** A value not yet modelled by AWS CDK. */
18
+ static of(value) {
19
+ return new CaptionAlignment(value);
20
+ }
21
+ /** The underlying string value passed to CloudFormation. */
22
+ value;
23
+ constructor(value) {
24
+ this.value = value;
25
+ }
26
+ }
27
+ exports.CaptionAlignment = CaptionAlignment;
28
+ /** Font color for burn-in and DVB-Sub captions. */
29
+ class CaptionFontColor {
30
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.CaptionFontColor", version: "2.268.0-alpha.0" };
31
+ /** Black. */
32
+ static BLACK = new CaptionFontColor('BLACK');
33
+ /** Blue. */
34
+ static BLUE = new CaptionFontColor('BLUE');
35
+ /** Green. */
36
+ static GREEN = new CaptionFontColor('GREEN');
37
+ /** Red. */
38
+ static RED = new CaptionFontColor('RED');
39
+ /** White. */
40
+ static WHITE = new CaptionFontColor('WHITE');
41
+ /** Yellow. */
42
+ static YELLOW = new CaptionFontColor('YELLOW');
43
+ /** A value not yet modelled by AWS CDK. */
44
+ static of(value) {
45
+ return new CaptionFontColor(value);
46
+ }
47
+ /** The underlying string value passed to CloudFormation. */
48
+ value;
49
+ constructor(value) {
50
+ this.value = value;
51
+ }
52
+ }
53
+ exports.CaptionFontColor = CaptionFontColor;
54
+ /** Font outline color for burn-in and DVB-Sub captions. */
55
+ class CaptionOutlineColor {
56
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.CaptionOutlineColor", version: "2.268.0-alpha.0" };
57
+ /** Black. */
58
+ static BLACK = new CaptionOutlineColor('BLACK');
59
+ /** Blue. */
60
+ static BLUE = new CaptionOutlineColor('BLUE');
61
+ /** Green. */
62
+ static GREEN = new CaptionOutlineColor('GREEN');
63
+ /** Red. */
64
+ static RED = new CaptionOutlineColor('RED');
65
+ /** White. */
66
+ static WHITE = new CaptionOutlineColor('WHITE');
67
+ /** Yellow. */
68
+ static YELLOW = new CaptionOutlineColor('YELLOW');
69
+ /** A value not yet modelled by AWS CDK. */
70
+ static of(value) {
71
+ return new CaptionOutlineColor(value);
72
+ }
73
+ /** The underlying string value passed to CloudFormation. */
74
+ value;
75
+ constructor(value) {
76
+ this.value = value;
77
+ }
78
+ }
79
+ exports.CaptionOutlineColor = CaptionOutlineColor;
80
+ /** Background color for burn-in and DVB-Sub captions. */
81
+ class CaptionBackgroundColor {
82
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.CaptionBackgroundColor", version: "2.268.0-alpha.0" };
83
+ /** Black. */
84
+ static BLACK = new CaptionBackgroundColor('BLACK');
85
+ /** None (transparent). */
86
+ static NONE = new CaptionBackgroundColor('NONE');
87
+ /** White. */
88
+ static WHITE = new CaptionBackgroundColor('WHITE');
89
+ /** A value not yet modelled by AWS CDK. */
90
+ static of(value) {
91
+ return new CaptionBackgroundColor(value);
92
+ }
93
+ /** The underlying string value passed to CloudFormation. */
94
+ value;
95
+ constructor(value) {
96
+ this.value = value;
97
+ }
98
+ }
99
+ exports.CaptionBackgroundColor = CaptionBackgroundColor;
100
+ /** Shadow color for burn-in and DVB-Sub captions. */
101
+ class CaptionShadowColor {
102
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.CaptionShadowColor", version: "2.268.0-alpha.0" };
103
+ /** Black. */
104
+ static BLACK = new CaptionShadowColor('BLACK');
105
+ /** None (transparent). */
106
+ static NONE = new CaptionShadowColor('NONE');
107
+ /** White. */
108
+ static WHITE = new CaptionShadowColor('WHITE');
109
+ /** A value not yet modelled by AWS CDK. */
110
+ static of(value) {
111
+ return new CaptionShadowColor(value);
112
+ }
113
+ /** The underlying string value passed to CloudFormation. */
114
+ value;
115
+ constructor(value) {
116
+ this.value = value;
117
+ }
118
+ }
119
+ exports.CaptionShadowColor = CaptionShadowColor;
120
+ /** Controls whether a fixed grid is used to generate the subtitle bitmap (Teletext input). */
121
+ class CaptionTeletextGridControl {
122
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.CaptionTeletextGridControl", version: "2.268.0-alpha.0" };
123
+ /** Fixed grid. */
124
+ static FIXED = new CaptionTeletextGridControl('FIXED');
125
+ /** Scaled grid. */
126
+ static SCALED = new CaptionTeletextGridControl('SCALED');
127
+ /** A value not yet modelled by AWS CDK. */
128
+ static of(value) {
129
+ return new CaptionTeletextGridControl(value);
130
+ }
131
+ /** The underlying string value passed to CloudFormation. */
132
+ value;
133
+ constructor(value) {
134
+ this.value = value;
135
+ }
136
+ }
137
+ exports.CaptionTeletextGridControl = CaptionTeletextGridControl;
138
+ /** Whether EBU-TT-D fills the gap between multi-line captions. */
139
+ class EbuTtDFillLineGap {
140
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.EbuTtDFillLineGap", version: "2.268.0-alpha.0" };
141
+ /** Leave the gap unfilled. */
142
+ static DISABLED = new EbuTtDFillLineGap('DISABLED');
143
+ /** Fill with the captions background color. */
144
+ static ENABLED = new EbuTtDFillLineGap('ENABLED');
145
+ /** A value not yet modelled by AWS CDK. */
146
+ static of(value) {
147
+ return new EbuTtDFillLineGap(value);
148
+ }
149
+ /** The underlying string value passed to CloudFormation. */
150
+ value;
151
+ constructor(value) {
152
+ this.value = value;
153
+ }
154
+ }
155
+ exports.EbuTtDFillLineGap = EbuTtDFillLineGap;
156
+ /** Whether EBU-TT-D includes source style information. */
157
+ class EbuTtDStyleControl {
158
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.EbuTtDStyleControl", version: "2.268.0-alpha.0" };
159
+ /** Set the font family to monospaced and exclude other style info. */
160
+ static EXCLUDE = new EbuTtDStyleControl('EXCLUDE');
161
+ /** Include source style (color, position) in the font data. */
162
+ static INCLUDE = new EbuTtDStyleControl('INCLUDE');
163
+ /** A value not yet modelled by AWS CDK. */
164
+ static of(value) {
165
+ return new EbuTtDStyleControl(value);
166
+ }
167
+ /** The underlying string value passed to CloudFormation. */
168
+ value;
169
+ constructor(value) {
170
+ this.value = value;
171
+ }
172
+ }
173
+ exports.EbuTtDStyleControl = EbuTtDStyleControl;
174
+ /** Whether TTML passes through source style/position. */
175
+ class TtmlStyleControl {
176
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.TtmlStyleControl", version: "2.268.0-alpha.0" };
177
+ /** Pass through style and position from a TTML-like source. */
178
+ static PASSTHROUGH = new TtmlStyleControl('PASSTHROUGH');
179
+ /** Use the configured style. */
180
+ static USE_CONFIGURED = new TtmlStyleControl('USE_CONFIGURED');
181
+ /** A value not yet modelled by AWS CDK. */
182
+ static of(value) {
183
+ return new TtmlStyleControl(value);
184
+ }
185
+ /** The underlying string value passed to CloudFormation. */
186
+ value;
187
+ constructor(value) {
188
+ this.value = value;
189
+ }
190
+ }
191
+ exports.TtmlStyleControl = TtmlStyleControl;
192
+ /** Whether WebVTT passes through source style/position. */
193
+ class WebvttStyleControl {
194
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.WebvttStyleControl", version: "2.268.0-alpha.0" };
195
+ /** Do not pass through style; output contains no font styling. */
196
+ static NO_STYLE_DATA = new WebvttStyleControl('NO_STYLE_DATA');
197
+ /** Pass through style (valid only for EMBEDDED or TELETEXT sources). */
198
+ static PASSTHROUGH = new WebvttStyleControl('PASSTHROUGH');
199
+ /** A value not yet modelled by AWS CDK. */
200
+ static of(value) {
201
+ return new WebvttStyleControl(value);
202
+ }
203
+ /** The underlying string value passed to CloudFormation. */
204
+ value;
205
+ constructor(value) {
206
+ this.value = value;
207
+ }
208
+ }
209
+ exports.WebvttStyleControl = WebvttStyleControl;
210
+ /**
211
+ * Font size for burn-in and DVB-Sub captions.
212
+ *
213
+ * Use {@link CaptionFontSize.AUTO} to scale the font size with the output resolution, or
214
+ * {@link CaptionFontSize.of} to set an exact size in points.
215
+ */
216
+ class CaptionFontSize {
217
+ value;
218
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.CaptionFontSize", version: "2.268.0-alpha.0" };
219
+ /** Scale the font size automatically to match the output resolution. */
220
+ static AUTO = new CaptionFontSize('auto');
221
+ /**
222
+ * An exact font size, in points.
223
+ *
224
+ * @param points the font size in points; must be a positive integer
225
+ */
226
+ static of(points) {
227
+ if (!aws_cdk_lib_1.Token.isUnresolved(points) && (!Number.isInteger(points) || points <= 0)) {
228
+ throw new aws_cdk_lib_1.UnscopedValidationError((0, helpers_internal_1.lit) `CaptionFontSizeInvalid`, `caption font size must be a positive integer, got ${JSON.stringify(points)}`);
229
+ }
230
+ return new CaptionFontSize(aws_cdk_lib_1.Tokenization.stringifyNumber(points));
231
+ }
232
+ constructor(value) {
233
+ this.value = value;
234
+ }
235
+ /** @internal */
236
+ _bind() {
237
+ return this.value;
238
+ }
239
+ }
240
+ exports.CaptionFontSize = CaptionFontSize;
241
+ /**
242
+ * The output caption format for a caption encode. Use the static factory methods to select one of
243
+ * the supported destination types.
244
+ */
245
+ class CaptionDestination {
246
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.CaptionDestination", version: "2.268.0-alpha.0" };
247
+ /** Burned-in captions rendered into the video. */
248
+ static burnIn(props = {}) {
249
+ try {
250
+ jsiiDeprecationWarnings._aws_cdk_aws_medialive_alpha_BurnInDestinationProps(props);
251
+ }
252
+ catch (error) {
253
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
254
+ Error.captureStackTrace(error, this.burnIn);
255
+ }
256
+ throw error;
257
+ }
258
+ return new BurnInCaptionDestination(props);
259
+ }
260
+ /** DVB-Sub bitmap captions. */
261
+ static dvbSub(props = {}) {
262
+ try {
263
+ jsiiDeprecationWarnings._aws_cdk_aws_medialive_alpha_DvbSubDestinationProps(props);
264
+ }
265
+ catch (error) {
266
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
267
+ Error.captureStackTrace(error, this.dvbSub);
268
+ }
269
+ throw error;
270
+ }
271
+ return new DvbSubCaptionDestination(props);
272
+ }
273
+ /** EBU-TT-D sidecar captions. */
274
+ static ebuTtD(props = {}) {
275
+ try {
276
+ jsiiDeprecationWarnings._aws_cdk_aws_medialive_alpha_EbuTtDDestinationProps(props);
277
+ }
278
+ catch (error) {
279
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
280
+ Error.captureStackTrace(error, this.ebuTtD);
281
+ }
282
+ throw error;
283
+ }
284
+ return new EbuTtDCaptionDestination(props);
285
+ }
286
+ /** TTML sidecar captions. */
287
+ static ttml(props = {}) {
288
+ try {
289
+ jsiiDeprecationWarnings._aws_cdk_aws_medialive_alpha_TtmlDestinationProps(props);
290
+ }
291
+ catch (error) {
292
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
293
+ Error.captureStackTrace(error, this.ttml);
294
+ }
295
+ throw error;
296
+ }
297
+ return new TtmlCaptionDestination(props);
298
+ }
299
+ /** WebVTT sidecar captions. */
300
+ static webvtt(props = {}) {
301
+ try {
302
+ jsiiDeprecationWarnings._aws_cdk_aws_medialive_alpha_WebvttDestinationProps(props);
303
+ }
304
+ catch (error) {
305
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
306
+ Error.captureStackTrace(error, this.webvtt);
307
+ }
308
+ throw error;
309
+ }
310
+ return new WebvttCaptionDestination(props);
311
+ }
312
+ /** ARIB captions. */
313
+ static arib() {
314
+ return new SimpleCaptionDestination({ aribDestinationSettings: {} });
315
+ }
316
+ /** Embedded (CEA-608/708) captions. */
317
+ static embedded() {
318
+ return new SimpleCaptionDestination({ embeddedDestinationSettings: {} }, true, true);
319
+ }
320
+ /** Embedded plus SCTE-20 captions. */
321
+ static embeddedPlusScte20() {
322
+ return new SimpleCaptionDestination({ embeddedPlusScte20DestinationSettings: {} }, true, true);
323
+ }
324
+ /** SCTE-20 plus embedded captions. */
325
+ static scte20PlusEmbedded() {
326
+ return new SimpleCaptionDestination({ scte20PlusEmbeddedDestinationSettings: {} }, true, true);
327
+ }
328
+ /** SMPTE-TT sidecar captions. */
329
+ static smpteTt() {
330
+ return new SimpleCaptionDestination({ smpteTtDestinationSettings: {} });
331
+ }
332
+ /** Teletext captions. */
333
+ static teletext() {
334
+ return new SimpleCaptionDestination({ teletextDestinationSettings: {} });
335
+ }
336
+ /** RTMP CaptionInfo captions. */
337
+ static rtmpCaptionInfo() {
338
+ return new SimpleCaptionDestination({ rtmpCaptionInfoDestinationSettings: {} });
339
+ }
340
+ /**
341
+ * Whether this caption type produces no separate track (rendered into the video or passed
342
+ * through in the video stream). Burn-in, embedded, embeddedPlusScte20, and scte20PlusEmbedded
343
+ * are in-band.
344
+ * @internal
345
+ */
346
+ _isInBand() {
347
+ return false;
348
+ }
349
+ /**
350
+ * Whether this is an embedded-family caption type (embedded, embeddedPlusScte20,
351
+ * scte20PlusEmbedded). Only one embedded caption per output is allowed.
352
+ * @internal
353
+ */
354
+ _isEmbedded() {
355
+ return false;
356
+ }
357
+ /**
358
+ * Grant the channel role read access to any external files this destination references (e.g. a
359
+ * burn-in font in S3). Default is a no-op; burn-in and DVB-Sub destinations override it.
360
+ * @internal
361
+ */
362
+ _grantRead(_role) { }
363
+ }
364
+ exports.CaptionDestination = CaptionDestination;
365
+ /** @internal */
366
+ function bindFontStyle(p) {
367
+ return {
368
+ alignment: (p.alignment ?? CaptionAlignment.CENTERED).value,
369
+ backgroundColor: p.backgroundColor?.value,
370
+ backgroundOpacity: p.backgroundOpacity,
371
+ font: p.font?._bind(),
372
+ fontColor: (p.fontColor ?? CaptionFontColor.WHITE).value,
373
+ fontOpacity: p.fontOpacity ?? 255,
374
+ fontResolution: p.fontResolution ?? 96,
375
+ fontSize: (p.fontSize ?? CaptionFontSize.AUTO)._bind(),
376
+ outlineColor: (p.outlineColor ?? CaptionOutlineColor.BLACK).value,
377
+ outlineSize: p.outlineSize ?? 2,
378
+ shadowColor: (p.shadowColor ?? CaptionShadowColor.NONE).value,
379
+ shadowOpacity: p.shadowOpacity ?? 0,
380
+ shadowXOffset: p.shadowXOffset,
381
+ shadowYOffset: p.shadowYOffset,
382
+ subtitleRows: p.subtitleRows,
383
+ teletextGridControl: (p.teletextGridControl ?? CaptionTeletextGridControl.FIXED).value,
384
+ xPosition: p.xPosition,
385
+ yPosition: p.yPosition,
386
+ };
387
+ }
388
+ /** @internal */
389
+ class BurnInCaptionDestination extends CaptionDestination {
390
+ props;
391
+ constructor(props) {
392
+ super();
393
+ this.props = props;
394
+ }
395
+ _bind() {
396
+ return { burnInDestinationSettings: bindFontStyle(this.props) };
397
+ }
398
+ _isInBand() {
399
+ return true;
400
+ }
401
+ _grantRead(role) {
402
+ this.props.font?._grantRead(role);
403
+ }
404
+ }
405
+ /** @internal */
406
+ class DvbSubCaptionDestination extends CaptionDestination {
407
+ props;
408
+ constructor(props) {
409
+ super();
410
+ this.props = props;
411
+ }
412
+ _bind() {
413
+ return { dvbSubDestinationSettings: bindFontStyle(this.props) };
414
+ }
415
+ _grantRead(role) {
416
+ this.props.font?._grantRead(role);
417
+ }
418
+ }
419
+ /** @internal */
420
+ class EbuTtDCaptionDestination extends CaptionDestination {
421
+ props;
422
+ constructor(props) {
423
+ super();
424
+ this.props = props;
425
+ }
426
+ _bind() {
427
+ return {
428
+ ebuTtDDestinationSettings: {
429
+ copyrightHolder: this.props.copyrightHolder,
430
+ defaultFontSize: this.props.defaultFontSize,
431
+ defaultLineHeight: this.props.defaultLineHeight,
432
+ fillLineGap: this.props.fillLineGap?.value,
433
+ fontFamily: this.props.fontFamily,
434
+ styleControl: this.props.styleControl?.value,
435
+ },
436
+ };
437
+ }
438
+ }
439
+ /** @internal */
440
+ class TtmlCaptionDestination extends CaptionDestination {
441
+ props;
442
+ constructor(props) {
443
+ super();
444
+ this.props = props;
445
+ }
446
+ _bind() {
447
+ return { ttmlDestinationSettings: { styleControl: (this.props.styleControl ?? TtmlStyleControl.PASSTHROUGH).value } };
448
+ }
449
+ }
450
+ /** @internal */
451
+ class WebvttCaptionDestination extends CaptionDestination {
452
+ props;
453
+ constructor(props) {
454
+ super();
455
+ this.props = props;
456
+ }
457
+ _bind() {
458
+ return { webvttDestinationSettings: { styleControl: (this.props.styleControl ?? WebvttStyleControl.NO_STYLE_DATA).value } };
459
+ }
460
+ }
461
+ /** @internal */
462
+ class SimpleCaptionDestination extends CaptionDestination {
463
+ settings;
464
+ inBand;
465
+ embedded;
466
+ constructor(settings, inBand = false, embedded = false) {
467
+ super();
468
+ this.settings = settings;
469
+ this.inBand = inBand;
470
+ this.embedded = embedded;
471
+ }
472
+ _bind() {
473
+ return this.settings;
474
+ }
475
+ _isInBand() {
476
+ return this.inBand;
477
+ }
478
+ _isEmbedded() {
479
+ return this.embedded;
480
+ }
481
+ }
482
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdGlvbi1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNhcHRpb24tc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBMkU7QUFHM0UsNEVBQTREO0FBRzVELHlEQUF5RDtBQUN6RCxNQUFhLGdCQUFnQjs7SUFDM0IsMkJBQTJCO0lBQ3BCLE1BQU0sQ0FBVSxRQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRSwrQkFBK0I7SUFDeEIsTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNELGlGQUFpRjtJQUMxRSxNQUFNLENBQVUsS0FBSyxHQUFHLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFN0QsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDcEM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBbEJILDRDQW1CQztBQUVELG1EQUFtRDtBQUNuRCxNQUFhLGdCQUFnQjs7SUFDM0IsYUFBYTtJQUNOLE1BQU0sQ0FBVSxLQUFLLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RCxZQUFZO0lBQ0wsTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNELGFBQWE7SUFDTixNQUFNLENBQVUsS0FBSyxHQUFHLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0QsV0FBVztJQUNKLE1BQU0sQ0FBVSxHQUFHLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxhQUFhO0lB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LFlBQTZCLEtBQTZCO1FBQUksS0FBSyxFQUFFLENBQUM7UUFBekMsVUFBSyxHQUFMLEtBQUssQ0FBd0I7S0FBYztJQUNqRSxLQUFLO1FBQ1YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztLQUM3SDtDQUNGO0FBRUQsZ0JBQWdCO0FBQ2hCLE1BQU0sd0JBQXlCLFNBQVEsa0JBQWtCO0lBRXBDO0lBQ0E7SUFDQTtJQUhuQixZQUNtQixRQUF1RCxFQUN2RCxTQUFrQixLQUFLLEVBQ3ZCLFdBQW9CLEtBQUs7UUFDeEMsS0FBSyxFQUFFLENBQUM7UUFITyxhQUFRLEdBQVIsUUFBUSxDQUErQztRQUN2RCxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUN2QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtLQUM5QjtJQUNQLEtBQUs7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7S0FDdEI7SUFDZSxTQUFTO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztLQUNwQjtJQUNlLFdBQVc7UUFDekIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0tBQ3RCO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb2tlbiwgVG9rZW5pemF0aW9uLCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlIHsgSVJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB0eXBlIHsgQ2ZuQ2hhbm5lbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYWxpdmUnO1xuaW1wb3J0IHsgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgdHlwZSB7IEZpbGVMb2NhdGlvbiB9IGZyb20gJy4vZmlsZS1sb2NhdGlvbic7XG5cbi8qKiBDYXB0aW9uIGFsaWdubWVudCBmb3IgYnVybi1pbiBhbmQgRFZCLVN1YiBvdXRwdXRzLiAqL1xuZXhwb3J0IGNsYXNzIENhcHRpb25BbGlnbm1lbnQge1xuICAvKiogQ2VudGVyIHRoZSBjYXB0aW9ucy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDRU5URVJFRCA9IG5ldyBDYXB0aW9uQWxpZ25tZW50KCdDRU5URVJFRCcpO1xuICAvKiogTGVmdC1hbGlnbiB0aGUgY2FwdGlvbnMuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTEVGVCA9IG5ldyBDYXB0aW9uQWxpZ25tZW50KCdMRUZUJyk7XG4gIC8qKiBTbWFydDogbGVmdC1qdXN0aWZ5IGxpdmUgc3VidGl0bGVzLCBjZW50ZXItanVzdGlmeSBwcmUtcmVjb3JkZWQgc3VidGl0bGVzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNNQVJUID0gbmV3IENhcHRpb25BbGlnbm1lbnQoJ1NNQVJUJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBDYXB0aW9uQWxpZ25tZW50IHtcbiAgICByZXR1cm4gbmV3IENhcHRpb25BbGlnbm1lbnQodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogRm9udCBjb2xvciBmb3IgYnVybi1pbiBhbmQgRFZCLVN1YiBjYXB0aW9ucy4gKi9cbmV4cG9ydCBjbGFzcyBDYXB0aW9uRm9udENvbG9yIHtcbiAgLyoqIEJsYWNrLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJMQUNLID0gbmV3IENhcHRpb25Gb250Q29sb3IoJ0JMQUNLJyk7XG4gIC8qKiBCbHVlLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJMVUUgPSBuZXcgQ2FwdGlvbkZvbnRDb2xvcignQkxVRScpO1xuICAvKiogR3JlZW4uICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR1JFRU4gPSBuZXcgQ2FwdGlvbkZvbnRDb2xvcignR1JFRU4nKTtcbiAgLyoqIFJlZC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRUQgPSBuZXcgQ2FwdGlvbkZvbnRDb2xvcignUkVEJyk7XG4gIC8qKiBXaGl0ZS4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBXSElURSA9IG5ldyBDYXB0aW9uRm9udENvbG9yKCdXSElURScpO1xuICAvKiogWWVsbG93LiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFlFTExPVyA9IG5ldyBDYXB0aW9uRm9udENvbG9yKCdZRUxMT1cnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IENhcHRpb25Gb250Q29sb3Ige1xuICAgIHJldHVybiBuZXcgQ2FwdGlvbkZvbnRDb2xvcih2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBGb250IG91dGxpbmUgY29sb3IgZm9yIGJ1cm4taW4gYW5kIERWQi1TdWIgY2FwdGlvbnMuICovXG5leHBvcnQgY2xhc3MgQ2FwdGlvbk91dGxpbmVDb2xvciB7XG4gIC8qKiBCbGFjay4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCTEFDSyA9IG5ldyBDYXB0aW9uT3V0bGluZUNvbG9yKCdCTEFDSycpO1xuICAvKiogQmx1ZS4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCTFVFID0gbmV3IENhcHRpb25PdXRsaW5lQ29sb3IoJ0JMVUUnKTtcbiAgLyoqIEdyZWVuLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdSRUVOID0gbmV3IENhcHRpb25PdXRsaW5lQ29sb3IoJ0dSRUVOJyk7XG4gIC8qKiBSZWQuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkVEID0gbmV3IENhcHRpb25PdXRsaW5lQ29sb3IoJ1JFRCcpO1xuICAvKiogV2hpdGUuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgV0hJVEUgPSBuZXcgQ2FwdGlvbk91dGxpbmVDb2xvcignV0hJVEUnKTtcbiAgLyoqIFllbGxvdy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBZRUxMT1cgPSBuZXcgQ2FwdGlvbk91dGxpbmVDb2xvcignWUVMTE9XJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBDYXB0aW9uT3V0bGluZUNvbG9yIHtcbiAgICByZXR1cm4gbmV3IENhcHRpb25PdXRsaW5lQ29sb3IodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogQmFja2dyb3VuZCBjb2xvciBmb3IgYnVybi1pbiBhbmQgRFZCLVN1YiBjYXB0aW9ucy4gKi9cbmV4cG9ydCBjbGFzcyBDYXB0aW9uQmFja2dyb3VuZENvbG9yIHtcbiAgLyoqIEJsYWNrLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJMQUNLID0gbmV3IENhcHRpb25CYWNrZ3JvdW5kQ29sb3IoJ0JMQUNLJyk7XG4gIC8qKiBOb25lICh0cmFuc3BhcmVudCkuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ORSA9IG5ldyBDYXB0aW9uQmFja2dyb3VuZENvbG9yKCdOT05FJyk7XG4gIC8qKiBXaGl0ZS4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBXSElURSA9IG5ldyBDYXB0aW9uQmFja2dyb3VuZENvbG9yKCdXSElURScpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogQ2FwdGlvbkJhY2tncm91bmRDb2xvciB7XG4gICAgcmV0dXJuIG5ldyBDYXB0aW9uQmFja2dyb3VuZENvbG9yKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIFNoYWRvdyBjb2xvciBmb3IgYnVybi1pbiBhbmQgRFZCLVN1YiBjYXB0aW9ucy4gKi9cbmV4cG9ydCBjbGFzcyBDYXB0aW9uU2hhZG93Q29sb3Ige1xuICAvKiogQmxhY2suICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQkxBQ0sgPSBuZXcgQ2FwdGlvblNoYWRvd0NvbG9yKCdCTEFDSycpO1xuICAvKiogTm9uZSAodHJhbnNwYXJlbnQpLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PTkUgPSBuZXcgQ2FwdGlvblNoYWRvd0NvbG9yKCdOT05FJyk7XG4gIC8qKiBXaGl0ZS4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBXSElURSA9IG5ldyBDYXB0aW9uU2hhZG93Q29sb3IoJ1dISVRFJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBDYXB0aW9uU2hhZG93Q29sb3Ige1xuICAgIHJldHVybiBuZXcgQ2FwdGlvblNoYWRvd0NvbG9yKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIENvbnRyb2xzIHdoZXRoZXIgYSBmaXhlZCBncmlkIGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHN1YnRpdGxlIGJpdG1hcCAoVGVsZXRleHQgaW5wdXQpLiAqL1xuZXhwb3J0IGNsYXNzIENhcHRpb25UZWxldGV4dEdyaWRDb250cm9sIHtcbiAgLyoqIEZpeGVkIGdyaWQuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRklYRUQgPSBuZXcgQ2FwdGlvblRlbGV0ZXh0R3JpZENvbnRyb2woJ0ZJWEVEJyk7XG4gIC8qKiBTY2FsZWQgZ3JpZC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTQ0FMRUQgPSBuZXcgQ2FwdGlvblRlbGV0ZXh0R3JpZENvbnRyb2woJ1NDQUxFRCcpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogQ2FwdGlvblRlbGV0ZXh0R3JpZENvbnRyb2wge1xuICAgIHJldHVybiBuZXcgQ2FwdGlvblRlbGV0ZXh0R3JpZENvbnRyb2wodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogV2hldGhlciBFQlUtVFQtRCBmaWxscyB0aGUgZ2FwIGJldHdlZW4gbXVsdGktbGluZSBjYXB0aW9ucy4gKi9cbmV4cG9ydCBjbGFzcyBFYnVUdERGaWxsTGluZUdhcCB7XG4gIC8qKiBMZWF2ZSB0aGUgZ2FwIHVuZmlsbGVkLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERJU0FCTEVEID0gbmV3IEVidVR0REZpbGxMaW5lR2FwKCdESVNBQkxFRCcpO1xuICAvKiogRmlsbCB3aXRoIHRoZSBjYXB0aW9ucyBiYWNrZ3JvdW5kIGNvbG9yLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVOQUJMRUQgPSBuZXcgRWJ1VHRERmlsbExpbmVHYXAoJ0VOQUJMRUQnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEVidVR0REZpbGxMaW5lR2FwIHtcbiAgICByZXR1cm4gbmV3IEVidVR0REZpbGxMaW5lR2FwKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIFdoZXRoZXIgRUJVLVRULUQgaW5jbHVkZXMgc291cmNlIHN0eWxlIGluZm9ybWF0aW9uLiAqL1xuZXhwb3J0IGNsYXNzIEVidVR0RFN0eWxlQ29udHJvbCB7XG4gIC8qKiBTZXQgdGhlIGZvbnQgZmFtaWx5IHRvIG1vbm9zcGFjZWQgYW5kIGV4Y2x1ZGUgb3RoZXIgc3R5bGUgaW5mby4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFWENMVURFID0gbmV3IEVidVR0RFN0eWxlQ29udHJvbCgnRVhDTFVERScpO1xuICAvKiogSW5jbHVkZSBzb3VyY2Ugc3R5bGUgKGNvbG9yLCBwb3NpdGlvbikgaW4gdGhlIGZvbnQgZGF0YS4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTkNMVURFID0gbmV3IEVidVR0RFN0eWxlQ29udHJvbCgnSU5DTFVERScpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogRWJ1VHREU3R5bGVDb250cm9sIHtcbiAgICByZXR1cm4gbmV3IEVidVR0RFN0eWxlQ29udHJvbCh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBXaGV0aGVyIFRUTUwgcGFzc2VzIHRocm91Z2ggc291cmNlIHN0eWxlL3Bvc2l0aW9uLiAqL1xuZXhwb3J0IGNsYXNzIFR0bWxTdHlsZUNvbnRyb2wge1xuICAvKiogUGFzcyB0aHJvdWdoIHN0eWxlIGFuZCBwb3NpdGlvbiBmcm9tIGEgVFRNTC1saWtlIHNvdXJjZS4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVNTVEhST1VHSCA9IG5ldyBUdG1sU3R5bGVDb250cm9sKCdQQVNTVEhST1VHSCcpO1xuICAvKiogVXNlIHRoZSBjb25maWd1cmVkIHN0eWxlLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVTRV9DT05GSUdVUkVEID0gbmV3IFR0bWxTdHlsZUNvbnRyb2woJ1VTRV9DT05GSUdVUkVEJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBUdG1sU3R5bGVDb250cm9sIHtcbiAgICByZXR1cm4gbmV3IFR0bWxTdHlsZUNvbnRyb2wodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogV2hldGhlciBXZWJWVFQgcGFzc2VzIHRocm91Z2ggc291cmNlIHN0eWxlL3Bvc2l0aW9uLiAqL1xuZXhwb3J0IGNsYXNzIFdlYnZ0dFN0eWxlQ29udHJvbCB7XG4gIC8qKiBEbyBub3QgcGFzcyB0aHJvdWdoIHN0eWxlOyBvdXRwdXQgY29udGFpbnMgbm8gZm9udCBzdHlsaW5nLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PX1NUWUxFX0RBVEEgPSBuZXcgV2VidnR0U3R5bGVDb250cm9sKCdOT19TVFlMRV9EQVRBJyk7XG4gIC8qKiBQYXNzIHRocm91Z2ggc3R5bGUgKHZhbGlkIG9ubHkgZm9yIEVNQkVEREVEIG9yIFRFTEVURVhUIHNvdXJjZXMpLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBU1NUSFJPVUdIID0gbmV3IFdlYnZ0dFN0eWxlQ29udHJvbCgnUEFTU1RIUk9VR0gnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IFdlYnZ0dFN0eWxlQ29udHJvbCB7XG4gICAgcmV0dXJuIG5ldyBXZWJ2dHRTdHlsZUNvbnRyb2wodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIEZvbnQgc2l6ZSBmb3IgYnVybi1pbiBhbmQgRFZCLVN1YiBjYXB0aW9ucy5cbiAqXG4gKiBVc2Uge0BsaW5rIENhcHRpb25Gb250U2l6ZS5BVVRPfSB0byBzY2FsZSB0aGUgZm9udCBzaXplIHdpdGggdGhlIG91dHB1dCByZXNvbHV0aW9uLCBvclxuICoge0BsaW5rIENhcHRpb25Gb250U2l6ZS5vZn0gdG8gc2V0IGFuIGV4YWN0IHNpemUgaW4gcG9pbnRzLlxuICovXG5leHBvcnQgY2xhc3MgQ2FwdGlvbkZvbnRTaXplIHtcbiAgLyoqIFNjYWxlIHRoZSBmb250IHNpemUgYXV0b21hdGljYWxseSB0byBtYXRjaCB0aGUgb3V0cHV0IHJlc29sdXRpb24uICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUTyA9IG5ldyBDYXB0aW9uRm9udFNpemUoJ2F1dG8nKTtcblxuICAvKipcbiAgICogQW4gZXhhY3QgZm9udCBzaXplLCBpbiBwb2ludHMuXG4gICAqXG4gICAqIEBwYXJhbSBwb2ludHMgdGhlIGZvbnQgc2l6ZSBpbiBwb2ludHM7IG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHBvaW50czogbnVtYmVyKTogQ2FwdGlvbkZvbnRTaXplIHtcbiAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChwb2ludHMpICYmICghTnVtYmVyLmlzSW50ZWdlcihwb2ludHMpIHx8IHBvaW50cyA8PSAwKSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGxpdGBDYXB0aW9uRm9udFNpemVJbnZhbGlkYCwgYGNhcHRpb24gZm9udCBzaXplIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCBnb3QgJHtKU09OLnN0cmluZ2lmeShwb2ludHMpfWApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IENhcHRpb25Gb250U2l6ZShUb2tlbml6YXRpb24uc3RyaW5naWZ5TnVtYmVyKHBvaW50cykpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmcpIHt9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgX2JpbmQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIEZvbnQgYW5kIHBvc2l0aW9uaW5nIHNldHRpbmdzIGZvciBhIHJlbmRlcmVkIGNhcHRpb24gb3V0cHV0IChidXJuLWluIG9yIERWQi1TdWIpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhcHRpb25Gb250U3R5bGVQcm9wcyB7XG4gIC8qKlxuICAgKiBDYXB0aW9uIGFsaWdubWVudC4gV2l0aCBleHBsaWNpdCB4L3kgcG9zaXRpb25zLCB0aGUgZm9udCBpcyBqdXN0aWZpZWQgcmVsYXRpdmUgdG8gdGhlbS5cbiAgICogQGRlZmF1bHQgQ2FwdGlvbkFsaWdubWVudC5DRU5URVJFRFxuICAgKi9cbiAgcmVhZG9ubHkgYWxpZ25tZW50PzogQ2FwdGlvbkFsaWdubWVudDtcbiAgLyoqXG4gICAqIFRoZSBjb2xvciBvZiB0aGUgcmVjdGFuZ2xlIGJlaGluZCB0aGUgY2FwdGlvbnMuXG4gICAqIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBiYWNrZ3JvdW5kQ29sb3I/OiBDYXB0aW9uQmFja2dyb3VuZENvbG9yO1xuICAvKipcbiAgICogVGhlIG9wYWNpdHkgb2YgdGhlIGJhY2tncm91bmQgcmVjdGFuZ2xlICgwIHRyYW5zcGFyZW50IC4uIDI1NSBvcGFxdWUpLlxuICAgKiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgYmFja2dyb3VuZE9wYWNpdHk/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBBbiBleHRlcm5hbCBmb250IGZpbGUgKC50dGYgb3IgLnR0ZSkgdXNlZCBmb3IgYnVybi1pbi4gUHJvdmlkZSBhIGBGaWxlTG9jYXRpb25gIHJlZmVyZW5jaW5nXG4gICAqIGFuIFMzIGJ1Y2tldCAoYEZpbGVMb2NhdGlvbi5mcm9tQnVja2V0YCwgd2hpY2ggYXV0by1ncmFudHMgcmVhZCBhY2Nlc3MpIG9yIGEgVVJMXG4gICAqIChgRmlsZUxvY2F0aW9uLnVybGApLlxuICAgKiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdCBmb250XG4gICAqL1xuICByZWFkb25seSBmb250PzogRmlsZUxvY2F0aW9uO1xuICAvKipcbiAgICogVGhlIGNvbG9yIG9mIHRoZSBidXJuZWQtaW4gY2FwdGlvbnMuXG4gICAqIEBkZWZhdWx0IENhcHRpb25Gb250Q29sb3IuV0hJVEVcbiAgICovXG4gIHJlYWRvbmx5IGZvbnRDb2xvcj86IENhcHRpb25Gb250Q29sb3I7XG4gIC8qKlxuICAgKiBUaGUgb3BhY2l0eSBvZiB0aGUgYnVybmVkLWluIGNhcHRpb25zICgwIHRyYW5zcGFyZW50IC4uIDI1NSBvcGFxdWUpLlxuICAgKiBAZGVmYXVsdCAyNTVcbiAgICovXG4gIHJlYWRvbmx5IGZvbnRPcGFjaXR5PzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIGZvbnQgcmVzb2x1dGlvbiBpbiBEUEkuXG4gICAqIEBkZWZhdWx0IDk2XG4gICAqL1xuICByZWFkb25seSBmb250UmVzb2x1dGlvbj86IG51bWJlcjtcbiAgLyoqXG4gICAqIEZvbnQgc2l6ZSDigJQgYENhcHRpb25Gb250U2l6ZS5BVVRPYCB0byBzY2FsZSB3aXRoIHRoZSBvdXRwdXQsIG9yIGBDYXB0aW9uRm9udFNpemUub2YocG9pbnRzKWBcbiAgICogZm9yIGFuIGV4YWN0IHNpemUgaW4gcG9pbnRzLlxuICAgKiBAZGVmYXVsdCBDYXB0aW9uRm9udFNpemUuQVVUT1xuICAgKi9cbiAgcmVhZG9ubHkgZm9udFNpemU/OiBDYXB0aW9uRm9udFNpemU7XG4gIC8qKlxuICAgKiBUaGUgZm9udCBvdXRsaW5lIGNvbG9yLlxuICAgKiBAZGVmYXVsdCBDYXB0aW9uT3V0bGluZUNvbG9yLkJMQUNLXG4gICAqL1xuICByZWFkb25seSBvdXRsaW5lQ29sb3I/OiBDYXB0aW9uT3V0bGluZUNvbG9yO1xuICAvKipcbiAgICogVGhlIGZvbnQgb3V0bGluZSBzaXplIGluIHBpeGVscy5cbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0bGluZVNpemU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgY29sb3Igb2YgdGhlIHNoYWRvdyBjYXN0IGJ5IHRoZSBjYXB0aW9ucy5cbiAgICogQGRlZmF1bHQgQ2FwdGlvblNoYWRvd0NvbG9yLk5PTkVcbiAgICovXG4gIHJlYWRvbmx5IHNoYWRvd0NvbG9yPzogQ2FwdGlvblNoYWRvd0NvbG9yO1xuICAvKipcbiAgICogVGhlIG9wYWNpdHkgb2YgdGhlIHNoYWRvdyAoMCB0cmFuc3BhcmVudCAuLiAyNTUgb3BhcXVlKS5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgc2hhZG93T3BhY2l0eT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBob3Jpem9udGFsIG9mZnNldCBvZiB0aGUgc2hhZG93IGluIHBpeGVscyAobmVnYXRpdmUgc2hpZnRzIGxlZnQpLlxuICAgKiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgc2hhZG93WE9mZnNldD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSB2ZXJ0aWNhbCBvZmZzZXQgb2YgdGhlIHNoYWRvdyBpbiBwaXhlbHMgKG5lZ2F0aXZlIHNoaWZ0cyB1cCkuXG4gICAqIEBkZWZhdWx0IC0gc2VydmljZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBzaGFkb3dZT2Zmc2V0PzogbnVtYmVyO1xuICAvKipcbiAgICogRm9yIFRlbGV0ZXh0IGlucHV0LCB0aGUgbnVtYmVyIG9mIGxpbmVzIGZvciB0aGUgY2FwdGlvbnMgYml0bWFwLlxuICAgKiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgc3VidGl0bGVSb3dzPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciBhIGZpeGVkIGdyaWQgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgc3VidGl0bGUgYml0bWFwIChUZWxldGV4dCBpbnB1dCkuXG4gICAqIEBkZWZhdWx0IENhcHRpb25UZWxldGV4dEdyaWRDb250cm9sLkZJWEVEXG4gICAqL1xuICByZWFkb25seSB0ZWxldGV4dEdyaWRDb250cm9sPzogQ2FwdGlvblRlbGV0ZXh0R3JpZENvbnRyb2w7XG4gIC8qKlxuICAgKiBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgY2FwdGlvbnMgaW4gcGl4ZWxzIGZyb20gdGhlIGxlZnQuXG4gICAqIEBkZWZhdWx0IC0gZGV0ZXJtaW5lZCBieSBgYWxpZ25tZW50YFxuICAgKi9cbiAgcmVhZG9ubHkgeFBvc2l0aW9uPzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBjYXB0aW9ucyBpbiBwaXhlbHMgZnJvbSB0aGUgdG9wLlxuICAgKiBAZGVmYXVsdCAtIHBvc2l0aW9uZWQgdG93YXJkcyB0aGUgYm90dG9tXG4gICAqL1xuICByZWFkb25seSB5UG9zaXRpb24/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVybi1pbiBjYXB0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdXJuSW5EZXN0aW5hdGlvblByb3BzIGV4dGVuZHMgQ2FwdGlvbkZvbnRTdHlsZVByb3BzIHt9XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgRFZCLVN1YiBjYXB0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEdmJTdWJEZXN0aW5hdGlvblByb3BzIGV4dGVuZHMgQ2FwdGlvbkZvbnRTdHlsZVByb3BzIHt9XG5cbi8qKiBQcm9wZXJ0aWVzIGZvciBFQlUtVFQtRCBjYXB0aW9uIG91dHB1dC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWJ1VHRERGVzdGluYXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgY29weXJpZ2h0IGhvbGRlciBpbmNsdWRlZCBpbiB0aGUgVFRNTCBjb3B5cmlnaHQgbWV0YWRhdGEgdGFnLlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvcHlyaWdodCBob2xkZXJcbiAgICovXG4gIHJlYWRvbmx5IGNvcHlyaWdodEhvbGRlcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGZvbnQgc2l6ZS5cbiAgICogQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRGb250U2l6ZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGxpbmUgaGVpZ2h0LlxuICAgKiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdExpbmVIZWlnaHQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBIb3cgdG8gaGFuZGxlIHRoZSBnYXAgYmV0d2VlbiBtdWx0aS1saW5lIGNhcHRpb25zLlxuICAgKiBAZGVmYXVsdCAtIHNlcnZpY2UgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgZmlsbExpbmVHYXA/OiBFYnVUdERGaWxsTGluZUdhcDtcbiAgLyoqXG4gICAqIEEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZm9udCBmYW1pbGllcyB0byBpbmNsdWRlICh2YWxpZCBvbmx5IHdoZW4gYHN0eWxlQ29udHJvbGAgaXMgSU5DTFVERSkuXG4gICAqIEBkZWZhdWx0IC0gJ21vbm9zcGFjZWQnXG4gICAqL1xuICByZWFkb25seSBmb250RmFtaWx5Pzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciBzb3VyY2Ugc3R5bGUgaW5mb3JtYXRpb24gaXMgaW5jbHVkZWQgaW4gdGhlIEVCVS1UVC1EIGZvbnQgZGF0YS5cbiAgICogQGRlZmF1bHQgLSBzZXJ2aWNlIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IHN0eWxlQ29udHJvbD86IEVidVR0RFN0eWxlQ29udHJvbDtcbn1cblxuLyoqIFByb3BlcnRpZXMgZm9yIFRUTUwgY2FwdGlvbiBvdXRwdXQuICovXG5leHBvcnQgaW50ZXJmYWNlIFR0bWxEZXN0aW5hdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcGFzcyB0aHJvdWdoIHN0eWxlIGFuZCBwb3NpdGlvbiBmcm9tIGEgVFRNTC1saWtlIHNvdXJjZS5cbiAgICogQGRlZmF1bHQgVHRtbFN0eWxlQ29udHJvbC5QQVNTVEhST1VHSFxuICAgKi9cbiAgcmVhZG9ubHkgc3R5bGVDb250cm9sPzogVHRtbFN0eWxlQ29udHJvbDtcbn1cblxuLyoqIFByb3BlcnRpZXMgZm9yIFdlYlZUVCBjYXB0aW9uIG91dHB1dC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2VidnR0RGVzdGluYXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHBhc3MgdGhyb3VnaCBzb3VyY2UgY29sb3IgYW5kIHBvc2l0aW9uIHRvIHRoZSBXZWJWVFQgb3V0cHV0LlxuICAgKiBQQVNTVEhST1VHSCBpcyBvbmx5IHZhbGlkIGZvciBFTUJFRERFRCBvciBURUxFVEVYVCBzb3VyY2VzLlxuICAgKiBAZGVmYXVsdCBXZWJ2dHRTdHlsZUNvbnRyb2wuTk9fU1RZTEVfREFUQVxuICAgKi9cbiAgcmVhZG9ubHkgc3R5bGVDb250cm9sPzogV2VidnR0U3R5bGVDb250cm9sO1xufVxuXG4vKipcbiAqIFRoZSBvdXRwdXQgY2FwdGlvbiBmb3JtYXQgZm9yIGEgY2FwdGlvbiBlbmNvZGUuIFVzZSB0aGUgc3RhdGljIGZhY3RvcnkgbWV0aG9kcyB0byBzZWxlY3Qgb25lIG9mXG4gKiB0aGUgc3VwcG9ydGVkIGRlc3RpbmF0aW9uIHR5cGVzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2FwdGlvbkRlc3RpbmF0aW9uIHtcbiAgLyoqIEJ1cm5lZC1pbiBjYXB0aW9ucyByZW5kZXJlZCBpbnRvIHRoZSB2aWRlby4gKi9cbiAgcHVibGljIHN0YXRpYyBidXJuSW4ocHJvcHM6IEJ1cm5JbkRlc3RpbmF0aW9uUHJvcHMgPSB7fSk6IENhcHRpb25EZXN0aW5hdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBCdXJuSW5DYXB0aW9uRGVzdGluYXRpb24ocHJvcHMpO1xuICB9XG4gIC8qKiBEVkItU3ViIGJpdG1hcCBjYXB0aW9ucy4gKi9cbiAgcHVibGljIHN0YXRpYyBkdmJTdWIocHJvcHM6IER2YlN1YkRlc3RpbmF0aW9uUHJvcHMgPSB7fSk6IENhcHRpb25EZXN0aW5hdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEdmJTdWJDYXB0aW9uRGVzdGluYXRpb24ocHJvcHMpO1xuICB9XG4gIC8qKiBFQlUtVFQtRCBzaWRlY2FyIGNhcHRpb25zLiAqL1xuICBwdWJsaWMgc3RhdGljIGVidVR0RChwcm9wczogRWJ1VHRERGVzdGluYXRpb25Qcm9wcyA9IHt9KTogQ2FwdGlvbkRlc3RpbmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IEVidVR0RENhcHRpb25EZXN0aW5hdGlvbihwcm9wcyk7XG4gIH1cbiAgLyoqIFRUTUwgc2lkZWNhciBjYXB0aW9ucy4gKi9cbiAgcHVibGljIHN0YXRpYyB0dG1sKHByb3BzOiBUdG1sRGVzdGluYXRpb25Qcm9wcyA9IHt9KTogQ2FwdGlvbkRlc3RpbmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IFR0bWxDYXB0aW9uRGVzdGluYXRpb24ocHJvcHMpO1xuICB9XG4gIC8qKiBXZWJWVFQgc2lkZWNhciBjYXB0aW9ucy4gKi9cbiAgcHVibGljIHN0YXRpYyB3ZWJ2dHQocHJvcHM6IFdlYnZ0dERlc3RpbmF0aW9uUHJvcHMgPSB7fSk6IENhcHRpb25EZXN0aW5hdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBXZWJ2dHRDYXB0aW9uRGVzdGluYXRpb24ocHJvcHMpO1xuICB9XG4gIC8qKiBBUklCIGNhcHRpb25zLiAqL1xuICBwdWJsaWMgc3RhdGljIGFyaWIoKTogQ2FwdGlvbkRlc3RpbmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IFNpbXBsZUNhcHRpb25EZXN0aW5hdGlvbih7IGFyaWJEZXN0aW5hdGlvblNldHRpbmdzOiB7fSB9KTtcbiAgfVxuICAvKiogRW1iZWRkZWQgKENFQS02MDgvNzA4KSBjYXB0aW9ucy4gKi9cbiAgcHVibGljIHN0YXRpYyBlbWJlZGRlZCgpOiBDYXB0aW9uRGVzdGluYXRpb24ge1xuICAgIHJldHVybiBuZXcgU2ltcGxlQ2FwdGlvbkRlc3RpbmF0aW9uKHsgZW1iZWRkZWREZXN0aW5hdGlvblNldHRpbmdzOiB7fSB9LCB0cnVlLCB0cnVlKTtcbiAgfVxuICAvKiogRW1iZWRkZWQgcGx1cyBTQ1RFLTIwIGNhcHRpb25zLiAqL1xuICBwdWJsaWMgc3RhdGljIGVtYmVkZGVkUGx1c1NjdGUyMCgpOiBDYXB0aW9uRGVzdGluYXRpb24ge1xuICAgIHJldHVybiBuZXcgU2ltcGxlQ2FwdGlvbkRlc3RpbmF0aW9uKHsgZW1iZWRkZWRQbHVzU2N0ZTIwRGVzdGluYXRpb25TZXR0aW5nczoge30gfSwgdHJ1ZSwgdHJ1ZSk7XG4gIH1cbiAgLyoqIFNDVEUtMjAgcGx1cyBlbWJlZGRlZCBjYXB0aW9ucy4gKi9cbiAgcHVibGljIHN0YXRpYyBzY3RlMjBQbHVzRW1iZWRkZWQoKTogQ2FwdGlvbkRlc3RpbmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IFNpbXBsZUNhcHRpb25EZXN0aW5hdGlvbih7IHNjdGUyMFBsdXNFbWJlZGRlZERlc3RpbmF0aW9uU2V0dGluZ3M6IHt9IH0sIHRydWUsIHRydWUpO1xuICB9XG4gIC8qKiBTTVBURS1UVCBzaWRlY2FyIGNhcHRpb25zLiAqL1xuICBwdWJsaWMgc3RhdGljIHNtcHRlVHQoKTogQ2FwdGlvbkRlc3RpbmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IFNpbXBsZUNhcHRpb25EZXN0aW5hdGlvbih7IHNtcHRlVHREZXN0aW5hdGlvblNldHRpbmdzOiB7fSB9KTtcbiAgfVxuICAvKiogVGVsZXRleHQgY2FwdGlvbnMuICovXG4gIHB1YmxpYyBzdGF0aWMgdGVsZXRleHQoKTogQ2FwdGlvbkRlc3RpbmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IFNpbXBsZUNhcHRpb25EZXN0aW5hdGlvbih7IHRlbGV0ZXh0RGVzdGluYXRpb25TZXR0aW5nczoge30gfSk7XG4gIH1cbiAgLyoqIFJUTVAgQ2FwdGlvbkluZm8gY2FwdGlvbnMuICovXG4gIHB1YmxpYyBzdGF0aWMgcnRtcENhcHRpb25JbmZvKCk6IENhcHRpb25EZXN0aW5hdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBTaW1wbGVDYXB0aW9uRGVzdGluYXRpb24oeyBydG1wQ2FwdGlvbkluZm9EZXN0aW5hdGlvblNldHRpbmdzOiB7fSB9KTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIGFic3RyYWN0IF9iaW5kKCk6IENmbkNoYW5uZWwuQ2FwdGlvbkRlc3RpbmF0aW9uU2V0dGluZ3NQcm9wZXJ0eTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGNhcHRpb24gdHlwZSBwcm9kdWNlcyBubyBzZXBhcmF0ZSB0cmFjayAocmVuZGVyZWQgaW50byB0aGUgdmlkZW8gb3IgcGFzc2VkXG4gICAqIHRocm91Z2ggaW4gdGhlIHZpZGVvIHN0cmVhbSkuIEJ1cm4taW4sIGVtYmVkZGVkLCBlbWJlZGRlZFBsdXNTY3RlMjAsIGFuZCBzY3RlMjBQbHVzRW1iZWRkZWRcbiAgICogYXJlIGluLWJhbmQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9pc0luQmFuZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGlzIGFuIGVtYmVkZGVkLWZhbWlseSBjYXB0aW9uIHR5cGUgKGVtYmVkZGVkLCBlbWJlZGRlZFBsdXNTY3RlMjAsXG4gICAqIHNjdGUyMFBsdXNFbWJlZGRlZCkuIE9ubHkgb25lIGVtYmVkZGVkIGNhcHRpb24gcGVyIG91dHB1dCBpcyBhbGxvd2VkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfaXNFbWJlZGRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdGhlIGNoYW5uZWwgcm9sZSByZWFkIGFjY2VzcyB0byBhbnkgZXh0ZXJuYWwgZmlsZXMgdGhpcyBkZXN0aW5hdGlvbiByZWZlcmVuY2VzIChlLmcuIGFcbiAgICogYnVybi1pbiBmb250IGluIFMzKS4gRGVmYXVsdCBpcyBhIG5vLW9wOyBidXJuLWluIGFuZCBEVkItU3ViIGRlc3RpbmF0aW9ucyBvdmVycmlkZSBpdC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX2dyYW50UmVhZChfcm9sZTogSVJvbGUpOiB2b2lkIHt9XG59XG5cbi8qKiBAaW50ZXJuYWwgKi9cbmZ1bmN0aW9uIGJpbmRGb250U3R5bGUocDogQ2FwdGlvbkZvbnRTdHlsZVByb3BzKTogQ2ZuQ2hhbm5lbC5CdXJuSW5EZXN0aW5hdGlvblNldHRpbmdzUHJvcGVydHkge1xuICByZXR1cm4ge1xuICAgIGFsaWdubWVudDogKHAuYWxpZ25tZW50ID8/IENhcHRpb25BbGlnbm1lbnQuQ0VOVEVSRUQpLnZhbHVlLFxuICAgIGJhY2tncm91bmRDb2xvcjogcC5iYWNrZ3JvdW5kQ29sb3I/LnZhbHVlLFxuICAgIGJhY2tncm91bmRPcGFjaXR5OiBwLmJhY2tncm91bmRPcGFjaXR5LFxuICAgIGZvbnQ6IHAuZm9udD8uX2JpbmQoKSxcbiAgICBmb250Q29sb3I6IChwLmZvbnRDb2xvciA/PyBDYXB0aW9uRm9udENvbG9yLldISVRFKS52YWx1ZSxcbiAgICBmb250T3BhY2l0eTogcC5mb250T3BhY2l0eSA/PyAyNTUsXG4gICAgZm9udFJlc29sdXRpb246IHAuZm9udFJlc29sdXRpb24gPz8gOTYsXG4gICAgZm9udFNpemU6IChwLmZvbnRTaXplID8/IENhcHRpb25Gb250U2l6ZS5BVVRPKS5fYmluZCgpLFxuICAgIG91dGxpbmVDb2xvcjogKHAub3V0bGluZUNvbG9yID8/IENhcHRpb25PdXRsaW5lQ29sb3IuQkxBQ0spLnZhbHVlLFxuICAgIG91dGxpbmVTaXplOiBwLm91dGxpbmVTaXplID8/IDIsXG4gICAgc2hhZG93Q29sb3I6IChwLnNoYWRvd0NvbG9yID8/IENhcHRpb25TaGFkb3dDb2xvci5OT05FKS52YWx1ZSxcbiAgICBzaGFkb3dPcGFjaXR5OiBwLnNoYWRvd09wYWNpdHkgPz8gMCxcbiAgICBzaGFkb3dYT2Zmc2V0OiBwLnNoYWRvd1hPZmZzZXQsXG4gICAgc2hhZG93WU9mZnNldDogcC5zaGFkb3dZT2Zmc2V0LFxuICAgIHN1YnRpdGxlUm93czogcC5zdWJ0aXRsZVJvd3MsXG4gICAgdGVsZXRleHRHcmlkQ29udHJvbDogKHAudGVsZXRleHRHcmlkQ29udHJvbCA/PyBDYXB0aW9uVGVsZXRleHRHcmlkQ29udHJvbC5GSVhFRCkudmFsdWUsXG4gICAgeFBvc2l0aW9uOiBwLnhQb3NpdGlvbixcbiAgICB5UG9zaXRpb246IHAueVBvc2l0aW9uLFxuICB9O1xufVxuXG4vKiogQGludGVybmFsICovXG5jbGFzcyBCdXJuSW5DYXB0aW9uRGVzdGluYXRpb24gZXh0ZW5kcyBDYXB0aW9uRGVzdGluYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBCdXJuSW5EZXN0aW5hdGlvblByb3BzKSB7IHN1cGVyKCk7IH1cbiAgcHVibGljIF9iaW5kKCk6IENmbkNoYW5uZWwuQ2FwdGlvbkRlc3RpbmF0aW9uU2V0dGluZ3NQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHsgYnVybkluRGVzdGluYXRpb25TZXR0aW5nczogYmluZEZvbnRTdHlsZSh0aGlzLnByb3BzKSB9O1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBfaXNJbkJhbmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIF9ncmFudFJlYWQocm9sZTogSVJvbGUpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BzLmZvbnQ/Ll9ncmFudFJlYWQocm9sZSk7XG4gIH1cbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuY2xhc3MgRHZiU3ViQ2FwdGlvbkRlc3RpbmF0aW9uIGV4dGVuZHMgQ2FwdGlvbkRlc3RpbmF0aW9uIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogRHZiU3ViRGVzdGluYXRpb25Qcm9wcykgeyBzdXBlcigpOyB9XG4gIHB1YmxpYyBfYmluZCgpOiBDZm5DaGFubmVsLkNhcHRpb25EZXN0aW5hdGlvblNldHRpbmdzUHJvcGVydHkge1xuICAgIHJldHVybiB7IGR2YlN1YkRlc3RpbmF0aW9uU2V0dGluZ3M6IGJpbmRGb250U3R5bGUodGhpcy5wcm9wcykgfTtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgX2dyYW50UmVhZChyb2xlOiBJUm9sZSk6IHZvaWQge1xuICAgIHRoaXMucHJvcHMuZm9udD8uX2dyYW50UmVhZChyb2xlKTtcbiAgfVxufVxuXG4vKiogQGludGVybmFsICovXG5jbGFzcyBFYnVUdERDYXB0aW9uRGVzdGluYXRpb24gZXh0ZW5kcyBDYXB0aW9uRGVzdGluYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBFYnVUdEREZXN0aW5hdGlvblByb3BzKSB7IHN1cGVyKCk7IH1cbiAgcHVibGljIF9iaW5kKCk6IENmbkNoYW5uZWwuQ2FwdGlvbkRlc3RpbmF0aW9uU2V0dGluZ3NQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVidVR0RERlc3RpbmF0aW9uU2V0dGluZ3M6IHtcbiAgICAgICAgY29weXJpZ2h0SG9sZGVyOiB0aGlzLnByb3BzLmNvcHlyaWdodEhvbGRlcixcbiAgICAgICAgZGVmYXVsdEZvbnRTaXplOiB0aGlzLnByb3BzLmRlZmF1bHRGb250U2l6ZSxcbiAgICAgICAgZGVmYXVsdExpbmVIZWlnaHQ6IHRoaXMucHJvcHMuZGVmYXVsdExpbmVIZWlnaHQsXG4gICAgICAgIGZpbGxMaW5lR2FwOiB0aGlzLnByb3BzLmZpbGxMaW5lR2FwPy52YWx1ZSxcbiAgICAgICAgZm9udEZhbWlseTogdGhpcy5wcm9wcy5mb250RmFtaWx5LFxuICAgICAgICBzdHlsZUNvbnRyb2w6IHRoaXMucHJvcHMuc3R5bGVDb250cm9sPy52YWx1ZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKiogQGludGVybmFsICovXG5jbGFzcyBUdG1sQ2FwdGlvbkRlc3RpbmF0aW9uIGV4dGVuZHMgQ2FwdGlvbkRlc3RpbmF0aW9uIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogVHRtbERlc3RpbmF0aW9uUHJvcHMpIHsgc3VwZXIoKTsgfVxuICBwdWJsaWMgX2JpbmQoKTogQ2ZuQ2hhbm5lbC5DYXB0aW9uRGVzdGluYXRpb25TZXR0aW5nc1Byb3BlcnR5IHtcbiAgICByZXR1cm4geyB0dG1sRGVzdGluYXRpb25TZXR0aW5nczogeyBzdHlsZUNvbnRyb2w6ICh0aGlzLnByb3BzLnN0eWxlQ29udHJvbCA/PyBUdG1sU3R5bGVDb250cm9sLlBBU1NUSFJPVUdIKS52YWx1ZSB9IH07XG4gIH1cbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuY2xhc3MgV2VidnR0Q2FwdGlvbkRlc3RpbmF0aW9uIGV4dGVuZHMgQ2FwdGlvbkRlc3RpbmF0aW9uIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogV2VidnR0RGVzdGluYXRpb25Qcm9wcykgeyBzdXBlcigpOyB9XG4gIHB1YmxpYyBfYmluZCgpOiBDZm5DaGFubmVsLkNhcHRpb25EZXN0aW5hdGlvblNldHRpbmdzUHJvcGVydHkge1xuICAgIHJldHVybiB7IHdlYnZ0dERlc3RpbmF0aW9uU2V0dGluZ3M6IHsgc3R5bGVDb250cm9sOiAodGhpcy5wcm9wcy5zdHlsZUNvbnRyb2wgPz8gV2VidnR0U3R5bGVDb250cm9sLk5PX1NUWUxFX0RBVEEpLnZhbHVlIH0gfTtcbiAgfVxufVxuXG4vKiogQGludGVybmFsICovXG5jbGFzcyBTaW1wbGVDYXB0aW9uRGVzdGluYXRpb24gZXh0ZW5kcyBDYXB0aW9uRGVzdGluYXRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzOiBDZm5DaGFubmVsLkNhcHRpb25EZXN0aW5hdGlvblNldHRpbmdzUHJvcGVydHksXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbkJhbmQ6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVtYmVkZGVkOiBib29sZWFuID0gZmFsc2UsXG4gICkgeyBzdXBlcigpOyB9XG4gIHB1YmxpYyBfYmluZCgpOiBDZm5DaGFubmVsLkNhcHRpb25EZXN0aW5hdGlvblNldHRpbmdzUHJvcGVydHkge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBfaXNJbkJhbmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5CYW5kO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBfaXNFbWJlZGRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbWJlZGRlZDtcbiAgfVxufVxuIl19
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Feature activation state.
3
+ */
4
+ export declare class FeatureActivationState {
5
+ /** Enable the feature */
6
+ static readonly ENABLED: FeatureActivationState;
7
+ /** Disable the feature */
8
+ static readonly DISABLED: FeatureActivationState;
9
+ /** A value not yet modelled by AWS CDK. */
10
+ static of(value: string): FeatureActivationState;
11
+ /** The underlying string value passed to CloudFormation. */
12
+ readonly value: string;
13
+ private constructor();
14
+ }
15
+ /**
16
+ * Feature activations for the channel.
17
+ */
18
+ export interface FeatureActivations {
19
+ /**
20
+ * Enable Input Prepare schedule actions.
21
+ * @default - DISABLED, applied by MediaLive
22
+ */
23
+ readonly inputPrepareScheduleActions?: FeatureActivationState;
24
+ /**
25
+ * Enable output static image overlay schedule actions.
26
+ * @default - DISABLED, applied by MediaLive
27
+ */
28
+ readonly outputStaticImageOverlayScheduleActions?: FeatureActivationState;
29
+ }
30
+ /**
31
+ * Motion graphics insertion state.
32
+ */
33
+ export declare class MotionGraphicsInsertion {
34
+ /** Enable motion graphics overlay */
35
+ static readonly ENABLED: MotionGraphicsInsertion;
36
+ /** Disable motion graphics overlay */
37
+ static readonly DISABLED: MotionGraphicsInsertion;
38
+ /** A value not yet modelled by AWS CDK. */
39
+ static of(value: string): MotionGraphicsInsertion;
40
+ /** The underlying string value passed to CloudFormation. */
41
+ readonly value: string;
42
+ private constructor();
43
+ }
44
+ /**
45
+ * Motion graphics overlay configuration.
46
+ */
47
+ export interface MotionGraphicsConfiguration {
48
+ /**
49
+ * Whether to enable the motion graphics overlay.
50
+ * @default MotionGraphicsInsertion.DISABLED
51
+ */
52
+ readonly motionGraphicsInsertion?: MotionGraphicsInsertion;
53
+ }
54
+ /**
55
+ * Whether Nielsen PCM to ID3 tagging is enabled.
56
+ */
57
+ export declare class NielsenPcmToId3TaggingState {
58
+ /** Disabled. */
59
+ static readonly DISABLED: NielsenPcmToId3TaggingState;
60
+ /** Enabled. */
61
+ static readonly ENABLED: NielsenPcmToId3TaggingState;
62
+ /** A value not yet modelled by AWS CDK. */
63
+ static of(value: string): NielsenPcmToId3TaggingState;
64
+ /** The underlying string value passed to CloudFormation. */
65
+ readonly value: string;
66
+ private constructor();
67
+ }
68
+ /**
69
+ * Nielsen watermark configuration.
70
+ */
71
+ export interface NielsenConfiguration {
72
+ /**
73
+ * The Distributor ID assigned to your organization by Nielsen.
74
+ * @default - no distributor ID
75
+ */
76
+ readonly distributorId?: string;
77
+ /**
78
+ * Whether to enable Nielsen PCM to ID3 tagging.
79
+ * @default - service default
80
+ */
81
+ readonly nielsenPcmToId3Tagging?: NielsenPcmToId3TaggingState;
82
+ }
83
+ /**
84
+ * Thumbnail state.
85
+ */
86
+ export declare class ThumbnailState {
87
+ /** Enable thumbnail generation. */
88
+ static readonly AUTO: ThumbnailState;
89
+ /** Disable thumbnail generation. */
90
+ static readonly DISABLED: ThumbnailState;
91
+ /** A value not yet modelled by AWS CDK. */
92
+ static of(value: string): ThumbnailState;
93
+ /** The underlying string value passed to CloudFormation. */
94
+ readonly value: string;
95
+ private constructor();
96
+ }
97
+ /**
98
+ * Thumbnail configuration for the channel.
99
+ */
100
+ export interface ThumbnailConfiguration {
101
+ /**
102
+ * Whether to enable thumbnail generation.
103
+ * @default ThumbnailState.AUTO
104
+ */
105
+ readonly state?: ThumbnailState;
106
+ }