@aws-cdk/aws-iot-alpha 2.219.0-alpha.0 → 2.221.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.219.0",
11
+ "aws-cdk-lib": "^2.221.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -4082,7 +4082,7 @@
4082
4082
  "stability": "experimental"
4083
4083
  },
4084
4084
  "homepage": "https://github.com/aws/aws-cdk",
4085
- "jsiiVersion": "5.7.22 (build 1cfeabd)",
4085
+ "jsiiVersion": "5.9.8 (build 3d2e131)",
4086
4086
  "keywords": [
4087
4087
  "aws",
4088
4088
  "cdk",
@@ -6409,6 +6409,6 @@
6409
6409
  "symbolId": "lib/topic-rule:TopicRuleProps"
6410
6410
  }
6411
6411
  },
6412
- "version": "2.219.0-alpha.0",
6412
+ "version": "2.221.0-alpha.0",
6413
6413
  "fingerprint": "**********"
6414
6414
  }
Binary file
@@ -1,11 +1,38 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
2
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
5
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
6
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
7
+ var _, done = false;
8
+ for (var i = decorators.length - 1; i >= 0; i--) {
9
+ var context = {};
10
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
11
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
12
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
13
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
14
+ if (kind === "accessor") {
15
+ if (result === void 0) continue;
16
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
17
+ if (_ = accept(result.get)) descriptor.get = _;
18
+ if (_ = accept(result.set)) descriptor.set = _;
19
+ if (_ = accept(result.init)) initializers.unshift(_);
20
+ }
21
+ else if (_ = accept(result)) {
22
+ if (kind === "field") initializers.unshift(_);
23
+ else descriptor[key] = _;
24
+ }
25
+ }
26
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
+ done = true;
28
+ };
29
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
+ var useValue = arguments.length > 2;
31
+ for (var i = 0; i < initializers.length; i++) {
32
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
+ }
34
+ return useValue ? value : void 0;
7
35
  };
8
- var _a;
9
36
  Object.defineProperty(exports, "__esModule", { value: true });
10
37
  exports.AccountAuditConfiguration = void 0;
11
38
  const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
@@ -18,131 +45,147 @@ const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
18
45
  /**
19
46
  * Defines AWS IoT Audit Configuration
20
47
  */
21
- let AccountAuditConfiguration = class AccountAuditConfiguration extends core_1.Resource {
22
- /**
23
- * Import an existing AWS IoT Audit Configuration
24
- *
25
- * @param scope The parent creating construct (usually `this`)
26
- * @param id The construct's name
27
- * @param accountId The account ID
28
- */
29
- static fromAccountId(scope, id, accountId) {
30
- class Import extends core_1.Resource {
31
- constructor() {
32
- super(...arguments);
33
- this.accountId = accountId;
34
- }
35
- }
36
- return new Import(scope, id);
37
- }
38
- constructor(scope, id, props) {
39
- super(scope, id);
40
- try {
41
- jsiiDeprecationWarnings._aws_cdk_aws_iot_alpha_AccountAuditConfigurationProps(props);
48
+ let AccountAuditConfiguration = (() => {
49
+ let _classDecorators = [prop_injectable_1.propertyInjectable];
50
+ let _classDescriptor;
51
+ let _classExtraInitializers = [];
52
+ let _classThis;
53
+ let _classSuper = core_1.Resource;
54
+ var AccountAuditConfiguration = class extends _classSuper {
55
+ static { _classThis = this; }
56
+ static {
57
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
58
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
59
+ AccountAuditConfiguration = _classThis = _classDescriptor.value;
60
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
42
61
  }
43
- catch (error) {
44
- if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
45
- Error.captureStackTrace(error, AccountAuditConfiguration);
62
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-iot-alpha.AccountAuditConfiguration", version: "2.221.0-alpha.0" };
63
+ /** Uniquely identifies this class. */
64
+ static PROPERTY_INJECTION_ID = '@aws-cdk.aws-iot-alpha.AccountAuditConfiguration';
65
+ /**
66
+ * Import an existing AWS IoT Audit Configuration
67
+ *
68
+ * @param scope The parent creating construct (usually `this`)
69
+ * @param id The construct's name
70
+ * @param accountId The account ID
71
+ */
72
+ static fromAccountId(scope, id, accountId) {
73
+ class Import extends core_1.Resource {
74
+ accountId = accountId;
46
75
  }
47
- throw error;
76
+ return new Import(scope, id);
48
77
  }
49
- // Enhanced CDK Analytics Telemetry
50
- (0, metadata_resource_1.addConstructMetadata)(this, props);
51
- const deviceAgeCheckThreshold = props?.checkConfiguration?.deviceCertificateAgeCheckDuration;
52
- if (deviceAgeCheckThreshold) {
53
- if (props?.checkConfiguration?.deviceCertificateAgeCheck === false) {
54
- throw new Error('You cannot specify a value for `deviceCertificateAgeCheckDuration` if `deviceCertificateAgeCheck` is set to `false`.');
78
+ /**
79
+ * The account ID
80
+ * @attribute
81
+ */
82
+ accountId;
83
+ constructor(scope, id, props) {
84
+ super(scope, id);
85
+ try {
86
+ jsiiDeprecationWarnings._aws_cdk_aws_iot_alpha_AccountAuditConfigurationProps(props);
55
87
  }
56
- if (!deviceAgeCheckThreshold.isUnresolved() && deviceAgeCheckThreshold.toDays() < 30 || deviceAgeCheckThreshold.toDays() > 3650) {
57
- throw new Error(`The device certificate age check threshold must be between 30 and 3650 days. got: ${deviceAgeCheckThreshold.toDays()} days.`);
88
+ catch (error) {
89
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
90
+ Error.captureStackTrace(error, AccountAuditConfiguration);
91
+ }
92
+ throw error;
58
93
  }
94
+ // Enhanced CDK Analytics Telemetry
95
+ (0, metadata_resource_1.addConstructMetadata)(this, props);
96
+ const deviceAgeCheckThreshold = props?.checkConfiguration?.deviceCertificateAgeCheckDuration;
97
+ if (deviceAgeCheckThreshold) {
98
+ if (props?.checkConfiguration?.deviceCertificateAgeCheck === false) {
99
+ throw new Error('You cannot specify a value for `deviceCertificateAgeCheckDuration` if `deviceCertificateAgeCheck` is set to `false`.');
100
+ }
101
+ if (!deviceAgeCheckThreshold.isUnresolved() && deviceAgeCheckThreshold.toDays() < 30 || deviceAgeCheckThreshold.toDays() > 3650) {
102
+ throw new Error(`The device certificate age check threshold must be between 30 and 3650 days. got: ${deviceAgeCheckThreshold.toDays()} days.`);
103
+ }
104
+ }
105
+ this.accountId = core_1.Stack.of(this).account;
106
+ const auditRole = new iam.Role(this, 'AuditRole', {
107
+ assumedBy: new iam.ServicePrincipal('iot.amazonaws.com'),
108
+ managedPolicies: [
109
+ iam.ManagedPolicy.fromAwsManagedPolicyName('service-role/AWSIoTDeviceDefenderAudit'),
110
+ ],
111
+ });
112
+ new iot.CfnAccountAuditConfiguration(this, 'Resource', {
113
+ accountId: this.accountId,
114
+ auditCheckConfigurations: this.renderAuditCheckConfigurations(props?.checkConfiguration),
115
+ auditNotificationTargetConfigurations: this.renderAuditNotificationTargetConfigurations(props?.targetTopic),
116
+ roleArn: auditRole.roleArn,
117
+ });
59
118
  }
60
- this.accountId = core_1.Stack.of(this).account;
61
- const auditRole = new iam.Role(this, 'AuditRole', {
62
- assumedBy: new iam.ServicePrincipal('iot.amazonaws.com'),
63
- managedPolicies: [
64
- iam.ManagedPolicy.fromAwsManagedPolicyName('service-role/AWSIoTDeviceDefenderAudit'),
65
- ],
66
- });
67
- new iot.CfnAccountAuditConfiguration(this, 'Resource', {
68
- accountId: this.accountId,
69
- auditCheckConfigurations: this.renderAuditCheckConfigurations(props?.checkConfiguration),
70
- auditNotificationTargetConfigurations: this.renderAuditNotificationTargetConfigurations(props?.targetTopic),
71
- roleArn: auditRole.roleArn,
72
- });
73
- }
74
- /**
75
- * Render the audit notification target configurations
76
- */
77
- renderAuditNotificationTargetConfigurations(targetTopic) {
78
- if (!targetTopic) {
79
- return undefined;
80
- }
81
- const notificationRole = new iam.Role(this, 'NotificationRole', {
82
- assumedBy: new iam.ServicePrincipal('iot.amazonaws.com'),
83
- inlinePolicies: {
84
- NotificationPolicy: new iam.PolicyDocument({
85
- statements: [
86
- new iam.PolicyStatement({
87
- actions: ['sns:Publish'],
88
- resources: [targetTopic.topicArn],
89
- }),
90
- ],
91
- }),
92
- },
93
- });
94
- return {
95
- sns: {
96
- enabled: true,
97
- targetArn: targetTopic.topicArn,
98
- roleArn: notificationRole.roleArn,
99
- },
100
- };
101
- }
102
- /**
103
- * Render the audit check configurations
104
- */
105
- renderAuditCheckConfigurations(checkConfiguration) {
106
- return {
107
- authenticatedCognitoRoleOverlyPermissiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.authenticatedCognitoRoleOverlyPermissiveCheck),
108
- caCertificateExpiringCheck: this.renderAuditCheckConfiguration(checkConfiguration?.caCertificateExpiringCheck),
109
- caCertificateKeyQualityCheck: this.renderAuditCheckConfiguration(checkConfiguration?.caCertificateKeyQualityCheck),
110
- conflictingClientIdsCheck: this.renderAuditCheckConfiguration(checkConfiguration?.conflictingClientIdsCheck),
111
- deviceCertificateAgeCheck: checkConfiguration?.deviceCertificateAgeCheck !== false ?
112
- {
119
+ /**
120
+ * Render the audit notification target configurations
121
+ */
122
+ renderAuditNotificationTargetConfigurations(targetTopic) {
123
+ if (!targetTopic) {
124
+ return undefined;
125
+ }
126
+ const notificationRole = new iam.Role(this, 'NotificationRole', {
127
+ assumedBy: new iam.ServicePrincipal('iot.amazonaws.com'),
128
+ inlinePolicies: {
129
+ NotificationPolicy: new iam.PolicyDocument({
130
+ statements: [
131
+ new iam.PolicyStatement({
132
+ actions: ['sns:Publish'],
133
+ resources: [targetTopic.topicArn],
134
+ }),
135
+ ],
136
+ }),
137
+ },
138
+ });
139
+ return {
140
+ sns: {
113
141
  enabled: true,
114
- configuration: {
115
- certAgeThresholdInDays: String(checkConfiguration?.deviceCertificateAgeCheckDuration?.toDays() ?? 365),
116
- },
117
- } :
118
- undefined,
119
- deviceCertificateExpiringCheck: this.renderAuditCheckConfiguration(checkConfiguration?.deviceCertificateExpiringCheck),
120
- deviceCertificateKeyQualityCheck: this.renderAuditCheckConfiguration(checkConfiguration?.deviceCertificateKeyQualityCheck),
121
- deviceCertificateSharedCheck: this.renderAuditCheckConfiguration(checkConfiguration?.deviceCertificateSharedCheck),
122
- intermediateCaRevokedForActiveDeviceCertificatesCheck: this.renderAuditCheckConfiguration(checkConfiguration?.intermediateCaRevokedForActiveDeviceCertificatesCheck),
123
- iotPolicyOverlyPermissiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.iotPolicyOverlyPermissiveCheck),
124
- ioTPolicyPotentialMisConfigurationCheck: this.renderAuditCheckConfiguration(checkConfiguration?.ioTPolicyPotentialMisConfigurationCheck),
125
- iotRoleAliasAllowsAccessToUnusedServicesCheck: this.renderAuditCheckConfiguration(checkConfiguration?.iotRoleAliasAllowsAccessToUnusedServicesCheck),
126
- iotRoleAliasOverlyPermissiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.iotRoleAliasOverlyPermissiveCheck),
127
- loggingDisabledCheck: this.renderAuditCheckConfiguration(checkConfiguration?.loggingDisabledCheck),
128
- revokedCaCertificateStillActiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.revokedCaCertificateStillActiveCheck),
129
- revokedDeviceCertificateStillActiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.revokedDeviceCertificateStillActiveCheck),
130
- unauthenticatedCognitoRoleOverlyPermissiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.unauthenticatedCognitoRoleOverlyPermissiveCheck),
131
- };
132
- }
133
- /**
134
- * Render the audit check configuration
135
- */
136
- renderAuditCheckConfiguration(check) {
137
- return check === false ? undefined : { enabled: true };
138
- }
139
- };
142
+ targetArn: targetTopic.topicArn,
143
+ roleArn: notificationRole.roleArn,
144
+ },
145
+ };
146
+ }
147
+ /**
148
+ * Render the audit check configurations
149
+ */
150
+ renderAuditCheckConfigurations(checkConfiguration) {
151
+ return {
152
+ authenticatedCognitoRoleOverlyPermissiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.authenticatedCognitoRoleOverlyPermissiveCheck),
153
+ caCertificateExpiringCheck: this.renderAuditCheckConfiguration(checkConfiguration?.caCertificateExpiringCheck),
154
+ caCertificateKeyQualityCheck: this.renderAuditCheckConfiguration(checkConfiguration?.caCertificateKeyQualityCheck),
155
+ conflictingClientIdsCheck: this.renderAuditCheckConfiguration(checkConfiguration?.conflictingClientIdsCheck),
156
+ deviceCertificateAgeCheck: checkConfiguration?.deviceCertificateAgeCheck !== false ?
157
+ {
158
+ enabled: true,
159
+ configuration: {
160
+ certAgeThresholdInDays: String(checkConfiguration?.deviceCertificateAgeCheckDuration?.toDays() ?? 365),
161
+ },
162
+ } :
163
+ undefined,
164
+ deviceCertificateExpiringCheck: this.renderAuditCheckConfiguration(checkConfiguration?.deviceCertificateExpiringCheck),
165
+ deviceCertificateKeyQualityCheck: this.renderAuditCheckConfiguration(checkConfiguration?.deviceCertificateKeyQualityCheck),
166
+ deviceCertificateSharedCheck: this.renderAuditCheckConfiguration(checkConfiguration?.deviceCertificateSharedCheck),
167
+ intermediateCaRevokedForActiveDeviceCertificatesCheck: this.renderAuditCheckConfiguration(checkConfiguration?.intermediateCaRevokedForActiveDeviceCertificatesCheck),
168
+ iotPolicyOverlyPermissiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.iotPolicyOverlyPermissiveCheck),
169
+ ioTPolicyPotentialMisConfigurationCheck: this.renderAuditCheckConfiguration(checkConfiguration?.ioTPolicyPotentialMisConfigurationCheck),
170
+ iotRoleAliasAllowsAccessToUnusedServicesCheck: this.renderAuditCheckConfiguration(checkConfiguration?.iotRoleAliasAllowsAccessToUnusedServicesCheck),
171
+ iotRoleAliasOverlyPermissiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.iotRoleAliasOverlyPermissiveCheck),
172
+ loggingDisabledCheck: this.renderAuditCheckConfiguration(checkConfiguration?.loggingDisabledCheck),
173
+ revokedCaCertificateStillActiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.revokedCaCertificateStillActiveCheck),
174
+ revokedDeviceCertificateStillActiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.revokedDeviceCertificateStillActiveCheck),
175
+ unauthenticatedCognitoRoleOverlyPermissiveCheck: this.renderAuditCheckConfiguration(checkConfiguration?.unauthenticatedCognitoRoleOverlyPermissiveCheck),
176
+ };
177
+ }
178
+ /**
179
+ * Render the audit check configuration
180
+ */
181
+ renderAuditCheckConfiguration(check) {
182
+ return check === false ? undefined : { enabled: true };
183
+ }
184
+ static {
185
+ __runInitializers(_classThis, _classExtraInitializers);
186
+ }
187
+ };
188
+ return AccountAuditConfiguration = _classThis;
189
+ })();
140
190
  exports.AccountAuditConfiguration = AccountAuditConfiguration;
141
- _a = JSII_RTTI_SYMBOL_1;
142
- AccountAuditConfiguration[_a] = { fqn: "@aws-cdk/aws-iot-alpha.AccountAuditConfiguration", version: "2.219.0-alpha.0" };
143
- /** Uniquely identifies this class. */
144
- AccountAuditConfiguration.PROPERTY_INJECTION_ID = '@aws-cdk.aws-iot-alpha.AccountAuditConfiguration';
145
- exports.AccountAuditConfiguration = AccountAuditConfiguration = __decorate([
146
- prop_injectable_1.propertyInjectable
147
- ], AccountAuditConfiguration);
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF1ZGl0LWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXdFO0FBRXhFLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFFM0MsOEVBQThFO0FBQzlFLDBFQUEwRTtBQTRMMUU7O0dBRUc7QUFFSSxJQUFNLHlCQUF5QixHQUEvQixNQUFNLHlCQUEwQixTQUFRLGVBQVE7SUFJckQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxTQUFpQjtRQUN6RSxNQUFNLE1BQU8sU0FBUSxlQUFRO1lBQTdCOztnQkFDa0IsY0FBUyxHQUFHLFNBQVMsQ0FBQztZQUN4QyxDQUFDO1NBQUE7UUFDRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5QjtJQVFELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0M7UUFDOUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7Ozs7OytDQXpCUix5QkFBeUI7Ozs7UUEwQmxDLG1DQUFtQztRQUNuQyxJQUFBLHdDQUFvQixFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVsQyxNQUFNLHVCQUF1QixHQUFHLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxpQ0FBaUMsQ0FBQztRQUU3RixJQUFJLHVCQUF1QixFQUFFLENBQUM7WUFDNUIsSUFBSSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ25FLE1BQU0sSUFBSSxLQUFLLENBQUMsc0hBQXNILENBQUMsQ0FBQztZQUMxSSxDQUFDO1lBQ0QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxJQUFJLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSx1QkFB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cEMsc0NBQXNDO0FBQ2YsK0NBQXFCLEdBQVcsa0RBQWtELEFBQTdELENBQThEO29DQUYvRix5QkFBeUI7SUFEckMsb0NBQWtCO0dBQ04seUJBQXlCLENBc0lyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc291cmNlLCBTdGFjaywgSVJlc291cmNlLCBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBpb3QgZnJvbSAnYXdzLWNkay1saWIvYXdzLWlvdCc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBBV1MgSW9UIEF1ZGl0IENvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbiBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudCBJRFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgdHlwZXMgb2YgYXVkaXQgY2hlY2tzXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW90LWRldmljZS1kZWZlbmRlci9sYXRlc3QvZGV2Z3VpZGUvZGV2aWNlLWRlZmVuZGVyLWF1ZGl0LWNoZWNrcy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIENoZWNrcyB0aGUgcGVybWlzc2l2ZW5lc3Mgb2YgYW4gYXV0aGVudGljYXRlZCBBbWF6b24gQ29nbml0byBpZGVudGl0eSBwb29sIHJvbGUuXG4gICAqXG4gICAqIEZvciB0aGlzIGNoZWNrLCBBV1MgSW9UIERldmljZSBEZWZlbmRlciBhdWRpdHMgYWxsIEFtYXpvbiBDb2duaXRvIGlkZW50aXR5IHBvb2xzIHRoYXQgaGF2ZSBiZWVuIHVzZWQgdG8gY29ubmVjdCB0byB0aGUgQVdTIElvVCBtZXNzYWdlIGJyb2tlclxuICAgKiBkdXJpbmcgdGhlIDMxIGRheXMgYmVmb3JlIHRoZSBhdWRpdCBpcyBwZXJmb3JtZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhlbnRpY2F0ZWRDb2duaXRvUm9sZU92ZXJseVBlcm1pc3NpdmVDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIENBIGNlcnRpZmljYXRlIGlzIGV4cGlyaW5nLlxuICAgKlxuICAgKiBUaGlzIGNoZWNrIGFwcGxpZXMgdG8gQ0EgY2VydGlmaWNhdGVzIGV4cGlyaW5nIHdpdGhpbiAzMCBkYXlzIG9yIHRoYXQgaGF2ZSBleHBpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjYUNlcnRpZmljYXRlRXhwaXJpbmdDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyB0aGUgcXVhbGl0eSBvZiB0aGUgQ0EgY2VydGlmaWNhdGUga2V5LlxuICAgKlxuICAgKiBUaGUgcXVhbGl0eSBjaGVja3MgaWYgdGhlIGtleSBpcyBpbiBhIHZhbGlkIGZvcm1hdCwgbm90IGV4cGlyZWQsIGFuZCBpZiB0aGUga2V5IG1lZXRzIGEgbWluaW11bSByZXF1aXJlZCBzaXplLlxuICAgKlxuICAgKiBUaGlzIGNoZWNrIGFwcGxpZXMgdG8gQ0EgY2VydGlmaWNhdGVzIHRoYXQgYXJlIEFDVElWRSBvciBQRU5ESU5HX1RSQU5TRkVSLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjYUNlcnRpZmljYXRlS2V5UXVhbGl0eUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIG11bHRpcGxlIGRldmljZXMgY29ubmVjdCB1c2luZyB0aGUgc2FtZSBjbGllbnQgSUQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNvbmZsaWN0aW5nQ2xpZW50SWRzQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hlbiBhIGRldmljZSBjZXJ0aWZpY2F0ZSBoYXMgYmVlbiBhY3RpdmUgZm9yIGEgbnVtYmVyIG9mIGRheXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBudW1iZXIgeW91IHNwZWNpZnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRldmljZUNlcnRpZmljYXRlQWdlQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZHVyYXRpb24gdXNlZCB0byBjaGVjayBpZiBhIGRldmljZSBjZXJ0aWZpY2F0ZSBoYXMgYmVlbiBhY3RpdmVcbiAgICogZm9yIGEgbnVtYmVyIG9mIGRheXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBudW1iZXIgeW91IHNwZWNpZnkuXG4gICAqXG4gICAqIFZhbGlkIHZhbHVlcyByYW5nZSBmcm9tIDMwIGRheXMgKG1pbmltdW0pIHRvIDM2NTAgZGF5cyAoMTAgeWVhcnMsIG1heGltdW0pLlxuICAgKlxuICAgKiBZb3UgY2Fubm90IHNwZWNpZnkgYSB2YWx1ZSBmb3IgdGhpcyBjaGVjayBpZiBgZGV2aWNlQ2VydGlmaWNhdGVBZ2VDaGVja2AgaXMgc2V0IHRvIGBmYWxzZWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMzY1IGRheXNcbiAgICovXG4gIHJlYWRvbmx5IGRldmljZUNlcnRpZmljYXRlQWdlQ2hlY2tEdXJhdGlvbj86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBkZXZpY2UgY2VydGlmaWNhdGUgaXMgZXhwaXJpbmcuXG4gICAqXG4gICAqIFRoaXMgY2hlY2sgYXBwbGllcyB0byBkZXZpY2UgY2VydGlmaWNhdGVzIGV4cGlyaW5nIHdpdGhpbiAzMCBkYXlzIG9yIHRoYXQgaGF2ZSBleHBpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkZXZpY2VDZXJ0aWZpY2F0ZUV4cGlyaW5nQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgdGhlIHF1YWxpdHkgb2YgdGhlIGRldmljZSBjZXJ0aWZpY2F0ZSBrZXkuXG4gICAqXG4gICAqIFRoZSBxdWFsaXR5IGNoZWNrcyBpZiB0aGUga2V5IGlzIGluIGEgdmFsaWQgZm9ybWF0LCBub3QgZXhwaXJlZCwgc2lnbmVkIGJ5IGEgcmVnaXN0ZXJlZCBjZXJ0aWZpY2F0ZSBhdXRob3JpdHksXG4gICAqIGFuZCBpZiB0aGUga2V5IG1lZXRzIGEgbWluaW11bSByZXF1aXJlZCBzaXplLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkZXZpY2VDZXJ0aWZpY2F0ZUtleVF1YWxpdHlDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBtdWx0aXBsZSBjb25jdXJyZW50IGNvbm5lY3Rpb25zIHVzZSB0aGUgc2FtZSBYLjUwOSBjZXJ0aWZpY2F0ZSB0byBhdXRoZW50aWNhdGUgd2l0aCBBV1MgSW9ULlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkZXZpY2VDZXJ0aWZpY2F0ZVNoYXJlZENoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGRldmljZSBjZXJ0aWZpY2F0ZXMgYXJlIHN0aWxsIGFjdGl2ZSBkZXNwaXRlIGJlaW5nIHJldm9rZWQgYnkgYW4gaW50ZXJtZWRpYXRlIENBLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpbnRlcm1lZGlhdGVDYVJldm9rZWRGb3JBY3RpdmVEZXZpY2VDZXJ0aWZpY2F0ZXNDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyB0aGUgcGVybWlzc2l2ZW5lc3Mgb2YgYSBwb2xpY3kgYXR0YWNoZWQgdG8gYW4gYXV0aGVudGljYXRlZCBBbWF6b24gQ29nbml0byBpZGVudGl0eSBwb29sIHJvbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGlvdFBvbGljeU92ZXJseVBlcm1pc3NpdmVDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhbiBBV1MgSW9UIHBvbGljeSBpcyBwb3RlbnRpYWxseSBtaXNjb25maWd1cmVkLlxuICAgKlxuICAgKiBNaXNjb25maWd1cmVkIHBvbGljaWVzLCBpbmNsdWRpbmcgb3Zlcmx5IHBlcm1pc3NpdmUgcG9saWNpZXMsIGNhbiBjYXVzZSBzZWN1cml0eSBpbmNpZGVudHMgbGlrZSBhbGxvd2luZyBkZXZpY2VzIGFjY2VzcyB0byB1bmludGVuZGVkIHJlc291cmNlcy5cbiAgICpcbiAgICogVGhpcyBjaGVjayBpcyBhIHdhcm5pbmcgZm9yIHlvdSB0byBtYWtlIHN1cmUgdGhhdCBvbmx5IGludGVuZGVkIGFjdGlvbnMgYXJlIGFsbG93ZWQgYmVmb3JlIHVwZGF0aW5nIHRoZSBwb2xpY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGlvVFBvbGljeVBvdGVudGlhbE1pc0NvbmZpZ3VyYXRpb25DaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHJvbGUgYWxpYXMgaGFzIGFjY2VzcyB0byBzZXJ2aWNlcyB0aGF0IGhhdmVuJ3QgYmVlbiB1c2VkIGZvciB0aGUgQVdTIElvVCBkZXZpY2UgaW4gdGhlIGxhc3QgeWVhci5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW90Um9sZUFsaWFzQWxsb3dzQWNjZXNzVG9VbnVzZWRTZXJ2aWNlc0NoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSB0ZW1wb3JhcnkgY3JlZGVudGlhbHMgcHJvdmlkZWQgYnkgQVdTIElvVCByb2xlIGFsaWFzZXMgYXJlIG92ZXJseSBwZXJtaXNzaXZlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpb3RSb2xlQWxpYXNPdmVybHlQZXJtaXNzaXZlQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgQVdTIElvVCBsb2dzIGFyZSBkaXNhYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nZ2luZ0Rpc2FibGVkQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSByZXZva2VkIENBIGNlcnRpZmljYXRlIGlzIHN0aWxsIGFjdGl2ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmV2b2tlZENhQ2VydGlmaWNhdGVTdGlsbEFjdGl2ZUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgcmV2b2tlZCBkZXZpY2UgY2VydGlmaWNhdGUgaXMgc3RpbGwgYWN0aXZlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByZXZva2VkRGV2aWNlQ2VydGlmaWNhdGVTdGlsbEFjdGl2ZUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHBvbGljeSBhdHRhY2hlZCB0byBhbiB1bmF1dGhlbnRpY2F0ZWQgQW1hem9uIENvZ25pdG8gaWRlbnRpdHkgcG9vbCByb2xlIGlzIHRvbyBwZXJtaXNzaXZlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB1bmF1dGhlbnRpY2F0ZWRDb2duaXRvUm9sZU92ZXJseVBlcm1pc3NpdmVDaGVjaz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgQVdTIElvVCBBdWRpdCBDb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgU05TIHRvcGljIHRvIHdoaWNoIGF1ZGl0IG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbm90aWZpY2F0aW9ucyBhcmUgc2VudFxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0VG9waWM/OiBzbnMuSVRvcGljO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hpY2ggYXVkaXQgY2hlY2tzIGFyZSBlbmFibGVkIGFuZCBkaXNhYmxlZCBmb3IgdGhpcyBhY2NvdW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFsbCBjaGVja3MgYXJlIGVuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGNoZWNrQ29uZmlndXJhdGlvbj86IENoZWNrQ29uZmlndXJhdGlvbjtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIEFXUyBJb1QgQXVkaXQgQ29uZmlndXJhdGlvblxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbiBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24ge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1pb3QtYWxwaGEuQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbic7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBBV1MgSW9UIEF1ZGl0IENvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYClcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lXG4gICAqIEBwYXJhbSBhY2NvdW50SWQgVGhlIGFjY291bnQgSURcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFjY291bnRJZChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhY2NvdW50SWQ6IHN0cmluZyk6IElBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBhY2NvdW50SWQgPSBhY2NvdW50SWQ7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFjY291bnQgSURcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFjY291bnRJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIGNvbnN0IGRldmljZUFnZUNoZWNrVGhyZXNob2xkID0gcHJvcHM/LmNoZWNrQ29uZmlndXJhdGlvbj8uZGV2aWNlQ2VydGlmaWNhdGVBZ2VDaGVja0R1cmF0aW9uO1xuXG4gICAgaWYgKGRldmljZUFnZUNoZWNrVGhyZXNob2xkKSB7XG4gICAgICBpZiAocHJvcHM/LmNoZWNrQ29uZmlndXJhdGlvbj8uZGV2aWNlQ2VydGlmaWNhdGVBZ2VDaGVjayA9PT0gZmFsc2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHNwZWNpZnkgYSB2YWx1ZSBmb3IgYGRldmljZUNlcnRpZmljYXRlQWdlQ2hlY2tEdXJhdGlvbmAgaWYgYGRldmljZUNlcnRpZmljYXRlQWdlQ2hlY2tgIGlzIHNldCB0byBgZmFsc2VgLicpO1xuICAgICAgfVxuICAgICAgaWYgKCFkZXZpY2VBZ2VDaGVja1RocmVzaG9sZC5pc1VucmVzb2x2ZWQoKSAmJiBkZXZpY2VBZ2VDaGVja1RocmVzaG9sZC50b0RheXMoKSA8IDMwIHx8IGRldmljZUFnZUNoZWNrVGhyZXNob2xkLnRvRGF5cygpID4gMzY1MCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBkZXZpY2UgY2VydGlmaWNhdGUgYWdlIGNoZWNrIHRocmVzaG9sZCBtdXN0IGJlIGJldHdlZW4gMzAgYW5kIDM2NTAgZGF5cy4gZ290OiAke2RldmljZUFnZUNoZWNrVGhyZXNob2xkLnRvRGF5cygpfSBkYXlzLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYWNjb3VudElkID0gU3RhY2sub2YodGhpcykuYWNjb3VudDtcblxuICAgIGNvbnN0IGF1ZGl0Um9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnQXVkaXRSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2lvdC5hbWF6b25hd3MuY29tJyksXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdzZXJ2aWNlLXJvbGUvQVdTSW9URGV2aWNlRGVmZW5kZXJBdWRpdCcpLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIG5ldyBpb3QuQ2ZuQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbih0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBhY2NvdW50SWQ6IHRoaXMuYWNjb3VudElkLFxuICAgICAgYXVkaXRDaGVja0NvbmZpZ3VyYXRpb25zOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9ucyhwcm9wcz8uY2hlY2tDb25maWd1cmF0aW9uKSxcbiAgICAgIGF1ZGl0Tm90aWZpY2F0aW9uVGFyZ2V0Q29uZmlndXJhdGlvbnM6IHRoaXMucmVuZGVyQXVkaXROb3RpZmljYXRpb25UYXJnZXRDb25maWd1cmF0aW9ucyhwcm9wcz8udGFyZ2V0VG9waWMpLFxuICAgICAgcm9sZUFybjogYXVkaXRSb2xlLnJvbGVBcm4sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSBhdWRpdCBub3RpZmljYXRpb24gdGFyZ2V0IGNvbmZpZ3VyYXRpb25zXG4gICAqL1xuICBwcml2YXRlIHJlbmRlckF1ZGl0Tm90aWZpY2F0aW9uVGFyZ2V0Q29uZmlndXJhdGlvbnMoXG4gICAgdGFyZ2V0VG9waWM/OiBzbnMuSVRvcGljLFxuICApOiBpb3QuQ2ZuQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbi5BdWRpdE5vdGlmaWNhdGlvblRhcmdldENvbmZpZ3VyYXRpb25zUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGFyZ2V0VG9waWMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnTm90aWZpY2F0aW9uUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdpb3QuYW1hem9uYXdzLmNvbScpLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgTm90aWZpY2F0aW9uUG9saWN5OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIGFjdGlvbnM6IFsnc25zOlB1Ymxpc2gnXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbdGFyZ2V0VG9waWMudG9waWNBcm5dLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNuczoge1xuICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICB0YXJnZXRBcm46IHRhcmdldFRvcGljLnRvcGljQXJuLFxuICAgICAgICByb2xlQXJuOiBub3RpZmljYXRpb25Sb2xlLnJvbGVBcm4sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSBhdWRpdCBjaGVjayBjb25maWd1cmF0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSByZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbnMoY2hlY2tDb25maWd1cmF0aW9uPzogQ2hlY2tDb25maWd1cmF0aW9uKTogaW90LkNmbkFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24uQXVkaXRDaGVja0NvbmZpZ3VyYXRpb25zUHJvcGVydHkge1xuICAgIHJldHVybiB7XG4gICAgICBhdXRoZW50aWNhdGVkQ29nbml0b1JvbGVPdmVybHlQZXJtaXNzaXZlQ2hlY2s6XG4gICAgICAgIHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5hdXRoZW50aWNhdGVkQ29nbml0b1JvbGVPdmVybHlQZXJtaXNzaXZlQ2hlY2spLFxuICAgICAgY2FDZXJ0aWZpY2F0ZUV4cGlyaW5nQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5jYUNlcnRpZmljYXRlRXhwaXJpbmdDaGVjayksXG4gICAgICBjYUNlcnRpZmljYXRlS2V5UXVhbGl0eUNoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uY2FDZXJ0aWZpY2F0ZUtleVF1YWxpdHlDaGVjayksXG4gICAgICBjb25mbGljdGluZ0NsaWVudElkc0NoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uY29uZmxpY3RpbmdDbGllbnRJZHNDaGVjayksXG4gICAgICBkZXZpY2VDZXJ0aWZpY2F0ZUFnZUNoZWNrOlxuICAgICAgICBjaGVja0NvbmZpZ3VyYXRpb24/LmRldmljZUNlcnRpZmljYXRlQWdlQ2hlY2sgIT09IGZhbHNlID9cbiAgICAgICAgICB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICBjZXJ0QWdlVGhyZXNob2xkSW5EYXlzOiBTdHJpbmcoY2hlY2tDb25maWd1cmF0aW9uPy5kZXZpY2VDZXJ0aWZpY2F0ZUFnZUNoZWNrRHVyYXRpb24/LnRvRGF5cygpID8/IDM2NSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0gOlxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGRldmljZUNlcnRpZmljYXRlRXhwaXJpbmdDaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmRldmljZUNlcnRpZmljYXRlRXhwaXJpbmdDaGVjayksXG4gICAgICBkZXZpY2VDZXJ0aWZpY2F0ZUtleVF1YWxpdHlDaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmRldmljZUNlcnRpZmljYXRlS2V5UXVhbGl0eUNoZWNrKSxcbiAgICAgIGRldmljZUNlcnRpZmljYXRlU2hhcmVkQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5kZXZpY2VDZXJ0aWZpY2F0ZVNoYXJlZENoZWNrKSxcbiAgICAgIGludGVybWVkaWF0ZUNhUmV2b2tlZEZvckFjdGl2ZURldmljZUNlcnRpZmljYXRlc0NoZWNrOlxuICAgICAgICB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uaW50ZXJtZWRpYXRlQ2FSZXZva2VkRm9yQWN0aXZlRGV2aWNlQ2VydGlmaWNhdGVzQ2hlY2spLFxuICAgICAgaW90UG9saWN5T3Zlcmx5UGVybWlzc2l2ZUNoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uaW90UG9saWN5T3Zlcmx5UGVybWlzc2l2ZUNoZWNrKSxcbiAgICAgIGlvVFBvbGljeVBvdGVudGlhbE1pc0NvbmZpZ3VyYXRpb25DaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmlvVFBvbGljeVBvdGVudGlhbE1pc0NvbmZpZ3VyYXRpb25DaGVjayksXG4gICAgICBpb3RSb2xlQWxpYXNBbGxvd3NBY2Nlc3NUb1VudXNlZFNlcnZpY2VzQ2hlY2s6XG4gICAgICAgIHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5pb3RSb2xlQWxpYXNBbGxvd3NBY2Nlc3NUb1VudXNlZFNlcnZpY2VzQ2hlY2spLFxuICAgICAgaW90Um9sZUFsaWFzT3Zlcmx5UGVybWlzc2l2ZUNoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uaW90Um9sZUFsaWFzT3Zlcmx5UGVybWlzc2l2ZUNoZWNrKSxcbiAgICAgIGxvZ2dpbmdEaXNhYmxlZENoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8ubG9nZ2luZ0Rpc2FibGVkQ2hlY2spLFxuICAgICAgcmV2b2tlZENhQ2VydGlmaWNhdGVTdGlsbEFjdGl2ZUNoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8ucmV2b2tlZENhQ2VydGlmaWNhdGVTdGlsbEFjdGl2ZUNoZWNrKSxcbiAgICAgIHJldm9rZWREZXZpY2VDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2s6XG4gICAgICAgIHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5yZXZva2VkRGV2aWNlQ2VydGlmaWNhdGVTdGlsbEFjdGl2ZUNoZWNrKSxcbiAgICAgIHVuYXV0aGVudGljYXRlZENvZ25pdG9Sb2xlT3Zlcmx5UGVybWlzc2l2ZUNoZWNrOlxuICAgICAgICB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8udW5hdXRoZW50aWNhdGVkQ29nbml0b1JvbGVPdmVybHlQZXJtaXNzaXZlQ2hlY2spLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSBhdWRpdCBjaGVjayBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwcml2YXRlIHJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrPzogYm9vbGVhbik6IGlvdC5DZm5BY2NvdW50QXVkaXRDb25maWd1cmF0aW9uLkF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBjaGVjayA9PT0gZmFsc2UgPyB1bmRlZmluZWQgOiB7IGVuYWJsZWQ6IHRydWUgfTtcbiAgfVxufVxuXG4iXX0=
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF1ZGl0LWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXdFO0FBRXhFLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFFM0MsOEVBQThFO0FBQzlFLDBFQUEwRTtBQTRMMUU7O0dBRUc7SUFFVSx5QkFBeUI7NEJBRHJDLG9DQUFrQjs7OztzQkFDNEIsZUFBUTt5Q0FBaEIsU0FBUSxXQUFROzs7O1lBQXZELDZLQXNJQzs7Ozs7UUFySUMsc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyxrREFBa0QsQ0FBQztRQUUxRzs7Ozs7O1dBTUc7UUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFNBQWlCO1lBQ3pFLE1BQU0sTUFBTyxTQUFRLGVBQVE7Z0JBQ1gsU0FBUyxHQUFHLFNBQVMsQ0FBQzthQUN2QztZQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzlCO1FBRUQ7OztXQUdHO1FBQ2EsU0FBUyxDQUFTO1FBRWxDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0M7WUFDOUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7Ozs7O21EQXpCUix5QkFBeUI7Ozs7WUEwQmxDLG1DQUFtQztZQUNuQyxJQUFBLHdDQUFvQixFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVsQyxNQUFNLHVCQUF1QixHQUFHLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxpQ0FBaUMsQ0FBQztZQUU3RixJQUFJLHVCQUF1QixFQUFFLENBQUM7Z0JBQzVCLElBQUksS0FBSyxFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixLQUFLLEtBQUssRUFBRSxDQUFDO29CQUNuRSxNQUFNLElB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QUM7U0FDSDtRQUVEOztXQUVHO1FBQ0ssNkJBQTZCLENBQUMsS0FBZTtZQUNuRCxPQUFPLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDeEQ7O1lBcklVLHVEQUF5Qjs7Ozs7QUFBekIsOERBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzb3VyY2UsIFN0YWNrLCBJUmVzb3VyY2UsIER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGlvdCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaW90JztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIHNucyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIEFXUyBJb1QgQXVkaXQgQ29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IElEXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSB0eXBlcyBvZiBhdWRpdCBjaGVja3NcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9pb3QtZGV2aWNlLWRlZmVuZGVyL2xhdGVzdC9kZXZndWlkZS9kZXZpY2UtZGVmZW5kZXItYXVkaXQtY2hlY2tzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja0NvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogQ2hlY2tzIHRoZSBwZXJtaXNzaXZlbmVzcyBvZiBhbiBhdXRoZW50aWNhdGVkIEFtYXpvbiBDb2duaXRvIGlkZW50aXR5IHBvb2wgcm9sZS5cbiAgICpcbiAgICogRm9yIHRoaXMgY2hlY2ssIEFXUyBJb1QgRGV2aWNlIERlZmVuZGVyIGF1ZGl0cyBhbGwgQW1hem9uIENvZ25pdG8gaWRlbnRpdHkgcG9vbHMgdGhhdCBoYXZlIGJlZW4gdXNlZCB0byBjb25uZWN0IHRvIHRoZSBBV1MgSW9UIG1lc3NhZ2UgYnJva2VyXG4gICAqIGR1cmluZyB0aGUgMzEgZGF5cyBiZWZvcmUgdGhlIGF1ZGl0IGlzIHBlcmZvcm1lZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aGVudGljYXRlZENvZ25pdG9Sb2xlT3Zlcmx5UGVybWlzc2l2ZUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgQ0EgY2VydGlmaWNhdGUgaXMgZXhwaXJpbmcuXG4gICAqXG4gICAqIFRoaXMgY2hlY2sgYXBwbGllcyB0byBDQSBjZXJ0aWZpY2F0ZXMgZXhwaXJpbmcgd2l0aGluIDMwIGRheXMgb3IgdGhhdCBoYXZlIGV4cGlyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNhQ2VydGlmaWNhdGVFeHBpcmluZ0NoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBxdWFsaXR5IG9mIHRoZSBDQSBjZXJ0aWZpY2F0ZSBrZXkuXG4gICAqXG4gICAqIFRoZSBxdWFsaXR5IGNoZWNrcyBpZiB0aGUga2V5IGlzIGluIGEgdmFsaWQgZm9ybWF0LCBub3QgZXhwaXJlZCwgYW5kIGlmIHRoZSBrZXkgbWVldHMgYSBtaW5pbXVtIHJlcXVpcmVkIHNpemUuXG4gICAqXG4gICAqIFRoaXMgY2hlY2sgYXBwbGllcyB0byBDQSBjZXJ0aWZpY2F0ZXMgdGhhdCBhcmUgQUNUSVZFIG9yIFBFTkRJTkdfVFJBTlNGRVIuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNhQ2VydGlmaWNhdGVLZXlRdWFsaXR5Q2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgbXVsdGlwbGUgZGV2aWNlcyBjb25uZWN0IHVzaW5nIHRoZSBzYW1lIGNsaWVudCBJRC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29uZmxpY3RpbmdDbGllbnRJZHNDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGVuIGEgZGV2aWNlIGNlcnRpZmljYXRlIGhhcyBiZWVuIGFjdGl2ZSBmb3IgYSBudW1iZXIgb2YgZGF5cyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG51bWJlciB5b3Ugc3BlY2lmeS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGV2aWNlQ2VydGlmaWNhdGVBZ2VDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBkdXJhdGlvbiB1c2VkIHRvIGNoZWNrIGlmIGEgZGV2aWNlIGNlcnRpZmljYXRlIGhhcyBiZWVuIGFjdGl2ZVxuICAgKiBmb3IgYSBudW1iZXIgb2YgZGF5cyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG51bWJlciB5b3Ugc3BlY2lmeS5cbiAgICpcbiAgICogVmFsaWQgdmFsdWVzIHJhbmdlIGZyb20gMzAgZGF5cyAobWluaW11bSkgdG8gMzY1MCBkYXlzICgxMCB5ZWFycywgbWF4aW11bSkuXG4gICAqXG4gICAqIFlvdSBjYW5ub3Qgc3BlY2lmeSBhIHZhbHVlIGZvciB0aGlzIGNoZWNrIGlmIGBkZXZpY2VDZXJ0aWZpY2F0ZUFnZUNoZWNrYCBpcyBzZXQgdG8gYGZhbHNlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAzNjUgZGF5c1xuICAgKi9cbiAgcmVhZG9ubHkgZGV2aWNlQ2VydGlmaWNhdGVBZ2VDaGVja0R1cmF0aW9uPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGRldmljZSBjZXJ0aWZpY2F0ZSBpcyBleHBpcmluZy5cbiAgICpcbiAgICogVGhpcyBjaGVjayBhcHBsaWVzIHRvIGRldmljZSBjZXJ0aWZpY2F0ZXMgZXhwaXJpbmcgd2l0aGluIDMwIGRheXMgb3IgdGhhdCBoYXZlIGV4cGlyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRldmljZUNlcnRpZmljYXRlRXhwaXJpbmdDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyB0aGUgcXVhbGl0eSBvZiB0aGUgZGV2aWNlIGNlcnRpZmljYXRlIGtleS5cbiAgICpcbiAgICogVGhlIHF1YWxpdHkgY2hlY2tzIGlmIHRoZSBrZXkgaXMgaW4gYSB2YWxpZCBmb3JtYXQsIG5vdCBleHBpcmVkLCBzaWduZWQgYnkgYSByZWdpc3RlcmVkIGNlcnRpZmljYXRlIGF1dGhvcml0eSxcbiAgICogYW5kIGlmIHRoZSBrZXkgbWVldHMgYSBtaW5pbXVtIHJlcXVpcmVkIHNpemUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRldmljZUNlcnRpZmljYXRlS2V5UXVhbGl0eUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIG11bHRpcGxlIGNvbmN1cnJlbnQgY29ubmVjdGlvbnMgdXNlIHRoZSBzYW1lIFguNTA5IGNlcnRpZmljYXRlIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIEFXUyBJb1QuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRldmljZUNlcnRpZmljYXRlU2hhcmVkQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgZGV2aWNlIGNlcnRpZmljYXRlcyBhcmUgc3RpbGwgYWN0aXZlIGRlc3BpdGUgYmVpbmcgcmV2b2tlZCBieSBhbiBpbnRlcm1lZGlhdGUgQ0EuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGludGVybWVkaWF0ZUNhUmV2b2tlZEZvckFjdGl2ZURldmljZUNlcnRpZmljYXRlc0NoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBwZXJtaXNzaXZlbmVzcyBvZiBhIHBvbGljeSBhdHRhY2hlZCB0byBhbiBhdXRoZW50aWNhdGVkIEFtYXpvbiBDb2duaXRvIGlkZW50aXR5IHBvb2wgcm9sZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW90UG9saWN5T3Zlcmx5UGVybWlzc2l2ZUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGFuIEFXUyBJb1QgcG9saWN5IGlzIHBvdGVudGlhbGx5IG1pc2NvbmZpZ3VyZWQuXG4gICAqXG4gICAqIE1pc2NvbmZpZ3VyZWQgcG9saWNpZXMsIGluY2x1ZGluZyBvdmVybHkgcGVybWlzc2l2ZSBwb2xpY2llcywgY2FuIGNhdXNlIHNlY3VyaXR5IGluY2lkZW50cyBsaWtlIGFsbG93aW5nIGRldmljZXMgYWNjZXNzIHRvIHVuaW50ZW5kZWQgcmVzb3VyY2VzLlxuICAgKlxuICAgKiBUaGlzIGNoZWNrIGlzIGEgd2FybmluZyBmb3IgeW91IHRvIG1ha2Ugc3VyZSB0aGF0IG9ubHkgaW50ZW5kZWQgYWN0aW9ucyBhcmUgYWxsb3dlZCBiZWZvcmUgdXBkYXRpbmcgdGhlIHBvbGljeS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW9UUG9saWN5UG90ZW50aWFsTWlzQ29uZmlndXJhdGlvbkNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgcm9sZSBhbGlhcyBoYXMgYWNjZXNzIHRvIHNlcnZpY2VzIHRoYXQgaGF2ZW4ndCBiZWVuIHVzZWQgZm9yIHRoZSBBV1MgSW9UIGRldmljZSBpbiB0aGUgbGFzdCB5ZWFyLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpb3RSb2xlQWxpYXNBbGxvd3NBY2Nlc3NUb1VudXNlZFNlcnZpY2VzQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHRlbXBvcmFyeSBjcmVkZW50aWFscyBwcm92aWRlZCBieSBBV1MgSW9UIHJvbGUgYWxpYXNlcyBhcmUgb3Zlcmx5IHBlcm1pc3NpdmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGlvdFJvbGVBbGlhc092ZXJseVBlcm1pc3NpdmVDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBBV1MgSW9UIGxvZ3MgYXJlIGRpc2FibGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nRGlzYWJsZWRDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHJldm9rZWQgQ0EgY2VydGlmaWNhdGUgaXMgc3RpbGwgYWN0aXZlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByZXZva2VkQ2FDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSByZXZva2VkIGRldmljZSBjZXJ0aWZpY2F0ZSBpcyBzdGlsbCBhY3RpdmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJldm9rZWREZXZpY2VDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgcG9saWN5IGF0dGFjaGVkIHRvIGFuIHVuYXV0aGVudGljYXRlZCBBbWF6b24gQ29nbml0byBpZGVudGl0eSBwb29sIHJvbGUgaXMgdG9vIHBlcm1pc3NpdmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHVuYXV0aGVudGljYXRlZENvZ25pdG9Sb2xlT3Zlcmx5UGVybWlzc2l2ZUNoZWNrPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBBV1MgSW9UIEF1ZGl0IENvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIHRhcmdldCBTTlMgdG9waWMgdG8gd2hpY2ggYXVkaXQgbm90aWZpY2F0aW9ucyBhcmUgc2VudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBub3RpZmljYXRpb25zIGFyZSBzZW50XG4gICAqL1xuICByZWFkb25seSB0YXJnZXRUb3BpYz86IHNucy5JVG9waWM7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGljaCBhdWRpdCBjaGVja3MgYXJlIGVuYWJsZWQgYW5kIGRpc2FibGVkIGZvciB0aGlzIGFjY291bnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWxsIGNoZWNrcyBhcmUgZW5hYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tDb25maWd1cmF0aW9uPzogQ2hlY2tDb25maWd1cmF0aW9uO1xufVxuXG4vKipcbiAqIERlZmluZXMgQVdTIElvVCBBdWRpdCBDb25maWd1cmF0aW9uXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbiB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWlvdC1hbHBoYS5BY2NvdW50QXVkaXRDb25maWd1cmF0aW9uJztcblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIEFXUyBJb1QgQXVkaXQgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIGFjY291bnRJZCBUaGUgYWNjb3VudCBJRFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQWNjb3VudElkKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGFjY291bnRJZDogc3RyaW5nKTogSUFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24ge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24ge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGFjY291bnRJZCA9IGFjY291bnRJZDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudCBJRFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjb3VudElkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBBY2NvdW50QXVkaXRDb25maWd1cmF0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgY29uc3QgZGV2aWNlQWdlQ2hlY2tUaHJlc2hvbGQgPSBwcm9wcz8uY2hlY2tDb25maWd1cmF0aW9uPy5kZXZpY2VDZXJ0aWZpY2F0ZUFnZUNoZWNrRHVyYXRpb247XG5cbiAgICBpZiAoZGV2aWNlQWdlQ2hlY2tUaHJlc2hvbGQpIHtcbiAgICAgIGlmIChwcm9wcz8uY2hlY2tDb25maWd1cmF0aW9uPy5kZXZpY2VDZXJ0aWZpY2F0ZUFnZUNoZWNrID09PSBmYWxzZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3Qgc3BlY2lmeSBhIHZhbHVlIGZvciBgZGV2aWNlQ2VydGlmaWNhdGVBZ2VDaGVja0R1cmF0aW9uYCBpZiBgZGV2aWNlQ2VydGlmaWNhdGVBZ2VDaGVja2AgaXMgc2V0IHRvIGBmYWxzZWAuJyk7XG4gICAgICB9XG4gICAgICBpZiAoIWRldmljZUFnZUNoZWNrVGhyZXNob2xkLmlzVW5yZXNvbHZlZCgpICYmIGRldmljZUFnZUNoZWNrVGhyZXNob2xkLnRvRGF5cygpIDwgMzAgfHwgZGV2aWNlQWdlQ2hlY2tUaHJlc2hvbGQudG9EYXlzKCkgPiAzNjUwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGRldmljZSBjZXJ0aWZpY2F0ZSBhZ2UgY2hlY2sgdGhyZXNob2xkIG11c3QgYmUgYmV0d2VlbiAzMCBhbmQgMzY1MCBkYXlzLiBnb3Q6ICR7ZGV2aWNlQWdlQ2hlY2tUaHJlc2hvbGQudG9EYXlzKCl9IGRheXMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5hY2NvdW50SWQgPSBTdGFjay5vZih0aGlzKS5hY2NvdW50O1xuXG4gICAgY29uc3QgYXVkaXRSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdBdWRpdFJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnaW90LmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NJb1REZXZpY2VEZWZlbmRlckF1ZGl0JyksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgbmV3IGlvdC5DZm5BY2NvdW50QXVkaXRDb25maWd1cmF0aW9uKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGFjY291bnRJZDogdGhpcy5hY2NvdW50SWQsXG4gICAgICBhdWRpdENoZWNrQ29uZmlndXJhdGlvbnM6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb25zKHByb3BzPy5jaGVja0NvbmZpZ3VyYXRpb24pLFxuICAgICAgYXVkaXROb3RpZmljYXRpb25UYXJnZXRDb25maWd1cmF0aW9uczogdGhpcy5yZW5kZXJBdWRpdE5vdGlmaWNhdGlvblRhcmdldENvbmZpZ3VyYXRpb25zKHByb3BzPy50YXJnZXRUb3BpYyksXG4gICAgICByb2xlQXJuOiBhdWRpdFJvbGUucm9sZUFybixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGF1ZGl0IG5vdGlmaWNhdGlvbiB0YXJnZXQgY29uZmlndXJhdGlvbnNcbiAgICovXG4gIHByaXZhdGUgcmVuZGVyQXVkaXROb3RpZmljYXRpb25UYXJnZXRDb25maWd1cmF0aW9ucyhcbiAgICB0YXJnZXRUb3BpYz86IHNucy5JVG9waWMsXG4gICk6IGlvdC5DZm5BY2NvdW50QXVkaXRDb25maWd1cmF0aW9uLkF1ZGl0Tm90aWZpY2F0aW9uVGFyZ2V0Q29uZmlndXJhdGlvbnNQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0YXJnZXRUb3BpYykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBub3RpZmljYXRpb25Sb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdOb3RpZmljYXRpb25Sb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2lvdC5hbWF6b25hd3MuY29tJyksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBOb3RpZmljYXRpb25Qb2xpY3k6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgYWN0aW9uczogWydzbnM6UHVibGlzaCddLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFt0YXJnZXRUb3BpYy50b3BpY0Fybl0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc25zOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIHRhcmdldEFybjogdGFyZ2V0VG9waWMudG9waWNBcm4sXG4gICAgICAgIHJvbGVBcm46IG5vdGlmaWNhdGlvblJvbGUucm9sZUFybixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGF1ZGl0IGNoZWNrIGNvbmZpZ3VyYXRpb25zXG4gICAqL1xuICBwcml2YXRlIHJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9ucyhjaGVja0NvbmZpZ3VyYXRpb24/OiBDaGVja0NvbmZpZ3VyYXRpb24pOiBpb3QuQ2ZuQWNjb3VudEF1ZGl0Q29uZmlndXJhdGlvbi5BdWRpdENoZWNrQ29uZmlndXJhdGlvbnNQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF1dGhlbnRpY2F0ZWRDb2duaXRvUm9sZU92ZXJseVBlcm1pc3NpdmVDaGVjazpcbiAgICAgICAgdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmF1dGhlbnRpY2F0ZWRDb2duaXRvUm9sZU92ZXJseVBlcm1pc3NpdmVDaGVjayksXG4gICAgICBjYUNlcnRpZmljYXRlRXhwaXJpbmdDaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmNhQ2VydGlmaWNhdGVFeHBpcmluZ0NoZWNrKSxcbiAgICAgIGNhQ2VydGlmaWNhdGVLZXlRdWFsaXR5Q2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5jYUNlcnRpZmljYXRlS2V5UXVhbGl0eUNoZWNrKSxcbiAgICAgIGNvbmZsaWN0aW5nQ2xpZW50SWRzQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5jb25mbGljdGluZ0NsaWVudElkc0NoZWNrKSxcbiAgICAgIGRldmljZUNlcnRpZmljYXRlQWdlQ2hlY2s6XG4gICAgICAgIGNoZWNrQ29uZmlndXJhdGlvbj8uZGV2aWNlQ2VydGlmaWNhdGVBZ2VDaGVjayAhPT0gZmFsc2UgP1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgIGNlcnRBZ2VUaHJlc2hvbGRJbkRheXM6IFN0cmluZyhjaGVja0NvbmZpZ3VyYXRpb24/LmRldmljZUNlcnRpZmljYXRlQWdlQ2hlY2tEdXJhdGlvbj8udG9EYXlzKCkgPz8gMzY1KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSA6XG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgZGV2aWNlQ2VydGlmaWNhdGVFeHBpcmluZ0NoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uZGV2aWNlQ2VydGlmaWNhdGVFeHBpcmluZ0NoZWNrKSxcbiAgICAgIGRldmljZUNlcnRpZmljYXRlS2V5UXVhbGl0eUNoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uZGV2aWNlQ2VydGlmaWNhdGVLZXlRdWFsaXR5Q2hlY2spLFxuICAgICAgZGV2aWNlQ2VydGlmaWNhdGVTaGFyZWRDaGVjazogdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmRldmljZUNlcnRpZmljYXRlU2hhcmVkQ2hlY2spLFxuICAgICAgaW50ZXJtZWRpYXRlQ2FSZXZva2VkRm9yQWN0aXZlRGV2aWNlQ2VydGlmaWNhdGVzQ2hlY2s6XG4gICAgICAgIHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5pbnRlcm1lZGlhdGVDYVJldm9rZWRGb3JBY3RpdmVEZXZpY2VDZXJ0aWZpY2F0ZXNDaGVjayksXG4gICAgICBpb3RQb2xpY3lPdmVybHlQZXJtaXNzaXZlQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5pb3RQb2xpY3lPdmVybHlQZXJtaXNzaXZlQ2hlY2spLFxuICAgICAgaW9UUG9saWN5UG90ZW50aWFsTWlzQ29uZmlndXJhdGlvbkNoZWNrOiB0aGlzLnJlbmRlckF1ZGl0Q2hlY2tDb25maWd1cmF0aW9uKGNoZWNrQ29uZmlndXJhdGlvbj8uaW9UUG9saWN5UG90ZW50aWFsTWlzQ29uZmlndXJhdGlvbkNoZWNrKSxcbiAgICAgIGlvdFJvbGVBbGlhc0FsbG93c0FjY2Vzc1RvVW51c2VkU2VydmljZXNDaGVjazpcbiAgICAgICAgdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LmlvdFJvbGVBbGlhc0FsbG93c0FjY2Vzc1RvVW51c2VkU2VydmljZXNDaGVjayksXG4gICAgICBpb3RSb2xlQWxpYXNPdmVybHlQZXJtaXNzaXZlQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5pb3RSb2xlQWxpYXNPdmVybHlQZXJtaXNzaXZlQ2hlY2spLFxuICAgICAgbG9nZ2luZ0Rpc2FibGVkQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5sb2dnaW5nRGlzYWJsZWRDaGVjayksXG4gICAgICByZXZva2VkQ2FDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2s6IHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy5yZXZva2VkQ2FDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2spLFxuICAgICAgcmV2b2tlZERldmljZUNlcnRpZmljYXRlU3RpbGxBY3RpdmVDaGVjazpcbiAgICAgICAgdGhpcy5yZW5kZXJBdWRpdENoZWNrQ29uZmlndXJhdGlvbihjaGVja0NvbmZpZ3VyYXRpb24/LnJldm9rZWREZXZpY2VDZXJ0aWZpY2F0ZVN0aWxsQWN0aXZlQ2hlY2spLFxuICAgICAgdW5hdXRoZW50aWNhdGVkQ29nbml0b1JvbGVPdmVybHlQZXJtaXNzaXZlQ2hlY2s6XG4gICAgICAgIHRoaXMucmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2tDb25maWd1cmF0aW9uPy51bmF1dGhlbnRpY2F0ZWRDb2duaXRvUm9sZU92ZXJseVBlcm1pc3NpdmVDaGVjayksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGF1ZGl0IGNoZWNrIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHByaXZhdGUgcmVuZGVyQXVkaXRDaGVja0NvbmZpZ3VyYXRpb24oY2hlY2s/OiBib29sZWFuKTogaW90LkNmbkFjY291bnRBdWRpdENvbmZpZ3VyYXRpb24uQXVkaXRDaGVja0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGNoZWNrID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHsgZW5hYmxlZDogdHJ1ZSB9O1xuICB9XG59XG5cbiJdfQ==
package/lib/iot-sql.js CHANGED
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.IotSql = void 0;
5
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
@@ -7,6 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7
6
  * Defines AWS IoT SQL.
8
7
  */
9
8
  class IotSql {
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-iot-alpha.IotSql", version: "2.221.0-alpha.0" };
10
10
  /**
11
11
  * Uses the original SQL version built on 2015-10-08.
12
12
  *
@@ -37,9 +37,9 @@ class IotSql {
37
37
  }
38
38
  }
39
39
  exports.IotSql = IotSql;
40
- _a = JSII_RTTI_SYMBOL_1;
41
- IotSql[_a] = { fqn: "@aws-cdk/aws-iot-alpha.IotSql", version: "2.219.0-alpha.0" };
42
40
  class IotSqlImpl extends IotSql {
41
+ version;
42
+ sql;
43
43
  constructor(version, sql) {
44
44
  super();
45
45
  this.version = version;
@@ -55,4 +55,4 @@ class IotSqlImpl extends IotSql {
55
55
  };
56
56
  }
57
57
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW90LXNxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlvdC1zcWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFpQkE7O0dBRUc7QUFDSCxNQUFzQixNQUFNO0lBQzFCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUFDLEdBQVc7UUFDL0MsT0FBTyxJQUFJLFVBQVUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDMUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxHQUFXO1FBQy9DLE9BQU8sSUFBSSxVQUFVLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQzFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLEdBQVc7UUFDckQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDcEM7O0FBOUJILHdCQW9DQzs7O0FBRUQsTUFBTSxVQUFXLFNBQVEsTUFBTTtJQUM3QixZQUE2QixPQUFlLEVBQW1CLEdBQVc7UUFDeEUsS0FBSyxFQUFFLENBQUM7UUFEbUIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFtQixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBR3hFLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BELENBQUM7S0FDRjtJQUVELElBQUksQ0FBQyxNQUFpQjtRQUNwQixPQUFPO1lBQ0wsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDOUIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2QsQ0FBQztLQUNIO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBUaGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBgYmluZCgpYCBtZXRob2QgaW4gYElvdFNxbGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW90U3FsQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBTUUwgcnVsZXMgZW5naW5lIHRvIHVzZSB3aGVuIGV2YWx1YXRpbmcgdGhlIHJ1bGUuXG4gICAqL1xuICByZWFkb25seSBhd3NJb3RTcWxWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBTUUwgc3RhdGVtZW50IHVzZWQgdG8gcXVlcnkgdGhlIHRvcGljLlxuICAgKi9cbiAgcmVhZG9ubHkgc3FsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lcyBBV1MgSW9UIFNRTC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIElvdFNxbCB7XG4gIC8qKlxuICAgKiBVc2VzIHRoZSBvcmlnaW5hbCBTUUwgdmVyc2lvbiBidWlsdCBvbiAyMDE1LTEwLTA4LlxuICAgKlxuICAgKiBAcGFyYW0gc3FsIFRoZSBhY3R1YWwgU1FMLWxpa2Ugc3ludGF4IHF1ZXJ5XG4gICAqIEByZXR1cm5zIEluc3RhbmNlIG9mIElvdFNxbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RyaW5nQXNWZXIyMDE1MTAwOChzcWw6IHN0cmluZyk6IElvdFNxbCB7XG4gICAgcmV0dXJuIG5ldyBJb3RTcWxJbXBsKCcyMDE1LTEwLTA4Jywgc3FsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VzIHRoZSBTUUwgdmVyc2lvbiBidWlsdCBvbiAyMDE2LTAzLTIzLlxuICAgKlxuICAgKiBAcGFyYW0gc3FsIFRoZSBhY3R1YWwgU1FMLWxpa2Ugc3ludGF4IHF1ZXJ5XG4gICAqIEByZXR1cm5zIEluc3RhbmNlIG9mIElvdFNxbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RyaW5nQXNWZXIyMDE2MDMyMyhzcWw6IHN0cmluZyk6IElvdFNxbCB7XG4gICAgcmV0dXJuIG5ldyBJb3RTcWxJbXBsKCcyMDE2LTAzLTIzJywgc3FsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VzIHRoZSBtb3N0IHJlY2VudCBiZXRhIFNRTCB2ZXJzaW9uLiBJZiB5b3UgdXNlIHRoaXMgdmVyc2lvbiwgaXQgbWlnaHRcbiAgICogaW50cm9kdWNlIGJyZWFraW5nIGNoYW5nZXMgdG8geW91ciBydWxlcy5cbiAgICpcbiAgICogQHBhcmFtIHNxbCBUaGUgYWN0dWFsIFNRTC1saWtlIHN5bnRheCBxdWVyeVxuICAgKiBAcmV0dXJucyBJbnN0YW5jZSBvZiBJb3RTcWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVN0cmluZ0FzVmVyTmV3ZXN0VW5zdGFibGUoc3FsOiBzdHJpbmcpOiBJb3RTcWwge1xuICAgIHJldHVybiBuZXcgSW90U3FsSW1wbCgnYmV0YScsIHNxbCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgSW9UIFNRTCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IElvdFNxbENvbmZpZztcbn1cblxuY2xhc3MgSW90U3FsSW1wbCBleHRlbmRzIElvdFNxbCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IHNxbDogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGlmIChzcWwgPT09ICcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lvVCBTUUwgc3RyaW5nIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgIH1cbiAgfVxuXG4gIGJpbmQoX3Njb3BlOiBDb25zdHJ1Y3QpOiBJb3RTcWxDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBhd3NJb3RTcWxWZXJzaW9uOiB0aGlzLnZlcnNpb24sXG4gICAgICBzcWw6IHRoaXMuc3FsLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW90LXNxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlvdC1zcWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQWlCQTs7R0FFRztBQUNILE1BQXNCLE1BQU07O0lBQzFCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUFDLEdBQVc7UUFDL0MsT0FBTyxJQUFJLFVBQVUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDMUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxHQUFXO1FBQy9DLE9BQU8sSUFBSSxVQUFVLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQzFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLEdBQVc7UUFDckQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDcEM7O0FBOUJILHdCQW9DQztBQUVELE1BQU0sVUFBVyxTQUFRLE1BQU07SUFDQTtJQUFrQztJQUEvRCxZQUE2QixPQUFlLEVBQW1CLEdBQVc7UUFDeEUsS0FBSyxFQUFFLENBQUM7UUFEbUIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFtQixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBR3hFLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BELENBQUM7S0FDRjtJQUVELElBQUksQ0FBQyxNQUFpQjtRQUNwQixPQUFPO1lBQ0wsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDOUIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2QsQ0FBQztLQUNIO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBUaGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBgYmluZCgpYCBtZXRob2QgaW4gYElvdFNxbGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW90U3FsQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBTUUwgcnVsZXMgZW5naW5lIHRvIHVzZSB3aGVuIGV2YWx1YXRpbmcgdGhlIHJ1bGUuXG4gICAqL1xuICByZWFkb25seSBhd3NJb3RTcWxWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBTUUwgc3RhdGVtZW50IHVzZWQgdG8gcXVlcnkgdGhlIHRvcGljLlxuICAgKi9cbiAgcmVhZG9ubHkgc3FsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lcyBBV1MgSW9UIFNRTC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIElvdFNxbCB7XG4gIC8qKlxuICAgKiBVc2VzIHRoZSBvcmlnaW5hbCBTUUwgdmVyc2lvbiBidWlsdCBvbiAyMDE1LTEwLTA4LlxuICAgKlxuICAgKiBAcGFyYW0gc3FsIFRoZSBhY3R1YWwgU1FMLWxpa2Ugc3ludGF4IHF1ZXJ5XG4gICAqIEByZXR1cm5zIEluc3RhbmNlIG9mIElvdFNxbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RyaW5nQXNWZXIyMDE1MTAwOChzcWw6IHN0cmluZyk6IElvdFNxbCB7XG4gICAgcmV0dXJuIG5ldyBJb3RTcWxJbXBsKCcyMDE1LTEwLTA4Jywgc3FsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VzIHRoZSBTUUwgdmVyc2lvbiBidWlsdCBvbiAyMDE2LTAzLTIzLlxuICAgKlxuICAgKiBAcGFyYW0gc3FsIFRoZSBhY3R1YWwgU1FMLWxpa2Ugc3ludGF4IHF1ZXJ5XG4gICAqIEByZXR1cm5zIEluc3RhbmNlIG9mIElvdFNxbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RyaW5nQXNWZXIyMDE2MDMyMyhzcWw6IHN0cmluZyk6IElvdFNxbCB7XG4gICAgcmV0dXJuIG5ldyBJb3RTcWxJbXBsKCcyMDE2LTAzLTIzJywgc3FsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VzIHRoZSBtb3N0IHJlY2VudCBiZXRhIFNRTCB2ZXJzaW9uLiBJZiB5b3UgdXNlIHRoaXMgdmVyc2lvbiwgaXQgbWlnaHRcbiAgICogaW50cm9kdWNlIGJyZWFraW5nIGNoYW5nZXMgdG8geW91ciBydWxlcy5cbiAgICpcbiAgICogQHBhcmFtIHNxbCBUaGUgYWN0dWFsIFNRTC1saWtlIHN5bnRheCBxdWVyeVxuICAgKiBAcmV0dXJucyBJbnN0YW5jZSBvZiBJb3RTcWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVN0cmluZ0FzVmVyTmV3ZXN0VW5zdGFibGUoc3FsOiBzdHJpbmcpOiBJb3RTcWwge1xuICAgIHJldHVybiBuZXcgSW90U3FsSW1wbCgnYmV0YScsIHNxbCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgSW9UIFNRTCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IElvdFNxbENvbmZpZztcbn1cblxuY2xhc3MgSW90U3FsSW1wbCBleHRlbmRzIElvdFNxbCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IHNxbDogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGlmIChzcWwgPT09ICcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lvVCBTUUwgc3RyaW5nIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgIH1cbiAgfVxuXG4gIGJpbmQoX3Njb3BlOiBDb25zdHJ1Y3QpOiBJb3RTcWxDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBhd3NJb3RTcWxWZXJzaW9uOiB0aGlzLnZlcnNpb24sXG4gICAgICBzcWw6IHRoaXMuc3FsLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==