awscdk-resources-mongodbatlas
Version:
MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources
93 lines • 16.9 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CfnGlobalClusterConfig = void 0;
exports.toJson_CfnGlobalClusterConfigProps = toJson_CfnGlobalClusterConfigProps;
exports.toJson_ManagedNamespace = toJson_ManagedNamespace;
exports.toJson_ZoneMapping = toJson_ZoneMapping;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
// Generated by cdk-import
const cdk = require("aws-cdk-lib");
/**
* Converts an object of type 'CfnGlobalClusterConfigProps' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_CfnGlobalClusterConfigProps(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Profile: obj.profile,
ProjectId: obj.projectId,
ClusterName: obj.clusterName,
ManagedNamespaces: obj.managedNamespaces?.map((y) => toJson_ManagedNamespace(y)),
CustomZoneMappings: obj.customZoneMappings?.map((y) => toJson_ZoneMapping(y)),
};
// filter undefined values
return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
}
/**
* Converts an object of type 'ManagedNamespace' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_ManagedNamespace(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Collection: obj.collection,
CustomShardKey: obj.customShardKey,
Db: obj.db,
IsCustomShardKeyHashed: obj.isCustomShardKeyHashed,
IsShardKeyUnique: obj.isShardKeyUnique,
};
// filter undefined values
return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
}
/**
* Converts an object of type 'ZoneMapping' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_ZoneMapping(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Location: obj.location,
Zone: obj.zone,
};
// 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 */
/**
* A CloudFormation `MongoDB::Atlas::GlobalClusterConfig`
*
* @cloudformationResource MongoDB::Atlas::GlobalClusterConfig
* @stability external
*/
class CfnGlobalClusterConfig extends cdk.CfnResource {
/**
* Create a new `MongoDB::Atlas::GlobalClusterConfig`.
*
* @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: CfnGlobalClusterConfig.CFN_RESOURCE_TYPE_NAME,
properties: toJson_CfnGlobalClusterConfigProps(props),
});
this.props = props;
this.attrRemoveAllZoneMapping = this.getAtt("RemoveAllZoneMapping");
}
}
exports.CfnGlobalClusterConfig = CfnGlobalClusterConfig;
_a = JSII_RTTI_SYMBOL_1;
CfnGlobalClusterConfig[_a] = { fqn: "awscdk-resources-mongodbatlas.CfnGlobalClusterConfig", version: "3.13.1" };
/**
* The CloudFormation resource type name for this resource class.
*/
CfnGlobalClusterConfig.CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::GlobalClusterConfig";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDEtcmVzb3VyY2VzL2dsb2JhbC1jbHVzdGVyLWNvbmZpZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBc0RBLGdGQXNCQztBQStDRCwwREFrQkM7QUEwQkQsZ0RBZUM7O0FBdExELDBCQUEwQjtBQUMxQixtQ0FBbUM7QUFpRG5DOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLFNBQWdCLGtDQUFrQyxDQUNoRCxHQUE0QztJQUU1QyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN0QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUc7UUFDYixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87UUFDcEIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTO1FBQ3hCLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVztRQUM1QixpQkFBaUIsRUFBRSxHQUFHLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDbEQsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQzNCO1FBQ0Qsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3BELGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUN0QjtLQUNGLENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQzNELEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQTJDRDs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQix1QkFBdUIsQ0FDckMsR0FBaUM7SUFFakMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHO1FBQ2IsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1FBQzFCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYztRQUNsQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUU7UUFDVixzQkFBc0IsRUFBRSxHQUFHLENBQUMsc0JBQXNCO1FBQ2xELGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxnQkFBZ0I7S0FDdkMsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDM0QsRUFBRSxDQUNILENBQUM7QUFDSixDQUFDO0FBc0JEOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLFNBQWdCLGtCQUFrQixDQUNoQyxHQUE0QjtJQUU1QixJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN0QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUc7UUFDYixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7UUFDdEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO0tBQ2YsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDM0QsRUFBRSxDQUNILENBQUM7QUFDSixDQUFDO0FBQ0Qsd0NBQXdDO0FBRXhDOzs7OztHQUtHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxHQUFHLENBQUMsV0FBVztJQWlCekQ7Ozs7OztPQU1HO0lBQ0gsWUFDRSxLQUEyQixFQUMzQixFQUFVLEVBQ1YsS0FBa0M7UUFFbEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixJQUFJLEVBQUUsc0JBQXNCLENBQUMsc0JBQXNCO1lBQ25ELFVBQVUsRUFBRSxrQ0FBa0MsQ0FBQyxLQUFLLENBQUU7U0FDdkQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN0RSxDQUFDOztBQXJDSCx3REFzQ0M7OztBQXJDQzs7R0FFRztBQUNvQiw2Q0FBc0IsR0FDM0MscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgYnkgY2RrLWltcG9ydFxuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG4vKipcbiAqIFJldHVybnMsIGFkZHMsIGFuZCByZW1vdmVzIEdsb2JhbCBDbHVzdGVyIG1hbmFnZWQgbmFtZXNwYWNlcyBhbmQgY3VzdG9tIHpvbmUgbWFwcGluZ3MuIFRoaXMgcmVzb3VyY2UgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIEF0bGFzLW1hbmFnZWQgY2x1c3RlcnMsIHNlZSBkb2MgZm9yIGBHbG9iYWxDbHVzdGVyU2VsZk1hbmFnZWRTaGFyZGluZ2AgYXR0cmlidXRlIGluIGBNb25nb2RiOjpBdGxhczo6Q2x1c3RlcmAgcmVzb3VyY2UgZm9yIG1vcmUgaW5mby5cbiAqXG4gKiBAc2NoZW1hIENmbkdsb2JhbENsdXN0ZXJDb25maWdQcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENmbkdsb2JhbENsdXN0ZXJDb25maWdQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgcHJvZmlsZSBpcyBkZWZpbmVkIGluIEFXUyBTZWNyZXQgbWFuYWdlci4gU2VlIFtTZWNyZXQgTWFuYWdlciBQcm9maWxlIHNldHVwXSguLi8uLi8uLi9leGFtcGxlcy9wcm9maWxlLXNlY3JldC55YW1sKS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5HbG9iYWxDbHVzdGVyQ29uZmlnUHJvcHMjUHJvZmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBwcm9qZWN0IGZvciB0aGUgQXRsYXMgY2x1c3Rlci5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5HbG9iYWxDbHVzdGVyQ29uZmlnUHJvcHMjUHJvamVjdElkXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBBdGxhcyBjbHVzdGVyIHRoYXQgY29udGFpbnMgdGhlIHNuYXBzaG90cyB5b3Ugd2FudCB0byByZXRyaWV2ZS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5HbG9iYWxDbHVzdGVyQ29uZmlnUHJvcHMjQ2x1c3Rlck5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGNsdXN0ZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaXN0IHRoYXQgY29udGFpbnMgY29tbWEtc2VwYXJhdGVkIGtleSB2YWx1ZSBwYWlycyB0byBtYXAgem9uZXMgdG8gZ2VvZ3JhcGhpYyByZWdpb25zLiBUaGVzZSBwYWlycyBtYXAgYW4gSVNPIDMxNjYtMWEyIGxvY2F0aW9uIGNvZGUsIHdpdGggYW4gSVNPIDMxNjYtMiBzdWJkaXZpc2lvbiBjb2RlIHdoZW4gcG9zc2libGUsIHRvIHRoZSBodW1hbi1yZWFkYWJsZSBsYWJlbCBmb3IgdGhlIGRlc2lyZWQgY3VzdG9tIHpvbmUuIE1vbmdvREIgQ2xvdWQgbWFwcyB0aGUgSVNPIDMxNjYtMWEyIGNvZGUgdG8gdGhlIG5lYXJlc3QgZ2VvZ3JhcGhpY2FsIHpvbmUgYnkgZGVmYXVsdC4gSW5jbHVkZSB0aGlzIHBhcmFtZXRlciB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBtYXBwaW5ncy5cbiAgICpcbiAgICogVGhpcyBwYXJhbWV0ZXIgcmV0dXJucyBhbiBlbXB0eSBvYmplY3QgaWYgbm8gY3VzdG9tIHpvbmVzIGV4aXN0LlxuICAgKlxuICAgKiBAc2NoZW1hIENmbkdsb2JhbENsdXN0ZXJDb25maWdQcm9wcyNNYW5hZ2VkTmFtZXNwYWNlc1xuICAgKi9cbiAgcmVhZG9ubHkgbWFuYWdlZE5hbWVzcGFjZXM/OiBNYW5hZ2VkTmFtZXNwYWNlW107XG5cbiAgLyoqXG4gICAqIExpc3QgdGhhdCBjb250YWlucyBjb21tYS1zZXBhcmF0ZWQga2V5IHZhbHVlIHBhaXJzIHRvIG1hcCB6b25lcyB0byBnZW9ncmFwaGljIHJlZ2lvbnMuIFRoZXNlIHBhaXJzIG1hcCBhbiBJU08gMzE2Ni0xYTIgbG9jYXRpb24gY29kZSwgd2l0aCBhbiBJU08gMzE2Ni0yIHN1YmRpdmlzaW9uIGNvZGUgd2hlbiBwb3NzaWJsZSwgdG8gdGhlIGh1bWFuLXJlYWRhYmxlIGxhYmVsIGZvciB0aGUgZGVzaXJlZCBjdXN0b20gem9uZS4gTW9uZ29EQiBDbG91ZCBtYXBzIHRoZSBJU08gMzE2Ni0xYTIgY29kZSB0byB0aGUgbmVhcmVzdCBnZW9ncmFwaGljYWwgem9uZSBieSBkZWZhdWx0LiBJbmNsdWRlIHRoaXMgcGFyYW1ldGVyIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG1hcHBpbmdzLlxuICAgKlxuICAgKiBUaGlzIHBhcmFtZXRlciByZXR1cm5zIGFuIGVtcHR5IG9iamVjdCBpZiBubyBjdXN0b20gem9uZXMgZXhpc3QuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuR2xvYmFsQ2x1c3RlckNvbmZpZ1Byb3BzI0N1c3RvbVpvbmVNYXBwaW5nc1xuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tWm9uZU1hcHBpbmdzPzogWm9uZU1hcHBpbmdbXTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnQ2ZuR2xvYmFsQ2x1c3RlckNvbmZpZ1Byb3BzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9DZm5HbG9iYWxDbHVzdGVyQ29uZmlnUHJvcHMoXG4gIG9iajogQ2ZuR2xvYmFsQ2x1c3RlckNvbmZpZ1Byb3BzIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgUHJvZmlsZTogb2JqLnByb2ZpbGUsXG4gICAgUHJvamVjdElkOiBvYmoucHJvamVjdElkLFxuICAgIENsdXN0ZXJOYW1lOiBvYmouY2x1c3Rlck5hbWUsXG4gICAgTWFuYWdlZE5hbWVzcGFjZXM6IG9iai5tYW5hZ2VkTmFtZXNwYWNlcz8ubWFwKCh5KSA9PlxuICAgICAgdG9Kc29uX01hbmFnZWROYW1lc3BhY2UoeSlcbiAgICApLFxuICAgIEN1c3RvbVpvbmVNYXBwaW5nczogb2JqLmN1c3RvbVpvbmVNYXBwaW5ncz8ubWFwKCh5KSA9PlxuICAgICAgdG9Kc29uX1pvbmVNYXBwaW5nKHkpXG4gICAgKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBtYW5hZ2VkTmFtZXNwYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuYWdlZE5hbWVzcGFjZSB7XG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBsYWJlbCBvZiB0aGUgY29sbGVjdGlvbiB0byBtYW5hZ2UgZm9yIHRoaXMgR2xvYmFsIENsdXN0ZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgbWFuYWdlZE5hbWVzcGFjZSNDb2xsZWN0aW9uXG4gICAqL1xuICByZWFkb25seSBjb2xsZWN0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEYXRhYmFzZSBwYXJhbWV0ZXIgdXNlZCB0byBkaXZpZGUgdGhlICpjb2xsZWN0aW9uKiBpbnRvIHNoYXJkcy4gR2xvYmFsIGNsdXN0ZXJzIHJlcXVpcmUgYSBjb21wb3VuZCBzaGFyZCBrZXkuIFRoaXMgY29tcG91bmQgc2hhcmQga2V5IGNvbWJpbmVzIHRoZSBsb2NhdGlvbiBwYXJhbWV0ZXIgYW5kIHRoZSB1c2VyLXNlbGVjdGVkIGN1c3RvbSBrZXkuXG4gICAqXG4gICAqIEBzY2hlbWEgbWFuYWdlZE5hbWVzcGFjZSNDdXN0b21TaGFyZEtleVxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tU2hhcmRLZXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIGxhYmVsIG9mIHRoZSBkYXRhYmFzZSB0byBtYW5hZ2UgZm9yIHRoaXMgR2xvYmFsIENsdXN0ZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgbWFuYWdlZE5hbWVzcGFjZSNEYlxuICAgKi9cbiAgcmVhZG9ubHkgZGI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZsYWcgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciBzb21lb25lIGhhc2hlZCB0aGUgY3VzdG9tIHNoYXJkIGtleSBmb3IgdGhlIHNwZWNpZmllZCBjb2xsZWN0aW9uLiBJZiB5b3Ugc2V0IHRoaXMgdmFsdWUgdG8gYGZhbHNlYCwgTW9uZ29EQiBDbG91ZCB1c2VzIHJhbmdlZCBzaGFyZGluZy5cbiAgICpcbiAgICogQHNjaGVtYSBtYW5hZ2VkTmFtZXNwYWNlI0lzQ3VzdG9tU2hhcmRLZXlIYXNoZWRcbiAgICovXG4gIHJlYWRvbmx5IGlzQ3VzdG9tU2hhcmRLZXlIYXNoZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgc29tZW9uZSBbaGFzaGVkXShodHRwczovL3d3dy5tb25nb2RiLmNvbS9kb2NzL21hbnVhbC9yZWZlcmVuY2UvbWV0aG9kL3NoLnNoYXJkQ29sbGVjdGlvbi8jaGFzaGVkLXNoYXJkLWtleXMpIHRoZSBjdXN0b20gc2hhcmQga2V5LiBJZiB0aGlzIHBhcmFtZXRlciByZXR1cm5zIGBmYWxzZWAsIHRoaXMgY2x1c3RlciB1c2VzIFtyYW5nZWQgc2hhcmRpbmddKGh0dHBzOi8vd3d3Lm1vbmdvZGIuY29tL2RvY3MvbWFudWFsL2NvcmUvcmFuZ2VkLXNoYXJkaW5nLykuXG4gICAqXG4gICAqIEBzY2hlbWEgbWFuYWdlZE5hbWVzcGFjZSNJc1NoYXJkS2V5VW5pcXVlXG4gICAqL1xuICByZWFkb25seSBpc1NoYXJkS2V5VW5pcXVlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnTWFuYWdlZE5hbWVzcGFjZScgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fTWFuYWdlZE5hbWVzcGFjZShcbiAgb2JqOiBNYW5hZ2VkTmFtZXNwYWNlIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgQ29sbGVjdGlvbjogb2JqLmNvbGxlY3Rpb24sXG4gICAgQ3VzdG9tU2hhcmRLZXk6IG9iai5jdXN0b21TaGFyZEtleSxcbiAgICBEYjogb2JqLmRiLFxuICAgIElzQ3VzdG9tU2hhcmRLZXlIYXNoZWQ6IG9iai5pc0N1c3RvbVNoYXJkS2V5SGFzaGVkLFxuICAgIElzU2hhcmRLZXlVbmlxdWU6IG9iai5pc1NoYXJkS2V5VW5pcXVlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBAc2NoZW1hIHpvbmVNYXBwaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgWm9uZU1hcHBpbmcge1xuICAvKipcbiAgICogQ29kZSB0aGF0IHJlcHJlc2VudHMgYSBsb2NhdGlvbiB0aGF0IG1hcHMgdG8gYSB6b25lIGluIHlvdXIgZ2xvYmFsIGNsdXN0ZXIuIE1vbmdvREIgQ2xvdWQgcmVwcmVzZW50cyB0aGlzIGxvY2F0aW9uIHdpdGggYSBJU08gMzE2Ni0yIGxvY2F0aW9uIGFuZCBzdWJkaXZpc2lvbiBjb2RlcyB3aGVuIHBvc3NpYmxlLlxuICAgKlxuICAgKiBAc2NoZW1hIHpvbmVNYXBwaW5nI0xvY2F0aW9uXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbGFiZWwgdGhhdCBpZGVudGlmaWVzIHRoZSB6b25lIGluIHlvdXIgZ2xvYmFsIGNsdXN0ZXIuIFRoaXMgem9uZSBtYXBzIHRvIGEgbG9jYXRpb24gY29kZS5cbiAgICpcbiAgICogQHNjaGVtYSB6b25lTWFwcGluZyNab25lXG4gICAqL1xuICByZWFkb25seSB6b25lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdab25lTWFwcGluZycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fWm9uZU1hcHBpbmcoXG4gIG9iajogWm9uZU1hcHBpbmcgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBMb2NhdGlvbjogb2JqLmxvY2F0aW9uLFxuICAgIFpvbmU6IG9iai56b25lLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBBIENsb3VkRm9ybWF0aW9uIGBNb25nb0RCOjpBdGxhczo6R2xvYmFsQ2x1c3RlckNvbmZpZ2BcbiAqXG4gKiBAY2xvdWRmb3JtYXRpb25SZXNvdXJjZSBNb25nb0RCOjpBdGxhczo6R2xvYmFsQ2x1c3RlckNvbmZpZ1xuICogQHN0YWJpbGl0eSBleHRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgQ2ZuR2xvYmFsQ2x1c3RlckNvbmZpZyBleHRlbmRzIGNkay5DZm5SZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDRk5fUkVTT1VSQ0VfVFlQRV9OQU1FID1cbiAgICBcIk1vbmdvREI6OkF0bGFzOjpHbG9iYWxDbHVzdGVyQ29uZmlnXCI7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIHByb3BzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBDZm5HbG9iYWxDbHVzdGVyQ29uZmlnUHJvcHM7XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBgTW9uZ29EQjo6QXRsYXM6Okdsb2JhbENsdXN0ZXJDb25maWcuUmVtb3ZlQWxsWm9uZU1hcHBpbmdgXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0clJlbW92ZUFsbFpvbmVNYXBwaW5nOiBjZGsuSVJlc29sdmFibGU7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBgTW9uZ29EQjo6QXRsYXM6Okdsb2JhbENsdXN0ZXJDb25maWdgLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBzY29wZSBpbiB3aGljaCB0aGlzIHJlc291cmNlIGlzIGRlZmluZWRcbiAgICogQHBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgKiBAcGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogQ2ZuR2xvYmFsQ2x1c3RlckNvbmZpZ1Byb3BzXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgdHlwZTogQ2ZuR2xvYmFsQ2x1c3RlckNvbmZpZy5DRk5fUkVTT1VSQ0VfVFlQRV9OQU1FLFxuICAgICAgcHJvcGVydGllczogdG9Kc29uX0Nmbkdsb2JhbENsdXN0ZXJDb25maWdQcm9wcyhwcm9wcykhLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgdGhpcy5hdHRyUmVtb3ZlQWxsWm9uZU1hcHBpbmcgPSB0aGlzLmdldEF0dChcIlJlbW92ZUFsbFpvbmVNYXBwaW5nXCIpO1xuICB9XG59XG4iXX0=