awscdk-resources-mongodbatlas
Version:
MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources
139 lines • 21.3 kB
JavaScript
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CfnStreamConnection = exports.DbRoleToExecuteType = exports.CfnStreamConnectionPropsType = void 0;
exports.toJson_CfnStreamConnectionProps = toJson_CfnStreamConnectionProps;
exports.toJson_DbRoleToExecute = toJson_DbRoleToExecute;
exports.toJson_StreamsKafkaAuthentication = toJson_StreamsKafkaAuthentication;
exports.toJson_StreamsKafkaSecurity = toJson_StreamsKafkaSecurity;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
// Generated by cdk-import
const cdk = require("aws-cdk-lib");
/**
* Converts an object of type 'CfnStreamConnectionProps' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_CfnStreamConnectionProps(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
ProjectId: obj.projectId,
Profile: obj.profile,
ConnectionName: obj.connectionName,
InstanceName: obj.instanceName,
Type: obj.type,
ClusterName: obj.clusterName,
DbRoleToExecute: toJson_DbRoleToExecute(obj.dbRoleToExecute),
Authentication: toJson_StreamsKafkaAuthentication(obj.authentication),
BootstrapServers: obj.bootstrapServers,
Security: toJson_StreamsKafkaSecurity(obj.security),
Config: obj.config,
};
// filter undefined values
return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
* Type of the connection. Can be either Cluster, Kafka, or Sample.
*
* @schema CfnStreamConnectionPropsType
*/
var CfnStreamConnectionPropsType;
(function (CfnStreamConnectionPropsType) {
/** Kafka */
CfnStreamConnectionPropsType["KAFKA"] = "Kafka";
/** Cluster */
CfnStreamConnectionPropsType["CLUSTER"] = "Cluster";
/** Sample */
CfnStreamConnectionPropsType["SAMPLE"] = "Sample";
})(CfnStreamConnectionPropsType || (exports.CfnStreamConnectionPropsType = CfnStreamConnectionPropsType = {}));
/**
* Converts an object of type 'DbRoleToExecute' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_DbRoleToExecute(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Role: obj.role,
Type: obj.type,
};
// filter undefined values
return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
}
/**
* Converts an object of type 'StreamsKafkaAuthentication' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_StreamsKafkaAuthentication(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Mechanism: obj.mechanism,
Username: obj.username,
Password: obj.password,
};
// filter undefined values
return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
}
/**
* Converts an object of type 'StreamsKafkaSecurity' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_StreamsKafkaSecurity(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
BrokerPublicCertificate: obj.brokerPublicCertificate,
Protocol: obj.protocol,
};
// filter undefined values
return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
* Type of the DB role. Can be either BuiltIn or Custom.
*
* @schema DbRoleToExecuteType
*/
var DbRoleToExecuteType;
(function (DbRoleToExecuteType) {
/** BUILT_IN */
DbRoleToExecuteType["BUILT_IN"] = "BUILT_IN";
/** CUSTOM */
DbRoleToExecuteType["CUSTOM"] = "CUSTOM";
})(DbRoleToExecuteType || (exports.DbRoleToExecuteType = DbRoleToExecuteType = {}));
/**
* A CloudFormation `MongoDB::Atlas::StreamConnection`
*
* @cloudformationResource MongoDB::Atlas::StreamConnection
* @stability external
*/
class CfnStreamConnection extends cdk.CfnResource {
/**
* Create a new `MongoDB::Atlas::StreamConnection`.
*
* @param scope - scope in which this resource is defined
* @param id - scoped id of the resource
* @param props - resource properties
*/
constructor(scope, id, props) {
super(scope, id, {
type: CfnStreamConnection.CFN_RESOURCE_TYPE_NAME,
properties: toJson_CfnStreamConnectionProps(props),
});
this.props = props;
}
}
exports.CfnStreamConnection = CfnStreamConnection;
_a = JSII_RTTI_SYMBOL_1;
CfnStreamConnection[_a] = { fqn: "awscdk-resources-mongodbatlas.CfnStreamConnection", version: "3.13.0" };
/**
* The CloudFormation resource type name for this resource class.
*/
CfnStreamConnection.CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::StreamConnection";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDEtcmVzb3VyY2VzL3N0cmVhbS1jb25uZWN0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFzRkEsMEVBd0JDO0FBMENELHdEQWVDO0FBbUNELDhFQWdCQztBQTRCRCxrRUFlQzs7QUFyUUQsMEJBQTBCO0FBQzFCLG1DQUFtQztBQWlGbkM7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IsK0JBQStCLENBQzdDLEdBQXlDO0lBRXpDLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRztRQUNiLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUztRQUN4QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87UUFDcEIsY0FBYyxFQUFFLEdBQUcsQ0FBQyxjQUFjO1FBQ2xDLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWTtRQUM5QixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7UUFDNUIsZUFBZSxFQUFFLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDNUQsY0FBYyxFQUFFLGlDQUFpQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7UUFDckUsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLGdCQUFnQjtRQUN0QyxRQUFRLEVBQUUsMkJBQTJCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNuRCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07S0FDbkIsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFL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QUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQzNELEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUNELHdDQUF3QztBQUV4Qzs7OztHQUlHO0FBQ0gsSUFBWSxtQkFLWDtBQUxELFdBQVksbUJBQW1CO0lBQzdCLGVBQWU7SUFDZiw0Q0FBcUIsQ0FBQTtJQUNyQixhQUFhO0lBQ2Isd0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLG1CQUFtQixtQ0FBbkIsbUJBQW1CLFFBSzlCO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFhLG1CQUFvQixTQUFRLEdBQUcsQ0FBQyxXQUFXO0lBWXREOzs7Ozs7T0FNRztJQUNILFlBQ0UsS0FBMkIsRUFDM0IsRUFBVSxFQUNWLEtBQStCO1FBRS9CLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLG1CQUFtQixDQUFDLHNCQUFzQjtZQUNoRCxVQUFVLEVBQUUsK0JBQStCLENBQUMsS0FBSyxDQUFFO1NBQ3BELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7O0FBOUJILGtEQStCQzs7O0FBOUJDOztHQUVHO0FBQ29CLDBDQUFzQixHQUMzQyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdlbmVyYXRlZCBieSBjZGstaW1wb3J0XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbi8qKlxuICogUmV0dXJucywgYWRkcywgZWRpdHMsIGFuZCByZW1vdmVzIG9uZSBjb25uZWN0aW9uIGZvciBhIHN0cmVhbSBpbnN0YW5jZSBpbiB0aGUgc3BlY2lmaWVkIHByb2plY3QuIFRvIHVzZSB0aGlzIHJlc291cmNlLCB0aGUgcmVxdWVzdGluZyBBUEkgS2V5IG11c3QgaGF2ZSB0aGUgUHJvamVjdCBPd25lciByb2xlcy5cbiAqXG4gKiBAc2NoZW1hIENmblN0cmVhbUNvbm5lY3Rpb25Qcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENmblN0cmVhbUNvbm5lY3Rpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBVbmlxdWUgMjQtaGV4YWRlY2ltYWwgZGlnaXQgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyB5b3VyIHByb2plY3QuIFVzZSB0aGUgWy9ncm91cHNdKCN0YWcvUHJvamVjdHMvb3BlcmF0aW9uL2xpc3RQcm9qZWN0cykgZW5kcG9pbnQgdG8gcmV0cmlldmUgYWxsIHByb2plY3RzIHRvIHdoaWNoIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgaGFzIGFjY2Vzcy5cbiAgICpcbiAgICogKipOT1RFKio6IEdyb3VwcyBhbmQgcHJvamVjdHMgYXJlIHN5bm9ueW1vdXMgdGVybXMuIFlvdXIgZ3JvdXAgaWQgaXMgdGhlIHNhbWUgYXMgeW91ciBwcm9qZWN0IGlkLiBGb3IgZXhpc3RpbmcgZ3JvdXBzLCB5b3VyIGdyb3VwL3Byb2plY3QgaWQgcmVtYWlucyB0aGUgc2FtZS4gVGhlIHJlc291cmNlIGFuZCBjb3JyZXNwb25kaW5nIGVuZHBvaW50cyB1c2UgdGhlIHRlcm0gZ3JvdXBzLlxuICAgKlxuICAgKiBAc2NoZW1hIENmblN0cmVhbUNvbm5lY3Rpb25Qcm9wcyNQcm9qZWN0SWRcbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm9maWxlIHVzZWQgdG8gcHJvdmlkZSBjcmVkZW50aWFscyBpbmZvcm1hdGlvbiwgKGEgc2VjcmV0IHdpdGggdGhlIGNmbi9hdGxhcy9wcm9maWxlL3tQcm9maWxlfSwgaXMgcmVxdWlyZWQpLCBpZiBub3QgcHJvdmlkZWQgZGVmYXVsdCBpcyB1c2VkXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuU3RyZWFtQ29ubmVjdGlvblByb3BzI1Byb2ZpbGVcbiAgICovXG4gIHJlYWRvbmx5IHByb2ZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIGxhYmVsIHRoYXQgaWRlbnRpZmllcyB0aGUgc3RyZWFtIGNvbm5lY3Rpb24uIEluIHRoZSBjYXNlIG9mIHRoZSBTYW1wbGUgdHlwZSwgdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgc2FtcGxlIHNvdXJjZS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5TdHJlYW1Db25uZWN0aW9uUHJvcHMjQ29ubmVjdGlvbk5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIGxhYmVsIHRoYXQgaWRlbnRpZmllcyB0aGUgc3RyZWFtIGluc3RhbmNlLlxuICAgKlxuICAgKiBAc2NoZW1hIENmblN0cmVhbUNvbm5lY3Rpb25Qcm9wcyNJbnN0YW5jZU5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUeXBlIG9mIHRoZSBjb25uZWN0aW9uLiBDYW4gYmUgZWl0aGVyIENsdXN0ZXIsIEthZmthLCBvciBTYW1wbGUuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuU3RyZWFtQ29ubmVjdGlvblByb3BzI1R5cGVcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IENmblN0cmVhbUNvbm5lY3Rpb25Qcm9wc1R5cGU7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGNsdXN0ZXIgY29uZmlndXJlZCBmb3IgdGhpcyBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAc2NoZW1hIENmblN0cmVhbUNvbm5lY3Rpb25Qcm9wcyNDbHVzdGVyTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3Rlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuU3RyZWFtQ29ubmVjdGlvblByb3BzI0RiUm9sZVRvRXhlY3V0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGJSb2xlVG9FeGVjdXRlPzogRGJSb2xlVG9FeGVjdXRlO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIENmblN0cmVhbUNvbm5lY3Rpb25Qcm9wcyNBdXRoZW50aWNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aGVudGljYXRpb24/OiBTdHJlYW1zS2Fma2FBdXRoZW50aWNhdGlvbjtcblxuICAvKipcbiAgICogQ29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygc2VydmVyIGFkZHJlc3Nlcy5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5TdHJlYW1Db25uZWN0aW9uUHJvcHMjQm9vdHN0cmFwU2VydmVyc1xuICAgKi9cbiAgcmVhZG9ubHkgYm9vdHN0cmFwU2VydmVycz86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBDZm5TdHJlYW1Db25uZWN0aW9uUHJvcHMjU2VjdXJpdHlcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5PzogU3RyZWFtc0thZmthU2VjdXJpdHk7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuU3RyZWFtQ29ubmVjdGlvblByb3BzI0NvbmZpZ1xuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlnPzogYW55O1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdDZm5TdHJlYW1Db25uZWN0aW9uUHJvcHMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0NmblN0cmVhbUNvbm5lY3Rpb25Qcm9wcyhcbiAgb2JqOiBDZm5TdHJlYW1Db25uZWN0aW9uUHJvcHMgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBQcm9qZWN0SWQ6IG9iai5wcm9qZWN0SWQsXG4gICAgUHJvZmlsZTogb2JqLnByb2ZpbGUsXG4gICAgQ29ubmVjdGlvbk5hbWU6IG9iai5jb25uZWN0aW9uTmFtZSxcbiAgICBJbnN0YW5jZU5hbWU6IG9iai5pbnN0YW5jZU5hbWUsXG4gICAgVHlwZTogb2JqLnR5cGUsXG4gICAgQ2x1c3Rlck5hbWU6IG9iai5jbHVzdGVyTmFtZSxcbiAgICBEYlJvbGVUb0V4ZWN1dGU6IHRvSnNvbl9EYlJvbGVUb0V4ZWN1dGUob2JqLmRiUm9sZVRvRXhlY3V0ZSksXG4gICAgQXV0aGVudGljYXRpb246IHRvSnNvbl9TdHJlYW1zS2Fma2FBdXRoZW50aWNhdGlvbihvYmouYXV0aGVudGljYXRpb24pLFxuICAgIEJvb3RzdHJhcFNlcnZlcnM6IG9iai5ib290c3RyYXBTZXJ2ZXJzLFxuICAgIFNlY3VyaXR5OiB0b0pzb25fU3RyZWFtc0thZmthU2VjdXJpdHkob2JqLnNlY3VyaXR5KSxcbiAgICBDb25maWc6IG9iai5jb25maWcsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZShcbiAgICAociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCA/IHIgOiB7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSxcbiAgICB7fVxuICApO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFR5cGUgb2YgdGhlIGNvbm5lY3Rpb24uIENhbiBiZSBlaXRoZXIgQ2x1c3RlciwgS2Fma2EsIG9yIFNhbXBsZS5cbiAqXG4gKiBAc2NoZW1hIENmblN0cmVhbUNvbm5lY3Rpb25Qcm9wc1R5cGVcbiAqL1xuZXhwb3J0IGVudW0gQ2ZuU3RyZWFtQ29ubmVjdGlvblByb3BzVHlwZSB7XG4gIC8qKiBLYWZrYSAqL1xuICBLQUZLQSA9IFwiS2Fma2FcIixcbiAgLyoqIENsdXN0ZXIgKi9cbiAgQ0xVU1RFUiA9IFwiQ2x1c3RlclwiLFxuICAvKiogU2FtcGxlICovXG4gIFNBTVBMRSA9IFwiU2FtcGxlXCIsXG59XG5cbi8qKlxuICogVGhlIG5hbWUgb2YgYSBCdWlsdCBpbiBvciBDdXN0b20gREIgUm9sZSB0byBjb25uZWN0IHRvIGFuIEF0bGFzIENsdXN0ZXIuXG4gKlxuICogQHNjaGVtYSBEQlJvbGVUb0V4ZWN1dGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYlJvbGVUb0V4ZWN1dGUge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJvbGUgdG8gdXNlLiBDYW4gYmUgYSBidWlsdCBpbiByb2xlIG9yIGEgY3VzdG9tIHJvbGUuXG4gICAqXG4gICAqIEBzY2hlbWEgREJSb2xlVG9FeGVjdXRlI1JvbGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFR5cGUgb2YgdGhlIERCIHJvbGUuIENhbiBiZSBlaXRoZXIgQnVpbHRJbiBvciBDdXN0b20uXG4gICAqXG4gICAqIEBzY2hlbWEgREJSb2xlVG9FeGVjdXRlI1R5cGVcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU/OiBEYlJvbGVUb0V4ZWN1dGVUeXBlO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdEYlJvbGVUb0V4ZWN1dGUnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0RiUm9sZVRvRXhlY3V0ZShcbiAgb2JqOiBEYlJvbGVUb0V4ZWN1dGUgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBSb2xlOiBvYmoucm9sZSxcbiAgICBUeXBlOiBvYmoudHlwZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogVXNlciBjcmVkZW50aWFscyByZXF1aXJlZCB0byBjb25uZWN0IHRvIGEgS2Fma2EgQ2x1c3Rlci4gSW5jbHVkZXMgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUsIGFzIHdlbGwgYXMgdGhlIHBhcmFtZXRlcnMgZm9yIHRoYXQgYXV0aGVudGljYXRpb24gbW9kZS5cbiAqXG4gKiBAc2NoZW1hIFN0cmVhbXNLYWZrYUF1dGhlbnRpY2F0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyZWFtc0thZmthQXV0aGVudGljYXRpb24ge1xuICAvKipcbiAgICogU3R5bGUgb2YgYXV0aGVudGljYXRpb24uIENhbiBiZSBvbmUgb2YgUExBSU4sIFNDUkFNLTI1Niwgb3IgU0NSQU0tNTEyLlxuICAgKlxuICAgKiBAc2NoZW1hIFN0cmVhbXNLYWZrYUF1dGhlbnRpY2F0aW9uI01lY2hhbmlzbVxuICAgKi9cbiAgcmVhZG9ubHkgbWVjaGFuaXNtPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2VybmFtZSBvZiB0aGUgYWNjb3VudCB0byBjb25uZWN0IHRvIHRoZSBLYWZrYSBjbHVzdGVyLlxuICAgKlxuICAgKiBAc2NoZW1hIFN0cmVhbXNLYWZrYUF1dGhlbnRpY2F0aW9uI1VzZXJuYW1lXG4gICAqL1xuICByZWFkb25seSB1c2VybmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogUGFzc3dvcmQgb2YgdGhlIGFjY291bnQgdG8gY29ubmVjdCB0byB0aGUgS2Fma2EgY2x1c3Rlci4gUmV2aWV3IFtBV1Mgc2VjdXJpdHkgYmVzdCBwcmFjdGljZXMgZm9yIENsb3VkRm9ybWF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9zZWN1cml0eS1iZXN0LXByYWN0aWNlcy5odG1sI2NyZWRzKSB0byBtYW5hZ2UgY3JlZGVudGlhbHMuXG4gICAqXG4gICAqIEBzY2hlbWEgU3RyZWFtc0thZmthQXV0aGVudGljYXRpb24jUGFzc3dvcmRcbiAgICovXG4gIHJlYWRvbmx5IHBhc3N3b3JkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdTdHJlYW1zS2Fma2FBdXRoZW50aWNhdGlvbicgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fU3RyZWFtc0thZmthQXV0aGVudGljYXRpb24oXG4gIG9iajogU3RyZWFtc0thZmthQXV0aGVudGljYXRpb24gfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBNZWNoYW5pc206IG9iai5tZWNoYW5pc20sXG4gICAgVXNlcm5hbWU6IG9iai51c2VybmFtZSxcbiAgICBQYXNzd29yZDogb2JqLnBhc3N3b3JkLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgc2VjdXJlIHRyYW5zcG9ydCBjb25uZWN0aW9uIHRvIEthZmthLiBGb3IgU1NMLCB0aGlzIGNhbiBpbmNsdWRlIHRoZSB0cnVzdGVkIGNlcnRpZmljYXRlIHRvIHVzZS5cbiAqXG4gKiBAc2NoZW1hIFN0cmVhbXNLYWZrYVNlY3VyaXR5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyZWFtc0thZmthU2VjdXJpdHkge1xuICAvKipcbiAgICogQSB0cnVzdGVkLCBwdWJsaWMgeDUwOSBjZXJ0aWZpY2F0ZSBmb3IgY29ubmVjdGluZyB0byBLYWZrYSBvdmVyIFNTTC5cbiAgICpcbiAgICogQHNjaGVtYSBTdHJlYW1zS2Fma2FTZWN1cml0eSNCcm9rZXJQdWJsaWNDZXJ0aWZpY2F0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYnJva2VyUHVibGljQ2VydGlmaWNhdGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaWJlcyB0aGUgdHJhbnNwb3J0IHR5cGUuIENhbiBiZSBlaXRoZXIgUExBSU5URVhUIG9yIFNTTC5cbiAgICpcbiAgICogQHNjaGVtYSBTdHJlYW1zS2Fma2FTZWN1cml0eSNQcm90b2NvbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdG9jb2w/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ1N0cmVhbXNLYWZrYVNlY3VyaXR5JyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9TdHJlYW1zS2Fma2FTZWN1cml0eShcbiAgb2JqOiBTdHJlYW1zS2Fma2FTZWN1cml0eSB8IHVuZGVmaW5lZFxuKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIEJyb2tlclB1YmxpY0NlcnRpZmljYXRlOiBvYmouYnJva2VyUHVibGljQ2VydGlmaWNhdGUsXG4gICAgUHJvdG9jb2w6IG9iai5wcm90b2NvbCxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogVHlwZSBvZiB0aGUgREIgcm9sZS4gQ2FuIGJlIGVpdGhlciBCdWlsdEluIG9yIEN1c3RvbS5cbiAqXG4gKiBAc2NoZW1hIERiUm9sZVRvRXhlY3V0ZVR5cGVcbiAqL1xuZXhwb3J0IGVudW0gRGJSb2xlVG9FeGVjdXRlVHlwZSB7XG4gIC8qKiBCVUlMVF9JTiAqL1xuICBCVUlMVF9JTiA9IFwiQlVJTFRfSU5cIixcbiAgLyoqIENVU1RPTSAqL1xuICBDVVNUT00gPSBcIkNVU1RPTVwiLFxufVxuXG4vKipcbiAqIEEgQ2xvdWRGb3JtYXRpb24gYE1vbmdvREI6OkF0bGFzOjpTdHJlYW1Db25uZWN0aW9uYFxuICpcbiAqIEBjbG91ZGZvcm1hdGlvblJlc291cmNlIE1vbmdvREI6OkF0bGFzOjpTdHJlYW1Db25uZWN0aW9uXG4gKiBAc3RhYmlsaXR5IGV4dGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBDZm5TdHJlYW1Db25uZWN0aW9uIGV4dGVuZHMgY2RrLkNmblJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSB0eXBlIG5hbWUgZm9yIHRoaXMgcmVzb3VyY2UgY2xhc3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENGTl9SRVNPVVJDRV9UWVBFX05BTUUgPVxuICAgIFwiTW9uZ29EQjo6QXRsYXM6OlN0cmVhbUNvbm5lY3Rpb25cIjtcblxuICAvKipcbiAgICogUmVzb3VyY2UgcHJvcHMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcHM6IENmblN0cmVhbUNvbm5lY3Rpb25Qcm9wcztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGBNb25nb0RCOjpBdGxhczo6U3RyZWFtQ29ubmVjdGlvbmAuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgKiBAcGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBDZm5TdHJlYW1Db25uZWN0aW9uUHJvcHNcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0eXBlOiBDZm5TdHJlYW1Db25uZWN0aW9uLkNGTl9SRVNPVVJDRV9UWVBFX05BTUUsXG4gICAgICBwcm9wZXJ0aWVzOiB0b0pzb25fQ2ZuU3RyZWFtQ29ubmVjdGlvblByb3BzKHByb3BzKSEsXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cbn1cbiJdfQ==
;