UNPKG

awscdk-resources-mongodbatlas

Version:

MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources

95 lines 15.4 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.CfnResourcePolicy = void 0; exports.toJson_CfnResourcePolicyProps = toJson_CfnResourcePolicyProps; exports.toJson_ApiAtlasUserMetadata = toJson_ApiAtlasUserMetadata; exports.toJson_ApiAtlasPolicy = toJson_ApiAtlasPolicy; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); // Generated by cdk-import const cdk = require("aws-cdk-lib"); /** * Converts an object of type 'CfnResourcePolicyProps' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnResourcePolicyProps(obj) { if (obj === undefined) { return undefined; } const result = { CreatedByUser: toJson_ApiAtlasUserMetadata(obj.createdByUser), LastUpdatedByUser: toJson_ApiAtlasUserMetadata(obj.lastUpdatedByUser), Name: obj.name, Description: obj.description, OrgId: obj.orgId, Policies: obj.policies?.map((y) => toJson_ApiAtlasPolicy(y)), Profile: obj.profile, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /** * Converts an object of type 'ApiAtlasUserMetadata' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_ApiAtlasUserMetadata(obj) { if (obj === undefined) { return undefined; } const result = { Id: obj.id, Name: obj.name, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {}); } /** * Converts an object of type 'ApiAtlasPolicy' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_ApiAtlasPolicy(obj) { if (obj === undefined) { return undefined; } const result = { Body: obj.body, Id: obj.id, }; // 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::ResourcePolicy` * * @cloudformationResource MongoDB::Atlas::ResourcePolicy * @stability external */ class CfnResourcePolicy extends cdk.CfnResource { /** * Create a new `MongoDB::Atlas::ResourcePolicy`. * * @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: CfnResourcePolicy.CFN_RESOURCE_TYPE_NAME, properties: toJson_CfnResourcePolicyProps(props), }); this.props = props; this.attrCreatedDate = cdk.Token.asString(this.getAtt("CreatedDate")); this.attrId = cdk.Token.asString(this.getAtt("Id")); this.attrLastUpdatedDate = cdk.Token.asString(this.getAtt("LastUpdatedDate")); this.attrVersion = cdk.Token.asString(this.getAtt("Version")); } } exports.CfnResourcePolicy = CfnResourcePolicy; _a = JSII_RTTI_SYMBOL_1; CfnResourcePolicy[_a] = { fqn: "awscdk-resources-mongodbatlas.CfnResourcePolicy", version: "3.13.1" }; /** * The CloudFormation resource type name for this resource class. */ CfnResourcePolicy.CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::ResourcePolicy"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDEtcmVzb3VyY2VzL3Jlc291cmNlLXBvbGljeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBZ0VBLHNFQW9CQztBQTBCRCxrRUFlQztBQTBCRCxzREFlQzs7QUF0S0QsMEJBQTBCO0FBQzFCLG1DQUFtQztBQTJEbkM7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IsNkJBQTZCLENBQzNDLEdBQXVDO0lBRXZDLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRztRQUNiLGFBQWEsRUFBRSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO1FBQzdELGlCQUFpQixFQUFFLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztRQUNyRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7UUFDNUIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1FBQ2hCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO0tBQ3JCLENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FB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Q0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdlbmVyYXRlZCBieSBjZGstaW1wb3J0XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbi8qKlxuICogQXRsYXMgUmVzb3VyY2UgUG9saWNpZXNcbiAqXG4gKiBAc2NoZW1hIENmblJlc291cmNlUG9saWN5UHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZm5SZXNvdXJjZVBvbGljeVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSB1c2VyIHRoYXQgbGFzdCB1cGRhdGVkIHRoZSBhdGxhcyByZXNvdXJjZSBwb2xpY3kuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcyNDcmVhdGVkQnlVc2VyXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVkQnlVc2VyPzogQXBpQXRsYXNVc2VyTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIFRoZSB1c2VyIHRoYXQgbGFzdCB1cGRhdGVkIHRoZSBhdGxhcyByZXNvdXJjZSBwb2xpY3kuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcyNMYXN0VXBkYXRlZEJ5VXNlclxuICAgKi9cbiAgcmVhZG9ubHkgbGFzdFVwZGF0ZWRCeVVzZXI/OiBBcGlBdGxhc1VzZXJNZXRhZGF0YTtcblxuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbGFiZWwgdGhhdCBkZXNjcmliZXMgdGhlIGF0bGFzIHJlc291cmNlIHBvbGljeS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5SZXNvdXJjZVBvbGljeVByb3BzI05hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRGVzY3JpcHRpb24gb2YgdGhlIEF0bGFzIHJlc291cmNlIHBvbGljeS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5SZXNvdXJjZVBvbGljeVByb3BzI0Rlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVW5pcXVlIDI0LWhleGFkZWNpbWFsIGRpZ2l0IHN0cmluZyB0aGF0IGlkZW50aWZpZXMgdGhlIG9yZ2FuaXphdGlvbiB0aGF0IGNvbnRhaW5zIHlvdXIgcHJvamVjdHMuIFVzZSB0aGUgWy9vcmdzXSgjdGFnL09yZ2FuaXphdGlvbnMvb3BlcmF0aW9uL2xpc3RPcmdhbml6YXRpb25zKSBlbmRwb2ludCB0byByZXRyaWV2ZSBhbGwgb3JnYW5pemF0aW9ucyB0byB3aGljaCB0aGUgYXV0aGVudGljYXRlZCB1c2VyIGhhcyBhY2Nlc3MuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcyNPcmdJZFxuICAgKi9cbiAgcmVhZG9ubHkgb3JnSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdCBvZiBwb2xpY2llcyB0aGF0IG1ha2UgdXAgdGhlIGF0bGFzIHJlc291cmNlIHBvbGljeS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5SZXNvdXJjZVBvbGljeVByb3BzI1BvbGljaWVzXG4gICAqL1xuICByZWFkb25seSBwb2xpY2llczogQXBpQXRsYXNQb2xpY3lbXTtcblxuICAvKipcbiAgICogUHJvZmlsZSB1c2VkIHRvIHByb3ZpZGUgY3JlZGVudGlhbHMgaW5mb3JtYXRpb24sIChhIHNlY3JldCB3aXRoIHRoZSBjZm4vYXRsYXMvcHJvZmlsZS97UHJvZmlsZX0sIGlzIHJlcXVpcmVkKSwgaWYgbm90IHByb3ZpZGVkIGRlZmF1bHQgaXMgdXNlZFxuICAgKlxuICAgKiBAc2NoZW1hIENmblJlc291cmNlUG9saWN5UHJvcHMjUHJvZmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcyhcbiAgb2JqOiBDZm5SZXNvdXJjZVBvbGljeVByb3BzIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgQ3JlYXRlZEJ5VXNlcjogdG9Kc29uX0FwaUF0bGFzVXNlck1ldGFkYXRhKG9iai5jcmVhdGVkQnlVc2VyKSxcbiAgICBMYXN0VXBkYXRlZEJ5VXNlcjogdG9Kc29uX0FwaUF0bGFzVXNlck1ldGFkYXRhKG9iai5sYXN0VXBkYXRlZEJ5VXNlciksXG4gICAgTmFtZTogb2JqLm5hbWUsXG4gICAgRGVzY3JpcHRpb246IG9iai5kZXNjcmlwdGlvbixcbiAgICBPcmdJZDogb2JqLm9yZ0lkLFxuICAgIFBvbGljaWVzOiBvYmoucG9saWNpZXM/Lm1hcCgoeSkgPT4gdG9Kc29uX0FwaUF0bGFzUG9saWN5KHkpKSxcbiAgICBQcm9maWxlOiBvYmoucHJvZmlsZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBBcGlBdGxhc1VzZXJNZXRhZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUF0bGFzVXNlck1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSAyNC1oZXhhZGVjaW1hbCBjaGFyYWN0ZXIgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyBhIHVzZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgQXBpQXRsYXNVc2VyTWV0YWRhdGEjSWRcbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBsYWJlbCB0aGF0IGRlc2NyaWJlcyBhIHVzZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgQXBpQXRsYXNVc2VyTWV0YWRhdGEjTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnQXBpQXRsYXNVc2VyTWV0YWRhdGEnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0FwaUF0bGFzVXNlck1ldGFkYXRhKFxuICBvYmo6IEFwaUF0bGFzVXNlck1ldGFkYXRhIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgSWQ6IG9iai5pZCxcbiAgICBOYW1lOiBvYmoubmFtZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBBcGlBdGxhc1BvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUF0bGFzUG9saWN5IHtcbiAgLyoqXG4gICAqIEEgc3RyaW5nIHRoYXQgZGVmaW5lcyB0aGUgcGVybWlzc2lvbnMgZm9yIHRoZSBwb2xpY3kuIFRoZSBzeW50YXggdXNlZCBpcyB0aGUgQ2VkYXIgUG9saWN5IGxhbmd1YWdlLlxuICAgKlxuICAgKiBAc2NoZW1hIEFwaUF0bGFzUG9saWN5I0JvZHlcbiAgICovXG4gIHJlYWRvbmx5IGJvZHk6IHN0cmluZztcblxuICAvKipcbiAgICogVW5pcXVlIDI0LWhleGFkZWNpbWFsIGNoYXJhY3RlciBzdHJpbmcgdGhhdCBpZGVudGlmaWVzIHRoZSBwb2xpY3kuXG4gICAqXG4gICAqIEBzY2hlbWEgQXBpQXRsYXNQb2xpY3kjSWRcbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdBcGlBdGxhc1BvbGljeScgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fQXBpQXRsYXNQb2xpY3koXG4gIG9iajogQXBpQXRsYXNQb2xpY3kgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBCb2R5OiBvYmouYm9keSxcbiAgICBJZDogb2JqLmlkLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBBIENsb3VkRm9ybWF0aW9uIGBNb25nb0RCOjpBdGxhczo6UmVzb3VyY2VQb2xpY3lgXG4gKlxuICogQGNsb3VkZm9ybWF0aW9uUmVzb3VyY2UgTW9uZ29EQjo6QXRsYXM6OlJlc291cmNlUG9saWN5XG4gKiBAc3RhYmlsaXR5IGV4dGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBDZm5SZXNvdXJjZVBvbGljeSBleHRlbmRzIGNkay5DZm5SZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDRk5fUkVTT1VSQ0VfVFlQRV9OQU1FID1cbiAgICBcIk1vbmdvREI6OkF0bGFzOjpSZXNvdXJjZVBvbGljeVwiO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBwcm9wcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcztcblxuICAvKipcbiAgICogQXR0cmlidXRlIGBNb25nb0RCOjpBdGxhczo6UmVzb3VyY2VQb2xpY3kuQ3JlYXRlZERhdGVgXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0ckNyZWF0ZWREYXRlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpSZXNvdXJjZVBvbGljeS5JZGBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRySWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBgTW9uZ29EQjo6QXRsYXM6OlJlc291cmNlUG9saWN5Lkxhc3RVcGRhdGVkRGF0ZWBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRyTGFzdFVwZGF0ZWREYXRlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpSZXNvdXJjZVBvbGljeS5WZXJzaW9uYFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF0dHJWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBgTW9uZ29EQjo6QXRsYXM6OlJlc291cmNlUG9saWN5YC5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAqIEBwYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2VcbiAgICogQHBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllc1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IENmblJlc291cmNlUG9saWN5UHJvcHNcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0eXBlOiBDZm5SZXNvdXJjZVBvbGljeS5DRk5fUkVTT1VSQ0VfVFlQRV9OQU1FLFxuICAgICAgcHJvcGVydGllczogdG9Kc29uX0NmblJlc291cmNlUG9saWN5UHJvcHMocHJvcHMpISxcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMuYXR0ckNyZWF0ZWREYXRlID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuZ2V0QXR0KFwiQ3JlYXRlZERhdGVcIikpO1xuICAgIHRoaXMuYXR0cklkID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuZ2V0QXR0KFwiSWRcIikpO1xuICAgIHRoaXMuYXR0ckxhc3RVcGRhdGVkRGF0ZSA9IGNkay5Ub2tlbi5hc1N0cmluZyhcbiAgICAgIHRoaXMuZ2V0QXR0KFwiTGFzdFVwZGF0ZWREYXRlXCIpXG4gICAgKTtcbiAgICB0aGlzLmF0dHJWZXJzaW9uID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuZ2V0QXR0KFwiVmVyc2lvblwiKSk7XG4gIH1cbn1cbiJdfQ==