@aws-cdk/aws-mediaconnect-alpha 2.263.0-alpha.0 → 2.265.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.
@@ -1,6 +1,7 @@
1
1
  import type { IResource } from 'aws-cdk-lib';
2
+ import { Resource } from 'aws-cdk-lib';
2
3
  import type { ISecurityGroup, ISubnet } from 'aws-cdk-lib/aws-ec2';
3
- import type { IRouterNetworkInterfaceRef } from 'aws-cdk-lib/aws-mediaconnect';
4
+ import type { IRouterNetworkInterfaceRef, RouterNetworkInterfaceReference } from 'aws-cdk-lib/aws-mediaconnect';
4
5
  import type { Construct } from 'constructs';
5
6
  /**
6
7
  * Interface for Router Network Interface
@@ -45,7 +46,7 @@ export interface RouterNetworkInterfaceProps {
45
46
  */
46
47
  readonly configuration: RouterNetworkConfiguration;
47
48
  /**
48
- * The AWS Region where the router network interface will be created.
49
+ * Select a region for your router network interface.
49
50
  *
50
51
  * @default - Same region as the stack
51
52
  */
@@ -78,8 +79,12 @@ export interface RouterNetworkInterfaceAttributes {
78
79
  * Properties for public network configuration
79
80
  */
80
81
  export interface PublicNetworkConfigurationProps {
81
- /** CIDR blocks allowed to access the network interface */
82
- readonly cidr: string[];
82
+ /**
83
+ * CIDR blocks allowed to send inbound traffic to the network interface.
84
+ *
85
+ * @default - no inbound allowed (outbound only)
86
+ */
87
+ readonly cidr?: string[];
83
88
  }
84
89
  /**
85
90
  * Properties for VPC network configuration
@@ -99,7 +104,7 @@ export declare class RouterNetworkConfiguration {
99
104
  * @param props Public network configuration properties
100
105
  * @returns RouterNetworkConfiguration instance for public setup
101
106
  */
102
- static publicNetwork(props: PublicNetworkConfigurationProps): RouterNetworkConfiguration;
107
+ static publicNetwork(props?: PublicNetworkConfigurationProps): RouterNetworkConfiguration;
103
108
  /**
104
109
  * Create a VPC network configuration
105
110
  * @param props VPC network configuration properties
@@ -110,6 +115,16 @@ export declare class RouterNetworkConfiguration {
110
115
  private readonly _publicCidrs?;
111
116
  private constructor();
112
117
  }
118
+ /**
119
+ * Shared base for both real and imported router network interfaces.
120
+ */
121
+ declare abstract class RouterNetworkInterfaceBase extends Resource implements IRouterNetworkInterface {
122
+ abstract readonly routerNetworkInterfaceArn: string;
123
+ abstract readonly routerNetworkInterfaceId: string;
124
+ abstract readonly createdAt?: string;
125
+ abstract readonly updatedAt?: string;
126
+ get routerNetworkInterfaceRef(): RouterNetworkInterfaceReference;
127
+ }
113
128
  /**
114
129
  * Defines a AWS Elemental MediaConnect Router Network Interface
115
130
  */
@@ -151,3 +166,4 @@ export declare class RouterNetworkInterface extends RouterNetworkInterfaceBase {
151
166
  readonly updatedAt?: string;
152
167
  constructor(scope: Construct, id: string, props: RouterNetworkInterfaceProps);
153
168
  }
169
+ export {};
@@ -47,13 +47,13 @@ const shared_1 = require("./shared");
47
47
  * Factory class for creating Router Network configurations
48
48
  */
49
49
  class RouterNetworkConfiguration {
50
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.RouterNetworkConfiguration", version: "2.263.0-alpha.0" };
50
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.RouterNetworkConfiguration", version: "2.265.0-alpha.0" };
51
51
  /**
52
52
  * Create a public network configuration
53
53
  * @param props Public network configuration properties
54
54
  * @returns RouterNetworkConfiguration instance for public setup
55
55
  */
56
- static publicNetwork(props) {
56
+ static publicNetwork(props = {}) {
57
57
  try {
58
58
  jsiiDeprecationWarnings._aws_cdk_aws_mediaconnect_alpha_PublicNetworkConfigurationProps(props);
59
59
  }
@@ -63,14 +63,9 @@ class RouterNetworkConfiguration {
63
63
  }
64
64
  throw error;
65
65
  }
66
+ const allowRules = (props.cidr ?? []).map(ip => ({ cidr: ip }));
66
67
  return new RouterNetworkConfiguration({
67
- public: {
68
- allowRules: props.cidr.map(ip => {
69
- return {
70
- cidr: ip,
71
- };
72
- }),
73
- },
68
+ public: { allowRules },
74
69
  }, props.cidr);
75
70
  }
76
71
  /**
@@ -119,7 +114,6 @@ class RouterNetworkConfiguration {
119
114
  exports.RouterNetworkConfiguration = RouterNetworkConfiguration;
120
115
  /**
121
116
  * Shared base for both real and imported router network interfaces.
122
- * @internal
123
117
  */
124
118
  class RouterNetworkInterfaceBase extends aws_cdk_lib_1.Resource {
125
119
  get routerNetworkInterfaceRef() {
@@ -143,7 +137,7 @@ let RouterNetworkInterface = (() => {
143
137
  RouterNetworkInterface = _classThis = _classDescriptor.value;
144
138
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
145
139
  }
146
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.RouterNetworkInterface", version: "2.263.0-alpha.0" };
140
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediaconnect-alpha.RouterNetworkInterface", version: "2.265.0-alpha.0" };
147
141
  /** Uniquely identifies this class. */
148
142
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-mediaconnect-alpha.RouterNetworkInterface';
149
143
  /**
@@ -180,6 +174,8 @@ let RouterNetworkInterface = (() => {
180
174
  }
181
175
  class Import extends RouterNetworkInterfaceBase {
182
176
  routerNetworkInterfaceArn = attrs.routerNetworkInterfaceArn;
177
+ createdAt = undefined;
178
+ updatedAt = undefined;
183
179
  get routerNetworkInterfaceId() {
184
180
  if (attrs.routerNetworkInterfaceId)
185
181
  return attrs.routerNetworkInterfaceId;
@@ -218,8 +214,8 @@ let RouterNetworkInterface = (() => {
218
214
  if (props.routerNetworkInterfaceName.length > 128) {
219
215
  throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `RouterNetworkInterfaceNameLength`, `Router network interface name must be between 1 and 128 characters, got ${props.routerNetworkInterfaceName.length}`, this);
220
216
  }
221
- if (!/^[a-zA-Z0-9-]+$/.test(props.routerNetworkInterfaceName)) {
222
- throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `RouterNetworkInterfaceNameFormat`, `Router network interface name must contain only alphanumeric characters and hyphens, got '${props.routerNetworkInterfaceName}'`, this);
217
+ if (!/^[a-zA-Z0-9_-]+$/.test(props.routerNetworkInterfaceName)) {
218
+ throw new aws_cdk_lib_1.ValidationError((0, helpers_internal_1.lit) `RouterNetworkInterfaceNameFormat`, `Router network interface name must contain only alphanumeric characters, hyphens, and underscores, got '${props.routerNetworkInterfaceName}'`, this);
223
219
  }
224
220
  }
225
221
  // Enhanced CDK Analytics Telemetry
@@ -242,4 +238,4 @@ let RouterNetworkInterface = (() => {
242
238
  return RouterNetworkInterface = _classThis;
243
239
  })();
244
240
  exports.RouterNetworkInterface = RouterNetworkInterface;
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLW5ldHdvcmstaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicm91dGVyLW5ldHdvcmstaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDZDQUF5RjtBQUV6RixtRUFBeUU7QUFFekUsNEVBQTREO0FBQzVELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFFMUUscUNBQWtEO0FBb0dsRDs7R0FFRztBQUNILE1BQWEsMEJBQTBCOztJQUNyQzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFzQzs7Ozs7Ozs7OztRQUNoRSxPQUFPLElBQUksMEJBQTBCLENBQUM7WUFDcEMsTUFBTSxFQUFFO2dCQUNOLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDOUIsT0FBTzt3QkFDTCxJQUFJLEVBQUUsRUFBRTtxQkFDVCxDQUFDO2dCQUNKLENBQUMsQ0FBQzthQUNIO1NBQ0YsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDaEI7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFtQzs7Ozs7Ozs7OztRQUNuRCxPQUFPLElBQUksMEJBQTBCLENBQUM7WUFDcEMsR0FBRyxFQUFFO2dCQUNILGdCQUFnQixFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoRixRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRO2FBQ2hDO1NBQ0YsQ0FBQyxDQUFDO0tBQ0o7SUFFZ0IsT0FBTyxDQUF3RTtJQUMvRSxZQUFZLENBQVk7SUFFekMsWUFDRSxNQUE2RSxFQUM3RSxXQUFzQjtRQUV0QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztLQUNqQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxLQUFnQjtRQUMzQixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDOUUsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFBLG1CQUFVLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDbEQseUJBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUNoQyx1REFBdUQsRUFDdkQseUNBQXlDLElBQUksNEZBQTRGLENBQzFJLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0tBQzVCOztBQTNESCxnRUE0REM7QUFFRDs7O0dBR0c7QUFDSCxNQUFlLDBCQUEyQixTQUFRLHNCQUFRO0lBSXhELElBQVcseUJBQXlCO1FBQ2xDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztLQUN0RTtDQUNGO0FBRUQ7O0dBRUc7SUFFVSxzQkFBc0I7NEJBRGxDLG9DQUFrQjs7OztzQkFDeUIsMEJBQTBCO3NDQUFsQyxTQUFRLFdBQTBCOzs7O1lBQXRFLDZLQTBGQzs7Ozs7UUF6RkMsc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyx3REFBd0QsQ0FBQztRQUVoSDs7Ozs7OztXQU9HO1FBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLHlCQUFpQztZQUN6RyxPQUFPLHNCQUFzQixDQUFDLG9DQUFvQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSx5QkFBeUIsRUFBRSxDQUFDLENBQUM7U0FDOUc7UUFFRDs7Ozs7Ozs7OztXQVVHO1FBQ0ksTUFBTSxDQUFDLG9DQUFvQyxDQUNoRCxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBdUM7Ozs7Ozs7Ozs7WUFFdkMsTUFBTSxNQUFPLFNBQVEsMEJBQTBCO2dCQUM3Qix5QkFBeUIsR0FBRyxLQUFLLENBQUMseUJBQXlCLENBQUM7Z0JBRTVFLElBQVcsd0JBQXdCO29CQUNqQyxJQUFJLEtBQUssQ0FBQyx3QkFBd0I7d0JBQUUsT0FBTyxLQUFLLENBQUMsd0JBQXdCLENBQUM7b0JBQzFFLE1BQU0sSUFBSSw2QkFBZSxDQUN2QixJQUFBLHNCQUFHLEVBQUEscUNBQXFDLEVBQ3hDLGtGQUFrRixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksb0RBQW9ELEVBQ3BKLElBQUksQ0FDTCxDQUFDO2dCQUNKLENBQUM7YUFDRjtZQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzlCO1FBRWUseUJBQXlCLENBQVM7UUFDbEMsd0JBQXdCLENBQVM7UUFDakQ7OztXQUdHO1FBQ2EsU0FBUyxDQUFVO1FBQ25DOzs7V0FHRztRQUNhLFNBQVMsQ0FBVTtRQUVuQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtDO1lBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO2dCQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsMEJBQTBCLElBQUksa0JBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsbUJBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ3JJLENBQUMsQ0FBQzs7Ozs7O21EQS9ETSxzQkFBc0I7Ozs7WUFpRS9CLHFEQUFxRDtZQUNyRCxJQUFJLEtBQUssQ0FBQywwQkFBMEIsSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLDBCQUEwQixLQUFLLEVBQUUsSUFBSSxDQUFDLG1CQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pKLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztvQkFDbEQsTUFBTSxJQUFJLDZCQUFlLENBQUMsSUFBQSxzQkFBRyxFQUFBLGtDQUFrQyxFQUFFLDJFQUEyRSxLQUFLLENBQUMsMEJBQTBCLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQy9MLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUFDO29CQUM5RCxNQUFNLElBQUksNkJBQWUsQ0FBQyxJQUFBLHNCQUFHLEVBQUEsa0NBQWtDLEVBQUUsNkZBQTZGLEtBQUssQ0FBQywwQkFBMEIsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMzTSxDQUFDO1lBQ0gsQ0FBQztZQUVELG1DQUFtQztZQUNuQyxJQUFBLHdDQUFvQixFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVsQyxNQUFNLHNCQUFzQixHQUFHLElBQUksNENBQXlCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDN0UsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUN2QixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUM5QyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0JBQzVCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFBLG1CQUFVLEVBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQ3RELENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyx5QkFBeUIsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7WUFDaEUsSUFBSSxDQUFDLHdCQUF3QixHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQztZQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLHNCQUFzQixDQUFDLGFBQWEsQ0FBQztZQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLHNCQUFzQixDQUFDLGFBQWEsQ0FBQztTQUN2RDs7WUF6RlUsdURBQXNCOzs7OztBQUF0Qix3REFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElSZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEFubm90YXRpb25zLCBMYXp5LCBOYW1lcywgUmVzb3VyY2UsIFRva2VuLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IElTZWN1cml0eUdyb3VwLCBJU3VibmV0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBDZm5Sb3V0ZXJOZXR3b3JrSW50ZXJmYWNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhY29ubmVjdCc7XG5pbXBvcnQgdHlwZSB7IElSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlUmVmLCBSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlUmVmZXJlbmNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhY29ubmVjdCc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBpc09wZW5DaWRyLCByZW5kZXJUYWdzIH0gZnJvbSAnLi9zaGFyZWQnO1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgUm91dGVyIE5ldHdvcmsgSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlck5ldHdvcmtJbnRlcmZhY2UgZXh0ZW5kcyBJUmVzb3VyY2UsIElSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlUmVmIHtcbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgcm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRhdGUgYW5kIHRpbWUgdGhlIHJvdXRlciBuZXR3b3JrIGludGVyZmFjZSB3YXMgY3JlYXRlZC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBhbmQgdGltZSB0aGUgcm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlIHdhcyBsYXN0IHVwZGF0ZWQuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZWRBdD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBSb3V0ZXIgTmV0d29yayBJbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJvdXRlciBuZXR3b3JrIGludGVyZmFjZS5cbiAgICogQGRlZmF1bHQgLSBHZW5lcmF0ZWQgYXV0b21hdGljYWxseVxuICAgKi9cbiAgcmVhZG9ubHkgcm91dGVyTmV0d29ya0ludGVyZmFjZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5ldHdvcmsgY29uZmlndXJhdGlvbiBmb3IgdGhlIHJvdXRlciBuZXR3b3JrIGludGVyZmFjZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb246IFJvdXRlck5ldHdvcmtDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIFJlZ2lvbiB3aGVyZSB0aGUgcm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlIHdpbGwgYmUgY3JlYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBTYW1lIHJlZ2lvbiBhcyB0aGUgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gYWRkIHRvIHRoZSBuZXR3b3JrIGludGVyZmFjZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHRhZ2dpbmdcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIEF0dHJpYnV0ZXMgZm9yIGltcG9ydGluZyBhbiBleGlzdGluZyBSb3V0ZXIgTmV0d29yayBJbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVyTmV0d29ya0ludGVyZmFjZUF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSByb3V0ZXIgbmV0d29yayBpbnRlcmZhY2UuXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFjY2Vzc2luZyBgcm91dGVyTmV0d29ya0ludGVyZmFjZUlkYCBvbiB0aGUgaW1wb3J0ZWQgaW50ZXJmYWNlIHRocm93czsgb25seSBwcm92aWRlIHdoZW4gYXZhaWxhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcm91dGVyTmV0d29ya0ludGVyZmFjZUlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHB1YmxpYyBuZXR3b3JrIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNOZXR3b3JrQ29uZmlndXJhdGlvblByb3BzIHtcbiAgLyoqIENJRFIgYmxvY2tzIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSBuZXR3b3JrIGludGVyZmFjZSAqL1xuICByZWFkb25seSBjaWRyOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBWUEMgbmV0d29yayBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjTmV0d29ya0NvbmZpZ3VyYXRpb25Qcm9wcyB7XG4gIC8qKiBTZWN1cml0eSBncm91cHMgdG8gYXNzb2NpYXRlIHdpdGggdGhlIG5ldHdvcmsgaW50ZXJmYWNlICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzOiBJU2VjdXJpdHlHcm91cFtdO1xuICAvKiogU3VibmV0IHdoZXJlIHRoZSBuZXR3b3JrIGludGVyZmFjZSB3aWxsIGJlIGNyZWF0ZWQgKi9cbiAgcmVhZG9ubHkgc3VibmV0OiBJU3VibmV0O1xufVxuXG4vKipcbiAqIEZhY3RvcnkgY2xhc3MgZm9yIGNyZWF0aW5nIFJvdXRlciBOZXR3b3JrIGNvbmZpZ3VyYXRpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBSb3V0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBwdWJsaWMgbmV0d29yayBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSBwcm9wcyBQdWJsaWMgbmV0d29yayBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAgICogQHJldHVybnMgUm91dGVyTmV0d29ya0NvbmZpZ3VyYXRpb24gaW5zdGFuY2UgZm9yIHB1YmxpYyBzZXR1cFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwdWJsaWNOZXR3b3JrKHByb3BzOiBQdWJsaWNOZXR3b3JrQ29uZmlndXJhdGlvblByb3BzKTogUm91dGVyTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgUm91dGVyTmV0d29ya0NvbmZpZ3VyYXRpb24oe1xuICAgICAgcHVibGljOiB7XG4gICAgICAgIGFsbG93UnVsZXM6IHByb3BzLmNpZHIubWFwKGlwID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2lkcjogaXAsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0sIHByb3BzLmNpZHIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIFZQQyBuZXR3b3JrIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIHByb3BzIFZQQyBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyBSb3V0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbiBpbnN0YW5jZSBmb3IgVlBDIHNldHVwXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZwYyhwcm9wczogVnBjTmV0d29ya0NvbmZpZ3VyYXRpb25Qcm9wcyk6IFJvdXRlck5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IFJvdXRlck5ldHdvcmtDb25maWd1cmF0aW9uKHtcbiAgICAgIHZwYzoge1xuICAgICAgICBzZWN1cml0eUdyb3VwSWRzOiBwcm9wcy5zZWN1cml0eUdyb3Vwcy5tYXAoc2cgPT4geyByZXR1cm4gc2cuc2VjdXJpdHlHcm91cElkOyB9KSxcbiAgICAgICAgc3VibmV0SWQ6IHByb3BzLnN1Ym5ldC5zdWJuZXRJZCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWc6IENmblJvdXRlck5ldHdvcmtJbnRlcmZhY2UuUm91dGVyTmV0d29ya0ludGVyZmFjZUNvbmZpZ3VyYXRpb25Qcm9wZXJ0eTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcHVibGljQ2lkcnM/OiBzdHJpbmdbXTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIGNvbmZpZzogQ2ZuUm91dGVyTmV0d29ya0ludGVyZmFjZS5Sb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQ29uZmlndXJhdGlvblByb3BlcnR5LFxuICAgIHB1YmxpY0NpZHJzPzogc3RyaW5nW10sXG4gICkge1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLl9wdWJsaWNDaWRycyA9IHB1YmxpY0NpZHJzO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gaXMgYm91bmQgdG8gYSBSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfYmluZChzY29wZTogQ29uc3RydWN0KTogQ2ZuUm91dGVyTmV0d29ya0ludGVyZmFjZS5Sb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICBpZiAodGhpcy5fcHVibGljQ2lkcnMgIT09IHVuZGVmaW5lZCAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMuX3B1YmxpY0NpZHJzKSkge1xuICAgICAgZm9yIChjb25zdCBjaWRyIG9mIHRoaXMuX3B1YmxpY0NpZHJzKSB7XG4gICAgICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGNpZHIpICYmIGlzT3BlbkNpZHIoY2lkcikpIHtcbiAgICAgICAgICBBbm5vdGF0aW9ucy5vZihzY29wZSkuYWRkV2FybmluZ1YyKFxuICAgICAgICAgICAgJ0Bhd3MtY2RrL2F3cy1tZWRpYWNvbm5lY3QtYWxwaGE6b3BlblJvdXRlck5ldHdvcmtDaWRyJyxcbiAgICAgICAgICAgIGBSb3V0ZXIgbmV0d29yayBpbnRlcmZhY2UgcHVibGljIENJRFIgJyR7Y2lkcn0nIGFsbG93cyB0cmFmZmljIGZyb20gYW55IElQLiBSZXN0cmljdCB0byB0aGUgbmFycm93ZXN0IHJhbmdlIHlvdXIgc2VuZGVycy9yZWNlaXZlcnMgbmVlZC5gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgLi4udGhpcy5fY29uZmlnIH07XG4gIH1cbn1cblxuLyoqXG4gKiBTaGFyZWQgYmFzZSBmb3IgYm90aCByZWFsIGFuZCBpbXBvcnRlZCByb3V0ZXIgbmV0d29yayBpbnRlcmZhY2VzLlxuICogQGludGVybmFsXG4gKi9cbmFic3RyYWN0IGNsYXNzIFJvdXRlck5ldHdvcmtJbnRlcmZhY2VCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJUm91dGVyTmV0d29ya0ludGVyZmFjZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlSWQ6IHN0cmluZztcblxuICBwdWJsaWMgZ2V0IHJvdXRlck5ldHdvcmtJbnRlcmZhY2VSZWYoKTogUm91dGVyTmV0d29ya0ludGVyZmFjZVJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHsgcm91dGVyTmV0d29ya0ludGVyZmFjZUFybjogdGhpcy5yb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXJuIH07XG4gIH1cbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgQVdTIEVsZW1lbnRhbCBNZWRpYUNvbm5lY3QgUm91dGVyIE5ldHdvcmsgSW50ZXJmYWNlXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlIGV4dGVuZHMgUm91dGVyTmV0d29ya0ludGVyZmFjZUJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1tZWRpYWNvbm5lY3QtYWxwaGEuUm91dGVyTmV0d29ya0ludGVyZmFjZSc7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBSb3V0ZXIgTmV0d29yayBJbnRlcmZhY2UgZnJvbSBpdHMgQVJOLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIHJvdXRlck5ldHdvcmtJbnRlcmZhY2VBcm4gVGhlIEFSTiBvZiB0aGUgUm91dGVyIE5ldHdvcmsgSW50ZXJmYWNlXG4gICAqIEByZXR1cm5zIEEgUm91dGVyIE5ldHdvcmsgSW50ZXJmYWNlIGNvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUm91dGVyTmV0d29ya0ludGVyZmFjZUFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXJuOiBzdHJpbmcpOiBJUm91dGVyTmV0d29ya0ludGVyZmFjZSB7XG4gICAgcmV0dXJuIFJvdXRlck5ldHdvcmtJbnRlcmZhY2UuZnJvbVJvdXRlck5ldHdvcmtJbnRlcmZhY2VBdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXJuIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBSb3V0ZXIgTmV0d29yayBJbnRlcmZhY2UgZnJvbSBpdHMgYXR0cmlidXRlcy5cbiAgICpcbiAgICogUHJvdmlkZSBgcm91dGVyTmV0d29ya0ludGVyZmFjZUlkYCB3aGVuIGltcG9ydGluZyBhbiBpbnRlcmZhY2UgdGhhdCB3YXMgZGVwbG95ZWRcbiAgICogZXh0ZXJuYWxseSDigJQgb3RoZXJ3aXNlIGFjY2Vzc2luZyBpdCBvbiB0aGUgaW1wb3J0ZWQgY29uc3RydWN0IHdpbGwgdGhyb3cuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gYXR0cnMgVGhlIFJvdXRlciBOZXR3b3JrIEludGVyZmFjZSBhdHRyaWJ1dGVzXG4gICAqIEByZXR1cm5zIEEgUm91dGVyIE5ldHdvcmsgSW50ZXJmYWNlIGNvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUm91dGVyTmV0d29ya0ludGVyZmFjZUF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXR0cmlidXRlcyxcbiAgKTogSVJvdXRlck5ldHdvcmtJbnRlcmZhY2Uge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJvdXRlck5ldHdvcmtJbnRlcmZhY2VCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXJuID0gYXR0cnMucm91dGVyTmV0d29ya0ludGVyZmFjZUFybjtcblxuICAgICAgcHVibGljIGdldCByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlSWQoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGF0dHJzLnJvdXRlck5ldHdvcmtJbnRlcmZhY2VJZCkgcmV0dXJuIGF0dHJzLnJvdXRlck5ldHdvcmtJbnRlcmZhY2VJZDtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICBsaXRgUm91dGVyTmV0d29ya0ludGVyZmFjZUlkTm90UHJvdmlkZWRgLFxuICAgICAgICAgIGAncm91dGVyTmV0d29ya0ludGVyZmFjZUlkJyBpcyBub3QgYXZhaWxhYmxlIG9uIGltcG9ydGVkIFJvdXRlck5ldHdvcmtJbnRlcmZhY2UgJHt0aGlzLm5vZGUucGF0aH07IHBhc3MgaXQgdmlhIGZyb21Sb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXR0cmlidXRlc2AsXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBkYXRlIGFuZCB0aW1lIHRoZSByb3V0ZXIgbmV0d29yayBpbnRlcmZhY2Ugd2FzIGNyZWF0ZWQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBhbmQgdGltZSB0aGUgcm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlIHdhcyBsYXN0IHVwZGF0ZWQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJvdXRlck5ldHdvcmtJbnRlcmZhY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5yb3V0ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSA/PyBMYXp5LnN0cmluZyh7IHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogMTI4IH0pIH0pLFxuICAgIH0pO1xuXG4gICAgLy8gVmFsaWRhdGUgcm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlIG5hbWUgaWYgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMucm91dGVyTmV0d29ya0ludGVyZmFjZU5hbWUgIT0gbnVsbCAmJiBwcm9wcy5yb3V0ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSAhPT0gJycgJiYgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5yb3V0ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSkpIHtcbiAgICAgIGlmIChwcm9wcy5yb3V0ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZS5sZW5ndGggPiAxMjgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgUm91dGVyTmV0d29ya0ludGVyZmFjZU5hbWVMZW5ndGhgLCBgUm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlIG5hbWUgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDEyOCBjaGFyYWN0ZXJzLCBnb3QgJHtwcm9wcy5yb3V0ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZS5sZW5ndGh9YCwgdGhpcyk7XG4gICAgICB9XG4gICAgICBpZiAoIS9eW2EtekEtWjAtOS1dKyQvLnRlc3QocHJvcHMucm91dGVyTmV0d29ya0ludGVyZmFjZU5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YFJvdXRlck5ldHdvcmtJbnRlcmZhY2VOYW1lRm9ybWF0YCwgYFJvdXRlciBuZXR3b3JrIGludGVyZmFjZSBuYW1lIG11c3QgY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCBoeXBoZW5zLCBnb3QgJyR7cHJvcHMucm91dGVyTmV0d29ya0ludGVyZmFjZU5hbWV9J2AsIHRoaXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgY29uc3Qgcm91dGVyTmV0d29ya0ludGVyZmFjZSA9IG5ldyBDZm5Sb3V0ZXJOZXR3b3JrSW50ZXJmYWNlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgY29uZmlndXJhdGlvbjogcHJvcHMuY29uZmlndXJhdGlvbi5fYmluZCh0aGlzKSxcbiAgICAgIHJlZ2lvbk5hbWU6IHByb3BzLnJlZ2lvbk5hbWUsXG4gICAgICB0YWdzOiBwcm9wcy50YWdzID8gcmVuZGVyVGFncyhwcm9wcy50YWdzKSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHRoaXMucm91dGVyTmV0d29ya0ludGVyZmFjZUFybiA9IHJvdXRlck5ldHdvcmtJbnRlcmZhY2UuYXR0ckFybjtcbiAgICB0aGlzLnJvdXRlck5ldHdvcmtJbnRlcmZhY2VJZCA9IHJvdXRlck5ldHdvcmtJbnRlcmZhY2UuYXR0cklkO1xuICAgIHRoaXMuY3JlYXRlZEF0ID0gcm91dGVyTmV0d29ya0ludGVyZmFjZS5hdHRyQ3JlYXRlZEF0O1xuICAgIHRoaXMudXBkYXRlZEF0ID0gcm91dGVyTmV0d29ya0ludGVyZmFjZS5hdHRyVXBkYXRlZEF0O1xuICB9XG59XG4iXX0=
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLW5ldHdvcmstaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicm91dGVyLW5ldHdvcmstaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDZDQUF5RjtBQUV6RixtRUFBeUU7QUFFekUsNEVBQTREO0FBQzVELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFFMUUscUNBQWtEO0FBd0dsRDs7R0FFRztBQUNILE1BQWEsMEJBQTBCOztJQUNyQzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUF5QyxFQUFFOzs7Ozs7Ozs7O1FBQ3JFLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRSxPQUFPLElBQUksMEJBQTBCLENBQUM7WUFDcEMsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFO1NBQ3ZCLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2hCO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBbUM7Ozs7Ozs7Ozs7UUFDbkQsT0FBTyxJQUFJLDBCQUEwQixDQUFDO1lBQ3BDLEdBQUcsRUFBRTtnQkFDSCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEYsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUTthQUNoQztTQUNGLENBQUMsQ0FBQztLQUNKO0lBRWdCLE9BQU8sQ0FBd0U7SUFDL0UsWUFBWSxDQUFZO0lBRXpDLFlBQ0UsTUFBNkUsRUFD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LENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyx5QkFBeUIsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7WUFDaEUsSUFBSSxDQUFDLHdCQUF3QixHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQztZQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLHNCQUFzQixDQUFDLGFBQWEsQ0FBQztZQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLHNCQUFzQixDQUFDLGFBQWEsQ0FBQztTQUN2RDs7WUEzRlUsdURBQXNCOzs7OztBQUF0Qix3REFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElSZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEFubm90YXRpb25zLCBMYXp5LCBOYW1lcywgUmVzb3VyY2UsIFRva2VuLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IElTZWN1cml0eUdyb3VwLCBJU3VibmV0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBDZm5Sb3V0ZXJOZXR3b3JrSW50ZXJmYWNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhY29ubmVjdCc7XG5pbXBvcnQgdHlwZSB7IElSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlUmVmLCBSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlUmVmZXJlbmNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhY29ubmVjdCc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBpc09wZW5DaWRyLCByZW5kZXJUYWdzIH0gZnJvbSAnLi9zaGFyZWQnO1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgUm91dGVyIE5ldHdvcmsgSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlck5ldHdvcmtJbnRlcmZhY2UgZXh0ZW5kcyBJUmVzb3VyY2UsIElSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlUmVmIHtcbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgcm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRhdGUgYW5kIHRpbWUgdGhlIHJvdXRlciBuZXR3b3JrIGludGVyZmFjZSB3YXMgY3JlYXRlZC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBhbmQgdGltZSB0aGUgcm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlIHdhcyBsYXN0IHVwZGF0ZWQuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZWRBdD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBSb3V0ZXIgTmV0d29yayBJbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJvdXRlciBuZXR3b3JrIGludGVyZmFjZS5cbiAgICogQGRlZmF1bHQgLSBHZW5lcmF0ZWQgYXV0b21hdGljYWxseVxuICAgKi9cbiAgcmVhZG9ubHkgcm91dGVyTmV0d29ya0ludGVyZmFjZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5ldHdvcmsgY29uZmlndXJhdGlvbiBmb3IgdGhlIHJvdXRlciBuZXR3b3JrIGludGVyZmFjZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb246IFJvdXRlck5ldHdvcmtDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBTZWxlY3QgYSByZWdpb24gZm9yIHlvdXIgcm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFNhbWUgcmVnaW9uIGFzIHRoZSBzdGFja1xuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGFncyB0byBhZGQgdG8gdGhlIG5ldHdvcmsgaW50ZXJmYWNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdGFnZ2luZ1xuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIFJvdXRlciBOZXR3b3JrIEludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHJvdXRlciBuZXR3b3JrIGludGVyZmFjZS5cbiAgICovXG4gIHJlYWRvbmx5IHJvdXRlck5ldHdvcmtJbnRlcmZhY2VBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSByb3V0ZXIgbmV0d29yayBpbnRlcmZhY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWNjZXNzaW5nIGByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlSWRgIG9uIHRoZSBpbXBvcnRlZCBpbnRlcmZhY2UgdGhyb3dzOyBvbmx5IHByb3ZpZGUgd2hlbiBhdmFpbGFibGUuXG4gICAqL1xuICByZWFkb25seSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlSWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgcHVibGljIG5ldHdvcmsgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFB1YmxpY05ldHdvcmtDb25maWd1cmF0aW9uUHJvcHMge1xuICAvKipcbiAgICogQ0lEUiBibG9ja3MgYWxsb3dlZCB0byBzZW5kIGluYm91bmQgdHJhZmZpYyB0byB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gaW5ib3VuZCBhbGxvd2VkIChvdXRib3VuZCBvbmx5KVxuICAgKi9cbiAgcmVhZG9ubHkgY2lkcj86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIFZQQyBuZXR3b3JrIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWcGNOZXR3b3JrQ29uZmlndXJhdGlvblByb3BzIHtcbiAgLyoqIFNlY3VyaXR5IGdyb3VwcyB0byBhc3NvY2lhdGUgd2l0aCB0aGUgbmV0d29yayBpbnRlcmZhY2UgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM6IElTZWN1cml0eUdyb3VwW107XG4gIC8qKiBTdWJuZXQgd2hlcmUgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIHdpbGwgYmUgY3JlYXRlZCAqL1xuICByZWFkb25seSBzdWJuZXQ6IElTdWJuZXQ7XG59XG5cbi8qKlxuICogRmFjdG9yeSBjbGFzcyBmb3IgY3JlYXRpbmcgUm91dGVyIE5ldHdvcmsgY29uZmlndXJhdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIFJvdXRlck5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIHB1YmxpYyBuZXR3b3JrIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIHByb3BzIFB1YmxpYyBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyBSb3V0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbiBpbnN0YW5jZSBmb3IgcHVibGljIHNldHVwXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHB1YmxpY05ldHdvcmsocHJvcHM6IFB1YmxpY05ldHdvcmtDb25maWd1cmF0aW9uUHJvcHMgPSB7fSk6IFJvdXRlck5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgICBjb25zdCBhbGxvd1J1bGVzID0gKHByb3BzLmNpZHIgPz8gW10pLm1hcChpcCA9PiAoeyBjaWRyOiBpcCB9KSk7XG4gICAgcmV0dXJuIG5ldyBSb3V0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbih7XG4gICAgICBwdWJsaWM6IHsgYWxsb3dSdWxlcyB9LFxuICAgIH0sIHByb3BzLmNpZHIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIFZQQyBuZXR3b3JrIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIHByb3BzIFZQQyBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyBSb3V0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbiBpbnN0YW5jZSBmb3IgVlBDIHNldHVwXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZwYyhwcm9wczogVnBjTmV0d29ya0NvbmZpZ3VyYXRpb25Qcm9wcyk6IFJvdXRlck5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IFJvdXRlck5ldHdvcmtDb25maWd1cmF0aW9uKHtcbiAgICAgIHZwYzoge1xuICAgICAgICBzZWN1cml0eUdyb3VwSWRzOiBwcm9wcy5zZWN1cml0eUdyb3Vwcy5tYXAoc2cgPT4geyByZXR1cm4gc2cuc2VjdXJpdHlHcm91cElkOyB9KSxcbiAgICAgICAgc3VibmV0SWQ6IHByb3BzLnN1Ym5ldC5zdWJuZXRJZCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWc6IENmblJvdXRlck5ldHdvcmtJbnRlcmZhY2UuUm91dGVyTmV0d29ya0ludGVyZmFjZUNvbmZpZ3VyYXRpb25Qcm9wZXJ0eTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcHVibGljQ2lkcnM/OiBzdHJpbmdbXTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIGNvbmZpZzogQ2ZuUm91dGVyTmV0d29ya0ludGVyZmFjZS5Sb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQ29uZmlndXJhdGlvblByb3BlcnR5LFxuICAgIHB1YmxpY0NpZHJzPzogc3RyaW5nW10sXG4gICkge1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLl9wdWJsaWNDaWRycyA9IHB1YmxpY0NpZHJzO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gaXMgYm91bmQgdG8gYSBSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfYmluZChzY29wZTogQ29uc3RydWN0KTogQ2ZuUm91dGVyTmV0d29ya0ludGVyZmFjZS5Sb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICBpZiAodGhpcy5fcHVibGljQ2lkcnMgIT09IHVuZGVmaW5lZCAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMuX3B1YmxpY0NpZHJzKSkge1xuICAgICAgZm9yIChjb25zdCBjaWRyIG9mIHRoaXMuX3B1YmxpY0NpZHJzKSB7XG4gICAgICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGNpZHIpICYmIGlzT3BlbkNpZHIoY2lkcikpIHtcbiAgICAgICAgICBBbm5vdGF0aW9ucy5vZihzY29wZSkuYWRkV2FybmluZ1YyKFxuICAgICAgICAgICAgJ0Bhd3MtY2RrL2F3cy1tZWRpYWNvbm5lY3QtYWxwaGE6b3BlblJvdXRlck5ldHdvcmtDaWRyJyxcbiAgICAgICAgICAgIGBSb3V0ZXIgbmV0d29yayBpbnRlcmZhY2UgcHVibGljIENJRFIgJyR7Y2lkcn0nIGFsbG93cyB0cmFmZmljIGZyb20gYW55IElQLiBSZXN0cmljdCB0byB0aGUgbmFycm93ZXN0IHJhbmdlIHlvdXIgc2VuZGVycy9yZWNlaXZlcnMgbmVlZC5gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgLi4udGhpcy5fY29uZmlnIH07XG4gIH1cbn1cblxuLyoqXG4gKiBTaGFyZWQgYmFzZSBmb3IgYm90aCByZWFsIGFuZCBpbXBvcnRlZCByb3V0ZXIgbmV0d29yayBpbnRlcmZhY2VzLlxuICovXG5hYnN0cmFjdCBjbGFzcyBSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVJvdXRlck5ldHdvcmtJbnRlcmZhY2Uge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcm91dGVyTmV0d29ya0ludGVyZmFjZUFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcm91dGVyTmV0d29ya0ludGVyZmFjZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB1cGRhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlUmVmKCk6IFJvdXRlck5ldHdvcmtJbnRlcmZhY2VSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7IHJvdXRlck5ldHdvcmtJbnRlcmZhY2VBcm46IHRoaXMucm91dGVyTmV0d29ya0ludGVyZmFjZUFybiB9O1xuICB9XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIEFXUyBFbGVtZW50YWwgTWVkaWFDb25uZWN0IFJvdXRlciBOZXR3b3JrIEludGVyZmFjZVxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgUm91dGVyTmV0d29ya0ludGVyZmFjZSBleHRlbmRzIFJvdXRlck5ldHdvcmtJbnRlcmZhY2VCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtbWVkaWFjb25uZWN0LWFscGhhLlJvdXRlck5ldHdvcmtJbnRlcmZhY2UnO1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgUm91dGVyIE5ldHdvcmsgSW50ZXJmYWNlIGZyb20gaXRzIEFSTi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXJuIFRoZSBBUk4gb2YgdGhlIFJvdXRlciBOZXR3b3JrIEludGVyZmFjZVxuICAgKiBAcmV0dXJucyBBIFJvdXRlciBOZXR3b3JrIEludGVyZmFjZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVJvdXRlck5ldHdvcmtJbnRlcmZhY2VBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcm91dGVyTmV0d29ya0ludGVyZmFjZUFybjogc3RyaW5nKTogSVJvdXRlck5ldHdvcmtJbnRlcmZhY2Uge1xuICAgIHJldHVybiBSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlLmZyb21Sb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXR0cmlidXRlcyhzY29wZSwgaWQsIHsgcm91dGVyTmV0d29ya0ludGVyZmFjZUFybiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgUm91dGVyIE5ldHdvcmsgSW50ZXJmYWNlIGZyb20gaXRzIGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIFByb3ZpZGUgYHJvdXRlck5ldHdvcmtJbnRlcmZhY2VJZGAgd2hlbiBpbXBvcnRpbmcgYW4gaW50ZXJmYWNlIHRoYXQgd2FzIGRlcGxveWVkXG4gICAqIGV4dGVybmFsbHkg4oCUIG90aGVyd2lzZSBhY2Nlc3NpbmcgaXQgb24gdGhlIGltcG9ydGVkIGNvbnN0cnVjdCB3aWxsIHRocm93LlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIGF0dHJzIFRoZSBSb3V0ZXIgTmV0d29yayBJbnRlcmZhY2UgYXR0cmlidXRlc1xuICAgKiBAcmV0dXJucyBBIFJvdXRlciBOZXR3b3JrIEludGVyZmFjZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVJvdXRlck5ldHdvcmtJbnRlcmZhY2VBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogUm91dGVyTmV0d29ya0ludGVyZmFjZUF0dHJpYnV0ZXMsXG4gICk6IElSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcm91dGVyTmV0d29ya0ludGVyZmFjZUFybiA9IGF0dHJzLnJvdXRlck5ldHdvcmtJbnRlcmZhY2VBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZEF0ID0gdW5kZWZpbmVkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHVwZGF0ZWRBdCA9IHVuZGVmaW5lZDtcblxuICAgICAgcHVibGljIGdldCByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlSWQoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGF0dHJzLnJvdXRlck5ldHdvcmtJbnRlcmZhY2VJZCkgcmV0dXJuIGF0dHJzLnJvdXRlck5ldHdvcmtJbnRlcmZhY2VJZDtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICBsaXRgUm91dGVyTmV0d29ya0ludGVyZmFjZUlkTm90UHJvdmlkZWRgLFxuICAgICAgICAgIGAncm91dGVyTmV0d29ya0ludGVyZmFjZUlkJyBpcyBub3QgYXZhaWxhYmxlIG9uIGltcG9ydGVkIFJvdXRlck5ldHdvcmtJbnRlcmZhY2UgJHt0aGlzLm5vZGUucGF0aH07IHBhc3MgaXQgdmlhIGZyb21Sb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXR0cmlidXRlc2AsXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSByb3V0ZXJOZXR3b3JrSW50ZXJmYWNlSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBkYXRlIGFuZCB0aW1lIHRoZSByb3V0ZXIgbmV0d29yayBpbnRlcmZhY2Ugd2FzIGNyZWF0ZWQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBhbmQgdGltZSB0aGUgcm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlIHdhcyBsYXN0IHVwZGF0ZWQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJvdXRlck5ldHdvcmtJbnRlcmZhY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5yb3V0ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSA/PyBMYXp5LnN0cmluZyh7IHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogMTI4IH0pIH0pLFxuICAgIH0pO1xuXG4gICAgLy8gVmFsaWRhdGUgcm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlIG5hbWUgaWYgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMucm91dGVyTmV0d29ya0ludGVyZmFjZU5hbWUgIT0gbnVsbCAmJiBwcm9wcy5yb3V0ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSAhPT0gJycgJiYgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5yb3V0ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSkpIHtcbiAgICAgIGlmIChwcm9wcy5yb3V0ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZS5sZW5ndGggPiAxMjgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgUm91dGVyTmV0d29ya0ludGVyZmFjZU5hbWVMZW5ndGhgLCBgUm91dGVyIG5ldHdvcmsgaW50ZXJmYWNlIG5hbWUgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDEyOCBjaGFyYWN0ZXJzLCBnb3QgJHtwcm9wcy5yb3V0ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZS5sZW5ndGh9YCwgdGhpcyk7XG4gICAgICB9XG4gICAgICBpZiAoIS9eW2EtekEtWjAtOV8tXSskLy50ZXN0KHByb3BzLnJvdXRlck5ldHdvcmtJbnRlcmZhY2VOYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBSb3V0ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZUZvcm1hdGAsIGBSb3V0ZXIgbmV0d29yayBpbnRlcmZhY2UgbmFtZSBtdXN0IGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgaHlwaGVucywgYW5kIHVuZGVyc2NvcmVzLCBnb3QgJyR7cHJvcHMucm91dGVyTmV0d29ya0ludGVyZmFjZU5hbWV9J2AsIHRoaXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgY29uc3Qgcm91dGVyTmV0d29ya0ludGVyZmFjZSA9IG5ldyBDZm5Sb3V0ZXJOZXR3b3JrSW50ZXJmYWNlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgY29uZmlndXJhdGlvbjogcHJvcHMuY29uZmlndXJhdGlvbi5fYmluZCh0aGlzKSxcbiAgICAgIHJlZ2lvbk5hbWU6IHByb3BzLnJlZ2lvbk5hbWUsXG4gICAgICB0YWdzOiBwcm9wcy50YWdzID8gcmVuZGVyVGFncyhwcm9wcy50YWdzKSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHRoaXMucm91dGVyTmV0d29ya0ludGVyZmFjZUFybiA9IHJvdXRlck5ldHdvcmtJbnRlcmZhY2UuYXR0ckFybjtcbiAgICB0aGlzLnJvdXRlck5ldHdvcmtJbnRlcmZhY2VJZCA9IHJvdXRlck5ldHdvcmtJbnRlcmZhY2UuYXR0cklkO1xuICAgIHRoaXMuY3JlYXRlZEF0ID0gcm91dGVyTmV0d29ya0ludGVyZmFjZS5hdHRyQ3JlYXRlZEF0O1xuICAgIHRoaXMudXBkYXRlZEF0ID0gcm91dGVyTmV0d29ya0ludGVyZmFjZS5hdHRyVXBkYXRlZEF0O1xuICB9XG59XG4iXX0=
@@ -132,13 +132,12 @@ export interface RouterOutputProps {
132
132
  * @default - Generated automatically
133
133
  */
134
134
  readonly routerOutputName?: string;
135
- /** Maximum bitrate in bits per second that the Router Output can handle */
135
+ /** The maximum bitrate for the router output. */
136
136
  readonly maximumBitrate: Bitrate;
137
- /** Routing scope for the Router Output */
137
+ /** Indicates whether the router output is configured for Regional or global routing. */
138
138
  readonly routingScope: RoutingScope;
139
139
  /**
140
- * Routing tier that determines the maximum number of outputs.
141
- *
140
+ * Select a tier based on your maximum bitrate requirements.
142
141
  * @default RouterOutputTier.OUTPUT_20
143
142
  */
144
143
  readonly tier?: RouterOutputTier;
@@ -150,7 +149,7 @@ export interface RouterOutputProps {
150
149
  */
151
150
  readonly maintenanceConfiguration?: MaintenanceConfiguration;
152
151
  /**
153
- * AWS region where the Router Output will be created
152
+ * The AWS Region where the router output is located.
154
153
  * @default - Defaults to the same region as stack
155
154
  */
156
155
  readonly regionName?: string;
@@ -328,6 +327,12 @@ export interface StandardOutputConfigurationProps {
328
327
  readonly networkInterface: IRouterNetworkInterface;
329
328
  /** Protocol configuration for the output */
330
329
  readonly protocol: RouterOutputProtocol;
330
+ /**
331
+ * The availability zone where the router output is located.
332
+ *
333
+ * @default - assigned by the MediaConnect service
334
+ */
335
+ readonly availabilityZone?: string;
331
336
  }
332
337
  /**
333
338
  * Properties for MediaLive Router Output configuration with specific input connection